aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore22
-rw-r--r--.travis.yml34
-rw-r--r--Android.mk486
-rw-r--r--CHANGES.txt100
-rw-r--r--LICENSE2
-rw-r--r--Makefile.am344
-rw-r--r--Protobuf.podspec38
-rw-r--r--benchmarks/google_size.proto3
-rw-r--r--benchmarks/google_speed.proto3
-rw-r--r--cmake/CMakeLists.txt78
-rw-r--r--cmake/README.md127
-rw-r--r--cmake/config.h.in4
-rw-r--r--cmake/extract_includes.bat.in105
-rw-r--r--cmake/find_hash_map.cmake119
-rw-r--r--cmake/libprotobuf-lite.cmake23
-rw-r--r--cmake/libprotobuf.cmake42
-rw-r--r--cmake/libprotoc.cmake95
-rw-r--r--cmake/pbconfig.h.in9
-rw-r--r--cmake/protoc.cmake6
-rw-r--r--cmake/tests.cmake148
-rwxr-xr-xcmake/update_file_lists.sh121
-rw-r--r--configure.ac4
-rw-r--r--conformance/Makefile.am2
-rw-r--r--conformance/conformance.proto68
-rw-r--r--conformance/conformance_test.cc168
-rw-r--r--conformance/conformance_test.h42
-rw-r--r--conformance/conformance_test_runner.cc66
-rw-r--r--conformance/failure_list_cpp.txt21
-rw-r--r--csharp/.gitignore45
-rw-r--r--csharp/CHANGES.txt148
-rw-r--r--csharp/README.md37
-rw-r--r--csharp/build/BuildAll.bat8
-rw-r--r--csharp/build/Common.targets122
-rw-r--r--csharp/build/Google.ProtocolBuffers.nuspec59
-rw-r--r--csharp/build/Google.ProtocolBuffersLite.nuspec60
-rw-r--r--csharp/build/RunBenchmarks.bat2
-rw-r--r--csharp/build/build.bat20
-rw-r--r--csharp/build/build.csproj241
-rw-r--r--csharp/build/googlecode_upload.py248
-rw-r--r--csharp/build/nuspec.xsd79
-rw-r--r--csharp/build/publish.csproj186
-rw-r--r--csharp/build/target.csproj167
-rwxr-xr-xcsharp/buildall.sh22
-rwxr-xr-xcsharp/generate_protos.sh93
-rw-r--r--csharp/keys/Google.ProtocolBuffers.snkbin0 -> 596 bytes
-rw-r--r--csharp/keys/generate_new_key.bat13
-rw-r--r--csharp/protos/extest/unittest_extras_full.proto71
-rw-r--r--csharp/protos/extest/unittest_extras_lite.proto115
-rw-r--r--csharp/protos/extest/unittest_extras_xmltest.proto53
-rw-r--r--csharp/protos/extest/unittest_issues.proto141
-rw-r--r--csharp/src/AddressBook/AddPerson.cs136
-rw-r--r--csharp/src/AddressBook/AddressBook.csproj72
-rw-r--r--csharp/src/AddressBook/Addressbook.cs1158
-rw-r--r--csharp/src/AddressBook/ListPeople.cs103
-rw-r--r--csharp/src/AddressBook/Program.cs99
-rw-r--r--csharp/src/AddressBook/Properties/AssemblyInfo.cs29
-rw-r--r--csharp/src/AddressBook/SampleUsage.cs44
-rw-r--r--csharp/src/AddressBook/app.config3
-rw-r--r--csharp/src/ProtoBench/GoogleSize.cs4569
-rw-r--r--csharp/src/ProtoBench/GoogleSpeed.cs6634
-rw-r--r--csharp/src/ProtoBench/Program.cs538
-rw-r--r--csharp/src/ProtoBench/Properties/AssemblyInfo.cs31
-rw-r--r--csharp/src/ProtoBench/ProtoBench.csproj88
-rw-r--r--csharp/src/ProtoBench/Unittest.cs33516
-rw-r--r--csharp/src/ProtoBench/UnittestImport.cs347
-rw-r--r--csharp/src/ProtoBench/UnittestImportPublic.cs333
-rw-r--r--csharp/src/ProtoBench/app.config3
-rw-r--r--csharp/src/ProtoBench/google_message1.datbin0 -> 228 bytes
-rw-r--r--csharp/src/ProtoBench/google_message2.datbin0 -> 84570 bytes
-rw-r--r--csharp/src/ProtoDump/Program.cs88
-rw-r--r--csharp/src/ProtoDump/Properties/AssemblyInfo.cs30
-rw-r--r--csharp/src/ProtoDump/ProtoDump.csproj67
-rw-r--r--csharp/src/ProtoDump/app.config3
-rw-r--r--csharp/src/ProtoMunge/Program.cs305
-rw-r--r--csharp/src/ProtoMunge/Properties/AssemblyInfo.cs30
-rw-r--r--csharp/src/ProtoMunge/ProtoMunge.csproj67
-rw-r--r--csharp/src/ProtoMunge/app.config3
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/AbstractReader.cs686
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/AbstractTextReader.cs175
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/AbstractTextWriter.cs104
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/AbstractWriter.cs503
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/DictionaryReader.cs265
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs200
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/Extensions.cs185
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/Http/FormUrlEncodedReader.cs162
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs112
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/Http/MessageFormatOptions.cs176
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/JsonFormatReader.cs262
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/JsonFormatWriter.cs541
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/JsonTextCursor.cs442
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs65
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj93
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj93
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/RecursionLimitExceeded.cs18
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/XmlFormatReader.cs338
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/XmlFormatWriter.cs280
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/XmlReaderOptions.cs17
-rw-r--r--csharp/src/ProtocolBuffers.Serialization/XmlWriterOptions.cs24
-rw-r--r--csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs548
-rw-r--r--csharp/src/ProtocolBuffers.Test/App.xaml8
-rw-r--r--csharp/src/ProtocolBuffers.Test/App.xaml.cs60
-rw-r--r--csharp/src/ProtocolBuffers.Test/ByteStringTest.cs147
-rw-r--r--csharp/src/ProtocolBuffers.Test/CodedInputStreamTest.cs569
-rw-r--r--csharp/src/ProtocolBuffers.Test/CodedOutputStreamTest.cs471
-rw-r--r--csharp/src/ProtocolBuffers.Test/Collections/PopsicleListTest.cs125
-rw-r--r--csharp/src/ProtocolBuffers.Test/Compatibility/BinaryCompatibilityTests.cs18
-rw-r--r--csharp/src/ProtocolBuffers.Test/Compatibility/CompatibilityTests.cs227
-rw-r--r--csharp/src/ProtocolBuffers.Test/Compatibility/DictionaryCompatibilityTests.cs35
-rw-r--r--csharp/src/ProtocolBuffers.Test/Compatibility/JsonCompatibilityTests.cs43
-rw-r--r--csharp/src/ProtocolBuffers.Test/Compatibility/TestResources.cs38
-rw-r--r--csharp/src/ProtocolBuffers.Test/Compatibility/TextCompatibilityTests.cs35
-rw-r--r--csharp/src/ProtocolBuffers.Test/Compatibility/XmlCompatibilityTests.cs45
-rw-r--r--csharp/src/ProtocolBuffers.Test/Compatibility/google_message1.datbin0 -> 228 bytes
-rw-r--r--csharp/src/ProtocolBuffers.Test/Compatibility/google_message2.datbin0 -> 84570 bytes
-rw-r--r--csharp/src/ProtocolBuffers.Test/DeprecatedMemberTest.cs99
-rw-r--r--csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs286
-rw-r--r--csharp/src/ProtocolBuffers.Test/DynamicMessageTest.cs276
-rw-r--r--csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs200
-rw-r--r--csharp/src/ProtocolBuffers.Test/FieldPresenceTest.cs198
-rw-r--r--csharp/src/ProtocolBuffers.Test/GeneratedBuilderTest.cs102
-rw-r--r--csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs776
-rw-r--r--csharp/src/ProtocolBuffers.Test/IssuesTest.cs60
-rw-r--r--csharp/src/ProtocolBuffers.Test/MessageStreamIteratorTest.cs90
-rw-r--r--csharp/src/ProtocolBuffers.Test/MessageStreamWriterTest.cs78
-rw-r--r--csharp/src/ProtocolBuffers.Test/MessageTest.cs344
-rw-r--r--csharp/src/ProtocolBuffers.Test/MessageUtilTest.cs82
-rw-r--r--csharp/src/ProtocolBuffers.Test/NameHelpersTest.cs81
-rw-r--r--csharp/src/ProtocolBuffers.Test/Properties/AppManifest.xml6
-rw-r--r--csharp/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs30
-rw-r--r--csharp/src/ProtocolBuffers.Test/Properties/OutOfBrowserSettings.xml7
-rw-r--r--csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj155
-rw-r--r--csharp/src/ProtocolBuffers.Test/ReflectionTester.cs1033
-rw-r--r--csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs166
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestCornerCases.cs34
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestMimeMessageFormats.cs277
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSize.cs4547
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSpeed.cs6612
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/Unittest.cs33878
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestCustomOptions.cs7543
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestDropUnknownFields.cs732
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestEnormousDescriptor.cs36189
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestExtrasXmltest.cs2277
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImport.cs347
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportPublic.cs333
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs2311
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestMset.cs1824
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestNoFieldPresence.cs3876
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnittestOptimizeFor.cs738
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestProtos/UnknownEnumTest.cs809
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestReaderForUrlEncoded.cs83
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestResources.cs301
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestUtil.cs1862
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestWriterFormatJson.cs498
-rw-r--r--csharp/src/ProtocolBuffers.Test/TestWriterFormatXml.cs468
-rw-r--r--csharp/src/ProtocolBuffers.Test/TextFormatTest.cs560
-rw-r--r--csharp/src/ProtocolBuffers.Test/UnknownFieldSetTest.cs431
-rw-r--r--csharp/src/ProtocolBuffers.Test/WireFormatTest.cs311
-rw-r--r--csharp/src/ProtocolBuffers.Test/packages.config5
-rw-r--r--csharp/src/ProtocolBuffers.sln81
-rw-r--r--csharp/src/ProtocolBuffers/AbstractBuilder.cs274
-rw-r--r--csharp/src/ProtocolBuffers/AbstractBuilderLite.cs264
-rw-r--r--csharp/src/ProtocolBuffers/AbstractMessage.cs293
-rw-r--r--csharp/src/ProtocolBuffers/AbstractMessageLite.cs140
-rw-r--r--csharp/src/ProtocolBuffers/ByteArray.cs92
-rw-r--r--csharp/src/ProtocolBuffers/ByteString.cs305
-rw-r--r--csharp/src/ProtocolBuffers/CodedInputStream.cs1828
-rw-r--r--csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs643
-rw-r--r--csharp/src/ProtocolBuffers/CodedOutputStream.cs1322
-rw-r--r--csharp/src/ProtocolBuffers/Collections/Dictionaries.cs122
-rw-r--r--csharp/src/ProtocolBuffers/Collections/Enumerables.cs74
-rw-r--r--csharp/src/ProtocolBuffers/Collections/IPopsicleList.cs58
-rw-r--r--csharp/src/ProtocolBuffers/Collections/Lists.cs110
-rw-r--r--csharp/src/ProtocolBuffers/Collections/PopsicleList.cs208
-rw-r--r--csharp/src/ProtocolBuffers/Collections/ReadOnlyDictionary.cs146
-rw-r--r--csharp/src/ProtocolBuffers/Delegates.cs54
-rw-r--r--csharp/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs11051
-rw-r--r--csharp/src/ProtocolBuffers/DescriptorProtos/IDescriptorProto.cs52
-rw-r--r--csharp/src/ProtocolBuffers/DescriptorProtos/PartialClasses.cs65
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/DescriptorBase.cs115
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/DescriptorPool.cs364
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/DescriptorUtil.cs64
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/DescriptorValidationException.cs90
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/EnumDescriptor.cs126
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs63
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/FieldDescriptor.cs625
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs85
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/FieldType.cs60
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/FileDescriptor.cs476
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/IDescriptor.cs55
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/IndexedDescriptorBase.cs64
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/MappedType.cs52
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/MessageDescriptor.cs297
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/MethodDescriptor.cs94
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/OneofDescriptor.cs78
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/PackageDescriptor.cs73
-rw-r--r--csharp/src/ProtocolBuffers/Descriptors/ServiceDescriptor.cs89
-rw-r--r--csharp/src/ProtocolBuffers/DynamicMessage.cs624
-rw-r--r--csharp/src/ProtocolBuffers/EnumLite.cs234
-rw-r--r--csharp/src/ProtocolBuffers/ExtendableBuilder.cs212
-rw-r--r--csharp/src/ProtocolBuffers/ExtendableBuilderLite.cs345
-rw-r--r--csharp/src/ProtocolBuffers/ExtendableMessage.cs274
-rw-r--r--csharp/src/ProtocolBuffers/ExtendableMessageLite.cs221
-rw-r--r--csharp/src/ProtocolBuffers/ExtensionInfo.cs88
-rw-r--r--csharp/src/ProtocolBuffers/ExtensionRegistry.cs215
-rw-r--r--csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs232
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs161
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/IFieldAccessor.cs95
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/OneofAccessor.cs91
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/ReflectionUtil.cs189
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/RepeatedEnumAccessor.cs83
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/RepeatedMessageAccessor.cs97
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/RepeatedPrimitiveAccessor.cs158
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/SingleEnumAccessor.cs75
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/SingleMessageAccessor.cs91
-rw-r--r--csharp/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs162
-rw-r--r--csharp/src/ProtocolBuffers/FieldSet.cs632
-rw-r--r--csharp/src/ProtocolBuffers/FrameworkPortability.cs111
-rw-r--r--csharp/src/ProtocolBuffers/GeneratedBuilder.cs230
-rw-r--r--csharp/src/ProtocolBuffers/GeneratedBuilderLite.cs100
-rw-r--r--csharp/src/ProtocolBuffers/GeneratedExtensionBase.cs185
-rw-r--r--csharp/src/ProtocolBuffers/GeneratedExtensionLite.cs354
-rw-r--r--csharp/src/ProtocolBuffers/GeneratedMessage.cs191
-rw-r--r--csharp/src/ProtocolBuffers/GeneratedMessageLite.cs182
-rw-r--r--csharp/src/ProtocolBuffers/GeneratedRepeatExtension.cs88
-rw-r--r--csharp/src/ProtocolBuffers/GeneratedSingleExtension.cs65
-rw-r--r--csharp/src/ProtocolBuffers/IBuilder.cs323
-rw-r--r--csharp/src/ProtocolBuffers/IBuilderLite.cs213
-rw-r--r--csharp/src/ProtocolBuffers/ICodedInputStream.cs318
-rw-r--r--csharp/src/ProtocolBuffers/ICodedOutputStream.cs368
-rw-r--r--csharp/src/ProtocolBuffers/IMessage.cs253
-rw-r--r--csharp/src/ProtocolBuffers/IMessageLite.cs188
-rw-r--r--csharp/src/ProtocolBuffers/InvalidProtocolBufferException.cs112
-rw-r--r--csharp/src/ProtocolBuffers/MessageStreamIterator.cs170
-rw-r--r--csharp/src/ProtocolBuffers/MessageStreamWriter.cs70
-rw-r--r--csharp/src/ProtocolBuffers/MessageUtil.cs109
-rw-r--r--csharp/src/ProtocolBuffers/NameHelpers.cs140
-rw-r--r--csharp/src/ProtocolBuffers/Properties/AssemblyInfo.cs67
-rw-r--r--csharp/src/ProtocolBuffers/ProtocolBuffers.csproj151
-rw-r--r--csharp/src/ProtocolBuffers/ProtocolBuffersLite.csproj99
-rw-r--r--csharp/src/ProtocolBuffers/SortedList.cs167
-rw-r--r--csharp/src/ProtocolBuffers/TextFormat.cs893
-rw-r--r--csharp/src/ProtocolBuffers/TextGenerator.cs159
-rw-r--r--csharp/src/ProtocolBuffers/TextTokenizer.cs501
-rw-r--r--csharp/src/ProtocolBuffers/ThrowHelper.cs92
-rw-r--r--csharp/src/ProtocolBuffers/UninitializedMessageException.cs208
-rw-r--r--csharp/src/ProtocolBuffers/UnknownField.cs415
-rw-r--r--csharp/src/ProtocolBuffers/UnknownFieldSet.cs1061
-rw-r--r--csharp/src/ProtocolBuffers/WireFormat.cs185
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs336
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs133
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/App.xaml8
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/App.xaml.cs60
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/ExtendableBuilderLiteTest.cs286
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs378
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/InteropLiteTest.cs185
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/LiteTest.cs113
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/MissingFieldAndExtensionTest.cs237
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/Properties/AppManifest.xml6
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/Properties/OutOfBrowserSettings.xml7
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj113
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj110
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/TestLiteByApi.cs120
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/TestProtos/Unittest.cs33878
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasFull.cs2138
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasLite.cs4206
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImport.cs347
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportLite.cs311
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublic.cs333
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublicLite.cs302
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLite.cs12493
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLiteImportsNonlite.cs325
-rw-r--r--csharp/src/ProtocolBuffersLite.Test/packages.config5
-rw-r--r--csharp/src/packages/repositories.config5
-rw-r--r--csharp/testdata/golden_messagebin0 -> 487 bytes
-rw-r--r--csharp/testdata/golden_packed_fields_messagebin0 -> 142 bytes
-rw-r--r--csharp/testdata/text_format_unittest_data.txt116
-rw-r--r--csharp/testdata/text_format_unittest_extensions_data.txt116
-rw-r--r--editors/proto.vim2
-rw-r--r--editors/protobuf-mode.el2
-rw-r--r--examples/addressbook.proto3
-rwxr-xr-xgenerate_descriptor_proto.sh55
-rw-r--r--java/pom.xml58
-rw-r--r--java/src/main/java/com/google/protobuf/AbstractMessageLite.java16
-rw-r--r--java/src/main/java/com/google/protobuf/AbstractProtobufList.java136
-rw-r--r--java/src/main/java/com/google/protobuf/BooleanArrayList.java244
-rw-r--r--java/src/main/java/com/google/protobuf/Descriptors.java42
-rw-r--r--java/src/main/java/com/google/protobuf/DoubleArrayList.java243
-rw-r--r--java/src/main/java/com/google/protobuf/FloatArrayList.java242
-rw-r--r--java/src/main/java/com/google/protobuf/GeneratedMessageLite.java396
-rw-r--r--java/src/main/java/com/google/protobuf/IntArrayList.java242
-rw-r--r--java/src/main/java/com/google/protobuf/Internal.java129
-rw-r--r--java/src/main/java/com/google/protobuf/LazyStringArrayList.java87
-rw-r--r--java/src/main/java/com/google/protobuf/LongArrayList.java242
-rw-r--r--java/src/main/java/com/google/protobuf/MapField.java63
-rw-r--r--java/src/main/java/com/google/protobuf/MapFieldLite.java376
-rw-r--r--java/src/main/java/com/google/protobuf/MutabilityOracle.java48
-rw-r--r--java/src/main/java/com/google/protobuf/ProtobufArrayList.java95
-rw-r--r--java/src/main/java/com/google/protobuf/TextFormat.java4
-rw-r--r--java/src/test/java/com/google/protobuf/BooleanArrayListTest.java473
-rw-r--r--java/src/test/java/com/google/protobuf/DescriptorsTest.java17
-rw-r--r--java/src/test/java/com/google/protobuf/DoubleArrayListTest.java473
-rw-r--r--java/src/test/java/com/google/protobuf/FloatArrayListTest.java473
-rw-r--r--java/src/test/java/com/google/protobuf/IntArrayListTest.java473
-rw-r--r--java/src/test/java/com/google/protobuf/LazyStringArrayListTest.java188
-rw-r--r--java/src/test/java/com/google/protobuf/LiteTest.java1314
-rw-r--r--java/src/test/java/com/google/protobuf/LiteralByteStringTest.java3
-rw-r--r--java/src/test/java/com/google/protobuf/LongArrayListTest.java473
-rw-r--r--java/src/test/java/com/google/protobuf/MapForProto2LiteTest.java161
-rw-r--r--java/src/test/java/com/google/protobuf/MapForProto2Test.java148
-rw-r--r--java/src/test/java/com/google/protobuf/MapTest.java133
-rw-r--r--java/src/test/java/com/google/protobuf/ProtobufArrayListTest.java303
-rw-r--r--java/src/test/java/com/google/protobuf/WellKnownTypesTest.java65
-rw-r--r--java/src/test/java/com/google/protobuf/field_presence_test.proto26
-rw-r--r--java/src/test/java/com/google/protobuf/map_initialization_order_test.proto61
-rw-r--r--java/src/test/java/com/google/protobuf/map_test.proto4
-rw-r--r--javanano/pom.xml14
-rwxr-xr-xobjectivec/DevTools/check_version_stamps.sh6
-rwxr-xr-xobjectivec/DevTools/full_mac_build.sh228
-rwxr-xr-xobjectivec/DevTools/generate_descriptors_proto.sh36
-rw-r--r--objectivec/GPBArray.m80
-rw-r--r--objectivec/GPBBootstrap.h6
-rw-r--r--objectivec/GPBCodedInputStream.h8
-rw-r--r--objectivec/GPBDescriptor.h3
-rw-r--r--objectivec/GPBDescriptor.m36
-rw-r--r--objectivec/GPBDescriptor_PackagePrivate.h1
-rw-r--r--objectivec/GPBDictionary.m813
-rw-r--r--objectivec/GPBDictionary_PackagePrivate.h558
-rw-r--r--objectivec/GPBExtensionRegistry.h19
-rw-r--r--objectivec/GPBExtensionRegistry.m10
-rw-r--r--objectivec/GPBMessage.h94
-rw-r--r--objectivec/GPBMessage.m867
-rw-r--r--objectivec/GPBMessage_PackagePrivate.h6
-rw-r--r--objectivec/GPBProtocolBuffers_RuntimeSupport.h2
-rw-r--r--objectivec/GPBRootObject.m61
-rw-r--r--objectivec/GPBRootObject_PackagePrivate.h4
-rw-r--r--objectivec/GPBUtilities.m97
-rw-r--r--objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj5
-rw-r--r--objectivec/ProtocolBuffers_OSX.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme14
-rw-r--r--objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj5
-rw-r--r--objectivec/ProtocolBuffers_iOS.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme14
-rw-r--r--objectivec/README.md77
-rw-r--r--objectivec/Tests/GPBArrayTests.m87
-rw-r--r--objectivec/Tests/GPBCodedInputStreamTests.m12
-rw-r--r--objectivec/Tests/GPBConcurrencyTests.m48
-rw-r--r--objectivec/Tests/GPBDictionaryTests+Bool.m5
-rw-r--r--objectivec/Tests/GPBDictionaryTests+Int32.m5
-rw-r--r--objectivec/Tests/GPBDictionaryTests+Int64.m5
-rw-r--r--objectivec/Tests/GPBDictionaryTests+String.m5
-rw-r--r--objectivec/Tests/GPBDictionaryTests+UInt32.m5
-rw-r--r--objectivec/Tests/GPBDictionaryTests+UInt64.m5
-rw-r--r--objectivec/Tests/GPBDictionaryTests.pddm4
-rw-r--r--objectivec/Tests/GPBMessageTests+Merge.m5
-rw-r--r--objectivec/Tests/GPBMessageTests+Runtime.m11
-rw-r--r--objectivec/Tests/GPBMessageTests+Serialization.m204
-rw-r--r--objectivec/Tests/GPBMessageTests.m285
-rw-r--r--objectivec/Tests/GPBPerfTests.m9
-rw-r--r--objectivec/Tests/GPBStringTests.m5
-rw-r--r--objectivec/Tests/GPBSwiftTests.swift57
-rw-r--r--objectivec/Tests/GPBTestUtilities.h7
-rw-r--r--objectivec/Tests/GPBTestUtilities.m20
-rw-r--r--objectivec/Tests/GPBUnknownFieldSetTest.m17
-rw-r--r--objectivec/Tests/GPBWireFormatTests.m28
-rw-r--r--objectivec/Tests/unittest_objc.proto2
-rw-r--r--objectivec/Tests/unittest_runtime_proto2.proto26
-rw-r--r--objectivec/Tests/unittest_runtime_proto3.proto22
-rwxr-xr-xobjectivec/generate_descriptors_proto.sh54
-rw-r--r--objectivec/google/protobuf/Any.pbobjc.h100
-rw-r--r--objectivec/google/protobuf/Any.pbobjc.m93
-rw-r--r--objectivec/google/protobuf/Api.pbobjc.h121
-rw-r--r--objectivec/google/protobuf/Api.pbobjc.m262
-rw-r--r--objectivec/google/protobuf/Descriptor.pbobjc.h93
-rw-r--r--objectivec/google/protobuf/Descriptor.pbobjc.m153
-rw-r--r--objectivec/google/protobuf/Duration.pbobjc.h12
-rw-r--r--objectivec/google/protobuf/Duration.pbobjc.m4
-rw-r--r--objectivec/google/protobuf/Empty.pbobjc.h41
-rw-r--r--objectivec/google/protobuf/Empty.pbobjc.m61
-rw-r--r--objectivec/google/protobuf/FieldMask.pbobjc.h160
-rw-r--r--objectivec/google/protobuf/FieldMask.pbobjc.m74
-rw-r--r--objectivec/google/protobuf/SourceContext.pbobjc.h44
-rw-r--r--objectivec/google/protobuf/SourceContext.pbobjc.m74
-rw-r--r--objectivec/google/protobuf/Struct.pbobjc.h134
-rw-r--r--objectivec/google/protobuf/Struct.pbobjc.m284
-rw-r--r--objectivec/google/protobuf/Timestamp.pbobjc.h12
-rw-r--r--objectivec/google/protobuf/Timestamp.pbobjc.m4
-rw-r--r--objectivec/google/protobuf/Type.pbobjc.h274
-rw-r--r--objectivec/google/protobuf/Type.pbobjc.m628
-rw-r--r--objectivec/google/protobuf/Wrappers.pbobjc.h154
-rw-r--r--objectivec/google/protobuf/Wrappers.pbobjc.m458
-rwxr-xr-xpost_process_dist.sh2
-rw-r--r--protobuf-lite.pc.in4
-rw-r--r--protobuf.pc.in4
-rw-r--r--protoc-artifacts/Dockerfile40
-rw-r--r--protoc-artifacts/README.md21
-rw-r--r--protoc-artifacts/pom.xml2
-rwxr-xr-xpython/google/protobuf/__init__.py2
-rwxr-xr-xpython/google/protobuf/descriptor.py46
-rw-r--r--python/google/protobuf/descriptor_pool.py39
-rwxr-xr-xpython/google/protobuf/internal/containers.py297
-rwxr-xr-xpython/google/protobuf/internal/decoder.py44
-rw-r--r--python/google/protobuf/internal/descriptor_database_test.py1
-rw-r--r--python/google/protobuf/internal/descriptor_pool_test.py45
-rwxr-xr-xpython/google/protobuf/internal/descriptor_test.py2
-rwxr-xr-xpython/google/protobuf/internal/encoder.py55
-rwxr-xr-xpython/google/protobuf/internal/generator_test.py1
-rw-r--r--python/google/protobuf/internal/message_factory_test.py1
-rwxr-xr-xpython/google/protobuf/internal/message_test.py521
-rw-r--r--python/google/protobuf/internal/proto_builder_test.py21
-rwxr-xr-xpython/google/protobuf/internal/python_message.py159
-rwxr-xr-xpython/google/protobuf/internal/reflection_test.py6
-rwxr-xr-xpython/google/protobuf/internal/service_reflection_test.py3
-rw-r--r--python/google/protobuf/internal/symbol_database_test.py1
-rwxr-xr-xpython/google/protobuf/internal/test_util.py24
-rwxr-xr-xpython/google/protobuf/internal/text_encoding_test.py1
-rwxr-xr-xpython/google/protobuf/internal/text_format_test.py141
-rwxr-xr-xpython/google/protobuf/internal/type_checkers.py9
-rwxr-xr-xpython/google/protobuf/internal/unknown_fields_test.py1
-rwxr-xr-xpython/google/protobuf/internal/wire_format_test.py1
-rw-r--r--python/google/protobuf/proto_builder.py20
-rw-r--r--python/google/protobuf/pyext/descriptor.cc287
-rw-r--r--python/google/protobuf/pyext/descriptor.h21
-rw-r--r--python/google/protobuf/pyext/descriptor_containers.cc26
-rw-r--r--python/google/protobuf/pyext/descriptor_containers.h5
-rw-r--r--python/google/protobuf/pyext/descriptor_pool.cc185
-rw-r--r--python/google/protobuf/pyext/descriptor_pool.h8
-rw-r--r--python/google/protobuf/pyext/extension_dict.cc17
-rw-r--r--python/google/protobuf/pyext/message.cc432
-rw-r--r--python/google/protobuf/pyext/message.h13
-rw-r--r--python/google/protobuf/pyext/message_map_container.cc540
-rw-r--r--python/google/protobuf/pyext/message_map_container.h117
-rw-r--r--python/google/protobuf/pyext/repeated_composite_container.cc56
-rw-r--r--python/google/protobuf/pyext/repeated_composite_container.h10
-rw-r--r--python/google/protobuf/pyext/repeated_scalar_container.cc8
-rw-r--r--python/google/protobuf/pyext/scalar_map_container.cc514
-rw-r--r--python/google/protobuf/pyext/scalar_map_container.h110
-rwxr-xr-xpython/google/protobuf/reflection.py1
-rwxr-xr-xpython/google/protobuf/text_format.py36
-rwxr-xr-xpython/setup.py57
-rw-r--r--ruby/Gemfile.lock2
-rw-r--r--ruby/ext/google/protobuf_c/defs.c8
-rw-r--r--ruby/ext/google/protobuf_c/encode_decode.c160
-rw-r--r--ruby/ext/google/protobuf_c/extconf.rb4
-rw-r--r--ruby/ext/google/protobuf_c/message.c53
-rw-r--r--ruby/ext/google/protobuf_c/protobuf.c17
-rw-r--r--ruby/ext/google/protobuf_c/protobuf.h18
-rw-r--r--ruby/ext/google/protobuf_c/repeated_field.c132
-rw-r--r--ruby/ext/google/protobuf_c/storage.c3
-rw-r--r--ruby/ext/google/protobuf_c/upb.c1070
-rw-r--r--ruby/ext/google/protobuf_c/upb.h978
-rw-r--r--ruby/google-protobuf.gemspec2
-rw-r--r--ruby/lib/google/protobuf.rb25
-rw-r--r--ruby/lib/google/protobuf/message_exts.rb53
-rw-r--r--ruby/lib/google/protobuf/repeated_field.rb152
-rw-r--r--ruby/pom.xml10
-rw-r--r--ruby/src/main/java/com/google/protobuf/jruby/RubyDescriptor.java2
-rw-r--r--ruby/src/main/java/com/google/protobuf/jruby/RubyFieldDescriptor.java43
-rw-r--r--ruby/src/main/java/com/google/protobuf/jruby/RubyMap.java2
-rw-r--r--ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java12
-rw-r--r--ruby/src/main/java/com/google/protobuf/jruby/RubyProtobuf.java50
-rw-r--r--ruby/src/main/java/com/google/protobuf/jruby/RubyRepeatedField.java136
-rw-r--r--ruby/tests/basic.rb71
-rw-r--r--ruby/tests/generated_code.proto26
-rw-r--r--ruby/tests/repeated_field_test.rb640
-rwxr-xr-xruby/travis-test.sh15
-rw-r--r--src/Makefile.am101
-rw-r--r--src/google/protobuf/any.cc100
-rw-r--r--src/google/protobuf/any.h90
-rw-r--r--src/google/protobuf/any.pb.cc482
-rw-r--r--src/google/protobuf/any.pb.h250
-rw-r--r--src/google/protobuf/any.proto1
-rw-r--r--src/google/protobuf/any_test.cc89
-rw-r--r--src/google/protobuf/any_test.proto (renamed from objectivec/GPBExtensionRegistry_PackagePrivate.h)15
-rw-r--r--src/google/protobuf/api.pb.cc1400
-rw-r--r--src/google/protobuf/api.pb.h703
-rwxr-xr-xsrc/google/protobuf/arena.cc9
-rw-r--r--src/google/protobuf/arena.h340
-rw-r--r--src/google/protobuf/arena_nc_test.py1
-rw-r--r--src/google/protobuf/arena_test_util.h1
-rw-r--r--src/google/protobuf/arena_unittest.cc82
-rw-r--r--src/google/protobuf/compiler/code_generator.h31
-rw-r--r--src/google/protobuf/compiler/command_line_interface.cc124
-rw-r--r--src/google/protobuf/compiler/command_line_interface_unittest.cc14
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_enum.cc14
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_enum.h6
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_enum_field.cc14
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_field.h26
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_file.cc505
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_file.h29
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_generator.cc1
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_helpers.cc59
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_helpers.h21
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_map_field.cc9
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_message.cc692
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_message.h25
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_message_field.cc33
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_message_field.h6
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_options.h5
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_primitive_field.cc14
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_string_field.cc1
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto34
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_unittest.cc16
-rw-r--r--src/google/protobuf/compiler/cpp/test_large_enum_value.proto43
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_enum.cc78
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_enum.h63
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_enum_field.cc137
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_enum_field.h76
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_extension.cc184
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_extension.h78
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_field_base.cc424
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_field_base.h103
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_generator.cc94
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_generator.h58
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_generator_unittest.cc54
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_helpers.cc421
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_helpers.h112
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_message.cc1006
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_message.h98
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_message_field.cc342
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_message_field.h88
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_primitive_field.cc283
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_primitive_field.h88
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc250
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h73
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc227
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h73
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc239
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h73
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc74
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_source_generator_base.h81
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_umbrella_class.cc291
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_umbrella_class.h76
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_writer.cc136
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_writer.h93
-rw-r--r--src/google/protobuf/compiler/java/java_enum_field.cc16
-rw-r--r--src/google/protobuf/compiler/java/java_enum_field_lite.cc967
-rw-r--r--src/google/protobuf/compiler/java/java_enum_field_lite.h159
-rw-r--r--src/google/protobuf/compiler/java/java_field.cc108
-rw-r--r--src/google/protobuf/compiler/java/java_field.h32
-rw-r--r--src/google/protobuf/compiler/java/java_file.cc10
-rw-r--r--src/google/protobuf/compiler/java/java_generator_factory.cc8
-rw-r--r--src/google/protobuf/compiler/java/java_helpers.h10
-rw-r--r--src/google/protobuf/compiler/java/java_lazy_message_field.cc226
-rw-r--r--src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc708
-rw-r--r--src/google/protobuf/compiler/java/java_lazy_message_field_lite.h118
-rw-r--r--src/google/protobuf/compiler/java/java_map_field.cc51
-rw-r--r--src/google/protobuf/compiler/java/java_map_field.h1
-rw-r--r--src/google/protobuf/compiler/java/java_map_field_lite.cc461
-rw-r--r--src/google/protobuf/compiler/java/java_map_field_lite.h81
-rw-r--r--src/google/protobuf/compiler/java/java_message.cc1184
-rw-r--r--src/google/protobuf/compiler/java/java_message.h11
-rw-r--r--src/google/protobuf/compiler/java/java_message_builder.cc661
-rw-r--r--src/google/protobuf/compiler/java/java_message_builder.h86
-rw-r--r--src/google/protobuf/compiler/java/java_message_builder_lite.cc192
-rw-r--r--src/google/protobuf/compiler/java/java_message_builder_lite.h83
-rw-r--r--src/google/protobuf/compiler/java/java_message_field.cc411
-rw-r--r--src/google/protobuf/compiler/java/java_message_field_lite.cc944
-rw-r--r--src/google/protobuf/compiler/java/java_message_field_lite.h157
-rw-r--r--src/google/protobuf/compiler/java/java_message_lite.cc1174
-rw-r--r--src/google/protobuf/compiler/java/java_message_lite.h91
-rw-r--r--src/google/protobuf/compiler/java/java_primitive_field.cc15
-rw-r--r--src/google/protobuf/compiler/java/java_primitive_field_lite.cc892
-rw-r--r--src/google/protobuf/compiler/java/java_primitive_field_lite.h163
-rw-r--r--src/google/protobuf/compiler/java/java_string_field.cc2
-rw-r--r--src/google/protobuf/compiler/java/java_string_field_lite.cc1013
-rw-r--r--src/google/protobuf/compiler/java/java_string_field_lite.h158
-rw-r--r--src/google/protobuf/compiler/main.cc6
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_enum.h2
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc23
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_enum_field.h3
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_extension.cc5
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_extension.h4
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_field.cc33
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_field.h12
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_file.cc143
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_file.h11
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_generator.cc4
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_helpers.cc140
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_helpers.h12
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc11
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_map_field.cc2
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_map_field.h2
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_message.cc28
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_message.h2
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_message_field.cc6
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_message_field.h7
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_oneof.h2
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc11
-rw-r--r--src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h6
-rw-r--r--src/google/protobuf/compiler/parser.cc80
-rw-r--r--src/google/protobuf/compiler/parser.h8
-rw-r--r--src/google/protobuf/compiler/parser_unittest.cc75
-rw-r--r--src/google/protobuf/compiler/plugin.cc28
-rw-r--r--src/google/protobuf/compiler/plugin.pb.cc94
-rw-r--r--src/google/protobuf/compiler/plugin.pb.h4
-rw-r--r--src/google/protobuf/compiler/ruby/ruby_generated_code.proto67
-rw-r--r--src/google/protobuf/compiler/ruby/ruby_generated_code.rb74
-rw-r--r--src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc18
-rw-r--r--src/google/protobuf/descriptor.cc183
-rw-r--r--src/google/protobuf/descriptor.h67
-rw-r--r--src/google/protobuf/descriptor.pb.cc2025
-rw-r--r--src/google/protobuf/descriptor.pb.h482
-rw-r--r--src/google/protobuf/descriptor.proto51
-rw-r--r--src/google/protobuf/descriptor_database.h4
-rw-r--r--src/google/protobuf/descriptor_unittest.cc246
-rw-r--r--src/google/protobuf/duration.pb.cc407
-rw-r--r--src/google/protobuf/duration.pb.h172
-rw-r--r--src/google/protobuf/duration.proto2
-rw-r--r--src/google/protobuf/empty.pb.cc282
-rw-r--r--src/google/protobuf/empty.pb.h130
-rw-r--r--src/google/protobuf/extension_set.cc61
-rw-r--r--src/google/protobuf/extension_set.h6
-rw-r--r--src/google/protobuf/extension_set_heavy.cc2
-rw-r--r--src/google/protobuf/field_mask.pb.cc394
-rw-r--r--src/google/protobuf/field_mask.pb.h201
-rw-r--r--src/google/protobuf/field_mask.proto1
-rw-r--r--src/google/protobuf/generated_message_reflection.h37
-rw-r--r--src/google/protobuf/generated_message_util.h13
-rw-r--r--src/google/protobuf/io/coded_stream.cc104
-rw-r--r--src/google/protobuf/io/coded_stream.h84
-rw-r--r--src/google/protobuf/io/coded_stream_inl.h17
-rw-r--r--src/google/protobuf/io/printer.cc72
-rw-r--r--src/google/protobuf/io/printer.h32
-rw-r--r--src/google/protobuf/lite_unittest.cc378
-rw-r--r--src/google/protobuf/map.h29
-rw-r--r--src/google/protobuf/map_entry.h6
-rw-r--r--src/google/protobuf/map_entry_lite.h28
-rw-r--r--src/google/protobuf/map_field.cc18
-rw-r--r--src/google/protobuf/map_field.h9
-rw-r--r--src/google/protobuf/map_field_inl.h9
-rw-r--r--src/google/protobuf/map_field_lite.h4
-rw-r--r--src/google/protobuf/map_field_test.cc15
-rw-r--r--src/google/protobuf/map_lite_unittest.proto1
-rw-r--r--src/google/protobuf/map_proto2_unittest.proto2
-rw-r--r--src/google/protobuf/map_test.cc23
-rw-r--r--src/google/protobuf/map_type_handler.h4
-rw-r--r--src/google/protobuf/map_unittest.proto17
-rw-r--r--src/google/protobuf/message.cc19
-rw-r--r--src/google/protobuf/message.h15
-rw-r--r--src/google/protobuf/message_lite.cc2
-rw-r--r--src/google/protobuf/message_lite.h3
-rw-r--r--src/google/protobuf/message_unittest.cc31
-rw-r--r--src/google/protobuf/proto3_arena_unittest.cc10
-rwxr-xr-xsrc/google/protobuf/reflection.h1
-rw-r--r--src/google/protobuf/repeated_field.h64
-rw-r--r--src/google/protobuf/repeated_field_unittest.cc22
-rw-r--r--src/google/protobuf/source_context.pb.cc386
-rw-r--r--src/google/protobuf/source_context.pb.h185
-rw-r--r--src/google/protobuf/struct.pb.cc1455
-rw-r--r--src/google/protobuf/struct.pb.h764
-rw-r--r--src/google/protobuf/struct.proto1
-rw-r--r--src/google/protobuf/stubs/common.h10
-rwxr-xr-xsrc/google/protobuf/stubs/hash.h30
-rw-r--r--src/google/protobuf/stubs/strutil.cc18
-rw-r--r--src/google/protobuf/stubs/strutil.h63
-rw-r--r--src/google/protobuf/testdata/golden_message_proto3bin398 -> 248 bytes
-rw-r--r--src/google/protobuf/testdata/map_test_data.txt140
-rw-r--r--src/google/protobuf/testing/googletest.cc23
-rw-r--r--src/google/protobuf/text_format.cc267
-rw-r--r--src/google/protobuf/text_format.h15
-rw-r--r--src/google/protobuf/text_format_unittest.cc21
-rw-r--r--src/google/protobuf/timestamp.pb.cc407
-rw-r--r--src/google/protobuf/timestamp.pb.h172
-rw-r--r--src/google/protobuf/timestamp.proto1
-rw-r--r--src/google/protobuf/type.pb.cc2899
-rw-r--r--src/google/protobuf/type.pb.h1516
-rw-r--r--src/google/protobuf/unittest.proto7
-rw-r--r--src/google/protobuf/unittest_custom_options.proto1
-rw-r--r--src/google/protobuf/unittest_drop_unknown_fields.proto12
-rw-r--r--src/google/protobuf/unittest_embed_optimize_for.proto2
-rw-r--r--src/google/protobuf/unittest_enormous_descriptor.proto4
-rw-r--r--src/google/protobuf/unittest_import.proto1
-rw-r--r--src/google/protobuf/unittest_import_lite.proto1
-rw-r--r--src/google/protobuf/unittest_import_public.proto1
-rw-r--r--src/google/protobuf/unittest_import_public_lite.proto1
-rw-r--r--src/google/protobuf/unittest_lite.proto1
-rw-r--r--src/google/protobuf/unittest_lite_imports_nonlite.proto1
-rw-r--r--src/google/protobuf/unittest_mset.proto1
-rw-r--r--src/google/protobuf/unittest_no_field_presence.proto58
-rw-r--r--src/google/protobuf/unittest_optimize_for.proto1
-rw-r--r--src/google/protobuf/unittest_preserve_unknown_enum.proto6
-rw-r--r--src/google/protobuf/unittest_preserve_unknown_enum2.proto2
-rw-r--r--src/google/protobuf/unittest_proto3_arena.proto90
-rw-r--r--src/google/protobuf/unittest_well_known_types.proto31
-rw-r--r--src/google/protobuf/unknown_enum_test.proto1
-rw-r--r--src/google/protobuf/unknown_field_set.cc8
-rw-r--r--src/google/protobuf/unknown_field_set.h2
-rw-r--r--src/google/protobuf/well_known_types_unittest.cc60
-rw-r--r--src/google/protobuf/wire_format.cc4
-rw-r--r--src/google/protobuf/wire_format_lite.h11
-rw-r--r--src/google/protobuf/wire_format_lite_inl.h21
-rw-r--r--src/google/protobuf/wire_format_unittest.cc134
-rw-r--r--src/google/protobuf/wrappers.pb.cc2419
-rw-r--r--src/google/protobuf/wrappers.pb.h1011
-rw-r--r--src/google/protobuf/wrappers.proto1
-rwxr-xr-xtravis.sh171
-rwxr-xr-xvsprojects/extract_includes.bat19
-rwxr-xr-xvsprojects/google/protobuf/stubs/pbconfig.h12
-rw-r--r--vsprojects/libprotobuf-lite.vcproj191
-rw-r--r--vsprojects/libprotobuf.vcproj433
-rw-r--r--vsprojects/libprotoc.vcproj528
-rw-r--r--vsprojects/lite-test.vcproj69
-rw-r--r--vsprojects/tests.vcproj517
701 files changed, 315751 insertions, 7903 deletions
diff --git a/.gitignore b/.gitignore
index f1572858..8ea85af0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,6 +44,7 @@ src/.libs
.dirstamp
+any_test.pb.*
map*unittest.pb.*
unittest*.pb.*
cpp_test*.pb.*
@@ -76,8 +77,29 @@ src/**/*.trs
java/target
javanano/target
+# Windows native output.
+vsprojects/Debug
+vsprojects/Release
+
+# NuGet packages: we want the repository configuration, but not the
+# packages themselves.
+/csharp/src/packages/*/
+
# Directories created by opening the Objective C Xcode projects.
objectivec/ProtocolBuffers_OSX.xcodeproj/project.xcworkspace/xcuserdata/
+objectivec/ProtocolBuffers_OSX.xcodeproj/project.xcworkspace/xcshareddata/ProtocolBuffers_OSX.xccheckout
objectivec/ProtocolBuffers_OSX.xcodeproj/xcuserdata/
objectivec/ProtocolBuffers_iOS.xcodeproj/project.xcworkspace/xcuserdata/
+objectivec/ProtocolBuffers_iOS.xcodeproj/project.xcworkspace/xcshareddata/ProtocolBuffers_iOS.xccheckout
objectivec/ProtocolBuffers_iOS.xcodeproj/xcuserdata/
+# OS X's Finder creates these for state about opened windows/etc.
+**/.DS_Store
+
+# Comformance test output
+conformance/.libs/
+conformance/com/
+conformance/conformance-cpp
+conformance/conformance-test-runner
+conformance/conformance.pb.cc
+conformance/conformance.pb.h
+conformance/protoc_middleman
diff --git a/.travis.yml b/.travis.yml
index 354be896..9dc99b4e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,20 +1,26 @@
-sudo: false
-language: java
-jdk:
- - openjdk6
- - openjdk7
- - oraclejdk7
+sudo: required
+language: cpp
os:
- linux
- osx
script:
- - ./autogen.sh && ./configure && make -j2
- - cd java && mvn test && cd ..
- - cd javanano && mvn test && cd ..
- - cd python && python setup.py build && python setup.py test && cd ..
- - export LD_LIBRARY_PATH=../src/.libs
- - cd python && python setup.py build --cpp_implementation && python setup.py test --cpp_implementation && cd ..
- - cd conformance && make test_java && cd ..
- - make distcheck -j2
+ - ./travis.sh $CONFIG
+env:
+ - CONFIG=cpp
+ - CONFIG=cpp_distcheck
+ - CONFIG=csharp
+ - CONFIG=java_jdk6
+ - CONFIG=java_jdk7
+ - CONFIG=java_oracle7
+ - CONFIG=javanano_jdk6
+ - CONFIG=javanano_jdk7
+ - CONFIG=javanano_oracle7
+ - CONFIG=python
+ - CONFIG=python_cpp
+ - CONFIG=ruby19
+ - CONFIG=ruby20
+ - CONFIG=ruby21
+ - CONFIG=ruby22
+ - CONFIG=jruby
notifications:
email: false
diff --git a/Android.mk b/Android.mk
deleted file mode 100644
index 18bdd091..00000000
--- a/Android.mk
+++ /dev/null
@@ -1,486 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-
-LOCAL_PATH := $(call my-dir)
-
-IGNORED_WARNINGS := -Wno-sign-compare -Wno-unused-parameter -Wno-sign-promo
-
-CC_LITE_SRC_FILES := \
- src/google/protobuf/stubs/common.cc \
- src/google/protobuf/stubs/once.cc \
- src/google/protobuf/stubs/hash.cc \
- src/google/protobuf/stubs/hash.h \
- src/google/protobuf/stubs/map-util.h \
- src/google/protobuf/stubs/stl_util-inl.h \
- src/google/protobuf/extension_set.cc \
- src/google/protobuf/generated_message_util.cc \
- src/google/protobuf/message_lite.cc \
- src/google/protobuf/repeated_field.cc \
- src/google/protobuf/wire_format_lite.cc \
- src/google/protobuf/io/coded_stream.cc \
- src/google/protobuf/io/coded_stream_inl.h \
- src/google/protobuf/io/zero_copy_stream.cc \
- src/google/protobuf/io/zero_copy_stream_impl_lite.cc
-
-JAVA_LITE_SRC_FILES := \
- java/src/main/java/com/google/protobuf/UninitializedMessageException.java \
- java/src/main/java/com/google/protobuf/MessageLite.java \
- java/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java \
- java/src/main/java/com/google/protobuf/CodedOutputStream.java \
- java/src/main/java/com/google/protobuf/ByteString.java \
- java/src/main/java/com/google/protobuf/CodedInputStream.java \
- java/src/main/java/com/google/protobuf/ExtensionRegistryLite.java \
- java/src/main/java/com/google/protobuf/AbstractMessageLite.java \
- java/src/main/java/com/google/protobuf/FieldSet.java \
- java/src/main/java/com/google/protobuf/Internal.java \
- java/src/main/java/com/google/protobuf/WireFormat.java \
- java/src/main/java/com/google/protobuf/GeneratedMessageLite.java
-
-COMPILER_SRC_FILES := \
- src/google/protobuf/descriptor.cc \
- src/google/protobuf/descriptor.pb.cc \
- src/google/protobuf/descriptor_database.cc \
- src/google/protobuf/dynamic_message.cc \
- src/google/protobuf/extension_set.cc \
- src/google/protobuf/extension_set_heavy.cc \
- src/google/protobuf/generated_message_reflection.cc \
- src/google/protobuf/generated_message_util.cc \
- src/google/protobuf/message.cc \
- src/google/protobuf/message_lite.cc \
- src/google/protobuf/reflection_ops.cc \
- src/google/protobuf/repeated_field.cc \
- src/google/protobuf/service.cc \
- src/google/protobuf/text_format.cc \
- src/google/protobuf/unknown_field_set.cc \
- src/google/protobuf/wire_format.cc \
- src/google/protobuf/wire_format_lite.cc \
- src/google/protobuf/compiler/code_generator.cc \
- src/google/protobuf/compiler/command_line_interface.cc \
- src/google/protobuf/compiler/importer.cc \
- src/google/protobuf/compiler/main.cc \
- src/google/protobuf/compiler/parser.cc \
- src/google/protobuf/compiler/plugin.cc \
- src/google/protobuf/compiler/plugin.pb.cc \
- src/google/protobuf/compiler/subprocess.cc \
- src/google/protobuf/compiler/zip_writer.cc \
- src/google/protobuf/compiler/cpp/cpp_enum.cc \
- src/google/protobuf/compiler/cpp/cpp_enum_field.cc \
- src/google/protobuf/compiler/cpp/cpp_extension.cc \
- src/google/protobuf/compiler/cpp/cpp_field.cc \
- src/google/protobuf/compiler/cpp/cpp_file.cc \
- src/google/protobuf/compiler/cpp/cpp_generator.cc \
- src/google/protobuf/compiler/cpp/cpp_helpers.cc \
- src/google/protobuf/compiler/cpp/cpp_message.cc \
- src/google/protobuf/compiler/cpp/cpp_message_field.cc \
- src/google/protobuf/compiler/cpp/cpp_primitive_field.cc \
- src/google/protobuf/compiler/cpp/cpp_service.cc \
- src/google/protobuf/compiler/cpp/cpp_string_field.cc \
- src/google/protobuf/compiler/java/java_enum.cc \
- src/google/protobuf/compiler/java/java_enum_field.cc \
- src/google/protobuf/compiler/java/java_extension.cc \
- src/google/protobuf/compiler/java/java_field.cc \
- src/google/protobuf/compiler/java/java_file.cc \
- src/google/protobuf/compiler/java/java_generator.cc \
- src/google/protobuf/compiler/java/java_helpers.cc \
- src/google/protobuf/compiler/java/java_message.cc \
- src/google/protobuf/compiler/java/java_message_field.cc \
- src/google/protobuf/compiler/java/java_primitive_field.cc \
- src/google/protobuf/compiler/java/java_service.cc \
- src/google/protobuf/compiler/javamicro/javamicro_enum.cc \
- src/google/protobuf/compiler/javamicro/javamicro_enum_field.cc \
- src/google/protobuf/compiler/javamicro/javamicro_field.cc \
- src/google/protobuf/compiler/javamicro/javamicro_file.cc \
- src/google/protobuf/compiler/javamicro/javamicro_generator.cc \
- src/google/protobuf/compiler/javamicro/javamicro_helpers.cc \
- src/google/protobuf/compiler/javamicro/javamicro_message.cc \
- src/google/protobuf/compiler/javamicro/javamicro_message_field.cc \
- src/google/protobuf/compiler/javamicro/javamicro_primitive_field.cc \
- src/google/protobuf/compiler/javanano/javanano_enum.cc \
- src/google/protobuf/compiler/javanano/javanano_enum_field.cc \
- src/google/protobuf/compiler/javanano/javanano_extension.cc \
- src/google/protobuf/compiler/javanano/javanano_field.cc \
- src/google/protobuf/compiler/javanano/javanano_file.cc \
- src/google/protobuf/compiler/javanano/javanano_generator.cc \
- src/google/protobuf/compiler/javanano/javanano_helpers.cc \
- src/google/protobuf/compiler/javanano/javanano_message.cc \
- src/google/protobuf/compiler/javanano/javanano_message_field.cc \
- src/google/protobuf/compiler/javanano/javanano_primitive_field.cc \
- src/google/protobuf/compiler/python/python_generator.cc \
- src/google/protobuf/io/coded_stream.cc \
- src/google/protobuf/io/gzip_stream.cc \
- src/google/protobuf/io/printer.cc \
- src/google/protobuf/io/tokenizer.cc \
- src/google/protobuf/io/zero_copy_stream.cc \
- src/google/protobuf/io/zero_copy_stream_impl.cc \
- src/google/protobuf/io/zero_copy_stream_impl_lite.cc \
- src/google/protobuf/stubs/common.cc \
- src/google/protobuf/stubs/hash.cc \
- src/google/protobuf/stubs/once.cc \
- src/google/protobuf/stubs/structurally_valid.cc \
- src/google/protobuf/stubs/strutil.cc \
- src/google/protobuf/stubs/substitute.cc
-
-# Java nano library (for device-side users)
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libprotobuf-java-nano
-LOCAL_MODULE_TAGS := optional
-LOCAL_SDK_VERSION := 8
-
-LOCAL_SRC_FILES := $(call all-java-files-under, java/src/main/java/com/google/protobuf/nano)
-LOCAL_SRC_FILES += $(call all-java-files-under, java/src/device/main/java/com/google/protobuf/nano)
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-# Java nano library (for host-side users)
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := host-libprotobuf-java-nano
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := $(call all-java-files-under, java/src/main/java/com/google/protobuf/nano)
-
-include $(BUILD_HOST_JAVA_LIBRARY)
-
-# Java micro library (for device-side users)
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libprotobuf-java-micro
-LOCAL_MODULE_TAGS := optional
-LOCAL_SDK_VERSION := 8
-
-LOCAL_SRC_FILES := $(call all-java-files-under, java/src/main/java/com/google/protobuf/micro)
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-# Java micro library (for host-side users)
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := host-libprotobuf-java-micro
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := $(call all-java-files-under, java/src/main/java/com/google/protobuf/micro)
-
-include $(BUILD_HOST_JAVA_LIBRARY)
-
-# Java lite library (for device-side users)
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libprotobuf-java-lite
-LOCAL_MODULE_TAGS := optional
-LOCAL_SDK_VERSION := 8
-
-LOCAL_SRC_FILES := $(JAVA_LITE_SRC_FILES)
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-# Java lite library (for host-side users)
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := host-libprotobuf-java-lite
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := $(JAVA_LITE_SRC_FILES)
-
-include $(BUILD_HOST_JAVA_LIBRARY)
-
-# C++ lite library
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libprotobuf-cpp-lite
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_CPP_EXTENSION := .cc
-
-LOCAL_SRC_FILES := $(CC_LITE_SRC_FILES)
-
-LOCAL_C_INCLUDES := \
- $(LOCAL_PATH)/android \
- $(LOCAL_PATH)/src
-
-# Define the header files to be copied
-#LOCAL_COPY_HEADERS := \
-# src/google/protobuf/stubs/once.h \
-# src/google/protobuf/stubs/common.h \
-# src/google/protobuf/io/coded_stream.h \
-# src/google/protobuf/generated_message_util.h \
-# src/google/protobuf/repeated_field.h \
-# src/google/protobuf/extension_set.h \
-# src/google/protobuf/wire_format_lite_inl.h
-#
-#LOCAL_COPY_HEADERS_TO := $(LOCAL_MODULE)
-
-LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI $(IGNORED_WARNINGS)
-
-# These are the minimum versions and don't need to be update.
-ifeq ($(TARGET_ARCH),arm)
-LOCAL_SDK_VERSION := 8
-else
-# x86/mips support only available from API 9.
-LOCAL_SDK_VERSION := 9
-endif
-LOCAL_NDK_STL_VARIANT := stlport_static
-
-include $(BUILD_STATIC_LIBRARY)
-
-# C++ lite library (libc++ flavored for the platform)
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libprotobuf-cpp-lite
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_CPP_EXTENSION := .cc
-
-LOCAL_SRC_FILES := $(CC_LITE_SRC_FILES)
-
-LOCAL_C_INCLUDES := \
- $(LOCAL_PATH)/android \
- $(LOCAL_PATH)/src
-
-LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI $(IGNORED_WARNINGS)
-
-include $(BUILD_SHARED_LIBRARY)
-
-# C++ full library
-# =======================================================
-protobuf_cc_full_src_files := \
- $(CC_LITE_SRC_FILES) \
- src/google/protobuf/stubs/strutil.cc \
- src/google/protobuf/stubs/strutil.h \
- src/google/protobuf/stubs/substitute.cc \
- src/google/protobuf/stubs/substitute.h \
- src/google/protobuf/stubs/structurally_valid.cc \
- src/google/protobuf/descriptor.cc \
- src/google/protobuf/descriptor.pb.cc \
- src/google/protobuf/descriptor_database.cc \
- src/google/protobuf/dynamic_message.cc \
- src/google/protobuf/extension_set_heavy.cc \
- src/google/protobuf/generated_message_reflection.cc \
- src/google/protobuf/message.cc \
- src/google/protobuf/reflection_ops.cc \
- src/google/protobuf/service.cc \
- src/google/protobuf/text_format.cc \
- src/google/protobuf/unknown_field_set.cc \
- src/google/protobuf/wire_format.cc \
- src/google/protobuf/io/gzip_stream.cc \
- src/google/protobuf/io/printer.cc \
- src/google/protobuf/io/tokenizer.cc \
- src/google/protobuf/io/zero_copy_stream_impl.cc \
- src/google/protobuf/compiler/importer.cc \
- src/google/protobuf/compiler/parser.cc
-
-# C++ full library - stlport version
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libprotobuf-cpp-full
-LOCAL_MODULE_TAGS := optional
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_SRC_FILES := $(protobuf_cc_full_src_files)
-LOCAL_C_INCLUDES := \
- $(LOCAL_PATH)/android \
- external/zlib \
- $(LOCAL_PATH)/src
-
-# Define the header files to be copied
-#LOCAL_COPY_HEADERS := \
-# src/google/protobuf/stubs/once.h \
-# src/google/protobuf/stubs/common.h \
-# src/google/protobuf/io/coded_stream.h \
-# src/google/protobuf/generated_message_util.h \
-# src/google/protobuf/repeated_field.h \
-# src/google/protobuf/extension_set.h \
-# src/google/protobuf/wire_format_lite_inl.h
-#
-#LOCAL_COPY_HEADERS_TO := $(LOCAL_MODULE)
-
-LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI $(IGNORED_WARNINGS)
-
-# These are the minimum versions and don't need to be update.
-ifeq ($(TARGET_ARCH),arm)
-LOCAL_SDK_VERSION := 8
-else
-# x86/mips support only available from API 9.
-LOCAL_SDK_VERSION := 9
-endif
-LOCAL_NDK_STL_VARIANT := stlport_static
-
-include $(BUILD_STATIC_LIBRARY)
-
-# C++ full library - Gnustl+rtti version
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libprotobuf-cpp-full-gnustl-rtti
-LOCAL_MODULE_TAGS := optional
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_SRC_FILES := $(protobuf_cc_full_src_files)
-LOCAL_C_INCLUDES := \
- $(LOCAL_PATH)/android \
- external/zlib \
- $(LOCAL_PATH)/src
-
-LOCAL_CFLAGS := -frtti $(IGNORED_WARNINGS)
-LOCAL_SDK_VERSION := 14
-LOCAL_NDK_STL_VARIANT := gnustl_static
-
-include $(BUILD_STATIC_LIBRARY)
-
-# C++ full library - libc++ version for the platform
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libprotobuf-cpp-full
-LOCAL_MODULE_TAGS := optional
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_SRC_FILES := $(protobuf_cc_full_src_files)
-LOCAL_C_INCLUDES := \
- $(LOCAL_PATH)/android \
- external/zlib \
- $(LOCAL_PATH)/src
-
-LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI $(IGNORED_WARNINGS)
-LOCAL_SHARED_LIBRARIES := libz
-
-include $(BUILD_SHARED_LIBRARY)
-
-# Clean temp vars
-protobuf_cc_full_src_files :=
-
-
-# Android Protocol buffer compiler, aprotoc (host executable)
-# used by the build systems as $(PROTOC) defined in
-# build/core/config.mk
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := aprotoc
-LOCAL_MODULE_CLASS := EXECUTABLES
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_SRC_FILES := $(COMPILER_SRC_FILES)
-
-LOCAL_C_INCLUDES := \
- $(LOCAL_PATH)/android \
- external/zlib \
- $(LOCAL_PATH)/src
-
-LOCAL_STATIC_LIBRARIES += libz
-
-ifneq ($(HOST_OS),windows)
-LOCAL_LDLIBS := -lpthread
-endif
-
-LOCAL_CFLAGS := $(IGNORED_WARNINGS)
-
-include $(BUILD_HOST_EXECUTABLE)
-
-# To test java proto params build rules.
-# =======================================================
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := aprotoc-test-nano-params
-LOCAL_MODULE_TAGS := tests
-LOCAL_SDK_VERSION := current
-
-LOCAL_PROTOC_OPTIMIZE_TYPE := nano
-
-LOCAL_SRC_FILES := \
- src/google/protobuf/unittest_import_nano.proto \
- src/google/protobuf/unittest_simple_nano.proto \
- src/google/protobuf/unittest_stringutf8_nano.proto \
- src/google/protobuf/unittest_recursive_nano.proto
-
-
-LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/src
-
-LOCAL_PROTO_JAVA_OUTPUT_PARAMS := \
- java_package = $(LOCAL_PATH)/src/google/protobuf/unittest_import_nano.proto|com.google.protobuf.nano, \
- java_outer_classname = $(LOCAL_PATH)/src/google/protobuf/unittest_import_nano.proto|UnittestImportNano
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-# To test Android-specific nanoproto features.
-# =======================================================
-include $(CLEAR_VARS)
-
-# Parcelable messages
-LOCAL_MODULE := android-nano-test-parcelable
-LOCAL_MODULE_TAGS := tests
-LOCAL_SDK_VERSION := current
-
-LOCAL_PROTOC_OPTIMIZE_TYPE := nano
-
-LOCAL_SRC_FILES := src/google/protobuf/unittest_simple_nano.proto
-
-LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/src
-
-LOCAL_PROTO_JAVA_OUTPUT_PARAMS := \
- parcelable_messages = true
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-include $(CLEAR_VARS)
-
-# Parcelable and extendable messages
-LOCAL_MODULE := android-nano-test-parcelable-extendable
-LOCAL_MODULE_TAGS := tests
-LOCAL_SDK_VERSION := current
-
-LOCAL_PROTOC_OPTIMIZE_TYPE := nano
-
-LOCAL_SRC_FILES := src/google/protobuf/unittest_extension_nano.proto
-
-LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/src
-
-LOCAL_PROTO_JAVA_OUTPUT_PARAMS := \
- parcelable_messages = true, \
- store_unknown_fields = true
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-include $(CLEAR_VARS)
-
-# Test APK
-LOCAL_PACKAGE_NAME := NanoAndroidTest
-
-LOCAL_SDK_VERSION := 8
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, java/src/device/test/java/com/google/protobuf/nano)
-
-LOCAL_MANIFEST_FILE := java/src/device/test/AndroidManifest.xml
-
-LOCAL_STATIC_JAVA_LIBRARIES := libprotobuf-java-nano \
- android-nano-test-parcelable \
- android-nano-test-parcelable-extendable
-
-LOCAL_DEX_PREOPT := false
-
-include $(BUILD_PACKAGE)
-
-# 2.3.0 prebuilts for backwards compatibility.
-include $(LOCAL_PATH)/prebuilts/Android.mk
diff --git a/CHANGES.txt b/CHANGES.txt
index ac42aa5a..846d735e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,3 +1,103 @@
+2015-05-25 version 3.0.0-alpha-3 (Objective-C/C#):
+ General
+ * Introduced two new language implementations (Objective-C, C#) to proto3.
+ * Explicit "optional" keyword are disallowed in proto3 syntax, as fields are
+ optional by default.
+ * Group fields are no longer supported in proto3 syntax.
+ * Changed repeated primitive fields to use packed serialization by default in
+ proto3 (implemented for C++, Java, Python in this release). The user can
+ still disable packed serialization by setting packed to false for now.
+ * Added well-known type protos (any.proto, empty.proto, timestamp.proto,
+ duration.proto, etc.). Users can import and use these protos just like
+ regular proto files. Addtional runtime support will be added for them in
+ future releases (in the form of utility helper functions, or having them
+ replaced by language specific types in generated code).
+ * Added a "reserved" keyword in both proto2 and proto3 syntax. User can use
+ this keyword to declare reserved field numbers and names to prevent them
+ from being reused by other fields in the same message.
+
+ To reserve field numbers, add a reserved declaration in your message:
+
+ message TestMessage {
+ reserved 2, 15, 9 to 11, 3;
+ }
+
+ This reserves field numbers 2, 3, 9, 10, 11 and 15. If a user uses any of
+ these as field numbers, the protocol buffer compiler will report an error.
+
+ Field names can also be reserved:
+
+ message TestMessage {
+ reserved "foo", "bar";
+ }
+
+ * Various bug fixes since 3.0.0-alpha-2
+
+ Objective-C
+ Objective-C includes a code generator and a native objective-c runtime
+ library. By adding “--objc_out” to protoc, the code generator will generate
+ a header(*.pbobjc.h) and an implementation file(*.pbobjc.m) for each proto
+ file.
+
+ In this first release, the generated interface provides: enums, messages,
+ field support(single, repeated, map, oneof), proto2 and proto3 syntax
+ support, parsing and serialization. It’s compatible with ARC and non-ARC
+ usage. Besides, user can also access it via the swift bridging header.
+
+ See objectivec/README.md for details.
+
+ C#
+ * C# protobufs are based on project
+ https://github.com/jskeet/protobuf-csharp-port. The original project was
+ frozen and all the new development will happen here.
+ * Codegen plugin for C# was completely rewritten to C++ and is now an
+ intergral part of protoc.
+ * Some refactorings and cleanup has been applied to the C# runtime library.
+ * Only proto2 is supported in C# at the moment, proto3 support is in
+ progress and will likely bring significant breaking changes to the API.
+
+ See csharp/README.md for details.
+
+ C++
+ * Added runtime support for Any type. To use Any in your proto file, first
+ import the definition of Any:
+
+ // foo.proto
+ import "google/protobuf/any.proto";
+ message Foo {
+ google.protobuf.Any any_field = 1;
+ }
+ message Bar {
+ int32 value = 1;
+ }
+
+ Then in C++ you can access the Any field using PackFrom()/UnpackTo()
+ methods:
+
+ Foo foo;
+ Bar bar = ...;
+ foo.mutable_any_field()->PackFrom(bar);
+ ...
+ if (foo.any_field().IsType<Bar>()) {
+ foo.any_field().UnpackTo(&bar);
+ ...
+ }
+ * In text format, entries of a map field will be sorted by key.
+
+ Java
+ * Continued optimizations on the lite runtime to improve performance for
+ Android.
+
+ Python
+ * Added map support.
+ - maps now have a dict-like interface (msg.map_field[key] = value)
+ - existing code that modifies maps via the repeated field interface
+ will need to be updated.
+
+ Ruby
+ * Improvements to RepeatedField's emulation of the Ruby Array API.
+ * Various speedups and internal cleanups.
+
2015-02-26 version 3.0.0-alpha-2 (Python/Ruby/JavaNano):
General
* Introduced three new language implementations (Ruby, JavaNano, and
diff --git a/LICENSE b/LICENSE
index f086efdb..a15d52c1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -8,8 +8,6 @@ This license applies to all parts of Protocol Buffers except the following:
src/google/protobuf/stubs/atomicops_internals_aix.h.
This file is copyrighted by Bloomberg Finance LP.
- - Andorid.mk, which is copyrighted by The Android Open Source Project.
-
Copyright 2014, Google Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/Makefile.am b/Makefile.am
index eecffa1f..084fca6b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -39,32 +39,287 @@ clean-local:
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = protobuf.pc protobuf-lite.pc
+csharp_EXTRA_DIST= \
+ csharp/src/ProtocolBuffers.sln \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublicLite.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasLite.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasFull.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImport.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLiteImportsNonlite.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportLite.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/Unittest.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLite.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublic.cs \
+ csharp/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs \
+ csharp/src/ProtocolBuffersLite.Test/packages.config \
+ csharp/src/ProtocolBuffersLite.Test/LiteTest.cs \
+ csharp/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs \
+ csharp/src/ProtocolBuffersLite.Test/MissingFieldAndExtensionTest.cs \
+ csharp/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj \
+ csharp/src/ProtocolBuffersLite.Test/App.xaml.cs \
+ csharp/src/ProtocolBuffersLite.Test/InteropLiteTest.cs \
+ csharp/src/ProtocolBuffersLite.Test/ExtendableBuilderLiteTest.cs \
+ csharp/src/ProtocolBuffersLite.Test/App.xaml \
+ csharp/src/ProtocolBuffersLite.Test/TestLiteByApi.cs \
+ csharp/src/ProtocolBuffersLite.Test/Properties/AppManifest.xml \
+ csharp/src/ProtocolBuffersLite.Test/Properties/OutOfBrowserSettings.xml \
+ csharp/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj \
+ csharp/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs \
+ csharp/src/ProtoDump/ProtoDump.csproj \
+ csharp/src/ProtoDump/app.config \
+ csharp/src/ProtoDump/Program.cs \
+ csharp/src/ProtoDump/Properties/AssemblyInfo.cs \
+ csharp/src/ProtocolBuffers.Serialization/AbstractReader.cs \
+ csharp/src/ProtocolBuffers.Serialization/JsonFormatReader.cs \
+ csharp/src/ProtocolBuffers.Serialization/JsonTextCursor.cs \
+ csharp/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj \
+ csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs \
+ csharp/src/ProtocolBuffers.Serialization/AbstractWriter.cs \
+ csharp/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj \
+ csharp/src/ProtocolBuffers.Serialization/XmlReaderOptions.cs \
+ csharp/src/ProtocolBuffers.Serialization/AbstractTextReader.cs \
+ csharp/src/ProtocolBuffers.Serialization/XmlWriterOptions.cs \
+ csharp/src/ProtocolBuffers.Serialization/JsonFormatWriter.cs \
+ csharp/src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs \
+ csharp/src/ProtocolBuffers.Serialization/DictionaryReader.cs \
+ csharp/src/ProtocolBuffers.Serialization/Extensions.cs \
+ csharp/src/ProtocolBuffers.Serialization/AbstractTextWriter.cs \
+ csharp/src/ProtocolBuffers.Serialization/XmlFormatWriter.cs \
+ csharp/src/ProtocolBuffers.Serialization/Http/FormUrlEncodedReader.cs \
+ csharp/src/ProtocolBuffers.Serialization/Http/MessageFormatOptions.cs \
+ csharp/src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs \
+ csharp/src/ProtocolBuffers.Serialization/XmlFormatReader.cs \
+ csharp/src/ProtocolBuffers.Serialization/RecursionLimitExceeded.cs \
+ csharp/src/ProtoBench/GoogleSize.cs \
+ csharp/src/ProtoBench/GoogleSpeed.cs \
+ csharp/src/ProtoBench/UnittestImport.cs \
+ csharp/src/ProtoBench/google_message1.dat \
+ csharp/src/ProtoBench/ProtoBench.csproj \
+ csharp/src/ProtoBench/app.config \
+ csharp/src/ProtoBench/Program.cs \
+ csharp/src/ProtoBench/google_message2.dat \
+ csharp/src/ProtoBench/Properties/AssemblyInfo.cs \
+ csharp/src/ProtoBench/Unittest.cs \
+ csharp/src/ProtoBench/UnittestImportPublic.cs \
+ csharp/src/ProtoMunge/app.config \
+ csharp/src/ProtoMunge/Program.cs \
+ csharp/src/ProtoMunge/Properties/AssemblyInfo.cs \
+ csharp/src/ProtoMunge/ProtoMunge.csproj \
+ csharp/src/ProtocolBuffers/GeneratedMessage.cs \
+ csharp/src/ProtocolBuffers/ICodedInputStream.cs \
+ csharp/src/ProtocolBuffers/AbstractBuilder.cs \
+ csharp/src/ProtocolBuffers/FieldSet.cs \
+ csharp/src/ProtocolBuffers/TextGenerator.cs \
+ csharp/src/ProtocolBuffers/CodedInputStream.cs \
+ csharp/src/ProtocolBuffers/GeneratedExtensionLite.cs \
+ csharp/src/ProtocolBuffers/FrameworkPortability.cs \
+ csharp/src/ProtocolBuffers/SortedList.cs \
+ csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs \
+ csharp/src/ProtocolBuffers/ExtendableMessage.cs \
+ csharp/src/ProtocolBuffers/Descriptors/ServiceDescriptor.cs \
+ csharp/src/ProtocolBuffers/Descriptors/DescriptorBase.cs \
+ csharp/src/ProtocolBuffers/Descriptors/EnumDescriptor.cs \
+ csharp/src/ProtocolBuffers/Descriptors/PackageDescriptor.cs \
+ csharp/src/ProtocolBuffers/Descriptors/FileDescriptor.cs \
+ csharp/src/ProtocolBuffers/Descriptors/DescriptorValidationException.cs \
+ csharp/src/ProtocolBuffers/Descriptors/IndexedDescriptorBase.cs \
+ csharp/src/ProtocolBuffers/Descriptors/MessageDescriptor.cs \
+ csharp/src/ProtocolBuffers/Descriptors/MethodDescriptor.cs \
+ csharp/src/ProtocolBuffers/Descriptors/DescriptorUtil.cs \
+ csharp/src/ProtocolBuffers/Descriptors/MappedType.cs \
+ csharp/src/ProtocolBuffers/Descriptors/FieldType.cs \
+ csharp/src/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs \
+ csharp/src/ProtocolBuffers/Descriptors/IDescriptor.cs \
+ csharp/src/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs \
+ csharp/src/ProtocolBuffers/Descriptors/FieldDescriptor.cs \
+ csharp/src/ProtocolBuffers/Descriptors/DescriptorPool.cs \
+ csharp/src/ProtocolBuffers/Delegates.cs \
+ csharp/src/ProtocolBuffers/AbstractMessageLite.cs \
+ csharp/src/ProtocolBuffers/IMessageLite.cs \
+ csharp/src/ProtocolBuffers/TextFormat.cs \
+ csharp/src/ProtocolBuffers/Collections/Enumerables.cs \
+ csharp/src/ProtocolBuffers/Collections/PopsicleList.cs \
+ csharp/src/ProtocolBuffers/Collections/IPopsicleList.cs \
+ csharp/src/ProtocolBuffers/Collections/ReadOnlyDictionary.cs \
+ csharp/src/ProtocolBuffers/Collections/Dictionaries.cs \
+ csharp/src/ProtocolBuffers/Collections/Lists.cs \
+ csharp/src/ProtocolBuffers/IMessage.cs \
+ csharp/src/ProtocolBuffers/TextTokenizer.cs \
+ csharp/src/ProtocolBuffers/ByteString.cs \
+ csharp/src/ProtocolBuffers/AbstractBuilderLite.cs \
+ csharp/src/ProtocolBuffers/GeneratedExtensionBase.cs \
+ csharp/src/ProtocolBuffers/EnumLite.cs \
+ csharp/src/ProtocolBuffers/ByteArray.cs \
+ csharp/src/ProtocolBuffers/ExtensionInfo.cs \
+ csharp/src/ProtocolBuffers/MessageStreamIterator.cs \
+ csharp/src/ProtocolBuffers/DynamicMessage.cs \
+ csharp/src/ProtocolBuffers/ExtendableMessageLite.cs \
+ csharp/src/ProtocolBuffers/ICodedOutputStream.cs \
+ csharp/src/ProtocolBuffers/GeneratedRepeatExtension.cs \
+ csharp/src/ProtocolBuffers/IBuilderLite.cs \
+ csharp/src/ProtocolBuffers/UnknownField.cs \
+ csharp/src/ProtocolBuffers/ThrowHelper.cs \
+ csharp/src/ProtocolBuffers/UnknownFieldSet.cs \
+ csharp/src/ProtocolBuffers/AbstractMessage.cs \
+ csharp/src/ProtocolBuffers/GeneratedBuilderLite.cs \
+ csharp/src/ProtocolBuffers/NameHelpers.cs \
+ csharp/src/ProtocolBuffers/DescriptorProtos/PartialClasses.cs \
+ csharp/src/ProtocolBuffers/DescriptorProtos/IDescriptorProto.cs \
+ csharp/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs \
+ csharp/src/ProtocolBuffers/ExtendableBuilder.cs \
+ csharp/src/ProtocolBuffers/FieldAccess/IFieldAccessor.cs \
+ csharp/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs \
+ csharp/src/ProtocolBuffers/FieldAccess/SingleEnumAccessor.cs \
+ csharp/src/ProtocolBuffers/FieldAccess/RepeatedPrimitiveAccessor.cs \
+ csharp/src/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs \
+ csharp/src/ProtocolBuffers/FieldAccess/RepeatedMessageAccessor.cs \
+ csharp/src/ProtocolBuffers/FieldAccess/RepeatedEnumAccessor.cs \
+ csharp/src/ProtocolBuffers/FieldAccess/ReflectionUtil.cs \
+ csharp/src/ProtocolBuffers/FieldAccess/SingleMessageAccessor.cs \
+ csharp/src/ProtocolBuffers/Properties/AssemblyInfo.cs \
+ csharp/src/ProtocolBuffers/IBuilder.cs \
+ csharp/src/ProtocolBuffers/ExtensionRegistry.cs \
+ csharp/src/ProtocolBuffers/CodedOutputStream.cs \
+ csharp/src/ProtocolBuffers/MessageStreamWriter.cs \
+ csharp/src/ProtocolBuffers/MessageUtil.cs \
+ csharp/src/ProtocolBuffers/UninitializedMessageException.cs \
+ csharp/src/ProtocolBuffers/ProtocolBuffersLite.csproj \
+ csharp/src/ProtocolBuffers/InvalidProtocolBufferException.cs \
+ csharp/src/ProtocolBuffers/ProtocolBuffers.csproj \
+ csharp/src/ProtocolBuffers/ExtendableBuilderLite.cs \
+ csharp/src/ProtocolBuffers/GeneratedMessageLite.cs \
+ csharp/src/ProtocolBuffers/GeneratedSingleExtension.cs \
+ csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs \
+ csharp/src/ProtocolBuffers/WireFormat.cs \
+ csharp/src/ProtocolBuffers/GeneratedBuilder.cs \
+ csharp/src/AddressBook/ListPeople.cs \
+ csharp/src/AddressBook/Addressbook.cs \
+ csharp/src/AddressBook/AddPerson.cs \
+ csharp/src/AddressBook/AddressBook.csproj \
+ csharp/src/AddressBook/SampleUsage.cs \
+ csharp/src/AddressBook/app.config \
+ csharp/src/AddressBook/Program.cs \
+ csharp/src/AddressBook/Properties/AssemblyInfo.cs \
+ csharp/src/packages/repositories.config \
+ csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSize.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSpeed.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestEnormousDescriptor.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnknownEnumTest.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestMset.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImport.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestCustomOptions.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestOptimizeFor.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestNoFieldPresence.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/Unittest.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestExtrasXmltest.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportPublic.cs \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestDropUnknownFields.cs \
+ csharp/src/ProtocolBuffers.Test/CodedInputStreamTest.cs \
+ csharp/src/ProtocolBuffers.Test/packages.config \
+ csharp/src/ProtocolBuffers.Test/TestReaderForUrlEncoded.cs \
+ csharp/src/ProtocolBuffers.Test/ByteStringTest.cs \
+ csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs \
+ csharp/src/ProtocolBuffers.Test/TestUtil.cs \
+ csharp/src/ProtocolBuffers.Test/TestResources.cs \
+ csharp/src/ProtocolBuffers.Test/Collections/PopsicleListTest.cs \
+ csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj \
+ csharp/src/ProtocolBuffers.Test/IssuesTest.cs \
+ csharp/src/ProtocolBuffers.Test/UnknownFieldSetTest.cs \
+ csharp/src/ProtocolBuffers.Test/TestMimeMessageFormats.cs \
+ csharp/src/ProtocolBuffers.Test/App.xaml.cs \
+ csharp/src/ProtocolBuffers.Test/DeprecatedMemberTest.cs \
+ csharp/src/ProtocolBuffers.Test/DynamicMessageTest.cs \
+ csharp/src/ProtocolBuffers.Test/MessageStreamWriterTest.cs \
+ csharp/src/ProtocolBuffers.Test/NameHelpersTest.cs \
+ csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs \
+ csharp/src/ProtocolBuffers.Test/TestWriterFormatXml.cs \
+ csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs \
+ csharp/src/ProtocolBuffers.Test/WireFormatTest.cs \
+ csharp/src/ProtocolBuffers.Test/TestWriterFormatJson.cs \
+ csharp/src/ProtocolBuffers.Test/MessageUtilTest.cs \
+ csharp/src/ProtocolBuffers.Test/App.xaml \
+ csharp/src/ProtocolBuffers.Test/Properties/AppManifest.xml \
+ csharp/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs \
+ csharp/src/ProtocolBuffers.Test/Properties/OutOfBrowserSettings.xml \
+ csharp/src/ProtocolBuffers.Test/TextFormatTest.cs \
+ csharp/src/ProtocolBuffers.Test/CodedOutputStreamTest.cs \
+ csharp/src/ProtocolBuffers.Test/MessageTest.cs \
+ csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs \
+ csharp/src/ProtocolBuffers.Test/Compatibility/DictionaryCompatibilityTests.cs \
+ csharp/src/ProtocolBuffers.Test/Compatibility/JsonCompatibilityTests.cs \
+ csharp/src/ProtocolBuffers.Test/Compatibility/TextCompatibilityTests.cs \
+ csharp/src/ProtocolBuffers.Test/Compatibility/TestResources.cs \
+ csharp/src/ProtocolBuffers.Test/Compatibility/google_message1.dat \
+ csharp/src/ProtocolBuffers.Test/Compatibility/CompatibilityTests.cs \
+ csharp/src/ProtocolBuffers.Test/Compatibility/google_message2.dat \
+ csharp/src/ProtocolBuffers.Test/Compatibility/XmlCompatibilityTests.cs \
+ csharp/src/ProtocolBuffers.Test/Compatibility/BinaryCompatibilityTests.cs \
+ csharp/src/ProtocolBuffers.Test/GeneratedBuilderTest.cs \
+ csharp/src/ProtocolBuffers.Test/ReflectionTester.cs \
+ csharp/src/ProtocolBuffers.Test/FieldPresenceTest.cs \
+ csharp/src/ProtocolBuffers.Test/TestCornerCases.cs \
+ csharp/src/ProtocolBuffers.Test/MessageStreamIteratorTest.cs \
+ csharp/buildall.sh \
+ csharp/README.md \
+ csharp/.gitignore \
+ csharp/protos/extest/unittest_extras_lite.proto \
+ csharp/protos/extest/unittest_extras_xmltest.proto \
+ csharp/protos/extest/unittest_extras_full.proto \
+ csharp/protos/extest/unittest_issues.proto \
+ csharp/generate_protos.sh \
+ csharp/CHANGES.txt \
+ csharp/keys/generate_new_key.bat \
+ csharp/keys/Google.ProtocolBuffers.snk \
+ csharp/testdata/golden_message \
+ csharp/testdata/text_format_unittest_data.txt \
+ csharp/testdata/golden_packed_fields_message \
+ csharp/testdata/text_format_unittest_extensions_data.txt \
+ csharp/build/build.bat \
+ csharp/build/googlecode_upload.py \
+ csharp/build/build.csproj \
+ csharp/build/Google.ProtocolBuffersLite.nuspec \
+ csharp/build/Common.targets \
+ csharp/build/Google.ProtocolBuffers.nuspec \
+ csharp/build/target.csproj \
+ csharp/build/nuspec.xsd \
+ csharp/build/BuildAll.bat \
+ csharp/build/RunBenchmarks.bat \
+ csharp/build/publish.csproj
+
java_EXTRA_DIST= \
java/src/main/java/com/google/protobuf/AbstractMessage.java \
java/src/main/java/com/google/protobuf/AbstractMessageLite.java \
java/src/main/java/com/google/protobuf/AbstractParser.java \
+ java/src/main/java/com/google/protobuf/AbstractProtobufList.java \
java/src/main/java/com/google/protobuf/BlockingRpcChannel.java \
java/src/main/java/com/google/protobuf/BlockingService.java \
java/src/main/java/com/google/protobuf/BoundedByteString.java \
+ java/src/main/java/com/google/protobuf/BooleanArrayList.java \
java/src/main/java/com/google/protobuf/ByteString.java \
java/src/main/java/com/google/protobuf/CodedInputStream.java \
java/src/main/java/com/google/protobuf/CodedOutputStream.java \
java/src/main/java/com/google/protobuf/Descriptors.java \
+ java/src/main/java/com/google/protobuf/DoubleArrayList.java \
java/src/main/java/com/google/protobuf/DynamicMessage.java \
java/src/main/java/com/google/protobuf/Extension.java \
java/src/main/java/com/google/protobuf/ExtensionLite.java \
java/src/main/java/com/google/protobuf/ExtensionRegistry.java \
java/src/main/java/com/google/protobuf/ExtensionRegistryLite.java \
java/src/main/java/com/google/protobuf/FieldSet.java \
+ java/src/main/java/com/google/protobuf/FloatArrayList.java \
java/src/main/java/com/google/protobuf/GeneratedMessage.java \
java/src/main/java/com/google/protobuf/GeneratedMessageLite.java \
java/src/main/java/com/google/protobuf/Internal.java \
+ java/src/main/java/com/google/protobuf/IntArrayList.java \
java/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java \
java/src/main/java/com/google/protobuf/LazyField.java \
java/src/main/java/com/google/protobuf/LazyFieldLite.java \
java/src/main/java/com/google/protobuf/LazyStringArrayList.java \
java/src/main/java/com/google/protobuf/LazyStringList.java \
java/src/main/java/com/google/protobuf/LiteralByteString.java \
+ java/src/main/java/com/google/protobuf/LongArrayList.java \
java/src/main/java/com/google/protobuf/MapEntry.java \
java/src/main/java/com/google/protobuf/MapEntryLite.java \
java/src/main/java/com/google/protobuf/MapField.java \
@@ -74,7 +329,9 @@ java_EXTRA_DIST= \
java/src/main/java/com/google/protobuf/MessageLiteOrBuilder.java \
java/src/main/java/com/google/protobuf/MessageOrBuilder.java \
java/src/main/java/com/google/protobuf/MessageReflection.java \
+ java/src/main/java/com/google/protobuf/MutabilityOracle.java \
java/src/main/java/com/google/protobuf/Parser.java \
+ java/src/main/java/com/google/protobuf/ProtobufArrayList.java \
java/src/main/java/com/google/protobuf/ProtocolMessageEnum.java \
java/src/main/java/com/google/protobuf/ProtocolStringList.java \
java/src/main/java/com/google/protobuf/RepeatedFieldBuilder.java \
@@ -93,19 +350,24 @@ java_EXTRA_DIST= \
java/src/main/java/com/google/protobuf/UnknownFieldSetLite.java \
java/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java \
java/src/main/java/com/google/protobuf/Utf8.java \
+ java/src/test/java/com/google/protobuf/WellKnownTypesTest.java \
java/src/main/java/com/google/protobuf/WireFormat.java \
java/src/test/java/com/google/protobuf/AbstractMessageTest.java \
java/src/test/java/com/google/protobuf/BoundedByteStringTest.java \
+ java/src/test/java/com/google/protobuf/BooleanArrayListTest.java \
java/src/test/java/com/google/protobuf/ByteStringTest.java \
java/src/test/java/com/google/protobuf/CheckUtf8Test.java \
java/src/test/java/com/google/protobuf/CodedInputStreamTest.java \
java/src/test/java/com/google/protobuf/CodedOutputStreamTest.java \
java/src/test/java/com/google/protobuf/DeprecatedFieldTest.java \
java/src/test/java/com/google/protobuf/DescriptorsTest.java \
+ java/src/test/java/com/google/protobuf/DoubleArrayListTest.java \
java/src/test/java/com/google/protobuf/DynamicMessageTest.java \
java/src/test/java/com/google/protobuf/FieldPresenceTest.java \
+ java/src/test/java/com/google/protobuf/FloatArrayListTest.java \
java/src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java \
java/src/test/java/com/google/protobuf/GeneratedMessageTest.java \
+ java/src/test/java/com/google/protobuf/IntArrayListTest.java \
java/src/test/java/com/google/protobuf/IsValidUtf8Test.java \
java/src/test/java/com/google/protobuf/IsValidUtf8TestUtil.java \
java/src/test/java/com/google/protobuf/LazyFieldLiteTest.java \
@@ -116,12 +378,14 @@ java_EXTRA_DIST= \
java/src/test/java/com/google/protobuf/LiteEqualsAndHashTest.java \
java/src/test/java/com/google/protobuf/LiteralByteStringTest.java \
java/src/test/java/com/google/protobuf/LiteTest.java \
+ java/src/test/java/com/google/protobuf/LongArrayListTest.java \
java/src/test/java/com/google/protobuf/MapForProto2LiteTest.java \
java/src/test/java/com/google/protobuf/MapForProto2Test.java \
java/src/test/java/com/google/protobuf/MapTest.java \
java/src/test/java/com/google/protobuf/MessageTest.java \
java/src/test/java/com/google/protobuf/NestedBuildersTest.java \
java/src/test/java/com/google/protobuf/ParserTest.java \
+ java/src/test/java/com/google/protobuf/ProtobufArrayListTest.java \
java/src/test/java/com/google/protobuf/RepeatedFieldBuilderTest.java \
java/src/test/java/com/google/protobuf/RopeByteStringSubstringTest.java \
java/src/test/java/com/google/protobuf/RopeByteStringTest.java \
@@ -141,6 +405,7 @@ java_EXTRA_DIST= \
java/src/test/java/com/google/protobuf/lite_equals_and_hash.proto \
java/src/test/java/com/google/protobuf/map_for_proto2_lite_test.proto \
java/src/test/java/com/google/protobuf/map_for_proto2_test.proto \
+ java/src/test/java/com/google/protobuf/map_initialization_order_test.proto \
java/src/test/java/com/google/protobuf/map_test.proto \
java/src/test/java/com/google/protobuf/multiple_files_test.proto \
java/src/test/java/com/google/protobuf/nested_builders_test.proto \
@@ -155,6 +420,7 @@ java_EXTRA_DIST= \
java/src/test/java/com/google/protobuf/test_check_utf8.proto \
java/src/test/java/com/google/protobuf/test_check_utf8_size.proto \
java/src/test/java/com/google/protobuf/test_custom_options.proto \
+ java/src/test/java/com/google/protobuf/test_extra_interfaces.proto \
java/pom.xml \
java/README.md
@@ -198,15 +464,33 @@ javanano_EXTRA_DIST=
javanano/pom.xml
objectivec_EXTRA_DIST= \
- objectivec/DevTools/generate_descriptors_proto.sh \
+ objectivec/DevTools/check_version_stamps.sh \
+ objectivec/DevTools/full_mac_build.sh \
objectivec/DevTools/pddm.py \
objectivec/DevTools/pddm_tests.py \
+ objectivec/generate_descriptors_proto.sh \
+ objectivec/google/protobuf/Any.pbobjc.h \
+ objectivec/google/protobuf/Any.pbobjc.m \
+ objectivec/google/protobuf/Api.pbobjc.h \
+ objectivec/google/protobuf/Api.pbobjc.m \
objectivec/google/protobuf/Descriptor.pbobjc.h \
objectivec/google/protobuf/Descriptor.pbobjc.m \
objectivec/google/protobuf/Duration.pbobjc.h \
objectivec/google/protobuf/Duration.pbobjc.m \
+ objectivec/google/protobuf/Empty.pbobjc.h \
+ objectivec/google/protobuf/Empty.pbobjc.m \
+ objectivec/google/protobuf/FieldMask.pbobjc.h \
+ objectivec/google/protobuf/FieldMask.pbobjc.m \
+ objectivec/google/protobuf/SourceContext.pbobjc.h \
+ objectivec/google/protobuf/SourceContext.pbobjc.m \
+ objectivec/google/protobuf/Struct.pbobjc.h \
+ objectivec/google/protobuf/Struct.pbobjc.m \
objectivec/google/protobuf/Timestamp.pbobjc.h \
objectivec/google/protobuf/Timestamp.pbobjc.m \
+ objectivec/google/protobuf/Type.pbobjc.h \
+ objectivec/google/protobuf/Type.pbobjc.m \
+ objectivec/google/protobuf/Wrappers.pbobjc.h \
+ objectivec/google/protobuf/Wrappers.pbobjc.m \
objectivec/GPBArray.h \
objectivec/GPBArray.m \
objectivec/GPBArray_PackagePrivate.h \
@@ -227,7 +511,6 @@ objectivec_EXTRA_DIST= \
objectivec/GPBExtensionField_PackagePrivate.h \
objectivec/GPBExtensionRegistry.h \
objectivec/GPBExtensionRegistry.m \
- objectivec/GPBExtensionRegistry_PackagePrivate.h \
objectivec/GPBField.h \
objectivec/GPBField.m \
objectivec/GPBField_PackagePrivate.h \
@@ -263,6 +546,7 @@ objectivec_EXTRA_DIST= \
objectivec/ProtocolBuffers_OSX.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings \
objectivec/ProtocolBuffers_OSX.xcodeproj/xcshareddata/xcschemes/PerformanceTests.xcscheme \
objectivec/ProtocolBuffers_OSX.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme \
+ objectivec/README.md \
objectivec/Tests/Filter1.txt \
objectivec/Tests/Filter2.txt \
objectivec/Tests/golden_message \
@@ -297,15 +581,15 @@ objectivec_EXTRA_DIST= \
objectivec/Tests/GPBWireFormatTests.m \
objectivec/Tests/iOSTestHarness/AppDelegate.m \
objectivec/Tests/iOSTestHarness/en.lproj/InfoPlist.strings \
- objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/Contents.json \
- objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPad6.png \
- objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPad6@2x.png \
- objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPad7.png \
- objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPad7@2x.png \
- objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPhone6.png \
- objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPhone6@2x.png \
- objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPhone7@2x.png \
- objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPhone7@3x.png \
+ objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/Contents.json \
+ objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPad6.png \
+ objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPad6@2x.png \
+ objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPad7.png \
+ objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPad7@2x.png \
+ objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPhone6.png \
+ objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPhone6@2x.png \
+ objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPhone7@2x.png \
+ objectivec/Tests/iOSTestHarness/Images.xcassets/AppIcon.appiconset/iPhone7@3x.png \
objectivec/Tests/iOSTestHarness/Images.xcassets/LaunchImage.launchimage/Contents.json \
objectivec/Tests/iOSTestHarness/Info.plist \
objectivec/Tests/iOSTestHarness/LaunchScreen.xib \
@@ -318,9 +602,11 @@ objectivec_EXTRA_DIST= \
objectivec/Tests/unittest_runtime_proto2.proto \
objectivec/Tests/unittest_runtime_proto3.proto \
objectivec/Tests/UnitTests-Bridging-Header.h \
- objectivec/Tests/UnitTests-Info.plist
+ objectivec/Tests/UnitTests-Info.plist \
+ Protobuf.podspec
python_EXTRA_DIST= \
+ python/MANIFEST.in \
python/google/protobuf/internal/api_implementation.cc \
python/google/protobuf/internal/api_implementation.py \
python/google/protobuf/internal/containers.py \
@@ -372,6 +658,8 @@ python_EXTRA_DIST= \
python/google/protobuf/pyext/extension_dict.cc \
python/google/protobuf/pyext/message.h \
python/google/protobuf/pyext/message.cc \
+ python/google/protobuf/pyext/message_map_container.cc \
+ python/google/protobuf/pyext/message_map_container.h \
python/google/protobuf/pyext/proto2_api_test.proto \
python/google/protobuf/pyext/python.proto \
python/google/protobuf/pyext/python_protobuf.h \
@@ -379,6 +667,8 @@ python_EXTRA_DIST= \
python/google/protobuf/pyext/repeated_composite_container.cc \
python/google/protobuf/pyext/repeated_scalar_container.h \
python/google/protobuf/pyext/repeated_scalar_container.cc \
+ python/google/protobuf/pyext/scalar_map_container.cc \
+ python/google/protobuf/pyext/scalar_map_container.h \
python/google/protobuf/pyext/scoped_pyobject_ptr.h \
python/google/protobuf/pyext/__init__.py \
python/google/protobuf/descriptor.py \
@@ -402,6 +692,9 @@ python_EXTRA_DIST= \
python/README.md
ruby_EXTRA_DIST= \
+ ruby/Gemfile \
+ ruby/Gemfile.lock \
+ ruby/.gitignore \
ruby/README.md \
ruby/Rakefile \
ruby/ext/google/protobuf_c/defs.c \
@@ -416,14 +709,37 @@ ruby_EXTRA_DIST= \
ruby/ext/google/protobuf_c/upb.c \
ruby/ext/google/protobuf_c/upb.h \
ruby/google-protobuf.gemspec \
+ ruby/lib/google/protobuf/message_exts.rb \
+ ruby/lib/google/protobuf/repeated_field.rb \
ruby/lib/google/protobuf.rb \
+ ruby/pom.xml \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyBuilder.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyDescriptor.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyDescriptorPool.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyEnumBuilderContext.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyEnumDescriptor.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyEnum.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyFieldDescriptor.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyMap.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyMessageBuilderContext.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyOneofBuilderContext.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyOneofDescriptor.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyProtobuf.java \
+ ruby/src/main/java/com/google/protobuf/jruby/RubyRepeatedField.java \
+ ruby/src/main/java/com/google/protobuf/jruby/SentinelOuterClass.java \
+ ruby/src/main/java/com/google/protobuf/jruby/Utils.java \
+ ruby/src/main/java/google/ProtobufJavaService.java \
+ ruby/src/main/sentinel.proto \
ruby/tests/basic.rb \
+ ruby/tests/repeated_field_test.rb \
ruby/tests/stress.rb \
ruby/tests/generated_code.proto \
ruby/tests/generated_code.rb \
- ruby/tests/generated_code_test.rb
+ ruby/tests/generated_code_test.rb \
+ ruby/travis-test.sh
-all_EXTRA_DIST=$(java_EXTRA_DIST) $(javanano_EXTRA_DIST) $(objectivec_EXTRA_DIST) $(python_EXTRA_DIST) $(ruby_EXTRA_DIST)
+all_EXTRA_DIST=$(csharp_EXTRA_DIST) $(java_EXTRA_DIST) $(javanano_EXTRA_DIST) $(objectivec_EXTRA_DIST) $(python_EXTRA_DIST) $(ruby_EXTRA_DIST)
EXTRA_DIST = $(@DIST_LANG@_EXTRA_DIST) \
autogen.sh \
diff --git a/Protobuf.podspec b/Protobuf.podspec
new file mode 100644
index 00000000..6fe77f88
--- /dev/null
+++ b/Protobuf.podspec
@@ -0,0 +1,38 @@
+# This file describes to Cocoapods how to integrate the Objective-C runtime into a dependent
+# project.
+# Despite this file being specific to Objective-C, it needs to be on the root of the repository.
+# Otherwise, Cocoapods gives trouble like not picking up the license file correctly, or not letting
+# dependent projects use the :git notation to refer to the library.
+Pod::Spec.new do |s|
+ s.name = 'Protobuf'
+ s.version = '3.0.0'
+ s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.'
+ s.homepage = 'https://github.com/google/protobuf'
+ s.license = 'New BSD'
+ s.authors = { 'The Protocol Buffers contributors' => 'protobuf@googlegroups.com' }
+
+ s.source_files = 'objectivec/*.{h,m}',
+ 'objectivec/google/protobuf/Any.pbobjc.{h,m}',
+ 'objectivec/google/protobuf/Descriptor.pbobjc.{h,m}',
+ 'objectivec/google/protobuf/Duration.pbobjc.h',
+ 'objectivec/google/protobuf/Empty.pbobjc.{h,m}',
+ 'objectivec/google/protobuf/FieldMask.pbobjc.{h,m}',
+ 'objectivec/google/protobuf/SourceContext.pbobjc.{h,m}',
+ 'objectivec/google/protobuf/Timestamp.pbobjc.h',
+ 'objectivec/google/protobuf/Wrappers.pbobjc.{h,m}'
+ # Timestamp.pbobjc.m and Duration.pbobjc.m are #imported by GPBWellKnownTypes.m. So we can't
+ # compile them (duplicate symbols), but we need them available for the importing:
+ s.preserve_paths = 'objectivec/google/protobuf/Duration.pbobjc.m',
+ 'objectivec/google/protobuf/Timestamp.pbobjc.m'
+ # The following would cause duplicate symbol definitions. GPBProtocolBuffers is expected to be
+ # left out, as it's an umbrella implementation file. For Api, Struct and Type, see issue #449.
+ s.exclude_files = 'objectivec/GPBProtocolBuffers.m',
+ 'objectivec/google/protobuf/Api.pbobjc.{h,m}',
+ 'objectivec/google/protobuf/Struct.pbobjc.{h,m}',
+ 'objectivec/google/protobuf/Type.pbobjc.{h,m}'
+ s.header_mappings_dir = 'objectivec'
+
+ s.ios.deployment_target = '6.0'
+ s.osx.deployment_target = '10.8'
+ s.requires_arc = false
+end
diff --git a/benchmarks/google_size.proto b/benchmarks/google_size.proto
index 3e6fbdbc..e0fcb2e0 100644
--- a/benchmarks/google_size.proto
+++ b/benchmarks/google_size.proto
@@ -1,7 +1,10 @@
+syntax = "proto2";
+
package benchmarks;
option java_outer_classname = "GoogleSize";
option optimize_for = CODE_SIZE;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
message SizeMessage1 {
required string field1 = 1;
diff --git a/benchmarks/google_speed.proto b/benchmarks/google_speed.proto
index d6cd0321..3bc5fd2d 100644
--- a/benchmarks/google_speed.proto
+++ b/benchmarks/google_speed.proto
@@ -1,7 +1,10 @@
+syntax = "proto2";
+
package benchmarks;
option java_outer_classname = "GoogleSpeed";
option optimize_for = SPEED;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
message SpeedMessage1 {
required string field1 = 1;
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
new file mode 100644
index 00000000..727864ba
--- /dev/null
+++ b/cmake/CMakeLists.txt
@@ -0,0 +1,78 @@
+cmake_minimum_required(VERSION 2.8)
+
+project(protobuf C CXX)
+
+option(BUILD_TESTING "Build tests" ON)
+option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
+if (MSVC)
+ option(ZLIB "Build with zlib support" OFF)
+endif (MSVC)
+
+find_package(Threads REQUIRED)
+if (CMAKE_USE_PTHREADS_INIT)
+ set(HAVE_PTHREAD 1)
+else (CMAKE_USE_PTHREADS_INIT)
+ set(HAVE_PTHREAD 0)
+endif (CMAKE_USE_PTHREADS_INIT)
+
+if (MSVC)
+ if (ZLIB)
+ set(HAVE_ZLIB 1)
+ find_path(ZLIB_INCLUDE_DIRECTORIES zlib.h ${protobuf_SOURCE_DIR})
+ find_library(ZLIB_LIBRARIES zdll ${protobuf_SOURCE_DIR})
+ else (ZLIB)
+ set(HAVE_ZLIB 0)
+ endif (ZLIB)
+else (MSVC)
+ find_package(ZLIB)
+ if (ZLIB_FOUND)
+ set(HAVE_ZLIB 1)
+ else (ZLIB_FOUND)
+ set(HAVE_ZLIB 0)
+ # Explicitly set these to empty (override NOT_FOUND) so cmake doesn't
+ # complain when we use them later.
+ set(ZLIB_INCLUDE_DIRECTORIES)
+ set(ZLIB_LIBRARIES)
+ endif (ZLIB_FOUND)
+endif (MSVC)
+
+if (MSVC)
+ if (BUILD_SHARED_LIBS)
+ add_definitions(-DPROTOBUF_USE_DLLS)
+ endif (BUILD_SHARED_LIBS)
+ add_definitions(/wd4244 /wd4267 /wd4018 /wd4355 /wd4800 /wd4251 /wd4996 /wd4146 /wd4305)
+endif (MSVC)
+
+include(find_hash_map.cmake)
+
+configure_file(config.h.in config.h)
+configure_file(pbconfig.h.in google/protobuf/stubs/pbconfig.h)
+if (MSVC)
+ string(REPLACE "/" "\\" PROTOBUF_SOURCE_WIN32_PATH ${protobuf_SOURCE_DIR})
+ string(REPLACE "/" "\\" PROTOBUF_BINARY_WIN32_PATH ${protobuf_BINARY_DIR})
+ configure_file(extract_includes.bat.in extract_includes.bat)
+endif (MSVC)
+
+get_filename_component(protobuf_source_dir ${protobuf_SOURCE_DIR} PATH)
+
+include_directories(
+ ${ZLIB_INCLUDE_DIRECTORIES}
+ ${protobuf_BINARY_DIR}
+ ${protobuf_source_dir}/src)
+
+if (MSVC)
+ # Add the "lib" prefix for generated .lib outputs.
+ set(LIB_PREFIX lib)
+else (MSVC)
+ # When building with "make", "lib" prefix will be added automatically by
+ # the build tool.
+ set(LIB_PREFIX)
+endif (MSVC)
+
+include(libprotobuf-lite.cmake)
+include(libprotobuf.cmake)
+include(libprotoc.cmake)
+include(protoc.cmake)
+if (BUILD_TESTING)
+ include(tests.cmake)
+endif (BUILD_TESTING)
diff --git a/cmake/README.md b/cmake/README.md
new file mode 100644
index 00000000..02798b63
--- /dev/null
+++ b/cmake/README.md
@@ -0,0 +1,127 @@
+This directory contains cmake files that can be used to generate MSVC project
+files in order to build protobuf on windows. You need to have cmake installed
+on your computer before proceeding.
+
+Compiling and Installing
+========================
+
+1. Check whether a gtest directory exists in the upper level directory. If
+ you checkout the code from github via "git clone", this gtest directory
+ won't exist and you won't be able to build the tests described below. To
+ avoid this problem consider downloading one of the release tar balls which
+ contains gtest already and copying the gest directory from there to your
+ protobuf directory:
+
+ https://github.com/google/protobuf/releases
+
+2. Use cmake to generate MSVC project files. Running the following commands
+ in a command shell will generate project files for Visual Studio 2008 in
+ a sub-directory named "build".
+
+ $ cd path/to/protobuf/cmake
+ $ mkdir build
+ $ cd build
+ $ cmake -G "Visual Studio 9 2008" ..
+
+3. Open the generated protobuf.sln file in Microsoft Visual Studio.
+4. Choose "Debug" or "Release" configuration as desired.
+5. From the Build menu, choose "Build Solution". Wait for compiling to finish.
+6. From a command shell, run tests.exe and lite-test.exe and check that all
+ tests pass. Make sure you have changed the working directory to the output
+ directory because tests.exe will try to find and run test_plugin.exe
+ in the working directory.
+7. Run extract_includes.bat to copy all the public headers into a separate
+ "include" directory (under the top-level package directory).
+8. Copy the contents of the include directory to wherever you want to put
+ headers.
+9. Copy protoc.exe wherever you put build tools (probably somewhere in your
+ PATH).
+10. Copy libprotobuf.lib, libprotobuf-lite.lib, and libprotoc.lib wherever you
+ put libraries.
+
+ To avoid conflicts between the MSVC debug and release runtime libraries, when
+ compiling a debug build of your application, you may need to link against a
+ debug build of libprotobuf.lib. Similarly, release builds should link against
+ release libs.
+
+DLLs vs. static linking
+=======================
+
+Static linking is now the default for the Protocol Buffer libraries. Due to
+issues with Win32's use of a separate heap for each DLL, as well as binary
+compatibility issues between different versions of MSVC's STL library, it is
+recommended that you use static linkage only. However, it is possible to
+build libprotobuf and libprotoc as DLLs if you really want. To do this,
+do the following:
+
+ 1. Add an additional flag "-DBUILD_SHARED_LIBS=ON" when invoking cmake:
+
+ $ cmake -G "Visual Studio 9 2008" -DBUILD_SHARED_LIBS=ON ..
+
+ 2. Follow the same steps as described in the above section.
+ 3. When compiling your project, make sure to #define PROTOBUF_USE_DLLS.
+
+When distributing your software to end users, we strongly recommend that you
+do NOT install libprotobuf.dll or libprotoc.dll to any shared location.
+Instead, keep these libraries next to your binaries, in your application's
+own install directory. C++ makes it very difficult to maintain binary
+compatibility between releases, so it is likely that future versions of these
+libraries will *not* be usable as drop-in replacements.
+
+If your project is itself a DLL intended for use by third-party software, we
+recommend that you do NOT expose protocol buffer objects in your library's
+public interface, and that you statically link protocol buffers into your
+library.
+
+ZLib support
+============
+
+If you want to include GzipInputStream and GzipOutputStream
+(google/protobuf/io/gzip_stream.h) in libprotobuf, you will need to do a few
+additional steps:
+
+1. Obtain a copy of the zlib library. The pre-compiled DLL at zlib.net works.
+2. Make sure zlib's two headers are in your include path and that the .lib file
+ is in your library path. You could place all three files directly into this
+ cmake directory to compile libprotobuf, but they need to be visible to
+ your own project as well, so you should probably just put them into the
+ VC shared icnlude and library directories.
+3. Add flag "-DZLIB=ON" when invoking cmake:
+
+ $ cmake -G "Visual Studio 9 2008" -DZLIB=ON ..
+
+ If it reports NOTFOUND for zlib_include or zlib_lib, you might haven't put
+ the headers or the .lib file in the right directory.
+4) Open the generated protobuf.sln file and build as usual.
+
+Notes on Compiler Warnings
+==========================
+
+The following warnings have been disabled while building the protobuf libraries
+and compiler. You may have to disable some of them in your own project as
+well, or live with them.
+
+* C4018 - 'expression' : signed/unsigned mismatch
+* C4146 - unary minus operator applied to unsigned type, result still unsigned
+* C4244 - Conversion from 'type1' to 'type2', possible loss of data.
+* C4251 - 'identifier' : class 'type' needs to have dll-interface to be used by
+ clients of class 'type2'
+* C4267 - Conversion from 'size_t' to 'type', possible loss of data.
+* C4305 - 'identifier' : truncation from 'type1' to 'type2'
+* C4355 - 'this' : used in base member initializer list
+* C4800 - 'type' : forcing value to bool 'true' or 'false' (performance warning)
+* C4996 - 'function': was declared deprecated
+
+C4251 is of particular note, if you are compiling the Protocol Buffer library
+as a DLL (see previous section). The protocol buffer library uses templates in
+its public interfaces. MSVC does not provide any reasonable way to export
+template classes from a DLL. However, in practice, it appears that exporting
+templates is not necessary anyway. Since the complete definition of any
+template is available in the header files, anyone importing the DLL will just
+end up compiling instances of the templates into their own binary. The
+Protocol Buffer implementation does not rely on static template members being
+unique, so there should be no problem with this, but MSVC prints warning
+nevertheless. So, we disable it. Unfortunately, this warning will also be
+produced when compiling code which merely uses protocol buffers, meaning you
+may have to disable it in your code too.
+
diff --git a/cmake/config.h.in b/cmake/config.h.in
new file mode 100644
index 00000000..bca1cbba
--- /dev/null
+++ b/cmake/config.h.in
@@ -0,0 +1,4 @@
+#define GOOGLE_PROTOBUF_CMAKE_BUILD
+
+#define HAVE_PTHREAD ${HAVE_PTHREAD}
+#define HAVE_ZLIB ${HAVE_ZLIB}
diff --git a/cmake/extract_includes.bat.in b/cmake/extract_includes.bat.in
new file mode 100644
index 00000000..b2e9444d
--- /dev/null
+++ b/cmake/extract_includes.bat.in
@@ -0,0 +1,105 @@
+mkdir include
+mkdir include\google
+mkdir include\google\protobuf
+mkdir include\google\protobuf\compiler
+mkdir include\google\protobuf\compiler\cpp
+mkdir include\google\protobuf\compiler\csharp
+mkdir include\google\protobuf\compiler\java
+mkdir include\google\protobuf\compiler\javanano
+mkdir include\google\protobuf\compiler\objectivec
+mkdir include\google\protobuf\compiler\python
+mkdir include\google\protobuf\compiler\ruby
+mkdir include\google\protobuf\io
+mkdir include\google\protobuf\stubs
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\any.h include\google\protobuf\any.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\any.pb.h include\google\protobuf\any.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\api.pb.h include\google\protobuf\api.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\arena.h include\google\protobuf\arena.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\arenastring.h include\google\protobuf\arenastring.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\code_generator.h include\google\protobuf\compiler\code_generator.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\command_line_interface.h include\google\protobuf\compiler\command_line_interface.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\cpp\cpp_generator.h include\google\protobuf\compiler\cpp\cpp_generator.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\csharp\csharp_generator.h include\google\protobuf\compiler\csharp\csharp_generator.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\importer.h include\google\protobuf\compiler\importer.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\java\java_generator.h include\google\protobuf\compiler\java\java_generator.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\java\java_names.h include\google\protobuf\compiler\java\java_names.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\javanano\javanano_generator.h include\google\protobuf\compiler\javanano\javanano_generator.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\objectivec\objectivec_generator.h include\google\protobuf\compiler\objectivec\objectivec_generator.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\objectivec\objectivec_helpers.h include\google\protobuf\compiler\objectivec\objectivec_helpers.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\parser.h include\google\protobuf\compiler\parser.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\plugin.h include\google\protobuf\compiler\plugin.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\plugin.pb.h include\google\protobuf\compiler\plugin.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\python\python_generator.h include\google\protobuf\compiler\python\python_generator.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\ruby\ruby_generator.h include\google\protobuf\compiler\ruby\ruby_generator.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\descriptor.h include\google\protobuf\descriptor.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\descriptor.pb.h include\google\protobuf\descriptor.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\descriptor_database.h include\google\protobuf\descriptor_database.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\duration.pb.h include\google\protobuf\duration.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\dynamic_message.h include\google\protobuf\dynamic_message.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\empty.pb.h include\google\protobuf\empty.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\extension_set.h include\google\protobuf\extension_set.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\field_mask.pb.h include\google\protobuf\field_mask.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\generated_enum_reflection.h include\google\protobuf\generated_enum_reflection.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\generated_enum_util.h include\google\protobuf\generated_enum_util.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\generated_message_reflection.h include\google\protobuf\generated_message_reflection.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\generated_message_util.h include\google\protobuf\generated_message_util.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\io\coded_stream.h include\google\protobuf\io\coded_stream.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\io\gzip_stream.h include\google\protobuf\io\gzip_stream.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\io\printer.h include\google\protobuf\io\printer.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\io\strtod.h include\google\protobuf\io\strtod.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\io\tokenizer.h include\google\protobuf\io\tokenizer.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\io\zero_copy_stream.h include\google\protobuf\io\zero_copy_stream.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\io\zero_copy_stream_impl.h include\google\protobuf\io\zero_copy_stream_impl.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\io\zero_copy_stream_impl_lite.h include\google\protobuf\io\zero_copy_stream_impl_lite.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\map.h include\google\protobuf\map.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\map_entry.h include\google\protobuf\map_entry.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\map_entry_lite.h include\google\protobuf\map_entry_lite.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\map_field.h include\google\protobuf\map_field.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\map_field_inl.h include\google\protobuf\map_field_inl.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\map_field_lite.h include\google\protobuf\map_field_lite.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\map_type_handler.h include\google\protobuf\map_type_handler.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\message.h include\google\protobuf\message.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\message_lite.h include\google\protobuf\message_lite.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\metadata.h include\google\protobuf\metadata.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\reflection.h include\google\protobuf\reflection.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\reflection_ops.h include\google\protobuf\reflection_ops.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\repeated_field.h include\google\protobuf\repeated_field.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\repeated_field_reflection.h include\google\protobuf\repeated_field_reflection.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\service.h include\google\protobuf\service.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\source_context.pb.h include\google\protobuf\source_context.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\struct.pb.h include\google\protobuf\struct.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomic_sequence_num.h include\google\protobuf\stubs\atomic_sequence_num.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops.h include\google\protobuf\stubs\atomicops.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_aix.h include\google\protobuf\stubs\atomicops_internals_aix.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_arm64_gcc.h include\google\protobuf\stubs\atomicops_internals_arm64_gcc.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_arm_gcc.h include\google\protobuf\stubs\atomicops_internals_arm_gcc.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_arm_qnx.h include\google\protobuf\stubs\atomicops_internals_arm_qnx.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_atomicword_compat.h include\google\protobuf\stubs\atomicops_internals_atomicword_compat.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_generic_gcc.h include\google\protobuf\stubs\atomicops_internals_generic_gcc.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_macosx.h include\google\protobuf\stubs\atomicops_internals_macosx.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_mips_gcc.h include\google\protobuf\stubs\atomicops_internals_mips_gcc.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_pnacl.h include\google\protobuf\stubs\atomicops_internals_pnacl.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_solaris.h include\google\protobuf\stubs\atomicops_internals_solaris.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_tsan.h include\google\protobuf\stubs\atomicops_internals_tsan.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_x86_gcc.h include\google\protobuf\stubs\atomicops_internals_x86_gcc.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.h include\google\protobuf\stubs\atomicops_internals_x86_msvc.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\casts.h include\google\protobuf\stubs\casts.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\common.h include\google\protobuf\stubs\common.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\fastmem.h include\google\protobuf\stubs\fastmem.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\hash.h include\google\protobuf\stubs\hash.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\once.h include\google\protobuf\stubs\once.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\platform_macros.h include\google\protobuf\stubs\platform_macros.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\shared_ptr.h include\google\protobuf\stubs\shared_ptr.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\singleton.h include\google\protobuf\stubs\singleton.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\stl_util.h include\google\protobuf\stubs\stl_util.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\template_util.h include\google\protobuf\stubs\template_util.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\type_traits.h include\google\protobuf\stubs\type_traits.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\text_format.h include\google\protobuf\text_format.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\timestamp.pb.h include\google\protobuf\timestamp.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\type.pb.h include\google\protobuf\type.pb.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\unknown_field_set.h include\google\protobuf\unknown_field_set.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\wire_format.h include\google\protobuf\wire_format.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\wire_format_lite.h include\google\protobuf\wire_format_lite.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\wire_format_lite_inl.h include\google\protobuf\wire_format_lite_inl.h
+copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\wrappers.pb.h include\google\protobuf\wrappers.pb.h
+copy ${PROTOBUF_BINARY_WIN32_PATH}\google\protobuf\stubs\pbconfig.h include\google\protobuf\stubs\pbconfig.h
diff --git a/cmake/find_hash_map.cmake b/cmake/find_hash_map.cmake
new file mode 100644
index 00000000..22796fb8
--- /dev/null
+++ b/cmake/find_hash_map.cmake
@@ -0,0 +1,119 @@
+include(CheckCXXSourceCompiles)
+
+function(find_hash_map)
+ set(HAVE_HASH_MAP 1 PARENT_SCOPE)
+ set(HAVE_HASH_SET 1 PARENT_SCOPE)
+ # Search for hash_map in the following order:
+ # 1. <unordered_map> ::std::unordered_map
+ # 2. <tr1/unordered_map> ::std::tr1::unordered_map
+ # 3. <hash_map> ::hash_map
+ # 4. <hash_map> ::stdext::hash_map
+ # 5. <ext/hash_map> ::std::hash_map
+ # 6. <ext/hash_map> ::__gnu_cxx::hash_map
+ check_cxx_source_compiles("
+ #include <unordered_map>
+ int main() { ::std::unordered_map<int, int> v; return v[0]; }
+ " HAS_STD_UNORDERED_MAP)
+ if (HAS_STD_UNORDERED_MAP)
+ set(HASH_NAMESPACE ::std PARENT_SCOPE)
+ set(HASH_MAP_H <unordered_map> PARENT_SCOPE)
+ set(HASH_MAP_CLASS unordered_map PARENT_SCOPE)
+ set(HASH_SET_H <unordered_set> PARENT_SCOPE)
+ set(HASH_SET_CLASS unordered_set PARENT_SCOPE)
+ return()
+ endif (HAS_STD_UNORDERED_MAP)
+
+ check_cxx_source_compiles("
+ #include <tr1/unordered_map>
+ int main() { ::std::tr1::unordered_map<int, int> v; return v[0]; }
+ " HAS_STD_TR1_UNORDERED_MAP)
+ if (HAS_STD_TR1_UNORDERED_MAP)
+ set(HASH_NAMESPACE ::std::tr1 PARENT_SCOPE)
+ set(HASH_MAP_H <tr1/unordered_map> PARENT_SCOPE)
+ set(HASH_MAP_CLASS unordered_map PARENT_SCOPE)
+ set(HASH_SET_H <tr1/unordered_set> PARENT_SCOPE)
+ set(HASH_SET_CLASS unordered_set PARENT_SCOPE)
+ return()
+ endif (HAS_STD_TR1_UNORDERED_MAP)
+
+ check_cxx_source_compiles("
+ #include <hash_map>
+ int main() { ::hash_map<int, int> v; return v[0]; }
+ " HAS_HASH_MAP)
+ if (HAS_HASH_MAP)
+ set(HASH_NAMESPACE :: PARENT_SCOPE)
+ set(HASH_MAP_H <hash_map> PARENT_SCOPE)
+ set(HASH_MAP_CLASS hash_map PARENT_SCOPE)
+ set(HASH_SET_H <hash_set> PARENT_SCOPE)
+ set(HASH_SET_CLASS hash_set PARENT_SCOPE)
+ return()
+ endif (HAS_HASH_MAP)
+
+ check_cxx_source_compiles("
+ #include <hash_map>
+ int main() { ::stdext::hash_map<int, int> v; return v[0]; }
+ " HAS_STDEXT_HASH_MAP)
+ if (HAS_STDEXT_HASH_MAP)
+ set(HASH_NAMESPACE ::stdext PARENT_SCOPE)
+ set(HASH_MAP_H <hash_map> PARENT_SCOPE)
+ set(HASH_MAP_CLASS hash_map PARENT_SCOPE)
+ set(HASH_SET_H <hash_set> PARENT_SCOPE)
+ set(HASH_SET_CLASS hash_set PARENT_SCOPE)
+ return()
+ endif (HAS_STDEXT_HASH_MAP)
+
+ check_cxx_source_compiles("
+ #include <ext/hash_map>
+ int main() { ::std::hash_map<int, int> v; return v[0]; }
+ " HAS_STD_HASH_MAP)
+ if (HAS_STD_HASH_MAP)
+ set(HASH_NAMESPACE ::std PARENT_SCOPE)
+ set(HASH_MAP_H <ext/hash_map> PARENT_SCOPE)
+ set(HASH_MAP_CLASS hash_map PARENT_SCOPE)
+ set(HASH_SET_H <ext/hash_set> PARENT_SCOPE)
+ set(HASH_SET_CLASS hash_set PARENT_SCOPE)
+ return()
+ endif (HAS_STD_HASH_MAP)
+
+ check_cxx_source_compiles("
+ #include <ext/hash_map>
+ int main() { ::__gnu_cxx::hash_map<int, int> v; return v[0]; }
+ " HAS_GNU_CXX_HASH_MAP)
+ if (HAS_GNU_CXX_HASH_MAP)
+ set(HASH_NAMESPACE ::gnu_cxx PARENT_SCOPE)
+ set(HASH_MAP_H <ext/hash_map> PARENT_SCOPE)
+ set(HASH_MAP_CLASS hash_map PARENT_SCOPE)
+ set(HASH_SET_H <ext/hash_set> PARENT_SCOPE)
+ set(HASH_SET_CLASS hash_set PARENT_SCOPE)
+ return()
+ endif (HAS_GNU_CXX_HASH_MAP)
+
+ set(HAVE_HASH_MAP 0 PARENT_SCOPE)
+ set(HAVE_HASH_SET 0 PARENT_SCOPE)
+endfunction()
+
+function(find_hash_compare)
+ if (MSVC)
+ check_cxx_source_compiles("
+ #include ${HASH_MAP_H}
+ int main() { ::std::hash_compare<int> cp; return cp(0); }
+ " HAS_STD_HASH_COMPARE)
+ if (HAS_STD_HASH_COMPARE)
+ set(HASH_COMPARE ::std::hash_compare PARENT_SCOPE)
+ return()
+ endif (HAS_STD_HASH_COMPARE)
+
+ check_cxx_source_compiles("
+ #include ${HASH_MAP_H}
+ int main() { ::stdext::hash_compare<int> cp; return cp(0); }
+ " HAS_STDEXT_HASH_COMPARE)
+ if (HAS_STDEXT_HASH_COMPARE)
+ set(HASH_COMPARE ::stdext::hash_compare PARENT_SCOPE)
+ return()
+ endif (HAS_STDEXT_HASH_COMPARE)
+ endif (MSVC)
+ set(HASH_COMPARE PARENT_SCOPE)
+endfunction()
+
+find_hash_map()
+find_hash_compare()
diff --git a/cmake/libprotobuf-lite.cmake b/cmake/libprotobuf-lite.cmake
new file mode 100644
index 00000000..32c2d026
--- /dev/null
+++ b/cmake/libprotobuf-lite.cmake
@@ -0,0 +1,23 @@
+set(libprotobuf_lite_files
+ ${protobuf_source_dir}/src/google/protobuf/arena.cc
+ ${protobuf_source_dir}/src/google/protobuf/arenastring.cc
+ ${protobuf_source_dir}/src/google/protobuf/extension_set.cc
+ ${protobuf_source_dir}/src/google/protobuf/generated_message_util.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/coded_stream.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream_impl_lite.cc
+ ${protobuf_source_dir}/src/google/protobuf/message_lite.cc
+ ${protobuf_source_dir}/src/google/protobuf/repeated_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/common.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/once.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/stringprintf.cc
+ ${protobuf_source_dir}/src/google/protobuf/wire_format_lite.cc
+)
+
+add_library(libprotobuf-lite ${libprotobuf_lite_files})
+target_link_libraries(libprotobuf-lite ${CMAKE_THREAD_LIBS_INIT})
+set_target_properties(libprotobuf-lite PROPERTIES
+ COMPILE_DEFINITIONS LIBPROTOBUF_EXPORTS
+ OUTPUT_NAME ${LIB_PREFIX}protobuf-lite)
diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake
new file mode 100644
index 00000000..b1f2dc3e
--- /dev/null
+++ b/cmake/libprotobuf.cmake
@@ -0,0 +1,42 @@
+set(libprotobuf_files
+ ${protobuf_source_dir}/src/google/protobuf/any.cc
+ ${protobuf_source_dir}/src/google/protobuf/any.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/api.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/importer.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/parser.cc
+ ${protobuf_source_dir}/src/google/protobuf/descriptor.cc
+ ${protobuf_source_dir}/src/google/protobuf/descriptor.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/descriptor_database.cc
+ ${protobuf_source_dir}/src/google/protobuf/duration.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/dynamic_message.cc
+ ${protobuf_source_dir}/src/google/protobuf/empty.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/extension_set_heavy.cc
+ ${protobuf_source_dir}/src/google/protobuf/field_mask.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/generated_message_reflection.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/gzip_stream.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/printer.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/strtod.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/tokenizer.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream_impl.cc
+ ${protobuf_source_dir}/src/google/protobuf/map_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/message.cc
+ ${protobuf_source_dir}/src/google/protobuf/reflection_ops.cc
+ ${protobuf_source_dir}/src/google/protobuf/service.cc
+ ${protobuf_source_dir}/src/google/protobuf/source_context.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/struct.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/structurally_valid.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/strutil.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/substitute.cc
+ ${protobuf_source_dir}/src/google/protobuf/text_format.cc
+ ${protobuf_source_dir}/src/google/protobuf/timestamp.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/type.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/unknown_field_set.cc
+ ${protobuf_source_dir}/src/google/protobuf/wire_format.cc
+ ${protobuf_source_dir}/src/google/protobuf/wrappers.pb.cc
+)
+
+add_library(libprotobuf ${libprotobuf_lite_files} ${libprotobuf_files})
+target_link_libraries(libprotobuf ${CMAKE_THREAD_LIBS_INIT} ${ZLIB_LIBRARIES})
+set_target_properties(libprotobuf PROPERTIES
+ COMPILE_DEFINITIONS LIBPROTOBUF_EXPORTS
+ OUTPUT_NAME ${LIB_PREFIX}protobuf)
diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake
new file mode 100644
index 00000000..8caa9e9e
--- /dev/null
+++ b/cmake/libprotoc.cmake
@@ -0,0 +1,95 @@
+set(libprotoc_files
+ ${protobuf_source_dir}/src/google/protobuf/compiler/code_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/command_line_interface.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_enum.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_enum_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_extension.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_file.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_helpers.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_map_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_message.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_message_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_service.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_string_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_enum.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_enum_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_extension.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_field_base.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_helpers.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_message.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_message_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_umbrella_class.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_writer.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_context.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_doc_comment.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_enum.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_enum_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_enum_field_lite.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_extension.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_file.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_generator_factory.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_helpers.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_lazy_message_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_map_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_map_field_lite.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message_builder.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message_builder_lite.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message_field_lite.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_message_lite.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_name_resolver.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_primitive_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_primitive_field_lite.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_service.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_shared_code_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_string_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_string_field_lite.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_enum.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_enum_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_extension.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_file.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_helpers.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_map_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_message.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_message_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/javanano/javanano_primitive_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_enum.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_extension.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_file.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_message.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/plugin.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/plugin.pb.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/python/python_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/ruby/ruby_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/subprocess.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/zip_writer.cc
+)
+
+add_library(libprotoc ${libprotoc_files})
+target_link_libraries(libprotoc libprotobuf)
+set_target_properties(libprotoc PROPERTIES
+ COMPILE_DEFINITIONS LIBPROTOC_EXPORTS
+ OUTPUT_NAME ${LIB_PREFIX}protoc)
diff --git a/cmake/pbconfig.h.in b/cmake/pbconfig.h.in
new file mode 100644
index 00000000..fdc59686
--- /dev/null
+++ b/cmake/pbconfig.h.in
@@ -0,0 +1,9 @@
+#define GOOGLE_PROTOBUF_HAVE_HASH_MAP ${HAVE_HASH_MAP}
+#define GOOGLE_PROTOBUF_HAVE_HASH_SET ${HAVE_HASH_MAP}
+
+#define GOOGLE_PROTOBUF_HASH_NAMESPACE ${HASH_NAMESPACE}
+#define GOOGLE_PROTOBUF_HASH_MAP_H ${HASH_MAP_H}
+#define GOOGLE_PROTOBUF_HASH_MAP_CLASS ${HASH_MAP_CLASS}
+#define GOOGLE_PROTOBUF_HASH_SET_H ${HASH_SET_H}
+#define GOOGLE_PROTOBUF_HASH_SET_CLASS ${HASH_SET_CLASS}
+#define GOOGLE_PROTOBUF_HASH_COMPARE ${HASH_COMPARE}
diff --git a/cmake/protoc.cmake b/cmake/protoc.cmake
new file mode 100644
index 00000000..4f07c389
--- /dev/null
+++ b/cmake/protoc.cmake
@@ -0,0 +1,6 @@
+set(protoc_files
+ ${protobuf_source_dir}/src/google/protobuf/compiler/main.cc
+)
+
+add_executable(protoc ${protoc_files})
+target_link_libraries(protoc libprotobuf libprotoc)
diff --git a/cmake/tests.cmake b/cmake/tests.cmake
new file mode 100644
index 00000000..24891521
--- /dev/null
+++ b/cmake/tests.cmake
@@ -0,0 +1,148 @@
+include_directories(
+ ${protobuf_source_dir}/gtest/include
+ ${protobuf_source_dir}/gtest)
+
+add_library(gtest STATIC ${protobuf_source_dir}/gtest/src/gtest-all.cc)
+add_library(gtest_main STATIC ${protobuf_source_dir}/gtest/src/gtest_main.cc)
+target_link_libraries(gtest_main gtest)
+
+set(lite_test_protos
+ google/protobuf/map_lite_unittest.proto
+ google/protobuf/unittest_import_lite.proto
+ google/protobuf/unittest_import_public_lite.proto
+ google/protobuf/unittest_lite.proto
+)
+
+set(tests_protos
+ google/protobuf/any_test.proto
+ google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto
+ google/protobuf/compiler/cpp/cpp_test_large_enum_value.proto
+ google/protobuf/map_proto2_unittest.proto
+ google/protobuf/map_unittest.proto
+ google/protobuf/unittest.proto
+ google/protobuf/unittest_arena.proto
+ google/protobuf/unittest_custom_options.proto
+ google/protobuf/unittest_drop_unknown_fields.proto
+ google/protobuf/unittest_embed_optimize_for.proto
+ google/protobuf/unittest_empty.proto
+ google/protobuf/unittest_import.proto
+ google/protobuf/unittest_import_public.proto
+ google/protobuf/unittest_lite_imports_nonlite.proto
+ google/protobuf/unittest_mset.proto
+ google/protobuf/unittest_no_arena.proto
+ google/protobuf/unittest_no_arena_import.proto
+ google/protobuf/unittest_no_field_presence.proto
+ google/protobuf/unittest_no_generic_services.proto
+ google/protobuf/unittest_optimize_for.proto
+ google/protobuf/unittest_preserve_unknown_enum.proto
+ google/protobuf/unittest_preserve_unknown_enum2.proto
+ google/protobuf/unittest_proto3_arena.proto
+ google/protobuf/unittest_well_known_types.proto
+)
+
+macro(compile_proto_file filename)
+ get_filename_component(dirname ${filename} PATH)
+ get_filename_component(basename ${filename} NAME_WE)
+ add_custom_command(
+ OUTPUT ${protobuf_source_dir}/src/${dirname}/${basename}.pb.cc
+ COMMAND protoc ${protobuf_source_dir}/src/${dirname}/${basename}.proto
+ --proto_path=${protobuf_source_dir}/src
+ --cpp_out=${protobuf_source_dir}/src
+ DEPENDS protoc
+ )
+endmacro(compile_proto_file)
+
+set(lite_test_proto_files)
+foreach(proto_file ${lite_test_protos})
+ compile_proto_file(${proto_file})
+ string(REPLACE .proto .pb.cc pb_file ${proto_file})
+ set(lite_test_proto_files ${lite_test_proto_files}
+ ${protobuf_source_dir}/src/${pb_file})
+endforeach(proto_file)
+
+set(tests_proto_files)
+foreach(proto_file ${tests_protos})
+ compile_proto_file(${proto_file})
+ string(REPLACE .proto .pb.cc pb_file ${proto_file})
+ set(tests_proto_files ${tests_proto_files}
+ ${protobuf_source_dir}/src/${pb_file})
+endforeach(proto_file)
+
+set(common_test_files
+ ${protobuf_source_dir}/src/google/protobuf/arena_test_util.cc
+ ${protobuf_source_dir}/src/google/protobuf/map_test_util.cc
+ ${protobuf_source_dir}/src/google/protobuf/test_util.cc
+ ${protobuf_source_dir}/src/google/protobuf/testing/file.cc
+ ${protobuf_source_dir}/src/google/protobuf/testing/googletest.cc
+)
+
+set(tests_files
+ ${protobuf_source_dir}/src/google/protobuf/any_test.cc
+ ${protobuf_source_dir}/src/google/protobuf/arena_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/arenastring_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/command_line_interface_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_plugin_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/cpp/cpp_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/csharp/csharp_generator_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/importer_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_doc_comment_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/java/java_plugin_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/mock_code_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/parser_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/python/python_plugin_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/descriptor_database_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/descriptor_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/drop_unknown_fields_test.cc
+ ${protobuf_source_dir}/src/google/protobuf/dynamic_message_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/extension_set_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/generated_message_reflection_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/coded_stream_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/printer_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/tokenizer_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/io/zero_copy_stream_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/map_field_test.cc
+ ${protobuf_source_dir}/src/google/protobuf/map_test.cc
+ ${protobuf_source_dir}/src/google/protobuf/message_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/no_field_presence_test.cc
+ ${protobuf_source_dir}/src/google/protobuf/preserve_unknown_enum_test.cc
+ ${protobuf_source_dir}/src/google/protobuf/proto3_arena_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/reflection_ops_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/repeated_field_reflection_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/repeated_field_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/common_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/once_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/stringprintf_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/structurally_valid_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/strutil_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/template_util_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/stubs/type_traits_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/text_format_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/unknown_field_set_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/well_known_types_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/wire_format_unittest.cc
+)
+
+add_executable(tests ${tests_files} ${common_test_files} ${tests_proto_files} ${lite_test_proto_files})
+target_link_libraries(tests libprotoc libprotobuf gtest_main)
+
+set(test_plugin_files
+ ${protobuf_source_dir}/src/google/protobuf/compiler/mock_code_generator.cc
+ ${protobuf_source_dir}/src/google/protobuf/testing/file.cc
+ ${protobuf_source_dir}/src/google/protobuf/testing/file.h
+ ${protobuf_source_dir}/src/google/protobuf/compiler/test_plugin.cc
+)
+
+add_executable(test_plugin ${test_plugin_files})
+target_link_libraries(test_plugin libprotoc libprotobuf gtest)
+
+set(lite_test_files
+ ${protobuf_source_dir}/src/google/protobuf/arena_test_util.cc
+ ${protobuf_source_dir}/src/google/protobuf/lite_unittest.cc
+ ${protobuf_source_dir}/src/google/protobuf/map_lite_test_util.cc
+ ${protobuf_source_dir}/src/google/protobuf/test_util_lite.cc
+)
+add_executable(lite-test ${lite_test_files} ${lite_test_proto_files})
+target_link_libraries(lite-test libprotobuf-lite)
diff --git a/cmake/update_file_lists.sh b/cmake/update_file_lists.sh
new file mode 100755
index 00000000..4466c021
--- /dev/null
+++ b/cmake/update_file_lists.sh
@@ -0,0 +1,121 @@
+#!/bin/sh
+
+# This script copies source file lists from src/Makefile.am to cmake files.
+
+get_variable_value() {
+ FILENAME=$1
+ VARNAME=$2
+ awk "
+ BEGIN { start = 0; }
+ /^$VARNAME =/ { start = 1; }
+ { if (start) { print \$0; } }
+ /\\\\\$/ { next; }
+ { start = 0; }
+ " $FILENAME \
+ | sed "s/^$VARNAME =//" \
+ | sed "s/[ \\]//g" \
+ | grep -v "^\\$" \
+ | grep -v "^$" \
+ | LC_ALL=C sort | uniq
+}
+
+get_source_files() {
+ get_variable_value $@ | grep "cc$"
+}
+
+get_proto_files() {
+ get_variable_value $@ | grep "pb.cc$" | sed "s/pb.cc/proto/"
+}
+
+set_variable_value() {
+ FILENAME=$1
+ VARNAME=$2
+ PREFIX=$3
+ shift
+ shift
+ shift
+ awk -v values="$*" -v prefix="$PREFIX" "
+ BEGIN { start = 0; }
+ /^set\\($VARNAME/ {
+ start = 1;
+ print \$0;
+ len = split(values, vlist, \" \");
+ for (i = 1; i <= len; ++i) {
+ printf(\" %s%s\\n\", prefix, vlist[i]);
+ }
+ next;
+ }
+ start && /^\\)/ {
+ start = 0;
+ }
+ !start {
+ print \$0;
+ }
+ " $FILENAME > /tmp/$$
+ cp /tmp/$$ $FILENAME
+}
+
+sort_files() {
+ for FILE in $@; do
+ echo $FILE
+ done | LC_ALL=C sort | uniq
+}
+
+MAKEFILE=../src/Makefile.am
+CMAKE_DIR=.
+EXTRACT_INCLUDES_BAT=extract_includes.bat.in
+
+[ -f "$MAKEFILE" ] || {
+ echo "Cannot find: $MAKEFILE"
+ exit 1
+}
+
+[ -d "$CMAKE_DIR" ] || {
+ echo "Cannot find: $CMAKE_DIR"
+ exit 1
+}
+
+[ -f "$EXTRACT_INCLUDES_BAT" ] || {
+ echo "Cannot find: $EXTRACT_INCLUDES_BAT"
+ exit 1
+}
+
+# Extract file lists from src/Makefile.am
+GZHEADERS=$(get_variable_value $MAKEFILE GZHEADERS)
+HEADERS=$(get_variable_value $MAKEFILE nobase_include_HEADERS)
+PUBLIC_HEADERS=$(sort_files $GZHEADERS $HEADERS)
+LIBPROTOBUF_LITE_SOURCES=$(get_source_files $MAKEFILE libprotobuf_lite_la_SOURCES)
+LIBPROTOBUF_SOURCES=$(get_source_files $MAKEFILE libprotobuf_la_SOURCES)
+LIBPROTOC_SOURCES=$(get_source_files $MAKEFILE libprotoc_la_SOURCES)
+LITE_PROTOS=$(get_proto_files $MAKEFILE protoc_lite_outputs)
+PROTOS=$(get_proto_files $MAKEFILE protoc_outputs)
+COMMON_TEST_SOURCES=$(get_source_files $MAKEFILE COMMON_TEST_SOURCES)
+TEST_SOURCES=$(get_source_files $MAKEFILE protobuf_test_SOURCES)
+LITE_TEST_SOURCES=$(get_source_files $MAKEFILE protobuf_lite_test_SOURCES)
+
+# Replace file lists in cmake files.
+COMMON_PREFIX="\${protobuf_source_dir}/src/"
+set_variable_value $CMAKE_DIR/libprotobuf-lite.cmake libprotobuf_lite_files $COMMON_PREFIX $LIBPROTOBUF_LITE_SOURCES
+set_variable_value $CMAKE_DIR/libprotobuf.cmake libprotobuf_files $COMMON_PREFIX $LIBPROTOBUF_SOURCES
+set_variable_value $CMAKE_DIR/libprotoc.cmake libprotoc_files $COMMON_PREFIX $LIBPROTOC_SOURCES
+set_variable_value $CMAKE_DIR/tests.cmake lite_test_protos "" $LITE_PROTOS
+set_variable_value $CMAKE_DIR/tests.cmake tests_protos "" $PROTOS
+set_variable_value $CMAKE_DIR/tests.cmake common_test_files $COMMON_PREFIX $COMMON_TEST_SOURCES
+set_variable_value $CMAKE_DIR/tests.cmake tests_files $COMMON_PREFIX $TEST_SOURCES
+set_variable_value $CMAKE_DIR/tests.cmake lite_test_files $COMMON_PREFIX $LITE_TEST_SOURCES
+
+# Generate extract_includes.bat
+echo "mkdir include" > $EXTRACT_INCLUDES_BAT
+for HEADER in $PUBLIC_HEADERS; do
+ HEADER_DIR=$(dirname $HEADER)
+ while [ ! "$HEADER_DIR" = "." ]; do
+ echo $HEADER_DIR | sed "s/\\//\\\\/g"
+ HEADER_DIR=$(dirname $HEADER_DIR)
+ done
+done | sort | uniq | sed "s/^/mkdir include\\\\/" >> $EXTRACT_INCLUDES_BAT
+for HEADER in $PUBLIC_HEADERS; do
+ WINPATH=$(echo $HEADER | sed 's;/;\\;g')
+ echo "copy \${PROTOBUF_SOURCE_WIN32_PATH}\\..\\src\\$WINPATH include\\$WINPATH" >> $EXTRACT_INCLUDES_BAT
+done
+# Add pbconfig.h.
+echo "copy \${PROTOBUF_BINARY_WIN32_PATH}\\google\\protobuf\\stubs\\pbconfig.h include\\google\\protobuf\\stubs\\pbconfig.h" >> $EXTRACT_INCLUDES_BAT
diff --git a/configure.ac b/configure.ac
index 0615cd85..8018cc75 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12,7 +12,7 @@ AC_PREREQ(2.59)
# In the SVN trunk, the version should always be the next anticipated release
# version with the "-pre" suffix. (We used to use "-SNAPSHOT" but this pushed
# the size of one file name in the dist tarfile over the 99-char limit.)
-AC_INIT([Protocol Buffers],[3.0.0-alpha-3-pre],[protobuf@googlegroups.com],[protobuf])
+AC_INIT([Protocol Buffers],[3.0.0-alpha-4-pre],[protobuf@googlegroups.com],[protobuf])
AM_MAINTAINER_MODE([enable])
@@ -23,7 +23,7 @@ AC_CONFIG_MACRO_DIR([m4])
AC_ARG_VAR(DIST_LANG, [language to include in the distribution package (i.e., make dist)])
case "$DIST_LANG" in
"") DIST_LANG=all ;;
- all | cpp | java | python | javanano | ruby) ;;
+ all | cpp | csharp | java | python | javanano | objectivec | ruby) ;;
*) AC_MSG_FAILURE([unknown language: $DIST_LANG]) ;;
esac
AC_SUBST(DIST_LANG)
diff --git a/conformance/Makefile.am b/conformance/Makefile.am
index 95343f14..cccbac9e 100644
--- a/conformance/Makefile.am
+++ b/conformance/Makefile.am
@@ -57,7 +57,7 @@ conformance-java: javac_middleman
# Targets for actually running tests.
test_cpp: protoc_middleman conformance-test-runner conformance-cpp
- ./conformance-test-runner ./conformance-cpp
+ ./conformance-test-runner --failure_list failure_list_cpp.txt ./conformance-cpp
test_java: protoc_middleman conformance-test-runner conformance-java
./conformance-test-runner ./conformance-java
diff --git a/conformance/conformance.proto b/conformance/conformance.proto
index 7b676898..39eafdbb 100644
--- a/conformance/conformance.proto
+++ b/conformance/conformance.proto
@@ -71,7 +71,7 @@ message ConformanceRequest {
}
// Which format should the testee serialize its message to?
- optional RequestedOutput requested_output = 3;
+ RequestedOutput requested_output = 3;
}
// Represents a single test case's output.
@@ -103,8 +103,8 @@ message ConformanceResponse {
// forms.
message TestAllTypes {
message NestedMessage {
- optional int32 a = 1;
- optional TestAllTypes corecursive = 2;
+ int32 a = 1;
+ TestAllTypes corecursive = 2;
}
enum NestedEnum {
@@ -115,36 +115,32 @@ message TestAllTypes {
}
// Singular
- optional int32 optional_int32 = 1;
- optional int64 optional_int64 = 2;
- optional uint32 optional_uint32 = 3;
- optional uint64 optional_uint64 = 4;
- optional sint32 optional_sint32 = 5;
- optional sint64 optional_sint64 = 6;
- optional fixed32 optional_fixed32 = 7;
- optional fixed64 optional_fixed64 = 8;
- optional sfixed32 optional_sfixed32 = 9;
- optional sfixed64 optional_sfixed64 = 10;
- optional float optional_float = 11;
- optional double optional_double = 12;
- optional bool optional_bool = 13;
- optional string optional_string = 14;
- optional bytes optional_bytes = 15;
-
- optional group OptionalGroup = 16 {
- optional int32 a = 17;
- }
-
- optional NestedMessage optional_nested_message = 18;
- optional ForeignMessage optional_foreign_message = 19;
-
- optional NestedEnum optional_nested_enum = 21;
- optional ForeignEnum optional_foreign_enum = 22;
-
- optional string optional_string_piece = 24 [ctype=STRING_PIECE];
- optional string optional_cord = 25 [ctype=CORD];
-
- optional TestAllTypes recursive_message = 27;
+ int32 optional_int32 = 1;
+ int64 optional_int64 = 2;
+ uint32 optional_uint32 = 3;
+ uint64 optional_uint64 = 4;
+ sint32 optional_sint32 = 5;
+ sint64 optional_sint64 = 6;
+ fixed32 optional_fixed32 = 7;
+ fixed64 optional_fixed64 = 8;
+ sfixed32 optional_sfixed32 = 9;
+ sfixed64 optional_sfixed64 = 10;
+ float optional_float = 11;
+ double optional_double = 12;
+ bool optional_bool = 13;
+ string optional_string = 14;
+ bytes optional_bytes = 15;
+
+ NestedMessage optional_nested_message = 18;
+ ForeignMessage optional_foreign_message = 19;
+
+ NestedEnum optional_nested_enum = 21;
+ ForeignEnum optional_foreign_enum = 22;
+
+ string optional_string_piece = 24 [ctype=STRING_PIECE];
+ string optional_cord = 25 [ctype=CORD];
+
+ TestAllTypes recursive_message = 27;
// Repeated
repeated int32 repeated_int32 = 31;
@@ -163,10 +159,6 @@ message TestAllTypes {
repeated string repeated_string = 44;
repeated bytes repeated_bytes = 45;
- repeated group RepeatedGroup = 46 {
- optional int32 a = 47;
- }
-
repeated NestedMessage repeated_nested_message = 48;
repeated ForeignMessage repeated_foreign_message = 49;
@@ -206,7 +198,7 @@ message TestAllTypes {
}
message ForeignMessage {
- optional int32 c = 1;
+ int32 c = 1;
}
enum ForeignEnum {
diff --git a/conformance/conformance_test.cc b/conformance/conformance_test.cc
index 61029e44..7a7fc6f5 100644
--- a/conformance/conformance_test.cc
+++ b/conformance/conformance_test.cc
@@ -126,12 +126,11 @@ string submsg(uint32_t fn, const string& buf) {
#define UNKNOWN_FIELD 666
-uint32_t GetFieldNumberForType(WireFormatLite::FieldType type, bool repeated) {
+uint32_t GetFieldNumberForType(FieldDescriptor::Type type, bool repeated) {
const Descriptor* d = TestAllTypes().GetDescriptor();
for (int i = 0; i < d->field_count(); i++) {
const FieldDescriptor* f = d->field(i);
- if (static_cast<WireFormatLite::FieldType>(f->type()) == type &&
- f->is_repeated() == repeated) {
+ if (f->type() == type && f->is_repeated() == repeated) {
return f->number();
}
}
@@ -139,16 +138,37 @@ uint32_t GetFieldNumberForType(WireFormatLite::FieldType type, bool repeated) {
return 0;
}
+string UpperCase(string str) {
+ for (int i = 0; i < str.size(); i++) {
+ str[i] = toupper(str[i]);
+ }
+ return str;
+}
+
} // anonymous namespace
namespace google {
namespace protobuf {
-void ConformanceTestSuite::ReportSuccess() {
+void ConformanceTestSuite::ReportSuccess(const string& test_name) {
+ if (expected_to_fail_.erase(test_name) != 0) {
+ StringAppendF(&output_,
+ "ERROR: test %s is in the failure list, but test succeeded. "
+ "Remove it from the failure list.\n",
+ test_name.c_str());
+ unexpected_succeeding_tests_.insert(test_name);
+ }
successes_++;
}
-void ConformanceTestSuite::ReportFailure(const char *fmt, ...) {
+void ConformanceTestSuite::ReportFailure(const string& test_name,
+ const char* fmt, ...) {
+ if (expected_to_fail_.erase(test_name) == 1) {
+ StringAppendF(&output_, "FAILED AS EXPECTED, test=%s: ", test_name.c_str());
+ } else {
+ StringAppendF(&output_, "ERROR, test=%s: ", test_name.c_str());
+ unexpected_failing_tests_.insert(test_name);
+ }
va_list args;
va_start(args, fmt);
StringAppendV(&output_, fmt, args);
@@ -156,8 +176,13 @@ void ConformanceTestSuite::ReportFailure(const char *fmt, ...) {
failures_++;
}
-void ConformanceTestSuite::RunTest(const ConformanceRequest& request,
+void ConformanceTestSuite::RunTest(const string& test_name,
+ const ConformanceRequest& request,
ConformanceResponse* response) {
+ if (test_names_.insert(test_name).second == false) {
+ GOOGLE_LOG(FATAL) << "Duplicated test name: " << test_name;
+ }
+
string serialized_request;
string serialized_response;
request.SerializeToString(&serialized_request);
@@ -170,14 +195,16 @@ void ConformanceTestSuite::RunTest(const ConformanceRequest& request,
}
if (verbose_) {
- StringAppendF(&output_, "conformance test: request=%s, response=%s\n",
+ StringAppendF(&output_, "conformance test: name=%s, request=%s, response=%s\n",
+ test_name.c_str(),
request.ShortDebugString().c_str(),
response->ShortDebugString().c_str());
}
}
-void ConformanceTestSuite::DoExpectParseFailureForProto(const string& proto,
- int line) {
+// Expect that this precise protobuf will cause a parse error.
+void ConformanceTestSuite::ExpectParseFailureForProto(
+ const string& proto, const string& test_name) {
ConformanceRequest request;
ConformanceResponse response;
request.set_protobuf_payload(proto);
@@ -186,31 +213,29 @@ void ConformanceTestSuite::DoExpectParseFailureForProto(const string& proto,
// we let it send its response as this. We must not leave it unspecified.
request.set_requested_output(ConformanceRequest::PROTOBUF);
- RunTest(request, &response);
+ RunTest(test_name, request, &response);
if (response.result_case() == ConformanceResponse::kParseError) {
- ReportSuccess();
+ ReportSuccess(test_name);
} else {
- ReportFailure("Should have failed, but didn't. Line: %d, Request: %s, "
+ ReportFailure(test_name,
+ "Should have failed to parse, but didn't. Request: %s, "
"response: %s\n",
- line,
request.ShortDebugString().c_str(),
response.ShortDebugString().c_str());
}
}
-// Expect that this precise protobuf will cause a parse error.
-#define ExpectParseFailureForProto(proto) DoExpectParseFailureForProto(proto, __LINE__)
-
// Expect that this protobuf will cause a parse error, even if it is followed
// by valid protobuf data. We can try running this twice: once with this
// data verbatim and once with this data followed by some valid data.
//
// TODO(haberman): implement the second of these.
-#define ExpectHardParseFailureForProto(proto) DoExpectParseFailureForProto(proto, __LINE__)
-
+void ConformanceTestSuite::ExpectHardParseFailureForProto(
+ const string& proto, const string& test_name) {
+ return ExpectParseFailureForProto(proto, test_name);
+}
-void ConformanceTestSuite::TestPrematureEOFForType(
- WireFormatLite::FieldType type) {
+void ConformanceTestSuite::TestPrematureEOFForType(FieldDescriptor::Type type) {
// Incomplete values for each wire type.
static const string incompletes[6] = {
string("\x80"), // VARINT
@@ -223,45 +248,51 @@ void ConformanceTestSuite::TestPrematureEOFForType(
uint32_t fieldnum = GetFieldNumberForType(type, false);
uint32_t rep_fieldnum = GetFieldNumberForType(type, true);
- WireFormatLite::WireType wire_type =
- WireFormatLite::WireTypeForFieldType(type);
+ WireFormatLite::WireType wire_type = WireFormatLite::WireTypeForFieldType(
+ static_cast<WireFormatLite::FieldType>(type));
const string& incomplete = incompletes[wire_type];
+ const string type_name =
+ UpperCase(string(".") + FieldDescriptor::TypeName(type));
- // EOF before a known non-repeated value.
- ExpectParseFailureForProto(tag(fieldnum, wire_type));
+ ExpectParseFailureForProto(
+ tag(fieldnum, wire_type),
+ "PrematureEofBeforeKnownNonRepeatedValue" + type_name);
- // EOF before a known repeated value.
- ExpectParseFailureForProto(tag(rep_fieldnum, wire_type));
+ ExpectParseFailureForProto(
+ tag(rep_fieldnum, wire_type),
+ "PrematureEofBeforeKnownRepeatedValue" + type_name);
- // EOF before an unknown value.
- ExpectParseFailureForProto(tag(UNKNOWN_FIELD, wire_type));
+ ExpectParseFailureForProto(
+ tag(UNKNOWN_FIELD, wire_type),
+ "PrematureEofBeforeUnknownValue" + type_name);
- // EOF inside a known non-repeated value.
ExpectParseFailureForProto(
- cat( tag(fieldnum, wire_type), incomplete ));
+ cat( tag(fieldnum, wire_type), incomplete ),
+ "PrematureEofInsideKnownNonRepeatedValue" + type_name);
- // EOF inside a known repeated value.
ExpectParseFailureForProto(
- cat( tag(rep_fieldnum, wire_type), incomplete ));
+ cat( tag(rep_fieldnum, wire_type), incomplete ),
+ "PrematureEofInsideKnownRepeatedValue" + type_name);
- // EOF inside an unknown value.
ExpectParseFailureForProto(
- cat( tag(UNKNOWN_FIELD, wire_type), incomplete ));
+ cat( tag(UNKNOWN_FIELD, wire_type), incomplete ),
+ "PrematureEofInsideUnknownValue" + type_name);
if (wire_type == WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
- // EOF in the middle of delimited data for known non-repeated value.
ExpectParseFailureForProto(
- cat( tag(fieldnum, wire_type), varint(1) ));
+ cat( tag(fieldnum, wire_type), varint(1) ),
+ "PrematureEofInDelimitedDataForKnownNonRepeatedValue" + type_name);
- // EOF in the middle of delimited data for known repeated value.
ExpectParseFailureForProto(
- cat( tag(rep_fieldnum, wire_type), varint(1) ));
+ cat( tag(rep_fieldnum, wire_type), varint(1) ),
+ "PrematureEofInDelimitedDataForKnownRepeatedValue" + type_name);
// EOF in the middle of delimited data for unknown value.
ExpectParseFailureForProto(
- cat( tag(UNKNOWN_FIELD, wire_type), varint(1) ));
+ cat( tag(UNKNOWN_FIELD, wire_type), varint(1) ),
+ "PrematureEofInDelimitedDataForUnknownValue" + type_name);
- if (type == WireFormatLite::TYPE_MESSAGE) {
+ if (type == FieldDescriptor::TYPE_MESSAGE) {
// Submessage ends in the middle of a value.
string incomplete_submsg =
cat( tag(WireFormatLite::TYPE_INT32, WireFormatLite::WIRETYPE_VARINT),
@@ -269,41 +300,86 @@ void ConformanceTestSuite::TestPrematureEOFForType(
ExpectHardParseFailureForProto(
cat( tag(fieldnum, WireFormatLite::WIRETYPE_LENGTH_DELIMITED),
varint(incomplete_submsg.size()),
- incomplete_submsg ));
+ incomplete_submsg ),
+ "PrematureEofInSubmessageValue" + type_name);
}
- } else if (type != WireFormatLite::TYPE_GROUP) {
+ } else if (type != FieldDescriptor::TYPE_GROUP) {
// Non-delimited, non-group: eligible for packing.
// Packed region ends in the middle of a value.
ExpectHardParseFailureForProto(
cat( tag(rep_fieldnum, WireFormatLite::WIRETYPE_LENGTH_DELIMITED),
varint(incomplete.size()),
- incomplete ));
+ incomplete ),
+ "PrematureEofInPackedFieldValue" + type_name);
// EOF in the middle of packed region.
ExpectParseFailureForProto(
cat( tag(rep_fieldnum, WireFormatLite::WIRETYPE_LENGTH_DELIMITED),
- varint(1) ));
+ varint(1) ),
+ "PrematureEofInPackedField" + type_name);
}
}
-void ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
+void ConformanceTestSuite::SetFailureList(const vector<string>& failure_list) {
+ expected_to_fail_.clear();
+ std::copy(failure_list.begin(), failure_list.end(),
+ std::inserter(expected_to_fail_, expected_to_fail_.end()));
+}
+
+bool ConformanceTestSuite::CheckSetEmpty(const set<string>& set_to_check,
+ const char* msg) {
+ if (set_to_check.empty()) {
+ return true;
+ } else {
+ StringAppendF(&output_, "\n");
+ StringAppendF(&output_, "ERROR: %s:\n", msg);
+ for (set<string>::const_iterator iter = set_to_check.begin();
+ iter != set_to_check.end(); ++iter) {
+ StringAppendF(&output_, "%s\n", iter->c_str());
+ }
+ return false;
+ }
+}
+
+bool ConformanceTestSuite::RunSuite(ConformanceTestRunner* runner,
std::string* output) {
runner_ = runner;
output_.clear();
successes_ = 0;
failures_ = 0;
+ test_names_.clear();
+ unexpected_failing_tests_.clear();
+ unexpected_succeeding_tests_.clear();
for (int i = 1; i <= FieldDescriptor::MAX_TYPE; i++) {
- TestPrematureEOFForType(static_cast<WireFormatLite::FieldType>(i));
+ if (i == FieldDescriptor::TYPE_GROUP) continue;
+ TestPrematureEOFForType(static_cast<FieldDescriptor::Type>(i));
}
+ StringAppendF(&output_, "\n");
StringAppendF(&output_,
"CONFORMANCE SUITE FINISHED: completed %d tests, %d successes, "
"%d failures.\n",
successes_ + failures_, successes_, failures_);
+ bool ok =
+ CheckSetEmpty(expected_to_fail_,
+ "These tests were listed in the failure list, but they "
+ "don't exist. Remove them from the failure list") &&
+
+ CheckSetEmpty(unexpected_failing_tests_,
+ "These tests failed. If they can't be fixed right now, "
+ "you can add them to the failure list so the overall "
+ "suite can succeed") &&
+
+ CheckSetEmpty(unexpected_succeeding_tests_,
+ "These tests succeeded, even though they were listed in "
+ "the failure list. Remove them from the failure list");
+
output->assign(output_);
+
+ return ok;
}
} // namespace protobuf
diff --git a/conformance/conformance_test.h b/conformance/conformance_test.h
index c16f9c0b..764a8d33 100644
--- a/conformance/conformance_test.h
+++ b/conformance/conformance_test.h
@@ -83,24 +83,50 @@ class ConformanceTestSuite {
public:
ConformanceTestSuite() : verbose_(false) {}
+ // Sets the list of tests that are expected to fail when RunSuite() is called.
+ // RunSuite() will fail unless the set of failing tests is exactly the same
+ // as this list.
+ void SetFailureList(const std::vector<std::string>& failure_list);
+
// Run all the conformance tests against the given test runner.
// Test output will be stored in "output".
- void RunSuite(ConformanceTestRunner* runner, std::string* output);
+ //
+ // Returns true if the set of failing tests was exactly the same as the
+ // failure list. If SetFailureList() was not called, returns true if all
+ // tests passed.
+ bool RunSuite(ConformanceTestRunner* runner, std::string* output);
private:
- void ReportSuccess();
- void ReportFailure(const char* fmt, ...);
- void RunTest(const conformance::ConformanceRequest& request,
+ void ReportSuccess(const std::string& test_name);
+ void ReportFailure(const std::string& test_name, const char* fmt, ...);
+ void RunTest(const std::string& test_name,
+ const conformance::ConformanceRequest& request,
conformance::ConformanceResponse* response);
- void DoExpectParseFailureForProto(const std::string& proto, int line);
- void TestPrematureEOFForType(
- google::protobuf::internal::WireFormatLite::FieldType type);
-
+ void ExpectParseFailureForProto(const std::string& proto,
+ const std::string& test_name);
+ void ExpectHardParseFailureForProto(const std::string& proto,
+ const std::string& test_name);
+ void TestPrematureEOFForType(google::protobuf::FieldDescriptor::Type type);
+ bool CheckSetEmpty(const set<string>& set_to_check, const char* msg);
ConformanceTestRunner* runner_;
int successes_;
int failures_;
bool verbose_;
std::string output_;
+
+ // The set of test names that are expected to fail in this run, but haven't
+ // failed yet.
+ std::set<std::string> expected_to_fail_;
+
+ // The set of test names that have been run. Used to ensure that there are no
+ // duplicate names in the suite.
+ std::set<std::string> test_names_;
+
+ // The set of tests that failed, but weren't expected to.
+ std::set<std::string> unexpected_failing_tests_;
+
+ // The set of tests that succeeded, but weren't expected to.
+ std::set<std::string> unexpected_succeeding_tests_;
};
} // namespace protobuf
diff --git a/conformance/conformance_test_runner.cc b/conformance/conformance_test_runner.cc
index ca5877bd..b56e19cf 100644
--- a/conformance/conformance_test_runner.cc
+++ b/conformance/conformance_test_runner.cc
@@ -55,6 +55,8 @@
#include <errno.h>
#include <unistd.h>
+#include <fstream>
+#include <vector>
#include "conformance.pb.h"
#include "conformance_test.h"
@@ -62,6 +64,8 @@
using conformance::ConformanceRequest;
using conformance::ConformanceResponse;
using google::protobuf::internal::scoped_array;
+using std::string;
+using std::vector;
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
@@ -143,8 +147,9 @@ class ForkPipeRunner : public google::protobuf::ConformanceTestRunner {
CHECK_SYSCALL(close(toproc_pipe_fd[1]));
CHECK_SYSCALL(close(fromproc_pipe_fd[0]));
- scoped_array<char> executable(new char[executable_.size()]);
+ scoped_array<char> executable(new char[executable_.size() + 1]);
memcpy(executable.get(), executable_.c_str(), executable_.size());
+ executable[executable_.size()] = '\0';
char *const argv[] = {executable.get(), NULL};
CHECK_SYSCALL(execv(executable.get(), argv)); // Never returns.
@@ -179,18 +184,67 @@ class ForkPipeRunner : public google::protobuf::ConformanceTestRunner {
std::string executable_;
};
+void UsageError() {
+ fprintf(stderr,
+ "Usage: conformance-test-runner [options] <test-program>\n");
+ fprintf(stderr, "\n");
+ fprintf(stderr, "Options:\n");
+ fprintf(stderr,
+ " --failure_list <filename> Use to specify list of tests\n");
+ fprintf(stderr,
+ " that are expected to fail. File\n");
+ fprintf(stderr,
+ " should contain one test name per\n");
+ fprintf(stderr,
+ " line. Use '#' for comments.\n");
+ exit(1);
+}
+
+void ParseFailureList(const char *filename, vector<string>* failure_list) {
+ std::ifstream infile(filename);
+ for (string line; getline(infile, line);) {
+ // Remove whitespace.
+ line.erase(std::remove_if(line.begin(), line.end(), ::isspace),
+ line.end());
+
+ // Remove comments.
+ line = line.substr(0, line.find("#"));
+
+ if (!line.empty()) {
+ failure_list->push_back(line);
+ }
+ }
+}
int main(int argc, char *argv[]) {
- if (argc < 2) {
- fprintf(stderr, "Usage: conformance-test-runner <test-program>\n");
- exit(1);
+ int arg = 1;
+ char *program;
+ vector<string> failure_list;
+
+ for (int arg = 1; arg < argc; ++arg) {
+ if (strcmp(argv[arg], "--failure_list") == 0) {
+ if (++arg == argc) UsageError();
+ ParseFailureList(argv[arg], &failure_list);
+ } else if (argv[arg][0] == '-') {
+ fprintf(stderr, "Unknown option: %s\n", argv[arg]);
+ UsageError();
+ } else {
+ if (arg != argc - 1) {
+ fprintf(stderr, "Too many arguments.\n");
+ UsageError();
+ }
+ program = argv[arg];
+ }
}
- ForkPipeRunner runner(argv[1]);
+ ForkPipeRunner runner(program);
google::protobuf::ConformanceTestSuite suite;
+ suite.SetFailureList(failure_list);
std::string output;
- suite.RunSuite(&runner, &output);
+ bool ok = suite.RunSuite(&runner, &output);
fwrite(output.c_str(), 1, output.size(), stderr);
+
+ return ok ? EXIT_SUCCESS : EXIT_FAILURE;
}
diff --git a/conformance/failure_list_cpp.txt b/conformance/failure_list_cpp.txt
new file mode 100644
index 00000000..d792eddd
--- /dev/null
+++ b/conformance/failure_list_cpp.txt
@@ -0,0 +1,21 @@
+# This is the list of conformance tests that are known to fail for the C++
+# implementation right now. These should be fixed.
+#
+# By listing them here we can keep tabs on which ones are failing and be sure
+# that we don't introduce regressions in other tests.
+#
+# TODO(haberman): insert links to corresponding bugs tracking the issue.
+# Should we use GitHub issues or the Google-internal bug tracker?
+
+PrematureEofBeforeKnownRepeatedValue.MESSAGE
+PrematureEofInDelimitedDataForKnownNonRepeatedValue.MESSAGE
+PrematureEofInDelimitedDataForKnownRepeatedValue.MESSAGE
+PrematureEofInPackedField.BOOL
+PrematureEofInPackedField.ENUM
+PrematureEofInPackedField.INT32
+PrematureEofInPackedField.INT64
+PrematureEofInPackedField.SINT32
+PrematureEofInPackedField.SINT64
+PrematureEofInPackedField.UINT32
+PrematureEofInPackedField.UINT64
+PrematureEofInsideKnownRepeatedValue.MESSAGE
diff --git a/csharp/.gitignore b/csharp/.gitignore
new file mode 100644
index 00000000..d7dcef59
--- /dev/null
+++ b/csharp/.gitignore
@@ -0,0 +1,45 @@
+#
+# Untracked directories
+#
+src/AddressBook/bin
+src/AddressBook/obj
+src/ProtocolBuffers/bin/
+src/ProtocolBuffers/obj/
+src/ProtocolBuffers/objCF
+src/ProtocolBuffers.Serialization/bin/
+src/ProtocolBuffers.Serialization/obj/
+src/ProtocolBuffers.Test/bin/
+src/ProtocolBuffers.Test/obj/
+src/ProtocolBuffersLite.Test/bin/
+src/ProtocolBuffersLite.Test/obj/
+src/ProtoBench/bin/
+src/ProtoBench/obj/
+src/ProtoDump/bin/
+src/ProtoDump/obj/
+src/ProtoGen/bin/
+src/ProtoGen/obj/
+src/ProtoGen.Test/bin/
+src/ProtoGen.Test/obj/
+src/ProtoMunge/bin/
+src/ProtoMunge/obj/
+mono/bin
+mono/tmp
+mono/protoc
+build_output
+build_temp
+build/msbuild*.log
+lib/Microsoft.Silverlight.Testing
+lib/NUnit
+
+#
+# Untracked files
+#
+*.user
+*.suo
+_ReSharper.*
+*.sln.cache
+mono/TestResult.xml
+mono/.libs
+mono/*.exe
+mono/*.dll
+lib/protoc.exe
diff --git a/csharp/CHANGES.txt b/csharp/CHANGES.txt
new file mode 100644
index 00000000..b29debb8
--- /dev/null
+++ b/csharp/CHANGES.txt
@@ -0,0 +1,148 @@
+===============================================================================
+Welcome to the C# port of Google Protocol Buffers, written by Jon Skeet
+(skeet@pobox.com) based on the work of many talented people.
+
+===============================================================================
+RELEASE NOTES - Code imported into Google's main protobuf repository
+===============================================================================
+
+Everything below note this represents history of protobuf-csharp-port project
+before the code was merged into csharp/ subtree of GitHub google/protobuf
+repository.
+Frozen legacy version of the original project is available in
+https://github.com/jskeet/protobuf-csharp-port.
+
+===============================================================================
+RELEASE NOTES - Version 2.4.1.555
+===============================================================================
+
+Changes:
+- Upgrade solution format to Visual Studio 2012.
+- Add the ability to print a builder (not just a message)
+- TextGenerator introduces a new overload of PrintTo
+- Munge protoc's error format into a VS-C#-compatible output format.
+- Work to make ProtoGen clone that acts as a protoc.exe plugin.
+- Added the AllowPartiallyTrustedCallers attribute
+- Optimized enum parsing.
+
+Fixes:
+- Fix for bug in limited input stream's Position, Introduced Position on
+ output stream
+- Fix for writing a character to a JSON output overflows allocated buffer
+- Optimize FromBase64String to return Empty when presented with empty string.
+- Use string.Concat instead of operator to avoid potential import problems
+- Issue 81: quoting for NUnit parameters.
+- Issue 56: NuGet package is noisy
+- Issue 70: Portable library project has some invalid Nunit-based code.
+- Issue 71: CodedInputStream.ReadBytes go to slow path unnecessarily
+- Issue 84: warning CS0219: The variable `size' is assigned but never used
+
+===============================================================================
+RELEASE NOTES - Version 2.4.1.521
+===============================================================================
+
+Changes:
+- Add generated_code_attributes option, defaulted to false
+- Added support for Portable library
+- Added 'Unsafe' static type in ByteString to allow direct buffer access
+
+Fixes:
+- Issue 50: The XML serializer will fail to deserialize a message with empty
+ child message
+- Issue 45: Use of 'item' as a field name causes AmbiguousMatchException
+- Issue 49: Generated nested static Types class should be partial
+- Issue 38: Disable CLSCompliant warnings (3021)
+- Issue 40: proto_path does not work for command-line file names
+- Issue 54: should retire all bytes in buffer (bufferSize)
+- Issue 43: Fix to correct identical 'umbrella_classname' options from trying
+ to write to the same filename.
+
+===============================================================================
+RELEASE NOTES - Version 2.4.1.473
+===============================================================================
+
+Features:
+- Added option service_generator_type to control service generation with
+ NONE, GENERIC, INTERFACE, or IRPCDISPATCH
+- Added interfaces IRpcDispatch and IRpcServerStub to provide for blocking
+ services and implementations.
+- Added ProtoGen.exe command-line argument "--protoc_dir=" to specify the
+ location of protoc.exe.
+- Extracted interfaces for ICodedInputStream and ICodedOutputStream to allow
+ custom implementation of writers with both speed and size optimizations.
+- Addition of the "Google.ProtoBuffers.Serialization" assembly to support
+ reading and writing messages to/from XML, JSON, IDictionary<,> and others.
+- Several performance related fixes and tweeks
+- Issue 3: Add option to mark generated code with attribute
+- Issue 20: Support for decorating classes [Serializable]
+- Issue 21: Decorate fields with [deprecated=true] as [System.Obsolete]
+- Issue 22: Reusable Builder classes
+- Issue 24: Support for using Json/Xml formats with ICodedInputStream
+- Issue 25: Added support for NuGet packages
+- Issue 31: Upgraded protoc.exe and descriptor to 2.4.1
+
+Fixes:
+- Issue 13: Message with Field same name as message causes uncompilable .cs
+- Issue 16: Does not integrate well with other tooling
+- Issue 19: Support for negative enum values
+- Issue 26: AddRange in GeneratedBuilder iterates twice.
+- Issue 27: Remove XML documentation output from test projects to clear
+ warnings/errors.
+- Issue 28: Circular message dependencies result in null default values for
+ Message fields.
+- Issue 29: Message classes generated have a public default constructor. You
+ can disable private ctor generation with the option generate_private_ctor.
+- Issue 35: Fixed a bug in ProtoGen handling of arguments with trailing \
+- Big-endian support for float, and double on Silverlight
+- Packed and Unpacked parsing allow for all repeated, as per version 2.3
+- Fix for leaving Builder a public ctor on internal classes for use with
+ generic "where T: new()" constraints.
+
+Other:
+- Changed the code signing key to a privately held key
+- Reformatted all code and line-endings to C# defaults
+- Reworking of performance benchmarks to produce reliable results, option /v2
+- Issue 34: Silverlight assemblies are now unit tested
+
+===============================================================================
+RELEASE NOTES - Version 2.3.0.277
+===============================================================================
+
+Features:
+- Added cls_compliance option to generate attributes indicating
+ non-CLS-compliance.
+- Added file_extension option to control the generated output file's extension.
+- Added umbrella_namespace option to place the umbrella class into a nested
+ namespace to address issues with proto files having the same name as a
+ message it contains.
+- Added output_directory option to set the output path for the source file(s).
+- Added ignore_google_protobuf option to avoid generating code for includes
+ from the google.protobuf package.
+- Added the LITE framework (Google.ProtoBuffersLite.dll) and the ability to
+ generate code with "option optimize_for = LITE_RUNTIME;".
+- Added ability to invoke protoc.exe from within ProtoGen.exe.
+- Upgraded to protoc.exe (2.3) compiler.
+
+Fixes:
+- Issue 9: Class cannot be static and sealed error
+- Issue 12: default value for enumerate fields must be filled out
+
+Other:
+- Rewrite of build using MSBbuild instead of NAnt
+- Moved to NUnit Version 2.2.8.0
+- Changed to using secure .snk for releases
+
+===============================================================================
+RELEASE NOTES - Version 0.9.1
+===============================================================================
+
+Fixes:
+- issue 10: Incorrect encoding of packed fields when serialized
+
+===============================================================================
+RELEASE NOTES - Version 0.9.0
+===============================================================================
+
+- Initial release
+
+=============================================================================== \ No newline at end of file
diff --git a/csharp/README.md b/csharp/README.md
new file mode 100644
index 00000000..d6948280
--- /dev/null
+++ b/csharp/README.md
@@ -0,0 +1,37 @@
+
+This directory contains the C# Protocol Buffers runtime library.
+
+Usage
+=====
+
+The easiest way to use C# protocol buffers in your project is to use the [Google.ProtocolBuffers NuGet package](http://www.nuget.org/packages/Google.ProtocolBuffers/). This package is the legacy package for C# protocol buffers, but it will work fine with C# code generated by `protoc` if you use proto2 syntax (The API of the runtime library haven't changed so far).
+
+*WARNING: If you specify `syntax = "proto3";` in your .proto files, the generated code won't necessarily work with the legacy NuGet package. So before we officially add proto3 support, always use `syntax = "proto2";` (the default) in your protos.*
+
+We will definitely release a new NuGet package for the runtime library in the future. The new runtime library WILL contain significant semantic, backwardly-incompatible changes in proto handling (mostly because we will be adding proto3 support and we will be using that oportunity to make some design changes). So keep in mind that you will need to regenerate your proto files and switch to a new NuGet package once the new version of runtime library becomes available.
+
+Building
+========
+
+Open the `src/ProtocolBuffers.sln` solution in Visual Studio. Click "Build solution" to build the solution. You should be able to run the NUnit test from Test Explorer (you might need to install NUnit Visual Studio add-in).
+
+Supported Visual Studio versions are VS2013 (update 4) and VS2015. On Linux, you can also use Monodevelop 5.9 (older versions might work fine).
+
+Proto2 & Proto3
+===============
+
+*WARNING: Only proto2 is supported for now, proto3 is under construction.*
+
+C# protocol buffers are currently under development and you should expect semantic, backward-incompatible changes in the future.
+
+Also, as of now, only proto2 is supported. Proto3 support for C# is currently in progress
+(both design & implementation) and you should not expect any of the proto3 features to work.
+In fact, always use `syntax = "proto2";` in your .proto files for now, unless you are feeling like experimenting.
+
+History of C# protobufs
+=======================
+
+This subtree was originally imported from https://github.com/jskeet/protobuf-csharp-port
+and represents the latest development version of C# protobufs, that will now be developed
+and maintained by Google. All the development will be done in open, under this repository
+(https://github.com/google/protobuf).
diff --git a/csharp/build/BuildAll.bat b/csharp/build/BuildAll.bat
new file mode 100644
index 00000000..9bee73c7
--- /dev/null
+++ b/csharp/build/BuildAll.bat
@@ -0,0 +1,8 @@
+@echo off
+SET BUILD_TARGET=%~1
+SET BUILD_CONFIG=%~2
+
+IF "%BUILD_TARGET%"=="" SET BUILD_TARGET=Rebuild
+IF "%BUILD_CONFIG%"=="" SET BUILD_CONFIG=Debug
+
+CMD.exe /Q /C "CD %~dp0 && %WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /nologo build.csproj /t:%BUILD_TARGET% /toolsversion:4.0 "/p:Configuration=%BUILD_CONFIG%" %3 %4 %5 %6
diff --git a/csharp/build/Common.targets b/csharp/build/Common.targets
new file mode 100644
index 00000000..2aa74dfe
--- /dev/null
+++ b/csharp/build/Common.targets
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+<!-- **********************************************************************************************
+Targets For Clean
+*********************************************************************************************** -->
+
+ <Target Name="_CleanFolder">
+ <Message Importance="normal" Text="Removing temporary directory '$(CleanFolderDirectory)'"/>
+ <Error Text="Can not remove empty directory name." Condition=" '$(CleanFolderDirectory)' == '' " />
+
+ <Exec WorkingDirectory="$(MSBuildProjectDirectory)" Condition="Exists($(CleanFolderDirectory))" Outputs="@(Ignore)"
+ Command="MOVE /Y &quot;$(CleanFolderDirectory)&quot; &quot;$(CleanFolderDirectory)-deleted&quot; > NUL" />
+
+ <RemoveDir Directories="$(CleanFolderDirectory)-deleted" Condition="Exists('$(CleanFolderDirectory)-deleted')" />
+ </Target>
+
+ <Target Name="_CleanTempOutput">
+ <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="CleanFolderDirectory=%(TempBuildFolder.Identity);" Targets="_CleanFolder" />
+ </Target>
+
+ <Target Name="_CleanAll" DependsOnTargets="_CleanTempOutput">
+ <MakeDir Directories="$(BuildTempDirectory)" />
+ <MakeDir Directories="$(BuildOutputDirectory)" />
+ </Target>
+
+<!-- **********************************************************************************************
+Targets For Build
+*********************************************************************************************** -->
+
+ <Target Name="_CompileAll">
+ <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=Rebuild;" Targets="_BuildAllConfigurations" />
+ </Target>
+
+ <Target Name="_BuildAllConfigurations">
+ <MSBuild Properties="TargetVersion=cf20;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=cf35;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=net20;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=net35;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=net40;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=sl20;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=sl30;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=sl40;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="TargetVersion=pl40;Configuration=$(Configuration);Platform=$(Platform);" Targets="$(SolutionTarget)" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ </Target>
+
+<!-- **********************************************************************************************
+Targets For Tools
+*********************************************************************************************** -->
+
+ <Target Name="_BuildTools">
+
+ <MSBuild Targets="Build" ToolsVersion="3.5" Projects="$(ProjectDirectory)\src\ProtocolBuffers.sln" Properties="Configuration=Release;Platform=Any CPU;" />
+ <Copy SourceFiles="%(ToolsOutputItem.Identity)" DestinationFolder="$(BuildOutputDirectory)\tools" />
+
+ <Copy SourceFiles="$(LibDirectory)\NUnit-config\nunit-console.v2.0.config" DestinationFiles="$(NUnitExePath).config" />
+ <Exec
+ WorkingDirectory="%(ToolsTestContainer.RootDir)%(ToolsTestContainer.Directory)"
+ Command="&quot;$(NUnitExePath)&quot; /nologo /noshadow &quot;%(ToolsTestContainer.Identity)&quot; /xml:&quot;$(BuildTempDirectory)\%(ToolsTestContainer.Filename).xml&quot;" />
+
+ </Target>
+
+<!-- **********************************************************************************************
+Targets For GenerateSource
+*********************************************************************************************** -->
+
+ <Target Name="_GenerateProjects">
+ <Exec Command="&quot;$(CsProjectProjector)&quot; csproj_templates src\ProtocolBuffersLibrary.sln" WorkingDirectory="$(ProjectDirectory)" />
+ </Target>
+
+ <Target Name="_CleanTempSource">
+ <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="CleanFolderDirectory=$(SourceTempDirectory);" Targets="_CleanFolder" />
+ <MakeDir Directories="$(SourceTempDirectory)" />
+ </Target>
+
+ <Target Name="_GenerateSource" DependsOnTargets="_CleanTempSource">
+ <Message Importance="high" Text="Generating source from proto files" />
+ <Exec Command="&quot;$(ProtocExePath)&quot; --proto_path=$(ProtosDirectory) --descriptor_set_out=compiled.pb @(Protos->'%(RelativeDir)%(Filename)%(Extension)', ' ')" WorkingDirectory="$(SourceTempDirectory)" />
+ <Exec Command="&quot;$(ProtogenExePath)&quot; compiled.pb" WorkingDirectory="$(SourceTempDirectory)" />
+ </Target>
+
+ <Target Name="_CopyGeneratedSource" DependsOnTargets="_GenerateSource">
+ <Copy SourceFiles="%(GeneratedSource.Identity)" DestinationFiles="%(GeneratedSource.TargetDirectory)\%(GeneratedSource.Filename)%(GeneratedSource.Extension)" />
+ </Target>
+
+<!-- **********************************************************************************************
+Targets For Package
+*********************************************************************************************** -->
+
+ <Target Name="_PackageAll">
+ <MSBuild Projects="$(MSBuildProjectFullPath)" Properties="SolutionTarget=_Publish;" Targets="_BuildAllConfigurations" />
+ </Target>
+
+ <Target Name="_GeneratePackage">
+ <Copy SourceFiles="@(StaticPackageItem)" DestinationFolder="$(BuildOutputPackage)\%(StaticPackageItem.TargetDirectory)\%(StaticPackageItem.RecursiveDir)" />
+ <Exec Command="&quot;$(ZipExePath)&quot; a -tzip $(BuildTempDirectory)\$(PackageName)-binaries.zip * -x!*.pdb -r" WorkingDirectory="$(BuildOutputPackage)" />
+ <Exec Command="&quot;$(ZipExePath)&quot; a -tzip $(BuildTempDirectory)\$(PackageName)-symbols.zip * -r" WorkingDirectory="$(BuildOutputPackage)" />
+ </Target>
+
+<!-- **********************************************************************************************
+Targets For Benchmark
+*********************************************************************************************** -->
+
+ <Target Name="_RunBenchmarks">
+ <ItemGroup>
+ <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SizeMessage1,ProtoBench" />
+ <BenchmarkParameter Include="google_message1.dat" />
+ <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SpeedMessage1,ProtoBench" />
+ <BenchmarkParameter Include="google_message1.dat" />
+ <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SizeMessage2,ProtoBench" />
+ <BenchmarkParameter Include="google_message2.dat" />
+ <BenchmarkParameter Include="Google.ProtocolBuffers.ProtoBench.SpeedMessage2,ProtoBench" />
+ <BenchmarkParameter Include="google_message2.dat" />
+ </ItemGroup>
+
+ <Message Text="Running ProtoBench.exe" />
+ <Exec Command="ProtoBench.exe $(BenchmarkArgs) @(BenchmarkParameter->'%(Identity)', ' ') &quot;/log:$(BenchmarkOutputFile)&quot;"
+ WorkingDirectory="$(SourceDirectory)\ProtoBench\bin\NET35\Release" />
+
+ </Target>
+
+</Project> \ No newline at end of file
diff --git a/csharp/build/Google.ProtocolBuffers.nuspec b/csharp/build/Google.ProtocolBuffers.nuspec
new file mode 100644
index 00000000..c355cd4a
--- /dev/null
+++ b/csharp/build/Google.ProtocolBuffers.nuspec
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="nuspec.xsd">
+ <metadata>
+ <id>Google.ProtocolBuffers</id>
+ <version>$version$</version>
+ <owners>Jon Skeet</owners>
+ <authors>Jon Skeet</authors>
+ <licenseUrl>http://code.google.com/p/protobuf-csharp-port/source/browse/license.txt</licenseUrl>
+ <projectUrl>http://code.google.com/p/protobuf-csharp-port/</projectUrl>
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
+ <copyright>Copyright 2008 Google Inc. All rights reserved.</copyright>
+ <tags>Protocol Buffers Binary Serialization Format Google</tags>
+
+ <title>Google.ProtocolBuffers</title>
+ <summary>A managed code generator and library for Google's data interchange format.</summary>
+ <description><![CDATA[
+Protocol Buffers is a binary serialization format and technology, released to the open source community by Google in 2008.
+Its primary use is to produce small fast binary representations of a 'message' or object for serialization or transportation.
+There are various implementations of Protocol Buffers in .NET. This project is a fairly close port of the Google Java implementation.
+
+There are two main parts:
+
+tools/protoc.exe, which takes the textual representation of the protocol buffer and turns it into a binary representation for use with ProtoGen.exe.
+tools/ProtoGen.exe, which takes binary representations of protocol buffer descriptors (as generated by the "stock" protoc binary supplied by Google) and creates C# source code. This is only required at build time.
+
+lib/*/Google.ProtocolBuffers.dll, which is a supporting library. This is required at execution time.
+lib/*/Google.ProtocolBuffers.Serialization.dll, a supplementary library that provides extensions for reading and writing protocol buffers to xml, json, and others.
+
+LINKS:
+
+Project Home - http://code.google.com/p/protobuf-csharp-port
+Online Help - http://help.protobuffers.net
+Developer Guide - http://code.google.com/apis/protocolbuffers/docs/overview.html
+Language Guide - http://code.google.com/apis/protocolbuffers/docs/proto.html
+
+ ]]></description>
+
+ <references>
+ <reference file="Google.ProtocolBuffers.dll"/>
+ <reference file="Google.ProtocolBuffers.Serialization.dll"/>
+ </references>
+
+ </metadata>
+ <files>
+ <!-- Release Binaries -->
+ <file src="..\build_output\Release\**\Google.ProtocolBuffers.???" target="lib\" />
+ <file src="..\build_output\Release\**\Google.ProtocolBuffers.Serialization.???" target="lib\" />
+ <!-- Tools -->
+ <file src="..\build_output\tools\**\*" target="tools\" />
+ <file src="..\build_output\protos\**\*" target="tools\" />
+ <!-- Content -->
+ <file src="..\build_output\CHANGES.txt" target="tools\"/>
+ <file src="..\build_output\license.txt" target="tools\"/>
+ <file src="..\build_output\tools\protoc-license.txt" target="tools\"/>
+ <!-- Source -->
+ <file src="..\src\ProtocolBuffers\**\*.cs" target="src\ProtocolBuffers\"/>
+ <file src="..\src\ProtocolBuffers.Serialization\**\*.cs" target="src\ProtocolBuffers.Serialization\"/>
+ </files>
+</package>
diff --git a/csharp/build/Google.ProtocolBuffersLite.nuspec b/csharp/build/Google.ProtocolBuffersLite.nuspec
new file mode 100644
index 00000000..8b9107f5
--- /dev/null
+++ b/csharp/build/Google.ProtocolBuffersLite.nuspec
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="nuspec.xsd">
+ <metadata>
+ <id>Google.ProtocolBuffersLite</id>
+ <version>$version$</version>
+ <owners>Jon Skeet</owners>
+ <authors>Jon Skeet</authors>
+ <licenseUrl>http://code.google.com/p/protobuf-csharp-port/source/browse/license.txt</licenseUrl>
+ <projectUrl>http://code.google.com/p/protobuf-csharp-port/</projectUrl>
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
+ <copyright>Copyright 2008 Google Inc. All rights reserved.</copyright>
+ <tags>Protocol Buffers Binary Serialization Format Google</tags>
+
+ <title>Google.ProtocolBuffersLite</title>
+ <summary>A managed code generator and library for Google's data interchange format.</summary>
+ <description><![CDATA[
+Protocol Buffers is a binary serialization format and technology, released to the open source community by Google in 2008.
+Its primary use is to produce small fast binary representations of a 'message' or object for serialization or transportation.
+There are various implementations of Protocol Buffers in .NET. This project is a fairly close port of the Google Java implementation.
+
+There are two main parts:
+
+tools/protoc.exe, which takes the textual representation of the protocol buffer and turns it into a binary representation for use with ProtoGen.exe.
+tools/ProtoGen.exe, which takes binary representations of protocol buffer descriptors (as generated by the "stock" protoc binary supplied by Google) and creates C# source code. This is only required at build time.
+
+lib/*/Google.ProtocolBuffersLite.dll, which is a supporting library. This is required at execution time.
+lib/*/Google.ProtocolBuffersLite.Serialization.dll, a supplementary library that provides extensions for reading and writing protocol buffers to xml, json, and others.
+
+LINKS:
+
+Project Home - http://code.google.com/p/protobuf-csharp-port
+Online Help - http://help.protobuffers.net
+Developer Guide - http://code.google.com/apis/protocolbuffers/docs/overview.html
+Language Guide - http://code.google.com/apis/protocolbuffers/docs/proto.html
+
+ ]]></description>
+
+ <references>
+ <reference file="Google.ProtocolBuffersLite.dll"/>
+ <reference file="Google.ProtocolBuffersLite.Serialization.dll"/>
+ </references>
+
+ </metadata>
+
+ <files>
+ <!-- Release Binaries -->
+ <file src="..\build_output\Release\**\Google.ProtocolBuffersLite.???" target="lib\" />
+ <file src="..\build_output\Release\**\Google.ProtocolBuffersLite.Serialization.???" target="lib\" />
+ <!-- Tools -->
+ <file src="..\build_output\tools\**\*" target="tools\" />
+ <file src="..\build_output\protos\**\*" target="tools\" />
+ <!-- Content -->
+ <file src="..\build_output\CHANGES.txt" target="tools\"/>
+ <file src="..\build_output\license.txt" target="tools\"/>
+ <file src="..\build_output\tools\protoc-license.txt" target="tools\"/>
+ <!-- Source -->
+ <file src="..\src\ProtocolBuffers\**\*.cs" target="src\ProtocolBuffers\"/>
+ <file src="..\src\ProtocolBuffers.Serialization\**\*.cs" target="src\ProtocolBuffers.Serialization\"/>
+ </files>
+</package>
diff --git a/csharp/build/RunBenchmarks.bat b/csharp/build/RunBenchmarks.bat
new file mode 100644
index 00000000..d0e65010
--- /dev/null
+++ b/csharp/build/RunBenchmarks.bat
@@ -0,0 +1,2 @@
+@echo off
+CMD.exe /Q /C "CD %~dp0 && %WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /nologo build.csproj /toolsversion:4.0 /t:RunBenchmarks %1 %2 %3 %4
diff --git a/csharp/build/build.bat b/csharp/build/build.bat
new file mode 100644
index 00000000..bd7bd2a0
--- /dev/null
+++ b/csharp/build/build.bat
@@ -0,0 +1,20 @@
+@echo off
+SET BUILD_VERSION=%~1
+SET BUILD_TARGET=%~2
+SET BUILD_CONFIG=%~3
+
+IF NOT "%BUILD_VERSION%"=="" GOTO RUN
+ECHO.
+ECHO Usage: build.bat platform [target] [config] [msbuild arguments]
+ECHO.
+ECHO - platform: CF20, CF35, NET20, NET35, NET40, PL40, SL20, SL30, or SL40
+ECHO - [target]: Rebuild, Clean, Build, Test, or Publish
+ECHO - [config]: Debug or Release
+ECHO.
+EXIT /B 1
+
+:RUN
+IF "%BUILD_TARGET%"=="" SET BUILD_TARGET=Rebuild
+IF "%BUILD_CONFIG%"=="" SET BUILD_CONFIG=Debug
+
+CMD.exe /Q /C "CD %~dp0 && %WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /nologo target.csproj /toolsversion:4.0 %4 %5 %6 "/t:%BUILD_TARGET%" "/p:Configuration=%BUILD_CONFIG%;TargetVersion=%BUILD_VERSION%"
diff --git a/csharp/build/build.csproj b/csharp/build/build.csproj
new file mode 100644
index 00000000..e78b2efb
--- /dev/null
+++ b/csharp/build/build.csproj
@@ -0,0 +1,241 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <!-- build targets -->
+ <Target Name="Clean" DependsOnTargets="_CleanAll" />
+ <Target Name="BuildTools" DependsOnTargets="_BuildTools" />
+ <Target Name="GenerateProjects" DependsOnTargets="_GenerateProjects" />
+ <Target Name="GenerateSource" DependsOnTargets="_GenerateSource;_CopyGeneratedSource" />
+ <Target Name="RebuildSource" DependsOnTargets="Clean;BuildTools;GenerateSource" />
+ <Target Name="Build" DependsOnTargets="GenerateProjects;BuildTools;GenerateSource;_CompileAll" />
+ <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
+ <Target Name="GeneratePackage" DependsOnTargets="_PackageAll;_GeneratePackage" />
+ <Target Name="FullBuild" DependsOnTargets="Rebuild;GeneratePackage" />
+ <!-- misc targets -->
+ <Target Name="RunBenchmarks" DependsOnTargets="_CleanAll;_BuildTools;_RunBenchmarks" />
+
+ <PropertyGroup>
+ <ProjectName>Protocol Buffers</ProjectName>
+ <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">Any CPU</Platform>
+
+ <!--Directory Paths-->
+ <ProjectDirectory>$(MSBuildProjectDirectory)\..</ProjectDirectory>
+ <SourceDirectory>$(ProjectDirectory)\src</SourceDirectory>
+ <LibDirectory>$(ProjectDirectory)\lib</LibDirectory>
+ <ProtosDirectory>$(ProjectDirectory)\protos</ProtosDirectory>
+
+ <SourceTempDirectory>$(ProjectDirectory)\build_temp\GeneratedSource</SourceTempDirectory>
+ <BuildTempDirectory>$(ProjectDirectory)\build_temp</BuildTempDirectory>
+ <BuildOutputDirectory>$(ProjectDirectory)\build_output</BuildOutputDirectory>
+ <BuildOutputPackage>$(BuildOutputDirectory)</BuildOutputPackage>
+
+ <BenchmarkArgs>/v2 /fast /formats</BenchmarkArgs>
+ <BenchmarkOutputFile>$(BuildTempDirectory)\..\BenchmarkResults.txt</BenchmarkOutputFile>
+ <BenchmarkProtosDirectory>$(ProjectDirectory)\benchmarks</BenchmarkProtosDirectory>
+
+ <PackageName Condition=" '$(PackageName)' == '' ">$(Configuration)</PackageName>
+
+ <!--Tool Paths-->
+ <ProtocExePath>$(BuildOutputDirectory)\tools\protoc.exe</ProtocExePath>
+ <ProtogenExePath>$(BuildOutputDirectory)\tools\protogen.exe</ProtogenExePath>
+ <NUnitExePath>$(LibDirectory)\NUnit\tools\nunit-console.exe</NUnitExePath>
+ <CsProjectProjector>$(LibDirectory)\CsProjectProjector\CsProjectProjector.exe</CsProjectProjector>
+ <ZipExePath>$(LibDirectory)\7-Zip 9.20\7za.exe</ZipExePath>
+
+</PropertyGroup>
+
+ <Import Project="Common.targets"/>
+
+ <!-- Proto Files -->
+ <ItemGroup>
+ <Protos Include="$(ProtosDirectory)\extest\unittest_issues.proto" />
+ <Protos Include="$(ProtosDirectory)\extest\unittest_extras.proto" />
+ <Protos Include="$(ProtosDirectory)\extest\unittest_extras_full.proto" />
+ <Protos Include="$(ProtosDirectory)\extest\unittest_extras_lite.proto" />
+ <Protos Include="$(ProtosDirectory)\extest\unittest_extras_xmltest.proto" />
+ <Protos Include="$(ProtosDirectory)\extest\unittest_generic_services.proto" />
+ <Protos Include="$(ProtosDirectory)\extest\unittest_rpc_interop.proto" />
+ <Protos Include="$(ProtosDirectory)\extest\unittest_rpc_interop_lite.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\descriptor.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\csharp_options.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_csharp_options.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_custom_options.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_embed_optimize_for.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_empty.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_import.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_import_lite.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_lite.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_lite_imports_nonlite.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_mset.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_no_generic_services.proto" />
+ <Protos Include="$(ProtosDirectory)\google\protobuf\unittest_optimize_for.proto" />
+ <Protos Include="$(ProtosDirectory)\google\test\google_size.proto" />
+ <Protos Include="$(ProtosDirectory)\google\test\google_speed.proto" />
+ <Protos Include="$(ProtosDirectory)\tutorial\addressbook.proto" />
+ <!-- for benchmark -->
+ <Protos Include="$(ProtosDirectory)\benchmarks\google_size.proto" />
+ <Protos Include="$(ProtosDirectory)\benchmarks\google_speed.proto" />
+ </ItemGroup>
+ <!-- Generated Source -->
+ <ItemGroup>
+ <!-- Main protos -->
+ <GeneratedSource Include="$(SourceTempDirectory)\CSharpOptions.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers\DescriptorProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\DescriptorProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers\DescriptorProtos</TargetDirectory>
+ </GeneratedSource>
+
+ <!-- Address book sample -->
+ <GeneratedSource Include="$(SourceTempDirectory)\AddressBookProtos.cs">
+ <TargetDirectory>$(SourceDirectory)\AddressBook</TargetDirectory>
+ </GeneratedSource>
+ <!-- Unit test -->
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasIssuesProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestXmlSerializerTestProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestCSharpOptionsProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestCustomOptionsProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestEmbedOptimizeForProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestEmptyProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportLiteProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestMessageSetProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestNoGenericServicesProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestOptimizeForProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestRpcInterop.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestRpcInteropLite.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestGenericServices.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <!-- Lite unit test -->
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasFullProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestExtrasLiteProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportLiteProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestLiteImportNonLiteProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestLiteProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestGoogleSizeProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestGoogleSpeedProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtocolBuffers.Test\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\GoogleSizeProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\GoogleSpeedProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestImportProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ <GeneratedSource Include="$(SourceTempDirectory)\UnitTestProtoFile.cs">
+ <TargetDirectory>$(SourceDirectory)\ProtoBench\TestProtos</TargetDirectory>
+ </GeneratedSource>
+ </ItemGroup>
+ <!-- Package Items -->
+ <ItemGroup>
+ <StaticPackageItem Include="$(ProjectDirectory)\CHANGES.txt" />
+ <StaticPackageItem Include="$(ProjectDirectory)\license.txt" />
+ <StaticPackageItem Include="$(ProjectDirectory)\protos\google\protobuf\descriptor.proto">
+ <TargetDirectory>\protos\google\protobuf</TargetDirectory>
+ </StaticPackageItem>
+ <StaticPackageItem Include="$(ProjectDirectory)\protos\google\protobuf\compiler\plugin.proto">
+ <TargetDirectory>\protos\google\protobuf\compiler</TargetDirectory>
+ </StaticPackageItem>
+ <StaticPackageItem Include="$(ProjectDirectory)\protos\google\protobuf\csharp_options.proto">
+ <TargetDirectory>\protos\google\protobuf</TargetDirectory>
+ </StaticPackageItem>
+ <StaticPackageItem Include="$(ProjectDirectory)\protos\tutorial\addressbook.proto">
+ <TargetDirectory>\protos\tutorial</TargetDirectory>
+ </StaticPackageItem>
+ </ItemGroup>
+ <!-- Tools -->
+ <ItemGroup>
+ <ToolsTestContainer Include="$(SourceDirectory)\ProtoGen.Test\bin\NET35\Release\Google.ProtocolBuffers.ProtoGen.Test.dll" />
+
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtocolBuffers\bin\NET35\Release\Google.ProtocolBuffers.dll" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\NET35\Release\Google.ProtocolBuffers.Serialization.dll" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtoGen\bin\NET35\Release\ProtoGen.exe" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtoGen\bin\NET35\Release\ProtoGen.exe.config" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtoMunge\bin\NET35\Release\ProtoMunge.exe" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtoDump\bin\NET35\Release\ProtoDump.exe" />
+ <ToolsOutputItem Include="$(SourceDirectory)\ProtoBench\bin\NET35\Release\ProtoBench.exe" />
+ <ToolsOutputItem Include="$(LibDirectory)\protoc.exe" />
+ <ToolsOutputItem Include="$(LibDirectory)\protoc-license.txt" />
+ </ItemGroup>
+ <!-- Temporary Directories -->
+ <ItemGroup>
+ <TempBuildFolder Include="$(BuildTempDirectory)" />
+ <TempBuildFolder Include="$(BuildOutputDirectory)" />
+ <TempBuildFolder Include="$(SourceDirectory)\AddressBook\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\AddressBook\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoBench\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoBench\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Serialization\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Test\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffers.Test\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffersLite.Test\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoDump\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoDump\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoGen\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoGen\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoGen.Test\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoGen.Test\bin" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoMunge\obj" />
+ <TempBuildFolder Include="$(SourceDirectory)\ProtoMunge\bin" />
+ </ItemGroup>
+</Project>
diff --git a/csharp/build/googlecode_upload.py b/csharp/build/googlecode_upload.py
new file mode 100644
index 00000000..d2d5f974
--- /dev/null
+++ b/csharp/build/googlecode_upload.py
@@ -0,0 +1,248 @@
+#!/usr/bin/env python
+#
+# Copyright 2006, 2007 Google Inc. All Rights Reserved.
+# Author: danderson@google.com (David Anderson)
+#
+# Script for uploading files to a Google Code project.
+#
+# This is intended to be both a useful script for people who want to
+# streamline project uploads and a reference implementation for
+# uploading files to Google Code projects.
+#
+# To upload a file to Google Code, you need to provide a path to the
+# file on your local machine, a small summary of what the file is, a
+# project name, and a valid account that is a member or owner of that
+# project. You can optionally provide a list of labels that apply to
+# the file. The file will be uploaded under the same name that it has
+# in your local filesystem (that is, the "basename" or last path
+# component). Run the script with '--help' to get the exact syntax
+# and available options.
+#
+# Note that the upload script requests that you enter your
+# googlecode.com password. This is NOT your Gmail account password!
+# This is the password you use on googlecode.com for committing to
+# Subversion and uploading files. You can find your password by going
+# to http://code.google.com/hosting/settings when logged in with your
+# Gmail account. If you have already committed to your project's
+# Subversion repository, the script will automatically retrieve your
+# credentials from there (unless disabled, see the output of '--help'
+# for details).
+#
+# If you are looking at this script as a reference for implementing
+# your own Google Code file uploader, then you should take a look at
+# the upload() function, which is the meat of the uploader. You
+# basically need to build a multipart/form-data POST request with the
+# right fields and send it to https://PROJECT.googlecode.com/files .
+# Authenticate the request using HTTP Basic authentication, as is
+# shown below.
+#
+# Licensed under the terms of the Apache Software License 2.0:
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Questions, comments, feature requests and patches are most welcome.
+# Please direct all of these to the Google Code users group:
+# http://groups.google.com/group/google-code-hosting
+
+"""Google Code file uploader script.
+"""
+
+__author__ = 'danderson@google.com (David Anderson)'
+
+import httplib
+import os.path
+import optparse
+import getpass
+import base64
+import sys
+
+
+def upload(file, project_name, user_name, password, summary, labels=None):
+ """Upload a file to a Google Code project's file server.
+
+ Args:
+ file: The local path to the file.
+ project_name: The name of your project on Google Code.
+ user_name: Your Google account name.
+ password: The googlecode.com password for your account.
+ Note that this is NOT your global Google Account password!
+ summary: A small description for the file.
+ labels: an optional list of label strings with which to tag the file.
+
+ Returns: a tuple:
+ http_status: 201 if the upload succeeded, something else if an
+ error occured.
+ http_reason: The human-readable string associated with http_status
+ file_url: If the upload succeeded, the URL of the file on Google
+ Code, None otherwise.
+ """
+ # The login is the user part of user@gmail.com. If the login provided
+ # is in the full user@domain form, strip it down.
+ if user_name.endswith('@gmail.com'):
+ user_name = user_name[:user_name.index('@gmail.com')]
+
+ form_fields = [('summary', summary)]
+ if labels is not None:
+ form_fields.extend([('label', l.strip()) for l in labels])
+
+ content_type, body = encode_upload_request(form_fields, file)
+
+ upload_host = '%s.googlecode.com' % project_name
+ upload_uri = '/files'
+ auth_token = base64.b64encode('%s:%s'% (user_name, password))
+ headers = {
+ 'Authorization': 'Basic %s' % auth_token,
+ 'User-Agent': 'Googlecode.com uploader v0.9.4',
+ 'Content-Type': content_type,
+ }
+
+ server = httplib.HTTPSConnection(upload_host)
+ server.request('POST', upload_uri, body, headers)
+ resp = server.getresponse()
+ server.close()
+
+ if resp.status == 201:
+ location = resp.getheader('Location', None)
+ else:
+ location = None
+ return resp.status, resp.reason, location
+
+
+def encode_upload_request(fields, file_path):
+ """Encode the given fields and file into a multipart form body.
+
+ fields is a sequence of (name, value) pairs. file is the path of
+ the file to upload. The file will be uploaded to Google Code with
+ the same file name.
+
+ Returns: (content_type, body) ready for httplib.HTTP instance
+ """
+ BOUNDARY = '----------Googlecode_boundary_reindeer_flotilla'
+ CRLF = '\r\n'
+
+ body = []
+
+ # Add the metadata about the upload first
+ for key, value in fields:
+ body.extend(
+ ['--' + BOUNDARY,
+ 'Content-Disposition: form-data; name="%s"' % key,
+ '',
+ value,
+ ])
+
+ # Now add the file itself
+ file_name = os.path.basename(file_path)
+ f = open(file_path, 'rb')
+ file_content = f.read()
+ f.close()
+
+ body.extend(
+ ['--' + BOUNDARY,
+ 'Content-Disposition: form-data; name="filename"; filename="%s"'
+ % file_name,
+ # The upload server determines the mime-type, no need to set it.
+ 'Content-Type: application/octet-stream',
+ '',
+ file_content,
+ ])
+
+ # Finalize the form body
+ body.extend(['--' + BOUNDARY + '--', ''])
+
+ return 'multipart/form-data; boundary=%s' % BOUNDARY, CRLF.join(body)
+
+
+def upload_find_auth(file_path, project_name, summary, labels=None,
+ user_name=None, password=None, tries=3):
+ """Find credentials and upload a file to a Google Code project's file server.
+
+ file_path, project_name, summary, and labels are passed as-is to upload.
+
+ Args:
+ file_path: The local path to the file.
+ project_name: The name of your project on Google Code.
+ summary: A small description for the file.
+ labels: an optional list of label strings with which to tag the file.
+ config_dir: Path to Subversion configuration directory, 'none', or None.
+ user_name: Your Google account name.
+ tries: How many attempts to make.
+ """
+
+ while tries > 0:
+ if user_name is None:
+ # Read username if not specified or loaded from svn config, or on
+ # subsequent tries.
+ sys.stdout.write('Please enter your googlecode.com username: ')
+ sys.stdout.flush()
+ user_name = sys.stdin.readline().rstrip()
+ if password is None:
+ # Read password if not loaded from svn config, or on subsequent tries.
+ print 'Please enter your googlecode.com password.'
+ print '** Note that this is NOT your Gmail account password! **'
+ print 'It is the password you use to access Subversion repositories,'
+ print 'and can be found here: http://code.google.com/hosting/settings'
+ password = getpass.getpass()
+
+ status, reason, url = upload(file_path, project_name, user_name, password,
+ summary, labels)
+ # Returns 403 Forbidden instead of 401 Unauthorized for bad
+ # credentials as of 2007-07-17.
+ if status in [httplib.FORBIDDEN, httplib.UNAUTHORIZED]:
+ # Rest for another try.
+ user_name = password = None
+ tries = tries - 1
+ else:
+ # We're done.
+ break
+
+ return status, reason, url
+
+
+def main():
+ parser = optparse.OptionParser(usage='googlecode-upload.py -s SUMMARY '
+ '-p PROJECT [options] FILE')
+ parser.add_option('-s', '--summary', dest='summary',
+ help='Short description of the file')
+ parser.add_option('-p', '--project', dest='project',
+ help='Google Code project name')
+ parser.add_option('-u', '--user', dest='user',
+ help='Your Google Code username')
+ parser.add_option('-w', '--password', dest='password',
+ help='Your Google Code password')
+ parser.add_option('-l', '--labels', dest='labels',
+ help='An optional list of comma-separated labels to attach '
+ 'to the file')
+
+ options, args = parser.parse_args()
+
+ if not options.summary:
+ parser.error('File summary is missing.')
+ elif not options.project:
+ parser.error('Project name is missing.')
+ elif len(args) < 1:
+ parser.error('File to upload not provided.')
+ elif len(args) > 1:
+ parser.error('Only one file may be specified.')
+
+ file_path = args[0]
+
+ if options.labels:
+ labels = options.labels.split(',')
+ else:
+ labels = None
+
+ status, reason, url = upload_find_auth(file_path, options.project,
+ options.summary, labels,
+ options.user, options.password)
+ if url:
+ print 'The file was uploaded successfully.'
+ print 'URL: %s' % url
+ return 0
+ else:
+ print 'An error occurred. Your file was not uploaded.'
+ print 'Google Code upload server said: %s (%s)' % (reason, status)
+ return 1
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/csharp/build/nuspec.xsd b/csharp/build/nuspec.xsd
new file mode 100644
index 00000000..db744d1a
--- /dev/null
+++ b/csharp/build/nuspec.xsd
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- original location: https://hg01.codeplex.com/nuget/raw-file/tip/src/Core/Authoring/nuspec.xsd -->
+<xs:schema id="nuspec" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="package">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="metadata" maxOccurs="1" minOccurs="1">
+ <xs:complexType>
+ <xs:all>
+ <xs:element name="id" maxOccurs="1" minOccurs="1" type="xs:string" />
+ <xs:element name="version" maxOccurs="1" minOccurs="1" type="xs:string" />
+ <xs:element name="title" maxOccurs="1" minOccurs="0" type="xs:string" />
+ <xs:element name="authors" maxOccurs="1" minOccurs="1" type="xs:string" />
+ <xs:element name="owners" maxOccurs="1" minOccurs="0" type="xs:string" />
+ <xs:element name="licenseUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" />
+ <xs:element name="projectUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" />
+ <xs:element name="iconUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" />
+ <xs:element name="requireLicenseAcceptance" maxOccurs="1" minOccurs="0" type="xs:boolean" />
+ <xs:element name="description" maxOccurs="1" minOccurs="1" type="xs:string" />
+ <xs:element name="summary" maxOccurs="1" minOccurs="0" type="xs:string" />
+ <xs:element name="releaseNotes" maxOccurs="1" minOccurs="0" type="xs:string" />
+ <xs:element name="copyright" maxOccurs="1" minOccurs="0" type="xs:string" />
+ <xs:element name="language" maxOccurs="1" minOccurs="0" type="xs:string" default="en-US" />
+ <xs:element name="tags" maxOccurs="1" minOccurs="0" type="xs:string" />
+ <xs:element name="dependencies" maxOccurs="1" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="dependency" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:string" use="required" />
+ <xs:attribute name="version" type="xs:string" use="optional" />
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="frameworkAssemblies" maxOccurs="1" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="frameworkAssembly" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attribute name="assemblyName" type="xs:string" use="required" />
+ <xs:attribute name="targetFramework" type="xs:string" use="optional" />
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="references" maxOccurs="1" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="reference" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attribute name="file" type="xs:string" use="required" />
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="files" minOccurs="0" maxOccurs="1" nillable="true">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="file" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attribute name="src" use="required" type="xs:string" />
+ <xs:attribute name="target" use="optional" type="xs:string" />
+ <xs:attribute name="exclude" use="optional" type="xs:string" />
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/csharp/build/publish.csproj b/csharp/build/publish.csproj
new file mode 100644
index 00000000..bbe71df5
--- /dev/null
+++ b/csharp/build/publish.csproj
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Publish" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+ <!-- build targets -->
+ <Target Name="Clean" DependsOnTargets="_Clean" />
+ <Target Name="Build" DependsOnTargets="_Clean;_Prerequisites;_StampVersion;_GenerateSource;_Build" />
+ <Target Name="Label" DependsOnTargets="_HgLabel" />
+ <Target Name="Package" DependsOnTargets="_HgPack;_NugetPack" />
+ <Target Name="Prepare" DependsOnTargets="Clean;Build;Label;Package" />
+ <Target Name="PushAll" DependsOnTargets="_HgPush;_NugetPush" />
+ <Target Name="Publish" DependsOnTargets="Prepare;PushAll" />
+
+ <PropertyGroup>
+ <ProjectName>Protocol Buffers</ProjectName>
+ <VersionMajor>2</VersionMajor>
+ <VersionMinor>4</VersionMinor>
+ <VersionBuild>1</VersionBuild>
+ <VersionRevision></VersionRevision>
+ <VersionLabel></VersionLabel>
+
+ <PackagePrefix>protobuf-csharp-port-</PackagePrefix>
+ <PublishDebug>false</PublishDebug>
+
+ <GoogleUsername></GoogleUsername>
+ <GooglePassword></GooglePassword>
+
+ <!--Directory Paths-->
+ <ProjectDirectory>$(MSBuildProjectDirectory)\..</ProjectDirectory>
+ <BuildTempDirectory>$(ProjectDirectory)\build_temp</BuildTempDirectory>
+ <BuildOutputDirectory>$(ProjectDirectory)\build_output</BuildOutputDirectory>
+ <SourceDirectory>$(ProjectDirectory)\src</SourceDirectory>
+ <LibDirectory>$(ProjectDirectory)\lib</LibDirectory>
+
+ <!-- File Paths -->
+ <SigningKey>$(ProjectDirectory)\release-key\Google.ProtocolBuffers.snk</SigningKey>
+
+ <!--Tool Paths-->
+ <HgTool>hg.exe</HgTool>
+ <Python>C:\Python25\python.exe</Python>
+ <SnTool>$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)Bin\sn.exe</SnTool>
+ <StampVer>$(LibDirectory)\StampVersion.exe</StampVer>
+ <ZipExePath>$(LibDirectory)\7-Zip 9.20\7za.exe</ZipExePath>
+ <NuGet>$(LibDirectory)\NuGet.exe</NuGet>
+ <ProtogenExePath>$(BuildOutputDirectory)\tools\protogen.exe</ProtogenExePath>
+ </PropertyGroup>
+
+ <!-- Import user settings -->
+ <Import Project="$(MSBuildProjectFullPath).user" Condition="Exists('$(MSBuildProjectFullPath).user')" />
+
+ <!-- Files -->
+ <ItemGroup>
+ </ItemGroup>
+
+ <!-- Tasks -->
+
+ <Target Name="_Prerequisites" DependsOnTargets="_CheckEnvironment;_ReadVersion" />
+
+ <Target Name="_Clean">
+ <MSBuild Properties="Configuration=Debug;" Targets="Clean" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MSBuild Properties="Configuration=Release;" Targets="Clean" Projects="$(MSBuildProjectDirectory)\target.csproj" />
+ <MakeDir Directories="$(BuildTempDirectory)" />
+ <MakeDir Directories="$(BuildOutputDirectory)" />
+ </Target>
+
+ <Target Name="_WriteUserConfig">
+ <ItemGroup>
+ <Lines Include="&lt;Project xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>" />
+ <Lines Include=" &lt;PropertyGroup>"/>
+ <Lines Include=" &lt;GoogleUsername> (Enter your google-code user/password here) &lt;/GoogleUsername>"/>
+ <Lines Include=" &lt;GooglePassword>&lt;/GooglePassword>"/>
+ <Lines Include=" &lt;/PropertyGroup>" />
+ <Lines Include="&lt;/Project>" />
+ </ItemGroup>
+ <WriteLinesToFile File="$(MSBuildProjectFullPath).user" Lines="@(Lines)" Overwrite="true" Condition="!Exists('$(MSBuildProjectFullPath).user')" />
+ <Exec Command="Notepad.exe $(MSBuildProjectFullPath).user" />
+ </Target>
+
+ <Target Name="_CheckEnvironment">
+ <!-- Require google credentials -->
+ <CallTarget Targets="_WriteUserConfig" Condition=" '$(GooglePassword)' == '' " />
+ <Error Text="Restart after you verify your credentials in $(MSBuildProjectFullPath).user" Condition=" '$(GooglePassword)' == '' " />
+ <!-- Require Win7.0A SDK to verify strong-name -->
+ <Error Text="Unable to locate Win7SDK Tools: $(SnTool)" Condition="!Exists($(SnTool))" />
+ <!-- Require Python 2.5 installed -->
+ <!-- Error Text="Unable to locate Python 2.5: $(Python)" Condition="!Exists($(Python))" / -->
+ <!-- Require production signing key -->
+ <Exec Command="$(HgTool) clone https://bitbucket.org/rknapp/protobuf-csharp-port-keyfile $(ProjectDirectory)\release-key" Condition="!Exists('$(SigningKey)')" />
+ <Error Text="Unable to locate release signing key: $(SigningKey)" Condition="!Exists($(SigningKey))" />
+ </Target>
+
+ <Target Name="_ReadVersion" Condition=" '$(VersionLabel)' == '' ">
+ <Exec Command="$(HgTool) log -l 1 --template &quot;{rev}&quot; > &quot;$(BuildTempDirectory)\revision.txt&quot;"></Exec>
+ <ReadLinesFromFile File="$(BuildTempDirectory)\revision.txt">
+ <Output TaskParameter="Lines" PropertyName="VersionRevision"/>
+ </ReadLinesFromFile>
+
+ <PropertyGroup>
+ <VersionLabel>$(VersionMajor).$(VersionMinor).$(VersionBuild).$(VersionRevision)</VersionLabel>
+ </PropertyGroup>
+
+ <Message Text="Building version $(VersionLabel)" Importance="high" />
+ </Target>
+
+ <Target Name="_StampVersion" DependsOnTargets="_Prerequisites">
+ <Exec Command="$(StampVer) /major:$(VersionMajor) /minor:$(VersionMinor) /build:$(VersionBuild) /revision:$(VersionRevision)" WorkingDirectory="$(SourceDirectory)" />
+ <Exec Command="FIND &quot;$(VersionLabel)&quot; ProtocolBuffers\Properties\AssemblyInfo.cs" WorkingDirectory="$(SourceDirectory)" />
+ </Target>
+
+ <Target Name="_GenerateSource" DependsOnTargets="_Prerequisites">
+ <MSBuild Properties="Configuration=Release;AssemblyOriginatorKeyFile=$(SigningKey)" Targets="GenerateProjects;BuildTools;GenerateSource" Projects="$(MSBuildProjectDirectory)\build.csproj" />
+ <Exec Command="&quot;$(SnTool)&quot; -T &quot;$(ProtogenExePath)&quot; > signkey.txt" WorkingDirectory="$(BuildTempDirectory)" />
+ <!-- Make sure we are signing with the correct key -->
+ <Exec Command="FIND &quot;55f7125234beb589&quot; signkey.txt" WorkingDirectory="$(BuildTempDirectory)" />
+ </Target>
+
+ <Target Name="_Build" DependsOnTargets="_Prerequisites">
+ <!-- Release Build -->
+ <MSBuild Properties="Configuration=Release;AssemblyOriginatorKeyFile=$(SigningKey)" Targets="_CompileAll" Projects="$(MSBuildProjectDirectory)\build.csproj" />
+ <MSBuild Properties="Configuration=Release;AssemblyOriginatorKeyFile=$(SigningKey);PackageName=$(PackagePrefix)$(VersionLabel)-release" Targets="GeneratePackage" Projects="$(MSBuildProjectDirectory)\build.csproj" />
+ <!-- Debug Build -->
+ <MSBuild Condition=" '$(PublishDebug)' == 'true' " Properties="Configuration=Debug;AssemblyOriginatorKeyFile=$(SigningKey)" Targets="_CompileAll" Projects="$(MSBuildProjectDirectory)\build.csproj" />
+ <MSBuild Condition=" '$(PublishDebug)' == 'true' " Properties="Configuration=Debug;AssemblyOriginatorKeyFile=$(SigningKey);PackageName=$(PackagePrefix)$(VersionLabel)-full" Targets="GeneratePackage" Projects="$(MSBuildProjectDirectory)\build.csproj" />
+ </Target>
+
+ <Target Name="_HgPack" DependsOnTargets="_Prerequisites">
+ <Exec Command="$(HgTool) archive $(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-source.zip" WorkingDirectory="$(ProjectDirectory)" />
+ </Target>
+
+ <Target Name="_HgLabel" DependsOnTargets="_Prerequisites">
+ <Exec Command="$(HgTool) commit -m &quot;version $(VersionLabel)&quot;" WorkingDirectory="$(ProjectDirectory)" />
+ <Exec Command="$(HgTool) tag $(VersionLabel)" WorkingDirectory="$(ProjectDirectory)" />
+ </Target>
+
+ <Target Name="_HgPush" DependsOnTargets="_Prerequisites">
+ <Exec Command="$(HgTool) push" WorkingDirectory="$(ProjectDirectory)" />
+ </Target>
+
+ <Target Name="_PkgPush" DependsOnTargets="_Prerequisites">
+ <PropertyGroup>
+ <UploadPackage>$(Python) "$(MSBuildProjectDirectory)\googlecode_upload.py" --project protobuf-csharp-port --user "$(GoogleUsername)" --password "$(GooglePassword)"</UploadPackage>
+
+ <SourcePackage>$(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-source.zip</SourcePackage>
+ <ReleasePackageBin>$(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-release-binaries.zip</ReleasePackageBin>
+ <ReleasePackageSyb>$(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-release-symbols.zip</ReleasePackageSyb>
+ <DebugPackageBin>$(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-full-binaries.zip</DebugPackageBin>
+ <DebugPackageSyb>$(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-full-symbols.zip</DebugPackageSyb>
+ </PropertyGroup>
+
+ <Error Condition="!Exists('$(SourcePackage)')" Text="File not found: $(SourcePackage)" />
+ <Error Condition="!Exists('$(ReleasePackageBin)')" Text="File not found: $(ReleasePackageBin)" />
+ <Error Condition="!Exists('$(ReleasePackageSyb)')" Text="File not found: $(ReleasePackageSyb)" />
+ <Error Condition="'$(PublishDebug)' == 'true' And !Exists('$(DebugPackageBin)')" Text="File not found: $(DebugPackageBin)" />
+ <Error Condition="'$(PublishDebug)' == 'true' And !Exists('$(DebugPackageSyb)')" Text="File not found: $(DebugPackageSyb)" />
+
+ <Exec WorkingDirectory="$(ProjectDirectory)"
+ Command="$(UploadPackage) --labels Type-Source,Featured --summary &quot;Version $(VersionLabel) source&quot; $(SourcePackage)" />
+
+ <Exec WorkingDirectory="$(ProjectDirectory)"
+ Command="$(UploadPackage) --labels Type-Executable,Featured --summary &quot;Version $(VersionLabel) release binaries only&quot; $(ReleasePackageBin)" />
+ <Exec WorkingDirectory="$(ProjectDirectory)"
+ Command="$(UploadPackage) --labels Type-Executable,Featured --summary &quot;Version $(VersionLabel) release binaries and symbols&quot; $(ReleasePackageSyb)" />
+
+ <Exec WorkingDirectory="$(ProjectDirectory)" Condition=" '$(PublishDebug)' == 'true' "
+ Command="$(UploadPackage) --labels Type-Executable,Featured --summary &quot;Version $(VersionLabel) all binaries&quot; $(DebugPackageBin)" />
+ <Exec WorkingDirectory="$(ProjectDirectory)" Condition=" '$(PublishDebug)' == 'true' "
+ Command="$(UploadPackage) --labels Type-Executable,Featured --summary &quot;Version $(VersionLabel) all binaries and symbols&quot; $(DebugPackageSyb)" />
+ </Target>
+
+ <Target Name="_NugetPack" DependsOnTargets="_Prerequisites">
+ <Exec WorkingDirectory="$(MSBuildProjectDirectory)"
+ Command="$(NuGet) update -self" />
+ <Exec WorkingDirectory="$(MSBuildProjectDirectory)"
+ Command="$(NuGet) pack Google.ProtocolBuffers.nuspec -Symbols -Version $(VersionLabel) -NoPackageAnalysis -OutputDirectory $(BuildTempDirectory)" />
+ <Exec WorkingDirectory="$(MSBuildProjectDirectory)"
+ Command="$(NuGet) pack Google.ProtocolBuffersLite.nuspec -Symbols -Version $(VersionLabel) -NoPackageAnalysis -OutputDirectory $(BuildTempDirectory)" />
+ </Target>
+
+ <Target Name="_NugetPush" DependsOnTargets="_Prerequisites">
+ <Exec WorkingDirectory="$(BuildTempDirectory)" Command="$(NuGet) push Google.ProtocolBuffers.$(VersionLabel).nupkg" ContinueOnError="true" />
+ <Exec WorkingDirectory="$(BuildTempDirectory)" Command="$(NuGet) push Google.ProtocolBuffersLite.$(VersionLabel).nupkg" ContinueOnError="true" />
+
+ <Exec WorkingDirectory="$(BuildTempDirectory)" Command="$(NuGet) push Google.ProtocolBuffers.$(VersionLabel).symbols.nupkg" ContinueOnError="true" />
+ <Exec WorkingDirectory="$(BuildTempDirectory)" Command="$(NuGet) push Google.ProtocolBuffersLite.$(VersionLabel).symbols.nupkg" ContinueOnError="true" />
+ </Target>
+
+</Project>
diff --git a/csharp/build/target.csproj b/csharp/build/target.csproj
new file mode 100644
index 00000000..09a9d50b
--- /dev/null
+++ b/csharp/build/target.csproj
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+<!-- **********************************************************************************************
+High-level Targets
+*********************************************************************************************** -->
+
+ <Target Name="Clean" DependsOnTargets="_Clean" />
+ <Target Name="Build" DependsOnTargets="_Compile;_Test" />
+ <Target Name="Test" DependsOnTargets="_Test" />
+ <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
+ <Target Name="Publish" DependsOnTargets="Clean;Build;_Publish" />
+
+ <!-- **********************************************************************************************
+Properties
+*********************************************************************************************** -->
+
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">Any CPU</Platform>
+ <TargetVersion Condition=" '$(TargetVersion)' == '' ">NET20</TargetVersion>
+ <BuildParams></BuildParams>
+
+ <!--Directory Paths-->
+ <ProjectDirectory>$(MSBuildProjectDirectory)\..</ProjectDirectory>
+ <SourceDirectory>$(ProjectDirectory)\src</SourceDirectory>
+ <LibDirectory>$(ProjectDirectory)\lib</LibDirectory>
+
+ <!--File Paths-->
+ <BuildTempDirectory>$(ProjectDirectory)\build_temp\$(Configuration)\$(TargetVersion)</BuildTempDirectory>
+ <BuildOutputDirectory>$(ProjectDirectory)\build_output\$(Configuration)\$(TargetVersion)</BuildOutputDirectory>
+ <SolutionFile>$(SourceDirectory)\ProtocolBuffersLibrary.$(TargetVersion).sln</SolutionFile>
+
+ <!--Tool Paths-->
+ <NUnitExePath>$(LibDirectory)\NUnit\tools\nunit-console.exe</NUnitExePath>
+ <StatLightExePath>$(LibDirectory)\StatLight\tools\StatLight.exe</StatLightExePath>
+ </PropertyGroup>
+
+<!-- **********************************************************************************************
+Target Versions
+*********************************************************************************************** -->
+
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'NET20' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>NUNIT</TestFramework>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'NET35' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>NUNIT</TestFramework>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'NET40' ">
+ <BuildTools>4.0</BuildTools>
+ <TestFramework>NUNIT</TestFramework>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'CF20' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>NONE</TestFramework>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'CF35' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>NONE</TestFramework>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'SL20' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>SILVERLIGHT</TestFramework>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'SL30' ">
+ <BuildTools>3.5</BuildTools>
+ <TestFramework>SILVERLIGHT</TestFramework>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'SL40' ">
+ <BuildTools>4.0</BuildTools>
+ <TestFramework>SILVERLIGHT</TestFramework>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(TargetVersion)' == 'PL40' ">
+ <BuildTools>4.0</BuildTools>
+ <TestFramework>SILVERLIGHT</TestFramework>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <BuildOutputDirectory>$(ProjectDirectory)\build_output\$(Configuration)\portable-net40+sl4+sl5+wp7+wp8+win8</BuildOutputDirectory>
+ </PropertyGroup>
+
+<!-- **********************************************************************************************
+File Groups
+*********************************************************************************************** -->
+
+ <ItemGroup>
+ <WorkingDirectories Include="$(BuildTempDirectory)" />
+ <WorkingDirectories Include="$(BuildOutputDirectory)" />
+
+ <TestContainer Include="$(SourceDirectory)\ProtocolBuffers.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Test.dll" />
+ <TestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Test.dll" />
+ <TestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersMixedLite.Test.dll" />
+
+ <StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffers.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Test.xap" />
+ <StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Test.xap" />
+ <StatLightTestContainer Include="$(SourceDirectory)\ProtocolBuffersLite.Test\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersMixedLite.Test.xap" />
+
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.dll" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.pdb" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.xml" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.dll" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.pdb" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.xml" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Serialization.dll" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Serialization.pdb" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffers.Serialization.xml" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Serialization.dll" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Serialization.pdb" />
+ <PublishItem Include="$(SourceDirectory)\ProtocolBuffers.Serialization\bin\$(TargetVersion)\$(Configuration)\Google.ProtocolBuffersLite.Serialization.xml" />
+ </ItemGroup>
+
+<!-- **********************************************************************************************
+Targets For Build
+*********************************************************************************************** -->
+
+ <Target Name="_Configured">
+ <Message Text="Building $(TargetVersion) for configuration $(Configuration), platform $(Platform)" Importance="normal" />
+ <Error Text="Unknown or missing value for TargetVersion=[value]" Condition=" '$(BuildTools)' == '' " />
+ </Target>
+
+ <Target Name="_Clean" DependsOnTargets="_Configured">
+ <RemoveDir Directories="@(WorkingDirectories)" Condition="Exists(%(WorkingDirectories.Identity))" />
+ <MSBuild Targets="Clean" Projects="$(SolutionFile)" ToolsVersion="$(BuildTools)"
+ Properties="Configuration=$(Configuration);Platform=$(Platform);"
+ />
+ </Target>
+
+ <Target Name="_Compile" DependsOnTargets="_Configured">
+ <MSBuild Targets="Build" Projects="$(SolutionFile)" ToolsVersion="$(BuildTools)"
+ Properties="Configuration=$(Configuration);Platform=$(Platform);$(BuildParams)"
+ />
+ </Target>
+
+ <Target Name="_Publish" DependsOnTargets="_Configured">
+ <MakeDir Directories="$(BuildOutputDirectory)" />
+ <Copy SourceFiles="@(PublishItem)" DestinationFolder="$(BuildOutputDirectory)" />
+ </Target>
+
+<!-- **********************************************************************************************
+Targets For Test
+*********************************************************************************************** -->
+
+ <Target Name="_Test" DependsOnTargets="_Configured">
+ <MakeDir Directories="$(BuildTempDirectory)" />
+ <CallTarget Targets="_RunNunit" Condition=" '$(TestFramework)'=='NUNIT' " />
+ <CallTarget Targets="_RunStatLight" Condition=" '$(TestFramework)'=='SILVERLIGHT' " />
+ </Target>
+
+ <Target Name="_RunNunit">
+ <Copy SourceFiles="$(LibDirectory)\NUnit-config\nunit-console.$(TargetFrameworkVersion).config" DestinationFiles="$(NUnitExePath).config" />
+ <Exec Command="&quot;$(NUnitExePath)&quot; /nologo /noshadow &quot;%(TestContainer.Identity)&quot; /xml:&quot;$(BuildTempDirectory)\%(TestContainer.Filename).xml&quot;" />
+ </Target>
+
+ <Target Name="_RunStatLight">
+ <Exec
+ Command="&quot;$(StatLightExePath)&quot; -x %(StatLightTestContainer.Identity) --ReportOutputFileType=NUnit --ReportOutputFile=$(BuildTempDirectory)\%(StatLightTestContainer.Filename).xml" />
+ </Target>
+
+</Project>
diff --git a/csharp/buildall.sh b/csharp/buildall.sh
new file mode 100755
index 00000000..164707cb
--- /dev/null
+++ b/csharp/buildall.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+# Use mono to build solution and run all tests.
+
+# Adjust these to reflect the location of nunit-console in your system.
+NUNIT_CONSOLE=nunit-console
+
+# The rest you can leave intact
+CONFIG=Release
+KEYFILE=../keys/Google.ProtocolBuffers.snk # TODO(jtattermusch): signing!
+SRC=$(dirname $0)/src
+
+set -ex
+
+echo Building the solution.
+xbuild /p:Configuration=$CONFIG $SRC/ProtocolBuffers.sln
+
+echo Running tests.
+$NUNIT_CONSOLE $SRC/ProtocolBuffers.Test/bin/$CONFIG/Google.ProtocolBuffers.Test.dll
+
+$NUNIT_CONSOLE $SRC/ProtocolBuffersLite.Test/bin/$CONFIG/Google.ProtocolBuffersLite.Test.dll
+
+$NUNIT_CONSOLE $SRC/ProtocolBuffersLite.Test/bin/$CONFIG/Google.ProtocolBuffersMixedLite.Test.dll
diff --git a/csharp/generate_protos.sh b/csharp/generate_protos.sh
new file mode 100755
index 00000000..9e89bf26
--- /dev/null
+++ b/csharp/generate_protos.sh
@@ -0,0 +1,93 @@
+#!/bin/bash
+# Generates C# source files from .proto files.
+# You first need to make sure protoc has been built (see instructions on
+# building protoc in root of this repository)
+
+# This script performs a few fix-ups as part of generation. These are:
+# - descriptor.proto is renamed to descriptor_proto_file.proto before
+# generation, to avoid the naming collision between the class for the file
+# descriptor and its Descriptor property
+# - This change also impacts UnittestCustomOptions, which expects to
+# use a class of Descriptor when it's actually been renamed to
+# DescriptorProtoFile.
+# - Issue 307 (codegen for double-nested types) breaks Unittest.proto and
+# its lite equivalents.
+
+set -ex
+
+# cd to repository root
+cd $(dirname $0)/..
+
+# Protocol buffer compiler to use. If the PROTOC variable is set,
+# use that. Otherwise, probe for expected locations under both
+# Windows and Unix.
+if [ -z "$PROTOC" ]; then
+ # TODO(jonskeet): Use an array and a for loop instead?
+ if [ -x vsprojects/Debug/protoc.exe ]; then
+ PROTOC=vsprojects/Debug/protoc.exe
+ elif [ -x vsprojects/Release/protoc.exe ]; then
+ PROTOC=vsprojects/Release/protoc.exe
+ elif [ -x src/protoc ]; then
+ PROTOC=src/protoc
+ else
+ echo "Unable to find protocol buffer compiler."
+ exit 1
+ fi
+fi
+
+# Descriptor proto
+# TODO(jonskeet): Remove fixup
+cp src/google/protobuf/descriptor.proto src/google/protobuf/descriptor_proto_file.proto
+$PROTOC -Isrc --csharp_out=csharp/src/ProtocolBuffers/DescriptorProtos \
+ src/google/protobuf/descriptor_proto_file.proto
+rm src/google/protobuf/descriptor_proto_file.proto
+
+
+# ProtocolBuffers.Test protos
+$PROTOC -Isrc --csharp_out=csharp/src/ProtocolBuffers.Test/TestProtos \
+ src/google/protobuf/unittest.proto \
+ src/google/protobuf/unittest_custom_options.proto \
+ src/google/protobuf/unittest_drop_unknown_fields.proto \
+ src/google/protobuf/unittest_enormous_descriptor.proto \
+ src/google/protobuf/unittest_import.proto \
+ src/google/protobuf/unittest_import_public.proto \
+ src/google/protobuf/unittest_mset.proto \
+ src/google/protobuf/unittest_optimize_for.proto \
+ src/google/protobuf/unittest_no_field_presence.proto \
+ src/google/protobuf/unknown_enum_test.proto
+
+$PROTOC -Icsharp/protos/extest --csharp_out=csharp/src/ProtocolBuffers.Test/TestProtos \
+ csharp/protos/extest/unittest_extras_xmltest.proto \
+ csharp/protos/extest/unittest_issues.proto
+
+$PROTOC -Ibenchmarks --csharp_out=csharp/src/ProtocolBuffers.Test/TestProtos \
+ benchmarks/google_size.proto \
+ benchmarks/google_speed.proto
+
+# ProtocolBuffersLite.Test protos
+$PROTOC -Isrc --csharp_out=csharp/src/ProtocolBuffersLite.Test/TestProtos \
+ src/google/protobuf/unittest.proto \
+ src/google/protobuf/unittest_import.proto \
+ src/google/protobuf/unittest_import_lite.proto \
+ src/google/protobuf/unittest_import_public.proto \
+ src/google/protobuf/unittest_import_public_lite.proto \
+ src/google/protobuf/unittest_lite.proto \
+ src/google/protobuf/unittest_lite_imports_nonlite.proto
+
+$PROTOC -Icsharp/protos/extest --csharp_out=csharp/src/ProtocolBuffersLite.Test/TestProtos \
+ csharp/protos/extest/unittest_extras_full.proto \
+ csharp/protos/extest/unittest_extras_lite.proto
+
+# TODO(jonskeet): Remove fixup; see issue #307
+sed -i -e 's/RepeatedFieldsGenerator\.Group/RepeatedFieldsGenerator.Types.Group/g' \
+ csharp/src/ProtocolBuffers.Test/TestProtos/Unittest.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/Unittest.cs \
+ csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLite.cs
+
+# TODO(jonskeet): Remove fixup
+sed -i -e 's/DescriptorProtos\.Descriptor\./DescriptorProtos.DescriptorProtoFile./g' \
+ csharp/src/ProtocolBuffers.Test/TestProtos/UnittestCustomOptions.cs
+
+# AddressBook sample protos
+$PROTOC -Iexamples --csharp_out=csharp/src/AddressBook \
+ examples/addressbook.proto
diff --git a/csharp/keys/Google.ProtocolBuffers.snk b/csharp/keys/Google.ProtocolBuffers.snk
new file mode 100644
index 00000000..6bbfc90f
--- /dev/null
+++ b/csharp/keys/Google.ProtocolBuffers.snk
Binary files differ
diff --git a/csharp/keys/generate_new_key.bat b/csharp/keys/generate_new_key.bat
new file mode 100644
index 00000000..9f99c077
--- /dev/null
+++ b/csharp/keys/generate_new_key.bat
@@ -0,0 +1,13 @@
+@ECHO OFF
+IF EXIST "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\sn.exe" GOTO FOUND
+goto USEPATH
+
+:FOUND
+"C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\sn.exe" -k %~dp0\Google.ProtocolBuffers.snk
+GOTO EXIT
+
+:USEPATH
+sn.exe -k %~dp0\Google.ProtocolBuffers.snk
+GOTO EXIT
+
+:EXIT \ No newline at end of file
diff --git a/csharp/protos/extest/unittest_extras_full.proto b/csharp/protos/extest/unittest_extras_full.proto
new file mode 100644
index 00000000..1b546053
--- /dev/null
+++ b/csharp/protos/extest/unittest_extras_full.proto
@@ -0,0 +1,71 @@
+syntax = "proto2";
+
+package protobuf_unittest_extra;
+
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
+option optimize_for = CODE_SIZE;
+option java_package = "com.google.protobuf";
+
+message TestInteropPerson {
+ required string name = 1;
+ required int32 id = 2;
+ optional string email = 3;
+ repeated int32 codes = 10 [packed=true];
+
+ enum PhoneType {
+ MOBILE = 0;
+ HOME = 1;
+ WORK = 2;
+ }
+
+ message PhoneNumber {
+ required string number = 1;
+ optional PhoneType type = 2 [default = HOME];
+ }
+
+ repeated PhoneNumber phone = 4;
+
+ repeated group Addresses = 5 {
+ required string address = 1;
+ optional string address2 = 2;
+ required string city = 3;
+ required string state = 4;
+ required fixed32 zip = 5;
+ }
+
+ extensions 100 to 199;
+}
+
+message TestInteropEmployeeId {
+ required string number = 1;
+}
+
+extend TestInteropPerson {
+ // Note: changed from required to optional, as required fields are not
+ // permitted in extensions. (The fact that this was allowed in protogen
+ // before was almost certainly a bug.)
+ optional TestInteropEmployeeId employee_id = 126;
+}
+
+message TestMissingFieldsA {
+ required string name = 1;
+ required int32 id = 2;
+ optional string email = 3;
+
+ message SubA {
+ required int32 count = 5;
+ repeated string values = 6;
+ }
+ optional SubA testA = 11;
+}
+
+message TestMissingFieldsB {
+ required string name = 1;
+ required int32 id = 2;
+ optional string website = 4;
+
+ message SubB {
+ repeated string values = 7;
+ }
+ optional SubB testB = 12;
+}
diff --git a/csharp/protos/extest/unittest_extras_lite.proto b/csharp/protos/extest/unittest_extras_lite.proto
new file mode 100644
index 00000000..0c242d2f
--- /dev/null
+++ b/csharp/protos/extest/unittest_extras_lite.proto
@@ -0,0 +1,115 @@
+syntax = "proto2";
+
+package protobuf_unittest_extra;
+
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
+option optimize_for = LITE_RUNTIME;
+option java_package = "com.google.protobuf";
+
+message TestRequiredLite {
+ required int32 d = 1;
+ required ExtraEnum en = 2 [default = DEFAULT];
+}
+
+enum ExtraEnum {
+ DEFAULT = 10;
+ EXLITE_FOO = 7;
+ EXLITE_BAR = 8;
+ EXLITE_BAZ = 9;
+}
+
+message TestInteropPersonLite {
+ required string name = 1;
+ required int32 id = 2;
+ optional string email = 3;
+ repeated int32 codes = 10 [packed=true];
+
+ enum PhoneType {
+ MOBILE = 0;
+ HOME = 1;
+ WORK = 2;
+ }
+
+ message PhoneNumber {
+ required string number = 1;
+ optional PhoneType type = 2 [default = HOME];
+ }
+
+ repeated PhoneNumber phone = 4;
+
+ repeated group Addresses = 5 {
+ required string address = 1;
+ optional string address2 = 2;
+ required string city = 3;
+ required string state = 4;
+ required fixed32 zip = 5;
+ }
+
+ extensions 100 to 199;
+}
+
+message TestInteropEmployeeIdLite {
+ required string number = 1;
+}
+
+extend TestInteropPersonLite {
+ // Note: changed from required to optional, as required fields are not
+ // permitted in extensions. (The fact that this was allowed in protogen
+ // before was almost certainly a bug.)
+ optional TestInteropEmployeeIdLite employee_id_lite = 126;
+}
+
+/* Removed from unittest_lite.proto and added back here */
+
+message TestUnpackedExtensionsLite {
+ extensions 1 to max;
+}
+
+message TestUnpackedTypesLite {
+ repeated int32 unpacked_int32 = 90;
+ repeated int64 unpacked_int64 = 91;
+ repeated uint32 unpacked_uint32 = 92;
+ repeated uint64 unpacked_uint64 = 93;
+ repeated sint32 unpacked_sint32 = 94;
+ repeated sint64 unpacked_sint64 = 95;
+ repeated fixed32 unpacked_fixed32 = 96;
+ repeated fixed64 unpacked_fixed64 = 97;
+ repeated sfixed32 unpacked_sfixed32 = 98;
+ repeated sfixed64 unpacked_sfixed64 = 99;
+ repeated float unpacked_float = 100;
+ repeated double unpacked_double = 101;
+ repeated bool unpacked_bool = 102;
+ repeated UnpackedTypesForeignEnumLite unpacked_enum = 103;
+}
+
+extend TestUnpackedExtensionsLite {
+ repeated int32 unpacked_int32_extension_lite = 90;
+ repeated int64 unpacked_int64_extension_lite = 91;
+ repeated uint32 unpacked_uint32_extension_lite = 92;
+ repeated uint64 unpacked_uint64_extension_lite = 93;
+ repeated sint32 unpacked_sint32_extension_lite = 94;
+ repeated sint64 unpacked_sint64_extension_lite = 95;
+ repeated fixed32 unpacked_fixed32_extension_lite = 96;
+ repeated fixed64 unpacked_fixed64_extension_lite = 97;
+ repeated sfixed32 unpacked_sfixed32_extension_lite = 98;
+ repeated sfixed64 unpacked_sfixed64_extension_lite = 99;
+ repeated float unpacked_float_extension_lite = 100;
+ repeated double unpacked_double_extension_lite = 101;
+ repeated bool unpacked_bool_extension_lite = 102;
+ repeated UnpackedTypesForeignEnumLite unpacked_enum_extension_lite = 103;
+}
+
+enum UnpackedTypesForeignEnumLite {
+ FOREIGN_LITE_FOO = 4;
+ FOREIGN_LITE_BAR = 5;
+ FOREIGN_LITE_BAZ = 6;
+}
+
+message BucketOfBytes {
+ optional bytes value = 1;
+
+}
+message BucketOfBytesEx {
+ optional bytes value = 1;
+ optional bytes value2 = 255;
+} \ No newline at end of file
diff --git a/csharp/protos/extest/unittest_extras_xmltest.proto b/csharp/protos/extest/unittest_extras_xmltest.proto
new file mode 100644
index 00000000..fae36165
--- /dev/null
+++ b/csharp/protos/extest/unittest_extras_xmltest.proto
@@ -0,0 +1,53 @@
+syntax = "proto2";
+
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
+
+package protobuf_unittest_extra;
+
+option optimize_for = SPEED;
+
+enum EnumOptions {
+ ONE = 0;
+ TWO = 1;
+ THREE = 2;
+}
+
+message TestXmlChild {
+ repeated EnumOptions options = 3;
+ optional bytes binary = 4;
+}
+
+message TestXmlNoFields {
+}
+
+message TestXmlRescursive {
+ optional TestXmlRescursive child = 1;
+}
+
+message TestXmlMessage {
+
+ optional int64 number = 6;
+ repeated int32 numbers = 2;
+ optional string text = 3;
+ repeated string textlines = 700;
+ optional bool valid = 5;
+
+ optional TestXmlChild child = 1;
+ repeated group Children = 401 {
+ repeated EnumOptions options = 3;
+ optional bytes binary = 4;
+ }
+
+extensions 100 to 199;
+}
+
+message TestXmlExtension {
+ required int32 number = 1;
+}
+
+extend TestXmlMessage {
+ optional EnumOptions extension_enum = 101;
+ optional string extension_text = 102;
+ repeated int32 extension_number = 103 [packed = true];
+ optional TestXmlExtension extension_message = 199;
+}
diff --git a/csharp/protos/extest/unittest_issues.proto b/csharp/protos/extest/unittest_issues.proto
new file mode 100644
index 00000000..97249dff
--- /dev/null
+++ b/csharp/protos/extest/unittest_issues.proto
@@ -0,0 +1,141 @@
+syntax = "proto2";
+
+// These proto descriptors have at one time been reported as an issue or defect.
+// They are kept here to replicate the issue, and continue to verify the fix.
+
+// Issue: Non-"Google.Protobuffers" namespace will ensure that protobuffer library types are qualified
+option csharp_namespace = "UnitTest.Issues.TestProtos";
+
+package unittest_issues;
+option optimize_for = SPEED;
+
+// The following is a representative set of features
+/*
+enum EnumOptions {
+ ONE = 0;
+ TWO = 1;
+ THREE = 2;
+}
+
+message TestBasicChild
+{
+ repeated EnumOptions options = 3;
+ optional bytes binary = 4;
+}
+
+message TestBasicNoFields {
+}
+
+message TestBasicRescursive {
+ optional TestBasicRescursive child = 1;
+}
+
+message TestBasicMessage {
+
+ optional int64 number = 6;
+ repeated int32 numbers = 2;
+ optional string text = 3;
+ repeated string textlines = 700;
+ optional bool valid = 5;
+
+ optional TestBasicChild child = 1;
+ repeated group Children = 401
+ {
+ repeated EnumOptions options = 3;
+ optional bytes binary = 4;
+ }
+
+ extensions 100 to 199;
+}
+
+message TestBasicExtension {
+ required int32 number = 1;
+}
+
+extend TestBasicMessage {
+ optional EnumOptions extension_enum = 101;
+ optional string extension_text = 102;
+ repeated int32 extension_number = 103 [packed = true];
+ optional TestBasicExtension extension_message = 199;
+}
+
+// Issue for non-qualified type reference in new services generation
+option (google.protobuf.csharp_file_options).service_generator_type = IRPCDISPATCH;
+
+service TestGenericService {
+ rpc Foo(TestBasicNoFields) returns (TestBasicMessage);
+ rpc Bar(TestBasicNoFields) returns (TestBasicMessage);
+}
+*/
+
+// Old issue 13: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=13
+// New issue 309: https://github.com/google/protobuf/issues/309
+
+// message A {
+// optional int32 _A = 1;
+// }
+
+// message B {
+// optional int32 B_ = 1;
+// }
+
+//message AB {
+// optional int32 a_b = 1;
+//}
+
+// Similar issue with numeric names
+// Java code failed too, so probably best for this to be a restriction.
+// See https://github.com/google/protobuf/issues/308
+// message NumberField {
+// optional int32 _01 = 1;
+// }
+
+// Issue 28: Circular message dependencies result in null defaults for DefaultInstance
+
+message MyMessageAReferenceB {
+ required MyMessageBReferenceA value = 1;
+}
+
+message MyMessageBReferenceA {
+ required MyMessageAReferenceB value = 1;
+}
+
+// issue 19 - negative enum values
+
+enum NegativeEnum {
+ FiveBelow = -5;
+ MinusOne = -1;
+ Zero = 0;
+}
+
+message NegativeEnumMessage {
+ optional NegativeEnum value = 1;
+ repeated NegativeEnum values = 2;
+ repeated NegativeEnum packed_values = 3 [packed=true];
+}
+
+// Issue 21: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=21
+// Decorate fields with [deprecated=true] as [System.Obsolete]
+
+message DeprecatedChild {
+}
+
+enum DeprecatedEnum {
+ one = 1;
+}
+
+message DeprecatedFieldsMessage {
+ optional int32 PrimitiveValue = 1 [deprecated = true];
+ repeated int32 PrimitiveArray = 2 [deprecated = true];
+
+ optional DeprecatedChild MessageValue = 3 [deprecated = true];
+ repeated DeprecatedChild MessageArray = 4 [deprecated = true];
+
+ optional DeprecatedEnum EnumValue = 5 [deprecated = true];
+ repeated DeprecatedEnum EnumArray = 6 [deprecated = true];
+}
+
+// Issue 45: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=45
+message ItemField {
+ optional int32 item = 1;
+}
diff --git a/csharp/src/AddressBook/AddPerson.cs b/csharp/src/AddressBook/AddPerson.cs
new file mode 100644
index 00000000..462b0c56
--- /dev/null
+++ b/csharp/src/AddressBook/AddPerson.cs
@@ -0,0 +1,136 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.IO;
+
+namespace Google.ProtocolBuffers.Examples.AddressBook
+{
+ internal class AddPerson
+ {
+ /// <summary>
+ /// Builds a person based on user input
+ /// </summary>
+ private static Person PromptForAddress(TextReader input, TextWriter output)
+ {
+ Person.Builder person = Person.CreateBuilder();
+
+ output.Write("Enter person ID: ");
+ person.Id = int.Parse(input.ReadLine());
+
+ output.Write("Enter name: ");
+ person.Name = input.ReadLine();
+
+ output.Write("Enter email address (blank for none): ");
+ string email = input.ReadLine();
+ if (email.Length > 0)
+ {
+ person.Email = email;
+ }
+
+ while (true)
+ {
+ output.Write("Enter a phone number (or leave blank to finish): ");
+ string number = input.ReadLine();
+ if (number.Length == 0)
+ {
+ break;
+ }
+
+ Person.Types.PhoneNumber.Builder phoneNumber =
+ Person.Types.PhoneNumber.CreateBuilder().SetNumber(number);
+
+ output.Write("Is this a mobile, home, or work phone? ");
+ String type = input.ReadLine();
+ switch (type)
+ {
+ case "mobile":
+ phoneNumber.Type = Person.Types.PhoneType.MOBILE;
+ break;
+ case "home":
+ phoneNumber.Type = Person.Types.PhoneType.HOME;
+ break;
+ case "work":
+ phoneNumber.Type = Person.Types.PhoneType.WORK;
+ break;
+ default:
+ output.Write("Unknown phone type. Using default.");
+ break;
+ }
+
+ person.AddPhone(phoneNumber);
+ }
+ return person.Build();
+ }
+
+ /// <summary>
+ /// Entry point - loads an existing addressbook or creates a new one,
+ /// then writes it back to the file.
+ /// </summary>
+ public static int Main(string[] args)
+ {
+ if (args.Length != 1)
+ {
+ Console.Error.WriteLine("Usage: AddPerson ADDRESS_BOOK_FILE");
+ return -1;
+ }
+
+ AddressBook.Builder addressBook = AddressBook.CreateBuilder();
+
+ if (File.Exists(args[0]))
+ {
+ using (Stream file = File.OpenRead(args[0]))
+ {
+ addressBook.MergeFrom(file);
+ }
+ }
+ else
+ {
+ Console.WriteLine("{0}: File not found. Creating a new file.", args[0]);
+ }
+
+ // Add an address.
+ addressBook.AddPerson(PromptForAddress(Console.In, Console.Out));
+
+ // Write the new address book back to disk.
+ using (Stream output = File.OpenWrite(args[0]))
+ {
+ addressBook.Build().WriteTo(output);
+ }
+ return 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/AddressBook/AddressBook.csproj b/csharp/src/AddressBook/AddressBook.csproj
new file mode 100644
index 00000000..f7e0d6be
--- /dev/null
+++ b/csharp/src/AddressBook/AddressBook.csproj
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{A31F5FB2-4FF3-432A-B35B-5CD203606311}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers.Examples.AddressBook</RootNamespace>
+ <AssemblyName>AddressBook</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <StartupObject>Google.ProtocolBuffers.Examples.AddressBook.Program</StartupObject>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="AddPerson.cs" />
+ <Compile Include="Addressbook.cs" />
+ <Compile Include="SampleUsage.cs" />
+ <Compile Include="ListPeople.cs" />
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
+ <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffers</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="app.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/src/AddressBook/Addressbook.cs b/csharp/src/AddressBook/Addressbook.cs
new file mode 100644
index 00000000..58ad28ad
--- /dev/null
+++ b/csharp/src/AddressBook/Addressbook.cs
@@ -0,0 +1,1158 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: addressbook.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.Examples.AddressBook {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Addressbook {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_tutorial_Person__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.Examples.AddressBook.Person, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Builder> internal__static_tutorial_Person__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_tutorial_Person_PhoneNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Builder> internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_tutorial_AddressBook__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook, global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.Builder> internal__static_tutorial_AddressBook__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static Addressbook() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChFhZGRyZXNzYm9vay5wcm90bxIIdHV0b3JpYWwi2gEKBlBlcnNvbhIMCgRu",
+ "YW1lGAEgAigJEgoKAmlkGAIgAigFEg0KBWVtYWlsGAMgASgJEisKBXBob25l",
+ "GAQgAygLMhwudHV0b3JpYWwuUGVyc29uLlBob25lTnVtYmVyGk0KC1Bob25l",
+ "TnVtYmVyEg4KBm51bWJlchgBIAIoCRIuCgR0eXBlGAIgASgOMhoudHV0b3Jp",
+ "YWwuUGVyc29uLlBob25lVHlwZToESE9NRSIrCglQaG9uZVR5cGUSCgoGTU9C",
+ "SUxFEAASCAoESE9NRRABEggKBFdPUksQAiIvCgtBZGRyZXNzQm9vaxIgCgZw",
+ "ZXJzb24YASADKAsyEC50dXRvcmlhbC5QZXJzb25CVwoUY29tLmV4YW1wbGUu",
+ "dHV0b3JpYWxCEUFkZHJlc3NCb29rUHJvdG9zqgIrR29vZ2xlLlByb3RvY29s",
+ "QnVmZmVycy5FeGFtcGxlcy5BZGRyZXNzQm9vaw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_tutorial_Person__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_tutorial_Person__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.Examples.AddressBook.Person, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Builder>(internal__static_tutorial_Person__Descriptor,
+ new string[] { "Name", "Id", "Email", "Phone", });
+ internal__static_tutorial_Person_PhoneNumber__Descriptor = internal__static_tutorial_Person__Descriptor.NestedTypes[0];
+ internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Builder>(internal__static_tutorial_Person_PhoneNumber__Descriptor,
+ new string[] { "Number", "Type", });
+ internal__static_tutorial_AddressBook__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_tutorial_AddressBook__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook, global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.Builder>(internal__static_tutorial_AddressBook__Descriptor,
+ new string[] { "Person", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Person : pb::GeneratedMessage<Person, Person.Builder> {
+ private Person() { }
+ private static readonly Person defaultInstance = new Person().MakeReadOnly();
+ private static readonly string[] _personFieldNames = new string[] { "email", "id", "name", "phone" };
+ private static readonly uint[] _personFieldTags = new uint[] { 26, 16, 10, 34 };
+ public static Person DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Person DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Person ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Addressbook.internal__static_tutorial_Person__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Person, Person.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Addressbook.internal__static_tutorial_Person__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum PhoneType {
+ MOBILE = 0,
+ HOME = 1,
+ WORK = 2,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class PhoneNumber : pb::GeneratedMessage<PhoneNumber, PhoneNumber.Builder> {
+ private PhoneNumber() { }
+ private static readonly PhoneNumber defaultInstance = new PhoneNumber().MakeReadOnly();
+ private static readonly string[] _phoneNumberFieldNames = new string[] { "number", "type" };
+ private static readonly uint[] _phoneNumberFieldTags = new uint[] { 10, 16 };
+ public static PhoneNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override PhoneNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Addressbook.internal__static_tutorial_Person_PhoneNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<PhoneNumber, PhoneNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Addressbook.internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public const int TypeFieldNumber = 2;
+ private bool hasType;
+ private global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType type_ = global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType.HOME;
+ public bool HasType {
+ get { return hasType; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType Type {
+ get { return type_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasNumber) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _phoneNumberFieldNames;
+ if (hasNumber) {
+ output.WriteString(1, field_names[0], Number);
+ }
+ if (hasType) {
+ output.WriteEnum(2, field_names[1], (int) Type, Type);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasNumber) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Number);
+ }
+ if (hasType) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2, (int) Type);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static PhoneNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private PhoneNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PhoneNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<PhoneNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(PhoneNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private PhoneNumber result;
+
+ private PhoneNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ PhoneNumber original = result;
+ result = new PhoneNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override PhoneNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Descriptor; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.DefaultInstance; }
+ }
+
+ public override PhoneNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is PhoneNumber) {
+ return MergeFrom((PhoneNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(PhoneNumber other) {
+ if (other == global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ if (other.HasType) {
+ Type = other.Type;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_phoneNumberFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _phoneNumberFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasNumber = input.ReadString(ref result.number_);
+ break;
+ }
+ case 16: {
+ object unknown;
+ if(input.ReadEnum(ref result.type_, out unknown)) {
+ result.hasType = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2, (ulong)(int)unknown);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+
+ public bool HasType {
+ get { return result.hasType; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType Type {
+ get { return result.Type; }
+ set { SetType(value); }
+ }
+ public Builder SetType(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType value) {
+ PrepareBuilder();
+ result.hasType = true;
+ result.type_ = value;
+ return this;
+ }
+ public Builder ClearType() {
+ PrepareBuilder();
+ result.hasType = false;
+ result.type_ = global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType.HOME;
+ return this;
+ }
+ }
+ static PhoneNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.Examples.AddressBook.Addressbook.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int EmailFieldNumber = 3;
+ private bool hasEmail;
+ private string email_ = "";
+ public bool HasEmail {
+ get { return hasEmail; }
+ }
+ public string Email {
+ get { return email_; }
+ }
+
+ public const int PhoneFieldNumber = 4;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber> phone_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber>();
+ public scg::IList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber> PhoneList {
+ get { return phone_; }
+ }
+ public int PhoneCount {
+ get { return phone_.Count; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber GetPhone(int index) {
+ return phone_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasName) return false;
+ if (!hasId) return false;
+ foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber element in PhoneList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _personFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[2], Name);
+ }
+ if (hasId) {
+ output.WriteInt32(2, field_names[1], Id);
+ }
+ if (hasEmail) {
+ output.WriteString(3, field_names[0], Email);
+ }
+ if (phone_.Count > 0) {
+ output.WriteMessageArray(4, field_names[3], phone_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ if (hasId) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Id);
+ }
+ if (hasEmail) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, Email);
+ }
+ foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber element in PhoneList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Person ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Person ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Person ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Person ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Person ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Person ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Person ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Person ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Person ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Person ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Person MakeReadOnly() {
+ phone_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Person prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Person, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Person cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Person result;
+
+ private Person PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Person original = result;
+ result = new Person();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Person MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.Descriptor; }
+ }
+
+ public override Person DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.DefaultInstance; }
+ }
+
+ public override Person BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Person) {
+ return MergeFrom((Person) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Person other) {
+ if (other == global::Google.ProtocolBuffers.Examples.AddressBook.Person.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.HasId) {
+ Id = other.Id;
+ }
+ if (other.HasEmail) {
+ Email = other.Email;
+ }
+ if (other.phone_.Count != 0) {
+ result.phone_.Add(other.phone_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_personFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _personFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 16: {
+ result.hasId = input.ReadInt32(ref result.id_);
+ break;
+ }
+ case 26: {
+ result.hasEmail = input.ReadString(ref result.email_);
+ break;
+ }
+ case 34: {
+ input.ReadMessageArray(tag, field_name, result.phone_, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.hasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ PrepareBuilder();
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ PrepareBuilder();
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasEmail {
+ get { return result.hasEmail; }
+ }
+ public string Email {
+ get { return result.Email; }
+ set { SetEmail(value); }
+ }
+ public Builder SetEmail(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasEmail = true;
+ result.email_ = value;
+ return this;
+ }
+ public Builder ClearEmail() {
+ PrepareBuilder();
+ result.hasEmail = false;
+ result.email_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber> PhoneList {
+ get { return PrepareBuilder().phone_; }
+ }
+ public int PhoneCount {
+ get { return result.PhoneCount; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber GetPhone(int index) {
+ return result.GetPhone(index);
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.phone_[index] = value;
+ return this;
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.phone_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.phone_.Add(value);
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.phone_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangePhone(scg::IEnumerable<global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber> values) {
+ PrepareBuilder();
+ result.phone_.Add(values);
+ return this;
+ }
+ public Builder ClearPhone() {
+ PrepareBuilder();
+ result.phone_.Clear();
+ return this;
+ }
+ }
+ static Person() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.Examples.AddressBook.Addressbook.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class AddressBook : pb::GeneratedMessage<AddressBook, AddressBook.Builder> {
+ private AddressBook() { }
+ private static readonly AddressBook defaultInstance = new AddressBook().MakeReadOnly();
+ private static readonly string[] _addressBookFieldNames = new string[] { "person" };
+ private static readonly uint[] _addressBookFieldTags = new uint[] { 10 };
+ public static AddressBook DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override AddressBook DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override AddressBook ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Addressbook.internal__static_tutorial_AddressBook__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<AddressBook, AddressBook.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Addressbook.internal__static_tutorial_AddressBook__FieldAccessorTable; }
+ }
+
+ public const int PersonFieldNumber = 1;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person> person_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person>();
+ public scg::IList<global::Google.ProtocolBuffers.Examples.AddressBook.Person> PersonList {
+ get { return person_; }
+ }
+ public int PersonCount {
+ get { return person_.Count; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person GetPerson(int index) {
+ return person_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person element in PersonList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _addressBookFieldNames;
+ if (person_.Count > 0) {
+ output.WriteMessageArray(1, field_names[0], person_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person element in PersonList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static AddressBook ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static AddressBook ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static AddressBook ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static AddressBook ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private AddressBook MakeReadOnly() {
+ person_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(AddressBook prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<AddressBook, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(AddressBook cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private AddressBook result;
+
+ private AddressBook PrepareBuilder() {
+ if (resultIsReadOnly) {
+ AddressBook original = result;
+ result = new AddressBook();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override AddressBook MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.Descriptor; }
+ }
+
+ public override AddressBook DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.DefaultInstance; }
+ }
+
+ public override AddressBook BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is AddressBook) {
+ return MergeFrom((AddressBook) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(AddressBook other) {
+ if (other == global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.person_.Count != 0) {
+ result.person_.Add(other.person_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_addressBookFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _addressBookFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadMessageArray(tag, field_name, result.person_, global::Google.ProtocolBuffers.Examples.AddressBook.Person.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.Examples.AddressBook.Person> PersonList {
+ get { return PrepareBuilder().person_; }
+ }
+ public int PersonCount {
+ get { return result.PersonCount; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person GetPerson(int index) {
+ return result.GetPerson(index);
+ }
+ public Builder SetPerson(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.person_[index] = value;
+ return this;
+ }
+ public Builder SetPerson(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.person_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddPerson(global::Google.ProtocolBuffers.Examples.AddressBook.Person value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.person_.Add(value);
+ return this;
+ }
+ public Builder AddPerson(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.person_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangePerson(scg::IEnumerable<global::Google.ProtocolBuffers.Examples.AddressBook.Person> values) {
+ PrepareBuilder();
+ result.person_.Add(values);
+ return this;
+ }
+ public Builder ClearPerson() {
+ PrepareBuilder();
+ result.person_.Clear();
+ return this;
+ }
+ }
+ static AddressBook() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.Examples.AddressBook.Addressbook.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/AddressBook/ListPeople.cs b/csharp/src/AddressBook/ListPeople.cs
new file mode 100644
index 00000000..fe6f52d8
--- /dev/null
+++ b/csharp/src/AddressBook/ListPeople.cs
@@ -0,0 +1,103 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.IO;
+
+namespace Google.ProtocolBuffers.Examples.AddressBook
+{
+ internal class ListPeople
+ {
+ /// <summary>
+ /// Iterates though all people in the AddressBook and prints info about them.
+ /// </summary>
+ private static void Print(AddressBook addressBook)
+ {
+ foreach (Person person in addressBook.PersonList)
+ {
+ Console.WriteLine("Person ID: {0}", person.Id);
+ Console.WriteLine(" Name: {0}", person.Name);
+ if (person.HasEmail)
+ {
+ Console.WriteLine(" E-mail address: {0}", person.Email);
+ }
+
+ foreach (Person.Types.PhoneNumber phoneNumber in person.PhoneList)
+ {
+ switch (phoneNumber.Type)
+ {
+ case Person.Types.PhoneType.MOBILE:
+ Console.Write(" Mobile phone #: ");
+ break;
+ case Person.Types.PhoneType.HOME:
+ Console.Write(" Home phone #: ");
+ break;
+ case Person.Types.PhoneType.WORK:
+ Console.Write(" Work phone #: ");
+ break;
+ }
+ Console.WriteLine(phoneNumber.Number);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Entry point - loads the addressbook and then displays it.
+ /// </summary>
+ public static int Main(string[] args)
+ {
+ if (args.Length != 1)
+ {
+ Console.Error.WriteLine("Usage: ListPeople ADDRESS_BOOK_FILE");
+ return 1;
+ }
+
+ if (!File.Exists(args[0]))
+ {
+ Console.WriteLine("{0} doesn't exist. Add a person to create the file first.", args[0]);
+ return 0;
+ }
+
+ // Read the existing address book.
+ using (Stream stream = File.OpenRead(args[0]))
+ {
+ AddressBook addressBook = AddressBook.ParseFrom(stream);
+ Print(addressBook);
+ }
+ return 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/AddressBook/Program.cs b/csharp/src/AddressBook/Program.cs
new file mode 100644
index 00000000..e0d6d49b
--- /dev/null
+++ b/csharp/src/AddressBook/Program.cs
@@ -0,0 +1,99 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+
+namespace Google.ProtocolBuffers.Examples.AddressBook
+{
+ /// <summary>
+ /// Entry point. Repeatedly prompts user for an action to take, delegating actual behaviour
+ /// to individual actions. Each action has its own Main method, so that it can be used as an
+ /// invidual complete program.
+ /// </summary>
+ internal class Program
+ {
+ private static int Main(string[] args)
+ {
+ if (args.Length > 1)
+ {
+ Console.Error.WriteLine("Usage: AddressBook [file]");
+ Console.Error.WriteLine("If the filename isn't specified, \"addressbook.data\" is used instead.");
+ return 1;
+ }
+ string addressBookFile = args.Length > 0 ? args[0] : "addressbook.data";
+
+ bool stopping = false;
+ while (!stopping)
+ {
+ Console.WriteLine("Options:");
+ Console.WriteLine(" L: List contents");
+ Console.WriteLine(" A: Add new person");
+ Console.WriteLine(" Q: Quit");
+ Console.Write("Action? ");
+ Console.Out.Flush();
+ char choice = Console.ReadKey().KeyChar;
+ Console.WriteLine();
+ try
+ {
+ switch (choice)
+ {
+ case 'A':
+ case 'a':
+ AddPerson.Main(new string[] {addressBookFile});
+ break;
+ case 'L':
+ case 'l':
+ ListPeople.Main(new string[] {addressBookFile});
+ break;
+ case 'Q':
+ case 'q':
+ stopping = true;
+ break;
+ default:
+ Console.WriteLine("Unknown option: {0}", choice);
+ break;
+ }
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Exception executing action: {0}", e);
+ }
+ Console.WriteLine();
+ }
+ return 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/AddressBook/Properties/AssemblyInfo.cs b/csharp/src/AddressBook/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..e9c40dce
--- /dev/null
+++ b/csharp/src/AddressBook/Properties/AssemblyInfo.cs
@@ -0,0 +1,29 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+
+[assembly: AssemblyTitle("AddressBook")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("AddressBook")]
+[assembly: AssemblyCopyright("Copyright © 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("2.4.1.555")]
+
+[assembly: AssemblyVersion("2.4.1.555")]
+[assembly: AssemblyFileVersion("2.4.1.555")] \ No newline at end of file
diff --git a/csharp/src/AddressBook/SampleUsage.cs b/csharp/src/AddressBook/SampleUsage.cs
new file mode 100644
index 00000000..084b1655
--- /dev/null
+++ b/csharp/src/AddressBook/SampleUsage.cs
@@ -0,0 +1,44 @@
+using System;
+using System.IO;
+
+namespace Google.ProtocolBuffers.Examples.AddressBook
+{
+ internal class SampleUsage
+ {
+ private static void Main()
+ {
+ byte[] bytes;
+ //Create a builder to start building a message
+ Person.Builder newContact = Person.CreateBuilder();
+ //Set the primitive properties
+ newContact.SetId(1)
+ .SetName("Foo")
+ .SetEmail("foo@bar");
+ //Now add an item to a list (repeating) field
+ newContact.AddPhone(
+ //Create the child message inline
+ Person.Types.PhoneNumber.CreateBuilder().SetNumber("555-1212").Build()
+ );
+ //Now build the final message:
+ Person person = newContact.Build();
+ //The builder is no longer valid (at least not now, scheduled for 2.4):
+ newContact = null;
+ using (MemoryStream stream = new MemoryStream())
+ {
+ //Save the person to a stream
+ person.WriteTo(stream);
+ bytes = stream.ToArray();
+ }
+ //Create another builder, merge the byte[], and build the message:
+ Person copy = Person.CreateBuilder().MergeFrom(bytes).Build();
+
+ //A more streamlined approach might look like this:
+ bytes = AddressBook.CreateBuilder().AddPerson(copy).Build().ToByteArray();
+ //And read the address book back again
+ AddressBook restored = AddressBook.CreateBuilder().MergeFrom(bytes).Build();
+ //The message performs a deep-comparison on equality:
+ if (restored.PersonCount != 1 || !person.Equals(restored.PersonList[0]))
+ throw new ApplicationException("There is a bad person in here!");
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/AddressBook/app.config b/csharp/src/AddressBook/app.config
new file mode 100644
index 00000000..19fac17a
--- /dev/null
+++ b/csharp/src/AddressBook/app.config
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<configuration>
+ <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/></startup></configuration>
diff --git a/csharp/src/ProtoBench/GoogleSize.cs b/csharp/src/ProtoBench/GoogleSize.cs
new file mode 100644
index 00000000..06f2c0ca
--- /dev/null
+++ b/csharp/src/ProtoBench/GoogleSize.cs
@@ -0,0 +1,4569 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google_size.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class GoogleSize {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage1, global::Google.ProtocolBuffers.TestProtos.SizeMessage1.Builder> internal__static_benchmarks_SizeMessage1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage1SubMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage, global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.Builder> internal__static_benchmarks_SizeMessage1SubMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Builder> internal__static_benchmarks_SizeMessage2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage2_Group1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.Builder> internal__static_benchmarks_SizeMessage2_Group1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage, global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.Builder> internal__static_benchmarks_SizeMessage2GroupedMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static GoogleSize() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChFnb29nbGVfc2l6ZS5wcm90bxIKYmVuY2htYXJrcyL2BgoMU2l6ZU1lc3Nh",
+ "Z2UxEg4KBmZpZWxkMRgBIAIoCRIOCgZmaWVsZDkYCSABKAkSDwoHZmllbGQx",
+ "OBgSIAEoCRIWCgdmaWVsZDgwGFAgASgIOgVmYWxzZRIVCgdmaWVsZDgxGFEg",
+ "ASgIOgR0cnVlEg4KBmZpZWxkMhgCIAIoBRIOCgZmaWVsZDMYAyACKAUSEQoI",
+ "ZmllbGQyODAYmAIgASgFEhEKBmZpZWxkNhgGIAEoBToBMBIPCgdmaWVsZDIy",
+ "GBYgASgDEg4KBmZpZWxkNBgEIAEoCRIOCgZmaWVsZDUYBSADKAYSFgoHZmll",
+ "bGQ1ORg7IAEoCDoFZmFsc2USDgoGZmllbGQ3GAcgASgJEg8KB2ZpZWxkMTYY",
+ "ECABKAUSFAoIZmllbGQxMzAYggEgASgFOgEwEhUKB2ZpZWxkMTIYDCABKAg6",
+ "BHRydWUSFQoHZmllbGQxNxgRIAEoCDoEdHJ1ZRIVCgdmaWVsZDEzGA0gASgI",
+ "OgR0cnVlEhUKB2ZpZWxkMTQYDiABKAg6BHRydWUSEwoIZmllbGQxMDQYaCAB",
+ "KAU6ATASEwoIZmllbGQxMDAYZCABKAU6ATASEwoIZmllbGQxMDEYZSABKAU6",
+ "ATASEAoIZmllbGQxMDIYZiABKAkSEAoIZmllbGQxMDMYZyABKAkSEgoHZmll",
+ "bGQyORgdIAEoBToBMBIWCgdmaWVsZDMwGB4gASgIOgVmYWxzZRITCgdmaWVs",
+ "ZDYwGDwgASgFOgItMRIVCghmaWVsZDI3MRiPAiABKAU6Ai0xEhUKCGZpZWxk",
+ "MjcyGJACIAEoBToCLTESEQoIZmllbGQxNTAYlgEgASgFEhIKB2ZpZWxkMjMY",
+ "FyABKAU6ATASFgoHZmllbGQyNBgYIAEoCDoFZmFsc2USEgoHZmllbGQyNRgZ",
+ "IAEoBToBMBIzCgdmaWVsZDE1GA8gASgLMiIuYmVuY2htYXJrcy5TaXplTWVz",
+ "c2FnZTFTdWJNZXNzYWdlEg8KB2ZpZWxkNzgYTiABKAgSEgoHZmllbGQ2NxhD",
+ "IAEoBToBMBIPCgdmaWVsZDY4GEQgASgFEhQKCGZpZWxkMTI4GIABIAEoBToB",
+ "MBIoCghmaWVsZDEyORiBASABKAk6FXh4eHh4eHh4eHh4eHh4eHh4eHh4eBIU",
+ "CghmaWVsZDEzMRiDASABKAU6ATAioQMKFlNpemVNZXNzYWdlMVN1Yk1lc3Nh",
+ "Z2USEQoGZmllbGQxGAEgASgFOgEwEhEKBmZpZWxkMhgCIAEoBToBMBIRCgZm",
+ "aWVsZDMYAyABKAU6ATASDwoHZmllbGQxNRgPIAEoCRIVCgdmaWVsZDEyGAwg",
+ "ASgIOgR0cnVlEg8KB2ZpZWxkMTMYDSABKAMSDwoHZmllbGQxNBgOIAEoAxIP",
+ "CgdmaWVsZDE2GBAgASgFEhIKB2ZpZWxkMTkYEyABKAU6ATISFQoHZmllbGQy",
+ "MBgUIAEoCDoEdHJ1ZRIVCgdmaWVsZDI4GBwgASgIOgR0cnVlEg8KB2ZpZWxk",
+ "MjEYFSABKAYSDwoHZmllbGQyMhgWIAEoBRIWCgdmaWVsZDIzGBcgASgIOgVm",
+ "YWxzZRIYCghmaWVsZDIwNhjOASABKAg6BWZhbHNlEhEKCGZpZWxkMjAzGMsB",
+ "IAEoBxIRCghmaWVsZDIwNBjMASABKAUSEQoIZmllbGQyMDUYzQEgASgJEhEK",
+ "CGZpZWxkMjA3GM8BIAEoBBIRCghmaWVsZDMwMBisAiABKAQixwcKDFNpemVN",
+ "ZXNzYWdlMhIOCgZmaWVsZDEYASABKAkSDgoGZmllbGQzGAMgASgDEg4KBmZp",
+ "ZWxkNBgEIAEoAxIPCgdmaWVsZDMwGB4gASgDEhYKB2ZpZWxkNzUYSyABKAg6",
+ "BWZhbHNlEg4KBmZpZWxkNhgGIAEoCRIOCgZmaWVsZDIYAiABKAwSEgoHZmll",
+ "bGQyMRgVIAEoBToBMBIPCgdmaWVsZDcxGEcgASgFEg8KB2ZpZWxkMjUYGSAB",
+ "KAISEwoIZmllbGQxMDkYbSABKAU6ATASFAoIZmllbGQyMTAY0gEgASgFOgEw",
+ "EhQKCGZpZWxkMjExGNMBIAEoBToBMBIUCghmaWVsZDIxMhjUASABKAU6ATAS",
+ "FAoIZmllbGQyMTMY1QEgASgFOgEwEhQKCGZpZWxkMjE2GNgBIAEoBToBMBIU",
+ "CghmaWVsZDIxNxjZASABKAU6ATASFAoIZmllbGQyMTgY2gEgASgFOgEwEhQK",
+ "CGZpZWxkMjIwGNwBIAEoBToBMBIUCghmaWVsZDIyMRjdASABKAU6ATASFAoI",
+ "ZmllbGQyMjIY3gEgASgCOgEwEg8KB2ZpZWxkNjMYPyABKAUSLwoGZ3JvdXAx",
+ "GAogAygKMh8uYmVuY2htYXJrcy5TaXplTWVzc2FnZTIuR3JvdXAxEhEKCGZp",
+ "ZWxkMTI4GIABIAMoCRIRCghmaWVsZDEzMRiDASABKAMSEAoIZmllbGQxMjcY",
+ "fyADKAkSEQoIZmllbGQxMjkYgQEgASgFEhEKCGZpZWxkMTMwGIIBIAMoAxIY",
+ "CghmaWVsZDIwNRjNASABKAg6BWZhbHNlEhgKCGZpZWxkMjA2GM4BIAEoCDoF",
+ "ZmFsc2UawgIKBkdyb3VwMRIPCgdmaWVsZDExGAsgAigCEg8KB2ZpZWxkMjYY",
+ "GiABKAISDwoHZmllbGQxMhgMIAEoCRIPCgdmaWVsZDEzGA0gASgJEg8KB2Zp",
+ "ZWxkMTQYDiADKAkSDwoHZmllbGQxNRgPIAIoBBIOCgZmaWVsZDUYBSABKAUS",
+ "DwoHZmllbGQyNxgbIAEoCRIPCgdmaWVsZDI4GBwgASgFEg8KB2ZpZWxkMjkY",
+ "HSABKAkSDwoHZmllbGQxNhgQIAEoCRIPCgdmaWVsZDIyGBYgAygJEg8KB2Zp",
+ "ZWxkNzMYSSADKAUSEgoHZmllbGQyMBgUIAEoBToBMBIPCgdmaWVsZDI0GBgg",
+ "ASgJEjcKB2ZpZWxkMzEYHyABKAsyJi5iZW5jaG1hcmtzLlNpemVNZXNzYWdl",
+ "Mkdyb3VwZWRNZXNzYWdlIt4BChpTaXplTWVzc2FnZTJHcm91cGVkTWVzc2Fn",
+ "ZRIOCgZmaWVsZDEYASABKAISDgoGZmllbGQyGAIgASgCEhEKBmZpZWxkMxgD",
+ "IAEoAjoBMBIOCgZmaWVsZDQYBCABKAgSDgoGZmllbGQ1GAUgASgIEhQKBmZp",
+ "ZWxkNhgGIAEoCDoEdHJ1ZRIVCgZmaWVsZDcYByABKAg6BWZhbHNlEg4KBmZp",
+ "ZWxkOBgIIAEoAhIOCgZmaWVsZDkYCSABKAgSDwoHZmllbGQxMBgKIAEoAhIP",
+ "CgdmaWVsZDExGAsgASgDQjJCCkdvb2dsZVNpemVIAqoCIUdvb2dsZS5Qcm90",
+ "b2NvbEJ1ZmZlcnMuVGVzdFByb3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_benchmarks_SizeMessage1__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_benchmarks_SizeMessage1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage1, global::Google.ProtocolBuffers.TestProtos.SizeMessage1.Builder>(internal__static_benchmarks_SizeMessage1__Descriptor,
+ new string[] { "Field1", "Field9", "Field18", "Field80", "Field81", "Field2", "Field3", "Field280", "Field6", "Field22", "Field4", "Field5", "Field59", "Field7", "Field16", "Field130", "Field12", "Field17", "Field13", "Field14", "Field104", "Field100", "Field101", "Field102", "Field103", "Field29", "Field30", "Field60", "Field271", "Field272", "Field150", "Field23", "Field24", "Field25", "Field15", "Field78", "Field67", "Field68", "Field128", "Field129", "Field131", });
+ internal__static_benchmarks_SizeMessage1SubMessage__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_benchmarks_SizeMessage1SubMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage, global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.Builder>(internal__static_benchmarks_SizeMessage1SubMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field15", "Field12", "Field13", "Field14", "Field16", "Field19", "Field20", "Field28", "Field21", "Field22", "Field23", "Field206", "Field203", "Field204", "Field205", "Field207", "Field300", });
+ internal__static_benchmarks_SizeMessage2__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_benchmarks_SizeMessage2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Builder>(internal__static_benchmarks_SizeMessage2__Descriptor,
+ new string[] { "Field1", "Field3", "Field4", "Field30", "Field75", "Field6", "Field2", "Field21", "Field71", "Field25", "Field109", "Field210", "Field211", "Field212", "Field213", "Field216", "Field217", "Field218", "Field220", "Field221", "Field222", "Field63", "Group1", "Field128", "Field131", "Field127", "Field129", "Field130", "Field205", "Field206", });
+ internal__static_benchmarks_SizeMessage2_Group1__Descriptor = internal__static_benchmarks_SizeMessage2__Descriptor.NestedTypes[0];
+ internal__static_benchmarks_SizeMessage2_Group1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.Builder>(internal__static_benchmarks_SizeMessage2_Group1__Descriptor,
+ new string[] { "Field11", "Field26", "Field12", "Field13", "Field14", "Field15", "Field5", "Field27", "Field28", "Field29", "Field16", "Field22", "Field73", "Field20", "Field24", "Field31", });
+ internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_benchmarks_SizeMessage2GroupedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage, global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.Builder>(internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field4", "Field5", "Field6", "Field7", "Field8", "Field9", "Field10", "Field11", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage1 : pb::GeneratedMessage<SizeMessage1, SizeMessage1.Builder> {
+ private SizeMessage1() { }
+ private static readonly SizeMessage1 defaultInstance = new SizeMessage1().MakeReadOnly();
+ public static SizeMessage1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SizeMessage1, SizeMessage1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage1__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private string field9_ = "";
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public string Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field18FieldNumber = 18;
+ private bool hasField18;
+ private string field18_ = "";
+ public bool HasField18 {
+ get { return hasField18; }
+ }
+ public string Field18 {
+ get { return field18_; }
+ }
+
+ public const int Field80FieldNumber = 80;
+ private bool hasField80;
+ private bool field80_;
+ public bool HasField80 {
+ get { return hasField80; }
+ }
+ public bool Field80 {
+ get { return field80_; }
+ }
+
+ public const int Field81FieldNumber = 81;
+ private bool hasField81;
+ private bool field81_ = true;
+ public bool HasField81 {
+ get { return hasField81; }
+ }
+ public bool Field81 {
+ get { return field81_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field280FieldNumber = 280;
+ private bool hasField280;
+ private int field280_;
+ public bool HasField280 {
+ get { return hasField280; }
+ }
+ public int Field280 {
+ get { return field280_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private int field6_;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public int Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private long field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public long Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private string field4_ = "";
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public string Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private pbc::PopsicleList<ulong> field5_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> Field5List {
+ get { return pbc::Lists.AsReadOnly(field5_); }
+ }
+ public int Field5Count {
+ get { return field5_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetField5(int index) {
+ return field5_[index];
+ }
+
+ public const int Field59FieldNumber = 59;
+ private bool hasField59;
+ private bool field59_;
+ public bool HasField59 {
+ get { return hasField59; }
+ }
+ public bool Field59 {
+ get { return field59_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private string field7_ = "";
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public string Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private bool hasField130;
+ private int field130_;
+ public bool HasField130 {
+ get { return hasField130; }
+ }
+ public int Field130 {
+ get { return field130_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field17FieldNumber = 17;
+ private bool hasField17;
+ private bool field17_ = true;
+ public bool HasField17 {
+ get { return hasField17; }
+ }
+ public bool Field17 {
+ get { return field17_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private bool field13_ = true;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public bool Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private bool field14_ = true;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public bool Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field104FieldNumber = 104;
+ private bool hasField104;
+ private int field104_;
+ public bool HasField104 {
+ get { return hasField104; }
+ }
+ public int Field104 {
+ get { return field104_; }
+ }
+
+ public const int Field100FieldNumber = 100;
+ private bool hasField100;
+ private int field100_;
+ public bool HasField100 {
+ get { return hasField100; }
+ }
+ public int Field100 {
+ get { return field100_; }
+ }
+
+ public const int Field101FieldNumber = 101;
+ private bool hasField101;
+ private int field101_;
+ public bool HasField101 {
+ get { return hasField101; }
+ }
+ public int Field101 {
+ get { return field101_; }
+ }
+
+ public const int Field102FieldNumber = 102;
+ private bool hasField102;
+ private string field102_ = "";
+ public bool HasField102 {
+ get { return hasField102; }
+ }
+ public string Field102 {
+ get { return field102_; }
+ }
+
+ public const int Field103FieldNumber = 103;
+ private bool hasField103;
+ private string field103_ = "";
+ public bool HasField103 {
+ get { return hasField103; }
+ }
+ public string Field103 {
+ get { return field103_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private int field29_;
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public int Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private bool field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public bool Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field60FieldNumber = 60;
+ private bool hasField60;
+ private int field60_ = -1;
+ public bool HasField60 {
+ get { return hasField60; }
+ }
+ public int Field60 {
+ get { return field60_; }
+ }
+
+ public const int Field271FieldNumber = 271;
+ private bool hasField271;
+ private int field271_ = -1;
+ public bool HasField271 {
+ get { return hasField271; }
+ }
+ public int Field271 {
+ get { return field271_; }
+ }
+
+ public const int Field272FieldNumber = 272;
+ private bool hasField272;
+ private int field272_ = -1;
+ public bool HasField272 {
+ get { return hasField272; }
+ }
+ public int Field272 {
+ get { return field272_; }
+ }
+
+ public const int Field150FieldNumber = 150;
+ private bool hasField150;
+ private int field150_;
+ public bool HasField150 {
+ get { return hasField150; }
+ }
+ public int Field150 {
+ get { return field150_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private int field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public int Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private bool field24_;
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public bool Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private int field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public int Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage Field15 {
+ get { return field15_ ?? global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.DefaultInstance; }
+ }
+
+ public const int Field78FieldNumber = 78;
+ private bool hasField78;
+ private bool field78_;
+ public bool HasField78 {
+ get { return hasField78; }
+ }
+ public bool Field78 {
+ get { return field78_; }
+ }
+
+ public const int Field67FieldNumber = 67;
+ private bool hasField67;
+ private int field67_;
+ public bool HasField67 {
+ get { return hasField67; }
+ }
+ public int Field67 {
+ get { return field67_; }
+ }
+
+ public const int Field68FieldNumber = 68;
+ private bool hasField68;
+ private int field68_;
+ public bool HasField68 {
+ get { return hasField68; }
+ }
+ public int Field68 {
+ get { return field68_; }
+ }
+
+ public const int Field128FieldNumber = 128;
+ private bool hasField128;
+ private int field128_;
+ public bool HasField128 {
+ get { return hasField128; }
+ }
+ public int Field128 {
+ get { return field128_; }
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private string field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public string Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private int field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public int Field131 {
+ get { return field131_; }
+ }
+
+ public static SizeMessage1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage1 MakeReadOnly() {
+ field5_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage1 result;
+
+ private SizeMessage1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage1 original = result;
+ result = new SizeMessage1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage1.Descriptor; }
+ }
+
+ public override SizeMessage1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage1.DefaultInstance; }
+ }
+
+ public override SizeMessage1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public string Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = "";
+ return this;
+ }
+
+ public bool HasField18 {
+ get { return result.hasField18; }
+ }
+ public string Field18 {
+ get { return result.Field18; }
+ set { SetField18(value); }
+ }
+ public Builder SetField18(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField18 = true;
+ result.field18_ = value;
+ return this;
+ }
+ public Builder ClearField18() {
+ PrepareBuilder();
+ result.hasField18 = false;
+ result.field18_ = "";
+ return this;
+ }
+
+ public bool HasField80 {
+ get { return result.hasField80; }
+ }
+ public bool Field80 {
+ get { return result.Field80; }
+ set { SetField80(value); }
+ }
+ public Builder SetField80(bool value) {
+ PrepareBuilder();
+ result.hasField80 = true;
+ result.field80_ = value;
+ return this;
+ }
+ public Builder ClearField80() {
+ PrepareBuilder();
+ result.hasField80 = false;
+ result.field80_ = false;
+ return this;
+ }
+
+ public bool HasField81 {
+ get { return result.hasField81; }
+ }
+ public bool Field81 {
+ get { return result.Field81; }
+ set { SetField81(value); }
+ }
+ public Builder SetField81(bool value) {
+ PrepareBuilder();
+ result.hasField81 = true;
+ result.field81_ = value;
+ return this;
+ }
+ public Builder ClearField81() {
+ PrepareBuilder();
+ result.hasField81 = false;
+ result.field81_ = true;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField280 {
+ get { return result.hasField280; }
+ }
+ public int Field280 {
+ get { return result.Field280; }
+ set { SetField280(value); }
+ }
+ public Builder SetField280(int value) {
+ PrepareBuilder();
+ result.hasField280 = true;
+ result.field280_ = value;
+ return this;
+ }
+ public Builder ClearField280() {
+ PrepareBuilder();
+ result.hasField280 = false;
+ result.field280_ = 0;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public int Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(int value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = 0;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public long Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(long value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public string Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = "";
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> Field5List {
+ get { return PrepareBuilder().field5_; }
+ }
+ public int Field5Count {
+ get { return result.Field5Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetField5(int index) {
+ return result.GetField5(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField5(int index, ulong value) {
+ PrepareBuilder();
+ result.field5_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddField5(ulong value) {
+ PrepareBuilder();
+ result.field5_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeField5(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.field5_.Add(values);
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.field5_.Clear();
+ return this;
+ }
+
+ public bool HasField59 {
+ get { return result.hasField59; }
+ }
+ public bool Field59 {
+ get { return result.Field59; }
+ set { SetField59(value); }
+ }
+ public Builder SetField59(bool value) {
+ PrepareBuilder();
+ result.hasField59 = true;
+ result.field59_ = value;
+ return this;
+ }
+ public Builder ClearField59() {
+ PrepareBuilder();
+ result.hasField59 = false;
+ result.field59_ = false;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public string Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField130 {
+ get { return result.hasField130; }
+ }
+ public int Field130 {
+ get { return result.Field130; }
+ set { SetField130(value); }
+ }
+ public Builder SetField130(int value) {
+ PrepareBuilder();
+ result.hasField130 = true;
+ result.field130_ = value;
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.hasField130 = false;
+ result.field130_ = 0;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField17 {
+ get { return result.hasField17; }
+ }
+ public bool Field17 {
+ get { return result.Field17; }
+ set { SetField17(value); }
+ }
+ public Builder SetField17(bool value) {
+ PrepareBuilder();
+ result.hasField17 = true;
+ result.field17_ = value;
+ return this;
+ }
+ public Builder ClearField17() {
+ PrepareBuilder();
+ result.hasField17 = false;
+ result.field17_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public bool Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(bool value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = true;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public bool Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(bool value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = true;
+ return this;
+ }
+
+ public bool HasField104 {
+ get { return result.hasField104; }
+ }
+ public int Field104 {
+ get { return result.Field104; }
+ set { SetField104(value); }
+ }
+ public Builder SetField104(int value) {
+ PrepareBuilder();
+ result.hasField104 = true;
+ result.field104_ = value;
+ return this;
+ }
+ public Builder ClearField104() {
+ PrepareBuilder();
+ result.hasField104 = false;
+ result.field104_ = 0;
+ return this;
+ }
+
+ public bool HasField100 {
+ get { return result.hasField100; }
+ }
+ public int Field100 {
+ get { return result.Field100; }
+ set { SetField100(value); }
+ }
+ public Builder SetField100(int value) {
+ PrepareBuilder();
+ result.hasField100 = true;
+ result.field100_ = value;
+ return this;
+ }
+ public Builder ClearField100() {
+ PrepareBuilder();
+ result.hasField100 = false;
+ result.field100_ = 0;
+ return this;
+ }
+
+ public bool HasField101 {
+ get { return result.hasField101; }
+ }
+ public int Field101 {
+ get { return result.Field101; }
+ set { SetField101(value); }
+ }
+ public Builder SetField101(int value) {
+ PrepareBuilder();
+ result.hasField101 = true;
+ result.field101_ = value;
+ return this;
+ }
+ public Builder ClearField101() {
+ PrepareBuilder();
+ result.hasField101 = false;
+ result.field101_ = 0;
+ return this;
+ }
+
+ public bool HasField102 {
+ get { return result.hasField102; }
+ }
+ public string Field102 {
+ get { return result.Field102; }
+ set { SetField102(value); }
+ }
+ public Builder SetField102(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField102 = true;
+ result.field102_ = value;
+ return this;
+ }
+ public Builder ClearField102() {
+ PrepareBuilder();
+ result.hasField102 = false;
+ result.field102_ = "";
+ return this;
+ }
+
+ public bool HasField103 {
+ get { return result.hasField103; }
+ }
+ public string Field103 {
+ get { return result.Field103; }
+ set { SetField103(value); }
+ }
+ public Builder SetField103(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField103 = true;
+ result.field103_ = value;
+ return this;
+ }
+ public Builder ClearField103() {
+ PrepareBuilder();
+ result.hasField103 = false;
+ result.field103_ = "";
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public int Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(int value) {
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = 0;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public bool Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(bool value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = false;
+ return this;
+ }
+
+ public bool HasField60 {
+ get { return result.hasField60; }
+ }
+ public int Field60 {
+ get { return result.Field60; }
+ set { SetField60(value); }
+ }
+ public Builder SetField60(int value) {
+ PrepareBuilder();
+ result.hasField60 = true;
+ result.field60_ = value;
+ return this;
+ }
+ public Builder ClearField60() {
+ PrepareBuilder();
+ result.hasField60 = false;
+ result.field60_ = -1;
+ return this;
+ }
+
+ public bool HasField271 {
+ get { return result.hasField271; }
+ }
+ public int Field271 {
+ get { return result.Field271; }
+ set { SetField271(value); }
+ }
+ public Builder SetField271(int value) {
+ PrepareBuilder();
+ result.hasField271 = true;
+ result.field271_ = value;
+ return this;
+ }
+ public Builder ClearField271() {
+ PrepareBuilder();
+ result.hasField271 = false;
+ result.field271_ = -1;
+ return this;
+ }
+
+ public bool HasField272 {
+ get { return result.hasField272; }
+ }
+ public int Field272 {
+ get { return result.Field272; }
+ set { SetField272(value); }
+ }
+ public Builder SetField272(int value) {
+ PrepareBuilder();
+ result.hasField272 = true;
+ result.field272_ = value;
+ return this;
+ }
+ public Builder ClearField272() {
+ PrepareBuilder();
+ result.hasField272 = false;
+ result.field272_ = -1;
+ return this;
+ }
+
+ public bool HasField150 {
+ get { return result.hasField150; }
+ }
+ public int Field150 {
+ get { return result.Field150; }
+ set { SetField150(value); }
+ }
+ public Builder SetField150(int value) {
+ PrepareBuilder();
+ result.hasField150 = true;
+ result.field150_ = value;
+ return this;
+ }
+ public Builder ClearField150() {
+ PrepareBuilder();
+ result.hasField150 = false;
+ result.field150_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public int Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(int value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public bool Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(bool value) {
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = false;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public int Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(int value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField15(global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField15 &&
+ result.field15_ != global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.DefaultInstance) {
+ result.field15_ = global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.CreateBuilder(result.field15_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field15_ = value;
+ }
+ result.hasField15 = true;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = null;
+ return this;
+ }
+
+ public bool HasField78 {
+ get { return result.hasField78; }
+ }
+ public bool Field78 {
+ get { return result.Field78; }
+ set { SetField78(value); }
+ }
+ public Builder SetField78(bool value) {
+ PrepareBuilder();
+ result.hasField78 = true;
+ result.field78_ = value;
+ return this;
+ }
+ public Builder ClearField78() {
+ PrepareBuilder();
+ result.hasField78 = false;
+ result.field78_ = false;
+ return this;
+ }
+
+ public bool HasField67 {
+ get { return result.hasField67; }
+ }
+ public int Field67 {
+ get { return result.Field67; }
+ set { SetField67(value); }
+ }
+ public Builder SetField67(int value) {
+ PrepareBuilder();
+ result.hasField67 = true;
+ result.field67_ = value;
+ return this;
+ }
+ public Builder ClearField67() {
+ PrepareBuilder();
+ result.hasField67 = false;
+ result.field67_ = 0;
+ return this;
+ }
+
+ public bool HasField68 {
+ get { return result.hasField68; }
+ }
+ public int Field68 {
+ get { return result.Field68; }
+ set { SetField68(value); }
+ }
+ public Builder SetField68(int value) {
+ PrepareBuilder();
+ result.hasField68 = true;
+ result.field68_ = value;
+ return this;
+ }
+ public Builder ClearField68() {
+ PrepareBuilder();
+ result.hasField68 = false;
+ result.field68_ = 0;
+ return this;
+ }
+
+ public bool HasField128 {
+ get { return result.hasField128; }
+ }
+ public int Field128 {
+ get { return result.Field128; }
+ set { SetField128(value); }
+ }
+ public Builder SetField128(int value) {
+ PrepareBuilder();
+ result.hasField128 = true;
+ result.field128_ = value;
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.hasField128 = false;
+ result.field128_ = 0;
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public string Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public int Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(int value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0;
+ return this;
+ }
+ }
+ static SizeMessage1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSize.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage1SubMessage : pb::GeneratedMessage<SizeMessage1SubMessage, SizeMessage1SubMessage.Builder> {
+ private SizeMessage1SubMessage() { }
+ private static readonly SizeMessage1SubMessage defaultInstance = new SizeMessage1SubMessage().MakeReadOnly();
+ public static SizeMessage1SubMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage1SubMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage1SubMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage1SubMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SizeMessage1SubMessage, SizeMessage1SubMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage1SubMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private int field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public int Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private string field15_ = "";
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public string Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private long field13_;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public long Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private long field14_;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public long Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field19FieldNumber = 19;
+ private bool hasField19;
+ private int field19_ = 2;
+ public bool HasField19 {
+ get { return hasField19; }
+ }
+ public int Field19 {
+ get { return field19_; }
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private bool field20_ = true;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public bool Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private bool field28_ = true;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public bool Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private ulong field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private int field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public int Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private bool field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public bool Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public const int Field203FieldNumber = 203;
+ private bool hasField203;
+ private uint field203_;
+ public bool HasField203 {
+ get { return hasField203; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Field203 {
+ get { return field203_; }
+ }
+
+ public const int Field204FieldNumber = 204;
+ private bool hasField204;
+ private int field204_;
+ public bool HasField204 {
+ get { return hasField204; }
+ }
+ public int Field204 {
+ get { return field204_; }
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private string field205_ = "";
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public string Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field207FieldNumber = 207;
+ private bool hasField207;
+ private ulong field207_;
+ public bool HasField207 {
+ get { return hasField207; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field207 {
+ get { return field207_; }
+ }
+
+ public const int Field300FieldNumber = 300;
+ private bool hasField300;
+ private ulong field300_;
+ public bool HasField300 {
+ get { return hasField300; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field300 {
+ get { return field300_; }
+ }
+
+ public static SizeMessage1SubMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage1SubMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage1SubMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage1SubMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage1SubMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage1SubMessage result;
+
+ private SizeMessage1SubMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage1SubMessage original = result;
+ result = new SizeMessage1SubMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage1SubMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.Descriptor; }
+ }
+
+ public override SizeMessage1SubMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.DefaultInstance; }
+ }
+
+ public override SizeMessage1SubMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public int Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(int value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public string Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = "";
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public long Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(long value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = 0L;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public long Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(long value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = 0L;
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField19 {
+ get { return result.hasField19; }
+ }
+ public int Field19 {
+ get { return result.Field19; }
+ set { SetField19(value); }
+ }
+ public Builder SetField19(int value) {
+ PrepareBuilder();
+ result.hasField19 = true;
+ result.field19_ = value;
+ return this;
+ }
+ public Builder ClearField19() {
+ PrepareBuilder();
+ result.hasField19 = false;
+ result.field19_ = 2;
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public bool Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(bool value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = true;
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public bool Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(bool value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = true;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField21(ulong value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0UL;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public int Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(int value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public bool Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(bool value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+
+ public bool HasField203 {
+ get { return result.hasField203; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Field203 {
+ get { return result.Field203; }
+ set { SetField203(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField203(uint value) {
+ PrepareBuilder();
+ result.hasField203 = true;
+ result.field203_ = value;
+ return this;
+ }
+ public Builder ClearField203() {
+ PrepareBuilder();
+ result.hasField203 = false;
+ result.field203_ = 0;
+ return this;
+ }
+
+ public bool HasField204 {
+ get { return result.hasField204; }
+ }
+ public int Field204 {
+ get { return result.Field204; }
+ set { SetField204(value); }
+ }
+ public Builder SetField204(int value) {
+ PrepareBuilder();
+ result.hasField204 = true;
+ result.field204_ = value;
+ return this;
+ }
+ public Builder ClearField204() {
+ PrepareBuilder();
+ result.hasField204 = false;
+ result.field204_ = 0;
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public string Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = "";
+ return this;
+ }
+
+ public bool HasField207 {
+ get { return result.hasField207; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field207 {
+ get { return result.Field207; }
+ set { SetField207(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField207(ulong value) {
+ PrepareBuilder();
+ result.hasField207 = true;
+ result.field207_ = value;
+ return this;
+ }
+ public Builder ClearField207() {
+ PrepareBuilder();
+ result.hasField207 = false;
+ result.field207_ = 0UL;
+ return this;
+ }
+
+ public bool HasField300 {
+ get { return result.hasField300; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field300 {
+ get { return result.Field300; }
+ set { SetField300(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField300(ulong value) {
+ PrepareBuilder();
+ result.hasField300 = true;
+ result.field300_ = value;
+ return this;
+ }
+ public Builder ClearField300() {
+ PrepareBuilder();
+ result.hasField300 = false;
+ result.field300_ = 0UL;
+ return this;
+ }
+ }
+ static SizeMessage1SubMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSize.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage2 : pb::GeneratedMessage<SizeMessage2, SizeMessage2.Builder> {
+ private SizeMessage2() { }
+ private static readonly SizeMessage2 defaultInstance = new SizeMessage2().MakeReadOnly();
+ public static SizeMessage2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SizeMessage2, SizeMessage2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
+ private Group1() { }
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
+ public static Group1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2_Group1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Group1, Group1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2_Group1__FieldAccessorTable; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private float field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public float Field11 {
+ get { return field11_; }
+ }
+
+ public const int Field26FieldNumber = 26;
+ private bool hasField26;
+ private float field26_;
+ public bool HasField26 {
+ get { return hasField26; }
+ }
+ public float Field26 {
+ get { return field26_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private string field12_ = "";
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public string Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private string field13_ = "";
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public string Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private pbc::PopsicleList<string> field14_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field14List {
+ get { return pbc::Lists.AsReadOnly(field14_); }
+ }
+ public int Field14Count {
+ get { return field14_.Count; }
+ }
+ public string GetField14(int index) {
+ return field14_[index];
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private ulong field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private int field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public int Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field27FieldNumber = 27;
+ private bool hasField27;
+ private string field27_ = "";
+ public bool HasField27 {
+ get { return hasField27; }
+ }
+ public string Field27 {
+ get { return field27_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private int field28_;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public int Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private string field29_ = "";
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public string Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private string field16_ = "";
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public string Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private pbc::PopsicleList<string> field22_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field22List {
+ get { return pbc::Lists.AsReadOnly(field22_); }
+ }
+ public int Field22Count {
+ get { return field22_.Count; }
+ }
+ public string GetField22(int index) {
+ return field22_[index];
+ }
+
+ public const int Field73FieldNumber = 73;
+ private pbc::PopsicleList<int> field73_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> Field73List {
+ get { return pbc::Lists.AsReadOnly(field73_); }
+ }
+ public int Field73Count {
+ get { return field73_.Count; }
+ }
+ public int GetField73(int index) {
+ return field73_[index];
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private int field20_;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public int Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private string field24_ = "";
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public string Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field31FieldNumber = 31;
+ private bool hasField31;
+ private global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage field31_;
+ public bool HasField31 {
+ get { return hasField31; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage Field31 {
+ get { return field31_ ?? global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public static Group1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group1 MakeReadOnly() {
+ field14_.MakeReadOnly();
+ field22_.MakeReadOnly();
+ field73_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Group1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group1 result;
+
+ private Group1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group1 original = result;
+ result = new Group1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.Descriptor; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.DefaultInstance; }
+ }
+
+ public override Group1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public float Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(float value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0F;
+ return this;
+ }
+
+ public bool HasField26 {
+ get { return result.hasField26; }
+ }
+ public float Field26 {
+ get { return result.Field26; }
+ set { SetField26(value); }
+ }
+ public Builder SetField26(float value) {
+ PrepareBuilder();
+ result.hasField26 = true;
+ result.field26_ = value;
+ return this;
+ }
+ public Builder ClearField26() {
+ PrepareBuilder();
+ result.hasField26 = false;
+ result.field26_ = 0F;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public string Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = "";
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public string Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field14List {
+ get { return PrepareBuilder().field14_; }
+ }
+ public int Field14Count {
+ get { return result.Field14Count; }
+ }
+ public string GetField14(int index) {
+ return result.GetField14(index);
+ }
+ public Builder SetField14(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_[index] = value;
+ return this;
+ }
+ public Builder AddField14(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField14(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field14_.Add(values);
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.field14_.Clear();
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField15(ulong value) {
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = 0UL;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public int Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(int value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = 0;
+ return this;
+ }
+
+ public bool HasField27 {
+ get { return result.hasField27; }
+ }
+ public string Field27 {
+ get { return result.Field27; }
+ set { SetField27(value); }
+ }
+ public Builder SetField27(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField27 = true;
+ result.field27_ = value;
+ return this;
+ }
+ public Builder ClearField27() {
+ PrepareBuilder();
+ result.hasField27 = false;
+ result.field27_ = "";
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public int Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(int value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = 0;
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public string Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public string Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field22List {
+ get { return PrepareBuilder().field22_; }
+ }
+ public int Field22Count {
+ get { return result.Field22Count; }
+ }
+ public string GetField22(int index) {
+ return result.GetField22(index);
+ }
+ public Builder SetField22(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_[index] = value;
+ return this;
+ }
+ public Builder AddField22(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField22(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field22_.Add(values);
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.field22_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> Field73List {
+ get { return PrepareBuilder().field73_; }
+ }
+ public int Field73Count {
+ get { return result.Field73Count; }
+ }
+ public int GetField73(int index) {
+ return result.GetField73(index);
+ }
+ public Builder SetField73(int index, int value) {
+ PrepareBuilder();
+ result.field73_[index] = value;
+ return this;
+ }
+ public Builder AddField73(int value) {
+ PrepareBuilder();
+ result.field73_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField73(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.field73_.Add(values);
+ return this;
+ }
+ public Builder ClearField73() {
+ PrepareBuilder();
+ result.field73_.Clear();
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public int Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(int value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public string Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = "";
+ return this;
+ }
+
+ public bool HasField31 {
+ get { return result.hasField31; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage Field31 {
+ get { return result.Field31; }
+ set { SetField31(value); }
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = value;
+ return this;
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField31(global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField31 &&
+ result.field31_ != global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.DefaultInstance) {
+ result.field31_ = global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.CreateBuilder(result.field31_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field31_ = value;
+ }
+ result.hasField31 = true;
+ return this;
+ }
+ public Builder ClearField31() {
+ PrepareBuilder();
+ result.hasField31 = false;
+ result.field31_ = null;
+ return this;
+ }
+ }
+ static Group1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSize.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private long field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public long Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private long field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public long Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private long field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public long Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field75FieldNumber = 75;
+ private bool hasField75;
+ private bool field75_;
+ public bool HasField75 {
+ get { return hasField75; }
+ }
+ public bool Field75 {
+ get { return field75_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private string field6_ = "";
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public string Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private pb::ByteString field2_ = pb::ByteString.Empty;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private int field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ public int Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field71FieldNumber = 71;
+ private bool hasField71;
+ private int field71_;
+ public bool HasField71 {
+ get { return hasField71; }
+ }
+ public int Field71 {
+ get { return field71_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private float field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public float Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field109FieldNumber = 109;
+ private bool hasField109;
+ private int field109_;
+ public bool HasField109 {
+ get { return hasField109; }
+ }
+ public int Field109 {
+ get { return field109_; }
+ }
+
+ public const int Field210FieldNumber = 210;
+ private bool hasField210;
+ private int field210_;
+ public bool HasField210 {
+ get { return hasField210; }
+ }
+ public int Field210 {
+ get { return field210_; }
+ }
+
+ public const int Field211FieldNumber = 211;
+ private bool hasField211;
+ private int field211_;
+ public bool HasField211 {
+ get { return hasField211; }
+ }
+ public int Field211 {
+ get { return field211_; }
+ }
+
+ public const int Field212FieldNumber = 212;
+ private bool hasField212;
+ private int field212_;
+ public bool HasField212 {
+ get { return hasField212; }
+ }
+ public int Field212 {
+ get { return field212_; }
+ }
+
+ public const int Field213FieldNumber = 213;
+ private bool hasField213;
+ private int field213_;
+ public bool HasField213 {
+ get { return hasField213; }
+ }
+ public int Field213 {
+ get { return field213_; }
+ }
+
+ public const int Field216FieldNumber = 216;
+ private bool hasField216;
+ private int field216_;
+ public bool HasField216 {
+ get { return hasField216; }
+ }
+ public int Field216 {
+ get { return field216_; }
+ }
+
+ public const int Field217FieldNumber = 217;
+ private bool hasField217;
+ private int field217_;
+ public bool HasField217 {
+ get { return hasField217; }
+ }
+ public int Field217 {
+ get { return field217_; }
+ }
+
+ public const int Field218FieldNumber = 218;
+ private bool hasField218;
+ private int field218_;
+ public bool HasField218 {
+ get { return hasField218; }
+ }
+ public int Field218 {
+ get { return field218_; }
+ }
+
+ public const int Field220FieldNumber = 220;
+ private bool hasField220;
+ private int field220_;
+ public bool HasField220 {
+ get { return hasField220; }
+ }
+ public int Field220 {
+ get { return field220_; }
+ }
+
+ public const int Field221FieldNumber = 221;
+ private bool hasField221;
+ private int field221_;
+ public bool HasField221 {
+ get { return hasField221; }
+ }
+ public int Field221 {
+ get { return field221_; }
+ }
+
+ public const int Field222FieldNumber = 222;
+ private bool hasField222;
+ private float field222_;
+ public bool HasField222 {
+ get { return hasField222; }
+ }
+ public float Field222 {
+ get { return field222_; }
+ }
+
+ public const int Field63FieldNumber = 63;
+ private bool hasField63;
+ private int field63_;
+ public bool HasField63 {
+ get { return hasField63; }
+ }
+ public int Field63 {
+ get { return field63_; }
+ }
+
+ public const int Group1FieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1> group1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1> Group1List {
+ get { return group1_; }
+ }
+ public int Group1Count {
+ get { return group1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1 GetGroup1(int index) {
+ return group1_[index];
+ }
+
+ public const int Field128FieldNumber = 128;
+ private pbc::PopsicleList<string> field128_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field128List {
+ get { return pbc::Lists.AsReadOnly(field128_); }
+ }
+ public int Field128Count {
+ get { return field128_.Count; }
+ }
+ public string GetField128(int index) {
+ return field128_[index];
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private long field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public long Field131 {
+ get { return field131_; }
+ }
+
+ public const int Field127FieldNumber = 127;
+ private pbc::PopsicleList<string> field127_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field127List {
+ get { return pbc::Lists.AsReadOnly(field127_); }
+ }
+ public int Field127Count {
+ get { return field127_.Count; }
+ }
+ public string GetField127(int index) {
+ return field127_[index];
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private int field129_;
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public int Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private pbc::PopsicleList<long> field130_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> Field130List {
+ get { return pbc::Lists.AsReadOnly(field130_); }
+ }
+ public int Field130Count {
+ get { return field130_.Count; }
+ }
+ public long GetField130(int index) {
+ return field130_[index];
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private bool field205_;
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public bool Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public static SizeMessage2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage2 MakeReadOnly() {
+ group1_.MakeReadOnly();
+ field128_.MakeReadOnly();
+ field127_.MakeReadOnly();
+ field130_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage2 result;
+
+ private SizeMessage2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage2 original = result;
+ result = new SizeMessage2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Descriptor; }
+ }
+
+ public override SizeMessage2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2.DefaultInstance; }
+ }
+
+ public override SizeMessage2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public long Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(long value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public long Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(long value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = 0L;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public long Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(long value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = 0L;
+ return this;
+ }
+
+ public bool HasField75 {
+ get { return result.hasField75; }
+ }
+ public bool Field75 {
+ get { return result.Field75; }
+ set { SetField75(value); }
+ }
+ public Builder SetField75(bool value) {
+ PrepareBuilder();
+ result.hasField75 = true;
+ result.field75_ = value;
+ return this;
+ }
+ public Builder ClearField75() {
+ PrepareBuilder();
+ result.hasField75 = false;
+ result.field75_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public string Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = "";
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ public int Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ public Builder SetField21(int value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0;
+ return this;
+ }
+
+ public bool HasField71 {
+ get { return result.hasField71; }
+ }
+ public int Field71 {
+ get { return result.Field71; }
+ set { SetField71(value); }
+ }
+ public Builder SetField71(int value) {
+ PrepareBuilder();
+ result.hasField71 = true;
+ result.field71_ = value;
+ return this;
+ }
+ public Builder ClearField71() {
+ PrepareBuilder();
+ result.hasField71 = false;
+ result.field71_ = 0;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public float Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(float value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0F;
+ return this;
+ }
+
+ public bool HasField109 {
+ get { return result.hasField109; }
+ }
+ public int Field109 {
+ get { return result.Field109; }
+ set { SetField109(value); }
+ }
+ public Builder SetField109(int value) {
+ PrepareBuilder();
+ result.hasField109 = true;
+ result.field109_ = value;
+ return this;
+ }
+ public Builder ClearField109() {
+ PrepareBuilder();
+ result.hasField109 = false;
+ result.field109_ = 0;
+ return this;
+ }
+
+ public bool HasField210 {
+ get { return result.hasField210; }
+ }
+ public int Field210 {
+ get { return result.Field210; }
+ set { SetField210(value); }
+ }
+ public Builder SetField210(int value) {
+ PrepareBuilder();
+ result.hasField210 = true;
+ result.field210_ = value;
+ return this;
+ }
+ public Builder ClearField210() {
+ PrepareBuilder();
+ result.hasField210 = false;
+ result.field210_ = 0;
+ return this;
+ }
+
+ public bool HasField211 {
+ get { return result.hasField211; }
+ }
+ public int Field211 {
+ get { return result.Field211; }
+ set { SetField211(value); }
+ }
+ public Builder SetField211(int value) {
+ PrepareBuilder();
+ result.hasField211 = true;
+ result.field211_ = value;
+ return this;
+ }
+ public Builder ClearField211() {
+ PrepareBuilder();
+ result.hasField211 = false;
+ result.field211_ = 0;
+ return this;
+ }
+
+ public bool HasField212 {
+ get { return result.hasField212; }
+ }
+ public int Field212 {
+ get { return result.Field212; }
+ set { SetField212(value); }
+ }
+ public Builder SetField212(int value) {
+ PrepareBuilder();
+ result.hasField212 = true;
+ result.field212_ = value;
+ return this;
+ }
+ public Builder ClearField212() {
+ PrepareBuilder();
+ result.hasField212 = false;
+ result.field212_ = 0;
+ return this;
+ }
+
+ public bool HasField213 {
+ get { return result.hasField213; }
+ }
+ public int Field213 {
+ get { return result.Field213; }
+ set { SetField213(value); }
+ }
+ public Builder SetField213(int value) {
+ PrepareBuilder();
+ result.hasField213 = true;
+ result.field213_ = value;
+ return this;
+ }
+ public Builder ClearField213() {
+ PrepareBuilder();
+ result.hasField213 = false;
+ result.field213_ = 0;
+ return this;
+ }
+
+ public bool HasField216 {
+ get { return result.hasField216; }
+ }
+ public int Field216 {
+ get { return result.Field216; }
+ set { SetField216(value); }
+ }
+ public Builder SetField216(int value) {
+ PrepareBuilder();
+ result.hasField216 = true;
+ result.field216_ = value;
+ return this;
+ }
+ public Builder ClearField216() {
+ PrepareBuilder();
+ result.hasField216 = false;
+ result.field216_ = 0;
+ return this;
+ }
+
+ public bool HasField217 {
+ get { return result.hasField217; }
+ }
+ public int Field217 {
+ get { return result.Field217; }
+ set { SetField217(value); }
+ }
+ public Builder SetField217(int value) {
+ PrepareBuilder();
+ result.hasField217 = true;
+ result.field217_ = value;
+ return this;
+ }
+ public Builder ClearField217() {
+ PrepareBuilder();
+ result.hasField217 = false;
+ result.field217_ = 0;
+ return this;
+ }
+
+ public bool HasField218 {
+ get { return result.hasField218; }
+ }
+ public int Field218 {
+ get { return result.Field218; }
+ set { SetField218(value); }
+ }
+ public Builder SetField218(int value) {
+ PrepareBuilder();
+ result.hasField218 = true;
+ result.field218_ = value;
+ return this;
+ }
+ public Builder ClearField218() {
+ PrepareBuilder();
+ result.hasField218 = false;
+ result.field218_ = 0;
+ return this;
+ }
+
+ public bool HasField220 {
+ get { return result.hasField220; }
+ }
+ public int Field220 {
+ get { return result.Field220; }
+ set { SetField220(value); }
+ }
+ public Builder SetField220(int value) {
+ PrepareBuilder();
+ result.hasField220 = true;
+ result.field220_ = value;
+ return this;
+ }
+ public Builder ClearField220() {
+ PrepareBuilder();
+ result.hasField220 = false;
+ result.field220_ = 0;
+ return this;
+ }
+
+ public bool HasField221 {
+ get { return result.hasField221; }
+ }
+ public int Field221 {
+ get { return result.Field221; }
+ set { SetField221(value); }
+ }
+ public Builder SetField221(int value) {
+ PrepareBuilder();
+ result.hasField221 = true;
+ result.field221_ = value;
+ return this;
+ }
+ public Builder ClearField221() {
+ PrepareBuilder();
+ result.hasField221 = false;
+ result.field221_ = 0;
+ return this;
+ }
+
+ public bool HasField222 {
+ get { return result.hasField222; }
+ }
+ public float Field222 {
+ get { return result.Field222; }
+ set { SetField222(value); }
+ }
+ public Builder SetField222(float value) {
+ PrepareBuilder();
+ result.hasField222 = true;
+ result.field222_ = value;
+ return this;
+ }
+ public Builder ClearField222() {
+ PrepareBuilder();
+ result.hasField222 = false;
+ result.field222_ = 0F;
+ return this;
+ }
+
+ public bool HasField63 {
+ get { return result.hasField63; }
+ }
+ public int Field63 {
+ get { return result.Field63; }
+ set { SetField63(value); }
+ }
+ public Builder SetField63(int value) {
+ PrepareBuilder();
+ result.hasField63 = true;
+ result.field63_ = value;
+ return this;
+ }
+ public Builder ClearField63() {
+ PrepareBuilder();
+ result.hasField63 = false;
+ result.field63_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1> Group1List {
+ get { return PrepareBuilder().group1_; }
+ }
+ public int Group1Count {
+ get { return result.Group1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1 GetGroup1(int index) {
+ return result.GetGroup1(index);
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_[index] = value;
+ return this;
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_.Add(value);
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1> values) {
+ PrepareBuilder();
+ result.group1_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup1() {
+ PrepareBuilder();
+ result.group1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field128List {
+ get { return PrepareBuilder().field128_; }
+ }
+ public int Field128Count {
+ get { return result.Field128Count; }
+ }
+ public string GetField128(int index) {
+ return result.GetField128(index);
+ }
+ public Builder SetField128(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_[index] = value;
+ return this;
+ }
+ public Builder AddField128(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField128(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field128_.Add(values);
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.field128_.Clear();
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public long Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(long value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0L;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field127List {
+ get { return PrepareBuilder().field127_; }
+ }
+ public int Field127Count {
+ get { return result.Field127Count; }
+ }
+ public string GetField127(int index) {
+ return result.GetField127(index);
+ }
+ public Builder SetField127(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_[index] = value;
+ return this;
+ }
+ public Builder AddField127(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField127(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field127_.Add(values);
+ return this;
+ }
+ public Builder ClearField127() {
+ PrepareBuilder();
+ result.field127_.Clear();
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public int Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(int value) {
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> Field130List {
+ get { return PrepareBuilder().field130_; }
+ }
+ public int Field130Count {
+ get { return result.Field130Count; }
+ }
+ public long GetField130(int index) {
+ return result.GetField130(index);
+ }
+ public Builder SetField130(int index, long value) {
+ PrepareBuilder();
+ result.field130_[index] = value;
+ return this;
+ }
+ public Builder AddField130(long value) {
+ PrepareBuilder();
+ result.field130_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField130(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.field130_.Add(values);
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.field130_.Clear();
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public bool Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(bool value) {
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+ }
+ static SizeMessage2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSize.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage2GroupedMessage : pb::GeneratedMessage<SizeMessage2GroupedMessage, SizeMessage2GroupedMessage.Builder> {
+ private SizeMessage2GroupedMessage() { }
+ private static readonly SizeMessage2GroupedMessage defaultInstance = new SizeMessage2GroupedMessage().MakeReadOnly();
+ public static SizeMessage2GroupedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage2GroupedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage2GroupedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SizeMessage2GroupedMessage, SizeMessage2GroupedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2GroupedMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private float field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public float Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private float field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public float Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private float field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public float Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private bool field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public bool Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private bool field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public bool Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private bool field6_ = true;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public bool Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private bool field7_;
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public bool Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field8FieldNumber = 8;
+ private bool hasField8;
+ private float field8_;
+ public bool HasField8 {
+ get { return hasField8; }
+ }
+ public float Field8 {
+ get { return field8_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private bool field9_;
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public bool Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field10FieldNumber = 10;
+ private bool hasField10;
+ private float field10_;
+ public bool HasField10 {
+ get { return hasField10; }
+ }
+ public float Field10 {
+ get { return field10_; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private long field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public long Field11 {
+ get { return field11_; }
+ }
+
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage2GroupedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage2GroupedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage2GroupedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage2GroupedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage2GroupedMessage result;
+
+ private SizeMessage2GroupedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage2GroupedMessage original = result;
+ result = new SizeMessage2GroupedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage2GroupedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.Descriptor; }
+ }
+
+ public override SizeMessage2GroupedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public override SizeMessage2GroupedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public float Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(float value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0F;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public float Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(float value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0F;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public float Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(float value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0F;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public bool Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(bool value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = false;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public bool Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(bool value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public bool Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(bool value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = true;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public bool Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(bool value) {
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = false;
+ return this;
+ }
+
+ public bool HasField8 {
+ get { return result.hasField8; }
+ }
+ public float Field8 {
+ get { return result.Field8; }
+ set { SetField8(value); }
+ }
+ public Builder SetField8(float value) {
+ PrepareBuilder();
+ result.hasField8 = true;
+ result.field8_ = value;
+ return this;
+ }
+ public Builder ClearField8() {
+ PrepareBuilder();
+ result.hasField8 = false;
+ result.field8_ = 0F;
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public bool Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(bool value) {
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = false;
+ return this;
+ }
+
+ public bool HasField10 {
+ get { return result.hasField10; }
+ }
+ public float Field10 {
+ get { return result.Field10; }
+ set { SetField10(value); }
+ }
+ public Builder SetField10(float value) {
+ PrepareBuilder();
+ result.hasField10 = true;
+ result.field10_ = value;
+ return this;
+ }
+ public Builder ClearField10() {
+ PrepareBuilder();
+ result.hasField10 = false;
+ result.field10_ = 0F;
+ return this;
+ }
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public long Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(long value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0L;
+ return this;
+ }
+ }
+ static SizeMessage2GroupedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSize.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtoBench/GoogleSpeed.cs b/csharp/src/ProtoBench/GoogleSpeed.cs
new file mode 100644
index 00000000..13e684a5
--- /dev/null
+++ b/csharp/src/ProtoBench/GoogleSpeed.cs
@@ -0,0 +1,6634 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google_speed.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class GoogleSpeed {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage1, global::Google.ProtocolBuffers.TestProtos.SpeedMessage1.Builder> internal__static_benchmarks_SpeedMessage1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage, global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Builder> internal__static_benchmarks_SpeedMessage1SubMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Builder> internal__static_benchmarks_SpeedMessage2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage2_Group1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.Builder> internal__static_benchmarks_SpeedMessage2_Group1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Builder> internal__static_benchmarks_SpeedMessage2GroupedMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static GoogleSpeed() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChJnb29nbGVfc3BlZWQucHJvdG8SCmJlbmNobWFya3Mi+AYKDVNwZWVkTWVz",
+ "c2FnZTESDgoGZmllbGQxGAEgAigJEg4KBmZpZWxkORgJIAEoCRIPCgdmaWVs",
+ "ZDE4GBIgASgJEhYKB2ZpZWxkODAYUCABKAg6BWZhbHNlEhUKB2ZpZWxkODEY",
+ "USABKAg6BHRydWUSDgoGZmllbGQyGAIgAigFEg4KBmZpZWxkMxgDIAIoBRIR",
+ "CghmaWVsZDI4MBiYAiABKAUSEQoGZmllbGQ2GAYgASgFOgEwEg8KB2ZpZWxk",
+ "MjIYFiABKAMSDgoGZmllbGQ0GAQgASgJEg4KBmZpZWxkNRgFIAMoBhIWCgdm",
+ "aWVsZDU5GDsgASgIOgVmYWxzZRIOCgZmaWVsZDcYByABKAkSDwoHZmllbGQx",
+ "NhgQIAEoBRIUCghmaWVsZDEzMBiCASABKAU6ATASFQoHZmllbGQxMhgMIAEo",
+ "CDoEdHJ1ZRIVCgdmaWVsZDE3GBEgASgIOgR0cnVlEhUKB2ZpZWxkMTMYDSAB",
+ "KAg6BHRydWUSFQoHZmllbGQxNBgOIAEoCDoEdHJ1ZRITCghmaWVsZDEwNBho",
+ "IAEoBToBMBITCghmaWVsZDEwMBhkIAEoBToBMBITCghmaWVsZDEwMRhlIAEo",
+ "BToBMBIQCghmaWVsZDEwMhhmIAEoCRIQCghmaWVsZDEwMxhnIAEoCRISCgdm",
+ "aWVsZDI5GB0gASgFOgEwEhYKB2ZpZWxkMzAYHiABKAg6BWZhbHNlEhMKB2Zp",
+ "ZWxkNjAYPCABKAU6Ai0xEhUKCGZpZWxkMjcxGI8CIAEoBToCLTESFQoIZmll",
+ "bGQyNzIYkAIgASgFOgItMRIRCghmaWVsZDE1MBiWASABKAUSEgoHZmllbGQy",
+ "MxgXIAEoBToBMBIWCgdmaWVsZDI0GBggASgIOgVmYWxzZRISCgdmaWVsZDI1",
+ "GBkgASgFOgEwEjQKB2ZpZWxkMTUYDyABKAsyIy5iZW5jaG1hcmtzLlNwZWVk",
+ "TWVzc2FnZTFTdWJNZXNzYWdlEg8KB2ZpZWxkNzgYTiABKAgSEgoHZmllbGQ2",
+ "NxhDIAEoBToBMBIPCgdmaWVsZDY4GEQgASgFEhQKCGZpZWxkMTI4GIABIAEo",
+ "BToBMBIoCghmaWVsZDEyORiBASABKAk6FXh4eHh4eHh4eHh4eHh4eHh4eHh4",
+ "eBIUCghmaWVsZDEzMRiDASABKAU6ATAiogMKF1NwZWVkTWVzc2FnZTFTdWJN",
+ "ZXNzYWdlEhEKBmZpZWxkMRgBIAEoBToBMBIRCgZmaWVsZDIYAiABKAU6ATAS",
+ "EQoGZmllbGQzGAMgASgFOgEwEg8KB2ZpZWxkMTUYDyABKAkSFQoHZmllbGQx",
+ "MhgMIAEoCDoEdHJ1ZRIPCgdmaWVsZDEzGA0gASgDEg8KB2ZpZWxkMTQYDiAB",
+ "KAMSDwoHZmllbGQxNhgQIAEoBRISCgdmaWVsZDE5GBMgASgFOgEyEhUKB2Zp",
+ "ZWxkMjAYFCABKAg6BHRydWUSFQoHZmllbGQyOBgcIAEoCDoEdHJ1ZRIPCgdm",
+ "aWVsZDIxGBUgASgGEg8KB2ZpZWxkMjIYFiABKAUSFgoHZmllbGQyMxgXIAEo",
+ "CDoFZmFsc2USGAoIZmllbGQyMDYYzgEgASgIOgVmYWxzZRIRCghmaWVsZDIw",
+ "MxjLASABKAcSEQoIZmllbGQyMDQYzAEgASgFEhEKCGZpZWxkMjA1GM0BIAEo",
+ "CRIRCghmaWVsZDIwNxjPASABKAQSEQoIZmllbGQzMDAYrAIgASgEIsoHCg1T",
+ "cGVlZE1lc3NhZ2UyEg4KBmZpZWxkMRgBIAEoCRIOCgZmaWVsZDMYAyABKAMS",
+ "DgoGZmllbGQ0GAQgASgDEg8KB2ZpZWxkMzAYHiABKAMSFgoHZmllbGQ3NRhL",
+ "IAEoCDoFZmFsc2USDgoGZmllbGQ2GAYgASgJEg4KBmZpZWxkMhgCIAEoDBIS",
+ "CgdmaWVsZDIxGBUgASgFOgEwEg8KB2ZpZWxkNzEYRyABKAUSDwoHZmllbGQy",
+ "NRgZIAEoAhITCghmaWVsZDEwORhtIAEoBToBMBIUCghmaWVsZDIxMBjSASAB",
+ "KAU6ATASFAoIZmllbGQyMTEY0wEgASgFOgEwEhQKCGZpZWxkMjEyGNQBIAEo",
+ "BToBMBIUCghmaWVsZDIxMxjVASABKAU6ATASFAoIZmllbGQyMTYY2AEgASgF",
+ "OgEwEhQKCGZpZWxkMjE3GNkBIAEoBToBMBIUCghmaWVsZDIxOBjaASABKAU6",
+ "ATASFAoIZmllbGQyMjAY3AEgASgFOgEwEhQKCGZpZWxkMjIxGN0BIAEoBToB",
+ "MBIUCghmaWVsZDIyMhjeASABKAI6ATASDwoHZmllbGQ2Mxg/IAEoBRIwCgZn",
+ "cm91cDEYCiADKAoyIC5iZW5jaG1hcmtzLlNwZWVkTWVzc2FnZTIuR3JvdXAx",
+ "EhEKCGZpZWxkMTI4GIABIAMoCRIRCghmaWVsZDEzMRiDASABKAMSEAoIZmll",
+ "bGQxMjcYfyADKAkSEQoIZmllbGQxMjkYgQEgASgFEhEKCGZpZWxkMTMwGIIB",
+ "IAMoAxIYCghmaWVsZDIwNRjNASABKAg6BWZhbHNlEhgKCGZpZWxkMjA2GM4B",
+ "IAEoCDoFZmFsc2UawwIKBkdyb3VwMRIPCgdmaWVsZDExGAsgAigCEg8KB2Zp",
+ "ZWxkMjYYGiABKAISDwoHZmllbGQxMhgMIAEoCRIPCgdmaWVsZDEzGA0gASgJ",
+ "Eg8KB2ZpZWxkMTQYDiADKAkSDwoHZmllbGQxNRgPIAIoBBIOCgZmaWVsZDUY",
+ "BSABKAUSDwoHZmllbGQyNxgbIAEoCRIPCgdmaWVsZDI4GBwgASgFEg8KB2Zp",
+ "ZWxkMjkYHSABKAkSDwoHZmllbGQxNhgQIAEoCRIPCgdmaWVsZDIyGBYgAygJ",
+ "Eg8KB2ZpZWxkNzMYSSADKAUSEgoHZmllbGQyMBgUIAEoBToBMBIPCgdmaWVs",
+ "ZDI0GBggASgJEjgKB2ZpZWxkMzEYHyABKAsyJy5iZW5jaG1hcmtzLlNwZWVk",
+ "TWVzc2FnZTJHcm91cGVkTWVzc2FnZSLfAQobU3BlZWRNZXNzYWdlMkdyb3Vw",
+ "ZWRNZXNzYWdlEg4KBmZpZWxkMRgBIAEoAhIOCgZmaWVsZDIYAiABKAISEQoG",
+ "ZmllbGQzGAMgASgCOgEwEg4KBmZpZWxkNBgEIAEoCBIOCgZmaWVsZDUYBSAB",
+ "KAgSFAoGZmllbGQ2GAYgASgIOgR0cnVlEhUKBmZpZWxkNxgHIAEoCDoFZmFs",
+ "c2USDgoGZmllbGQ4GAggASgCEg4KBmZpZWxkORgJIAEoCBIPCgdmaWVsZDEw",
+ "GAogASgCEg8KB2ZpZWxkMTEYCyABKANCM0ILR29vZ2xlU3BlZWRIAaoCIUdv",
+ "b2dsZS5Qcm90b2NvbEJ1ZmZlcnMuVGVzdFByb3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_benchmarks_SpeedMessage1__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_benchmarks_SpeedMessage1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage1, global::Google.ProtocolBuffers.TestProtos.SpeedMessage1.Builder>(internal__static_benchmarks_SpeedMessage1__Descriptor,
+ new string[] { "Field1", "Field9", "Field18", "Field80", "Field81", "Field2", "Field3", "Field280", "Field6", "Field22", "Field4", "Field5", "Field59", "Field7", "Field16", "Field130", "Field12", "Field17", "Field13", "Field14", "Field104", "Field100", "Field101", "Field102", "Field103", "Field29", "Field30", "Field60", "Field271", "Field272", "Field150", "Field23", "Field24", "Field25", "Field15", "Field78", "Field67", "Field68", "Field128", "Field129", "Field131", });
+ internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_benchmarks_SpeedMessage1SubMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage, global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Builder>(internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field15", "Field12", "Field13", "Field14", "Field16", "Field19", "Field20", "Field28", "Field21", "Field22", "Field23", "Field206", "Field203", "Field204", "Field205", "Field207", "Field300", });
+ internal__static_benchmarks_SpeedMessage2__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_benchmarks_SpeedMessage2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Builder>(internal__static_benchmarks_SpeedMessage2__Descriptor,
+ new string[] { "Field1", "Field3", "Field4", "Field30", "Field75", "Field6", "Field2", "Field21", "Field71", "Field25", "Field109", "Field210", "Field211", "Field212", "Field213", "Field216", "Field217", "Field218", "Field220", "Field221", "Field222", "Field63", "Group1", "Field128", "Field131", "Field127", "Field129", "Field130", "Field205", "Field206", });
+ internal__static_benchmarks_SpeedMessage2_Group1__Descriptor = internal__static_benchmarks_SpeedMessage2__Descriptor.NestedTypes[0];
+ internal__static_benchmarks_SpeedMessage2_Group1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.Builder>(internal__static_benchmarks_SpeedMessage2_Group1__Descriptor,
+ new string[] { "Field11", "Field26", "Field12", "Field13", "Field14", "Field15", "Field5", "Field27", "Field28", "Field29", "Field16", "Field22", "Field73", "Field20", "Field24", "Field31", });
+ internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_benchmarks_SpeedMessage2GroupedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Builder>(internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field4", "Field5", "Field6", "Field7", "Field8", "Field9", "Field10", "Field11", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage1 : pb::GeneratedMessage<SpeedMessage1, SpeedMessage1.Builder> {
+ private SpeedMessage1() { }
+ private static readonly SpeedMessage1 defaultInstance = new SpeedMessage1().MakeReadOnly();
+ private static readonly string[] _speedMessage1FieldNames = new string[] { "field1", "field100", "field101", "field102", "field103", "field104", "field12", "field128", "field129", "field13", "field130", "field131", "field14", "field15", "field150", "field16", "field17", "field18", "field2", "field22", "field23", "field24", "field25", "field271", "field272", "field280", "field29", "field3", "field30", "field4", "field5", "field59", "field6", "field60", "field67", "field68", "field7", "field78", "field80", "field81", "field9" };
+ private static readonly uint[] _speedMessage1FieldTags = new uint[] { 10, 800, 808, 818, 826, 832, 96, 1024, 1034, 104, 1040, 1048, 112, 122, 1200, 128, 136, 146, 16, 176, 184, 192, 200, 2168, 2176, 2240, 232, 24, 240, 34, 41, 472, 48, 480, 536, 544, 58, 624, 640, 648, 74 };
+ public static SpeedMessage1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SpeedMessage1, SpeedMessage1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage1__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private string field9_ = "";
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public string Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field18FieldNumber = 18;
+ private bool hasField18;
+ private string field18_ = "";
+ public bool HasField18 {
+ get { return hasField18; }
+ }
+ public string Field18 {
+ get { return field18_; }
+ }
+
+ public const int Field80FieldNumber = 80;
+ private bool hasField80;
+ private bool field80_;
+ public bool HasField80 {
+ get { return hasField80; }
+ }
+ public bool Field80 {
+ get { return field80_; }
+ }
+
+ public const int Field81FieldNumber = 81;
+ private bool hasField81;
+ private bool field81_ = true;
+ public bool HasField81 {
+ get { return hasField81; }
+ }
+ public bool Field81 {
+ get { return field81_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field280FieldNumber = 280;
+ private bool hasField280;
+ private int field280_;
+ public bool HasField280 {
+ get { return hasField280; }
+ }
+ public int Field280 {
+ get { return field280_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private int field6_;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public int Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private long field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public long Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private string field4_ = "";
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public string Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private pbc::PopsicleList<ulong> field5_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> Field5List {
+ get { return pbc::Lists.AsReadOnly(field5_); }
+ }
+ public int Field5Count {
+ get { return field5_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetField5(int index) {
+ return field5_[index];
+ }
+
+ public const int Field59FieldNumber = 59;
+ private bool hasField59;
+ private bool field59_;
+ public bool HasField59 {
+ get { return hasField59; }
+ }
+ public bool Field59 {
+ get { return field59_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private string field7_ = "";
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public string Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private bool hasField130;
+ private int field130_;
+ public bool HasField130 {
+ get { return hasField130; }
+ }
+ public int Field130 {
+ get { return field130_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field17FieldNumber = 17;
+ private bool hasField17;
+ private bool field17_ = true;
+ public bool HasField17 {
+ get { return hasField17; }
+ }
+ public bool Field17 {
+ get { return field17_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private bool field13_ = true;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public bool Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private bool field14_ = true;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public bool Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field104FieldNumber = 104;
+ private bool hasField104;
+ private int field104_;
+ public bool HasField104 {
+ get { return hasField104; }
+ }
+ public int Field104 {
+ get { return field104_; }
+ }
+
+ public const int Field100FieldNumber = 100;
+ private bool hasField100;
+ private int field100_;
+ public bool HasField100 {
+ get { return hasField100; }
+ }
+ public int Field100 {
+ get { return field100_; }
+ }
+
+ public const int Field101FieldNumber = 101;
+ private bool hasField101;
+ private int field101_;
+ public bool HasField101 {
+ get { return hasField101; }
+ }
+ public int Field101 {
+ get { return field101_; }
+ }
+
+ public const int Field102FieldNumber = 102;
+ private bool hasField102;
+ private string field102_ = "";
+ public bool HasField102 {
+ get { return hasField102; }
+ }
+ public string Field102 {
+ get { return field102_; }
+ }
+
+ public const int Field103FieldNumber = 103;
+ private bool hasField103;
+ private string field103_ = "";
+ public bool HasField103 {
+ get { return hasField103; }
+ }
+ public string Field103 {
+ get { return field103_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private int field29_;
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public int Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private bool field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public bool Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field60FieldNumber = 60;
+ private bool hasField60;
+ private int field60_ = -1;
+ public bool HasField60 {
+ get { return hasField60; }
+ }
+ public int Field60 {
+ get { return field60_; }
+ }
+
+ public const int Field271FieldNumber = 271;
+ private bool hasField271;
+ private int field271_ = -1;
+ public bool HasField271 {
+ get { return hasField271; }
+ }
+ public int Field271 {
+ get { return field271_; }
+ }
+
+ public const int Field272FieldNumber = 272;
+ private bool hasField272;
+ private int field272_ = -1;
+ public bool HasField272 {
+ get { return hasField272; }
+ }
+ public int Field272 {
+ get { return field272_; }
+ }
+
+ public const int Field150FieldNumber = 150;
+ private bool hasField150;
+ private int field150_;
+ public bool HasField150 {
+ get { return hasField150; }
+ }
+ public int Field150 {
+ get { return field150_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private int field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public int Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private bool field24_;
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public bool Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private int field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public int Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage Field15 {
+ get { return field15_ ?? global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance; }
+ }
+
+ public const int Field78FieldNumber = 78;
+ private bool hasField78;
+ private bool field78_;
+ public bool HasField78 {
+ get { return hasField78; }
+ }
+ public bool Field78 {
+ get { return field78_; }
+ }
+
+ public const int Field67FieldNumber = 67;
+ private bool hasField67;
+ private int field67_;
+ public bool HasField67 {
+ get { return hasField67; }
+ }
+ public int Field67 {
+ get { return field67_; }
+ }
+
+ public const int Field68FieldNumber = 68;
+ private bool hasField68;
+ private int field68_;
+ public bool HasField68 {
+ get { return hasField68; }
+ }
+ public int Field68 {
+ get { return field68_; }
+ }
+
+ public const int Field128FieldNumber = 128;
+ private bool hasField128;
+ private int field128_;
+ public bool HasField128 {
+ get { return hasField128; }
+ }
+ public int Field128 {
+ get { return field128_; }
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private string field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public string Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private int field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public int Field131 {
+ get { return field131_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasField1) return false;
+ if (!hasField2) return false;
+ if (!hasField3) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage1FieldNames;
+ if (hasField1) {
+ output.WriteString(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteInt32(2, field_names[18], Field2);
+ }
+ if (hasField3) {
+ output.WriteInt32(3, field_names[27], Field3);
+ }
+ if (hasField4) {
+ output.WriteString(4, field_names[29], Field4);
+ }
+ if (field5_.Count > 0) {
+ output.WriteFixed64Array(5, field_names[30], field5_);
+ }
+ if (hasField6) {
+ output.WriteInt32(6, field_names[32], Field6);
+ }
+ if (hasField7) {
+ output.WriteString(7, field_names[36], Field7);
+ }
+ if (hasField9) {
+ output.WriteString(9, field_names[40], Field9);
+ }
+ if (hasField12) {
+ output.WriteBool(12, field_names[6], Field12);
+ }
+ if (hasField13) {
+ output.WriteBool(13, field_names[9], Field13);
+ }
+ if (hasField14) {
+ output.WriteBool(14, field_names[12], Field14);
+ }
+ if (hasField15) {
+ output.WriteMessage(15, field_names[13], Field15);
+ }
+ if (hasField16) {
+ output.WriteInt32(16, field_names[15], Field16);
+ }
+ if (hasField17) {
+ output.WriteBool(17, field_names[16], Field17);
+ }
+ if (hasField18) {
+ output.WriteString(18, field_names[17], Field18);
+ }
+ if (hasField22) {
+ output.WriteInt64(22, field_names[19], Field22);
+ }
+ if (hasField23) {
+ output.WriteInt32(23, field_names[20], Field23);
+ }
+ if (hasField24) {
+ output.WriteBool(24, field_names[21], Field24);
+ }
+ if (hasField25) {
+ output.WriteInt32(25, field_names[22], Field25);
+ }
+ if (hasField29) {
+ output.WriteInt32(29, field_names[26], Field29);
+ }
+ if (hasField30) {
+ output.WriteBool(30, field_names[28], Field30);
+ }
+ if (hasField59) {
+ output.WriteBool(59, field_names[31], Field59);
+ }
+ if (hasField60) {
+ output.WriteInt32(60, field_names[33], Field60);
+ }
+ if (hasField67) {
+ output.WriteInt32(67, field_names[34], Field67);
+ }
+ if (hasField68) {
+ output.WriteInt32(68, field_names[35], Field68);
+ }
+ if (hasField78) {
+ output.WriteBool(78, field_names[37], Field78);
+ }
+ if (hasField80) {
+ output.WriteBool(80, field_names[38], Field80);
+ }
+ if (hasField81) {
+ output.WriteBool(81, field_names[39], Field81);
+ }
+ if (hasField100) {
+ output.WriteInt32(100, field_names[1], Field100);
+ }
+ if (hasField101) {
+ output.WriteInt32(101, field_names[2], Field101);
+ }
+ if (hasField102) {
+ output.WriteString(102, field_names[3], Field102);
+ }
+ if (hasField103) {
+ output.WriteString(103, field_names[4], Field103);
+ }
+ if (hasField104) {
+ output.WriteInt32(104, field_names[5], Field104);
+ }
+ if (hasField128) {
+ output.WriteInt32(128, field_names[7], Field128);
+ }
+ if (hasField129) {
+ output.WriteString(129, field_names[8], Field129);
+ }
+ if (hasField130) {
+ output.WriteInt32(130, field_names[10], Field130);
+ }
+ if (hasField131) {
+ output.WriteInt32(131, field_names[11], Field131);
+ }
+ if (hasField150) {
+ output.WriteInt32(150, field_names[14], Field150);
+ }
+ if (hasField271) {
+ output.WriteInt32(271, field_names[23], Field271);
+ }
+ if (hasField272) {
+ output.WriteInt32(272, field_names[24], Field272);
+ }
+ if (hasField280) {
+ output.WriteInt32(280, field_names[25], Field280);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Field1);
+ }
+ if (hasField9) {
+ size += pb::CodedOutputStream.ComputeStringSize(9, Field9);
+ }
+ if (hasField18) {
+ size += pb::CodedOutputStream.ComputeStringSize(18, Field18);
+ }
+ if (hasField80) {
+ size += pb::CodedOutputStream.ComputeBoolSize(80, Field80);
+ }
+ if (hasField81) {
+ size += pb::CodedOutputStream.ComputeBoolSize(81, Field81);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Field2);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Field3);
+ }
+ if (hasField280) {
+ size += pb::CodedOutputStream.ComputeInt32Size(280, Field280);
+ }
+ if (hasField6) {
+ size += pb::CodedOutputStream.ComputeInt32Size(6, Field6);
+ }
+ if (hasField22) {
+ size += pb::CodedOutputStream.ComputeInt64Size(22, Field22);
+ }
+ if (hasField4) {
+ size += pb::CodedOutputStream.ComputeStringSize(4, Field4);
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * field5_.Count;
+ size += dataSize;
+ size += 1 * field5_.Count;
+ }
+ if (hasField59) {
+ size += pb::CodedOutputStream.ComputeBoolSize(59, Field59);
+ }
+ if (hasField7) {
+ size += pb::CodedOutputStream.ComputeStringSize(7, Field7);
+ }
+ if (hasField16) {
+ size += pb::CodedOutputStream.ComputeInt32Size(16, Field16);
+ }
+ if (hasField130) {
+ size += pb::CodedOutputStream.ComputeInt32Size(130, Field130);
+ }
+ if (hasField12) {
+ size += pb::CodedOutputStream.ComputeBoolSize(12, Field12);
+ }
+ if (hasField17) {
+ size += pb::CodedOutputStream.ComputeBoolSize(17, Field17);
+ }
+ if (hasField13) {
+ size += pb::CodedOutputStream.ComputeBoolSize(13, Field13);
+ }
+ if (hasField14) {
+ size += pb::CodedOutputStream.ComputeBoolSize(14, Field14);
+ }
+ if (hasField104) {
+ size += pb::CodedOutputStream.ComputeInt32Size(104, Field104);
+ }
+ if (hasField100) {
+ size += pb::CodedOutputStream.ComputeInt32Size(100, Field100);
+ }
+ if (hasField101) {
+ size += pb::CodedOutputStream.ComputeInt32Size(101, Field101);
+ }
+ if (hasField102) {
+ size += pb::CodedOutputStream.ComputeStringSize(102, Field102);
+ }
+ if (hasField103) {
+ size += pb::CodedOutputStream.ComputeStringSize(103, Field103);
+ }
+ if (hasField29) {
+ size += pb::CodedOutputStream.ComputeInt32Size(29, Field29);
+ }
+ if (hasField30) {
+ size += pb::CodedOutputStream.ComputeBoolSize(30, Field30);
+ }
+ if (hasField60) {
+ size += pb::CodedOutputStream.ComputeInt32Size(60, Field60);
+ }
+ if (hasField271) {
+ size += pb::CodedOutputStream.ComputeInt32Size(271, Field271);
+ }
+ if (hasField272) {
+ size += pb::CodedOutputStream.ComputeInt32Size(272, Field272);
+ }
+ if (hasField150) {
+ size += pb::CodedOutputStream.ComputeInt32Size(150, Field150);
+ }
+ if (hasField23) {
+ size += pb::CodedOutputStream.ComputeInt32Size(23, Field23);
+ }
+ if (hasField24) {
+ size += pb::CodedOutputStream.ComputeBoolSize(24, Field24);
+ }
+ if (hasField25) {
+ size += pb::CodedOutputStream.ComputeInt32Size(25, Field25);
+ }
+ if (hasField15) {
+ size += pb::CodedOutputStream.ComputeMessageSize(15, Field15);
+ }
+ if (hasField78) {
+ size += pb::CodedOutputStream.ComputeBoolSize(78, Field78);
+ }
+ if (hasField67) {
+ size += pb::CodedOutputStream.ComputeInt32Size(67, Field67);
+ }
+ if (hasField68) {
+ size += pb::CodedOutputStream.ComputeInt32Size(68, Field68);
+ }
+ if (hasField128) {
+ size += pb::CodedOutputStream.ComputeInt32Size(128, Field128);
+ }
+ if (hasField129) {
+ size += pb::CodedOutputStream.ComputeStringSize(129, Field129);
+ }
+ if (hasField131) {
+ size += pb::CodedOutputStream.ComputeInt32Size(131, Field131);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage1 MakeReadOnly() {
+ field5_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage1 result;
+
+ private SpeedMessage1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage1 original = result;
+ result = new SpeedMessage1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage1.Descriptor; }
+ }
+
+ public override SpeedMessage1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage1.DefaultInstance; }
+ }
+
+ public override SpeedMessage1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage1) {
+ return MergeFrom((SpeedMessage1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage1 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SpeedMessage1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField9) {
+ Field9 = other.Field9;
+ }
+ if (other.HasField18) {
+ Field18 = other.Field18;
+ }
+ if (other.HasField80) {
+ Field80 = other.Field80;
+ }
+ if (other.HasField81) {
+ Field81 = other.Field81;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField280) {
+ Field280 = other.Field280;
+ }
+ if (other.HasField6) {
+ Field6 = other.Field6;
+ }
+ if (other.HasField22) {
+ Field22 = other.Field22;
+ }
+ if (other.HasField4) {
+ Field4 = other.Field4;
+ }
+ if (other.field5_.Count != 0) {
+ result.field5_.Add(other.field5_);
+ }
+ if (other.HasField59) {
+ Field59 = other.Field59;
+ }
+ if (other.HasField7) {
+ Field7 = other.Field7;
+ }
+ if (other.HasField16) {
+ Field16 = other.Field16;
+ }
+ if (other.HasField130) {
+ Field130 = other.Field130;
+ }
+ if (other.HasField12) {
+ Field12 = other.Field12;
+ }
+ if (other.HasField17) {
+ Field17 = other.Field17;
+ }
+ if (other.HasField13) {
+ Field13 = other.Field13;
+ }
+ if (other.HasField14) {
+ Field14 = other.Field14;
+ }
+ if (other.HasField104) {
+ Field104 = other.Field104;
+ }
+ if (other.HasField100) {
+ Field100 = other.Field100;
+ }
+ if (other.HasField101) {
+ Field101 = other.Field101;
+ }
+ if (other.HasField102) {
+ Field102 = other.Field102;
+ }
+ if (other.HasField103) {
+ Field103 = other.Field103;
+ }
+ if (other.HasField29) {
+ Field29 = other.Field29;
+ }
+ if (other.HasField30) {
+ Field30 = other.Field30;
+ }
+ if (other.HasField60) {
+ Field60 = other.Field60;
+ }
+ if (other.HasField271) {
+ Field271 = other.Field271;
+ }
+ if (other.HasField272) {
+ Field272 = other.Field272;
+ }
+ if (other.HasField150) {
+ Field150 = other.Field150;
+ }
+ if (other.HasField23) {
+ Field23 = other.Field23;
+ }
+ if (other.HasField24) {
+ Field24 = other.Field24;
+ }
+ if (other.HasField25) {
+ Field25 = other.Field25;
+ }
+ if (other.HasField15) {
+ MergeField15(other.Field15);
+ }
+ if (other.HasField78) {
+ Field78 = other.Field78;
+ }
+ if (other.HasField67) {
+ Field67 = other.Field67;
+ }
+ if (other.HasField68) {
+ Field68 = other.Field68;
+ }
+ if (other.HasField128) {
+ Field128 = other.Field128;
+ }
+ if (other.HasField129) {
+ Field129 = other.Field129;
+ }
+ if (other.HasField131) {
+ Field131 = other.Field131;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasField1 = input.ReadString(ref result.field1_);
+ break;
+ }
+ case 16: {
+ result.hasField2 = input.ReadInt32(ref result.field2_);
+ break;
+ }
+ case 24: {
+ result.hasField3 = input.ReadInt32(ref result.field3_);
+ break;
+ }
+ case 34: {
+ result.hasField4 = input.ReadString(ref result.field4_);
+ break;
+ }
+ case 42:
+ case 41: {
+ input.ReadFixed64Array(tag, field_name, result.field5_);
+ break;
+ }
+ case 48: {
+ result.hasField6 = input.ReadInt32(ref result.field6_);
+ break;
+ }
+ case 58: {
+ result.hasField7 = input.ReadString(ref result.field7_);
+ break;
+ }
+ case 74: {
+ result.hasField9 = input.ReadString(ref result.field9_);
+ break;
+ }
+ case 96: {
+ result.hasField12 = input.ReadBool(ref result.field12_);
+ break;
+ }
+ case 104: {
+ result.hasField13 = input.ReadBool(ref result.field13_);
+ break;
+ }
+ case 112: {
+ result.hasField14 = input.ReadBool(ref result.field14_);
+ break;
+ }
+ case 122: {
+ global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.CreateBuilder();
+ if (result.hasField15) {
+ subBuilder.MergeFrom(Field15);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field15 = subBuilder.BuildPartial();
+ break;
+ }
+ case 128: {
+ result.hasField16 = input.ReadInt32(ref result.field16_);
+ break;
+ }
+ case 136: {
+ result.hasField17 = input.ReadBool(ref result.field17_);
+ break;
+ }
+ case 146: {
+ result.hasField18 = input.ReadString(ref result.field18_);
+ break;
+ }
+ case 176: {
+ result.hasField22 = input.ReadInt64(ref result.field22_);
+ break;
+ }
+ case 184: {
+ result.hasField23 = input.ReadInt32(ref result.field23_);
+ break;
+ }
+ case 192: {
+ result.hasField24 = input.ReadBool(ref result.field24_);
+ break;
+ }
+ case 200: {
+ result.hasField25 = input.ReadInt32(ref result.field25_);
+ break;
+ }
+ case 232: {
+ result.hasField29 = input.ReadInt32(ref result.field29_);
+ break;
+ }
+ case 240: {
+ result.hasField30 = input.ReadBool(ref result.field30_);
+ break;
+ }
+ case 472: {
+ result.hasField59 = input.ReadBool(ref result.field59_);
+ break;
+ }
+ case 480: {
+ result.hasField60 = input.ReadInt32(ref result.field60_);
+ break;
+ }
+ case 536: {
+ result.hasField67 = input.ReadInt32(ref result.field67_);
+ break;
+ }
+ case 544: {
+ result.hasField68 = input.ReadInt32(ref result.field68_);
+ break;
+ }
+ case 624: {
+ result.hasField78 = input.ReadBool(ref result.field78_);
+ break;
+ }
+ case 640: {
+ result.hasField80 = input.ReadBool(ref result.field80_);
+ break;
+ }
+ case 648: {
+ result.hasField81 = input.ReadBool(ref result.field81_);
+ break;
+ }
+ case 800: {
+ result.hasField100 = input.ReadInt32(ref result.field100_);
+ break;
+ }
+ case 808: {
+ result.hasField101 = input.ReadInt32(ref result.field101_);
+ break;
+ }
+ case 818: {
+ result.hasField102 = input.ReadString(ref result.field102_);
+ break;
+ }
+ case 826: {
+ result.hasField103 = input.ReadString(ref result.field103_);
+ break;
+ }
+ case 832: {
+ result.hasField104 = input.ReadInt32(ref result.field104_);
+ break;
+ }
+ case 1024: {
+ result.hasField128 = input.ReadInt32(ref result.field128_);
+ break;
+ }
+ case 1034: {
+ result.hasField129 = input.ReadString(ref result.field129_);
+ break;
+ }
+ case 1040: {
+ result.hasField130 = input.ReadInt32(ref result.field130_);
+ break;
+ }
+ case 1048: {
+ result.hasField131 = input.ReadInt32(ref result.field131_);
+ break;
+ }
+ case 1200: {
+ result.hasField150 = input.ReadInt32(ref result.field150_);
+ break;
+ }
+ case 2168: {
+ result.hasField271 = input.ReadInt32(ref result.field271_);
+ break;
+ }
+ case 2176: {
+ result.hasField272 = input.ReadInt32(ref result.field272_);
+ break;
+ }
+ case 2240: {
+ result.hasField280 = input.ReadInt32(ref result.field280_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public string Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = "";
+ return this;
+ }
+
+ public bool HasField18 {
+ get { return result.hasField18; }
+ }
+ public string Field18 {
+ get { return result.Field18; }
+ set { SetField18(value); }
+ }
+ public Builder SetField18(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField18 = true;
+ result.field18_ = value;
+ return this;
+ }
+ public Builder ClearField18() {
+ PrepareBuilder();
+ result.hasField18 = false;
+ result.field18_ = "";
+ return this;
+ }
+
+ public bool HasField80 {
+ get { return result.hasField80; }
+ }
+ public bool Field80 {
+ get { return result.Field80; }
+ set { SetField80(value); }
+ }
+ public Builder SetField80(bool value) {
+ PrepareBuilder();
+ result.hasField80 = true;
+ result.field80_ = value;
+ return this;
+ }
+ public Builder ClearField80() {
+ PrepareBuilder();
+ result.hasField80 = false;
+ result.field80_ = false;
+ return this;
+ }
+
+ public bool HasField81 {
+ get { return result.hasField81; }
+ }
+ public bool Field81 {
+ get { return result.Field81; }
+ set { SetField81(value); }
+ }
+ public Builder SetField81(bool value) {
+ PrepareBuilder();
+ result.hasField81 = true;
+ result.field81_ = value;
+ return this;
+ }
+ public Builder ClearField81() {
+ PrepareBuilder();
+ result.hasField81 = false;
+ result.field81_ = true;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField280 {
+ get { return result.hasField280; }
+ }
+ public int Field280 {
+ get { return result.Field280; }
+ set { SetField280(value); }
+ }
+ public Builder SetField280(int value) {
+ PrepareBuilder();
+ result.hasField280 = true;
+ result.field280_ = value;
+ return this;
+ }
+ public Builder ClearField280() {
+ PrepareBuilder();
+ result.hasField280 = false;
+ result.field280_ = 0;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public int Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(int value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = 0;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public long Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(long value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public string Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = "";
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> Field5List {
+ get { return PrepareBuilder().field5_; }
+ }
+ public int Field5Count {
+ get { return result.Field5Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetField5(int index) {
+ return result.GetField5(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField5(int index, ulong value) {
+ PrepareBuilder();
+ result.field5_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddField5(ulong value) {
+ PrepareBuilder();
+ result.field5_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeField5(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.field5_.Add(values);
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.field5_.Clear();
+ return this;
+ }
+
+ public bool HasField59 {
+ get { return result.hasField59; }
+ }
+ public bool Field59 {
+ get { return result.Field59; }
+ set { SetField59(value); }
+ }
+ public Builder SetField59(bool value) {
+ PrepareBuilder();
+ result.hasField59 = true;
+ result.field59_ = value;
+ return this;
+ }
+ public Builder ClearField59() {
+ PrepareBuilder();
+ result.hasField59 = false;
+ result.field59_ = false;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public string Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField130 {
+ get { return result.hasField130; }
+ }
+ public int Field130 {
+ get { return result.Field130; }
+ set { SetField130(value); }
+ }
+ public Builder SetField130(int value) {
+ PrepareBuilder();
+ result.hasField130 = true;
+ result.field130_ = value;
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.hasField130 = false;
+ result.field130_ = 0;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField17 {
+ get { return result.hasField17; }
+ }
+ public bool Field17 {
+ get { return result.Field17; }
+ set { SetField17(value); }
+ }
+ public Builder SetField17(bool value) {
+ PrepareBuilder();
+ result.hasField17 = true;
+ result.field17_ = value;
+ return this;
+ }
+ public Builder ClearField17() {
+ PrepareBuilder();
+ result.hasField17 = false;
+ result.field17_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public bool Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(bool value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = true;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public bool Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(bool value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = true;
+ return this;
+ }
+
+ public bool HasField104 {
+ get { return result.hasField104; }
+ }
+ public int Field104 {
+ get { return result.Field104; }
+ set { SetField104(value); }
+ }
+ public Builder SetField104(int value) {
+ PrepareBuilder();
+ result.hasField104 = true;
+ result.field104_ = value;
+ return this;
+ }
+ public Builder ClearField104() {
+ PrepareBuilder();
+ result.hasField104 = false;
+ result.field104_ = 0;
+ return this;
+ }
+
+ public bool HasField100 {
+ get { return result.hasField100; }
+ }
+ public int Field100 {
+ get { return result.Field100; }
+ set { SetField100(value); }
+ }
+ public Builder SetField100(int value) {
+ PrepareBuilder();
+ result.hasField100 = true;
+ result.field100_ = value;
+ return this;
+ }
+ public Builder ClearField100() {
+ PrepareBuilder();
+ result.hasField100 = false;
+ result.field100_ = 0;
+ return this;
+ }
+
+ public bool HasField101 {
+ get { return result.hasField101; }
+ }
+ public int Field101 {
+ get { return result.Field101; }
+ set { SetField101(value); }
+ }
+ public Builder SetField101(int value) {
+ PrepareBuilder();
+ result.hasField101 = true;
+ result.field101_ = value;
+ return this;
+ }
+ public Builder ClearField101() {
+ PrepareBuilder();
+ result.hasField101 = false;
+ result.field101_ = 0;
+ return this;
+ }
+
+ public bool HasField102 {
+ get { return result.hasField102; }
+ }
+ public string Field102 {
+ get { return result.Field102; }
+ set { SetField102(value); }
+ }
+ public Builder SetField102(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField102 = true;
+ result.field102_ = value;
+ return this;
+ }
+ public Builder ClearField102() {
+ PrepareBuilder();
+ result.hasField102 = false;
+ result.field102_ = "";
+ return this;
+ }
+
+ public bool HasField103 {
+ get { return result.hasField103; }
+ }
+ public string Field103 {
+ get { return result.Field103; }
+ set { SetField103(value); }
+ }
+ public Builder SetField103(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField103 = true;
+ result.field103_ = value;
+ return this;
+ }
+ public Builder ClearField103() {
+ PrepareBuilder();
+ result.hasField103 = false;
+ result.field103_ = "";
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public int Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(int value) {
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = 0;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public bool Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(bool value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = false;
+ return this;
+ }
+
+ public bool HasField60 {
+ get { return result.hasField60; }
+ }
+ public int Field60 {
+ get { return result.Field60; }
+ set { SetField60(value); }
+ }
+ public Builder SetField60(int value) {
+ PrepareBuilder();
+ result.hasField60 = true;
+ result.field60_ = value;
+ return this;
+ }
+ public Builder ClearField60() {
+ PrepareBuilder();
+ result.hasField60 = false;
+ result.field60_ = -1;
+ return this;
+ }
+
+ public bool HasField271 {
+ get { return result.hasField271; }
+ }
+ public int Field271 {
+ get { return result.Field271; }
+ set { SetField271(value); }
+ }
+ public Builder SetField271(int value) {
+ PrepareBuilder();
+ result.hasField271 = true;
+ result.field271_ = value;
+ return this;
+ }
+ public Builder ClearField271() {
+ PrepareBuilder();
+ result.hasField271 = false;
+ result.field271_ = -1;
+ return this;
+ }
+
+ public bool HasField272 {
+ get { return result.hasField272; }
+ }
+ public int Field272 {
+ get { return result.Field272; }
+ set { SetField272(value); }
+ }
+ public Builder SetField272(int value) {
+ PrepareBuilder();
+ result.hasField272 = true;
+ result.field272_ = value;
+ return this;
+ }
+ public Builder ClearField272() {
+ PrepareBuilder();
+ result.hasField272 = false;
+ result.field272_ = -1;
+ return this;
+ }
+
+ public bool HasField150 {
+ get { return result.hasField150; }
+ }
+ public int Field150 {
+ get { return result.Field150; }
+ set { SetField150(value); }
+ }
+ public Builder SetField150(int value) {
+ PrepareBuilder();
+ result.hasField150 = true;
+ result.field150_ = value;
+ return this;
+ }
+ public Builder ClearField150() {
+ PrepareBuilder();
+ result.hasField150 = false;
+ result.field150_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public int Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(int value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public bool Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(bool value) {
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = false;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public int Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(int value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField15(global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField15 &&
+ result.field15_ != global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance) {
+ result.field15_ = global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.CreateBuilder(result.field15_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field15_ = value;
+ }
+ result.hasField15 = true;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = null;
+ return this;
+ }
+
+ public bool HasField78 {
+ get { return result.hasField78; }
+ }
+ public bool Field78 {
+ get { return result.Field78; }
+ set { SetField78(value); }
+ }
+ public Builder SetField78(bool value) {
+ PrepareBuilder();
+ result.hasField78 = true;
+ result.field78_ = value;
+ return this;
+ }
+ public Builder ClearField78() {
+ PrepareBuilder();
+ result.hasField78 = false;
+ result.field78_ = false;
+ return this;
+ }
+
+ public bool HasField67 {
+ get { return result.hasField67; }
+ }
+ public int Field67 {
+ get { return result.Field67; }
+ set { SetField67(value); }
+ }
+ public Builder SetField67(int value) {
+ PrepareBuilder();
+ result.hasField67 = true;
+ result.field67_ = value;
+ return this;
+ }
+ public Builder ClearField67() {
+ PrepareBuilder();
+ result.hasField67 = false;
+ result.field67_ = 0;
+ return this;
+ }
+
+ public bool HasField68 {
+ get { return result.hasField68; }
+ }
+ public int Field68 {
+ get { return result.Field68; }
+ set { SetField68(value); }
+ }
+ public Builder SetField68(int value) {
+ PrepareBuilder();
+ result.hasField68 = true;
+ result.field68_ = value;
+ return this;
+ }
+ public Builder ClearField68() {
+ PrepareBuilder();
+ result.hasField68 = false;
+ result.field68_ = 0;
+ return this;
+ }
+
+ public bool HasField128 {
+ get { return result.hasField128; }
+ }
+ public int Field128 {
+ get { return result.Field128; }
+ set { SetField128(value); }
+ }
+ public Builder SetField128(int value) {
+ PrepareBuilder();
+ result.hasField128 = true;
+ result.field128_ = value;
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.hasField128 = false;
+ result.field128_ = 0;
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public string Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public int Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(int value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0;
+ return this;
+ }
+ }
+ static SpeedMessage1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage1SubMessage : pb::GeneratedMessage<SpeedMessage1SubMessage, SpeedMessage1SubMessage.Builder> {
+ private SpeedMessage1SubMessage() { }
+ private static readonly SpeedMessage1SubMessage defaultInstance = new SpeedMessage1SubMessage().MakeReadOnly();
+ private static readonly string[] _speedMessage1SubMessageFieldNames = new string[] { "field1", "field12", "field13", "field14", "field15", "field16", "field19", "field2", "field20", "field203", "field204", "field205", "field206", "field207", "field21", "field22", "field23", "field28", "field3", "field300" };
+ private static readonly uint[] _speedMessage1SubMessageFieldTags = new uint[] { 8, 96, 104, 112, 122, 128, 152, 16, 160, 1629, 1632, 1642, 1648, 1656, 169, 176, 184, 224, 24, 2400 };
+ public static SpeedMessage1SubMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage1SubMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage1SubMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SpeedMessage1SubMessage, SpeedMessage1SubMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage1SubMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private int field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public int Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private string field15_ = "";
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public string Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private long field13_;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public long Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private long field14_;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public long Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field19FieldNumber = 19;
+ private bool hasField19;
+ private int field19_ = 2;
+ public bool HasField19 {
+ get { return hasField19; }
+ }
+ public int Field19 {
+ get { return field19_; }
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private bool field20_ = true;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public bool Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private bool field28_ = true;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public bool Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private ulong field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private int field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public int Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private bool field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public bool Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public const int Field203FieldNumber = 203;
+ private bool hasField203;
+ private uint field203_;
+ public bool HasField203 {
+ get { return hasField203; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Field203 {
+ get { return field203_; }
+ }
+
+ public const int Field204FieldNumber = 204;
+ private bool hasField204;
+ private int field204_;
+ public bool HasField204 {
+ get { return hasField204; }
+ }
+ public int Field204 {
+ get { return field204_; }
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private string field205_ = "";
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public string Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field207FieldNumber = 207;
+ private bool hasField207;
+ private ulong field207_;
+ public bool HasField207 {
+ get { return hasField207; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field207 {
+ get { return field207_; }
+ }
+
+ public const int Field300FieldNumber = 300;
+ private bool hasField300;
+ private ulong field300_;
+ public bool HasField300 {
+ get { return hasField300; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field300 {
+ get { return field300_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage1SubMessageFieldNames;
+ if (hasField1) {
+ output.WriteInt32(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteInt32(2, field_names[7], Field2);
+ }
+ if (hasField3) {
+ output.WriteInt32(3, field_names[18], Field3);
+ }
+ if (hasField12) {
+ output.WriteBool(12, field_names[1], Field12);
+ }
+ if (hasField13) {
+ output.WriteInt64(13, field_names[2], Field13);
+ }
+ if (hasField14) {
+ output.WriteInt64(14, field_names[3], Field14);
+ }
+ if (hasField15) {
+ output.WriteString(15, field_names[4], Field15);
+ }
+ if (hasField16) {
+ output.WriteInt32(16, field_names[5], Field16);
+ }
+ if (hasField19) {
+ output.WriteInt32(19, field_names[6], Field19);
+ }
+ if (hasField20) {
+ output.WriteBool(20, field_names[8], Field20);
+ }
+ if (hasField21) {
+ output.WriteFixed64(21, field_names[14], Field21);
+ }
+ if (hasField22) {
+ output.WriteInt32(22, field_names[15], Field22);
+ }
+ if (hasField23) {
+ output.WriteBool(23, field_names[16], Field23);
+ }
+ if (hasField28) {
+ output.WriteBool(28, field_names[17], Field28);
+ }
+ if (hasField203) {
+ output.WriteFixed32(203, field_names[9], Field203);
+ }
+ if (hasField204) {
+ output.WriteInt32(204, field_names[10], Field204);
+ }
+ if (hasField205) {
+ output.WriteString(205, field_names[11], Field205);
+ }
+ if (hasField206) {
+ output.WriteBool(206, field_names[12], Field206);
+ }
+ if (hasField207) {
+ output.WriteUInt64(207, field_names[13], Field207);
+ }
+ if (hasField300) {
+ output.WriteUInt64(300, field_names[19], Field300);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Field1);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Field2);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Field3);
+ }
+ if (hasField15) {
+ size += pb::CodedOutputStream.ComputeStringSize(15, Field15);
+ }
+ if (hasField12) {
+ size += pb::CodedOutputStream.ComputeBoolSize(12, Field12);
+ }
+ if (hasField13) {
+ size += pb::CodedOutputStream.ComputeInt64Size(13, Field13);
+ }
+ if (hasField14) {
+ size += pb::CodedOutputStream.ComputeInt64Size(14, Field14);
+ }
+ if (hasField16) {
+ size += pb::CodedOutputStream.ComputeInt32Size(16, Field16);
+ }
+ if (hasField19) {
+ size += pb::CodedOutputStream.ComputeInt32Size(19, Field19);
+ }
+ if (hasField20) {
+ size += pb::CodedOutputStream.ComputeBoolSize(20, Field20);
+ }
+ if (hasField28) {
+ size += pb::CodedOutputStream.ComputeBoolSize(28, Field28);
+ }
+ if (hasField21) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(21, Field21);
+ }
+ if (hasField22) {
+ size += pb::CodedOutputStream.ComputeInt32Size(22, Field22);
+ }
+ if (hasField23) {
+ size += pb::CodedOutputStream.ComputeBoolSize(23, Field23);
+ }
+ if (hasField206) {
+ size += pb::CodedOutputStream.ComputeBoolSize(206, Field206);
+ }
+ if (hasField203) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(203, Field203);
+ }
+ if (hasField204) {
+ size += pb::CodedOutputStream.ComputeInt32Size(204, Field204);
+ }
+ if (hasField205) {
+ size += pb::CodedOutputStream.ComputeStringSize(205, Field205);
+ }
+ if (hasField207) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(207, Field207);
+ }
+ if (hasField300) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(300, Field300);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage1SubMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage1SubMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage1SubMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage1SubMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage1SubMessage result;
+
+ private SpeedMessage1SubMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage1SubMessage original = result;
+ result = new SpeedMessage1SubMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage1SubMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Descriptor; }
+ }
+
+ public override SpeedMessage1SubMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance; }
+ }
+
+ public override SpeedMessage1SubMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage1SubMessage) {
+ return MergeFrom((SpeedMessage1SubMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage1SubMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField15) {
+ Field15 = other.Field15;
+ }
+ if (other.HasField12) {
+ Field12 = other.Field12;
+ }
+ if (other.HasField13) {
+ Field13 = other.Field13;
+ }
+ if (other.HasField14) {
+ Field14 = other.Field14;
+ }
+ if (other.HasField16) {
+ Field16 = other.Field16;
+ }
+ if (other.HasField19) {
+ Field19 = other.Field19;
+ }
+ if (other.HasField20) {
+ Field20 = other.Field20;
+ }
+ if (other.HasField28) {
+ Field28 = other.Field28;
+ }
+ if (other.HasField21) {
+ Field21 = other.Field21;
+ }
+ if (other.HasField22) {
+ Field22 = other.Field22;
+ }
+ if (other.HasField23) {
+ Field23 = other.Field23;
+ }
+ if (other.HasField206) {
+ Field206 = other.Field206;
+ }
+ if (other.HasField203) {
+ Field203 = other.Field203;
+ }
+ if (other.HasField204) {
+ Field204 = other.Field204;
+ }
+ if (other.HasField205) {
+ Field205 = other.Field205;
+ }
+ if (other.HasField207) {
+ Field207 = other.Field207;
+ }
+ if (other.HasField300) {
+ Field300 = other.Field300;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage1SubMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage1SubMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasField1 = input.ReadInt32(ref result.field1_);
+ break;
+ }
+ case 16: {
+ result.hasField2 = input.ReadInt32(ref result.field2_);
+ break;
+ }
+ case 24: {
+ result.hasField3 = input.ReadInt32(ref result.field3_);
+ break;
+ }
+ case 96: {
+ result.hasField12 = input.ReadBool(ref result.field12_);
+ break;
+ }
+ case 104: {
+ result.hasField13 = input.ReadInt64(ref result.field13_);
+ break;
+ }
+ case 112: {
+ result.hasField14 = input.ReadInt64(ref result.field14_);
+ break;
+ }
+ case 122: {
+ result.hasField15 = input.ReadString(ref result.field15_);
+ break;
+ }
+ case 128: {
+ result.hasField16 = input.ReadInt32(ref result.field16_);
+ break;
+ }
+ case 152: {
+ result.hasField19 = input.ReadInt32(ref result.field19_);
+ break;
+ }
+ case 160: {
+ result.hasField20 = input.ReadBool(ref result.field20_);
+ break;
+ }
+ case 169: {
+ result.hasField21 = input.ReadFixed64(ref result.field21_);
+ break;
+ }
+ case 176: {
+ result.hasField22 = input.ReadInt32(ref result.field22_);
+ break;
+ }
+ case 184: {
+ result.hasField23 = input.ReadBool(ref result.field23_);
+ break;
+ }
+ case 224: {
+ result.hasField28 = input.ReadBool(ref result.field28_);
+ break;
+ }
+ case 1629: {
+ result.hasField203 = input.ReadFixed32(ref result.field203_);
+ break;
+ }
+ case 1632: {
+ result.hasField204 = input.ReadInt32(ref result.field204_);
+ break;
+ }
+ case 1642: {
+ result.hasField205 = input.ReadString(ref result.field205_);
+ break;
+ }
+ case 1648: {
+ result.hasField206 = input.ReadBool(ref result.field206_);
+ break;
+ }
+ case 1656: {
+ result.hasField207 = input.ReadUInt64(ref result.field207_);
+ break;
+ }
+ case 2400: {
+ result.hasField300 = input.ReadUInt64(ref result.field300_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public int Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(int value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public string Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = "";
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public long Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(long value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = 0L;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public long Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(long value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = 0L;
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField19 {
+ get { return result.hasField19; }
+ }
+ public int Field19 {
+ get { return result.Field19; }
+ set { SetField19(value); }
+ }
+ public Builder SetField19(int value) {
+ PrepareBuilder();
+ result.hasField19 = true;
+ result.field19_ = value;
+ return this;
+ }
+ public Builder ClearField19() {
+ PrepareBuilder();
+ result.hasField19 = false;
+ result.field19_ = 2;
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public bool Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(bool value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = true;
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public bool Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(bool value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = true;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField21(ulong value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0UL;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public int Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(int value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public bool Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(bool value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+
+ public bool HasField203 {
+ get { return result.hasField203; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Field203 {
+ get { return result.Field203; }
+ set { SetField203(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField203(uint value) {
+ PrepareBuilder();
+ result.hasField203 = true;
+ result.field203_ = value;
+ return this;
+ }
+ public Builder ClearField203() {
+ PrepareBuilder();
+ result.hasField203 = false;
+ result.field203_ = 0;
+ return this;
+ }
+
+ public bool HasField204 {
+ get { return result.hasField204; }
+ }
+ public int Field204 {
+ get { return result.Field204; }
+ set { SetField204(value); }
+ }
+ public Builder SetField204(int value) {
+ PrepareBuilder();
+ result.hasField204 = true;
+ result.field204_ = value;
+ return this;
+ }
+ public Builder ClearField204() {
+ PrepareBuilder();
+ result.hasField204 = false;
+ result.field204_ = 0;
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public string Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = "";
+ return this;
+ }
+
+ public bool HasField207 {
+ get { return result.hasField207; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field207 {
+ get { return result.Field207; }
+ set { SetField207(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField207(ulong value) {
+ PrepareBuilder();
+ result.hasField207 = true;
+ result.field207_ = value;
+ return this;
+ }
+ public Builder ClearField207() {
+ PrepareBuilder();
+ result.hasField207 = false;
+ result.field207_ = 0UL;
+ return this;
+ }
+
+ public bool HasField300 {
+ get { return result.hasField300; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field300 {
+ get { return result.Field300; }
+ set { SetField300(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField300(ulong value) {
+ PrepareBuilder();
+ result.hasField300 = true;
+ result.field300_ = value;
+ return this;
+ }
+ public Builder ClearField300() {
+ PrepareBuilder();
+ result.hasField300 = false;
+ result.field300_ = 0UL;
+ return this;
+ }
+ }
+ static SpeedMessage1SubMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage2 : pb::GeneratedMessage<SpeedMessage2, SpeedMessage2.Builder> {
+ private SpeedMessage2() { }
+ private static readonly SpeedMessage2 defaultInstance = new SpeedMessage2().MakeReadOnly();
+ private static readonly string[] _speedMessage2FieldNames = new string[] { "field1", "field109", "field127", "field128", "field129", "field130", "field131", "field2", "field205", "field206", "field21", "field210", "field211", "field212", "field213", "field216", "field217", "field218", "field220", "field221", "field222", "field25", "field3", "field30", "field4", "field6", "field63", "field71", "field75", "group1" };
+ private static readonly uint[] _speedMessage2FieldTags = new uint[] { 10, 872, 1018, 1026, 1032, 1040, 1048, 18, 1640, 1648, 168, 1680, 1688, 1696, 1704, 1728, 1736, 1744, 1760, 1768, 1781, 205, 24, 240, 32, 50, 504, 568, 600, 83 };
+ public static SpeedMessage2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SpeedMessage2, SpeedMessage2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
+ private Group1() { }
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
+ private static readonly string[] _group1FieldNames = new string[] { "field11", "field12", "field13", "field14", "field15", "field16", "field20", "field22", "field24", "field26", "field27", "field28", "field29", "field31", "field5", "field73" };
+ private static readonly uint[] _group1FieldTags = new uint[] { 93, 98, 106, 114, 120, 130, 160, 178, 194, 213, 218, 224, 234, 250, 40, 584 };
+ public static Group1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2_Group1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Group1, Group1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2_Group1__FieldAccessorTable; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private float field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public float Field11 {
+ get { return field11_; }
+ }
+
+ public const int Field26FieldNumber = 26;
+ private bool hasField26;
+ private float field26_;
+ public bool HasField26 {
+ get { return hasField26; }
+ }
+ public float Field26 {
+ get { return field26_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private string field12_ = "";
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public string Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private string field13_ = "";
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public string Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private pbc::PopsicleList<string> field14_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field14List {
+ get { return pbc::Lists.AsReadOnly(field14_); }
+ }
+ public int Field14Count {
+ get { return field14_.Count; }
+ }
+ public string GetField14(int index) {
+ return field14_[index];
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private ulong field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private int field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public int Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field27FieldNumber = 27;
+ private bool hasField27;
+ private string field27_ = "";
+ public bool HasField27 {
+ get { return hasField27; }
+ }
+ public string Field27 {
+ get { return field27_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private int field28_;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public int Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private string field29_ = "";
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public string Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private string field16_ = "";
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public string Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private pbc::PopsicleList<string> field22_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field22List {
+ get { return pbc::Lists.AsReadOnly(field22_); }
+ }
+ public int Field22Count {
+ get { return field22_.Count; }
+ }
+ public string GetField22(int index) {
+ return field22_[index];
+ }
+
+ public const int Field73FieldNumber = 73;
+ private pbc::PopsicleList<int> field73_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> Field73List {
+ get { return pbc::Lists.AsReadOnly(field73_); }
+ }
+ public int Field73Count {
+ get { return field73_.Count; }
+ }
+ public int GetField73(int index) {
+ return field73_[index];
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private int field20_;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public int Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private string field24_ = "";
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public string Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field31FieldNumber = 31;
+ private bool hasField31;
+ private global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage field31_;
+ public bool HasField31 {
+ get { return hasField31; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage Field31 {
+ get { return field31_ ?? global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasField11) return false;
+ if (!hasField15) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group1FieldNames;
+ if (hasField5) {
+ output.WriteInt32(5, field_names[14], Field5);
+ }
+ if (hasField11) {
+ output.WriteFloat(11, field_names[0], Field11);
+ }
+ if (hasField12) {
+ output.WriteString(12, field_names[1], Field12);
+ }
+ if (hasField13) {
+ output.WriteString(13, field_names[2], Field13);
+ }
+ if (field14_.Count > 0) {
+ output.WriteStringArray(14, field_names[3], field14_);
+ }
+ if (hasField15) {
+ output.WriteUInt64(15, field_names[4], Field15);
+ }
+ if (hasField16) {
+ output.WriteString(16, field_names[5], Field16);
+ }
+ if (hasField20) {
+ output.WriteInt32(20, field_names[6], Field20);
+ }
+ if (field22_.Count > 0) {
+ output.WriteStringArray(22, field_names[7], field22_);
+ }
+ if (hasField24) {
+ output.WriteString(24, field_names[8], Field24);
+ }
+ if (hasField26) {
+ output.WriteFloat(26, field_names[9], Field26);
+ }
+ if (hasField27) {
+ output.WriteString(27, field_names[10], Field27);
+ }
+ if (hasField28) {
+ output.WriteInt32(28, field_names[11], Field28);
+ }
+ if (hasField29) {
+ output.WriteString(29, field_names[12], Field29);
+ }
+ if (hasField31) {
+ output.WriteMessage(31, field_names[13], Field31);
+ }
+ if (field73_.Count > 0) {
+ output.WriteInt32Array(73, field_names[15], field73_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField11) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, Field11);
+ }
+ if (hasField26) {
+ size += pb::CodedOutputStream.ComputeFloatSize(26, Field26);
+ }
+ if (hasField12) {
+ size += pb::CodedOutputStream.ComputeStringSize(12, Field12);
+ }
+ if (hasField13) {
+ size += pb::CodedOutputStream.ComputeStringSize(13, Field13);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field14List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * field14_.Count;
+ }
+ if (hasField15) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(15, Field15);
+ }
+ if (hasField5) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, Field5);
+ }
+ if (hasField27) {
+ size += pb::CodedOutputStream.ComputeStringSize(27, Field27);
+ }
+ if (hasField28) {
+ size += pb::CodedOutputStream.ComputeInt32Size(28, Field28);
+ }
+ if (hasField29) {
+ size += pb::CodedOutputStream.ComputeStringSize(29, Field29);
+ }
+ if (hasField16) {
+ size += pb::CodedOutputStream.ComputeStringSize(16, Field16);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field22List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field22_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in Field73List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field73_.Count;
+ }
+ if (hasField20) {
+ size += pb::CodedOutputStream.ComputeInt32Size(20, Field20);
+ }
+ if (hasField24) {
+ size += pb::CodedOutputStream.ComputeStringSize(24, Field24);
+ }
+ if (hasField31) {
+ size += pb::CodedOutputStream.ComputeMessageSize(31, Field31);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Group1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group1 MakeReadOnly() {
+ field14_.MakeReadOnly();
+ field22_.MakeReadOnly();
+ field73_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Group1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group1 result;
+
+ private Group1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group1 original = result;
+ result = new Group1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.Descriptor; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.DefaultInstance; }
+ }
+
+ public override Group1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Group1) {
+ return MergeFrom((Group1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group1 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField11) {
+ Field11 = other.Field11;
+ }
+ if (other.HasField26) {
+ Field26 = other.Field26;
+ }
+ if (other.HasField12) {
+ Field12 = other.Field12;
+ }
+ if (other.HasField13) {
+ Field13 = other.Field13;
+ }
+ if (other.field14_.Count != 0) {
+ result.field14_.Add(other.field14_);
+ }
+ if (other.HasField15) {
+ Field15 = other.Field15;
+ }
+ if (other.HasField5) {
+ Field5 = other.Field5;
+ }
+ if (other.HasField27) {
+ Field27 = other.Field27;
+ }
+ if (other.HasField28) {
+ Field28 = other.Field28;
+ }
+ if (other.HasField29) {
+ Field29 = other.Field29;
+ }
+ if (other.HasField16) {
+ Field16 = other.Field16;
+ }
+ if (other.field22_.Count != 0) {
+ result.field22_.Add(other.field22_);
+ }
+ if (other.field73_.Count != 0) {
+ result.field73_.Add(other.field73_);
+ }
+ if (other.HasField20) {
+ Field20 = other.Field20;
+ }
+ if (other.HasField24) {
+ Field24 = other.Field24;
+ }
+ if (other.HasField31) {
+ MergeField31(other.Field31);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 40: {
+ result.hasField5 = input.ReadInt32(ref result.field5_);
+ break;
+ }
+ case 93: {
+ result.hasField11 = input.ReadFloat(ref result.field11_);
+ break;
+ }
+ case 98: {
+ result.hasField12 = input.ReadString(ref result.field12_);
+ break;
+ }
+ case 106: {
+ result.hasField13 = input.ReadString(ref result.field13_);
+ break;
+ }
+ case 114: {
+ input.ReadStringArray(tag, field_name, result.field14_);
+ break;
+ }
+ case 120: {
+ result.hasField15 = input.ReadUInt64(ref result.field15_);
+ break;
+ }
+ case 130: {
+ result.hasField16 = input.ReadString(ref result.field16_);
+ break;
+ }
+ case 160: {
+ result.hasField20 = input.ReadInt32(ref result.field20_);
+ break;
+ }
+ case 178: {
+ input.ReadStringArray(tag, field_name, result.field22_);
+ break;
+ }
+ case 194: {
+ result.hasField24 = input.ReadString(ref result.field24_);
+ break;
+ }
+ case 213: {
+ result.hasField26 = input.ReadFloat(ref result.field26_);
+ break;
+ }
+ case 218: {
+ result.hasField27 = input.ReadString(ref result.field27_);
+ break;
+ }
+ case 224: {
+ result.hasField28 = input.ReadInt32(ref result.field28_);
+ break;
+ }
+ case 234: {
+ result.hasField29 = input.ReadString(ref result.field29_);
+ break;
+ }
+ case 250: {
+ global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.CreateBuilder();
+ if (result.hasField31) {
+ subBuilder.MergeFrom(Field31);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field31 = subBuilder.BuildPartial();
+ break;
+ }
+ case 586:
+ case 584: {
+ input.ReadInt32Array(tag, field_name, result.field73_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public float Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(float value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0F;
+ return this;
+ }
+
+ public bool HasField26 {
+ get { return result.hasField26; }
+ }
+ public float Field26 {
+ get { return result.Field26; }
+ set { SetField26(value); }
+ }
+ public Builder SetField26(float value) {
+ PrepareBuilder();
+ result.hasField26 = true;
+ result.field26_ = value;
+ return this;
+ }
+ public Builder ClearField26() {
+ PrepareBuilder();
+ result.hasField26 = false;
+ result.field26_ = 0F;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public string Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = "";
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public string Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field14List {
+ get { return PrepareBuilder().field14_; }
+ }
+ public int Field14Count {
+ get { return result.Field14Count; }
+ }
+ public string GetField14(int index) {
+ return result.GetField14(index);
+ }
+ public Builder SetField14(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_[index] = value;
+ return this;
+ }
+ public Builder AddField14(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField14(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field14_.Add(values);
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.field14_.Clear();
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField15(ulong value) {
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = 0UL;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public int Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(int value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = 0;
+ return this;
+ }
+
+ public bool HasField27 {
+ get { return result.hasField27; }
+ }
+ public string Field27 {
+ get { return result.Field27; }
+ set { SetField27(value); }
+ }
+ public Builder SetField27(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField27 = true;
+ result.field27_ = value;
+ return this;
+ }
+ public Builder ClearField27() {
+ PrepareBuilder();
+ result.hasField27 = false;
+ result.field27_ = "";
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public int Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(int value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = 0;
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public string Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public string Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field22List {
+ get { return PrepareBuilder().field22_; }
+ }
+ public int Field22Count {
+ get { return result.Field22Count; }
+ }
+ public string GetField22(int index) {
+ return result.GetField22(index);
+ }
+ public Builder SetField22(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_[index] = value;
+ return this;
+ }
+ public Builder AddField22(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField22(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field22_.Add(values);
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.field22_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> Field73List {
+ get { return PrepareBuilder().field73_; }
+ }
+ public int Field73Count {
+ get { return result.Field73Count; }
+ }
+ public int GetField73(int index) {
+ return result.GetField73(index);
+ }
+ public Builder SetField73(int index, int value) {
+ PrepareBuilder();
+ result.field73_[index] = value;
+ return this;
+ }
+ public Builder AddField73(int value) {
+ PrepareBuilder();
+ result.field73_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField73(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.field73_.Add(values);
+ return this;
+ }
+ public Builder ClearField73() {
+ PrepareBuilder();
+ result.field73_.Clear();
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public int Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(int value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public string Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = "";
+ return this;
+ }
+
+ public bool HasField31 {
+ get { return result.hasField31; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage Field31 {
+ get { return result.Field31; }
+ set { SetField31(value); }
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = value;
+ return this;
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField31(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField31 &&
+ result.field31_ != global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance) {
+ result.field31_ = global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.CreateBuilder(result.field31_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field31_ = value;
+ }
+ result.hasField31 = true;
+ return this;
+ }
+ public Builder ClearField31() {
+ PrepareBuilder();
+ result.hasField31 = false;
+ result.field31_ = null;
+ return this;
+ }
+ }
+ static Group1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private long field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public long Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private long field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public long Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private long field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public long Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field75FieldNumber = 75;
+ private bool hasField75;
+ private bool field75_;
+ public bool HasField75 {
+ get { return hasField75; }
+ }
+ public bool Field75 {
+ get { return field75_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private string field6_ = "";
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public string Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private pb::ByteString field2_ = pb::ByteString.Empty;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private int field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ public int Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field71FieldNumber = 71;
+ private bool hasField71;
+ private int field71_;
+ public bool HasField71 {
+ get { return hasField71; }
+ }
+ public int Field71 {
+ get { return field71_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private float field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public float Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field109FieldNumber = 109;
+ private bool hasField109;
+ private int field109_;
+ public bool HasField109 {
+ get { return hasField109; }
+ }
+ public int Field109 {
+ get { return field109_; }
+ }
+
+ public const int Field210FieldNumber = 210;
+ private bool hasField210;
+ private int field210_;
+ public bool HasField210 {
+ get { return hasField210; }
+ }
+ public int Field210 {
+ get { return field210_; }
+ }
+
+ public const int Field211FieldNumber = 211;
+ private bool hasField211;
+ private int field211_;
+ public bool HasField211 {
+ get { return hasField211; }
+ }
+ public int Field211 {
+ get { return field211_; }
+ }
+
+ public const int Field212FieldNumber = 212;
+ private bool hasField212;
+ private int field212_;
+ public bool HasField212 {
+ get { return hasField212; }
+ }
+ public int Field212 {
+ get { return field212_; }
+ }
+
+ public const int Field213FieldNumber = 213;
+ private bool hasField213;
+ private int field213_;
+ public bool HasField213 {
+ get { return hasField213; }
+ }
+ public int Field213 {
+ get { return field213_; }
+ }
+
+ public const int Field216FieldNumber = 216;
+ private bool hasField216;
+ private int field216_;
+ public bool HasField216 {
+ get { return hasField216; }
+ }
+ public int Field216 {
+ get { return field216_; }
+ }
+
+ public const int Field217FieldNumber = 217;
+ private bool hasField217;
+ private int field217_;
+ public bool HasField217 {
+ get { return hasField217; }
+ }
+ public int Field217 {
+ get { return field217_; }
+ }
+
+ public const int Field218FieldNumber = 218;
+ private bool hasField218;
+ private int field218_;
+ public bool HasField218 {
+ get { return hasField218; }
+ }
+ public int Field218 {
+ get { return field218_; }
+ }
+
+ public const int Field220FieldNumber = 220;
+ private bool hasField220;
+ private int field220_;
+ public bool HasField220 {
+ get { return hasField220; }
+ }
+ public int Field220 {
+ get { return field220_; }
+ }
+
+ public const int Field221FieldNumber = 221;
+ private bool hasField221;
+ private int field221_;
+ public bool HasField221 {
+ get { return hasField221; }
+ }
+ public int Field221 {
+ get { return field221_; }
+ }
+
+ public const int Field222FieldNumber = 222;
+ private bool hasField222;
+ private float field222_;
+ public bool HasField222 {
+ get { return hasField222; }
+ }
+ public float Field222 {
+ get { return field222_; }
+ }
+
+ public const int Field63FieldNumber = 63;
+ private bool hasField63;
+ private int field63_;
+ public bool HasField63 {
+ get { return hasField63; }
+ }
+ public int Field63 {
+ get { return field63_; }
+ }
+
+ public const int Group1FieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1> group1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1> Group1List {
+ get { return group1_; }
+ }
+ public int Group1Count {
+ get { return group1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 GetGroup1(int index) {
+ return group1_[index];
+ }
+
+ public const int Field128FieldNumber = 128;
+ private pbc::PopsicleList<string> field128_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field128List {
+ get { return pbc::Lists.AsReadOnly(field128_); }
+ }
+ public int Field128Count {
+ get { return field128_.Count; }
+ }
+ public string GetField128(int index) {
+ return field128_[index];
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private long field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public long Field131 {
+ get { return field131_; }
+ }
+
+ public const int Field127FieldNumber = 127;
+ private pbc::PopsicleList<string> field127_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field127List {
+ get { return pbc::Lists.AsReadOnly(field127_); }
+ }
+ public int Field127Count {
+ get { return field127_.Count; }
+ }
+ public string GetField127(int index) {
+ return field127_[index];
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private int field129_;
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public int Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private pbc::PopsicleList<long> field130_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> Field130List {
+ get { return pbc::Lists.AsReadOnly(field130_); }
+ }
+ public int Field130Count {
+ get { return field130_.Count; }
+ }
+ public long GetField130(int index) {
+ return field130_[index];
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private bool field205_;
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public bool Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage2FieldNames;
+ if (hasField1) {
+ output.WriteString(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteBytes(2, field_names[7], Field2);
+ }
+ if (hasField3) {
+ output.WriteInt64(3, field_names[22], Field3);
+ }
+ if (hasField4) {
+ output.WriteInt64(4, field_names[24], Field4);
+ }
+ if (hasField6) {
+ output.WriteString(6, field_names[25], Field6);
+ }
+ if (group1_.Count > 0) {
+ output.WriteGroupArray(10, field_names[29], group1_);
+ }
+ if (hasField21) {
+ output.WriteInt32(21, field_names[10], Field21);
+ }
+ if (hasField25) {
+ output.WriteFloat(25, field_names[21], Field25);
+ }
+ if (hasField30) {
+ output.WriteInt64(30, field_names[23], Field30);
+ }
+ if (hasField63) {
+ output.WriteInt32(63, field_names[26], Field63);
+ }
+ if (hasField71) {
+ output.WriteInt32(71, field_names[27], Field71);
+ }
+ if (hasField75) {
+ output.WriteBool(75, field_names[28], Field75);
+ }
+ if (hasField109) {
+ output.WriteInt32(109, field_names[1], Field109);
+ }
+ if (field127_.Count > 0) {
+ output.WriteStringArray(127, field_names[2], field127_);
+ }
+ if (field128_.Count > 0) {
+ output.WriteStringArray(128, field_names[3], field128_);
+ }
+ if (hasField129) {
+ output.WriteInt32(129, field_names[4], Field129);
+ }
+ if (field130_.Count > 0) {
+ output.WriteInt64Array(130, field_names[5], field130_);
+ }
+ if (hasField131) {
+ output.WriteInt64(131, field_names[6], Field131);
+ }
+ if (hasField205) {
+ output.WriteBool(205, field_names[8], Field205);
+ }
+ if (hasField206) {
+ output.WriteBool(206, field_names[9], Field206);
+ }
+ if (hasField210) {
+ output.WriteInt32(210, field_names[11], Field210);
+ }
+ if (hasField211) {
+ output.WriteInt32(211, field_names[12], Field211);
+ }
+ if (hasField212) {
+ output.WriteInt32(212, field_names[13], Field212);
+ }
+ if (hasField213) {
+ output.WriteInt32(213, field_names[14], Field213);
+ }
+ if (hasField216) {
+ output.WriteInt32(216, field_names[15], Field216);
+ }
+ if (hasField217) {
+ output.WriteInt32(217, field_names[16], Field217);
+ }
+ if (hasField218) {
+ output.WriteInt32(218, field_names[17], Field218);
+ }
+ if (hasField220) {
+ output.WriteInt32(220, field_names[18], Field220);
+ }
+ if (hasField221) {
+ output.WriteInt32(221, field_names[19], Field221);
+ }
+ if (hasField222) {
+ output.WriteFloat(222, field_names[20], Field222);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Field1);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeInt64Size(3, Field3);
+ }
+ if (hasField4) {
+ size += pb::CodedOutputStream.ComputeInt64Size(4, Field4);
+ }
+ if (hasField30) {
+ size += pb::CodedOutputStream.ComputeInt64Size(30, Field30);
+ }
+ if (hasField75) {
+ size += pb::CodedOutputStream.ComputeBoolSize(75, Field75);
+ }
+ if (hasField6) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, Field6);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeBytesSize(2, Field2);
+ }
+ if (hasField21) {
+ size += pb::CodedOutputStream.ComputeInt32Size(21, Field21);
+ }
+ if (hasField71) {
+ size += pb::CodedOutputStream.ComputeInt32Size(71, Field71);
+ }
+ if (hasField25) {
+ size += pb::CodedOutputStream.ComputeFloatSize(25, Field25);
+ }
+ if (hasField109) {
+ size += pb::CodedOutputStream.ComputeInt32Size(109, Field109);
+ }
+ if (hasField210) {
+ size += pb::CodedOutputStream.ComputeInt32Size(210, Field210);
+ }
+ if (hasField211) {
+ size += pb::CodedOutputStream.ComputeInt32Size(211, Field211);
+ }
+ if (hasField212) {
+ size += pb::CodedOutputStream.ComputeInt32Size(212, Field212);
+ }
+ if (hasField213) {
+ size += pb::CodedOutputStream.ComputeInt32Size(213, Field213);
+ }
+ if (hasField216) {
+ size += pb::CodedOutputStream.ComputeInt32Size(216, Field216);
+ }
+ if (hasField217) {
+ size += pb::CodedOutputStream.ComputeInt32Size(217, Field217);
+ }
+ if (hasField218) {
+ size += pb::CodedOutputStream.ComputeInt32Size(218, Field218);
+ }
+ if (hasField220) {
+ size += pb::CodedOutputStream.ComputeInt32Size(220, Field220);
+ }
+ if (hasField221) {
+ size += pb::CodedOutputStream.ComputeInt32Size(221, Field221);
+ }
+ if (hasField222) {
+ size += pb::CodedOutputStream.ComputeFloatSize(222, Field222);
+ }
+ if (hasField63) {
+ size += pb::CodedOutputStream.ComputeInt32Size(63, Field63);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 element in Group1List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, element);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field128List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field128_.Count;
+ }
+ if (hasField131) {
+ size += pb::CodedOutputStream.ComputeInt64Size(131, Field131);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field127List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field127_.Count;
+ }
+ if (hasField129) {
+ size += pb::CodedOutputStream.ComputeInt32Size(129, Field129);
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in Field130List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field130_.Count;
+ }
+ if (hasField205) {
+ size += pb::CodedOutputStream.ComputeBoolSize(205, Field205);
+ }
+ if (hasField206) {
+ size += pb::CodedOutputStream.ComputeBoolSize(206, Field206);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage2 MakeReadOnly() {
+ group1_.MakeReadOnly();
+ field128_.MakeReadOnly();
+ field127_.MakeReadOnly();
+ field130_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage2 result;
+
+ private SpeedMessage2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage2 original = result;
+ result = new SpeedMessage2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Descriptor; }
+ }
+
+ public override SpeedMessage2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.DefaultInstance; }
+ }
+
+ public override SpeedMessage2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage2) {
+ return MergeFrom((SpeedMessage2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField4) {
+ Field4 = other.Field4;
+ }
+ if (other.HasField30) {
+ Field30 = other.Field30;
+ }
+ if (other.HasField75) {
+ Field75 = other.Field75;
+ }
+ if (other.HasField6) {
+ Field6 = other.Field6;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField21) {
+ Field21 = other.Field21;
+ }
+ if (other.HasField71) {
+ Field71 = other.Field71;
+ }
+ if (other.HasField25) {
+ Field25 = other.Field25;
+ }
+ if (other.HasField109) {
+ Field109 = other.Field109;
+ }
+ if (other.HasField210) {
+ Field210 = other.Field210;
+ }
+ if (other.HasField211) {
+ Field211 = other.Field211;
+ }
+ if (other.HasField212) {
+ Field212 = other.Field212;
+ }
+ if (other.HasField213) {
+ Field213 = other.Field213;
+ }
+ if (other.HasField216) {
+ Field216 = other.Field216;
+ }
+ if (other.HasField217) {
+ Field217 = other.Field217;
+ }
+ if (other.HasField218) {
+ Field218 = other.Field218;
+ }
+ if (other.HasField220) {
+ Field220 = other.Field220;
+ }
+ if (other.HasField221) {
+ Field221 = other.Field221;
+ }
+ if (other.HasField222) {
+ Field222 = other.Field222;
+ }
+ if (other.HasField63) {
+ Field63 = other.Field63;
+ }
+ if (other.group1_.Count != 0) {
+ result.group1_.Add(other.group1_);
+ }
+ if (other.field128_.Count != 0) {
+ result.field128_.Add(other.field128_);
+ }
+ if (other.HasField131) {
+ Field131 = other.Field131;
+ }
+ if (other.field127_.Count != 0) {
+ result.field127_.Add(other.field127_);
+ }
+ if (other.HasField129) {
+ Field129 = other.Field129;
+ }
+ if (other.field130_.Count != 0) {
+ result.field130_.Add(other.field130_);
+ }
+ if (other.HasField205) {
+ Field205 = other.Field205;
+ }
+ if (other.HasField206) {
+ Field206 = other.Field206;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasField1 = input.ReadString(ref result.field1_);
+ break;
+ }
+ case 18: {
+ result.hasField2 = input.ReadBytes(ref result.field2_);
+ break;
+ }
+ case 24: {
+ result.hasField3 = input.ReadInt64(ref result.field3_);
+ break;
+ }
+ case 32: {
+ result.hasField4 = input.ReadInt64(ref result.field4_);
+ break;
+ }
+ case 50: {
+ result.hasField6 = input.ReadString(ref result.field6_);
+ break;
+ }
+ case 83: {
+ input.ReadGroupArray(tag, field_name, result.group1_, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 168: {
+ result.hasField21 = input.ReadInt32(ref result.field21_);
+ break;
+ }
+ case 205: {
+ result.hasField25 = input.ReadFloat(ref result.field25_);
+ break;
+ }
+ case 240: {
+ result.hasField30 = input.ReadInt64(ref result.field30_);
+ break;
+ }
+ case 504: {
+ result.hasField63 = input.ReadInt32(ref result.field63_);
+ break;
+ }
+ case 568: {
+ result.hasField71 = input.ReadInt32(ref result.field71_);
+ break;
+ }
+ case 600: {
+ result.hasField75 = input.ReadBool(ref result.field75_);
+ break;
+ }
+ case 872: {
+ result.hasField109 = input.ReadInt32(ref result.field109_);
+ break;
+ }
+ case 1018: {
+ input.ReadStringArray(tag, field_name, result.field127_);
+ break;
+ }
+ case 1026: {
+ input.ReadStringArray(tag, field_name, result.field128_);
+ break;
+ }
+ case 1032: {
+ result.hasField129 = input.ReadInt32(ref result.field129_);
+ break;
+ }
+ case 1042:
+ case 1040: {
+ input.ReadInt64Array(tag, field_name, result.field130_);
+ break;
+ }
+ case 1048: {
+ result.hasField131 = input.ReadInt64(ref result.field131_);
+ break;
+ }
+ case 1640: {
+ result.hasField205 = input.ReadBool(ref result.field205_);
+ break;
+ }
+ case 1648: {
+ result.hasField206 = input.ReadBool(ref result.field206_);
+ break;
+ }
+ case 1680: {
+ result.hasField210 = input.ReadInt32(ref result.field210_);
+ break;
+ }
+ case 1688: {
+ result.hasField211 = input.ReadInt32(ref result.field211_);
+ break;
+ }
+ case 1696: {
+ result.hasField212 = input.ReadInt32(ref result.field212_);
+ break;
+ }
+ case 1704: {
+ result.hasField213 = input.ReadInt32(ref result.field213_);
+ break;
+ }
+ case 1728: {
+ result.hasField216 = input.ReadInt32(ref result.field216_);
+ break;
+ }
+ case 1736: {
+ result.hasField217 = input.ReadInt32(ref result.field217_);
+ break;
+ }
+ case 1744: {
+ result.hasField218 = input.ReadInt32(ref result.field218_);
+ break;
+ }
+ case 1760: {
+ result.hasField220 = input.ReadInt32(ref result.field220_);
+ break;
+ }
+ case 1768: {
+ result.hasField221 = input.ReadInt32(ref result.field221_);
+ break;
+ }
+ case 1781: {
+ result.hasField222 = input.ReadFloat(ref result.field222_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public long Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(long value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public long Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(long value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = 0L;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public long Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(long value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = 0L;
+ return this;
+ }
+
+ public bool HasField75 {
+ get { return result.hasField75; }
+ }
+ public bool Field75 {
+ get { return result.Field75; }
+ set { SetField75(value); }
+ }
+ public Builder SetField75(bool value) {
+ PrepareBuilder();
+ result.hasField75 = true;
+ result.field75_ = value;
+ return this;
+ }
+ public Builder ClearField75() {
+ PrepareBuilder();
+ result.hasField75 = false;
+ result.field75_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public string Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = "";
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ public int Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ public Builder SetField21(int value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0;
+ return this;
+ }
+
+ public bool HasField71 {
+ get { return result.hasField71; }
+ }
+ public int Field71 {
+ get { return result.Field71; }
+ set { SetField71(value); }
+ }
+ public Builder SetField71(int value) {
+ PrepareBuilder();
+ result.hasField71 = true;
+ result.field71_ = value;
+ return this;
+ }
+ public Builder ClearField71() {
+ PrepareBuilder();
+ result.hasField71 = false;
+ result.field71_ = 0;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public float Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(float value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0F;
+ return this;
+ }
+
+ public bool HasField109 {
+ get { return result.hasField109; }
+ }
+ public int Field109 {
+ get { return result.Field109; }
+ set { SetField109(value); }
+ }
+ public Builder SetField109(int value) {
+ PrepareBuilder();
+ result.hasField109 = true;
+ result.field109_ = value;
+ return this;
+ }
+ public Builder ClearField109() {
+ PrepareBuilder();
+ result.hasField109 = false;
+ result.field109_ = 0;
+ return this;
+ }
+
+ public bool HasField210 {
+ get { return result.hasField210; }
+ }
+ public int Field210 {
+ get { return result.Field210; }
+ set { SetField210(value); }
+ }
+ public Builder SetField210(int value) {
+ PrepareBuilder();
+ result.hasField210 = true;
+ result.field210_ = value;
+ return this;
+ }
+ public Builder ClearField210() {
+ PrepareBuilder();
+ result.hasField210 = false;
+ result.field210_ = 0;
+ return this;
+ }
+
+ public bool HasField211 {
+ get { return result.hasField211; }
+ }
+ public int Field211 {
+ get { return result.Field211; }
+ set { SetField211(value); }
+ }
+ public Builder SetField211(int value) {
+ PrepareBuilder();
+ result.hasField211 = true;
+ result.field211_ = value;
+ return this;
+ }
+ public Builder ClearField211() {
+ PrepareBuilder();
+ result.hasField211 = false;
+ result.field211_ = 0;
+ return this;
+ }
+
+ public bool HasField212 {
+ get { return result.hasField212; }
+ }
+ public int Field212 {
+ get { return result.Field212; }
+ set { SetField212(value); }
+ }
+ public Builder SetField212(int value) {
+ PrepareBuilder();
+ result.hasField212 = true;
+ result.field212_ = value;
+ return this;
+ }
+ public Builder ClearField212() {
+ PrepareBuilder();
+ result.hasField212 = false;
+ result.field212_ = 0;
+ return this;
+ }
+
+ public bool HasField213 {
+ get { return result.hasField213; }
+ }
+ public int Field213 {
+ get { return result.Field213; }
+ set { SetField213(value); }
+ }
+ public Builder SetField213(int value) {
+ PrepareBuilder();
+ result.hasField213 = true;
+ result.field213_ = value;
+ return this;
+ }
+ public Builder ClearField213() {
+ PrepareBuilder();
+ result.hasField213 = false;
+ result.field213_ = 0;
+ return this;
+ }
+
+ public bool HasField216 {
+ get { return result.hasField216; }
+ }
+ public int Field216 {
+ get { return result.Field216; }
+ set { SetField216(value); }
+ }
+ public Builder SetField216(int value) {
+ PrepareBuilder();
+ result.hasField216 = true;
+ result.field216_ = value;
+ return this;
+ }
+ public Builder ClearField216() {
+ PrepareBuilder();
+ result.hasField216 = false;
+ result.field216_ = 0;
+ return this;
+ }
+
+ public bool HasField217 {
+ get { return result.hasField217; }
+ }
+ public int Field217 {
+ get { return result.Field217; }
+ set { SetField217(value); }
+ }
+ public Builder SetField217(int value) {
+ PrepareBuilder();
+ result.hasField217 = true;
+ result.field217_ = value;
+ return this;
+ }
+ public Builder ClearField217() {
+ PrepareBuilder();
+ result.hasField217 = false;
+ result.field217_ = 0;
+ return this;
+ }
+
+ public bool HasField218 {
+ get { return result.hasField218; }
+ }
+ public int Field218 {
+ get { return result.Field218; }
+ set { SetField218(value); }
+ }
+ public Builder SetField218(int value) {
+ PrepareBuilder();
+ result.hasField218 = true;
+ result.field218_ = value;
+ return this;
+ }
+ public Builder ClearField218() {
+ PrepareBuilder();
+ result.hasField218 = false;
+ result.field218_ = 0;
+ return this;
+ }
+
+ public bool HasField220 {
+ get { return result.hasField220; }
+ }
+ public int Field220 {
+ get { return result.Field220; }
+ set { SetField220(value); }
+ }
+ public Builder SetField220(int value) {
+ PrepareBuilder();
+ result.hasField220 = true;
+ result.field220_ = value;
+ return this;
+ }
+ public Builder ClearField220() {
+ PrepareBuilder();
+ result.hasField220 = false;
+ result.field220_ = 0;
+ return this;
+ }
+
+ public bool HasField221 {
+ get { return result.hasField221; }
+ }
+ public int Field221 {
+ get { return result.Field221; }
+ set { SetField221(value); }
+ }
+ public Builder SetField221(int value) {
+ PrepareBuilder();
+ result.hasField221 = true;
+ result.field221_ = value;
+ return this;
+ }
+ public Builder ClearField221() {
+ PrepareBuilder();
+ result.hasField221 = false;
+ result.field221_ = 0;
+ return this;
+ }
+
+ public bool HasField222 {
+ get { return result.hasField222; }
+ }
+ public float Field222 {
+ get { return result.Field222; }
+ set { SetField222(value); }
+ }
+ public Builder SetField222(float value) {
+ PrepareBuilder();
+ result.hasField222 = true;
+ result.field222_ = value;
+ return this;
+ }
+ public Builder ClearField222() {
+ PrepareBuilder();
+ result.hasField222 = false;
+ result.field222_ = 0F;
+ return this;
+ }
+
+ public bool HasField63 {
+ get { return result.hasField63; }
+ }
+ public int Field63 {
+ get { return result.Field63; }
+ set { SetField63(value); }
+ }
+ public Builder SetField63(int value) {
+ PrepareBuilder();
+ result.hasField63 = true;
+ result.field63_ = value;
+ return this;
+ }
+ public Builder ClearField63() {
+ PrepareBuilder();
+ result.hasField63 = false;
+ result.field63_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1> Group1List {
+ get { return PrepareBuilder().group1_; }
+ }
+ public int Group1Count {
+ get { return result.Group1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 GetGroup1(int index) {
+ return result.GetGroup1(index);
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_[index] = value;
+ return this;
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_.Add(value);
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1> values) {
+ PrepareBuilder();
+ result.group1_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup1() {
+ PrepareBuilder();
+ result.group1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field128List {
+ get { return PrepareBuilder().field128_; }
+ }
+ public int Field128Count {
+ get { return result.Field128Count; }
+ }
+ public string GetField128(int index) {
+ return result.GetField128(index);
+ }
+ public Builder SetField128(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_[index] = value;
+ return this;
+ }
+ public Builder AddField128(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField128(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field128_.Add(values);
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.field128_.Clear();
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public long Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(long value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0L;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field127List {
+ get { return PrepareBuilder().field127_; }
+ }
+ public int Field127Count {
+ get { return result.Field127Count; }
+ }
+ public string GetField127(int index) {
+ return result.GetField127(index);
+ }
+ public Builder SetField127(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_[index] = value;
+ return this;
+ }
+ public Builder AddField127(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField127(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field127_.Add(values);
+ return this;
+ }
+ public Builder ClearField127() {
+ PrepareBuilder();
+ result.field127_.Clear();
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public int Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(int value) {
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> Field130List {
+ get { return PrepareBuilder().field130_; }
+ }
+ public int Field130Count {
+ get { return result.Field130Count; }
+ }
+ public long GetField130(int index) {
+ return result.GetField130(index);
+ }
+ public Builder SetField130(int index, long value) {
+ PrepareBuilder();
+ result.field130_[index] = value;
+ return this;
+ }
+ public Builder AddField130(long value) {
+ PrepareBuilder();
+ result.field130_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField130(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.field130_.Add(values);
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.field130_.Clear();
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public bool Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(bool value) {
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+ }
+ static SpeedMessage2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage2GroupedMessage : pb::GeneratedMessage<SpeedMessage2GroupedMessage, SpeedMessage2GroupedMessage.Builder> {
+ private SpeedMessage2GroupedMessage() { }
+ private static readonly SpeedMessage2GroupedMessage defaultInstance = new SpeedMessage2GroupedMessage().MakeReadOnly();
+ private static readonly string[] _speedMessage2GroupedMessageFieldNames = new string[] { "field1", "field10", "field11", "field2", "field3", "field4", "field5", "field6", "field7", "field8", "field9" };
+ private static readonly uint[] _speedMessage2GroupedMessageFieldTags = new uint[] { 13, 85, 88, 21, 29, 32, 40, 48, 56, 69, 72 };
+ public static SpeedMessage2GroupedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage2GroupedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage2GroupedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SpeedMessage2GroupedMessage, SpeedMessage2GroupedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2GroupedMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private float field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public float Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private float field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public float Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private float field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public float Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private bool field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public bool Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private bool field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public bool Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private bool field6_ = true;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public bool Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private bool field7_;
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public bool Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field8FieldNumber = 8;
+ private bool hasField8;
+ private float field8_;
+ public bool HasField8 {
+ get { return hasField8; }
+ }
+ public float Field8 {
+ get { return field8_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private bool field9_;
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public bool Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field10FieldNumber = 10;
+ private bool hasField10;
+ private float field10_;
+ public bool HasField10 {
+ get { return hasField10; }
+ }
+ public float Field10 {
+ get { return field10_; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private long field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public long Field11 {
+ get { return field11_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage2GroupedMessageFieldNames;
+ if (hasField1) {
+ output.WriteFloat(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteFloat(2, field_names[3], Field2);
+ }
+ if (hasField3) {
+ output.WriteFloat(3, field_names[4], Field3);
+ }
+ if (hasField4) {
+ output.WriteBool(4, field_names[5], Field4);
+ }
+ if (hasField5) {
+ output.WriteBool(5, field_names[6], Field5);
+ }
+ if (hasField6) {
+ output.WriteBool(6, field_names[7], Field6);
+ }
+ if (hasField7) {
+ output.WriteBool(7, field_names[8], Field7);
+ }
+ if (hasField8) {
+ output.WriteFloat(8, field_names[9], Field8);
+ }
+ if (hasField9) {
+ output.WriteBool(9, field_names[10], Field9);
+ }
+ if (hasField10) {
+ output.WriteFloat(10, field_names[1], Field10);
+ }
+ if (hasField11) {
+ output.WriteInt64(11, field_names[2], Field11);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeFloatSize(1, Field1);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeFloatSize(2, Field2);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeFloatSize(3, Field3);
+ }
+ if (hasField4) {
+ size += pb::CodedOutputStream.ComputeBoolSize(4, Field4);
+ }
+ if (hasField5) {
+ size += pb::CodedOutputStream.ComputeBoolSize(5, Field5);
+ }
+ if (hasField6) {
+ size += pb::CodedOutputStream.ComputeBoolSize(6, Field6);
+ }
+ if (hasField7) {
+ size += pb::CodedOutputStream.ComputeBoolSize(7, Field7);
+ }
+ if (hasField8) {
+ size += pb::CodedOutputStream.ComputeFloatSize(8, Field8);
+ }
+ if (hasField9) {
+ size += pb::CodedOutputStream.ComputeBoolSize(9, Field9);
+ }
+ if (hasField10) {
+ size += pb::CodedOutputStream.ComputeFloatSize(10, Field10);
+ }
+ if (hasField11) {
+ size += pb::CodedOutputStream.ComputeInt64Size(11, Field11);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage2GroupedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage2GroupedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage2GroupedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage2GroupedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage2GroupedMessage result;
+
+ private SpeedMessage2GroupedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage2GroupedMessage original = result;
+ result = new SpeedMessage2GroupedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage2GroupedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Descriptor; }
+ }
+
+ public override SpeedMessage2GroupedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public override SpeedMessage2GroupedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage2GroupedMessage) {
+ return MergeFrom((SpeedMessage2GroupedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage2GroupedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField4) {
+ Field4 = other.Field4;
+ }
+ if (other.HasField5) {
+ Field5 = other.Field5;
+ }
+ if (other.HasField6) {
+ Field6 = other.Field6;
+ }
+ if (other.HasField7) {
+ Field7 = other.Field7;
+ }
+ if (other.HasField8) {
+ Field8 = other.Field8;
+ }
+ if (other.HasField9) {
+ Field9 = other.Field9;
+ }
+ if (other.HasField10) {
+ Field10 = other.Field10;
+ }
+ if (other.HasField11) {
+ Field11 = other.Field11;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage2GroupedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage2GroupedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 13: {
+ result.hasField1 = input.ReadFloat(ref result.field1_);
+ break;
+ }
+ case 21: {
+ result.hasField2 = input.ReadFloat(ref result.field2_);
+ break;
+ }
+ case 29: {
+ result.hasField3 = input.ReadFloat(ref result.field3_);
+ break;
+ }
+ case 32: {
+ result.hasField4 = input.ReadBool(ref result.field4_);
+ break;
+ }
+ case 40: {
+ result.hasField5 = input.ReadBool(ref result.field5_);
+ break;
+ }
+ case 48: {
+ result.hasField6 = input.ReadBool(ref result.field6_);
+ break;
+ }
+ case 56: {
+ result.hasField7 = input.ReadBool(ref result.field7_);
+ break;
+ }
+ case 69: {
+ result.hasField8 = input.ReadFloat(ref result.field8_);
+ break;
+ }
+ case 72: {
+ result.hasField9 = input.ReadBool(ref result.field9_);
+ break;
+ }
+ case 85: {
+ result.hasField10 = input.ReadFloat(ref result.field10_);
+ break;
+ }
+ case 88: {
+ result.hasField11 = input.ReadInt64(ref result.field11_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public float Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(float value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0F;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public float Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(float value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0F;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public float Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(float value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0F;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public bool Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(bool value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = false;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public bool Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(bool value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public bool Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(bool value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = true;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public bool Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(bool value) {
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = false;
+ return this;
+ }
+
+ public bool HasField8 {
+ get { return result.hasField8; }
+ }
+ public float Field8 {
+ get { return result.Field8; }
+ set { SetField8(value); }
+ }
+ public Builder SetField8(float value) {
+ PrepareBuilder();
+ result.hasField8 = true;
+ result.field8_ = value;
+ return this;
+ }
+ public Builder ClearField8() {
+ PrepareBuilder();
+ result.hasField8 = false;
+ result.field8_ = 0F;
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public bool Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(bool value) {
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = false;
+ return this;
+ }
+
+ public bool HasField10 {
+ get { return result.hasField10; }
+ }
+ public float Field10 {
+ get { return result.Field10; }
+ set { SetField10(value); }
+ }
+ public Builder SetField10(float value) {
+ PrepareBuilder();
+ result.hasField10 = true;
+ result.field10_ = value;
+ return this;
+ }
+ public Builder ClearField10() {
+ PrepareBuilder();
+ result.hasField10 = false;
+ result.field10_ = 0F;
+ return this;
+ }
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public long Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(long value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0L;
+ return this;
+ }
+ }
+ static SpeedMessage2GroupedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtoBench/Program.cs b/csharp/src/ProtoBench/Program.cs
new file mode 100644
index 00000000..820fc124
--- /dev/null
+++ b/csharp/src/ProtoBench/Program.cs
@@ -0,0 +1,538 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Runtime.Serialization.Json;
+using System.Text;
+using System.Threading;
+using System.Xml;
+using Google.ProtocolBuffers.Serialization;
+using Google.ProtocolBuffers.TestProtos;
+
+namespace Google.ProtocolBuffers.ProtoBench
+{
+ /// <summary>
+ /// Simple benchmarking of arbitrary messages.
+ /// </summary>
+ public sealed class Program
+ {
+ private static TimeSpan MinSampleTime = TimeSpan.FromSeconds(2);
+ private static TimeSpan TargetTime = TimeSpan.FromSeconds(30);
+ private static bool Verbose = false, FastTest = false, OtherFormats = false;
+ // Avoid a .NET 3.5 dependency
+ private delegate void Action();
+
+ private delegate void BenchmarkTest(string name, long dataSize, Action action);
+
+ private static BenchmarkTest RunBenchmark;
+
+ private static string _logFile;
+ static void WriteLine(string format, params object[] arg)
+ {
+ if (arg.Length > 0) format = String.Format(format, arg);
+ Console.Out.WriteLine(format);
+ if (!String.IsNullOrEmpty(_logFile))
+ File.AppendAllText(_logFile, format + Environment.NewLine);
+ }
+
+ [STAThread]
+ public static int Main(string[] args)
+ {
+ List<string> temp = new List<string>(args);
+
+ Verbose = temp.Remove("/verbose") || temp.Remove("-verbose");
+ OtherFormats = temp.Remove("/formats") || temp.Remove("-formats");
+
+ foreach (string arg in temp)
+ {
+ if (arg.StartsWith("/log:", StringComparison.OrdinalIgnoreCase) || arg.StartsWith("-log:", StringComparison.OrdinalIgnoreCase))
+ {
+ _logFile = arg.Substring(5);
+ if (!String.IsNullOrEmpty(_logFile))
+ File.AppendAllText(_logFile, Environment.NewLine + "Started benchmarks at " + DateTime.Now + Environment.NewLine);
+ temp.Remove(arg);
+ break;
+ }
+ }
+
+ if (true == (FastTest = (temp.Remove("/fast") || temp.Remove("-fast"))))
+ {
+ TargetTime = TimeSpan.FromSeconds(10);
+ }
+
+ RunBenchmark = BenchmarkV1;
+ if (temp.Remove("/v2") || temp.Remove("-v2"))
+ {
+ Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime;
+ Process.GetCurrentProcess().ProcessorAffinity = new IntPtr(1);
+ RunBenchmark = BenchmarkV2;
+ }
+ if (temp.Remove("/all") || temp.Remove("-all"))
+ {
+ if (FastTest)
+ {
+ TargetTime = TimeSpan.FromSeconds(5);
+ }
+ foreach (KeyValuePair<string, string> item in MakeTests())
+ {
+ temp.Add(item.Key);
+ temp.Add(item.Value);
+ }
+ }
+ args = temp.ToArray();
+
+ if (args.Length < 2 || (args.Length%2) != 0)
+ {
+ Console.Error.WriteLine("Usage: ProtoBench [/fast] <descriptor type name> <input data>");
+ Console.Error.WriteLine("The descriptor type name is the fully-qualified message name,");
+ Console.Error.WriteLine(
+ "including assembly - e.g. Google.ProtocolBuffers.BenchmarkProtos.Message1,ProtoBench");
+ Console.Error.WriteLine("(You can specify multiple pairs of descriptor type name and input data.)");
+ return 1;
+ }
+
+ bool success = true;
+ for (int i = 0; i < args.Length; i += 2)
+ {
+ success &= RunTest(args[i], args[i + 1], null);
+ }
+ return success ? 0 : 1;
+ }
+
+ /// <summary>
+ /// Runs a single test. Error messages are displayed to Console.Error, and the return value indicates
+ /// general success/failure.
+ /// </summary>
+ public static bool RunTest(string typeName, string file, byte[] inputData)
+ {
+ WriteLine("Benchmarking {0} with file {1}", typeName, file);
+ IMessage defaultMessage;
+ try
+ {
+ defaultMessage = MessageUtil.GetDefaultMessage(typeName);
+ }
+ catch (ArgumentException e)
+ {
+ Console.Error.WriteLine(e.Message);
+ return false;
+ }
+ try
+ {
+ ExtensionRegistry registry = ExtensionRegistry.Empty;
+ inputData = inputData ?? File.ReadAllBytes(file);
+ MemoryStream inputStream = new MemoryStream(inputData);
+ ByteString inputString = ByteString.CopyFrom(inputData);
+ IMessage sampleMessage =
+ defaultMessage.WeakCreateBuilderForType().WeakMergeFrom(inputString, registry).WeakBuild();
+
+ IDictionary<string, object> dictionary = null;
+ byte[] jsonBytes = null, xmlBytes = null; /*no pun intended, well... maybe for xml*/
+ if (OtherFormats)
+ {
+ using (MemoryStream temp = new MemoryStream())
+ {
+ XmlFormatWriter.CreateInstance(temp).WriteMessage(sampleMessage);
+ xmlBytes = temp.ToArray();
+ }
+ using (MemoryStream temp = new MemoryStream())
+ {
+ JsonFormatWriter.CreateInstance(temp).WriteMessage(sampleMessage);
+ jsonBytes = temp.ToArray();
+ }
+ dictionary = new Dictionary<string, object>(StringComparer.Ordinal);
+ new DictionaryWriter(dictionary).WriteMessage(sampleMessage);
+ }
+
+ //Serializers
+ if (!FastTest)
+ {
+ RunBenchmark("Serialize to byte string", inputData.Length, () => sampleMessage.ToByteString());
+ }
+ RunBenchmark("Serialize to byte array", inputData.Length, () => sampleMessage.ToByteArray());
+ if (!FastTest)
+ {
+ RunBenchmark("Serialize to memory stream", inputData.Length,
+ () => sampleMessage.WriteTo(new MemoryStream()));
+ }
+
+ if (OtherFormats)
+ {
+ RunBenchmark("Serialize to xml", xmlBytes.Length,
+ () =>
+ {
+ XmlFormatWriter.CreateInstance(new MemoryStream(), Encoding.UTF8).WriteMessage(sampleMessage);
+ });
+ RunBenchmark("Serialize to json", jsonBytes.Length,
+ () => { JsonFormatWriter.CreateInstance().WriteMessage(sampleMessage); });
+ RunBenchmark("Serialize to json via xml", jsonBytes.Length,
+ () =>
+ XmlFormatWriter.CreateInstance(
+ JsonReaderWriterFactory.CreateJsonWriter(new MemoryStream(), Encoding.UTF8))
+ .SetOptions(XmlWriterOptions.OutputJsonTypes)
+ .WriteMessage(sampleMessage)
+ );
+
+ RunBenchmark("Serialize to dictionary", sampleMessage.SerializedSize,
+ () => new DictionaryWriter().WriteMessage(sampleMessage));
+ }
+ //Deserializers
+ if (!FastTest)
+ {
+ RunBenchmark("Deserialize from byte string", inputData.Length,
+ () => defaultMessage.WeakCreateBuilderForType()
+ .WeakMergeFrom(inputString, registry)
+ .WeakBuild()
+ );
+ }
+
+ RunBenchmark("Deserialize from byte array", inputData.Length,
+ () => defaultMessage.WeakCreateBuilderForType()
+ .WeakMergeFrom(CodedInputStream.CreateInstance(inputData), registry)
+ .WeakBuild()
+ );
+ if (!FastTest)
+ {
+ RunBenchmark("Deserialize from memory stream", inputData.Length,
+ () =>
+ {
+ inputStream.Position = 0;
+ defaultMessage.WeakCreateBuilderForType().WeakMergeFrom(
+ CodedInputStream.CreateInstance(inputStream), registry)
+ .WeakBuild();
+ });
+ }
+
+ if (OtherFormats)
+ {
+ RunBenchmark("Deserialize from xml", xmlBytes.Length,
+ () =>
+ XmlFormatReader.CreateInstance(xmlBytes).Merge(
+ defaultMessage.WeakCreateBuilderForType()).WeakBuild());
+ RunBenchmark("Deserialize from json", jsonBytes.Length,
+ () =>
+ JsonFormatReader.CreateInstance(jsonBytes).Merge(
+ defaultMessage.WeakCreateBuilderForType()).WeakBuild());
+ RunBenchmark("Deserialize from json via xml", jsonBytes.Length,
+ () =>
+ XmlFormatReader.CreateInstance(JsonReaderWriterFactory.CreateJsonReader(jsonBytes, XmlDictionaryReaderQuotas.Max))
+ .SetOptions(XmlReaderOptions.ReadNestedArrays).Merge(
+ defaultMessage.WeakCreateBuilderForType()).WeakBuild());
+
+ RunBenchmark("Deserialize from dictionary", sampleMessage.SerializedSize,
+ () =>
+ new DictionaryReader(dictionary).Merge(defaultMessage.WeakCreateBuilderForType()).
+ WeakBuild());
+ }
+ WriteLine(String.Empty);
+ return true;
+ }
+ catch (Exception e)
+ {
+ Console.Error.WriteLine("Error: {0}", e.Message);
+ Console.Error.WriteLine();
+ Console.Error.WriteLine("Detailed exception information: {0}", e);
+ return false;
+ }
+ }
+
+ private static void BenchmarkV2(string name, long dataSize, Action action)
+ {
+ Thread.BeginThreadAffinity();
+ TimeSpan elapsed = TimeSpan.Zero;
+ long runs = 0;
+ long totalCount = 0;
+ double best = double.MinValue, worst = double.MaxValue;
+
+ action();
+ // Run it progressively more times until we've got a reasonable sample
+
+ int iterations = 100;
+ elapsed = TimeAction(action, iterations);
+ while (elapsed.TotalMilliseconds < 1000)
+ {
+ elapsed += TimeAction(action, iterations);
+ iterations *= 2;
+ }
+
+ TimeSpan target = TimeSpan.FromSeconds(1);
+
+ elapsed = TimeAction(action, iterations);
+ iterations = (int) ((target.Ticks*iterations)/(double) elapsed.Ticks);
+ elapsed = TimeAction(action, iterations);
+ iterations = (int) ((target.Ticks*iterations)/(double) elapsed.Ticks);
+ elapsed = TimeAction(action, iterations);
+ iterations = (int) ((target.Ticks*iterations)/(double) elapsed.Ticks);
+
+ double first = (iterations*dataSize)/(elapsed.TotalSeconds*1024*1024);
+ if (Verbose)
+ {
+ WriteLine("Round ---: Count = {1,6}, Bps = {2,8:f3}", 0, iterations, first);
+ }
+ elapsed = TimeSpan.Zero;
+ int max = (int) TargetTime.TotalSeconds;
+
+ while (runs < max)
+ {
+ TimeSpan cycle = TimeAction(action, iterations);
+ // Accumulate and scale for next cycle.
+
+ double bps = (iterations*dataSize)/(cycle.TotalSeconds*1024*1024);
+ if (Verbose)
+ {
+ WriteLine("Round {1,3}: Count = {2,6}, Bps = {3,8:f3}",
+ 0, runs, iterations, bps);
+ }
+
+ best = Math.Max(best, bps);
+ worst = Math.Min(worst, bps);
+
+ runs++;
+ elapsed += cycle;
+ totalCount += iterations;
+ iterations = (int) ((target.Ticks*totalCount)/(double) elapsed.Ticks);
+ }
+
+ Thread.EndThreadAffinity();
+ WriteLine(
+ "{1}: averages {2} per {3:f3}s for {4} runs; avg: {5:f3}mbps; best: {6:f3}mbps; worst: {7:f3}mbps",
+ 0, name, totalCount/runs, elapsed.TotalSeconds/runs, runs,
+ (totalCount*dataSize)/(elapsed.TotalSeconds*1024*1024), best, worst);
+ }
+
+ private static void BenchmarkV1(string name, long dataSize, Action action)
+ {
+ // Make sure it's JITted
+ action();
+ // Run it progressively more times until we've got a reasonable sample
+
+ int iterations = 1;
+ TimeSpan elapsed = TimeAction(action, iterations);
+ while (elapsed < MinSampleTime)
+ {
+ iterations *= 2;
+ elapsed = TimeAction(action, iterations);
+ }
+ // Upscale the sample to the target time. Do this in floating point arithmetic
+ // to avoid overflow issues.
+ iterations = (int) ((TargetTime.Ticks/(double) elapsed.Ticks)*iterations);
+ elapsed = TimeAction(action, iterations);
+ WriteLine("{0}: {1} iterations in {2:f3}s; {3:f3}MB/s",
+ name, iterations, elapsed.TotalSeconds,
+ (iterations*dataSize)/(elapsed.TotalSeconds*1024*1024));
+ }
+
+ private static TimeSpan TimeAction(Action action, int iterations)
+ {
+ GC.Collect();
+ GC.GetTotalMemory(true);
+ GC.WaitForPendingFinalizers();
+
+ Stopwatch sw = Stopwatch.StartNew();
+ for (int i = 0; i < iterations; i++)
+ {
+ action();
+ }
+ sw.Stop();
+ return sw.Elapsed;
+ }
+
+ private static IEnumerable<KeyValuePair<string, string>> MakeTests()
+ {
+ //Aggregate Tests
+ yield return MakeWorkItem("all-types", MakeTestAllTypes());
+ yield return MakeWorkItem("repeated-100", MakeRepeatedTestAllTypes(100));
+ yield return MakeWorkItem("packed-100", MakeTestPackedTypes(100));
+
+ //Discrete Tests
+ foreach (KeyValuePair<string, Action<TestAllTypes.Builder>> item in MakeTestAllTypes())
+ {
+ yield return MakeWorkItem(item.Key, new[] {item});
+ }
+
+ foreach (KeyValuePair<string, Action<TestAllTypes.Builder>> item in MakeRepeatedTestAllTypes(100))
+ {
+ yield return MakeWorkItem(item.Key, new[] {item});
+ }
+
+ foreach (KeyValuePair<string, Action<TestPackedTypes.Builder>> item in MakeTestPackedTypes(100))
+ {
+ yield return MakeWorkItem(item.Key, new[] {item});
+ }
+ }
+
+ private static IEnumerable<KeyValuePair<string, Action<TestAllTypes.Builder>>> MakeTestAllTypes()
+ {
+ // Many of the raw type serializers below perform poorly due to the numerous fields defined
+ // in TestAllTypes.
+
+ //single values
+ yield return MakeItem<TestAllTypes.Builder>("int32", 1, x => x.SetOptionalInt32(1001));
+ yield return MakeItem<TestAllTypes.Builder>("int64", 1, x => x.SetOptionalInt64(1001));
+ yield return MakeItem<TestAllTypes.Builder>("uint32", 1, x => x.SetOptionalUint32(1001));
+ yield return MakeItem<TestAllTypes.Builder>("uint64", 1, x => x.SetOptionalUint64(1001));
+ yield return MakeItem<TestAllTypes.Builder>("sint32", 1, x => x.SetOptionalSint32(-1001));
+ yield return MakeItem<TestAllTypes.Builder>("sint64", 1, x => x.SetOptionalSint64(-1001));
+ yield return MakeItem<TestAllTypes.Builder>("fixed32", 1, x => x.SetOptionalFixed32(1001));
+ yield return MakeItem<TestAllTypes.Builder>("fixed64", 1, x => x.SetOptionalFixed64(1001));
+ yield return MakeItem<TestAllTypes.Builder>("sfixed32", 1, x => x.SetOptionalSfixed32(-1001));
+ yield return MakeItem<TestAllTypes.Builder>("sfixed64", 1, x => x.SetOptionalSfixed64(-1001));
+ yield return MakeItem<TestAllTypes.Builder>("float", 1, x => x.SetOptionalFloat(1001.1001f));
+ yield return MakeItem<TestAllTypes.Builder>("double", 1, x => x.SetOptionalDouble(1001.1001));
+ yield return MakeItem<TestAllTypes.Builder>("bool", 1, x => x.SetOptionalBool(true));
+ yield return MakeItem<TestAllTypes.Builder>("string", 1, x => x.SetOptionalString("this is a string value"))
+ ;
+ yield return
+ MakeItem<TestAllTypes.Builder>("bytes", 1,
+ x =>
+ x.SetOptionalBytes(ByteString.CopyFromUtf8("this is an array of bytes")))
+ ;
+ yield return
+ MakeItem<TestAllTypes.Builder>("group", 1,
+ x =>
+ x.SetOptionalGroup(
+ new TestAllTypes.Types.OptionalGroup.Builder().SetA(1001)));
+ yield return
+ MakeItem<TestAllTypes.Builder>("message", 1,
+ x =>
+ x.SetOptionalNestedMessage(
+ new TestAllTypes.Types.NestedMessage.Builder().SetBb(1001)));
+ yield return
+ MakeItem<TestAllTypes.Builder>("enum", 1,
+ x => x.SetOptionalNestedEnum(TestAllTypes.Types.NestedEnum.FOO));
+ }
+
+ private static IEnumerable<KeyValuePair<string, Action<TestAllTypes.Builder>>> MakeRepeatedTestAllTypes(int size)
+ {
+ //repeated values
+ yield return MakeItem<TestAllTypes.Builder>("repeated-int32", size, x => x.AddRepeatedInt32(1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-int64", size, x => x.AddRepeatedInt64(1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-uint32", size, x => x.AddRepeatedUint32(1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-uint64", size, x => x.AddRepeatedUint64(1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-sint32", size, x => x.AddRepeatedSint32(-1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-sint64", size, x => x.AddRepeatedSint64(-1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-fixed32", size, x => x.AddRepeatedFixed32(1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-fixed64", size, x => x.AddRepeatedFixed64(1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-sfixed32", size, x => x.AddRepeatedSfixed32(-1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-sfixed64", size, x => x.AddRepeatedSfixed64(-1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-float", size, x => x.AddRepeatedFloat(1001.1001f));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-double", size, x => x.AddRepeatedDouble(1001.1001));
+ yield return MakeItem<TestAllTypes.Builder>("repeated-bool", size, x => x.AddRepeatedBool(true));
+ yield return
+ MakeItem<TestAllTypes.Builder>("repeated-string", size,
+ x => x.AddRepeatedString("this is a string value"));
+ yield return
+ MakeItem<TestAllTypes.Builder>("repeated-bytes", size,
+ x =>
+ x.AddRepeatedBytes(ByteString.CopyFromUtf8("this is an array of bytes")))
+ ;
+ yield return
+ MakeItem<TestAllTypes.Builder>("repeated-group", size,
+ x =>
+ x.AddRepeatedGroup(
+ new TestAllTypes.Types.RepeatedGroup.Builder().SetA(1001)));
+ yield return
+ MakeItem<TestAllTypes.Builder>("repeated-message", size,
+ x =>
+ x.AddRepeatedNestedMessage(
+ new TestAllTypes.Types.NestedMessage.Builder().SetBb(1001)));
+ yield return
+ MakeItem<TestAllTypes.Builder>("repeated-enum", size,
+ x => x.AddRepeatedNestedEnum(TestAllTypes.Types.NestedEnum.FOO));
+ }
+
+ private static IEnumerable<KeyValuePair<string, Action<TestPackedTypes.Builder>>> MakeTestPackedTypes(int size)
+ {
+ //packed values
+ yield return MakeItem<TestPackedTypes.Builder>("packed-int32", size, x => x.AddPackedInt32(1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-int64", size, x => x.AddPackedInt64(1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-uint32", size, x => x.AddPackedUint32(1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-uint64", size, x => x.AddPackedUint64(1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-sint32", size, x => x.AddPackedSint32(-1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-sint64", size, x => x.AddPackedSint64(-1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-fixed32", size, x => x.AddPackedFixed32(1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-fixed64", size, x => x.AddPackedFixed64(1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-sfixed32", size, x => x.AddPackedSfixed32(-1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-sfixed64", size, x => x.AddPackedSfixed64(-1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-float", size, x => x.AddPackedFloat(1001.1001f));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-double", size, x => x.AddPackedDouble(1001.1001));
+ yield return MakeItem<TestPackedTypes.Builder>("packed-bool", size, x => x.AddPackedBool(true));
+ yield return
+ MakeItem<TestPackedTypes.Builder>("packed-enum", size, x => x.AddPackedEnum(ForeignEnum.FOREIGN_FOO));
+ }
+
+ private static KeyValuePair<string, Action<T>> MakeItem<T>(string name, int repeated, Action<T> build)
+ where T : IBuilderLite, new()
+ {
+ if (repeated == 1)
+ {
+ return new KeyValuePair<string, Action<T>>(name, build);
+ }
+
+ return new KeyValuePair<string, Action<T>>(
+ String.Format("{0}[{1}]", name, repeated),
+ x =>
+ {
+ for (int i = 0; i < repeated; i++)
+ {
+ build(x);
+ }
+ }
+ );
+ }
+
+ private static KeyValuePair<string, string> MakeWorkItem<T>(string name,
+ IEnumerable<KeyValuePair<string, Action<T>>>
+ builders) where T : IBuilderLite, new()
+ {
+ T builder = new T();
+
+ foreach (KeyValuePair<string, Action<T>> item in builders)
+ {
+ item.Value(builder);
+ }
+
+ IMessageLite msg = builder.WeakBuild();
+ string fname = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "unittest_" + name + ".dat");
+ File.WriteAllBytes(fname, msg.ToByteArray());
+ return
+ new KeyValuePair<string, string>(
+ String.Format("{0},{1}", msg.GetType().FullName, msg.GetType().Assembly.GetName().Name), fname);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtoBench/Properties/AssemblyInfo.cs b/csharp/src/ProtoBench/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..cdffc5e7
--- /dev/null
+++ b/csharp/src/ProtoBench/Properties/AssemblyInfo.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+
+[assembly: AssemblyTitle("ProtoBench")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ProtoBench")]
+[assembly: AssemblyCopyright("Copyright © 2009")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("2.4.1.555")]
+
+[assembly: AssemblyVersion("2.4.1.555")]
+[assembly: AssemblyFileVersion("2.4.1.555")] \ No newline at end of file
diff --git a/csharp/src/ProtoBench/ProtoBench.csproj b/csharp/src/ProtoBench/ProtoBench.csproj
new file mode 100644
index 00000000..beee3a71
--- /dev/null
+++ b/csharp/src/ProtoBench/ProtoBench.csproj
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{C7A4A435-2813-41C8-AA87-BD914BA5223D}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers.ProtoBench</RootNamespace>
+ <AssemblyName>ProtoBench</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Runtime.Serialization" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="GoogleSize.cs" />
+ <Compile Include="GoogleSpeed.cs" />
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="Unittest.cs" />
+ <Compile Include="UnittestImport.cs" />
+ <Compile Include="UnittestImportPublic.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers.Serialization\ProtocolBuffers.Serialization.csproj">
+ <Project>{231391AF-449C-4a39-986C-AD7F270F4750}</Project>
+ <Name>ProtocolBuffers.Serialization</Name>
+ <Private>True</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
+ <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffers</Name>
+ <Private>True</Private>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="app.config" />
+ <None Include="google_message1.dat">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ <None Include="google_message2.dat">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="TestProtos\" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/src/ProtoBench/Unittest.cs b/csharp/src/ProtoBench/Unittest.cs
new file mode 100644
index 00000000..d39c9345
--- /dev/null
+++ b/csharp/src/ProtoBench/Unittest.cs
@@ -0,0 +1,33516 @@
+// Manual changes:
+// - Search and replace of RepeatedFieldsGenerator.Group to RepeatedFieldsGenerator.Types.Group
+//
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Unittest {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalGroupExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalPublicImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalLazyMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedGroupExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedLazyMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionString);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionInt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.NestedStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Single);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.OptionalExt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.RepeatedExt);
+ }
+ #endregion
+ #region Extensions
+ public const int OptionalInt32ExtensionFieldNumber = 1;
+ public static pb::GeneratedExtensionBase<int> OptionalInt32Extension;
+ public const int OptionalInt64ExtensionFieldNumber = 2;
+ public static pb::GeneratedExtensionBase<long> OptionalInt64Extension;
+ public const int OptionalUint32ExtensionFieldNumber = 3;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<uint> OptionalUint32Extension;
+ public const int OptionalUint64ExtensionFieldNumber = 4;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<ulong> OptionalUint64Extension;
+ public const int OptionalSint32ExtensionFieldNumber = 5;
+ public static pb::GeneratedExtensionBase<int> OptionalSint32Extension;
+ public const int OptionalSint64ExtensionFieldNumber = 6;
+ public static pb::GeneratedExtensionBase<long> OptionalSint64Extension;
+ public const int OptionalFixed32ExtensionFieldNumber = 7;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<uint> OptionalFixed32Extension;
+ public const int OptionalFixed64ExtensionFieldNumber = 8;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<ulong> OptionalFixed64Extension;
+ public const int OptionalSfixed32ExtensionFieldNumber = 9;
+ public static pb::GeneratedExtensionBase<int> OptionalSfixed32Extension;
+ public const int OptionalSfixed64ExtensionFieldNumber = 10;
+ public static pb::GeneratedExtensionBase<long> OptionalSfixed64Extension;
+ public const int OptionalFloatExtensionFieldNumber = 11;
+ public static pb::GeneratedExtensionBase<float> OptionalFloatExtension;
+ public const int OptionalDoubleExtensionFieldNumber = 12;
+ public static pb::GeneratedExtensionBase<double> OptionalDoubleExtension;
+ public const int OptionalBoolExtensionFieldNumber = 13;
+ public static pb::GeneratedExtensionBase<bool> OptionalBoolExtension;
+ public const int OptionalStringExtensionFieldNumber = 14;
+ public static pb::GeneratedExtensionBase<string> OptionalStringExtension;
+ public const int OptionalBytesExtensionFieldNumber = 15;
+ public static pb::GeneratedExtensionBase<pb::ByteString> OptionalBytesExtension;
+ public const int OptionalGroupExtensionFieldNumber = 16;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension> OptionalGroupExtension;
+ public const int OptionalNestedMessageExtensionFieldNumber = 18;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> OptionalNestedMessageExtension;
+ public const int OptionalForeignMessageExtensionFieldNumber = 19;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> OptionalForeignMessageExtension;
+ public const int OptionalImportMessageExtensionFieldNumber = 20;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportMessage> OptionalImportMessageExtension;
+ public const int OptionalNestedEnumExtensionFieldNumber = 21;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> OptionalNestedEnumExtension;
+ public const int OptionalForeignEnumExtensionFieldNumber = 22;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> OptionalForeignEnumExtension;
+ public const int OptionalImportEnumExtensionFieldNumber = 23;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportEnum> OptionalImportEnumExtension;
+ public const int OptionalStringPieceExtensionFieldNumber = 24;
+ public static pb::GeneratedExtensionBase<string> OptionalStringPieceExtension;
+ public const int OptionalCordExtensionFieldNumber = 25;
+ public static pb::GeneratedExtensionBase<string> OptionalCordExtension;
+ public const int OptionalPublicImportMessageExtensionFieldNumber = 26;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage> OptionalPublicImportMessageExtension;
+ public const int OptionalLazyMessageExtensionFieldNumber = 27;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> OptionalLazyMessageExtension;
+ public const int RepeatedInt32ExtensionFieldNumber = 31;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedInt32Extension;
+ public const int RepeatedInt64ExtensionFieldNumber = 32;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedInt64Extension;
+ public const int RepeatedUint32ExtensionFieldNumber = 33;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> RepeatedUint32Extension;
+ public const int RepeatedUint64ExtensionFieldNumber = 34;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> RepeatedUint64Extension;
+ public const int RepeatedSint32ExtensionFieldNumber = 35;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedSint32Extension;
+ public const int RepeatedSint64ExtensionFieldNumber = 36;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedSint64Extension;
+ public const int RepeatedFixed32ExtensionFieldNumber = 37;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> RepeatedFixed32Extension;
+ public const int RepeatedFixed64ExtensionFieldNumber = 38;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> RepeatedFixed64Extension;
+ public const int RepeatedSfixed32ExtensionFieldNumber = 39;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedSfixed32Extension;
+ public const int RepeatedSfixed64ExtensionFieldNumber = 40;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedSfixed64Extension;
+ public const int RepeatedFloatExtensionFieldNumber = 41;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> RepeatedFloatExtension;
+ public const int RepeatedDoubleExtensionFieldNumber = 42;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> RepeatedDoubleExtension;
+ public const int RepeatedBoolExtensionFieldNumber = 43;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> RepeatedBoolExtension;
+ public const int RepeatedStringExtensionFieldNumber = 44;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedStringExtension;
+ public const int RepeatedBytesExtensionFieldNumber = 45;
+ public static pb::GeneratedExtensionBase<scg::IList<pb::ByteString>> RepeatedBytesExtension;
+ public const int RepeatedGroupExtensionFieldNumber = 46;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension>> RepeatedGroupExtension;
+ public const int RepeatedNestedMessageExtensionFieldNumber = 48;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>> RepeatedNestedMessageExtension;
+ public const int RepeatedForeignMessageExtensionFieldNumber = 49;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>> RepeatedForeignMessageExtension;
+ public const int RepeatedImportMessageExtensionFieldNumber = 50;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportMessage>> RepeatedImportMessageExtension;
+ public const int RepeatedNestedEnumExtensionFieldNumber = 51;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>> RepeatedNestedEnumExtension;
+ public const int RepeatedForeignEnumExtensionFieldNumber = 52;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> RepeatedForeignEnumExtension;
+ public const int RepeatedImportEnumExtensionFieldNumber = 53;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportEnum>> RepeatedImportEnumExtension;
+ public const int RepeatedStringPieceExtensionFieldNumber = 54;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedStringPieceExtension;
+ public const int RepeatedCordExtensionFieldNumber = 55;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedCordExtension;
+ public const int RepeatedLazyMessageExtensionFieldNumber = 57;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>> RepeatedLazyMessageExtension;
+ public const int DefaultInt32ExtensionFieldNumber = 61;
+ public static pb::GeneratedExtensionBase<int> DefaultInt32Extension;
+ public const int DefaultInt64ExtensionFieldNumber = 62;
+ public static pb::GeneratedExtensionBase<long> DefaultInt64Extension;
+ public const int DefaultUint32ExtensionFieldNumber = 63;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<uint> DefaultUint32Extension;
+ public const int DefaultUint64ExtensionFieldNumber = 64;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<ulong> DefaultUint64Extension;
+ public const int DefaultSint32ExtensionFieldNumber = 65;
+ public static pb::GeneratedExtensionBase<int> DefaultSint32Extension;
+ public const int DefaultSint64ExtensionFieldNumber = 66;
+ public static pb::GeneratedExtensionBase<long> DefaultSint64Extension;
+ public const int DefaultFixed32ExtensionFieldNumber = 67;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<uint> DefaultFixed32Extension;
+ public const int DefaultFixed64ExtensionFieldNumber = 68;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<ulong> DefaultFixed64Extension;
+ public const int DefaultSfixed32ExtensionFieldNumber = 69;
+ public static pb::GeneratedExtensionBase<int> DefaultSfixed32Extension;
+ public const int DefaultSfixed64ExtensionFieldNumber = 70;
+ public static pb::GeneratedExtensionBase<long> DefaultSfixed64Extension;
+ public const int DefaultFloatExtensionFieldNumber = 71;
+ public static pb::GeneratedExtensionBase<float> DefaultFloatExtension;
+ public const int DefaultDoubleExtensionFieldNumber = 72;
+ public static pb::GeneratedExtensionBase<double> DefaultDoubleExtension;
+ public const int DefaultBoolExtensionFieldNumber = 73;
+ public static pb::GeneratedExtensionBase<bool> DefaultBoolExtension;
+ public const int DefaultStringExtensionFieldNumber = 74;
+ public static pb::GeneratedExtensionBase<string> DefaultStringExtension;
+ public const int DefaultBytesExtensionFieldNumber = 75;
+ public static pb::GeneratedExtensionBase<pb::ByteString> DefaultBytesExtension;
+ public const int DefaultNestedEnumExtensionFieldNumber = 81;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> DefaultNestedEnumExtension;
+ public const int DefaultForeignEnumExtensionFieldNumber = 82;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> DefaultForeignEnumExtension;
+ public const int DefaultImportEnumExtensionFieldNumber = 83;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportEnum> DefaultImportEnumExtension;
+ public const int DefaultStringPieceExtensionFieldNumber = 84;
+ public static pb::GeneratedExtensionBase<string> DefaultStringPieceExtension;
+ public const int DefaultCordExtensionFieldNumber = 85;
+ public static pb::GeneratedExtensionBase<string> DefaultCordExtension;
+ public const int OneofUint32ExtensionFieldNumber = 111;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<uint> OneofUint32Extension;
+ public const int OneofNestedMessageExtensionFieldNumber = 112;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> OneofNestedMessageExtension;
+ public const int OneofStringExtensionFieldNumber = 113;
+ public static pb::GeneratedExtensionBase<string> OneofStringExtension;
+ public const int OneofBytesExtensionFieldNumber = 114;
+ public static pb::GeneratedExtensionBase<pb::ByteString> OneofBytesExtension;
+ public const int MyExtensionStringFieldNumber = 50;
+ public static pb::GeneratedExtensionBase<string> MyExtensionString;
+ public const int MyExtensionIntFieldNumber = 5;
+ public static pb::GeneratedExtensionBase<int> MyExtensionInt;
+ public const int PackedInt32ExtensionFieldNumber = 90;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedInt32Extension;
+ public const int PackedInt64ExtensionFieldNumber = 91;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedInt64Extension;
+ public const int PackedUint32ExtensionFieldNumber = 92;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> PackedUint32Extension;
+ public const int PackedUint64ExtensionFieldNumber = 93;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> PackedUint64Extension;
+ public const int PackedSint32ExtensionFieldNumber = 94;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedSint32Extension;
+ public const int PackedSint64ExtensionFieldNumber = 95;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedSint64Extension;
+ public const int PackedFixed32ExtensionFieldNumber = 96;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> PackedFixed32Extension;
+ public const int PackedFixed64ExtensionFieldNumber = 97;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> PackedFixed64Extension;
+ public const int PackedSfixed32ExtensionFieldNumber = 98;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedSfixed32Extension;
+ public const int PackedSfixed64ExtensionFieldNumber = 99;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedSfixed64Extension;
+ public const int PackedFloatExtensionFieldNumber = 100;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> PackedFloatExtension;
+ public const int PackedDoubleExtensionFieldNumber = 101;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> PackedDoubleExtension;
+ public const int PackedBoolExtensionFieldNumber = 102;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> PackedBoolExtension;
+ public const int PackedEnumExtensionFieldNumber = 103;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> PackedEnumExtension;
+ public const int UnpackedInt32ExtensionFieldNumber = 90;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> UnpackedInt32Extension;
+ public const int UnpackedInt64ExtensionFieldNumber = 91;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> UnpackedInt64Extension;
+ public const int UnpackedUint32ExtensionFieldNumber = 92;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> UnpackedUint32Extension;
+ public const int UnpackedUint64ExtensionFieldNumber = 93;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> UnpackedUint64Extension;
+ public const int UnpackedSint32ExtensionFieldNumber = 94;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> UnpackedSint32Extension;
+ public const int UnpackedSint64ExtensionFieldNumber = 95;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> UnpackedSint64Extension;
+ public const int UnpackedFixed32ExtensionFieldNumber = 96;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> UnpackedFixed32Extension;
+ public const int UnpackedFixed64ExtensionFieldNumber = 97;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> UnpackedFixed64Extension;
+ public const int UnpackedSfixed32ExtensionFieldNumber = 98;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> UnpackedSfixed32Extension;
+ public const int UnpackedSfixed64ExtensionFieldNumber = 99;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> UnpackedSfixed64Extension;
+ public const int UnpackedFloatExtensionFieldNumber = 100;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> UnpackedFloatExtension;
+ public const int UnpackedDoubleExtensionFieldNumber = 101;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> UnpackedDoubleExtension;
+ public const int UnpackedBoolExtensionFieldNumber = 102;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> UnpackedBoolExtension;
+ public const int UnpackedEnumExtensionFieldNumber = 103;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> UnpackedEnumExtension;
+ #endregion
+
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder> internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder> internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder> internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder> internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields, global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Builder> internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ForeignMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder> internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllExtensions, global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Builder> internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Builder> internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Builder> internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedExtension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedExtension, global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Builder> internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequired__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequired, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder> internal__static_protobuf_unittest_TestRequired__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredForeign__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign, global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Builder> internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestForeignNested__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestForeignNested, global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Builder> internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmptyMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Builder> internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Builder> internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges, global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Builder> internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber, global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Builder> internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage, global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder> internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder> internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder> internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Builder> internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder> internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder> internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEagerMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEagerMessage, global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.Builder> internal__static_protobuf_unittest_TestEagerMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestLazyMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestLazyMessage, global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.Builder> internal__static_protobuf_unittest_TestLazyMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Builder> internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames, global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Builder> internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Builder> internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues, global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Builder> internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_SparseEnumMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage, global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.Builder> internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneString__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneString, global::Google.ProtocolBuffers.TestProtos.OneString.Builder> internal__static_protobuf_unittest_OneString__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_MoreString__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreString, global::Google.ProtocolBuffers.TestProtos.MoreString.Builder> internal__static_protobuf_unittest_MoreString__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneBytes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneBytes, global::Google.ProtocolBuffers.TestProtos.OneBytes.Builder> internal__static_protobuf_unittest_OneBytes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_MoreBytes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreBytes, global::Google.ProtocolBuffers.TestProtos.MoreBytes.Builder> internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Int32Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int32Message, global::Google.ProtocolBuffers.TestProtos.Int32Message.Builder> internal__static_protobuf_unittest_Int32Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Uint32Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint32Message, global::Google.ProtocolBuffers.TestProtos.Uint32Message.Builder> internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Int64Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int64Message, global::Google.ProtocolBuffers.TestProtos.Int64Message.Builder> internal__static_protobuf_unittest_Int64Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Uint64Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint64Message, global::Google.ProtocolBuffers.TestProtos.Uint64Message.Builder> internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BoolMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BoolMessage, global::Google.ProtocolBuffers.TestProtos.BoolMessage.Builder> internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof, global::Google.ProtocolBuffers.TestProtos.TestOneof.Builder> internal__static_protobuf_unittest_TestOneof__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder> internal__static_protobuf_unittest_TestOneof_FooGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Builder> internal__static_protobuf_unittest_TestOneofBackwardsCompatible__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder> internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Builder> internal__static_protobuf_unittest_TestOneof2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder> internal__static_protobuf_unittest_TestOneof2_FooGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestOneof2_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredOneof__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Builder> internal__static_protobuf_unittest_TestRequiredOneof__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedTypes, global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Builder> internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes, global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Builder> internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Builder> internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.Builder> internal__static_protobuf_unittest_TestUnpackedExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Builder> internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder> internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes, global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Builder> internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Builder> internal__static_protobuf_unittest_TestParsingMerge__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder> internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage, global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.Builder> internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooRequest, global::Google.ProtocolBuffers.TestProtos.FooRequest.Builder> internal__static_protobuf_unittest_FooRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder> internal__static_protobuf_unittest_FooResponse__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooClientMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooClientMessage, global::Google.ProtocolBuffers.TestProtos.FooClientMessage.Builder> internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooServerMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooServerMessage, global::Google.ProtocolBuffers.TestProtos.FooServerMessage.Builder> internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarRequest, global::Google.ProtocolBuffers.TestProtos.BarRequest.Builder> internal__static_protobuf_unittest_BarRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder> internal__static_protobuf_unittest_BarResponse__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static Unittest() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Ch5nb29nbGUvcHJvdG9idWYvdW5pdHRlc3QucHJvdG8SEXByb3RvYnVmX3Vu",
+ "aXR0ZXN0GiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0LnByb3Rv",
+ "Iu0YCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoO",
+ "b3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgN",
+ "EhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIY",
+ "BSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2Zp",
+ "eGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRp",
+ "b25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEo",
+ "EBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUY",
+ "DCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJp",
+ "bmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSRAoNb3B0aW9uYWxn",
+ "cm91cBgQIAEoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5P",
+ "cHRpb25hbEdyb3VwEk4KF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgL",
+ "Mi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3Nh",
+ "Z2USQwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiEucHJvdG9i",
+ "dWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXb3B0aW9uYWxfaW1wb3J0",
+ "X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1w",
+ "b3J0TWVzc2FnZRJIChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIqLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFW9w",
+ "dGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LkZvcmVpZ25FbnVtEkIKFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMiQu",
+ "cHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVb3B0aW9u",
+ "YWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkg",
+ "ASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiAB",
+ "KAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVz",
+ "c2FnZRJQChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyLS5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoO",
+ "cmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMS",
+ "FwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgi",
+ "IAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2lu",
+ "dDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0",
+ "ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZ",
+ "ChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgp",
+ "IAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9v",
+ "bBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRf",
+ "Ynl0ZXMYLSADKAwSRAoNcmVwZWF0ZWRncm91cBguIAMoCjItLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwEk4KF3JlcGVh",
+ "dGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3Qu",
+ "VGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYcmVwZWF0ZWRfZm9yZWln",
+ "bl9tZXNzYWdlGDEgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1l",
+ "c3NhZ2USSAoXcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2UYMiADKAsyJy5wcm90",
+ "b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRyZXBlYXRl",
+ "ZF9uZXN0ZWRfZW51bRgzIAMoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxUeXBlcy5OZXN0ZWRFbnVtEj0KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0",
+ "IAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFHJlcGVh",
+ "dGVkX2ltcG9ydF9lbnVtGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1w",
+ "b3J0LkltcG9ydEVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJ",
+ "QgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJQChVyZXBlYXRlZF9s",
+ "YXp5X21lc3NhZ2UYOSADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "VHlwZXMuTmVzdGVkTWVzc2FnZUICKAESGQoNZGVmYXVsdF9pbnQzMhg9IAEo",
+ "BToCNDESGQoNZGVmYXVsdF9pbnQ2NBg+IAEoAzoCNDISGgoOZGVmYXVsdF91",
+ "aW50MzIYPyABKA06AjQzEhoKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NBIb",
+ "Cg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1EhoKDmRlZmF1bHRfc2ludDY0",
+ "GEIgASgSOgI0NhIbCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3EhsKD2Rl",
+ "ZmF1bHRfZml4ZWQ2NBhEIAEoBjoCNDgSHAoQZGVmYXVsdF9zZml4ZWQzMhhF",
+ "IAEoDzoCNDkSHQoQZGVmYXVsdF9zZml4ZWQ2NBhGIAEoEDoDLTUwEhsKDWRl",
+ "ZmF1bHRfZmxvYXQYRyABKAI6BDUxLjUSHQoOZGVmYXVsdF9kb3VibGUYSCAB",
+ "KAE6BTUyMDAwEhoKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZRIdCg5kZWZh",
+ "dWx0X3N0cmluZxhKIAEoCToFaGVsbG8SHAoNZGVmYXVsdF9ieXRlcxhLIAEo",
+ "DDoFd29ybGQSTAoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIqLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOgNCQVISSQoU",
+ "ZGVmYXVsdF9mb3JlaWduX2VudW0YUiABKA4yHi5wcm90b2J1Zl91bml0dGVz",
+ "dC5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVISTQoTZGVmYXVsdF9pbXBvcnRf",
+ "ZW51bRhTIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRF",
+ "bnVtOgpJTVBPUlRfQkFSEiUKFGRlZmF1bHRfc3RyaW5nX3BpZWNlGFQgASgJ",
+ "OgNhYmNCAggCEh0KDGRlZmF1bHRfY29yZBhVIAEoCToDMTIzQgIIARIWCgxv",
+ "bmVvZl91aW50MzIYbyABKA1IABJNChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhw",
+ "IAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRN",
+ "ZXNzYWdlSAASFgoMb25lb2Zfc3RyaW5nGHEgASgJSAASFQoLb25lb2ZfYnl0",
+ "ZXMYciABKAxIABobCg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFGhoKDU9w",
+ "dGlvbmFsR3JvdXASCQoBYRgRIAEoBRoaCg1SZXBlYXRlZEdyb3VwEgkKAWEY",
+ "LyABKAUiOQoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQ",
+ "AxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCJ8ChJOZXN0ZWRU",
+ "ZXN0QWxsVHlwZXMSNAoFY2hpbGQYASABKAsyJS5wcm90b2J1Zl91bml0dGVz",
+ "dC5OZXN0ZWRUZXN0QWxsVHlwZXMSMAoHcGF5bG9hZBgCIAEoCzIfLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyI0ChRUZXN0RGVwcmVjYXRlZEZp",
+ "ZWxkcxIcChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYASIbCg5Gb3JlaWdu",
+ "TWVzc2FnZRIJCgFjGAEgASgFIh0KEVRlc3RBbGxFeHRlbnNpb25zKggIARCA",
+ "gICAAiIkChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIJCgFhGBEgASgFIiQK",
+ "F1JlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uEgkKAWEYLyABKAUimAEKE1Rlc3RO",
+ "ZXN0ZWRFeHRlbnNpb24yOQoEdGVzdBIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxFeHRlbnNpb25zGOoHIAEoCToEdGVzdDJGChduZXN0ZWRfc3RyaW5n",
+ "X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNp",
+ "b25zGOsHIAEoCSLVBQoMVGVzdFJlcXVpcmVkEgkKAWEYASACKAUSDgoGZHVt",
+ "bXkyGAIgASgFEgkKAWIYAyACKAUSDgoGZHVtbXk0GAQgASgFEg4KBmR1bW15",
+ "NRgFIAEoBRIOCgZkdW1teTYYBiABKAUSDgoGZHVtbXk3GAcgASgFEg4KBmR1",
+ "bW15OBgIIAEoBRIOCgZkdW1teTkYCSABKAUSDwoHZHVtbXkxMBgKIAEoBRIP",
+ "CgdkdW1teTExGAsgASgFEg8KB2R1bW15MTIYDCABKAUSDwoHZHVtbXkxMxgN",
+ "IAEoBRIPCgdkdW1teTE0GA4gASgFEg8KB2R1bW15MTUYDyABKAUSDwoHZHVt",
+ "bXkxNhgQIAEoBRIPCgdkdW1teTE3GBEgASgFEg8KB2R1bW15MTgYEiABKAUS",
+ "DwoHZHVtbXkxORgTIAEoBRIPCgdkdW1teTIwGBQgASgFEg8KB2R1bW15MjEY",
+ "FSABKAUSDwoHZHVtbXkyMhgWIAEoBRIPCgdkdW1teTIzGBcgASgFEg8KB2R1",
+ "bW15MjQYGCABKAUSDwoHZHVtbXkyNRgZIAEoBRIPCgdkdW1teTI2GBogASgF",
+ "Eg8KB2R1bW15MjcYGyABKAUSDwoHZHVtbXkyOBgcIAEoBRIPCgdkdW1teTI5",
+ "GB0gASgFEg8KB2R1bW15MzAYHiABKAUSDwoHZHVtbXkzMRgfIAEoBRIPCgdk",
+ "dW1teTMyGCAgASgFEgkKAWMYISACKAUyVgoGc2luZ2xlEiQucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY6AcgASgLMh8ucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdFJlcXVpcmVkMlUKBW11bHRpEiQucHJvdG9idWZfdW5p",
+ "dHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY6QcgAygLMh8ucHJvdG9idWZfdW5p",
+ "dHRlc3QuVGVzdFJlcXVpcmVkIpoBChNUZXN0UmVxdWlyZWRGb3JlaWduEjkK",
+ "EG9wdGlvbmFsX21lc3NhZ2UYASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5U",
+ "ZXN0UmVxdWlyZWQSOQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzIfLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJlZBINCgVkdW1teRgDIAEoBSJaChFU",
+ "ZXN0Rm9yZWlnbk5lc3RlZBJFCg5mb3JlaWduX25lc3RlZBgBIAEoCzItLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlIhIK",
+ "EFRlc3RFbXB0eU1lc3NhZ2UiKgoeVGVzdEVtcHR5TWVzc2FnZVdpdGhFeHRl",
+ "bnNpb25zKggIARCAgICAAiI3ChtUZXN0TXVsdGlwbGVFeHRlbnNpb25SYW5n",
+ "ZXMqBAgqECsqBgivIBCUISoKCICABBCAgICAAiI0ChhUZXN0UmVhbGx5TGFy",
+ "Z2VUYWdOdW1iZXISCQoBYRgBIAEoBRINCgJiYhj///9/IAEoBSJVChRUZXN0",
+ "UmVjdXJzaXZlTWVzc2FnZRIyCgFhGAEgASgLMicucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USCQoBaRgCIAEoBSJLChRUZXN0TXV0",
+ "dWFsUmVjdXJzaW9uQRIzCgJiYhgBIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RNdXR1YWxSZWN1cnNpb25CImIKFFRlc3RNdXR1YWxSZWN1cnNpb25C",
+ "EjIKAWEYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVj",
+ "dXJzaW9uQRIWCg5vcHRpb25hbF9pbnQzMhgCIAEoBSKzAQoSVGVzdER1cEZp",
+ "ZWxkTnVtYmVyEgkKAWEYASABKAUSNgoDZm9vGAIgASgKMikucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdER1cEZpZWxkTnVtYmVyLkZvbxI2CgNiYXIYAyABKAoy",
+ "KS5wcm90b2J1Zl91bml0dGVzdC5UZXN0RHVwRmllbGROdW1iZXIuQmFyGhAK",
+ "A0ZvbxIJCgFhGAEgASgFGhAKA0JhchIJCgFhGAEgASgFIkwKEFRlc3RFYWdl",
+ "ck1lc3NhZ2USOAoLc3ViX21lc3NhZ2UYASABKAsyHy5wcm90b2J1Zl91bml0",
+ "dGVzdC5UZXN0QWxsVHlwZXNCAigAIksKD1Rlc3RMYXp5TWVzc2FnZRI4Cgtz",
+ "dWJfbWVzc2FnZRgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxU",
+ "eXBlc0ICKAEigAIKGFRlc3ROZXN0ZWRNZXNzYWdlSGFzQml0cxJaChdvcHRp",
+ "b25hbF9uZXN0ZWRfbWVzc2FnZRgBIAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3ROZXN0ZWRNZXNzYWdlSGFzQml0cy5OZXN0ZWRNZXNzYWdlGocBCg1O",
+ "ZXN0ZWRNZXNzYWdlEiQKHG5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfaW50MzIY",
+ "ASADKAUSUAolbmVzdGVkbWVzc2FnZV9yZXBlYXRlZF9mb3JlaWdubWVzc2Fn",
+ "ZRgCIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlIuUD",
+ "ChdUZXN0Q2FtZWxDYXNlRmllbGROYW1lcxIWCg5QcmltaXRpdmVGaWVsZBgB",
+ "IAEoBRITCgtTdHJpbmdGaWVsZBgCIAEoCRIxCglFbnVtRmllbGQYAyABKA4y",
+ "Hi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bRI3CgxNZXNzYWdlRmll",
+ "bGQYBCABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRIc",
+ "ChBTdHJpbmdQaWVjZUZpZWxkGAUgASgJQgIIAhIVCglDb3JkRmllbGQYBiAB",
+ "KAlCAggBEh4KFlJlcGVhdGVkUHJpbWl0aXZlRmllbGQYByADKAUSGwoTUmVw",
+ "ZWF0ZWRTdHJpbmdGaWVsZBgIIAMoCRI5ChFSZXBlYXRlZEVudW1GaWVsZBgJ",
+ "IAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEj8KFFJlcGVh",
+ "dGVkTWVzc2FnZUZpZWxkGAogAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9y",
+ "ZWlnbk1lc3NhZ2USJAoYUmVwZWF0ZWRTdHJpbmdQaWVjZUZpZWxkGAsgAygJ",
+ "QgIIAhIdChFSZXBlYXRlZENvcmRGaWVsZBgMIAMoCUICCAEi1QEKElRlc3RG",
+ "aWVsZE9yZGVyaW5ncxIRCglteV9zdHJpbmcYCyABKAkSDgoGbXlfaW50GAEg",
+ "ASgDEhAKCG15X2Zsb2F0GGUgASgCElUKF29wdGlvbmFsX25lc3RlZF9tZXNz",
+ "YWdlGMgBIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVy",
+ "aW5ncy5OZXN0ZWRNZXNzYWdlGicKDU5lc3RlZE1lc3NhZ2USCgoCb28YAiAB",
+ "KAMSCgoCYmIYASABKAUqBAgCEAsqBAgMEGUitgcKGFRlc3RFeHRyZW1lRGVm",
+ "YXVsdFZhbHVlcxI/Cg1lc2NhcGVkX2J5dGVzGAEgASgMOihcMDAwXDAwMVww",
+ "MDdcMDEwXDAxNFxuXHJcdFwwMTNcXFwnXCJcMzc2EiAKDGxhcmdlX3VpbnQz",
+ "MhgCIAEoDToKNDI5NDk2NzI5NRIqCgxsYXJnZV91aW50NjQYAyABKAQ6FDE4",
+ "NDQ2NzQ0MDczNzA5NTUxNjE1EiAKC3NtYWxsX2ludDMyGAQgASgFOgstMjE0",
+ "NzQ4MzY0NxIpCgtzbWFsbF9pbnQ2NBgFIAEoAzoULTkyMjMzNzIwMzY4NTQ3",
+ "NzU4MDcSJwoScmVhbGx5X3NtYWxsX2ludDMyGBUgASgFOgstMjE0NzQ4MzY0",
+ "OBIwChJyZWFsbHlfc21hbGxfaW50NjQYFiABKAM6FC05MjIzMzcyMDM2ODU0",
+ "Nzc1ODA4EhgKC3V0Zjhfc3RyaW5nGAYgASgJOgPhiLQSFQoKemVyb19mbG9h",
+ "dBgHIAEoAjoBMBIUCglvbmVfZmxvYXQYCCABKAI6ATESGAoLc21hbGxfZmxv",
+ "YXQYCSABKAI6AzEuNRIeChJuZWdhdGl2ZV9vbmVfZmxvYXQYCiABKAI6Ai0x",
+ "EhwKDm5lZ2F0aXZlX2Zsb2F0GAsgASgCOgQtMS41EhoKC2xhcmdlX2Zsb2F0",
+ "GAwgASgCOgUyZSswOBIkChRzbWFsbF9uZWdhdGl2ZV9mbG9hdBgNIAEoAjoG",
+ "LThlLTI4EhcKCmluZl9kb3VibGUYDiABKAE6A2luZhIcCg5uZWdfaW5mX2Rv",
+ "dWJsZRgPIAEoAToELWluZhIXCgpuYW5fZG91YmxlGBAgASgBOgNuYW4SFgoJ",
+ "aW5mX2Zsb2F0GBEgASgCOgNpbmYSGwoNbmVnX2luZl9mbG9hdBgSIAEoAjoE",
+ "LWluZhIWCgluYW5fZmxvYXQYEyABKAI6A25hbhIrCgxjcHBfdHJpZ3JhcGgY",
+ "FCABKAk6FT8gPyA/PyA/PyA/Pz8gPz8vID8/LRIgChBzdHJpbmdfd2l0aF96",
+ "ZXJvGBcgASgJOgZoZWwAbG8SIgoPYnl0ZXNfd2l0aF96ZXJvGBggASgMOgl3",
+ "b3JcMDAwbGQSKAoWc3RyaW5nX3BpZWNlX3dpdGhfemVybxgZIAEoCToEYWIA",
+ "Y0ICCAISIAoOY29yZF93aXRoX3plcm8YGiABKAk6BDEyADNCAggBEiYKEnJl",
+ "cGxhY2VtZW50X3N0cmluZxgbIAEoCToKJHt1bmtub3dufSJLChFTcGFyc2VF",
+ "bnVtTWVzc2FnZRI2CgtzcGFyc2VfZW51bRgBIAEoDjIhLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LlRlc3RTcGFyc2VFbnVtIhkKCU9uZVN0cmluZxIMCgRkYXRhGAEg",
+ "ASgJIhoKCk1vcmVTdHJpbmcSDAoEZGF0YRgBIAMoCSIYCghPbmVCeXRlcxIM",
+ "CgRkYXRhGAEgASgMIhkKCU1vcmVCeXRlcxIMCgRkYXRhGAEgAygMIhwKDElu",
+ "dDMyTWVzc2FnZRIMCgRkYXRhGAEgASgFIh0KDVVpbnQzMk1lc3NhZ2USDAoE",
+ "ZGF0YRgBIAEoDSIcCgxJbnQ2NE1lc3NhZ2USDAoEZGF0YRgBIAEoAyIdCg1V",
+ "aW50NjRNZXNzYWdlEgwKBGRhdGEYASABKAQiGwoLQm9vbE1lc3NhZ2USDAoE",
+ "ZGF0YRgBIAEoCCLQAQoJVGVzdE9uZW9mEhEKB2Zvb19pbnQYASABKAVIABIU",
+ "Cgpmb29fc3RyaW5nGAIgASgJSAASNgoLZm9vX21lc3NhZ2UYAyABKAsyHy5w",
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNIABI5Cghmb29ncm91cBgE",
+ "IAEoCjIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZi5Gb29Hcm91cEgA",
+ "GiAKCEZvb0dyb3VwEgkKAWEYBSABKAUSCQoBYhgGIAEoCUIFCgNmb28i5wEK",
+ "HFRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUSDwoHZm9vX2ludBgBIAEo",
+ "BRISCgpmb29fc3RyaW5nGAIgASgJEjQKC2Zvb19tZXNzYWdlGAMgASgLMh8u",
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEkoKCGZvb2dyb3VwGAQg",
+ "ASgKMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mQmFja3dhcmRzQ29t",
+ "cGF0aWJsZS5Gb29Hcm91cBogCghGb29Hcm91cBIJCgFhGAUgASgFEgkKAWIY",
+ "BiABKAkingYKClRlc3RPbmVvZjISEQoHZm9vX2ludBgBIAEoBUgAEhQKCmZv",
+ "b19zdHJpbmcYAiABKAlIABIWCghmb29fY29yZBgDIAEoCUICCAFIABIeChBm",
+ "b29fc3RyaW5nX3BpZWNlGAQgASgJQgIIAkgAEhMKCWZvb19ieXRlcxgFIAEo",
+ "DEgAEjwKCGZvb19lbnVtGAYgASgOMigucHJvdG9idWZfdW5pdHRlc3QuVGVz",
+ "dE9uZW9mMi5OZXN0ZWRFbnVtSAASQgoLZm9vX21lc3NhZ2UYByABKAsyKy5w",
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0T25lb2YyLk5lc3RlZE1lc3NhZ2VIABI6",
+ "Cghmb29ncm91cBgIIAEoCjImLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVv",
+ "ZjIuRm9vR3JvdXBIABJLChBmb29fbGF6eV9tZXNzYWdlGAsgASgLMisucHJv",
+ "dG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlQgIoAUgA",
+ "EhQKB2Jhcl9pbnQYDCABKAU6ATVIARIcCgpiYXJfc3RyaW5nGA0gASgJOgZT",
+ "VFJJTkdIARIcCghiYXJfY29yZBgOIAEoCToEQ09SREICCAFIARImChBiYXJf",
+ "c3RyaW5nX3BpZWNlGA8gASgJOgZTUElFQ0VCAggCSAESGgoJYmFyX2J5dGVz",
+ "GBAgASgMOgVCWVRFU0gBEkEKCGJhcl9lbnVtGBEgASgOMigucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtOgNCQVJIARIPCgdiYXpf",
+ "aW50GBIgASgFEhcKCmJhel9zdHJpbmcYEyABKAk6A0JBWhogCghGb29Hcm91",
+ "cBIJCgFhGAkgASgFEgkKAWIYCiABKAkaMwoNTmVzdGVkTWVzc2FnZRIPCgdx",
+ "dXhfaW50GAEgASgDEhEKCWNvcmdlX2ludBgCIAMoBSInCgpOZXN0ZWRFbnVt",
+ "EgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADQgUKA2Zvb0IFCgNiYXIiuAEK",
+ "EVRlc3RSZXF1aXJlZE9uZW9mEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29f",
+ "c3RyaW5nGAIgASgJSAASSQoLZm9vX21lc3NhZ2UYAyABKAsyMi5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0UmVxdWlyZWRPbmVvZi5OZXN0ZWRNZXNzYWdlSAAa",
+ "KAoNTmVzdGVkTWVzc2FnZRIXCg9yZXF1aXJlZF9kb3VibGUYASACKAFCBQoD",
+ "Zm9vIqoDCg9UZXN0UGFja2VkVHlwZXMSGAoMcGFja2VkX2ludDMyGFogAygF",
+ "QgIQARIYCgxwYWNrZWRfaW50NjQYWyADKANCAhABEhkKDXBhY2tlZF91aW50",
+ "MzIYXCADKA1CAhABEhkKDXBhY2tlZF91aW50NjQYXSADKARCAhABEhkKDXBh",
+ "Y2tlZF9zaW50MzIYXiADKBFCAhABEhkKDXBhY2tlZF9zaW50NjQYXyADKBJC",
+ "AhABEhoKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQARIaCg5wYWNrZWRfZml4",
+ "ZWQ2NBhhIAMoBkICEAESGwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQARIb",
+ "Cg9wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhABEhgKDHBhY2tlZF9mbG9hdBhk",
+ "IAMoAkICEAESGQoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAESFwoLcGFja2Vk",
+ "X2Jvb2wYZiADKAhCAhABEjcKC3BhY2tlZF9lbnVtGGcgAygOMh4ucHJvdG9i",
+ "dWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhABIsgDChFUZXN0VW5wYWNrZWRU",
+ "eXBlcxIaCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEAASGgoOdW5wYWNrZWRf",
+ "aW50NjQYWyADKANCAhAAEhsKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEAAS",
+ "GwoPdW5wYWNrZWRfdWludDY0GF0gAygEQgIQABIbCg91bnBhY2tlZF9zaW50",
+ "MzIYXiADKBFCAhAAEhsKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEAASHAoQ",
+ "dW5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2",
+ "NBhhIAMoBkICEAASHQoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAEh0K",
+ "EXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQABIaCg51bnBhY2tlZF9mbG9h",
+ "dBhkIAMoAkICEAASGwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQABIZCg11",
+ "bnBhY2tlZF9ib29sGGYgAygIQgIQABI5Cg11bnBhY2tlZF9lbnVtGGcgAygO",
+ "Mh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhAAIiAKFFRlc3RQ",
+ "YWNrZWRFeHRlbnNpb25zKggIARCAgICAAiIiChZUZXN0VW5wYWNrZWRFeHRl",
+ "bnNpb25zKggIARCAgICAAiKZBAoVVGVzdER5bmFtaWNFeHRlbnNpb25zEhkK",
+ "EHNjYWxhcl9leHRlbnNpb24Y0A8gASgHEjcKDmVudW1fZXh0ZW5zaW9uGNEP",
+ "IAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtElkKFmR5bmFt",
+ "aWNfZW51bV9leHRlbnNpb24Y0g8gASgOMjgucHJvdG9idWZfdW5pdHRlc3Qu",
+ "VGVzdER5bmFtaWNFeHRlbnNpb25zLkR5bmFtaWNFbnVtVHlwZRI9ChFtZXNz",
+ "YWdlX2V4dGVuc2lvbhjTDyABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3Jl",
+ "aWduTWVzc2FnZRJfChlkeW5hbWljX21lc3NhZ2VfZXh0ZW5zaW9uGNQPIAEo",
+ "CzI7LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REeW5hbWljRXh0ZW5zaW9ucy5E",
+ "eW5hbWljTWVzc2FnZVR5cGUSGwoScmVwZWF0ZWRfZXh0ZW5zaW9uGNUPIAMo",
+ "CRIdChBwYWNrZWRfZXh0ZW5zaW9uGNYPIAMoEUICEAEaLAoSRHluYW1pY01l",
+ "c3NhZ2VUeXBlEhYKDWR5bmFtaWNfZmllbGQYtBAgASgFIkcKD0R5bmFtaWNF",
+ "bnVtVHlwZRIQCgtEWU5BTUlDX0ZPTxCYERIQCgtEWU5BTUlDX0JBUhCZERIQ",
+ "CgtEWU5BTUlDX0JBWhCaESLAAQojVGVzdFJlcGVhdGVkU2NhbGFyRGlmZmVy",
+ "ZW50VGFnU2l6ZXMSGAoQcmVwZWF0ZWRfZml4ZWQzMhgMIAMoBxIWCg5yZXBl",
+ "YXRlZF9pbnQzMhgNIAMoBRIZChByZXBlYXRlZF9maXhlZDY0GP4PIAMoBhIX",
+ "Cg5yZXBlYXRlZF9pbnQ2NBj/DyADKAMSGAoOcmVwZWF0ZWRfZmxvYXQY/v8P",
+ "IAMoAhIZCg9yZXBlYXRlZF91aW50NjQY//8PIAMoBCL3CQoQVGVzdFBhcnNp",
+ "bmdNZXJnZRI7ChJyZXF1aXJlZF9hbGxfdHlwZXMYASACKAsyHy5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSOwoSb3B0aW9uYWxfYWxsX3R5cGVz",
+ "GAIgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJl",
+ "cGVhdGVkX2FsbF90eXBlcxgDIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxUeXBlcxJICg1vcHRpb25hbGdyb3VwGAogASgKMjEucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdFBhcnNpbmdNZXJnZS5PcHRpb25hbEdyb3VwEkgKDXJl",
+ "cGVhdGVkZ3JvdXAYFCADKAoyMS5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFy",
+ "c2luZ01lcmdlLlJlcGVhdGVkR3JvdXAaqgQKF1JlcGVhdGVkRmllbGRzR2Vu",
+ "ZXJhdG9yEi8KBmZpZWxkMRgBIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxUeXBlcxIvCgZmaWVsZDIYAiADKAsyHy5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0QWxsVHlwZXMSLwoGZmllbGQzGAMgAygLMh8ucHJvdG9idWZfdW5p",
+ "dHRlc3QuVGVzdEFsbFR5cGVzElIKBmdyb3VwMRgKIAMoCjJCLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5l",
+ "cmF0b3IuR3JvdXAxElIKBmdyb3VwMhgUIAMoCjJCLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RQYXJzaW5nTWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3Iu",
+ "R3JvdXAyEi4KBGV4dDEY6AcgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVz",
+ "dEFsbFR5cGVzEi4KBGV4dDIY6QcgAygLMh8ucHJvdG9idWZfdW5pdHRlc3Qu",
+ "VGVzdEFsbFR5cGVzGjkKBkdyb3VwMRIvCgZmaWVsZDEYCyABKAsyHy5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMaOQoGR3JvdXAyEi8KBmZpZWxk",
+ "MRgVIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxpSCg1P",
+ "cHRpb25hbEdyb3VwEkEKGG9wdGlvbmFsX2dyb3VwX2FsbF90eXBlcxgLIAEo",
+ "CzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxpSCg1SZXBlYXRl",
+ "ZEdyb3VwEkEKGHJlcGVhdGVkX2dyb3VwX2FsbF90eXBlcxgVIAEoCzIfLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcyoJCOgHEICAgIACMlsKDG9w",
+ "dGlvbmFsX2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVy",
+ "Z2UY6AcgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzMlsK",
+ "DHJlcGVhdGVkX2V4dBIjLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5n",
+ "TWVyZ2UY6QcgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVz",
+ "IkQKG1Rlc3RDb21tZW50SW5qZWN0aW9uTWVzc2FnZRIlCgFhGAEgASgJOhoq",
+ "LyA8LSBOZWl0aGVyIHNob3VsZCB0aGlzLiIMCgpGb29SZXF1ZXN0Ig0KC0Zv",
+ "b1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVz",
+ "c2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlKkAKC0ZvcmVpZ25F",
+ "bnVtEg8KC0ZPUkVJR05fRk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JF",
+ "SUdOX0JBWhAGKksKFFRlc3RFbnVtV2l0aER1cFZhbHVlEggKBEZPTzEQARII",
+ "CgRCQVIxEAISBwoDQkFaEAMSCAoERk9PMhABEggKBEJBUjIQAhoCEAEqiQEK",
+ "DlRlc3RTcGFyc2VFbnVtEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucD",
+ "Eg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghT",
+ "UEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9GEAASDAoIU1BBUlNFX0cQ",
+ "AjKZAQoLVGVzdFNlcnZpY2USRAoDRm9vEh0ucHJvdG9idWZfdW5pdHRlc3Qu",
+ "Rm9vUmVxdWVzdBoeLnByb3RvYnVmX3VuaXR0ZXN0LkZvb1Jlc3BvbnNlEkQK",
+ "A0JhchIdLnByb3RvYnVmX3VuaXR0ZXN0LkJhclJlcXVlc3QaHi5wcm90b2J1",
+ "Zl91bml0dGVzdC5CYXJSZXNwb25zZTpGChhvcHRpb25hbF9pbnQzMl9leHRl",
+ "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgB",
+ "IAEoBTpGChhvcHRpb25hbF9pbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91",
+ "bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgCIAEoAzpHChlvcHRpb25hbF91",
+ "aW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4",
+ "dGVuc2lvbnMYAyABKA06RwoZb3B0aW9uYWxfdWludDY0X2V4dGVuc2lvbhIk",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAQgASgEOkcK",
+ "GW9wdGlvbmFsX3NpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0QWxsRXh0ZW5zaW9ucxgFIAEoETpHChlvcHRpb25hbF9zaW50NjRf",
+ "ZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv",
+ "bnMYBiABKBI6SAoab3B0aW9uYWxfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgHIAEoBzpIChpvcHRp",
+ "b25hbF9maXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxFeHRlbnNpb25zGAggASgGOkkKG29wdGlvbmFsX3NmaXhlZDMyX2V4",
+ "dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25z",
+ "GAkgASgPOkkKG29wdGlvbmFsX3NmaXhlZDY0X2V4dGVuc2lvbhIkLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAogASgQOkYKGG9wdGlv",
+ "bmFsX2Zsb2F0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxFeHRlbnNpb25zGAsgASgCOkcKGW9wdGlvbmFsX2RvdWJsZV9leHRlbnNp",
+ "b24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgMIAEo",
+ "ATpFChdvcHRpb25hbF9ib29sX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGA0gASgIOkcKGW9wdGlvbmFsX3N0cmlu",
+ "Z19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5z",
+ "aW9ucxgOIAEoCTpGChhvcHRpb25hbF9ieXRlc19leHRlbnNpb24SJC5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgPIAEoDDpxChdvcHRp",
+ "b25hbGdyb3VwX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxFeHRlbnNpb25zGBAgASgKMioucHJvdG9idWZfdW5pdHRlc3QuT3B0aW9u",
+ "YWxHcm91cF9leHRlbnNpb246fgohb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2Vf",
+ "ZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv",
+ "bnMYEiABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVz",
+ "dGVkTWVzc2FnZTpzCiJvcHRpb25hbF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5z",
+ "aW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYEyAB",
+ "KAsyIS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZTp4CiFvcHRp",
+ "b25hbF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0",
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgUIAEoCzInLnByb3RvYnVmX3VuaXR0",
+ "ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlOngKHm9wdGlvbmFsX25lc3RlZF9l",
+ "bnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRl",
+ "bnNpb25zGBUgASgOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVz",
+ "Lk5lc3RlZEVudW06bQofb3B0aW9uYWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lv",
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBYgASgO",
+ "Mh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW06cgoeb3B0aW9uYWxf",
+ "aW1wb3J0X2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVz",
+ "dEFsbEV4dGVuc2lvbnMYFyABKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBv",
+ "cnQuSW1wb3J0RW51bTpRCh9vcHRpb25hbF9zdHJpbmdfcGllY2VfZXh0ZW5z",
+ "aW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYGCAB",
+ "KAlCAggCOkkKF29wdGlvbmFsX2NvcmRfZXh0ZW5zaW9uEiQucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYGSABKAlCAggBOoUBCihvcHRp",
+ "b25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYGiABKAsyLS5wcm90b2J1",
+ "Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZTqAAQofb3B0",
+ "aW9uYWxfbGF6eV9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBsgASgLMi0ucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBOkYKGHJlcGVhdGVk",
+ "X2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF",
+ "eHRlbnNpb25zGB8gAygFOkYKGHJlcGVhdGVkX2ludDY0X2V4dGVuc2lvbhIk",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCAgAygDOkcK",
+ "GXJlcGVhdGVkX3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0QWxsRXh0ZW5zaW9ucxghIAMoDTpHChlyZXBlYXRlZF91aW50NjRf",
+ "ZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv",
+ "bnMYIiADKAQ6RwoZcmVwZWF0ZWRfc2ludDMyX2V4dGVuc2lvbhIkLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCMgAygROkcKGXJlcGVh",
+ "dGVkX3NpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0",
+ "QWxsRXh0ZW5zaW9ucxgkIAMoEjpIChpyZXBlYXRlZF9maXhlZDMyX2V4dGVu",
+ "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCUg",
+ "AygHOkgKGnJlcGVhdGVkX2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJiADKAY6SQobcmVwZWF0ZWRf",
+ "c2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFs",
+ "bEV4dGVuc2lvbnMYJyADKA86SQobcmVwZWF0ZWRfc2ZpeGVkNjRfZXh0ZW5z",
+ "aW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKCAD",
+ "KBA6RgoYcmVwZWF0ZWRfZmxvYXRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5p",
+ "dHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKSADKAI6RwoZcmVwZWF0ZWRfZG91",
+ "YmxlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRl",
+ "bnNpb25zGCogAygBOkUKF3JlcGVhdGVkX2Jvb2xfZXh0ZW5zaW9uEiQucHJv",
+ "dG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKyADKAg6RwoZcmVw",
+ "ZWF0ZWRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxFeHRlbnNpb25zGCwgAygJOkYKGHJlcGVhdGVkX2J5dGVzX2V4dGVu",
+ "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGC0g",
+ "AygMOnEKF3JlcGVhdGVkZ3JvdXBfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5p",
+ "dHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYLiADKAoyKi5wcm90b2J1Zl91bml0",
+ "dGVzdC5SZXBlYXRlZEdyb3VwX2V4dGVuc2lvbjp+CiFyZXBlYXRlZF9uZXN0",
+ "ZWRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0",
+ "QWxsRXh0ZW5zaW9ucxgwIAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxUeXBlcy5OZXN0ZWRNZXNzYWdlOnMKInJlcGVhdGVkX2ZvcmVpZ25fbWVz",
+ "c2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0",
+ "ZW5zaW9ucxgxIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNz",
+ "YWdlOngKIXJlcGVhdGVkX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIkLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDIgAygLMicucHJv",
+ "dG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2U6eAoecmVwZWF0",
+ "ZWRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3Qu",
+ "VGVzdEFsbEV4dGVuc2lvbnMYMyADKA4yKi5wcm90b2J1Zl91bml0dGVzdC5U",
+ "ZXN0QWxsVHlwZXMuTmVzdGVkRW51bTptCh9yZXBlYXRlZF9mb3JlaWduX2Vu",
+ "dW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu",
+ "c2lvbnMYNCADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bTpy",
+ "Ch5yZXBlYXRlZF9pbXBvcnRfZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91",
+ "bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg1IAMoDjIkLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtOlEKH3JlcGVhdGVkX3N0cmluZ19w",
+ "aWVjZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0",
+ "ZW5zaW9ucxg2IAMoCUICCAI6SQoXcmVwZWF0ZWRfY29yZF9leHRlbnNpb24S",
+ "JC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg3IAMoCUIC",
+ "CAE6gAEKH3JlcGVhdGVkX2xhenlfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg5IAMoCzItLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoATpJ",
+ "ChdkZWZhdWx0X2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RBbGxFeHRlbnNpb25zGD0gASgFOgI0MTpJChdkZWZhdWx0X2ludDY0",
+ "X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNp",
+ "b25zGD4gASgDOgI0MjpKChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SJC5w",
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg/IAEoDToCNDM6",
+ "SgoYZGVmYXVsdF91aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYQCABKAQ6AjQ0OksKGGRlZmF1bHRfc2lu",
+ "dDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRl",
+ "bnNpb25zGEEgASgROgMtNDU6SgoYZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9u",
+ "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYQiABKBI6",
+ "AjQ2OksKGWRlZmF1bHRfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91",
+ "bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhDIAEoBzoCNDc6SwoZZGVmYXVs",
+ "dF9maXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxFeHRlbnNpb25zGEQgASgGOgI0ODpMChpkZWZhdWx0X3NmaXhlZDMyX2V4",
+ "dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25z",
+ "GEUgASgPOgI0OTpNChpkZWZhdWx0X3NmaXhlZDY0X2V4dGVuc2lvbhIkLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEYgASgQOgMtNTA6",
+ "SwoXZGVmYXVsdF9mbG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0QWxsRXh0ZW5zaW9ucxhHIAEoAjoENTEuNTpNChhkZWZhdWx0X2Rv",
+ "dWJsZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0",
+ "ZW5zaW9ucxhIIAEoAToFNTIwMDA6SgoWZGVmYXVsdF9ib29sX2V4dGVuc2lv",
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEkgASgI",
+ "OgR0cnVlOk0KGGRlZmF1bHRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEogASgJOgVoZWxsbzpMChdk",
+ "ZWZhdWx0X2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxFeHRlbnNpb25zGEsgASgMOgV3b3JsZDp8Ch1kZWZhdWx0X25lc3Rl",
+ "ZF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF",
+ "eHRlbnNpb25zGFEgASgOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5",
+ "cGVzLk5lc3RlZEVudW06A0JBUjp5Ch5kZWZhdWx0X2ZvcmVpZ25fZW51bV9l",
+ "eHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9u",
+ "cxhSIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtOgtGT1JF",
+ "SUdOX0JBUjp9Ch1kZWZhdWx0X2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIkLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFMgASgOMiQucHJv",
+ "dG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW06CklNUE9SVF9CQVI6",
+ "VQoeZGVmYXVsdF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEiQucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYVCABKAk6A2FiY0ICCAI6TQoW",
+ "ZGVmYXVsdF9jb3JkX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxFeHRlbnNpb25zGFUgASgJOgMxMjNCAggBOkQKFm9uZW9mX3VpbnQz",
+ "Ml9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5z",
+ "aW9ucxhvIAEoDTp7Ch5vbmVvZl9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24S",
+ "JC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhwIAEoCzIt",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdl",
+ "OkQKFm9uZW9mX3N0cmluZ19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0QWxsRXh0ZW5zaW9ucxhxIAEoCTpDChVvbmVvZl9ieXRlc19leHRl",
+ "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhy",
+ "IAEoDDpCChNteV9leHRlbnNpb25fc3RyaW5nEiUucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdEZpZWxkT3JkZXJpbmdzGDIgASgJOj8KEG15X2V4dGVuc2lvbl9p",
+ "bnQSJS5wcm90b2J1Zl91bml0dGVzdC5UZXN0RmllbGRPcmRlcmluZ3MYBSAB",
+ "KAU6SwoWcGFja2VkX2ludDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGFogAygFQgIQATpLChZwYWNrZWRf",
+ "aW50NjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tl",
+ "ZEV4dGVuc2lvbnMYWyADKANCAhABOkwKF3BhY2tlZF91aW50MzJfZXh0ZW5z",
+ "aW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMY",
+ "XCADKA1CAhABOkwKF3BhY2tlZF91aW50NjRfZXh0ZW5zaW9uEicucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhABOkwK",
+ "F3BhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3Qu",
+ "VGVzdFBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhABOkwKF3BhY2tlZF9zaW50",
+ "NjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4",
+ "dGVuc2lvbnMYXyADKBJCAhABOk0KGHBhY2tlZF9maXhlZDMyX2V4dGVuc2lv",
+ "bhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGAg",
+ "AygHQgIQATpNChhwYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24SJy5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhhIAMoBkICEAE6TgoZ",
+ "cGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RQYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQATpOChlwYWNrZWRfc2Zp",
+ "eGVkNjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tl",
+ "ZEV4dGVuc2lvbnMYYyADKBBCAhABOksKFnBhY2tlZF9mbG9hdF9leHRlbnNp",
+ "b24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhk",
+ "IAMoAkICEAE6TAoXcGFja2VkX2RvdWJsZV9leHRlbnNpb24SJy5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEAE6SgoV",
+ "cGFja2VkX2Jvb2xfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVz",
+ "dFBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhABOmoKFXBhY2tlZF9lbnVtX2V4",
+ "dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNp",
+ "b25zGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhAB",
+ "Ok8KGHVucGFja2VkX2ludDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhAAOk8KGHVucGFj",
+ "a2VkX2ludDY0X2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RV",
+ "bnBhY2tlZEV4dGVuc2lvbnMYWyADKANCAhAAOlAKGXVucGFja2VkX3VpbnQz",
+ "Ml9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRF",
+ "eHRlbnNpb25zGFwgAygNQgIQADpQChl1bnBhY2tlZF91aW50NjRfZXh0ZW5z",
+ "aW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9u",
+ "cxhdIAMoBEICEAA6UAoZdW5wYWNrZWRfc2ludDMyX2V4dGVuc2lvbhIpLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXiADKBFC",
+ "AhAAOlAKGXVucGFja2VkX3NpbnQ2NF9leHRlbnNpb24SKS5wcm90b2J1Zl91",
+ "bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQADpRChp1",
+ "bnBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYCADKAdCAhAAOlEKGnVucGFja2Vk",
+ "X2ZpeGVkNjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVu",
+ "cGFja2VkRXh0ZW5zaW9ucxhhIAMoBkICEAA6UgobdW5wYWNrZWRfc2ZpeGVk",
+ "MzJfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2Vk",
+ "RXh0ZW5zaW9ucxhiIAMoD0ICEAA6UgobdW5wYWNrZWRfc2ZpeGVkNjRfZXh0",
+ "ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5z",
+ "aW9ucxhjIAMoEEICEAA6TwoYdW5wYWNrZWRfZmxvYXRfZXh0ZW5zaW9uEiku",
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhkIAMo",
+ "AkICEAA6UAoZdW5wYWNrZWRfZG91YmxlX2V4dGVuc2lvbhIpLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZSADKAFCAhAAOk4K",
+ "F3VucGFja2VkX2Jvb2xfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3Qu",
+ "VGVzdFVucGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEAA6bgoXdW5wYWNrZWRf",
+ "ZW51bV9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNr",
+ "ZWRFeHRlbnNpb25zGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWln",
+ "bkVudW1CAhAAQkFCDVVuaXR0ZXN0UHJvdG9IAYABAYgBAZABAfgBAaoCIUdv",
+ "b2dsZS5Qcm90b2NvbEJ1ZmZlcnMuVGVzdFByb3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_TestAllTypes__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder>(internal__static_protobuf_unittest_TestAllTypes__Descriptor,
+ new string[] { "OptionalInt32", "OptionalInt64", "OptionalUint32", "OptionalUint64", "OptionalSint32", "OptionalSint64", "OptionalFixed32", "OptionalFixed64", "OptionalSfixed32", "OptionalSfixed64", "OptionalFloat", "OptionalDouble", "OptionalBool", "OptionalString", "OptionalBytes", "OptionalGroup", "OptionalNestedMessage", "OptionalForeignMessage", "OptionalImportMessage", "OptionalNestedEnum", "OptionalForeignEnum", "OptionalImportEnum", "OptionalStringPiece", "OptionalCord", "OptionalPublicImportMessage", "OptionalLazyMessage", "RepeatedInt32", "RepeatedInt64", "RepeatedUint32", "RepeatedUint64", "RepeatedSint32", "RepeatedSint64", "RepeatedFixed32", "RepeatedFixed64", "RepeatedSfixed32", "RepeatedSfixed64", "RepeatedFloat", "RepeatedDouble", "RepeatedBool", "RepeatedString", "RepeatedBytes", "RepeatedGroup", "RepeatedNestedMessage", "RepeatedForeignMessage", "RepeatedImportMessage", "RepeatedNestedEnum", "RepeatedForeignEnum", "RepeatedImportEnum", "RepeatedStringPiece", "RepeatedCord", "RepeatedLazyMessage", "DefaultInt32", "DefaultInt64", "DefaultUint32", "DefaultUint64", "DefaultSint32", "DefaultSint64", "DefaultFixed32", "DefaultFixed64", "DefaultSfixed32", "DefaultSfixed64", "DefaultFloat", "DefaultDouble", "DefaultBool", "DefaultString", "DefaultBytes", "DefaultNestedEnum", "DefaultForeignEnum", "DefaultImportEnum", "DefaultStringPiece", "DefaultCord", "OneofUint32", "OneofNestedMessage", "OneofString", "OneofBytes", });
+ internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor,
+ new string[] { "Bb", });
+ internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder>(internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[2];
+ internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder>(internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder>(internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor,
+ new string[] { "Child", "Payload", });
+ internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields, global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Builder>(internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor,
+ new string[] { "DeprecatedInt32", });
+ internal__static_protobuf_unittest_ForeignMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder>(internal__static_protobuf_unittest_ForeignMessage__Descriptor,
+ new string[] { "C", });
+ internal__static_protobuf_unittest_TestAllExtensions__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllExtensions, global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Builder>(internal__static_protobuf_unittest_TestAllExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Builder>(internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Builder>(internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestNestedExtension__Descriptor = Descriptor.MessageTypes[7];
+ internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedExtension, global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Builder>(internal__static_protobuf_unittest_TestNestedExtension__Descriptor,
+ new string[] { });
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.NestedStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestRequired__Descriptor = Descriptor.MessageTypes[8];
+ internal__static_protobuf_unittest_TestRequired__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequired, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder>(internal__static_protobuf_unittest_TestRequired__Descriptor,
+ new string[] { "A", "Dummy2", "B", "Dummy4", "Dummy5", "Dummy6", "Dummy7", "Dummy8", "Dummy9", "Dummy10", "Dummy11", "Dummy12", "Dummy13", "Dummy14", "Dummy15", "Dummy16", "Dummy17", "Dummy18", "Dummy19", "Dummy20", "Dummy21", "Dummy22", "Dummy23", "Dummy24", "Dummy25", "Dummy26", "Dummy27", "Dummy28", "Dummy29", "Dummy30", "Dummy31", "Dummy32", "C", });
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Single = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestRequired>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestRequired>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestRequiredForeign__Descriptor = Descriptor.MessageTypes[9];
+ internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign, global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Builder>(internal__static_protobuf_unittest_TestRequiredForeign__Descriptor,
+ new string[] { "OptionalMessage", "RepeatedMessage", "Dummy", });
+ internal__static_protobuf_unittest_TestForeignNested__Descriptor = Descriptor.MessageTypes[10];
+ internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestForeignNested, global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Builder>(internal__static_protobuf_unittest_TestForeignNested__Descriptor,
+ new string[] { "ForeignNested", });
+ internal__static_protobuf_unittest_TestEmptyMessage__Descriptor = Descriptor.MessageTypes[11];
+ internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Builder>(internal__static_protobuf_unittest_TestEmptyMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor = Descriptor.MessageTypes[12];
+ internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Builder>(internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor = Descriptor.MessageTypes[13];
+ internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges, global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Builder>(internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor = Descriptor.MessageTypes[14];
+ internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber, global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Builder>(internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor,
+ new string[] { "A", "Bb", });
+ internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor = Descriptor.MessageTypes[15];
+ internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage, global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder>(internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor,
+ new string[] { "A", "I", });
+ internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor = Descriptor.MessageTypes[16];
+ internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder>(internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor,
+ new string[] { "Bb", });
+ internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor = Descriptor.MessageTypes[17];
+ internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder>(internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor,
+ new string[] { "A", "OptionalInt32", });
+ internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor = Descriptor.MessageTypes[18];
+ internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor,
+ new string[] { "A", "Foo", "Bar", });
+ internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor = internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor = internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestEagerMessage__Descriptor = Descriptor.MessageTypes[19];
+ internal__static_protobuf_unittest_TestEagerMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEagerMessage, global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.Builder>(internal__static_protobuf_unittest_TestEagerMessage__Descriptor,
+ new string[] { "SubMessage", });
+ internal__static_protobuf_unittest_TestLazyMessage__Descriptor = Descriptor.MessageTypes[20];
+ internal__static_protobuf_unittest_TestLazyMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestLazyMessage, global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.Builder>(internal__static_protobuf_unittest_TestLazyMessage__Descriptor,
+ new string[] { "SubMessage", });
+ internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor = Descriptor.MessageTypes[21];
+ internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Builder>(internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor,
+ new string[] { "OptionalNestedMessage", });
+ internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor,
+ new string[] { "NestedmessageRepeatedInt32", "NestedmessageRepeatedForeignmessage", });
+ internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor = Descriptor.MessageTypes[22];
+ internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames, global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Builder>(internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor,
+ new string[] { "PrimitiveField", "StringField", "EnumField", "MessageField", "StringPieceField", "CordField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedStringPieceField", "RepeatedCordField", });
+ internal__static_protobuf_unittest_TestFieldOrderings__Descriptor = Descriptor.MessageTypes[23];
+ internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Builder>(internal__static_protobuf_unittest_TestFieldOrderings__Descriptor,
+ new string[] { "MyString", "MyInt", "MyFloat", "OptionalNestedMessage", });
+ internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestFieldOrderings__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor,
+ new string[] { "Oo", "Bb", });
+ internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor = Descriptor.MessageTypes[24];
+ internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues, global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Builder>(internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor,
+ new string[] { "EscapedBytes", "LargeUint32", "LargeUint64", "SmallInt32", "SmallInt64", "ReallySmallInt32", "ReallySmallInt64", "Utf8String", "ZeroFloat", "OneFloat", "SmallFloat", "NegativeOneFloat", "NegativeFloat", "LargeFloat", "SmallNegativeFloat", "InfDouble", "NegInfDouble", "NanDouble", "InfFloat", "NegInfFloat", "NanFloat", "CppTrigraph", "StringWithZero", "BytesWithZero", "StringPieceWithZero", "CordWithZero", "ReplacementString", });
+ internal__static_protobuf_unittest_SparseEnumMessage__Descriptor = Descriptor.MessageTypes[25];
+ internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage, global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.Builder>(internal__static_protobuf_unittest_SparseEnumMessage__Descriptor,
+ new string[] { "SparseEnum", });
+ internal__static_protobuf_unittest_OneString__Descriptor = Descriptor.MessageTypes[26];
+ internal__static_protobuf_unittest_OneString__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneString, global::Google.ProtocolBuffers.TestProtos.OneString.Builder>(internal__static_protobuf_unittest_OneString__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_MoreString__Descriptor = Descriptor.MessageTypes[27];
+ internal__static_protobuf_unittest_MoreString__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreString, global::Google.ProtocolBuffers.TestProtos.MoreString.Builder>(internal__static_protobuf_unittest_MoreString__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_OneBytes__Descriptor = Descriptor.MessageTypes[28];
+ internal__static_protobuf_unittest_OneBytes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneBytes, global::Google.ProtocolBuffers.TestProtos.OneBytes.Builder>(internal__static_protobuf_unittest_OneBytes__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_MoreBytes__Descriptor = Descriptor.MessageTypes[29];
+ internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreBytes, global::Google.ProtocolBuffers.TestProtos.MoreBytes.Builder>(internal__static_protobuf_unittest_MoreBytes__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Int32Message__Descriptor = Descriptor.MessageTypes[30];
+ internal__static_protobuf_unittest_Int32Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int32Message, global::Google.ProtocolBuffers.TestProtos.Int32Message.Builder>(internal__static_protobuf_unittest_Int32Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Uint32Message__Descriptor = Descriptor.MessageTypes[31];
+ internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint32Message, global::Google.ProtocolBuffers.TestProtos.Uint32Message.Builder>(internal__static_protobuf_unittest_Uint32Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Int64Message__Descriptor = Descriptor.MessageTypes[32];
+ internal__static_protobuf_unittest_Int64Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int64Message, global::Google.ProtocolBuffers.TestProtos.Int64Message.Builder>(internal__static_protobuf_unittest_Int64Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Uint64Message__Descriptor = Descriptor.MessageTypes[33];
+ internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint64Message, global::Google.ProtocolBuffers.TestProtos.Uint64Message.Builder>(internal__static_protobuf_unittest_Uint64Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_BoolMessage__Descriptor = Descriptor.MessageTypes[34];
+ internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BoolMessage, global::Google.ProtocolBuffers.TestProtos.BoolMessage.Builder>(internal__static_protobuf_unittest_BoolMessage__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_TestOneof__Descriptor = Descriptor.MessageTypes[35];
+ internal__static_protobuf_unittest_TestOneof__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof, global::Google.ProtocolBuffers.TestProtos.TestOneof.Builder>(internal__static_protobuf_unittest_TestOneof__Descriptor,
+ new string[] { "FooInt", "FooString", "FooMessage", "FooGroup", });
+ internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor = internal__static_protobuf_unittest_TestOneof__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestOneof_FooGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder>(internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor,
+ new string[] { "A", "B", });
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor = Descriptor.MessageTypes[36];
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Builder>(internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor,
+ new string[] { "FooInt", "FooString", "FooMessage", "FooGroup", });
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor = internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder>(internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor,
+ new string[] { "A", "B", });
+ internal__static_protobuf_unittest_TestOneof2__Descriptor = Descriptor.MessageTypes[37];
+ internal__static_protobuf_unittest_TestOneof2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Builder>(internal__static_protobuf_unittest_TestOneof2__Descriptor,
+ new string[] { "FooInt", "FooString", "FooCord", "FooStringPiece", "FooBytes", "FooEnum", "FooMessage", "FooGroup", "FooLazyMessage", "BarInt", "BarString", "BarCord", "BarStringPiece", "BarBytes", "BarEnum", "BazInt", "BazString", });
+ internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor = internal__static_protobuf_unittest_TestOneof2__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestOneof2_FooGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder>(internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor,
+ new string[] { "A", "B", });
+ internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestOneof2__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestOneof2_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor,
+ new string[] { "QuxInt", "CorgeInt", });
+ internal__static_protobuf_unittest_TestRequiredOneof__Descriptor = Descriptor.MessageTypes[38];
+ internal__static_protobuf_unittest_TestRequiredOneof__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Builder>(internal__static_protobuf_unittest_TestRequiredOneof__Descriptor,
+ new string[] { "FooInt", "FooString", "FooMessage", });
+ internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestRequiredOneof__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor,
+ new string[] { "RequiredDouble", });
+ internal__static_protobuf_unittest_TestPackedTypes__Descriptor = Descriptor.MessageTypes[39];
+ internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedTypes, global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Builder>(internal__static_protobuf_unittest_TestPackedTypes__Descriptor,
+ new string[] { "PackedInt32", "PackedInt64", "PackedUint32", "PackedUint64", "PackedSint32", "PackedSint64", "PackedFixed32", "PackedFixed64", "PackedSfixed32", "PackedSfixed64", "PackedFloat", "PackedDouble", "PackedBool", "PackedEnum", });
+ internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor = Descriptor.MessageTypes[40];
+ internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes, global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Builder>(internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor,
+ new string[] { "UnpackedInt32", "UnpackedInt64", "UnpackedUint32", "UnpackedUint64", "UnpackedSint32", "UnpackedSint64", "UnpackedFixed32", "UnpackedFixed64", "UnpackedSfixed32", "UnpackedSfixed64", "UnpackedFloat", "UnpackedDouble", "UnpackedBool", "UnpackedEnum", });
+ internal__static_protobuf_unittest_TestPackedExtensions__Descriptor = Descriptor.MessageTypes[41];
+ internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Builder>(internal__static_protobuf_unittest_TestPackedExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor = Descriptor.MessageTypes[42];
+ internal__static_protobuf_unittest_TestUnpackedExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.Builder>(internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor = Descriptor.MessageTypes[43];
+ internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Builder>(internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor,
+ new string[] { "ScalarExtension", "EnumExtension", "DynamicEnumExtension", "MessageExtension", "DynamicMessageExtension", "RepeatedExtension", "PackedExtension", });
+ internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor = internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder>(internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor,
+ new string[] { "DynamicField", });
+ internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor = Descriptor.MessageTypes[44];
+ internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes, global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Builder>(internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor,
+ new string[] { "RepeatedFixed32", "RepeatedInt32", "RepeatedFixed64", "RepeatedInt64", "RepeatedFloat", "RepeatedUint64", });
+ internal__static_protobuf_unittest_TestParsingMerge__Descriptor = Descriptor.MessageTypes[45];
+ internal__static_protobuf_unittest_TestParsingMerge__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Builder>(internal__static_protobuf_unittest_TestParsingMerge__Descriptor,
+ new string[] { "RequiredAllTypes", "OptionalAllTypes", "RepeatedAllTypes", "OptionalGroup", "RepeatedGroup", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor = internal__static_protobuf_unittest_TestParsingMerge__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Group1", "Group2", "Ext1", "Ext2", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor = internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor,
+ new string[] { "Field1", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor = internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor,
+ new string[] { "Field1", });
+ internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor = internal__static_protobuf_unittest_TestParsingMerge__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder>(internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor,
+ new string[] { "OptionalGroupAllTypes", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor = internal__static_protobuf_unittest_TestParsingMerge__Descriptor.NestedTypes[2];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor,
+ new string[] { "RepeatedGroupAllTypes", });
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.OptionalExt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.RepeatedExt = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor = Descriptor.MessageTypes[46];
+ internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage, global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.Builder>(internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_FooRequest__Descriptor = Descriptor.MessageTypes[47];
+ internal__static_protobuf_unittest_FooRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooRequest, global::Google.ProtocolBuffers.TestProtos.FooRequest.Builder>(internal__static_protobuf_unittest_FooRequest__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_FooResponse__Descriptor = Descriptor.MessageTypes[48];
+ internal__static_protobuf_unittest_FooResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder>(internal__static_protobuf_unittest_FooResponse__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_FooClientMessage__Descriptor = Descriptor.MessageTypes[49];
+ internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooClientMessage, global::Google.ProtocolBuffers.TestProtos.FooClientMessage.Builder>(internal__static_protobuf_unittest_FooClientMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_FooServerMessage__Descriptor = Descriptor.MessageTypes[50];
+ internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooServerMessage, global::Google.ProtocolBuffers.TestProtos.FooServerMessage.Builder>(internal__static_protobuf_unittest_FooServerMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_BarRequest__Descriptor = Descriptor.MessageTypes[51];
+ internal__static_protobuf_unittest_BarRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarRequest, global::Google.ProtocolBuffers.TestProtos.BarRequest.Builder>(internal__static_protobuf_unittest_BarRequest__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_BarResponse__Descriptor = Descriptor.MessageTypes[52];
+ internal__static_protobuf_unittest_BarResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder>(internal__static_protobuf_unittest_BarResponse__Descriptor,
+ new string[] { });
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[1]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[2]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[3]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[4]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[5]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[6]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[7]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[8]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[9]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFloatExtension = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[10]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalDoubleExtension = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[11]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBoolExtension = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[12]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[13]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[14]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalGroupExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[15]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[16]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[17]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[18]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[19]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[20]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[21]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringPieceExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[22]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalCordExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[23]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalPublicImportMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[24]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalLazyMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[25]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[26]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[27]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[28]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[29]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[30]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[31]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[32]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[33]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[34]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[35]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[36]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[37]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[38]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[39]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBytesExtension = pb::GeneratedRepeatExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[40]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedGroupExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[41]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[42]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[43]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[44]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[45]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[46]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[47]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringPieceExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[48]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedCordExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[49]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedLazyMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[50]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[51]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[52]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[53]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[54]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[55]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[56]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[57]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[58]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[59]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[60]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFloatExtension = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[61]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultDoubleExtension = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[62]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBoolExtension = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[63]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[64]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[65]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultNestedEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[66]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultForeignEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[67]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultImportEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[68]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringPieceExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[69]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultCordExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[70]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[71]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofNestedMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[72]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[73]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[74]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionString = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[75]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionInt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[76]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[77]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[78]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[79]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[80]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[81]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[82]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[83]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[84]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[85]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[86]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[87]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[88]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[89]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[90]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[91]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[92]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[93]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[94]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[95]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[96]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[97]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[98]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[99]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[100]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[101]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[102]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[103]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[104]);
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.TestProtos.UnittestImport.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.TestProtos.UnittestImport.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ForeignEnum {
+ FOREIGN_FOO = 4,
+ FOREIGN_BAR = 5,
+ FOREIGN_BAZ = 6,
+ }
+
+ public enum TestEnumWithDupValue {
+ FOO1 = 1,
+ BAR1 = 2,
+ BAZ = 3,
+ FOO2 = 1,
+ BAR2 = 2,
+ }
+
+ public enum TestSparseEnum {
+ SPARSE_A = 123,
+ SPARSE_B = 62374,
+ SPARSE_C = 12589234,
+ SPARSE_D = -15,
+ SPARSE_E = -53452,
+ SPARSE_F = 0,
+ SPARSE_G = 2,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestAllTypes : pb::GeneratedMessage<TestAllTypes, TestAllTypes.Builder> {
+ private TestAllTypes() { }
+ private static readonly TestAllTypes defaultInstance = new TestAllTypes().MakeReadOnly();
+ private static readonly string[] _testAllTypesFieldNames = new string[] { "default_bool", "default_bytes", "default_cord", "default_double", "default_fixed32", "default_fixed64", "default_float", "default_foreign_enum", "default_import_enum", "default_int32", "default_int64", "default_nested_enum", "default_sfixed32", "default_sfixed64", "default_sint32", "default_sint64", "default_string", "default_string_piece", "default_uint32", "default_uint64", "oneof_bytes", "oneof_nested_message", "oneof_string", "oneof_uint32", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_import_enum", "optional_import_message", "optional_int32", "optional_int64", "optional_lazy_message", "optional_nested_enum", "optional_nested_message", "optional_public_import_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "optionalgroup", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_lazy_message", "repeated_nested_enum", "repeated_nested_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64", "repeatedgroup" };
+ private static readonly uint[] _testAllTypesFieldTags = new uint[] { 584, 602, 682, 577, 541, 545, 573, 656, 664, 488, 496, 648, 557, 561, 520, 528, 594, 674, 504, 512, 914, 898, 906, 888, 104, 122, 202, 97, 61, 65, 93, 176, 154, 184, 162, 8, 16, 218, 168, 146, 210, 77, 81, 40, 48, 114, 194, 24, 32, 131, 344, 362, 442, 337, 301, 305, 333, 416, 394, 424, 402, 248, 256, 458, 408, 386, 317, 321, 280, 288, 354, 434, 264, 272, 371 };
+ public static TestAllTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestAllTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestAllTypes, TestAllTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ FOO = 1,
+ BAR = 2,
+ BAZ = 3,
+ NEG = -1,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private int bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasBb) {
+ output.WriteInt32(1, field_names[0], Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasBb = input.ReadInt32(ref result.bb_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
+ private OptionalGroup() { }
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
+ private static readonly string[] _optionalGroupFieldNames = new string[] { "a" };
+ private static readonly uint[] _optionalGroupFieldTags = new uint[] { 136 };
+ public static OptionalGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup, OptionalGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(17, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
+
+ private OptionalGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup original = result;
+ result = new OptionalGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Descriptor; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public override OptionalGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup) {
+ return MergeFrom((OptionalGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 136: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
+ private RepeatedGroup() { }
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
+ private static readonly string[] _repeatedGroupFieldNames = new string[] { "a" };
+ private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 376 };
+ public static RepeatedGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup, RepeatedGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(47, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
+
+ private RepeatedGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup original = result;
+ result = new RepeatedGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Descriptor; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance; }
+ }
+
+ public override RepeatedGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup) {
+ return MergeFrom((RepeatedGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 376: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int OptionalInt32FieldNumber = 1;
+ private bool hasOptionalInt32;
+ private int optionalInt32_;
+ public bool HasOptionalInt32 {
+ get { return hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public const int OptionalInt64FieldNumber = 2;
+ private bool hasOptionalInt64;
+ private long optionalInt64_;
+ public bool HasOptionalInt64 {
+ get { return hasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return optionalInt64_; }
+ }
+
+ public const int OptionalUint32FieldNumber = 3;
+ private bool hasOptionalUint32;
+ private uint optionalUint32_;
+ public bool HasOptionalUint32 {
+ get { return hasOptionalUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalUint32 {
+ get { return optionalUint32_; }
+ }
+
+ public const int OptionalUint64FieldNumber = 4;
+ private bool hasOptionalUint64;
+ private ulong optionalUint64_;
+ public bool HasOptionalUint64 {
+ get { return hasOptionalUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalUint64 {
+ get { return optionalUint64_; }
+ }
+
+ public const int OptionalSint32FieldNumber = 5;
+ private bool hasOptionalSint32;
+ private int optionalSint32_;
+ public bool HasOptionalSint32 {
+ get { return hasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return optionalSint32_; }
+ }
+
+ public const int OptionalSint64FieldNumber = 6;
+ private bool hasOptionalSint64;
+ private long optionalSint64_;
+ public bool HasOptionalSint64 {
+ get { return hasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return optionalSint64_; }
+ }
+
+ public const int OptionalFixed32FieldNumber = 7;
+ private bool hasOptionalFixed32;
+ private uint optionalFixed32_;
+ public bool HasOptionalFixed32 {
+ get { return hasOptionalFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalFixed32 {
+ get { return optionalFixed32_; }
+ }
+
+ public const int OptionalFixed64FieldNumber = 8;
+ private bool hasOptionalFixed64;
+ private ulong optionalFixed64_;
+ public bool HasOptionalFixed64 {
+ get { return hasOptionalFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalFixed64 {
+ get { return optionalFixed64_; }
+ }
+
+ public const int OptionalSfixed32FieldNumber = 9;
+ private bool hasOptionalSfixed32;
+ private int optionalSfixed32_;
+ public bool HasOptionalSfixed32 {
+ get { return hasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return optionalSfixed32_; }
+ }
+
+ public const int OptionalSfixed64FieldNumber = 10;
+ private bool hasOptionalSfixed64;
+ private long optionalSfixed64_;
+ public bool HasOptionalSfixed64 {
+ get { return hasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return optionalSfixed64_; }
+ }
+
+ public const int OptionalFloatFieldNumber = 11;
+ private bool hasOptionalFloat;
+ private float optionalFloat_;
+ public bool HasOptionalFloat {
+ get { return hasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return optionalFloat_; }
+ }
+
+ public const int OptionalDoubleFieldNumber = 12;
+ private bool hasOptionalDouble;
+ private double optionalDouble_;
+ public bool HasOptionalDouble {
+ get { return hasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return optionalDouble_; }
+ }
+
+ public const int OptionalBoolFieldNumber = 13;
+ private bool hasOptionalBool;
+ private bool optionalBool_;
+ public bool HasOptionalBool {
+ get { return hasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return optionalBool_; }
+ }
+
+ public const int OptionalStringFieldNumber = 14;
+ private bool hasOptionalString;
+ private string optionalString_ = "";
+ public bool HasOptionalString {
+ get { return hasOptionalString; }
+ }
+ public string OptionalString {
+ get { return optionalString_; }
+ }
+
+ public const int OptionalBytesFieldNumber = 15;
+ private bool hasOptionalBytes;
+ private pb::ByteString optionalBytes_ = pb::ByteString.Empty;
+ public bool HasOptionalBytes {
+ get { return hasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return optionalBytes_; }
+ }
+
+ public const int OptionalGroupFieldNumber = 16;
+ private bool hasOptionalGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup optionalGroup_;
+ public bool HasOptionalGroup {
+ get { return hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public const int OptionalNestedMessageFieldNumber = 18;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int OptionalForeignMessageFieldNumber = 19;
+ private bool hasOptionalForeignMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage optionalForeignMessage_;
+ public bool HasOptionalForeignMessage {
+ get { return hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {
+ get { return optionalForeignMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int OptionalImportMessageFieldNumber = 20;
+ private bool hasOptionalImportMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ImportMessage optionalImportMessage_;
+ public bool HasOptionalImportMessage {
+ get { return hasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {
+ get { return optionalImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance; }
+ }
+
+ public const int OptionalNestedEnumFieldNumber = 21;
+ private bool hasOptionalNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.FOO;
+ public bool HasOptionalNestedEnum {
+ get { return hasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
+ get { return optionalNestedEnum_; }
+ }
+
+ public const int OptionalForeignEnumFieldNumber = 22;
+ private bool hasOptionalForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasOptionalForeignEnum {
+ get { return hasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum OptionalForeignEnum {
+ get { return optionalForeignEnum_; }
+ }
+
+ public const int OptionalImportEnumFieldNumber = 23;
+ private bool hasOptionalImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnum optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_FOO;
+ public bool HasOptionalImportEnum {
+ get { return hasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum OptionalImportEnum {
+ get { return optionalImportEnum_; }
+ }
+
+ public const int OptionalStringPieceFieldNumber = 24;
+ private bool hasOptionalStringPiece;
+ private string optionalStringPiece_ = "";
+ public bool HasOptionalStringPiece {
+ get { return hasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return optionalStringPiece_; }
+ }
+
+ public const int OptionalCordFieldNumber = 25;
+ private bool hasOptionalCord;
+ private string optionalCord_ = "";
+ public bool HasOptionalCord {
+ get { return hasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return optionalCord_; }
+ }
+
+ public const int OptionalPublicImportMessageFieldNumber = 26;
+ private bool hasOptionalPublicImportMessage;
+ private global::Google.ProtocolBuffers.TestProtos.PublicImportMessage optionalPublicImportMessage_;
+ public bool HasOptionalPublicImportMessage {
+ get { return hasOptionalPublicImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.PublicImportMessage OptionalPublicImportMessage {
+ get { return optionalPublicImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance; }
+ }
+
+ public const int OptionalLazyMessageFieldNumber = 27;
+ private bool hasOptionalLazyMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalLazyMessage_;
+ public bool HasOptionalLazyMessage {
+ get { return hasOptionalLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalLazyMessage {
+ get { return optionalLazyMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int RepeatedInt32FieldNumber = 31;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 32;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedUint32FieldNumber = 33;
+ private pbc::PopsicleList<uint> repeatedUint32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> RepeatedUint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint32_); }
+ }
+ public int RepeatedUint32Count {
+ get { return repeatedUint32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedUint32(int index) {
+ return repeatedUint32_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 34;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public const int RepeatedSint32FieldNumber = 35;
+ private pbc::PopsicleList<int> repeatedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint32_); }
+ }
+ public int RepeatedSint32Count {
+ get { return repeatedSint32_.Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return repeatedSint32_[index];
+ }
+
+ public const int RepeatedSint64FieldNumber = 36;
+ private pbc::PopsicleList<long> repeatedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint64_); }
+ }
+ public int RepeatedSint64Count {
+ get { return repeatedSint64_.Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return repeatedSint64_[index];
+ }
+
+ public const int RepeatedFixed32FieldNumber = 37;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 38;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedSfixed32FieldNumber = 39;
+ private pbc::PopsicleList<int> repeatedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed32_); }
+ }
+ public int RepeatedSfixed32Count {
+ get { return repeatedSfixed32_.Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return repeatedSfixed32_[index];
+ }
+
+ public const int RepeatedSfixed64FieldNumber = 40;
+ private pbc::PopsicleList<long> repeatedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed64_); }
+ }
+ public int RepeatedSfixed64Count {
+ get { return repeatedSfixed64_.Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return repeatedSfixed64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 41;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedDoubleFieldNumber = 42;
+ private pbc::PopsicleList<double> repeatedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> RepeatedDoubleList {
+ get { return pbc::Lists.AsReadOnly(repeatedDouble_); }
+ }
+ public int RepeatedDoubleCount {
+ get { return repeatedDouble_.Count; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return repeatedDouble_[index];
+ }
+
+ public const int RepeatedBoolFieldNumber = 43;
+ private pbc::PopsicleList<bool> repeatedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> RepeatedBoolList {
+ get { return pbc::Lists.AsReadOnly(repeatedBool_); }
+ }
+ public int RepeatedBoolCount {
+ get { return repeatedBool_.Count; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return repeatedBool_[index];
+ }
+
+ public const int RepeatedStringFieldNumber = 44;
+ private pbc::PopsicleList<string> repeatedString_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringList {
+ get { return pbc::Lists.AsReadOnly(repeatedString_); }
+ }
+ public int RepeatedStringCount {
+ get { return repeatedString_.Count; }
+ }
+ public string GetRepeatedString(int index) {
+ return repeatedString_[index];
+ }
+
+ public const int RepeatedBytesFieldNumber = 45;
+ private pbc::PopsicleList<pb::ByteString> repeatedBytes_ = new pbc::PopsicleList<pb::ByteString>();
+ public scg::IList<pb::ByteString> RepeatedBytesList {
+ get { return pbc::Lists.AsReadOnly(repeatedBytes_); }
+ }
+ public int RepeatedBytesCount {
+ get { return repeatedBytes_.Count; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return repeatedBytes_[index];
+ }
+
+ public const int RepeatedGroupFieldNumber = 46;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> repeatedGroup_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> RepeatedGroupList {
+ get { return repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return repeatedGroup_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return repeatedGroup_[index];
+ }
+
+ public const int RepeatedNestedMessageFieldNumber = 48;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> repeatedNestedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return repeatedNestedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return repeatedNestedMessage_[index];
+ }
+
+ public const int RepeatedForeignMessageFieldNumber = 49;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> repeatedForeignMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedForeignMessageList {
+ get { return repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return repeatedForeignMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedForeignMessage(int index) {
+ return repeatedForeignMessage_[index];
+ }
+
+ public const int RepeatedImportMessageFieldNumber = 50;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> repeatedImportMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> RepeatedImportMessageList {
+ get { return repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return repeatedImportMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage GetRepeatedImportMessage(int index) {
+ return repeatedImportMessage_[index];
+ }
+
+ public const int RepeatedNestedEnumFieldNumber = 51;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> repeatedNestedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedNestedEnum_); }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return repeatedNestedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return repeatedNestedEnum_[index];
+ }
+
+ public const int RepeatedForeignEnumFieldNumber = 52;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> repeatedForeignEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedForeignEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedForeignEnum_); }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return repeatedForeignEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedForeignEnum(int index) {
+ return repeatedForeignEnum_[index];
+ }
+
+ public const int RepeatedImportEnumFieldNumber = 53;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> repeatedImportEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> RepeatedImportEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedImportEnum_); }
+ }
+ public int RepeatedImportEnumCount {
+ get { return repeatedImportEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum GetRepeatedImportEnum(int index) {
+ return repeatedImportEnum_[index];
+ }
+
+ public const int RepeatedStringPieceFieldNumber = 54;
+ private pbc::PopsicleList<string> repeatedStringPiece_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPiece_); }
+ }
+ public int RepeatedStringPieceCount {
+ get { return repeatedStringPiece_.Count; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return repeatedStringPiece_[index];
+ }
+
+ public const int RepeatedCordFieldNumber = 55;
+ private pbc::PopsicleList<string> repeatedCord_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordList {
+ get { return pbc::Lists.AsReadOnly(repeatedCord_); }
+ }
+ public int RepeatedCordCount {
+ get { return repeatedCord_.Count; }
+ }
+ public string GetRepeatedCord(int index) {
+ return repeatedCord_[index];
+ }
+
+ public const int RepeatedLazyMessageFieldNumber = 57;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> repeatedLazyMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedLazyMessageList {
+ get { return repeatedLazyMessage_; }
+ }
+ public int RepeatedLazyMessageCount {
+ get { return repeatedLazyMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedLazyMessage(int index) {
+ return repeatedLazyMessage_[index];
+ }
+
+ public const int DefaultInt32FieldNumber = 61;
+ private bool hasDefaultInt32;
+ private int defaultInt32_ = 41;
+ public bool HasDefaultInt32 {
+ get { return hasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return defaultInt32_; }
+ }
+
+ public const int DefaultInt64FieldNumber = 62;
+ private bool hasDefaultInt64;
+ private long defaultInt64_ = 42L;
+ public bool HasDefaultInt64 {
+ get { return hasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return defaultInt64_; }
+ }
+
+ public const int DefaultUint32FieldNumber = 63;
+ private bool hasDefaultUint32;
+ private uint defaultUint32_ = 43;
+ public bool HasDefaultUint32 {
+ get { return hasDefaultUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultUint32 {
+ get { return defaultUint32_; }
+ }
+
+ public const int DefaultUint64FieldNumber = 64;
+ private bool hasDefaultUint64;
+ private ulong defaultUint64_ = 44UL;
+ public bool HasDefaultUint64 {
+ get { return hasDefaultUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultUint64 {
+ get { return defaultUint64_; }
+ }
+
+ public const int DefaultSint32FieldNumber = 65;
+ private bool hasDefaultSint32;
+ private int defaultSint32_ = -45;
+ public bool HasDefaultSint32 {
+ get { return hasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return defaultSint32_; }
+ }
+
+ public const int DefaultSint64FieldNumber = 66;
+ private bool hasDefaultSint64;
+ private long defaultSint64_ = 46L;
+ public bool HasDefaultSint64 {
+ get { return hasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return defaultSint64_; }
+ }
+
+ public const int DefaultFixed32FieldNumber = 67;
+ private bool hasDefaultFixed32;
+ private uint defaultFixed32_ = 47;
+ public bool HasDefaultFixed32 {
+ get { return hasDefaultFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultFixed32 {
+ get { return defaultFixed32_; }
+ }
+
+ public const int DefaultFixed64FieldNumber = 68;
+ private bool hasDefaultFixed64;
+ private ulong defaultFixed64_ = 48UL;
+ public bool HasDefaultFixed64 {
+ get { return hasDefaultFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultFixed64 {
+ get { return defaultFixed64_; }
+ }
+
+ public const int DefaultSfixed32FieldNumber = 69;
+ private bool hasDefaultSfixed32;
+ private int defaultSfixed32_ = 49;
+ public bool HasDefaultSfixed32 {
+ get { return hasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return defaultSfixed32_; }
+ }
+
+ public const int DefaultSfixed64FieldNumber = 70;
+ private bool hasDefaultSfixed64;
+ private long defaultSfixed64_ = -50L;
+ public bool HasDefaultSfixed64 {
+ get { return hasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return defaultSfixed64_; }
+ }
+
+ public const int DefaultFloatFieldNumber = 71;
+ private bool hasDefaultFloat;
+ private float defaultFloat_ = 51.5F;
+ public bool HasDefaultFloat {
+ get { return hasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return defaultFloat_; }
+ }
+
+ public const int DefaultDoubleFieldNumber = 72;
+ private bool hasDefaultDouble;
+ private double defaultDouble_ = 52000D;
+ public bool HasDefaultDouble {
+ get { return hasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return defaultDouble_; }
+ }
+
+ public const int DefaultBoolFieldNumber = 73;
+ private bool hasDefaultBool;
+ private bool defaultBool_ = true;
+ public bool HasDefaultBool {
+ get { return hasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return defaultBool_; }
+ }
+
+ public const int DefaultStringFieldNumber = 74;
+ private bool hasDefaultString;
+ private string defaultString_ = "hello";
+ public bool HasDefaultString {
+ get { return hasDefaultString; }
+ }
+ public string DefaultString {
+ get { return defaultString_; }
+ }
+
+ public const int DefaultBytesFieldNumber = 75;
+ private bool hasDefaultBytes;
+ private pb::ByteString defaultBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor.Fields[65].DefaultValue;
+ public bool HasDefaultBytes {
+ get { return hasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return defaultBytes_; }
+ }
+
+ public const int DefaultNestedEnumFieldNumber = 81;
+ private bool hasDefaultNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.BAR;
+ public bool HasDefaultNestedEnum {
+ get { return hasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum DefaultNestedEnum {
+ get { return defaultNestedEnum_; }
+ }
+
+ public const int DefaultForeignEnumFieldNumber = 82;
+ private bool hasDefaultForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_BAR;
+ public bool HasDefaultForeignEnum {
+ get { return hasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum DefaultForeignEnum {
+ get { return defaultForeignEnum_; }
+ }
+
+ public const int DefaultImportEnumFieldNumber = 83;
+ private bool hasDefaultImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnum defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_BAR;
+ public bool HasDefaultImportEnum {
+ get { return hasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum DefaultImportEnum {
+ get { return defaultImportEnum_; }
+ }
+
+ public const int DefaultStringPieceFieldNumber = 84;
+ private bool hasDefaultStringPiece;
+ private string defaultStringPiece_ = "abc";
+ public bool HasDefaultStringPiece {
+ get { return hasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return defaultStringPiece_; }
+ }
+
+ public const int DefaultCordFieldNumber = 85;
+ private bool hasDefaultCord;
+ private string defaultCord_ = "123";
+ public bool HasDefaultCord {
+ get { return hasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return defaultCord_; }
+ }
+
+ public const int OneofUint32FieldNumber = 111;
+ private bool hasOneofUint32;
+ private uint oneofUint32_;
+ public bool HasOneofUint32 {
+ get { return hasOneofUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OneofUint32 {
+ get { return oneofUint32_; }
+ }
+
+ public const int OneofNestedMessageFieldNumber = 112;
+ private bool hasOneofNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage oneofNestedMessage_;
+ public bool HasOneofNestedMessage {
+ get { return hasOneofNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OneofNestedMessage {
+ get { return oneofNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int OneofStringFieldNumber = 113;
+ private bool hasOneofString;
+ private string oneofString_ = "";
+ public bool HasOneofString {
+ get { return hasOneofString; }
+ }
+ public string OneofString {
+ get { return oneofString_; }
+ }
+
+ public const int OneofBytesFieldNumber = 114;
+ private bool hasOneofBytes;
+ private pb::ByteString oneofBytes_ = pb::ByteString.Empty;
+ public bool HasOneofBytes {
+ get { return hasOneofBytes; }
+ }
+ public pb::ByteString OneofBytes {
+ get { return oneofBytes_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testAllTypesFieldNames;
+ if (hasOptionalInt32) {
+ output.WriteInt32(1, field_names[35], OptionalInt32);
+ }
+ if (hasOptionalInt64) {
+ output.WriteInt64(2, field_names[36], OptionalInt64);
+ }
+ if (hasOptionalUint32) {
+ output.WriteUInt32(3, field_names[47], OptionalUint32);
+ }
+ if (hasOptionalUint64) {
+ output.WriteUInt64(4, field_names[48], OptionalUint64);
+ }
+ if (hasOptionalSint32) {
+ output.WriteSInt32(5, field_names[43], OptionalSint32);
+ }
+ if (hasOptionalSint64) {
+ output.WriteSInt64(6, field_names[44], OptionalSint64);
+ }
+ if (hasOptionalFixed32) {
+ output.WriteFixed32(7, field_names[28], OptionalFixed32);
+ }
+ if (hasOptionalFixed64) {
+ output.WriteFixed64(8, field_names[29], OptionalFixed64);
+ }
+ if (hasOptionalSfixed32) {
+ output.WriteSFixed32(9, field_names[41], OptionalSfixed32);
+ }
+ if (hasOptionalSfixed64) {
+ output.WriteSFixed64(10, field_names[42], OptionalSfixed64);
+ }
+ if (hasOptionalFloat) {
+ output.WriteFloat(11, field_names[30], OptionalFloat);
+ }
+ if (hasOptionalDouble) {
+ output.WriteDouble(12, field_names[27], OptionalDouble);
+ }
+ if (hasOptionalBool) {
+ output.WriteBool(13, field_names[24], OptionalBool);
+ }
+ if (hasOptionalString) {
+ output.WriteString(14, field_names[45], OptionalString);
+ }
+ if (hasOptionalBytes) {
+ output.WriteBytes(15, field_names[25], OptionalBytes);
+ }
+ if (hasOptionalGroup) {
+ output.WriteGroup(16, field_names[49], OptionalGroup);
+ }
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(18, field_names[39], OptionalNestedMessage);
+ }
+ if (hasOptionalForeignMessage) {
+ output.WriteMessage(19, field_names[32], OptionalForeignMessage);
+ }
+ if (hasOptionalImportMessage) {
+ output.WriteMessage(20, field_names[34], OptionalImportMessage);
+ }
+ if (hasOptionalNestedEnum) {
+ output.WriteEnum(21, field_names[38], (int) OptionalNestedEnum, OptionalNestedEnum);
+ }
+ if (hasOptionalForeignEnum) {
+ output.WriteEnum(22, field_names[31], (int) OptionalForeignEnum, OptionalForeignEnum);
+ }
+ if (hasOptionalImportEnum) {
+ output.WriteEnum(23, field_names[33], (int) OptionalImportEnum, OptionalImportEnum);
+ }
+ if (hasOptionalStringPiece) {
+ output.WriteString(24, field_names[46], OptionalStringPiece);
+ }
+ if (hasOptionalCord) {
+ output.WriteString(25, field_names[26], OptionalCord);
+ }
+ if (hasOptionalPublicImportMessage) {
+ output.WriteMessage(26, field_names[40], OptionalPublicImportMessage);
+ }
+ if (hasOptionalLazyMessage) {
+ output.WriteMessage(27, field_names[37], OptionalLazyMessage);
+ }
+ if (repeatedInt32_.Count > 0) {
+ output.WriteInt32Array(31, field_names[61], repeatedInt32_);
+ }
+ if (repeatedInt64_.Count > 0) {
+ output.WriteInt64Array(32, field_names[62], repeatedInt64_);
+ }
+ if (repeatedUint32_.Count > 0) {
+ output.WriteUInt32Array(33, field_names[72], repeatedUint32_);
+ }
+ if (repeatedUint64_.Count > 0) {
+ output.WriteUInt64Array(34, field_names[73], repeatedUint64_);
+ }
+ if (repeatedSint32_.Count > 0) {
+ output.WriteSInt32Array(35, field_names[68], repeatedSint32_);
+ }
+ if (repeatedSint64_.Count > 0) {
+ output.WriteSInt64Array(36, field_names[69], repeatedSint64_);
+ }
+ if (repeatedFixed32_.Count > 0) {
+ output.WriteFixed32Array(37, field_names[54], repeatedFixed32_);
+ }
+ if (repeatedFixed64_.Count > 0) {
+ output.WriteFixed64Array(38, field_names[55], repeatedFixed64_);
+ }
+ if (repeatedSfixed32_.Count > 0) {
+ output.WriteSFixed32Array(39, field_names[66], repeatedSfixed32_);
+ }
+ if (repeatedSfixed64_.Count > 0) {
+ output.WriteSFixed64Array(40, field_names[67], repeatedSfixed64_);
+ }
+ if (repeatedFloat_.Count > 0) {
+ output.WriteFloatArray(41, field_names[56], repeatedFloat_);
+ }
+ if (repeatedDouble_.Count > 0) {
+ output.WriteDoubleArray(42, field_names[53], repeatedDouble_);
+ }
+ if (repeatedBool_.Count > 0) {
+ output.WriteBoolArray(43, field_names[50], repeatedBool_);
+ }
+ if (repeatedString_.Count > 0) {
+ output.WriteStringArray(44, field_names[70], repeatedString_);
+ }
+ if (repeatedBytes_.Count > 0) {
+ output.WriteBytesArray(45, field_names[51], repeatedBytes_);
+ }
+ if (repeatedGroup_.Count > 0) {
+ output.WriteGroupArray(46, field_names[74], repeatedGroup_);
+ }
+ if (repeatedNestedMessage_.Count > 0) {
+ output.WriteMessageArray(48, field_names[65], repeatedNestedMessage_);
+ }
+ if (repeatedForeignMessage_.Count > 0) {
+ output.WriteMessageArray(49, field_names[58], repeatedForeignMessage_);
+ }
+ if (repeatedImportMessage_.Count > 0) {
+ output.WriteMessageArray(50, field_names[60], repeatedImportMessage_);
+ }
+ if (repeatedNestedEnum_.Count > 0) {
+ output.WriteEnumArray(51, field_names[64], repeatedNestedEnum_);
+ }
+ if (repeatedForeignEnum_.Count > 0) {
+ output.WriteEnumArray(52, field_names[57], repeatedForeignEnum_);
+ }
+ if (repeatedImportEnum_.Count > 0) {
+ output.WriteEnumArray(53, field_names[59], repeatedImportEnum_);
+ }
+ if (repeatedStringPiece_.Count > 0) {
+ output.WriteStringArray(54, field_names[71], repeatedStringPiece_);
+ }
+ if (repeatedCord_.Count > 0) {
+ output.WriteStringArray(55, field_names[52], repeatedCord_);
+ }
+ if (repeatedLazyMessage_.Count > 0) {
+ output.WriteMessageArray(57, field_names[63], repeatedLazyMessage_);
+ }
+ if (hasDefaultInt32) {
+ output.WriteInt32(61, field_names[9], DefaultInt32);
+ }
+ if (hasDefaultInt64) {
+ output.WriteInt64(62, field_names[10], DefaultInt64);
+ }
+ if (hasDefaultUint32) {
+ output.WriteUInt32(63, field_names[18], DefaultUint32);
+ }
+ if (hasDefaultUint64) {
+ output.WriteUInt64(64, field_names[19], DefaultUint64);
+ }
+ if (hasDefaultSint32) {
+ output.WriteSInt32(65, field_names[14], DefaultSint32);
+ }
+ if (hasDefaultSint64) {
+ output.WriteSInt64(66, field_names[15], DefaultSint64);
+ }
+ if (hasDefaultFixed32) {
+ output.WriteFixed32(67, field_names[4], DefaultFixed32);
+ }
+ if (hasDefaultFixed64) {
+ output.WriteFixed64(68, field_names[5], DefaultFixed64);
+ }
+ if (hasDefaultSfixed32) {
+ output.WriteSFixed32(69, field_names[12], DefaultSfixed32);
+ }
+ if (hasDefaultSfixed64) {
+ output.WriteSFixed64(70, field_names[13], DefaultSfixed64);
+ }
+ if (hasDefaultFloat) {
+ output.WriteFloat(71, field_names[6], DefaultFloat);
+ }
+ if (hasDefaultDouble) {
+ output.WriteDouble(72, field_names[3], DefaultDouble);
+ }
+ if (hasDefaultBool) {
+ output.WriteBool(73, field_names[0], DefaultBool);
+ }
+ if (hasDefaultString) {
+ output.WriteString(74, field_names[16], DefaultString);
+ }
+ if (hasDefaultBytes) {
+ output.WriteBytes(75, field_names[1], DefaultBytes);
+ }
+ if (hasDefaultNestedEnum) {
+ output.WriteEnum(81, field_names[11], (int) DefaultNestedEnum, DefaultNestedEnum);
+ }
+ if (hasDefaultForeignEnum) {
+ output.WriteEnum(82, field_names[7], (int) DefaultForeignEnum, DefaultForeignEnum);
+ }
+ if (hasDefaultImportEnum) {
+ output.WriteEnum(83, field_names[8], (int) DefaultImportEnum, DefaultImportEnum);
+ }
+ if (hasDefaultStringPiece) {
+ output.WriteString(84, field_names[17], DefaultStringPiece);
+ }
+ if (hasDefaultCord) {
+ output.WriteString(85, field_names[2], DefaultCord);
+ }
+ if (hasOneofUint32) {
+ output.WriteUInt32(111, field_names[23], OneofUint32);
+ }
+ if (hasOneofNestedMessage) {
+ output.WriteMessage(112, field_names[21], OneofNestedMessage);
+ }
+ if (hasOneofString) {
+ output.WriteString(113, field_names[22], OneofString);
+ }
+ if (hasOneofBytes) {
+ output.WriteBytes(114, field_names[20], OneofBytes);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, OptionalInt32);
+ }
+ if (hasOptionalInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(2, OptionalInt64);
+ }
+ if (hasOptionalUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(3, OptionalUint32);
+ }
+ if (hasOptionalUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(4, OptionalUint64);
+ }
+ if (hasOptionalSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(5, OptionalSint32);
+ }
+ if (hasOptionalSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(6, OptionalSint64);
+ }
+ if (hasOptionalFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(7, OptionalFixed32);
+ }
+ if (hasOptionalFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(8, OptionalFixed64);
+ }
+ if (hasOptionalSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(9, OptionalSfixed32);
+ }
+ if (hasOptionalSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(10, OptionalSfixed64);
+ }
+ if (hasOptionalFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, OptionalFloat);
+ }
+ if (hasOptionalDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(12, OptionalDouble);
+ }
+ if (hasOptionalBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(13, OptionalBool);
+ }
+ if (hasOptionalString) {
+ size += pb::CodedOutputStream.ComputeStringSize(14, OptionalString);
+ }
+ if (hasOptionalBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(15, OptionalBytes);
+ }
+ if (hasOptionalGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(16, OptionalGroup);
+ }
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(18, OptionalNestedMessage);
+ }
+ if (hasOptionalForeignMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(19, OptionalForeignMessage);
+ }
+ if (hasOptionalImportMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(20, OptionalImportMessage);
+ }
+ if (hasOptionalNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(21, (int) OptionalNestedEnum);
+ }
+ if (hasOptionalForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(22, (int) OptionalForeignEnum);
+ }
+ if (hasOptionalImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(23, (int) OptionalImportEnum);
+ }
+ if (hasOptionalStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(24, OptionalStringPiece);
+ }
+ if (hasOptionalCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(25, OptionalCord);
+ }
+ if (hasOptionalPublicImportMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(26, OptionalPublicImportMessage);
+ }
+ if (hasOptionalLazyMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(27, OptionalLazyMessage);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in RepeatedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 2 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedDouble_.Count;
+ size += dataSize;
+ size += 2 * repeatedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * repeatedBool_.Count;
+ size += dataSize;
+ size += 2 * repeatedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedString_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (pb::ByteString element in RepeatedBytesList) {
+ dataSize += pb::CodedOutputStream.ComputeBytesSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedBytes_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup element in RepeatedGroupList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(46, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage element in RepeatedNestedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(48, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in RepeatedForeignMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(49, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportMessage element in RepeatedImportMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(50, element);
+ }
+ {
+ int dataSize = 0;
+ if (repeatedNestedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum element in repeatedNestedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedNestedEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedForeignEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in repeatedForeignEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedForeignEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedImportEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportEnum element in repeatedImportEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedImportEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedStringPiece_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedCord_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage element in RepeatedLazyMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(57, element);
+ }
+ if (hasDefaultInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(61, DefaultInt32);
+ }
+ if (hasDefaultInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(62, DefaultInt64);
+ }
+ if (hasDefaultUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(63, DefaultUint32);
+ }
+ if (hasDefaultUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(64, DefaultUint64);
+ }
+ if (hasDefaultSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(65, DefaultSint32);
+ }
+ if (hasDefaultSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(66, DefaultSint64);
+ }
+ if (hasDefaultFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(67, DefaultFixed32);
+ }
+ if (hasDefaultFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(68, DefaultFixed64);
+ }
+ if (hasDefaultSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(69, DefaultSfixed32);
+ }
+ if (hasDefaultSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(70, DefaultSfixed64);
+ }
+ if (hasDefaultFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(71, DefaultFloat);
+ }
+ if (hasDefaultDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(72, DefaultDouble);
+ }
+ if (hasDefaultBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(73, DefaultBool);
+ }
+ if (hasDefaultString) {
+ size += pb::CodedOutputStream.ComputeStringSize(74, DefaultString);
+ }
+ if (hasDefaultBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(75, DefaultBytes);
+ }
+ if (hasDefaultNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(81, (int) DefaultNestedEnum);
+ }
+ if (hasDefaultForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(82, (int) DefaultForeignEnum);
+ }
+ if (hasDefaultImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(83, (int) DefaultImportEnum);
+ }
+ if (hasDefaultStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(84, DefaultStringPiece);
+ }
+ if (hasDefaultCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(85, DefaultCord);
+ }
+ if (hasOneofUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(111, OneofUint32);
+ }
+ if (hasOneofNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(112, OneofNestedMessage);
+ }
+ if (hasOneofString) {
+ size += pb::CodedOutputStream.ComputeStringSize(113, OneofString);
+ }
+ if (hasOneofBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(114, OneofBytes);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestAllTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestAllTypes MakeReadOnly() {
+ repeatedInt32_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedUint32_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ repeatedSint32_.MakeReadOnly();
+ repeatedSint64_.MakeReadOnly();
+ repeatedFixed32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedSfixed32_.MakeReadOnly();
+ repeatedSfixed64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedDouble_.MakeReadOnly();
+ repeatedBool_.MakeReadOnly();
+ repeatedString_.MakeReadOnly();
+ repeatedBytes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ repeatedNestedMessage_.MakeReadOnly();
+ repeatedForeignMessage_.MakeReadOnly();
+ repeatedImportMessage_.MakeReadOnly();
+ repeatedNestedEnum_.MakeReadOnly();
+ repeatedForeignEnum_.MakeReadOnly();
+ repeatedImportEnum_.MakeReadOnly();
+ repeatedStringPiece_.MakeReadOnly();
+ repeatedCord_.MakeReadOnly();
+ repeatedLazyMessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestAllTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestAllTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestAllTypes result;
+
+ private TestAllTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestAllTypes original = result;
+ result = new TestAllTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestAllTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor; }
+ }
+
+ public override TestAllTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override TestAllTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestAllTypes) {
+ return MergeFrom((TestAllTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalInt32) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ if (other.HasOptionalInt64) {
+ OptionalInt64 = other.OptionalInt64;
+ }
+ if (other.HasOptionalUint32) {
+ OptionalUint32 = other.OptionalUint32;
+ }
+ if (other.HasOptionalUint64) {
+ OptionalUint64 = other.OptionalUint64;
+ }
+ if (other.HasOptionalSint32) {
+ OptionalSint32 = other.OptionalSint32;
+ }
+ if (other.HasOptionalSint64) {
+ OptionalSint64 = other.OptionalSint64;
+ }
+ if (other.HasOptionalFixed32) {
+ OptionalFixed32 = other.OptionalFixed32;
+ }
+ if (other.HasOptionalFixed64) {
+ OptionalFixed64 = other.OptionalFixed64;
+ }
+ if (other.HasOptionalSfixed32) {
+ OptionalSfixed32 = other.OptionalSfixed32;
+ }
+ if (other.HasOptionalSfixed64) {
+ OptionalSfixed64 = other.OptionalSfixed64;
+ }
+ if (other.HasOptionalFloat) {
+ OptionalFloat = other.OptionalFloat;
+ }
+ if (other.HasOptionalDouble) {
+ OptionalDouble = other.OptionalDouble;
+ }
+ if (other.HasOptionalBool) {
+ OptionalBool = other.OptionalBool;
+ }
+ if (other.HasOptionalString) {
+ OptionalString = other.OptionalString;
+ }
+ if (other.HasOptionalBytes) {
+ OptionalBytes = other.OptionalBytes;
+ }
+ if (other.HasOptionalGroup) {
+ MergeOptionalGroup(other.OptionalGroup);
+ }
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ if (other.HasOptionalForeignMessage) {
+ MergeOptionalForeignMessage(other.OptionalForeignMessage);
+ }
+ if (other.HasOptionalImportMessage) {
+ MergeOptionalImportMessage(other.OptionalImportMessage);
+ }
+ if (other.HasOptionalNestedEnum) {
+ OptionalNestedEnum = other.OptionalNestedEnum;
+ }
+ if (other.HasOptionalForeignEnum) {
+ OptionalForeignEnum = other.OptionalForeignEnum;
+ }
+ if (other.HasOptionalImportEnum) {
+ OptionalImportEnum = other.OptionalImportEnum;
+ }
+ if (other.HasOptionalStringPiece) {
+ OptionalStringPiece = other.OptionalStringPiece;
+ }
+ if (other.HasOptionalCord) {
+ OptionalCord = other.OptionalCord;
+ }
+ if (other.HasOptionalPublicImportMessage) {
+ MergeOptionalPublicImportMessage(other.OptionalPublicImportMessage);
+ }
+ if (other.HasOptionalLazyMessage) {
+ MergeOptionalLazyMessage(other.OptionalLazyMessage);
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ result.repeatedInt32_.Add(other.repeatedInt32_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ result.repeatedInt64_.Add(other.repeatedInt64_);
+ }
+ if (other.repeatedUint32_.Count != 0) {
+ result.repeatedUint32_.Add(other.repeatedUint32_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ result.repeatedUint64_.Add(other.repeatedUint64_);
+ }
+ if (other.repeatedSint32_.Count != 0) {
+ result.repeatedSint32_.Add(other.repeatedSint32_);
+ }
+ if (other.repeatedSint64_.Count != 0) {
+ result.repeatedSint64_.Add(other.repeatedSint64_);
+ }
+ if (other.repeatedFixed32_.Count != 0) {
+ result.repeatedFixed32_.Add(other.repeatedFixed32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ result.repeatedFixed64_.Add(other.repeatedFixed64_);
+ }
+ if (other.repeatedSfixed32_.Count != 0) {
+ result.repeatedSfixed32_.Add(other.repeatedSfixed32_);
+ }
+ if (other.repeatedSfixed64_.Count != 0) {
+ result.repeatedSfixed64_.Add(other.repeatedSfixed64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ result.repeatedFloat_.Add(other.repeatedFloat_);
+ }
+ if (other.repeatedDouble_.Count != 0) {
+ result.repeatedDouble_.Add(other.repeatedDouble_);
+ }
+ if (other.repeatedBool_.Count != 0) {
+ result.repeatedBool_.Add(other.repeatedBool_);
+ }
+ if (other.repeatedString_.Count != 0) {
+ result.repeatedString_.Add(other.repeatedString_);
+ }
+ if (other.repeatedBytes_.Count != 0) {
+ result.repeatedBytes_.Add(other.repeatedBytes_);
+ }
+ if (other.repeatedGroup_.Count != 0) {
+ result.repeatedGroup_.Add(other.repeatedGroup_);
+ }
+ if (other.repeatedNestedMessage_.Count != 0) {
+ result.repeatedNestedMessage_.Add(other.repeatedNestedMessage_);
+ }
+ if (other.repeatedForeignMessage_.Count != 0) {
+ result.repeatedForeignMessage_.Add(other.repeatedForeignMessage_);
+ }
+ if (other.repeatedImportMessage_.Count != 0) {
+ result.repeatedImportMessage_.Add(other.repeatedImportMessage_);
+ }
+ if (other.repeatedNestedEnum_.Count != 0) {
+ result.repeatedNestedEnum_.Add(other.repeatedNestedEnum_);
+ }
+ if (other.repeatedForeignEnum_.Count != 0) {
+ result.repeatedForeignEnum_.Add(other.repeatedForeignEnum_);
+ }
+ if (other.repeatedImportEnum_.Count != 0) {
+ result.repeatedImportEnum_.Add(other.repeatedImportEnum_);
+ }
+ if (other.repeatedStringPiece_.Count != 0) {
+ result.repeatedStringPiece_.Add(other.repeatedStringPiece_);
+ }
+ if (other.repeatedCord_.Count != 0) {
+ result.repeatedCord_.Add(other.repeatedCord_);
+ }
+ if (other.repeatedLazyMessage_.Count != 0) {
+ result.repeatedLazyMessage_.Add(other.repeatedLazyMessage_);
+ }
+ if (other.HasDefaultInt32) {
+ DefaultInt32 = other.DefaultInt32;
+ }
+ if (other.HasDefaultInt64) {
+ DefaultInt64 = other.DefaultInt64;
+ }
+ if (other.HasDefaultUint32) {
+ DefaultUint32 = other.DefaultUint32;
+ }
+ if (other.HasDefaultUint64) {
+ DefaultUint64 = other.DefaultUint64;
+ }
+ if (other.HasDefaultSint32) {
+ DefaultSint32 = other.DefaultSint32;
+ }
+ if (other.HasDefaultSint64) {
+ DefaultSint64 = other.DefaultSint64;
+ }
+ if (other.HasDefaultFixed32) {
+ DefaultFixed32 = other.DefaultFixed32;
+ }
+ if (other.HasDefaultFixed64) {
+ DefaultFixed64 = other.DefaultFixed64;
+ }
+ if (other.HasDefaultSfixed32) {
+ DefaultSfixed32 = other.DefaultSfixed32;
+ }
+ if (other.HasDefaultSfixed64) {
+ DefaultSfixed64 = other.DefaultSfixed64;
+ }
+ if (other.HasDefaultFloat) {
+ DefaultFloat = other.DefaultFloat;
+ }
+ if (other.HasDefaultDouble) {
+ DefaultDouble = other.DefaultDouble;
+ }
+ if (other.HasDefaultBool) {
+ DefaultBool = other.DefaultBool;
+ }
+ if (other.HasDefaultString) {
+ DefaultString = other.DefaultString;
+ }
+ if (other.HasDefaultBytes) {
+ DefaultBytes = other.DefaultBytes;
+ }
+ if (other.HasDefaultNestedEnum) {
+ DefaultNestedEnum = other.DefaultNestedEnum;
+ }
+ if (other.HasDefaultForeignEnum) {
+ DefaultForeignEnum = other.DefaultForeignEnum;
+ }
+ if (other.HasDefaultImportEnum) {
+ DefaultImportEnum = other.DefaultImportEnum;
+ }
+ if (other.HasDefaultStringPiece) {
+ DefaultStringPiece = other.DefaultStringPiece;
+ }
+ if (other.HasDefaultCord) {
+ DefaultCord = other.DefaultCord;
+ }
+ if (other.HasOneofUint32) {
+ OneofUint32 = other.OneofUint32;
+ }
+ if (other.HasOneofNestedMessage) {
+ MergeOneofNestedMessage(other.OneofNestedMessage);
+ }
+ if (other.HasOneofString) {
+ OneofString = other.OneofString;
+ }
+ if (other.HasOneofBytes) {
+ OneofBytes = other.OneofBytes;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testAllTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testAllTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasOptionalInt32 = input.ReadInt32(ref result.optionalInt32_);
+ break;
+ }
+ case 16: {
+ result.hasOptionalInt64 = input.ReadInt64(ref result.optionalInt64_);
+ break;
+ }
+ case 24: {
+ result.hasOptionalUint32 = input.ReadUInt32(ref result.optionalUint32_);
+ break;
+ }
+ case 32: {
+ result.hasOptionalUint64 = input.ReadUInt64(ref result.optionalUint64_);
+ break;
+ }
+ case 40: {
+ result.hasOptionalSint32 = input.ReadSInt32(ref result.optionalSint32_);
+ break;
+ }
+ case 48: {
+ result.hasOptionalSint64 = input.ReadSInt64(ref result.optionalSint64_);
+ break;
+ }
+ case 61: {
+ result.hasOptionalFixed32 = input.ReadFixed32(ref result.optionalFixed32_);
+ break;
+ }
+ case 65: {
+ result.hasOptionalFixed64 = input.ReadFixed64(ref result.optionalFixed64_);
+ break;
+ }
+ case 77: {
+ result.hasOptionalSfixed32 = input.ReadSFixed32(ref result.optionalSfixed32_);
+ break;
+ }
+ case 81: {
+ result.hasOptionalSfixed64 = input.ReadSFixed64(ref result.optionalSfixed64_);
+ break;
+ }
+ case 93: {
+ result.hasOptionalFloat = input.ReadFloat(ref result.optionalFloat_);
+ break;
+ }
+ case 97: {
+ result.hasOptionalDouble = input.ReadDouble(ref result.optionalDouble_);
+ break;
+ }
+ case 104: {
+ result.hasOptionalBool = input.ReadBool(ref result.optionalBool_);
+ break;
+ }
+ case 114: {
+ result.hasOptionalString = input.ReadString(ref result.optionalString_);
+ break;
+ }
+ case 122: {
+ result.hasOptionalBytes = input.ReadBytes(ref result.optionalBytes_);
+ break;
+ }
+ case 131: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder();
+ if (result.hasOptionalGroup) {
+ subBuilder.MergeFrom(OptionalGroup);
+ }
+ input.ReadGroup(16, subBuilder, extensionRegistry);
+ OptionalGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 146: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 154: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (result.hasOptionalForeignMessage) {
+ subBuilder.MergeFrom(OptionalForeignMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalForeignMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 162: {
+ global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder();
+ if (result.hasOptionalImportMessage) {
+ subBuilder.MergeFrom(OptionalImportMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalImportMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 168: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalNestedEnum_, out unknown)) {
+ result.hasOptionalNestedEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(21, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 176: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalForeignEnum_, out unknown)) {
+ result.hasOptionalForeignEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(22, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 184: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalImportEnum_, out unknown)) {
+ result.hasOptionalImportEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(23, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 194: {
+ result.hasOptionalStringPiece = input.ReadString(ref result.optionalStringPiece_);
+ break;
+ }
+ case 202: {
+ result.hasOptionalCord = input.ReadString(ref result.optionalCord_);
+ break;
+ }
+ case 210: {
+ global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.CreateBuilder();
+ if (result.hasOptionalPublicImportMessage) {
+ subBuilder.MergeFrom(OptionalPublicImportMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalPublicImportMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 218: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalLazyMessage) {
+ subBuilder.MergeFrom(OptionalLazyMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalLazyMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 250:
+ case 248: {
+ input.ReadInt32Array(tag, field_name, result.repeatedInt32_);
+ break;
+ }
+ case 258:
+ case 256: {
+ input.ReadInt64Array(tag, field_name, result.repeatedInt64_);
+ break;
+ }
+ case 266:
+ case 264: {
+ input.ReadUInt32Array(tag, field_name, result.repeatedUint32_);
+ break;
+ }
+ case 274:
+ case 272: {
+ input.ReadUInt64Array(tag, field_name, result.repeatedUint64_);
+ break;
+ }
+ case 282:
+ case 280: {
+ input.ReadSInt32Array(tag, field_name, result.repeatedSint32_);
+ break;
+ }
+ case 290:
+ case 288: {
+ input.ReadSInt64Array(tag, field_name, result.repeatedSint64_);
+ break;
+ }
+ case 298:
+ case 301: {
+ input.ReadFixed32Array(tag, field_name, result.repeatedFixed32_);
+ break;
+ }
+ case 306:
+ case 305: {
+ input.ReadFixed64Array(tag, field_name, result.repeatedFixed64_);
+ break;
+ }
+ case 314:
+ case 317: {
+ input.ReadSFixed32Array(tag, field_name, result.repeatedSfixed32_);
+ break;
+ }
+ case 322:
+ case 321: {
+ input.ReadSFixed64Array(tag, field_name, result.repeatedSfixed64_);
+ break;
+ }
+ case 330:
+ case 333: {
+ input.ReadFloatArray(tag, field_name, result.repeatedFloat_);
+ break;
+ }
+ case 338:
+ case 337: {
+ input.ReadDoubleArray(tag, field_name, result.repeatedDouble_);
+ break;
+ }
+ case 346:
+ case 344: {
+ input.ReadBoolArray(tag, field_name, result.repeatedBool_);
+ break;
+ }
+ case 354: {
+ input.ReadStringArray(tag, field_name, result.repeatedString_);
+ break;
+ }
+ case 362: {
+ input.ReadBytesArray(tag, field_name, result.repeatedBytes_);
+ break;
+ }
+ case 371: {
+ input.ReadGroupArray(tag, field_name, result.repeatedGroup_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 386: {
+ input.ReadMessageArray(tag, field_name, result.repeatedNestedMessage_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 394: {
+ input.ReadMessageArray(tag, field_name, result.repeatedForeignMessage_, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 402: {
+ input.ReadMessageArray(tag, field_name, result.repeatedImportMessage_, global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 410:
+ case 408: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>(tag, field_name, result.repeatedNestedEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(51, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 418:
+ case 416: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.repeatedForeignEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(52, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 426:
+ case 424: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ImportEnum>(tag, field_name, result.repeatedImportEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(53, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 434: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringPiece_);
+ break;
+ }
+ case 442: {
+ input.ReadStringArray(tag, field_name, result.repeatedCord_);
+ break;
+ }
+ case 458: {
+ input.ReadMessageArray(tag, field_name, result.repeatedLazyMessage_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 488: {
+ result.hasDefaultInt32 = input.ReadInt32(ref result.defaultInt32_);
+ break;
+ }
+ case 496: {
+ result.hasDefaultInt64 = input.ReadInt64(ref result.defaultInt64_);
+ break;
+ }
+ case 504: {
+ result.hasDefaultUint32 = input.ReadUInt32(ref result.defaultUint32_);
+ break;
+ }
+ case 512: {
+ result.hasDefaultUint64 = input.ReadUInt64(ref result.defaultUint64_);
+ break;
+ }
+ case 520: {
+ result.hasDefaultSint32 = input.ReadSInt32(ref result.defaultSint32_);
+ break;
+ }
+ case 528: {
+ result.hasDefaultSint64 = input.ReadSInt64(ref result.defaultSint64_);
+ break;
+ }
+ case 541: {
+ result.hasDefaultFixed32 = input.ReadFixed32(ref result.defaultFixed32_);
+ break;
+ }
+ case 545: {
+ result.hasDefaultFixed64 = input.ReadFixed64(ref result.defaultFixed64_);
+ break;
+ }
+ case 557: {
+ result.hasDefaultSfixed32 = input.ReadSFixed32(ref result.defaultSfixed32_);
+ break;
+ }
+ case 561: {
+ result.hasDefaultSfixed64 = input.ReadSFixed64(ref result.defaultSfixed64_);
+ break;
+ }
+ case 573: {
+ result.hasDefaultFloat = input.ReadFloat(ref result.defaultFloat_);
+ break;
+ }
+ case 577: {
+ result.hasDefaultDouble = input.ReadDouble(ref result.defaultDouble_);
+ break;
+ }
+ case 584: {
+ result.hasDefaultBool = input.ReadBool(ref result.defaultBool_);
+ break;
+ }
+ case 594: {
+ result.hasDefaultString = input.ReadString(ref result.defaultString_);
+ break;
+ }
+ case 602: {
+ result.hasDefaultBytes = input.ReadBytes(ref result.defaultBytes_);
+ break;
+ }
+ case 648: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultNestedEnum_, out unknown)) {
+ result.hasDefaultNestedEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(81, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 656: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultForeignEnum_, out unknown)) {
+ result.hasDefaultForeignEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(82, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 664: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultImportEnum_, out unknown)) {
+ result.hasDefaultImportEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(83, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 674: {
+ result.hasDefaultStringPiece = input.ReadString(ref result.defaultStringPiece_);
+ break;
+ }
+ case 682: {
+ result.hasDefaultCord = input.ReadString(ref result.defaultCord_);
+ break;
+ }
+ case 888: {
+ result.hasOneofUint32 = input.ReadUInt32(ref result.oneofUint32_);
+ break;
+ }
+ case 898: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasOneofNestedMessage) {
+ subBuilder.MergeFrom(OneofNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OneofNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 906: {
+ result.hasOneofString = input.ReadString(ref result.oneofString_);
+ break;
+ }
+ case 914: {
+ result.hasOneofBytes = input.ReadBytes(ref result.oneofBytes_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalInt32 {
+ get { return result.hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ PrepareBuilder();
+ result.hasOptionalInt32 = true;
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ PrepareBuilder();
+ result.hasOptionalInt32 = false;
+ result.optionalInt32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalInt64 {
+ get { return result.hasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return result.OptionalInt64; }
+ set { SetOptionalInt64(value); }
+ }
+ public Builder SetOptionalInt64(long value) {
+ PrepareBuilder();
+ result.hasOptionalInt64 = true;
+ result.optionalInt64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt64() {
+ PrepareBuilder();
+ result.hasOptionalInt64 = false;
+ result.optionalInt64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalUint32 {
+ get { return result.hasOptionalUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalUint32 {
+ get { return result.OptionalUint32; }
+ set { SetOptionalUint32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalUint32(uint value) {
+ PrepareBuilder();
+ result.hasOptionalUint32 = true;
+ result.optionalUint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint32() {
+ PrepareBuilder();
+ result.hasOptionalUint32 = false;
+ result.optionalUint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalUint64 {
+ get { return result.hasOptionalUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalUint64 {
+ get { return result.OptionalUint64; }
+ set { SetOptionalUint64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalUint64(ulong value) {
+ PrepareBuilder();
+ result.hasOptionalUint64 = true;
+ result.optionalUint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint64() {
+ PrepareBuilder();
+ result.hasOptionalUint64 = false;
+ result.optionalUint64_ = 0UL;
+ return this;
+ }
+
+ public bool HasOptionalSint32 {
+ get { return result.hasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return result.OptionalSint32; }
+ set { SetOptionalSint32(value); }
+ }
+ public Builder SetOptionalSint32(int value) {
+ PrepareBuilder();
+ result.hasOptionalSint32 = true;
+ result.optionalSint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint32() {
+ PrepareBuilder();
+ result.hasOptionalSint32 = false;
+ result.optionalSint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSint64 {
+ get { return result.hasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return result.OptionalSint64; }
+ set { SetOptionalSint64(value); }
+ }
+ public Builder SetOptionalSint64(long value) {
+ PrepareBuilder();
+ result.hasOptionalSint64 = true;
+ result.optionalSint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint64() {
+ PrepareBuilder();
+ result.hasOptionalSint64 = false;
+ result.optionalSint64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalFixed32 {
+ get { return result.hasOptionalFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalFixed32 {
+ get { return result.OptionalFixed32; }
+ set { SetOptionalFixed32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalFixed32(uint value) {
+ PrepareBuilder();
+ result.hasOptionalFixed32 = true;
+ result.optionalFixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed32() {
+ PrepareBuilder();
+ result.hasOptionalFixed32 = false;
+ result.optionalFixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalFixed64 {
+ get { return result.hasOptionalFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalFixed64 {
+ get { return result.OptionalFixed64; }
+ set { SetOptionalFixed64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalFixed64(ulong value) {
+ PrepareBuilder();
+ result.hasOptionalFixed64 = true;
+ result.optionalFixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed64() {
+ PrepareBuilder();
+ result.hasOptionalFixed64 = false;
+ result.optionalFixed64_ = 0UL;
+ return this;
+ }
+
+ public bool HasOptionalSfixed32 {
+ get { return result.hasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return result.OptionalSfixed32; }
+ set { SetOptionalSfixed32(value); }
+ }
+ public Builder SetOptionalSfixed32(int value) {
+ PrepareBuilder();
+ result.hasOptionalSfixed32 = true;
+ result.optionalSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed32() {
+ PrepareBuilder();
+ result.hasOptionalSfixed32 = false;
+ result.optionalSfixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSfixed64 {
+ get { return result.hasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return result.OptionalSfixed64; }
+ set { SetOptionalSfixed64(value); }
+ }
+ public Builder SetOptionalSfixed64(long value) {
+ PrepareBuilder();
+ result.hasOptionalSfixed64 = true;
+ result.optionalSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed64() {
+ PrepareBuilder();
+ result.hasOptionalSfixed64 = false;
+ result.optionalSfixed64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalFloat {
+ get { return result.hasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return result.OptionalFloat; }
+ set { SetOptionalFloat(value); }
+ }
+ public Builder SetOptionalFloat(float value) {
+ PrepareBuilder();
+ result.hasOptionalFloat = true;
+ result.optionalFloat_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFloat() {
+ PrepareBuilder();
+ result.hasOptionalFloat = false;
+ result.optionalFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOptionalDouble {
+ get { return result.hasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return result.OptionalDouble; }
+ set { SetOptionalDouble(value); }
+ }
+ public Builder SetOptionalDouble(double value) {
+ PrepareBuilder();
+ result.hasOptionalDouble = true;
+ result.optionalDouble_ = value;
+ return this;
+ }
+ public Builder ClearOptionalDouble() {
+ PrepareBuilder();
+ result.hasOptionalDouble = false;
+ result.optionalDouble_ = 0D;
+ return this;
+ }
+
+ public bool HasOptionalBool {
+ get { return result.hasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return result.OptionalBool; }
+ set { SetOptionalBool(value); }
+ }
+ public Builder SetOptionalBool(bool value) {
+ PrepareBuilder();
+ result.hasOptionalBool = true;
+ result.optionalBool_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBool() {
+ PrepareBuilder();
+ result.hasOptionalBool = false;
+ result.optionalBool_ = false;
+ return this;
+ }
+
+ public bool HasOptionalString {
+ get { return result.hasOptionalString; }
+ }
+ public string OptionalString {
+ get { return result.OptionalString; }
+ set { SetOptionalString(value); }
+ }
+ public Builder SetOptionalString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalString = true;
+ result.optionalString_ = value;
+ return this;
+ }
+ public Builder ClearOptionalString() {
+ PrepareBuilder();
+ result.hasOptionalString = false;
+ result.optionalString_ = "";
+ return this;
+ }
+
+ public bool HasOptionalBytes {
+ get { return result.hasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return result.OptionalBytes; }
+ set { SetOptionalBytes(value); }
+ }
+ public Builder SetOptionalBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalBytes = true;
+ result.optionalBytes_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBytes() {
+ PrepareBuilder();
+ result.hasOptionalBytes = false;
+ result.optionalBytes_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasOptionalGroup {
+ get { return result.hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {
+ get { return result.OptionalGroup; }
+ set { SetOptionalGroup(value); }
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroup &&
+ result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance) {
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroup_ = value;
+ }
+ result.hasOptionalGroup = true;
+ return this;
+ }
+ public Builder ClearOptionalGroup() {
+ PrepareBuilder();
+ result.hasOptionalGroup = false;
+ result.optionalGroup_ = null;
+ return this;
+ }
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalForeignMessage {
+ get { return result.hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {
+ get { return result.OptionalForeignMessage; }
+ set { SetOptionalForeignMessage(value); }
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalForeignMessage &&
+ result.optionalForeignMessage_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.optionalForeignMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalForeignMessage_ = value;
+ }
+ result.hasOptionalForeignMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalForeignMessage() {
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = false;
+ result.optionalForeignMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalImportMessage {
+ get { return result.hasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {
+ get { return result.OptionalImportMessage; }
+ set { SetOptionalImportMessage(value); }
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalImportMessage &&
+ result.optionalImportMessage_ != global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) {
+ result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder(result.optionalImportMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalImportMessage_ = value;
+ }
+ result.hasOptionalImportMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalImportMessage() {
+ PrepareBuilder();
+ result.hasOptionalImportMessage = false;
+ result.optionalImportMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalNestedEnum {
+ get { return result.hasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
+ get { return result.OptionalNestedEnum; }
+ set { SetOptionalNestedEnum(value); }
+ }
+ public Builder SetOptionalNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.hasOptionalNestedEnum = true;
+ result.optionalNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalNestedEnum() {
+ PrepareBuilder();
+ result.hasOptionalNestedEnum = false;
+ result.optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.FOO;
+ return this;
+ }
+
+ public bool HasOptionalForeignEnum {
+ get { return result.hasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum OptionalForeignEnum {
+ get { return result.OptionalForeignEnum; }
+ set { SetOptionalForeignEnum(value); }
+ }
+ public Builder SetOptionalForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasOptionalForeignEnum = true;
+ result.optionalForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalForeignEnum() {
+ PrepareBuilder();
+ result.hasOptionalForeignEnum = false;
+ result.optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasOptionalImportEnum {
+ get { return result.hasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum OptionalImportEnum {
+ get { return result.OptionalImportEnum; }
+ set { SetOptionalImportEnum(value); }
+ }
+ public Builder SetOptionalImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.hasOptionalImportEnum = true;
+ result.optionalImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalImportEnum() {
+ PrepareBuilder();
+ result.hasOptionalImportEnum = false;
+ result.optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_FOO;
+ return this;
+ }
+
+ public bool HasOptionalStringPiece {
+ get { return result.hasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return result.OptionalStringPiece; }
+ set { SetOptionalStringPiece(value); }
+ }
+ public Builder SetOptionalStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalStringPiece = true;
+ result.optionalStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearOptionalStringPiece() {
+ PrepareBuilder();
+ result.hasOptionalStringPiece = false;
+ result.optionalStringPiece_ = "";
+ return this;
+ }
+
+ public bool HasOptionalCord {
+ get { return result.hasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return result.OptionalCord; }
+ set { SetOptionalCord(value); }
+ }
+ public Builder SetOptionalCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalCord = true;
+ result.optionalCord_ = value;
+ return this;
+ }
+ public Builder ClearOptionalCord() {
+ PrepareBuilder();
+ result.hasOptionalCord = false;
+ result.optionalCord_ = "";
+ return this;
+ }
+
+ public bool HasOptionalPublicImportMessage {
+ get { return result.hasOptionalPublicImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.PublicImportMessage OptionalPublicImportMessage {
+ get { return result.OptionalPublicImportMessage; }
+ set { SetOptionalPublicImportMessage(value); }
+ }
+ public Builder SetOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = true;
+ result.optionalPublicImportMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = true;
+ result.optionalPublicImportMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalPublicImportMessage &&
+ result.optionalPublicImportMessage_ != global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance) {
+ result.optionalPublicImportMessage_ = global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.CreateBuilder(result.optionalPublicImportMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalPublicImportMessage_ = value;
+ }
+ result.hasOptionalPublicImportMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalPublicImportMessage() {
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = false;
+ result.optionalPublicImportMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalLazyMessage {
+ get { return result.hasOptionalLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalLazyMessage {
+ get { return result.OptionalLazyMessage; }
+ set { SetOptionalLazyMessage(value); }
+ }
+ public Builder SetOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = true;
+ result.optionalLazyMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = true;
+ result.optionalLazyMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalLazyMessage &&
+ result.optionalLazyMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.optionalLazyMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalLazyMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalLazyMessage_ = value;
+ }
+ result.hasOptionalLazyMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalLazyMessage() {
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = false;
+ result.optionalLazyMessage_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return PrepareBuilder().repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ PrepareBuilder();
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return PrepareBuilder().repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ PrepareBuilder();
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> RepeatedUint32List {
+ get { return PrepareBuilder().repeatedUint32_; }
+ }
+ public int RepeatedUint32Count {
+ get { return result.RepeatedUint32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedUint32(int index) {
+ return result.GetRepeatedUint32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedUint32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedUint32(uint value) {
+ PrepareBuilder();
+ result.repeatedUint32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint32() {
+ PrepareBuilder();
+ result.repeatedUint32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return PrepareBuilder().repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedUint64(ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ PrepareBuilder();
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSint32List {
+ get { return PrepareBuilder().repeatedSint32_; }
+ }
+ public int RepeatedSint32Count {
+ get { return result.RepeatedSint32Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return result.GetRepeatedSint32(index);
+ }
+ public Builder SetRepeatedSint32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint32(int value) {
+ PrepareBuilder();
+ result.repeatedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSint32() {
+ PrepareBuilder();
+ result.repeatedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSint64List {
+ get { return PrepareBuilder().repeatedSint64_; }
+ }
+ public int RepeatedSint64Count {
+ get { return result.RepeatedSint64Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return result.GetRepeatedSint64(index);
+ }
+ public Builder SetRepeatedSint64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint64(long value) {
+ PrepareBuilder();
+ result.repeatedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSint64() {
+ PrepareBuilder();
+ result.repeatedSint64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return PrepareBuilder().repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed32(uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ PrepareBuilder();
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return PrepareBuilder().repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed64(ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ PrepareBuilder();
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSfixed32List {
+ get { return PrepareBuilder().repeatedSfixed32_; }
+ }
+ public int RepeatedSfixed32Count {
+ get { return result.RepeatedSfixed32Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return result.GetRepeatedSfixed32(index);
+ }
+ public Builder SetRepeatedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed32(int value) {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed32() {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSfixed64List {
+ get { return PrepareBuilder().repeatedSfixed64_; }
+ }
+ public int RepeatedSfixed64Count {
+ get { return result.RepeatedSfixed64Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return result.GetRepeatedSfixed64(index);
+ }
+ public Builder SetRepeatedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed64(long value) {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed64() {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return PrepareBuilder().repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ PrepareBuilder();
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ PrepareBuilder();
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> RepeatedDoubleList {
+ get { return PrepareBuilder().repeatedDouble_; }
+ }
+ public int RepeatedDoubleCount {
+ get { return result.RepeatedDoubleCount; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return result.GetRepeatedDouble(index);
+ }
+ public Builder SetRepeatedDouble(int index, double value) {
+ PrepareBuilder();
+ result.repeatedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedDouble(double value) {
+ PrepareBuilder();
+ result.repeatedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.repeatedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedDouble() {
+ PrepareBuilder();
+ result.repeatedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> RepeatedBoolList {
+ get { return PrepareBuilder().repeatedBool_; }
+ }
+ public int RepeatedBoolCount {
+ get { return result.RepeatedBoolCount; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return result.GetRepeatedBool(index);
+ }
+ public Builder SetRepeatedBool(int index, bool value) {
+ PrepareBuilder();
+ result.repeatedBool_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBool(bool value) {
+ PrepareBuilder();
+ result.repeatedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.repeatedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedBool() {
+ PrepareBuilder();
+ result.repeatedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringList {
+ get { return PrepareBuilder().repeatedString_; }
+ }
+ public int RepeatedStringCount {
+ get { return result.RepeatedStringCount; }
+ }
+ public string GetRepeatedString(int index) {
+ return result.GetRepeatedString(index);
+ }
+ public Builder SetRepeatedString(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedString_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedString_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedString(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedString_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedString() {
+ PrepareBuilder();
+ result.repeatedString_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<pb::ByteString> RepeatedBytesList {
+ get { return PrepareBuilder().repeatedBytes_; }
+ }
+ public int RepeatedBytesCount {
+ get { return result.RepeatedBytesCount; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return result.GetRepeatedBytes(index);
+ }
+ public Builder SetRepeatedBytes(int index, pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedBytes_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedBytes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBytes(scg::IEnumerable<pb::ByteString> values) {
+ PrepareBuilder();
+ result.repeatedBytes_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedBytes() {
+ PrepareBuilder();
+ result.repeatedBytes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> RepeatedGroupList {
+ get { return PrepareBuilder().repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return result.RepeatedGroupCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return result.GetRepeatedGroup(index);
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedGroup(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> values) {
+ PrepareBuilder();
+ result.repeatedGroup_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedGroup() {
+ PrepareBuilder();
+ result.repeatedGroup_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return PrepareBuilder().repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return result.RepeatedNestedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return result.GetRepeatedNestedMessage(index);
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedNestedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedNestedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> values) {
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedNestedMessage() {
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedForeignMessageList {
+ get { return PrepareBuilder().repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return result.RepeatedForeignMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedForeignMessage(int index) {
+ return result.GetRepeatedForeignMessage(index);
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedForeignMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedForeignMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedForeignMessage() {
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> RepeatedImportMessageList {
+ get { return PrepareBuilder().repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return result.RepeatedImportMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage GetRepeatedImportMessage(int index) {
+ return result.GetRepeatedImportMessage(index);
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedImportMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedImportMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedImportMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportMessage> values) {
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedImportMessage() {
+ PrepareBuilder();
+ result.repeatedImportMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return PrepareBuilder().repeatedNestedEnum_; }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return result.RepeatedNestedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return result.GetRepeatedNestedEnum(index);
+ }
+ public Builder SetRepeatedNestedEnum(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> values) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedNestedEnum() {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedForeignEnumList {
+ get { return PrepareBuilder().repeatedForeignEnum_; }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return result.RepeatedForeignEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedForeignEnum(int index) {
+ return result.GetRepeatedForeignEnum(index);
+ }
+ public Builder SetRepeatedForeignEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedForeignEnum() {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> RepeatedImportEnumList {
+ get { return PrepareBuilder().repeatedImportEnum_; }
+ }
+ public int RepeatedImportEnumCount {
+ get { return result.RepeatedImportEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum GetRepeatedImportEnum(int index) {
+ return result.GetRepeatedImportEnum(index);
+ }
+ public Builder SetRepeatedImportEnum(int index, global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.repeatedImportEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedImportEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportEnum> values) {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedImportEnum() {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceList {
+ get { return PrepareBuilder().repeatedStringPiece_; }
+ }
+ public int RepeatedStringPieceCount {
+ get { return result.RepeatedStringPieceCount; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return result.GetRepeatedStringPiece(index);
+ }
+ public Builder SetRepeatedStringPiece(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPiece_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPiece_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPiece(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringPiece_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringPiece() {
+ PrepareBuilder();
+ result.repeatedStringPiece_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordList {
+ get { return PrepareBuilder().repeatedCord_; }
+ }
+ public int RepeatedCordCount {
+ get { return result.RepeatedCordCount; }
+ }
+ public string GetRepeatedCord(int index) {
+ return result.GetRepeatedCord(index);
+ }
+ public Builder SetRepeatedCord(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCord_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCord_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCord(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedCord_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedCord() {
+ PrepareBuilder();
+ result.repeatedCord_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedLazyMessageList {
+ get { return PrepareBuilder().repeatedLazyMessage_; }
+ }
+ public int RepeatedLazyMessageCount {
+ get { return result.RepeatedLazyMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedLazyMessage(int index) {
+ return result.GetRepeatedLazyMessage(index);
+ }
+ public Builder SetRepeatedLazyMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedLazyMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedLazyMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedLazyMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedLazyMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> values) {
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedLazyMessage() {
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Clear();
+ return this;
+ }
+
+ public bool HasDefaultInt32 {
+ get { return result.hasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return result.DefaultInt32; }
+ set { SetDefaultInt32(value); }
+ }
+ public Builder SetDefaultInt32(int value) {
+ PrepareBuilder();
+ result.hasDefaultInt32 = true;
+ result.defaultInt32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt32() {
+ PrepareBuilder();
+ result.hasDefaultInt32 = false;
+ result.defaultInt32_ = 41;
+ return this;
+ }
+
+ public bool HasDefaultInt64 {
+ get { return result.hasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return result.DefaultInt64; }
+ set { SetDefaultInt64(value); }
+ }
+ public Builder SetDefaultInt64(long value) {
+ PrepareBuilder();
+ result.hasDefaultInt64 = true;
+ result.defaultInt64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt64() {
+ PrepareBuilder();
+ result.hasDefaultInt64 = false;
+ result.defaultInt64_ = 42L;
+ return this;
+ }
+
+ public bool HasDefaultUint32 {
+ get { return result.hasDefaultUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultUint32 {
+ get { return result.DefaultUint32; }
+ set { SetDefaultUint32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultUint32(uint value) {
+ PrepareBuilder();
+ result.hasDefaultUint32 = true;
+ result.defaultUint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint32() {
+ PrepareBuilder();
+ result.hasDefaultUint32 = false;
+ result.defaultUint32_ = 43;
+ return this;
+ }
+
+ public bool HasDefaultUint64 {
+ get { return result.hasDefaultUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultUint64 {
+ get { return result.DefaultUint64; }
+ set { SetDefaultUint64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultUint64(ulong value) {
+ PrepareBuilder();
+ result.hasDefaultUint64 = true;
+ result.defaultUint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint64() {
+ PrepareBuilder();
+ result.hasDefaultUint64 = false;
+ result.defaultUint64_ = 44UL;
+ return this;
+ }
+
+ public bool HasDefaultSint32 {
+ get { return result.hasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return result.DefaultSint32; }
+ set { SetDefaultSint32(value); }
+ }
+ public Builder SetDefaultSint32(int value) {
+ PrepareBuilder();
+ result.hasDefaultSint32 = true;
+ result.defaultSint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint32() {
+ PrepareBuilder();
+ result.hasDefaultSint32 = false;
+ result.defaultSint32_ = -45;
+ return this;
+ }
+
+ public bool HasDefaultSint64 {
+ get { return result.hasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return result.DefaultSint64; }
+ set { SetDefaultSint64(value); }
+ }
+ public Builder SetDefaultSint64(long value) {
+ PrepareBuilder();
+ result.hasDefaultSint64 = true;
+ result.defaultSint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint64() {
+ PrepareBuilder();
+ result.hasDefaultSint64 = false;
+ result.defaultSint64_ = 46L;
+ return this;
+ }
+
+ public bool HasDefaultFixed32 {
+ get { return result.hasDefaultFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultFixed32 {
+ get { return result.DefaultFixed32; }
+ set { SetDefaultFixed32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultFixed32(uint value) {
+ PrepareBuilder();
+ result.hasDefaultFixed32 = true;
+ result.defaultFixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed32() {
+ PrepareBuilder();
+ result.hasDefaultFixed32 = false;
+ result.defaultFixed32_ = 47;
+ return this;
+ }
+
+ public bool HasDefaultFixed64 {
+ get { return result.hasDefaultFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultFixed64 {
+ get { return result.DefaultFixed64; }
+ set { SetDefaultFixed64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultFixed64(ulong value) {
+ PrepareBuilder();
+ result.hasDefaultFixed64 = true;
+ result.defaultFixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed64() {
+ PrepareBuilder();
+ result.hasDefaultFixed64 = false;
+ result.defaultFixed64_ = 48UL;
+ return this;
+ }
+
+ public bool HasDefaultSfixed32 {
+ get { return result.hasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return result.DefaultSfixed32; }
+ set { SetDefaultSfixed32(value); }
+ }
+ public Builder SetDefaultSfixed32(int value) {
+ PrepareBuilder();
+ result.hasDefaultSfixed32 = true;
+ result.defaultSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed32() {
+ PrepareBuilder();
+ result.hasDefaultSfixed32 = false;
+ result.defaultSfixed32_ = 49;
+ return this;
+ }
+
+ public bool HasDefaultSfixed64 {
+ get { return result.hasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return result.DefaultSfixed64; }
+ set { SetDefaultSfixed64(value); }
+ }
+ public Builder SetDefaultSfixed64(long value) {
+ PrepareBuilder();
+ result.hasDefaultSfixed64 = true;
+ result.defaultSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed64() {
+ PrepareBuilder();
+ result.hasDefaultSfixed64 = false;
+ result.defaultSfixed64_ = -50L;
+ return this;
+ }
+
+ public bool HasDefaultFloat {
+ get { return result.hasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return result.DefaultFloat; }
+ set { SetDefaultFloat(value); }
+ }
+ public Builder SetDefaultFloat(float value) {
+ PrepareBuilder();
+ result.hasDefaultFloat = true;
+ result.defaultFloat_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFloat() {
+ PrepareBuilder();
+ result.hasDefaultFloat = false;
+ result.defaultFloat_ = 51.5F;
+ return this;
+ }
+
+ public bool HasDefaultDouble {
+ get { return result.hasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return result.DefaultDouble; }
+ set { SetDefaultDouble(value); }
+ }
+ public Builder SetDefaultDouble(double value) {
+ PrepareBuilder();
+ result.hasDefaultDouble = true;
+ result.defaultDouble_ = value;
+ return this;
+ }
+ public Builder ClearDefaultDouble() {
+ PrepareBuilder();
+ result.hasDefaultDouble = false;
+ result.defaultDouble_ = 52000D;
+ return this;
+ }
+
+ public bool HasDefaultBool {
+ get { return result.hasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return result.DefaultBool; }
+ set { SetDefaultBool(value); }
+ }
+ public Builder SetDefaultBool(bool value) {
+ PrepareBuilder();
+ result.hasDefaultBool = true;
+ result.defaultBool_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBool() {
+ PrepareBuilder();
+ result.hasDefaultBool = false;
+ result.defaultBool_ = true;
+ return this;
+ }
+
+ public bool HasDefaultString {
+ get { return result.hasDefaultString; }
+ }
+ public string DefaultString {
+ get { return result.DefaultString; }
+ set { SetDefaultString(value); }
+ }
+ public Builder SetDefaultString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultString = true;
+ result.defaultString_ = value;
+ return this;
+ }
+ public Builder ClearDefaultString() {
+ PrepareBuilder();
+ result.hasDefaultString = false;
+ result.defaultString_ = "hello";
+ return this;
+ }
+
+ public bool HasDefaultBytes {
+ get { return result.hasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return result.DefaultBytes; }
+ set { SetDefaultBytes(value); }
+ }
+ public Builder SetDefaultBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultBytes = true;
+ result.defaultBytes_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBytes() {
+ PrepareBuilder();
+ result.hasDefaultBytes = false;
+ result.defaultBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor.Fields[65].DefaultValue;
+ return this;
+ }
+
+ public bool HasDefaultNestedEnum {
+ get { return result.hasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum DefaultNestedEnum {
+ get { return result.DefaultNestedEnum; }
+ set { SetDefaultNestedEnum(value); }
+ }
+ public Builder SetDefaultNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.hasDefaultNestedEnum = true;
+ result.defaultNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultNestedEnum() {
+ PrepareBuilder();
+ result.hasDefaultNestedEnum = false;
+ result.defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.BAR;
+ return this;
+ }
+
+ public bool HasDefaultForeignEnum {
+ get { return result.hasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum DefaultForeignEnum {
+ get { return result.DefaultForeignEnum; }
+ set { SetDefaultForeignEnum(value); }
+ }
+ public Builder SetDefaultForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasDefaultForeignEnum = true;
+ result.defaultForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultForeignEnum() {
+ PrepareBuilder();
+ result.hasDefaultForeignEnum = false;
+ result.defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_BAR;
+ return this;
+ }
+
+ public bool HasDefaultImportEnum {
+ get { return result.hasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum DefaultImportEnum {
+ get { return result.DefaultImportEnum; }
+ set { SetDefaultImportEnum(value); }
+ }
+ public Builder SetDefaultImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.hasDefaultImportEnum = true;
+ result.defaultImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultImportEnum() {
+ PrepareBuilder();
+ result.hasDefaultImportEnum = false;
+ result.defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_BAR;
+ return this;
+ }
+
+ public bool HasDefaultStringPiece {
+ get { return result.hasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return result.DefaultStringPiece; }
+ set { SetDefaultStringPiece(value); }
+ }
+ public Builder SetDefaultStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultStringPiece = true;
+ result.defaultStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearDefaultStringPiece() {
+ PrepareBuilder();
+ result.hasDefaultStringPiece = false;
+ result.defaultStringPiece_ = "abc";
+ return this;
+ }
+
+ public bool HasDefaultCord {
+ get { return result.hasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return result.DefaultCord; }
+ set { SetDefaultCord(value); }
+ }
+ public Builder SetDefaultCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultCord = true;
+ result.defaultCord_ = value;
+ return this;
+ }
+ public Builder ClearDefaultCord() {
+ PrepareBuilder();
+ result.hasDefaultCord = false;
+ result.defaultCord_ = "123";
+ return this;
+ }
+
+ public bool HasOneofUint32 {
+ get { return result.hasOneofUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OneofUint32 {
+ get { return result.OneofUint32; }
+ set { SetOneofUint32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOneofUint32(uint value) {
+ PrepareBuilder();
+ result.hasOneofUint32 = true;
+ result.oneofUint32_ = value;
+ return this;
+ }
+ public Builder ClearOneofUint32() {
+ PrepareBuilder();
+ result.hasOneofUint32 = false;
+ result.oneofUint32_ = 0;
+ return this;
+ }
+
+ public bool HasOneofNestedMessage {
+ get { return result.hasOneofNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OneofNestedMessage {
+ get { return result.OneofNestedMessage; }
+ set { SetOneofNestedMessage(value); }
+ }
+ public Builder SetOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOneofNestedMessage = true;
+ result.oneofNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOneofNestedMessage = true;
+ result.oneofNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOneofNestedMessage &&
+ result.oneofNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.oneofNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.oneofNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.oneofNestedMessage_ = value;
+ }
+ result.hasOneofNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOneofNestedMessage() {
+ PrepareBuilder();
+ result.hasOneofNestedMessage = false;
+ result.oneofNestedMessage_ = null;
+ return this;
+ }
+
+ public bool HasOneofString {
+ get { return result.hasOneofString; }
+ }
+ public string OneofString {
+ get { return result.OneofString; }
+ set { SetOneofString(value); }
+ }
+ public Builder SetOneofString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOneofString = true;
+ result.oneofString_ = value;
+ return this;
+ }
+ public Builder ClearOneofString() {
+ PrepareBuilder();
+ result.hasOneofString = false;
+ result.oneofString_ = "";
+ return this;
+ }
+
+ public bool HasOneofBytes {
+ get { return result.hasOneofBytes; }
+ }
+ public pb::ByteString OneofBytes {
+ get { return result.OneofBytes; }
+ set { SetOneofBytes(value); }
+ }
+ public Builder SetOneofBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOneofBytes = true;
+ result.oneofBytes_ = value;
+ return this;
+ }
+ public Builder ClearOneofBytes() {
+ PrepareBuilder();
+ result.hasOneofBytes = false;
+ result.oneofBytes_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static TestAllTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedTestAllTypes : pb::GeneratedMessage<NestedTestAllTypes, NestedTestAllTypes.Builder> {
+ private NestedTestAllTypes() { }
+ private static readonly NestedTestAllTypes defaultInstance = new NestedTestAllTypes().MakeReadOnly();
+ private static readonly string[] _nestedTestAllTypesFieldNames = new string[] { "child", "payload" };
+ private static readonly uint[] _nestedTestAllTypesFieldTags = new uint[] { 10, 18 };
+ public static NestedTestAllTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedTestAllTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedTestAllTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedTestAllTypes, NestedTestAllTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable; }
+ }
+
+ public const int ChildFieldNumber = 1;
+ private bool hasChild;
+ private global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes child_;
+ public bool HasChild {
+ get { return hasChild; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes Child {
+ get { return child_ ?? global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance; }
+ }
+
+ public const int PayloadFieldNumber = 2;
+ private bool hasPayload;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes payload_;
+ public bool HasPayload {
+ get { return hasPayload; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Payload {
+ get { return payload_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedTestAllTypesFieldNames;
+ if (hasChild) {
+ output.WriteMessage(1, field_names[0], Child);
+ }
+ if (hasPayload) {
+ output.WriteMessage(2, field_names[1], Payload);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasChild) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Child);
+ }
+ if (hasPayload) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, Payload);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedTestAllTypes MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedTestAllTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedTestAllTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedTestAllTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedTestAllTypes result;
+
+ private NestedTestAllTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedTestAllTypes original = result;
+ result = new NestedTestAllTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedTestAllTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Descriptor; }
+ }
+
+ public override NestedTestAllTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance; }
+ }
+
+ public override NestedTestAllTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedTestAllTypes) {
+ return MergeFrom((NestedTestAllTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedTestAllTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasChild) {
+ MergeChild(other.Child);
+ }
+ if (other.HasPayload) {
+ MergePayload(other.Payload);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedTestAllTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedTestAllTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.CreateBuilder();
+ if (result.hasChild) {
+ subBuilder.MergeFrom(Child);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Child = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasPayload) {
+ subBuilder.MergeFrom(Payload);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Payload = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasChild {
+ get { return result.hasChild; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes Child {
+ get { return result.Child; }
+ set { SetChild(value); }
+ }
+ public Builder SetChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasChild = true;
+ result.child_ = value;
+ return this;
+ }
+ public Builder SetChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasChild = true;
+ result.child_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasChild &&
+ result.child_ != global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance) {
+ result.child_ = global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.CreateBuilder(result.child_).MergeFrom(value).BuildPartial();
+ } else {
+ result.child_ = value;
+ }
+ result.hasChild = true;
+ return this;
+ }
+ public Builder ClearChild() {
+ PrepareBuilder();
+ result.hasChild = false;
+ result.child_ = null;
+ return this;
+ }
+
+ public bool HasPayload {
+ get { return result.hasPayload; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Payload {
+ get { return result.Payload; }
+ set { SetPayload(value); }
+ }
+ public Builder SetPayload(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasPayload = true;
+ result.payload_ = value;
+ return this;
+ }
+ public Builder SetPayload(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasPayload = true;
+ result.payload_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergePayload(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasPayload &&
+ result.payload_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.payload_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.payload_).MergeFrom(value).BuildPartial();
+ } else {
+ result.payload_ = value;
+ }
+ result.hasPayload = true;
+ return this;
+ }
+ public Builder ClearPayload() {
+ PrepareBuilder();
+ result.hasPayload = false;
+ result.payload_ = null;
+ return this;
+ }
+ }
+ static NestedTestAllTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestDeprecatedFields : pb::GeneratedMessage<TestDeprecatedFields, TestDeprecatedFields.Builder> {
+ private TestDeprecatedFields() { }
+ private static readonly TestDeprecatedFields defaultInstance = new TestDeprecatedFields().MakeReadOnly();
+ private static readonly string[] _testDeprecatedFieldsFieldNames = new string[] { "deprecated_int32" };
+ private static readonly uint[] _testDeprecatedFieldsFieldTags = new uint[] { 8 };
+ public static TestDeprecatedFields DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDeprecatedFields DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestDeprecatedFields ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDeprecatedFields, TestDeprecatedFields.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable; }
+ }
+
+ public const int DeprecatedInt32FieldNumber = 1;
+ private bool hasDeprecatedInt32;
+ private int deprecatedInt32_;
+ [global::System.ObsoleteAttribute()]
+ public bool HasDeprecatedInt32 {
+ get { return hasDeprecatedInt32; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int DeprecatedInt32 {
+ get { return deprecatedInt32_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testDeprecatedFieldsFieldNames;
+ if (hasDeprecatedInt32) {
+ output.WriteInt32(1, field_names[0], DeprecatedInt32);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasDeprecatedInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, DeprecatedInt32);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestDeprecatedFields MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDeprecatedFields prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDeprecatedFields, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestDeprecatedFields cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestDeprecatedFields result;
+
+ private TestDeprecatedFields PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestDeprecatedFields original = result;
+ result = new TestDeprecatedFields();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestDeprecatedFields MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Descriptor; }
+ }
+
+ public override TestDeprecatedFields DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.DefaultInstance; }
+ }
+
+ public override TestDeprecatedFields BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDeprecatedFields) {
+ return MergeFrom((TestDeprecatedFields) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDeprecatedFields other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasDeprecatedInt32) {
+ DeprecatedInt32 = other.DeprecatedInt32;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testDeprecatedFieldsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testDeprecatedFieldsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasDeprecatedInt32 = input.ReadInt32(ref result.deprecatedInt32_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ [global::System.ObsoleteAttribute()]
+ public bool HasDeprecatedInt32 {
+ get { return result.hasDeprecatedInt32; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int DeprecatedInt32 {
+ get { return result.DeprecatedInt32; }
+ set { SetDeprecatedInt32(value); }
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetDeprecatedInt32(int value) {
+ PrepareBuilder();
+ result.hasDeprecatedInt32 = true;
+ result.deprecatedInt32_ = value;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder ClearDeprecatedInt32() {
+ PrepareBuilder();
+ result.hasDeprecatedInt32 = false;
+ result.deprecatedInt32_ = 0;
+ return this;
+ }
+ }
+ static TestDeprecatedFields() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ForeignMessage : pb::GeneratedMessage<ForeignMessage, ForeignMessage.Builder> {
+ private ForeignMessage() { }
+ private static readonly ForeignMessage defaultInstance = new ForeignMessage().MakeReadOnly();
+ private static readonly string[] _foreignMessageFieldNames = new string[] { "c" };
+ private static readonly uint[] _foreignMessageFieldTags = new uint[] { 8 };
+ public static ForeignMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ForeignMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ForeignMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_ForeignMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ForeignMessage, ForeignMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable; }
+ }
+
+ public const int CFieldNumber = 1;
+ private bool hasC;
+ private int c_;
+ public bool HasC {
+ get { return hasC; }
+ }
+ public int C {
+ get { return c_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _foreignMessageFieldNames;
+ if (hasC) {
+ output.WriteInt32(1, field_names[0], C);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasC) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, C);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ForeignMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ForeignMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ForeignMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ForeignMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ForeignMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ForeignMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ForeignMessage result;
+
+ private ForeignMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ForeignMessage original = result;
+ result = new ForeignMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ForeignMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Descriptor; }
+ }
+
+ public override ForeignMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public override ForeignMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ForeignMessage) {
+ return MergeFrom((ForeignMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ForeignMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasC) {
+ C = other.C;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_foreignMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _foreignMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasC = input.ReadInt32(ref result.c_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasC {
+ get { return result.hasC; }
+ }
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ PrepareBuilder();
+ result.hasC = true;
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ PrepareBuilder();
+ result.hasC = false;
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static ForeignMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestAllExtensions : pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder> {
+ private TestAllExtensions() { }
+ private static readonly TestAllExtensions defaultInstance = new TestAllExtensions().MakeReadOnly();
+ private static readonly string[] _testAllExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testAllExtensionsFieldTags = new uint[] { };
+ public static TestAllExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestAllExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestAllExtensions, TestAllExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testAllExtensionsFieldNames;
+ pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestAllExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestAllExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestAllExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestAllExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestAllExtensions result;
+
+ private TestAllExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestAllExtensions original = result;
+ result = new TestAllExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestAllExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Descriptor; }
+ }
+
+ public override TestAllExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.DefaultInstance; }
+ }
+
+ public override TestAllExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestAllExtensions) {
+ return MergeFrom((TestAllExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testAllExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testAllExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestAllExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup_extension : pb::GeneratedMessage<OptionalGroup_extension, OptionalGroup_extension.Builder> {
+ private OptionalGroup_extension() { }
+ private static readonly OptionalGroup_extension defaultInstance = new OptionalGroup_extension().MakeReadOnly();
+ private static readonly string[] _optionalGroupExtensionFieldNames = new string[] { "a" };
+ private static readonly uint[] _optionalGroupExtensionFieldTags = new uint[] { 136 };
+ public static OptionalGroup_extension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup_extension DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup_extension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup_extension, OptionalGroup_extension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupExtensionFieldNames;
+ if (hasA) {
+ output.WriteInt32(17, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup_extension MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup_extension prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup_extension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup_extension cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup_extension result;
+
+ private OptionalGroup_extension PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup_extension original = result;
+ result = new OptionalGroup_extension();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup_extension MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Descriptor; }
+ }
+
+ public override OptionalGroup_extension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.DefaultInstance; }
+ }
+
+ public override OptionalGroup_extension BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup_extension) {
+ return MergeFrom((OptionalGroup_extension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup_extension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupExtensionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupExtensionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 136: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup_extension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup_extension : pb::GeneratedMessage<RepeatedGroup_extension, RepeatedGroup_extension.Builder> {
+ private RepeatedGroup_extension() { }
+ private static readonly RepeatedGroup_extension defaultInstance = new RepeatedGroup_extension().MakeReadOnly();
+ private static readonly string[] _repeatedGroupExtensionFieldNames = new string[] { "a" };
+ private static readonly uint[] _repeatedGroupExtensionFieldTags = new uint[] { 376 };
+ public static RepeatedGroup_extension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup_extension DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup_extension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup_extension, RepeatedGroup_extension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupExtensionFieldNames;
+ if (hasA) {
+ output.WriteInt32(47, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup_extension MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup_extension prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup_extension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup_extension cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup_extension result;
+
+ private RepeatedGroup_extension PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup_extension original = result;
+ result = new RepeatedGroup_extension();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup_extension MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Descriptor; }
+ }
+
+ public override RepeatedGroup_extension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.DefaultInstance; }
+ }
+
+ public override RepeatedGroup_extension BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup_extension) {
+ return MergeFrom((RepeatedGroup_extension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup_extension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupExtensionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupExtensionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 376: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup_extension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestNestedExtension : pb::GeneratedMessage<TestNestedExtension, TestNestedExtension.Builder> {
+ private TestNestedExtension() { }
+ private static readonly TestNestedExtension defaultInstance = new TestNestedExtension().MakeReadOnly();
+ private static readonly string[] _testNestedExtensionFieldNames = new string[] { };
+ private static readonly uint[] _testNestedExtensionFieldTags = new uint[] { };
+ public static TestNestedExtension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedExtension DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestNestedExtension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedExtension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestNestedExtension, TestNestedExtension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable; }
+ }
+
+ public const int TestFieldNumber = 1002;
+ public static pb::GeneratedExtensionBase<string> Test;
+ public const int NestedStringExtensionFieldNumber = 1003;
+ public static pb::GeneratedExtensionBase<string> NestedStringExtension;
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testNestedExtensionFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestNestedExtension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedExtension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestNestedExtension MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedExtension prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestNestedExtension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestNestedExtension cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestNestedExtension result;
+
+ private TestNestedExtension PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestNestedExtension original = result;
+ result = new TestNestedExtension();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestNestedExtension MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor; }
+ }
+
+ public override TestNestedExtension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.DefaultInstance; }
+ }
+
+ public override TestNestedExtension BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestNestedExtension) {
+ return MergeFrom((TestNestedExtension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedExtension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testNestedExtensionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testNestedExtensionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestNestedExtension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequired : pb::GeneratedMessage<TestRequired, TestRequired.Builder> {
+ private TestRequired() { }
+ private static readonly TestRequired defaultInstance = new TestRequired().MakeReadOnly();
+ private static readonly string[] _testRequiredFieldNames = new string[] { "a", "b", "c", "dummy10", "dummy11", "dummy12", "dummy13", "dummy14", "dummy15", "dummy16", "dummy17", "dummy18", "dummy19", "dummy2", "dummy20", "dummy21", "dummy22", "dummy23", "dummy24", "dummy25", "dummy26", "dummy27", "dummy28", "dummy29", "dummy30", "dummy31", "dummy32", "dummy4", "dummy5", "dummy6", "dummy7", "dummy8", "dummy9" };
+ private static readonly uint[] _testRequiredFieldTags = new uint[] { 8, 24, 264, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 16, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 256, 32, 40, 48, 56, 64, 72 };
+ public static TestRequired DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequired DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequired ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequired__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequired, TestRequired.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequired__FieldAccessorTable; }
+ }
+
+ public const int SingleFieldNumber = 1000;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestRequired> Single;
+ public const int MultiFieldNumber = 1001;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestRequired>> Multi;
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int Dummy2FieldNumber = 2;
+ private bool hasDummy2;
+ private int dummy2_;
+ public bool HasDummy2 {
+ get { return hasDummy2; }
+ }
+ public int Dummy2 {
+ get { return dummy2_; }
+ }
+
+ public const int BFieldNumber = 3;
+ private bool hasB;
+ private int b_;
+ public bool HasB {
+ get { return hasB; }
+ }
+ public int B {
+ get { return b_; }
+ }
+
+ public const int Dummy4FieldNumber = 4;
+ private bool hasDummy4;
+ private int dummy4_;
+ public bool HasDummy4 {
+ get { return hasDummy4; }
+ }
+ public int Dummy4 {
+ get { return dummy4_; }
+ }
+
+ public const int Dummy5FieldNumber = 5;
+ private bool hasDummy5;
+ private int dummy5_;
+ public bool HasDummy5 {
+ get { return hasDummy5; }
+ }
+ public int Dummy5 {
+ get { return dummy5_; }
+ }
+
+ public const int Dummy6FieldNumber = 6;
+ private bool hasDummy6;
+ private int dummy6_;
+ public bool HasDummy6 {
+ get { return hasDummy6; }
+ }
+ public int Dummy6 {
+ get { return dummy6_; }
+ }
+
+ public const int Dummy7FieldNumber = 7;
+ private bool hasDummy7;
+ private int dummy7_;
+ public bool HasDummy7 {
+ get { return hasDummy7; }
+ }
+ public int Dummy7 {
+ get { return dummy7_; }
+ }
+
+ public const int Dummy8FieldNumber = 8;
+ private bool hasDummy8;
+ private int dummy8_;
+ public bool HasDummy8 {
+ get { return hasDummy8; }
+ }
+ public int Dummy8 {
+ get { return dummy8_; }
+ }
+
+ public const int Dummy9FieldNumber = 9;
+ private bool hasDummy9;
+ private int dummy9_;
+ public bool HasDummy9 {
+ get { return hasDummy9; }
+ }
+ public int Dummy9 {
+ get { return dummy9_; }
+ }
+
+ public const int Dummy10FieldNumber = 10;
+ private bool hasDummy10;
+ private int dummy10_;
+ public bool HasDummy10 {
+ get { return hasDummy10; }
+ }
+ public int Dummy10 {
+ get { return dummy10_; }
+ }
+
+ public const int Dummy11FieldNumber = 11;
+ private bool hasDummy11;
+ private int dummy11_;
+ public bool HasDummy11 {
+ get { return hasDummy11; }
+ }
+ public int Dummy11 {
+ get { return dummy11_; }
+ }
+
+ public const int Dummy12FieldNumber = 12;
+ private bool hasDummy12;
+ private int dummy12_;
+ public bool HasDummy12 {
+ get { return hasDummy12; }
+ }
+ public int Dummy12 {
+ get { return dummy12_; }
+ }
+
+ public const int Dummy13FieldNumber = 13;
+ private bool hasDummy13;
+ private int dummy13_;
+ public bool HasDummy13 {
+ get { return hasDummy13; }
+ }
+ public int Dummy13 {
+ get { return dummy13_; }
+ }
+
+ public const int Dummy14FieldNumber = 14;
+ private bool hasDummy14;
+ private int dummy14_;
+ public bool HasDummy14 {
+ get { return hasDummy14; }
+ }
+ public int Dummy14 {
+ get { return dummy14_; }
+ }
+
+ public const int Dummy15FieldNumber = 15;
+ private bool hasDummy15;
+ private int dummy15_;
+ public bool HasDummy15 {
+ get { return hasDummy15; }
+ }
+ public int Dummy15 {
+ get { return dummy15_; }
+ }
+
+ public const int Dummy16FieldNumber = 16;
+ private bool hasDummy16;
+ private int dummy16_;
+ public bool HasDummy16 {
+ get { return hasDummy16; }
+ }
+ public int Dummy16 {
+ get { return dummy16_; }
+ }
+
+ public const int Dummy17FieldNumber = 17;
+ private bool hasDummy17;
+ private int dummy17_;
+ public bool HasDummy17 {
+ get { return hasDummy17; }
+ }
+ public int Dummy17 {
+ get { return dummy17_; }
+ }
+
+ public const int Dummy18FieldNumber = 18;
+ private bool hasDummy18;
+ private int dummy18_;
+ public bool HasDummy18 {
+ get { return hasDummy18; }
+ }
+ public int Dummy18 {
+ get { return dummy18_; }
+ }
+
+ public const int Dummy19FieldNumber = 19;
+ private bool hasDummy19;
+ private int dummy19_;
+ public bool HasDummy19 {
+ get { return hasDummy19; }
+ }
+ public int Dummy19 {
+ get { return dummy19_; }
+ }
+
+ public const int Dummy20FieldNumber = 20;
+ private bool hasDummy20;
+ private int dummy20_;
+ public bool HasDummy20 {
+ get { return hasDummy20; }
+ }
+ public int Dummy20 {
+ get { return dummy20_; }
+ }
+
+ public const int Dummy21FieldNumber = 21;
+ private bool hasDummy21;
+ private int dummy21_;
+ public bool HasDummy21 {
+ get { return hasDummy21; }
+ }
+ public int Dummy21 {
+ get { return dummy21_; }
+ }
+
+ public const int Dummy22FieldNumber = 22;
+ private bool hasDummy22;
+ private int dummy22_;
+ public bool HasDummy22 {
+ get { return hasDummy22; }
+ }
+ public int Dummy22 {
+ get { return dummy22_; }
+ }
+
+ public const int Dummy23FieldNumber = 23;
+ private bool hasDummy23;
+ private int dummy23_;
+ public bool HasDummy23 {
+ get { return hasDummy23; }
+ }
+ public int Dummy23 {
+ get { return dummy23_; }
+ }
+
+ public const int Dummy24FieldNumber = 24;
+ private bool hasDummy24;
+ private int dummy24_;
+ public bool HasDummy24 {
+ get { return hasDummy24; }
+ }
+ public int Dummy24 {
+ get { return dummy24_; }
+ }
+
+ public const int Dummy25FieldNumber = 25;
+ private bool hasDummy25;
+ private int dummy25_;
+ public bool HasDummy25 {
+ get { return hasDummy25; }
+ }
+ public int Dummy25 {
+ get { return dummy25_; }
+ }
+
+ public const int Dummy26FieldNumber = 26;
+ private bool hasDummy26;
+ private int dummy26_;
+ public bool HasDummy26 {
+ get { return hasDummy26; }
+ }
+ public int Dummy26 {
+ get { return dummy26_; }
+ }
+
+ public const int Dummy27FieldNumber = 27;
+ private bool hasDummy27;
+ private int dummy27_;
+ public bool HasDummy27 {
+ get { return hasDummy27; }
+ }
+ public int Dummy27 {
+ get { return dummy27_; }
+ }
+
+ public const int Dummy28FieldNumber = 28;
+ private bool hasDummy28;
+ private int dummy28_;
+ public bool HasDummy28 {
+ get { return hasDummy28; }
+ }
+ public int Dummy28 {
+ get { return dummy28_; }
+ }
+
+ public const int Dummy29FieldNumber = 29;
+ private bool hasDummy29;
+ private int dummy29_;
+ public bool HasDummy29 {
+ get { return hasDummy29; }
+ }
+ public int Dummy29 {
+ get { return dummy29_; }
+ }
+
+ public const int Dummy30FieldNumber = 30;
+ private bool hasDummy30;
+ private int dummy30_;
+ public bool HasDummy30 {
+ get { return hasDummy30; }
+ }
+ public int Dummy30 {
+ get { return dummy30_; }
+ }
+
+ public const int Dummy31FieldNumber = 31;
+ private bool hasDummy31;
+ private int dummy31_;
+ public bool HasDummy31 {
+ get { return hasDummy31; }
+ }
+ public int Dummy31 {
+ get { return dummy31_; }
+ }
+
+ public const int Dummy32FieldNumber = 32;
+ private bool hasDummy32;
+ private int dummy32_;
+ public bool HasDummy32 {
+ get { return hasDummy32; }
+ }
+ public int Dummy32 {
+ get { return dummy32_; }
+ }
+
+ public const int CFieldNumber = 33;
+ private bool hasC;
+ private int c_;
+ public bool HasC {
+ get { return hasC; }
+ }
+ public int C {
+ get { return c_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasA) return false;
+ if (!hasB) return false;
+ if (!hasC) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRequiredFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ if (hasDummy2) {
+ output.WriteInt32(2, field_names[13], Dummy2);
+ }
+ if (hasB) {
+ output.WriteInt32(3, field_names[1], B);
+ }
+ if (hasDummy4) {
+ output.WriteInt32(4, field_names[27], Dummy4);
+ }
+ if (hasDummy5) {
+ output.WriteInt32(5, field_names[28], Dummy5);
+ }
+ if (hasDummy6) {
+ output.WriteInt32(6, field_names[29], Dummy6);
+ }
+ if (hasDummy7) {
+ output.WriteInt32(7, field_names[30], Dummy7);
+ }
+ if (hasDummy8) {
+ output.WriteInt32(8, field_names[31], Dummy8);
+ }
+ if (hasDummy9) {
+ output.WriteInt32(9, field_names[32], Dummy9);
+ }
+ if (hasDummy10) {
+ output.WriteInt32(10, field_names[3], Dummy10);
+ }
+ if (hasDummy11) {
+ output.WriteInt32(11, field_names[4], Dummy11);
+ }
+ if (hasDummy12) {
+ output.WriteInt32(12, field_names[5], Dummy12);
+ }
+ if (hasDummy13) {
+ output.WriteInt32(13, field_names[6], Dummy13);
+ }
+ if (hasDummy14) {
+ output.WriteInt32(14, field_names[7], Dummy14);
+ }
+ if (hasDummy15) {
+ output.WriteInt32(15, field_names[8], Dummy15);
+ }
+ if (hasDummy16) {
+ output.WriteInt32(16, field_names[9], Dummy16);
+ }
+ if (hasDummy17) {
+ output.WriteInt32(17, field_names[10], Dummy17);
+ }
+ if (hasDummy18) {
+ output.WriteInt32(18, field_names[11], Dummy18);
+ }
+ if (hasDummy19) {
+ output.WriteInt32(19, field_names[12], Dummy19);
+ }
+ if (hasDummy20) {
+ output.WriteInt32(20, field_names[14], Dummy20);
+ }
+ if (hasDummy21) {
+ output.WriteInt32(21, field_names[15], Dummy21);
+ }
+ if (hasDummy22) {
+ output.WriteInt32(22, field_names[16], Dummy22);
+ }
+ if (hasDummy23) {
+ output.WriteInt32(23, field_names[17], Dummy23);
+ }
+ if (hasDummy24) {
+ output.WriteInt32(24, field_names[18], Dummy24);
+ }
+ if (hasDummy25) {
+ output.WriteInt32(25, field_names[19], Dummy25);
+ }
+ if (hasDummy26) {
+ output.WriteInt32(26, field_names[20], Dummy26);
+ }
+ if (hasDummy27) {
+ output.WriteInt32(27, field_names[21], Dummy27);
+ }
+ if (hasDummy28) {
+ output.WriteInt32(28, field_names[22], Dummy28);
+ }
+ if (hasDummy29) {
+ output.WriteInt32(29, field_names[23], Dummy29);
+ }
+ if (hasDummy30) {
+ output.WriteInt32(30, field_names[24], Dummy30);
+ }
+ if (hasDummy31) {
+ output.WriteInt32(31, field_names[25], Dummy31);
+ }
+ if (hasDummy32) {
+ output.WriteInt32(32, field_names[26], Dummy32);
+ }
+ if (hasC) {
+ output.WriteInt32(33, field_names[2], C);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (hasDummy2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Dummy2);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, B);
+ }
+ if (hasDummy4) {
+ size += pb::CodedOutputStream.ComputeInt32Size(4, Dummy4);
+ }
+ if (hasDummy5) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, Dummy5);
+ }
+ if (hasDummy6) {
+ size += pb::CodedOutputStream.ComputeInt32Size(6, Dummy6);
+ }
+ if (hasDummy7) {
+ size += pb::CodedOutputStream.ComputeInt32Size(7, Dummy7);
+ }
+ if (hasDummy8) {
+ size += pb::CodedOutputStream.ComputeInt32Size(8, Dummy8);
+ }
+ if (hasDummy9) {
+ size += pb::CodedOutputStream.ComputeInt32Size(9, Dummy9);
+ }
+ if (hasDummy10) {
+ size += pb::CodedOutputStream.ComputeInt32Size(10, Dummy10);
+ }
+ if (hasDummy11) {
+ size += pb::CodedOutputStream.ComputeInt32Size(11, Dummy11);
+ }
+ if (hasDummy12) {
+ size += pb::CodedOutputStream.ComputeInt32Size(12, Dummy12);
+ }
+ if (hasDummy13) {
+ size += pb::CodedOutputStream.ComputeInt32Size(13, Dummy13);
+ }
+ if (hasDummy14) {
+ size += pb::CodedOutputStream.ComputeInt32Size(14, Dummy14);
+ }
+ if (hasDummy15) {
+ size += pb::CodedOutputStream.ComputeInt32Size(15, Dummy15);
+ }
+ if (hasDummy16) {
+ size += pb::CodedOutputStream.ComputeInt32Size(16, Dummy16);
+ }
+ if (hasDummy17) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, Dummy17);
+ }
+ if (hasDummy18) {
+ size += pb::CodedOutputStream.ComputeInt32Size(18, Dummy18);
+ }
+ if (hasDummy19) {
+ size += pb::CodedOutputStream.ComputeInt32Size(19, Dummy19);
+ }
+ if (hasDummy20) {
+ size += pb::CodedOutputStream.ComputeInt32Size(20, Dummy20);
+ }
+ if (hasDummy21) {
+ size += pb::CodedOutputStream.ComputeInt32Size(21, Dummy21);
+ }
+ if (hasDummy22) {
+ size += pb::CodedOutputStream.ComputeInt32Size(22, Dummy22);
+ }
+ if (hasDummy23) {
+ size += pb::CodedOutputStream.ComputeInt32Size(23, Dummy23);
+ }
+ if (hasDummy24) {
+ size += pb::CodedOutputStream.ComputeInt32Size(24, Dummy24);
+ }
+ if (hasDummy25) {
+ size += pb::CodedOutputStream.ComputeInt32Size(25, Dummy25);
+ }
+ if (hasDummy26) {
+ size += pb::CodedOutputStream.ComputeInt32Size(26, Dummy26);
+ }
+ if (hasDummy27) {
+ size += pb::CodedOutputStream.ComputeInt32Size(27, Dummy27);
+ }
+ if (hasDummy28) {
+ size += pb::CodedOutputStream.ComputeInt32Size(28, Dummy28);
+ }
+ if (hasDummy29) {
+ size += pb::CodedOutputStream.ComputeInt32Size(29, Dummy29);
+ }
+ if (hasDummy30) {
+ size += pb::CodedOutputStream.ComputeInt32Size(30, Dummy30);
+ }
+ if (hasDummy31) {
+ size += pb::CodedOutputStream.ComputeInt32Size(31, Dummy31);
+ }
+ if (hasDummy32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(32, Dummy32);
+ }
+ if (hasC) {
+ size += pb::CodedOutputStream.ComputeInt32Size(33, C);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRequired ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequired ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequired MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequired prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequired, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequired cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequired result;
+
+ private TestRequired PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequired original = result;
+ result = new TestRequired();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequired MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor; }
+ }
+
+ public override TestRequired DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance; }
+ }
+
+ public override TestRequired BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequired) {
+ return MergeFrom((TestRequired) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequired other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasDummy2) {
+ Dummy2 = other.Dummy2;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ if (other.HasDummy4) {
+ Dummy4 = other.Dummy4;
+ }
+ if (other.HasDummy5) {
+ Dummy5 = other.Dummy5;
+ }
+ if (other.HasDummy6) {
+ Dummy6 = other.Dummy6;
+ }
+ if (other.HasDummy7) {
+ Dummy7 = other.Dummy7;
+ }
+ if (other.HasDummy8) {
+ Dummy8 = other.Dummy8;
+ }
+ if (other.HasDummy9) {
+ Dummy9 = other.Dummy9;
+ }
+ if (other.HasDummy10) {
+ Dummy10 = other.Dummy10;
+ }
+ if (other.HasDummy11) {
+ Dummy11 = other.Dummy11;
+ }
+ if (other.HasDummy12) {
+ Dummy12 = other.Dummy12;
+ }
+ if (other.HasDummy13) {
+ Dummy13 = other.Dummy13;
+ }
+ if (other.HasDummy14) {
+ Dummy14 = other.Dummy14;
+ }
+ if (other.HasDummy15) {
+ Dummy15 = other.Dummy15;
+ }
+ if (other.HasDummy16) {
+ Dummy16 = other.Dummy16;
+ }
+ if (other.HasDummy17) {
+ Dummy17 = other.Dummy17;
+ }
+ if (other.HasDummy18) {
+ Dummy18 = other.Dummy18;
+ }
+ if (other.HasDummy19) {
+ Dummy19 = other.Dummy19;
+ }
+ if (other.HasDummy20) {
+ Dummy20 = other.Dummy20;
+ }
+ if (other.HasDummy21) {
+ Dummy21 = other.Dummy21;
+ }
+ if (other.HasDummy22) {
+ Dummy22 = other.Dummy22;
+ }
+ if (other.HasDummy23) {
+ Dummy23 = other.Dummy23;
+ }
+ if (other.HasDummy24) {
+ Dummy24 = other.Dummy24;
+ }
+ if (other.HasDummy25) {
+ Dummy25 = other.Dummy25;
+ }
+ if (other.HasDummy26) {
+ Dummy26 = other.Dummy26;
+ }
+ if (other.HasDummy27) {
+ Dummy27 = other.Dummy27;
+ }
+ if (other.HasDummy28) {
+ Dummy28 = other.Dummy28;
+ }
+ if (other.HasDummy29) {
+ Dummy29 = other.Dummy29;
+ }
+ if (other.HasDummy30) {
+ Dummy30 = other.Dummy30;
+ }
+ if (other.HasDummy31) {
+ Dummy31 = other.Dummy31;
+ }
+ if (other.HasDummy32) {
+ Dummy32 = other.Dummy32;
+ }
+ if (other.HasC) {
+ C = other.C;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRequiredFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRequiredFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 16: {
+ result.hasDummy2 = input.ReadInt32(ref result.dummy2_);
+ break;
+ }
+ case 24: {
+ result.hasB = input.ReadInt32(ref result.b_);
+ break;
+ }
+ case 32: {
+ result.hasDummy4 = input.ReadInt32(ref result.dummy4_);
+ break;
+ }
+ case 40: {
+ result.hasDummy5 = input.ReadInt32(ref result.dummy5_);
+ break;
+ }
+ case 48: {
+ result.hasDummy6 = input.ReadInt32(ref result.dummy6_);
+ break;
+ }
+ case 56: {
+ result.hasDummy7 = input.ReadInt32(ref result.dummy7_);
+ break;
+ }
+ case 64: {
+ result.hasDummy8 = input.ReadInt32(ref result.dummy8_);
+ break;
+ }
+ case 72: {
+ result.hasDummy9 = input.ReadInt32(ref result.dummy9_);
+ break;
+ }
+ case 80: {
+ result.hasDummy10 = input.ReadInt32(ref result.dummy10_);
+ break;
+ }
+ case 88: {
+ result.hasDummy11 = input.ReadInt32(ref result.dummy11_);
+ break;
+ }
+ case 96: {
+ result.hasDummy12 = input.ReadInt32(ref result.dummy12_);
+ break;
+ }
+ case 104: {
+ result.hasDummy13 = input.ReadInt32(ref result.dummy13_);
+ break;
+ }
+ case 112: {
+ result.hasDummy14 = input.ReadInt32(ref result.dummy14_);
+ break;
+ }
+ case 120: {
+ result.hasDummy15 = input.ReadInt32(ref result.dummy15_);
+ break;
+ }
+ case 128: {
+ result.hasDummy16 = input.ReadInt32(ref result.dummy16_);
+ break;
+ }
+ case 136: {
+ result.hasDummy17 = input.ReadInt32(ref result.dummy17_);
+ break;
+ }
+ case 144: {
+ result.hasDummy18 = input.ReadInt32(ref result.dummy18_);
+ break;
+ }
+ case 152: {
+ result.hasDummy19 = input.ReadInt32(ref result.dummy19_);
+ break;
+ }
+ case 160: {
+ result.hasDummy20 = input.ReadInt32(ref result.dummy20_);
+ break;
+ }
+ case 168: {
+ result.hasDummy21 = input.ReadInt32(ref result.dummy21_);
+ break;
+ }
+ case 176: {
+ result.hasDummy22 = input.ReadInt32(ref result.dummy22_);
+ break;
+ }
+ case 184: {
+ result.hasDummy23 = input.ReadInt32(ref result.dummy23_);
+ break;
+ }
+ case 192: {
+ result.hasDummy24 = input.ReadInt32(ref result.dummy24_);
+ break;
+ }
+ case 200: {
+ result.hasDummy25 = input.ReadInt32(ref result.dummy25_);
+ break;
+ }
+ case 208: {
+ result.hasDummy26 = input.ReadInt32(ref result.dummy26_);
+ break;
+ }
+ case 216: {
+ result.hasDummy27 = input.ReadInt32(ref result.dummy27_);
+ break;
+ }
+ case 224: {
+ result.hasDummy28 = input.ReadInt32(ref result.dummy28_);
+ break;
+ }
+ case 232: {
+ result.hasDummy29 = input.ReadInt32(ref result.dummy29_);
+ break;
+ }
+ case 240: {
+ result.hasDummy30 = input.ReadInt32(ref result.dummy30_);
+ break;
+ }
+ case 248: {
+ result.hasDummy31 = input.ReadInt32(ref result.dummy31_);
+ break;
+ }
+ case 256: {
+ result.hasDummy32 = input.ReadInt32(ref result.dummy32_);
+ break;
+ }
+ case 264: {
+ result.hasC = input.ReadInt32(ref result.c_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasDummy2 {
+ get { return result.hasDummy2; }
+ }
+ public int Dummy2 {
+ get { return result.Dummy2; }
+ set { SetDummy2(value); }
+ }
+ public Builder SetDummy2(int value) {
+ PrepareBuilder();
+ result.hasDummy2 = true;
+ result.dummy2_ = value;
+ return this;
+ }
+ public Builder ClearDummy2() {
+ PrepareBuilder();
+ result.hasDummy2 = false;
+ result.dummy2_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public int B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(int value) {
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = 0;
+ return this;
+ }
+
+ public bool HasDummy4 {
+ get { return result.hasDummy4; }
+ }
+ public int Dummy4 {
+ get { return result.Dummy4; }
+ set { SetDummy4(value); }
+ }
+ public Builder SetDummy4(int value) {
+ PrepareBuilder();
+ result.hasDummy4 = true;
+ result.dummy4_ = value;
+ return this;
+ }
+ public Builder ClearDummy4() {
+ PrepareBuilder();
+ result.hasDummy4 = false;
+ result.dummy4_ = 0;
+ return this;
+ }
+
+ public bool HasDummy5 {
+ get { return result.hasDummy5; }
+ }
+ public int Dummy5 {
+ get { return result.Dummy5; }
+ set { SetDummy5(value); }
+ }
+ public Builder SetDummy5(int value) {
+ PrepareBuilder();
+ result.hasDummy5 = true;
+ result.dummy5_ = value;
+ return this;
+ }
+ public Builder ClearDummy5() {
+ PrepareBuilder();
+ result.hasDummy5 = false;
+ result.dummy5_ = 0;
+ return this;
+ }
+
+ public bool HasDummy6 {
+ get { return result.hasDummy6; }
+ }
+ public int Dummy6 {
+ get { return result.Dummy6; }
+ set { SetDummy6(value); }
+ }
+ public Builder SetDummy6(int value) {
+ PrepareBuilder();
+ result.hasDummy6 = true;
+ result.dummy6_ = value;
+ return this;
+ }
+ public Builder ClearDummy6() {
+ PrepareBuilder();
+ result.hasDummy6 = false;
+ result.dummy6_ = 0;
+ return this;
+ }
+
+ public bool HasDummy7 {
+ get { return result.hasDummy7; }
+ }
+ public int Dummy7 {
+ get { return result.Dummy7; }
+ set { SetDummy7(value); }
+ }
+ public Builder SetDummy7(int value) {
+ PrepareBuilder();
+ result.hasDummy7 = true;
+ result.dummy7_ = value;
+ return this;
+ }
+ public Builder ClearDummy7() {
+ PrepareBuilder();
+ result.hasDummy7 = false;
+ result.dummy7_ = 0;
+ return this;
+ }
+
+ public bool HasDummy8 {
+ get { return result.hasDummy8; }
+ }
+ public int Dummy8 {
+ get { return result.Dummy8; }
+ set { SetDummy8(value); }
+ }
+ public Builder SetDummy8(int value) {
+ PrepareBuilder();
+ result.hasDummy8 = true;
+ result.dummy8_ = value;
+ return this;
+ }
+ public Builder ClearDummy8() {
+ PrepareBuilder();
+ result.hasDummy8 = false;
+ result.dummy8_ = 0;
+ return this;
+ }
+
+ public bool HasDummy9 {
+ get { return result.hasDummy9; }
+ }
+ public int Dummy9 {
+ get { return result.Dummy9; }
+ set { SetDummy9(value); }
+ }
+ public Builder SetDummy9(int value) {
+ PrepareBuilder();
+ result.hasDummy9 = true;
+ result.dummy9_ = value;
+ return this;
+ }
+ public Builder ClearDummy9() {
+ PrepareBuilder();
+ result.hasDummy9 = false;
+ result.dummy9_ = 0;
+ return this;
+ }
+
+ public bool HasDummy10 {
+ get { return result.hasDummy10; }
+ }
+ public int Dummy10 {
+ get { return result.Dummy10; }
+ set { SetDummy10(value); }
+ }
+ public Builder SetDummy10(int value) {
+ PrepareBuilder();
+ result.hasDummy10 = true;
+ result.dummy10_ = value;
+ return this;
+ }
+ public Builder ClearDummy10() {
+ PrepareBuilder();
+ result.hasDummy10 = false;
+ result.dummy10_ = 0;
+ return this;
+ }
+
+ public bool HasDummy11 {
+ get { return result.hasDummy11; }
+ }
+ public int Dummy11 {
+ get { return result.Dummy11; }
+ set { SetDummy11(value); }
+ }
+ public Builder SetDummy11(int value) {
+ PrepareBuilder();
+ result.hasDummy11 = true;
+ result.dummy11_ = value;
+ return this;
+ }
+ public Builder ClearDummy11() {
+ PrepareBuilder();
+ result.hasDummy11 = false;
+ result.dummy11_ = 0;
+ return this;
+ }
+
+ public bool HasDummy12 {
+ get { return result.hasDummy12; }
+ }
+ public int Dummy12 {
+ get { return result.Dummy12; }
+ set { SetDummy12(value); }
+ }
+ public Builder SetDummy12(int value) {
+ PrepareBuilder();
+ result.hasDummy12 = true;
+ result.dummy12_ = value;
+ return this;
+ }
+ public Builder ClearDummy12() {
+ PrepareBuilder();
+ result.hasDummy12 = false;
+ result.dummy12_ = 0;
+ return this;
+ }
+
+ public bool HasDummy13 {
+ get { return result.hasDummy13; }
+ }
+ public int Dummy13 {
+ get { return result.Dummy13; }
+ set { SetDummy13(value); }
+ }
+ public Builder SetDummy13(int value) {
+ PrepareBuilder();
+ result.hasDummy13 = true;
+ result.dummy13_ = value;
+ return this;
+ }
+ public Builder ClearDummy13() {
+ PrepareBuilder();
+ result.hasDummy13 = false;
+ result.dummy13_ = 0;
+ return this;
+ }
+
+ public bool HasDummy14 {
+ get { return result.hasDummy14; }
+ }
+ public int Dummy14 {
+ get { return result.Dummy14; }
+ set { SetDummy14(value); }
+ }
+ public Builder SetDummy14(int value) {
+ PrepareBuilder();
+ result.hasDummy14 = true;
+ result.dummy14_ = value;
+ return this;
+ }
+ public Builder ClearDummy14() {
+ PrepareBuilder();
+ result.hasDummy14 = false;
+ result.dummy14_ = 0;
+ return this;
+ }
+
+ public bool HasDummy15 {
+ get { return result.hasDummy15; }
+ }
+ public int Dummy15 {
+ get { return result.Dummy15; }
+ set { SetDummy15(value); }
+ }
+ public Builder SetDummy15(int value) {
+ PrepareBuilder();
+ result.hasDummy15 = true;
+ result.dummy15_ = value;
+ return this;
+ }
+ public Builder ClearDummy15() {
+ PrepareBuilder();
+ result.hasDummy15 = false;
+ result.dummy15_ = 0;
+ return this;
+ }
+
+ public bool HasDummy16 {
+ get { return result.hasDummy16; }
+ }
+ public int Dummy16 {
+ get { return result.Dummy16; }
+ set { SetDummy16(value); }
+ }
+ public Builder SetDummy16(int value) {
+ PrepareBuilder();
+ result.hasDummy16 = true;
+ result.dummy16_ = value;
+ return this;
+ }
+ public Builder ClearDummy16() {
+ PrepareBuilder();
+ result.hasDummy16 = false;
+ result.dummy16_ = 0;
+ return this;
+ }
+
+ public bool HasDummy17 {
+ get { return result.hasDummy17; }
+ }
+ public int Dummy17 {
+ get { return result.Dummy17; }
+ set { SetDummy17(value); }
+ }
+ public Builder SetDummy17(int value) {
+ PrepareBuilder();
+ result.hasDummy17 = true;
+ result.dummy17_ = value;
+ return this;
+ }
+ public Builder ClearDummy17() {
+ PrepareBuilder();
+ result.hasDummy17 = false;
+ result.dummy17_ = 0;
+ return this;
+ }
+
+ public bool HasDummy18 {
+ get { return result.hasDummy18; }
+ }
+ public int Dummy18 {
+ get { return result.Dummy18; }
+ set { SetDummy18(value); }
+ }
+ public Builder SetDummy18(int value) {
+ PrepareBuilder();
+ result.hasDummy18 = true;
+ result.dummy18_ = value;
+ return this;
+ }
+ public Builder ClearDummy18() {
+ PrepareBuilder();
+ result.hasDummy18 = false;
+ result.dummy18_ = 0;
+ return this;
+ }
+
+ public bool HasDummy19 {
+ get { return result.hasDummy19; }
+ }
+ public int Dummy19 {
+ get { return result.Dummy19; }
+ set { SetDummy19(value); }
+ }
+ public Builder SetDummy19(int value) {
+ PrepareBuilder();
+ result.hasDummy19 = true;
+ result.dummy19_ = value;
+ return this;
+ }
+ public Builder ClearDummy19() {
+ PrepareBuilder();
+ result.hasDummy19 = false;
+ result.dummy19_ = 0;
+ return this;
+ }
+
+ public bool HasDummy20 {
+ get { return result.hasDummy20; }
+ }
+ public int Dummy20 {
+ get { return result.Dummy20; }
+ set { SetDummy20(value); }
+ }
+ public Builder SetDummy20(int value) {
+ PrepareBuilder();
+ result.hasDummy20 = true;
+ result.dummy20_ = value;
+ return this;
+ }
+ public Builder ClearDummy20() {
+ PrepareBuilder();
+ result.hasDummy20 = false;
+ result.dummy20_ = 0;
+ return this;
+ }
+
+ public bool HasDummy21 {
+ get { return result.hasDummy21; }
+ }
+ public int Dummy21 {
+ get { return result.Dummy21; }
+ set { SetDummy21(value); }
+ }
+ public Builder SetDummy21(int value) {
+ PrepareBuilder();
+ result.hasDummy21 = true;
+ result.dummy21_ = value;
+ return this;
+ }
+ public Builder ClearDummy21() {
+ PrepareBuilder();
+ result.hasDummy21 = false;
+ result.dummy21_ = 0;
+ return this;
+ }
+
+ public bool HasDummy22 {
+ get { return result.hasDummy22; }
+ }
+ public int Dummy22 {
+ get { return result.Dummy22; }
+ set { SetDummy22(value); }
+ }
+ public Builder SetDummy22(int value) {
+ PrepareBuilder();
+ result.hasDummy22 = true;
+ result.dummy22_ = value;
+ return this;
+ }
+ public Builder ClearDummy22() {
+ PrepareBuilder();
+ result.hasDummy22 = false;
+ result.dummy22_ = 0;
+ return this;
+ }
+
+ public bool HasDummy23 {
+ get { return result.hasDummy23; }
+ }
+ public int Dummy23 {
+ get { return result.Dummy23; }
+ set { SetDummy23(value); }
+ }
+ public Builder SetDummy23(int value) {
+ PrepareBuilder();
+ result.hasDummy23 = true;
+ result.dummy23_ = value;
+ return this;
+ }
+ public Builder ClearDummy23() {
+ PrepareBuilder();
+ result.hasDummy23 = false;
+ result.dummy23_ = 0;
+ return this;
+ }
+
+ public bool HasDummy24 {
+ get { return result.hasDummy24; }
+ }
+ public int Dummy24 {
+ get { return result.Dummy24; }
+ set { SetDummy24(value); }
+ }
+ public Builder SetDummy24(int value) {
+ PrepareBuilder();
+ result.hasDummy24 = true;
+ result.dummy24_ = value;
+ return this;
+ }
+ public Builder ClearDummy24() {
+ PrepareBuilder();
+ result.hasDummy24 = false;
+ result.dummy24_ = 0;
+ return this;
+ }
+
+ public bool HasDummy25 {
+ get { return result.hasDummy25; }
+ }
+ public int Dummy25 {
+ get { return result.Dummy25; }
+ set { SetDummy25(value); }
+ }
+ public Builder SetDummy25(int value) {
+ PrepareBuilder();
+ result.hasDummy25 = true;
+ result.dummy25_ = value;
+ return this;
+ }
+ public Builder ClearDummy25() {
+ PrepareBuilder();
+ result.hasDummy25 = false;
+ result.dummy25_ = 0;
+ return this;
+ }
+
+ public bool HasDummy26 {
+ get { return result.hasDummy26; }
+ }
+ public int Dummy26 {
+ get { return result.Dummy26; }
+ set { SetDummy26(value); }
+ }
+ public Builder SetDummy26(int value) {
+ PrepareBuilder();
+ result.hasDummy26 = true;
+ result.dummy26_ = value;
+ return this;
+ }
+ public Builder ClearDummy26() {
+ PrepareBuilder();
+ result.hasDummy26 = false;
+ result.dummy26_ = 0;
+ return this;
+ }
+
+ public bool HasDummy27 {
+ get { return result.hasDummy27; }
+ }
+ public int Dummy27 {
+ get { return result.Dummy27; }
+ set { SetDummy27(value); }
+ }
+ public Builder SetDummy27(int value) {
+ PrepareBuilder();
+ result.hasDummy27 = true;
+ result.dummy27_ = value;
+ return this;
+ }
+ public Builder ClearDummy27() {
+ PrepareBuilder();
+ result.hasDummy27 = false;
+ result.dummy27_ = 0;
+ return this;
+ }
+
+ public bool HasDummy28 {
+ get { return result.hasDummy28; }
+ }
+ public int Dummy28 {
+ get { return result.Dummy28; }
+ set { SetDummy28(value); }
+ }
+ public Builder SetDummy28(int value) {
+ PrepareBuilder();
+ result.hasDummy28 = true;
+ result.dummy28_ = value;
+ return this;
+ }
+ public Builder ClearDummy28() {
+ PrepareBuilder();
+ result.hasDummy28 = false;
+ result.dummy28_ = 0;
+ return this;
+ }
+
+ public bool HasDummy29 {
+ get { return result.hasDummy29; }
+ }
+ public int Dummy29 {
+ get { return result.Dummy29; }
+ set { SetDummy29(value); }
+ }
+ public Builder SetDummy29(int value) {
+ PrepareBuilder();
+ result.hasDummy29 = true;
+ result.dummy29_ = value;
+ return this;
+ }
+ public Builder ClearDummy29() {
+ PrepareBuilder();
+ result.hasDummy29 = false;
+ result.dummy29_ = 0;
+ return this;
+ }
+
+ public bool HasDummy30 {
+ get { return result.hasDummy30; }
+ }
+ public int Dummy30 {
+ get { return result.Dummy30; }
+ set { SetDummy30(value); }
+ }
+ public Builder SetDummy30(int value) {
+ PrepareBuilder();
+ result.hasDummy30 = true;
+ result.dummy30_ = value;
+ return this;
+ }
+ public Builder ClearDummy30() {
+ PrepareBuilder();
+ result.hasDummy30 = false;
+ result.dummy30_ = 0;
+ return this;
+ }
+
+ public bool HasDummy31 {
+ get { return result.hasDummy31; }
+ }
+ public int Dummy31 {
+ get { return result.Dummy31; }
+ set { SetDummy31(value); }
+ }
+ public Builder SetDummy31(int value) {
+ PrepareBuilder();
+ result.hasDummy31 = true;
+ result.dummy31_ = value;
+ return this;
+ }
+ public Builder ClearDummy31() {
+ PrepareBuilder();
+ result.hasDummy31 = false;
+ result.dummy31_ = 0;
+ return this;
+ }
+
+ public bool HasDummy32 {
+ get { return result.hasDummy32; }
+ }
+ public int Dummy32 {
+ get { return result.Dummy32; }
+ set { SetDummy32(value); }
+ }
+ public Builder SetDummy32(int value) {
+ PrepareBuilder();
+ result.hasDummy32 = true;
+ result.dummy32_ = value;
+ return this;
+ }
+ public Builder ClearDummy32() {
+ PrepareBuilder();
+ result.hasDummy32 = false;
+ result.dummy32_ = 0;
+ return this;
+ }
+
+ public bool HasC {
+ get { return result.hasC; }
+ }
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ PrepareBuilder();
+ result.hasC = true;
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ PrepareBuilder();
+ result.hasC = false;
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static TestRequired() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequiredForeign : pb::GeneratedMessage<TestRequiredForeign, TestRequiredForeign.Builder> {
+ private TestRequiredForeign() { }
+ private static readonly TestRequiredForeign defaultInstance = new TestRequiredForeign().MakeReadOnly();
+ private static readonly string[] _testRequiredForeignFieldNames = new string[] { "dummy", "optional_message", "repeated_message" };
+ private static readonly uint[] _testRequiredForeignFieldTags = new uint[] { 24, 10, 18 };
+ public static TestRequiredForeign DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequiredForeign DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequiredForeign ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredForeign__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequiredForeign, TestRequiredForeign.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable; }
+ }
+
+ public const int OptionalMessageFieldNumber = 1;
+ private bool hasOptionalMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestRequired optionalMessage_;
+ public bool HasOptionalMessage {
+ get { return hasOptionalMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {
+ get { return optionalMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance; }
+ }
+
+ public const int RepeatedMessageFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired> repeatedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestRequired> RepeatedMessageList {
+ get { return repeatedMessage_; }
+ }
+ public int RepeatedMessageCount {
+ get { return repeatedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired GetRepeatedMessage(int index) {
+ return repeatedMessage_[index];
+ }
+
+ public const int DummyFieldNumber = 3;
+ private bool hasDummy;
+ private int dummy_;
+ public bool HasDummy {
+ get { return hasDummy; }
+ }
+ public int Dummy {
+ get { return dummy_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasOptionalMessage) {
+ if (!OptionalMessage.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRequiredForeignFieldNames;
+ if (hasOptionalMessage) {
+ output.WriteMessage(1, field_names[1], OptionalMessage);
+ }
+ if (repeatedMessage_.Count > 0) {
+ output.WriteMessageArray(2, field_names[2], repeatedMessage_);
+ }
+ if (hasDummy) {
+ output.WriteInt32(3, field_names[0], Dummy);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalMessage);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ if (hasDummy) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Dummy);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRequiredForeign ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequiredForeign ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequiredForeign MakeReadOnly() {
+ repeatedMessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequiredForeign prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredForeign, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequiredForeign cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequiredForeign result;
+
+ private TestRequiredForeign PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequiredForeign original = result;
+ result = new TestRequiredForeign();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequiredForeign MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Descriptor; }
+ }
+
+ public override TestRequiredForeign DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.DefaultInstance; }
+ }
+
+ public override TestRequiredForeign BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequiredForeign) {
+ return MergeFrom((TestRequiredForeign) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequiredForeign other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalMessage) {
+ MergeOptionalMessage(other.OptionalMessage);
+ }
+ if (other.repeatedMessage_.Count != 0) {
+ result.repeatedMessage_.Add(other.repeatedMessage_);
+ }
+ if (other.HasDummy) {
+ Dummy = other.Dummy;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRequiredForeignFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRequiredForeignFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder();
+ if (result.hasOptionalMessage) {
+ subBuilder.MergeFrom(OptionalMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.repeatedMessage_, global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 24: {
+ result.hasDummy = input.ReadInt32(ref result.dummy_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalMessage {
+ get { return result.hasOptionalMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {
+ get { return result.OptionalMessage; }
+ set { SetOptionalMessage(value); }
+ }
+ public Builder SetOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalMessage = true;
+ result.optionalMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalMessage = true;
+ result.optionalMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalMessage &&
+ result.optionalMessage_ != global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) {
+ result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder(result.optionalMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalMessage_ = value;
+ }
+ result.hasOptionalMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalMessage() {
+ PrepareBuilder();
+ result.hasOptionalMessage = false;
+ result.optionalMessage_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired> RepeatedMessageList {
+ get { return PrepareBuilder().repeatedMessage_; }
+ }
+ public int RepeatedMessageCount {
+ get { return result.RepeatedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired GetRepeatedMessage(int index) {
+ return result.GetRepeatedMessage(index);
+ }
+ public Builder SetRepeatedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestRequired> values) {
+ PrepareBuilder();
+ result.repeatedMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedMessage() {
+ PrepareBuilder();
+ result.repeatedMessage_.Clear();
+ return this;
+ }
+
+ public bool HasDummy {
+ get { return result.hasDummy; }
+ }
+ public int Dummy {
+ get { return result.Dummy; }
+ set { SetDummy(value); }
+ }
+ public Builder SetDummy(int value) {
+ PrepareBuilder();
+ result.hasDummy = true;
+ result.dummy_ = value;
+ return this;
+ }
+ public Builder ClearDummy() {
+ PrepareBuilder();
+ result.hasDummy = false;
+ result.dummy_ = 0;
+ return this;
+ }
+ }
+ static TestRequiredForeign() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestForeignNested : pb::GeneratedMessage<TestForeignNested, TestForeignNested.Builder> {
+ private TestForeignNested() { }
+ private static readonly TestForeignNested defaultInstance = new TestForeignNested().MakeReadOnly();
+ private static readonly string[] _testForeignNestedFieldNames = new string[] { "foreign_nested" };
+ private static readonly uint[] _testForeignNestedFieldTags = new uint[] { 10 };
+ public static TestForeignNested DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestForeignNested DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestForeignNested ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestForeignNested__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestForeignNested, TestForeignNested.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable; }
+ }
+
+ public const int ForeignNestedFieldNumber = 1;
+ private bool hasForeignNested;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_;
+ public bool HasForeignNested {
+ get { return hasForeignNested; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
+ get { return foreignNested_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testForeignNestedFieldNames;
+ if (hasForeignNested) {
+ output.WriteMessage(1, field_names[0], ForeignNested);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasForeignNested) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, ForeignNested);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestForeignNested ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestForeignNested ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestForeignNested MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestForeignNested prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestForeignNested, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestForeignNested cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestForeignNested result;
+
+ private TestForeignNested PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestForeignNested original = result;
+ result = new TestForeignNested();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestForeignNested MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Descriptor; }
+ }
+
+ public override TestForeignNested DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestForeignNested.DefaultInstance; }
+ }
+
+ public override TestForeignNested BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestForeignNested) {
+ return MergeFrom((TestForeignNested) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestForeignNested other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestForeignNested.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasForeignNested) {
+ MergeForeignNested(other.ForeignNested);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testForeignNestedFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testForeignNestedFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasForeignNested) {
+ subBuilder.MergeFrom(ForeignNested);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ ForeignNested = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasForeignNested {
+ get { return result.hasForeignNested; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
+ get { return result.ForeignNested; }
+ set { SetForeignNested(value); }
+ }
+ public Builder SetForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasForeignNested = true;
+ result.foreignNested_ = value;
+ return this;
+ }
+ public Builder SetForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasForeignNested = true;
+ result.foreignNested_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasForeignNested &&
+ result.foreignNested_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.foreignNested_).MergeFrom(value).BuildPartial();
+ } else {
+ result.foreignNested_ = value;
+ }
+ result.hasForeignNested = true;
+ return this;
+ }
+ public Builder ClearForeignNested() {
+ PrepareBuilder();
+ result.hasForeignNested = false;
+ result.foreignNested_ = null;
+ return this;
+ }
+ }
+ static TestForeignNested() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEmptyMessage : pb::GeneratedMessage<TestEmptyMessage, TestEmptyMessage.Builder> {
+ private TestEmptyMessage() { }
+ private static readonly TestEmptyMessage defaultInstance = new TestEmptyMessage().MakeReadOnly();
+ private static readonly string[] _testEmptyMessageFieldNames = new string[] { };
+ private static readonly uint[] _testEmptyMessageFieldTags = new uint[] { };
+ public static TestEmptyMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEmptyMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEmptyMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEmptyMessage, TestEmptyMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEmptyMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestEmptyMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEmptyMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEmptyMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEmptyMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestEmptyMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEmptyMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEmptyMessage result;
+
+ private TestEmptyMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEmptyMessage original = result;
+ result = new TestEmptyMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEmptyMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Descriptor; }
+ }
+
+ public override TestEmptyMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.DefaultInstance; }
+ }
+
+ public override TestEmptyMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEmptyMessage) {
+ return MergeFrom((TestEmptyMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEmptyMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEmptyMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEmptyMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestEmptyMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEmptyMessageWithExtensions : pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> {
+ private TestEmptyMessageWithExtensions() { }
+ private static readonly TestEmptyMessageWithExtensions defaultInstance = new TestEmptyMessageWithExtensions().MakeReadOnly();
+ private static readonly string[] _testEmptyMessageWithExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testEmptyMessageWithExtensionsFieldTags = new uint[] { };
+ public static TestEmptyMessageWithExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEmptyMessageWithExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEmptyMessageWithExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEmptyMessageWithExtensionsFieldNames;
+ pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEmptyMessageWithExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEmptyMessageWithExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestEmptyMessageWithExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEmptyMessageWithExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEmptyMessageWithExtensions result;
+
+ private TestEmptyMessageWithExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEmptyMessageWithExtensions original = result;
+ result = new TestEmptyMessageWithExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEmptyMessageWithExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Descriptor; }
+ }
+
+ public override TestEmptyMessageWithExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.DefaultInstance; }
+ }
+
+ public override TestEmptyMessageWithExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEmptyMessageWithExtensions) {
+ return MergeFrom((TestEmptyMessageWithExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEmptyMessageWithExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEmptyMessageWithExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEmptyMessageWithExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestEmptyMessageWithExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMultipleExtensionRanges : pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> {
+ private TestMultipleExtensionRanges() { }
+ private static readonly TestMultipleExtensionRanges defaultInstance = new TestMultipleExtensionRanges().MakeReadOnly();
+ private static readonly string[] _testMultipleExtensionRangesFieldNames = new string[] { };
+ private static readonly uint[] _testMultipleExtensionRangesFieldTags = new uint[] { };
+ public static TestMultipleExtensionRanges DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMultipleExtensionRanges DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMultipleExtensionRanges ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMultipleExtensionRangesFieldNames;
+ pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(43, output);
+ extensionWriter.WriteUntil(4244, output);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMultipleExtensionRanges MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMultipleExtensionRanges prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestMultipleExtensionRanges, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMultipleExtensionRanges cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMultipleExtensionRanges result;
+
+ private TestMultipleExtensionRanges PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMultipleExtensionRanges original = result;
+ result = new TestMultipleExtensionRanges();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMultipleExtensionRanges MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Descriptor; }
+ }
+
+ public override TestMultipleExtensionRanges DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.DefaultInstance; }
+ }
+
+ public override TestMultipleExtensionRanges BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMultipleExtensionRanges) {
+ return MergeFrom((TestMultipleExtensionRanges) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMultipleExtensionRanges other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMultipleExtensionRangesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMultipleExtensionRangesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestMultipleExtensionRanges() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestReallyLargeTagNumber : pb::GeneratedMessage<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> {
+ private TestReallyLargeTagNumber() { }
+ private static readonly TestReallyLargeTagNumber defaultInstance = new TestReallyLargeTagNumber().MakeReadOnly();
+ private static readonly string[] _testReallyLargeTagNumberFieldNames = new string[] { "a", "bb" };
+ private static readonly uint[] _testReallyLargeTagNumberFieldTags = new uint[] { 8, 2147483640 };
+ public static TestReallyLargeTagNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestReallyLargeTagNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestReallyLargeTagNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BbFieldNumber = 268435455;
+ private bool hasBb;
+ private int bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testReallyLargeTagNumberFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ if (hasBb) {
+ output.WriteInt32(268435455, field_names[1], Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(268435455, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestReallyLargeTagNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestReallyLargeTagNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestReallyLargeTagNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestReallyLargeTagNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestReallyLargeTagNumber result;
+
+ private TestReallyLargeTagNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestReallyLargeTagNumber original = result;
+ result = new TestReallyLargeTagNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestReallyLargeTagNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Descriptor; }
+ }
+
+ public override TestReallyLargeTagNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.DefaultInstance; }
+ }
+
+ public override TestReallyLargeTagNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestReallyLargeTagNumber) {
+ return MergeFrom((TestReallyLargeTagNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestReallyLargeTagNumber other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testReallyLargeTagNumberFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testReallyLargeTagNumberFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 2147483640: {
+ result.hasBb = input.ReadInt32(ref result.bb_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static TestReallyLargeTagNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRecursiveMessage : pb::GeneratedMessage<TestRecursiveMessage, TestRecursiveMessage.Builder> {
+ private TestRecursiveMessage() { }
+ private static readonly TestRecursiveMessage defaultInstance = new TestRecursiveMessage().MakeReadOnly();
+ private static readonly string[] _testRecursiveMessageFieldNames = new string[] { "a", "i" };
+ private static readonly uint[] _testRecursiveMessageFieldTags = new uint[] { 10, 16 };
+ public static TestRecursiveMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRecursiveMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRecursiveMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRecursiveMessage, TestRecursiveMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {
+ get { return a_ ?? global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance; }
+ }
+
+ public const int IFieldNumber = 2;
+ private bool hasI;
+ private int i_;
+ public bool HasI {
+ get { return hasI; }
+ }
+ public int I {
+ get { return i_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRecursiveMessageFieldNames;
+ if (hasA) {
+ output.WriteMessage(1, field_names[0], A);
+ }
+ if (hasI) {
+ output.WriteInt32(2, field_names[1], I);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, A);
+ }
+ if (hasI) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, I);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRecursiveMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRecursiveMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRecursiveMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRecursiveMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRecursiveMessage result;
+
+ private TestRecursiveMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRecursiveMessage original = result;
+ result = new TestRecursiveMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRecursiveMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Descriptor; }
+ }
+
+ public override TestRecursiveMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance; }
+ }
+
+ public override TestRecursiveMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRecursiveMessage) {
+ return MergeFrom((TestRecursiveMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRecursiveMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ MergeA(other.A);
+ }
+ if (other.HasI) {
+ I = other.I;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRecursiveMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRecursiveMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder();
+ if (result.hasA) {
+ subBuilder.MergeFrom(A);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ A = subBuilder.BuildPartial();
+ break;
+ }
+ case 16: {
+ result.hasI = input.ReadInt32(ref result.i_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasA &&
+ result.a_ != global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance) {
+ result.a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();
+ } else {
+ result.a_ = value;
+ }
+ result.hasA = true;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = null;
+ return this;
+ }
+
+ public bool HasI {
+ get { return result.hasI; }
+ }
+ public int I {
+ get { return result.I; }
+ set { SetI(value); }
+ }
+ public Builder SetI(int value) {
+ PrepareBuilder();
+ result.hasI = true;
+ result.i_ = value;
+ return this;
+ }
+ public Builder ClearI() {
+ PrepareBuilder();
+ result.hasI = false;
+ result.i_ = 0;
+ return this;
+ }
+ }
+ static TestRecursiveMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMutualRecursionA : pb::GeneratedMessage<TestMutualRecursionA, TestMutualRecursionA.Builder> {
+ private TestMutualRecursionA() { }
+ private static readonly TestMutualRecursionA defaultInstance = new TestMutualRecursionA().MakeReadOnly();
+ private static readonly string[] _testMutualRecursionAFieldNames = new string[] { "bb" };
+ private static readonly uint[] _testMutualRecursionAFieldTags = new uint[] { 10 };
+ public static TestMutualRecursionA DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMutualRecursionA DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMutualRecursionA ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMutualRecursionA, TestMutualRecursionA.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {
+ get { return bb_ ?? global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMutualRecursionAFieldNames;
+ if (hasBb) {
+ output.WriteMessage(1, field_names[0], Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMutualRecursionA MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMutualRecursionA prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionA, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMutualRecursionA cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMutualRecursionA result;
+
+ private TestMutualRecursionA PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMutualRecursionA original = result;
+ result = new TestMutualRecursionA();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMutualRecursionA MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Descriptor; }
+ }
+
+ public override TestMutualRecursionA DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance; }
+ }
+
+ public override TestMutualRecursionA BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMutualRecursionA) {
+ return MergeFrom((TestMutualRecursionA) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMutualRecursionA other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasBb) {
+ MergeBb(other.Bb);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMutualRecursionAFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMutualRecursionAFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder();
+ if (result.hasBb) {
+ subBuilder.MergeFrom(Bb);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Bb = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder SetBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasBb &&
+ result.bb_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance) {
+ result.bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder(result.bb_).MergeFrom(value).BuildPartial();
+ } else {
+ result.bb_ = value;
+ }
+ result.hasBb = true;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = null;
+ return this;
+ }
+ }
+ static TestMutualRecursionA() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMutualRecursionB : pb::GeneratedMessage<TestMutualRecursionB, TestMutualRecursionB.Builder> {
+ private TestMutualRecursionB() { }
+ private static readonly TestMutualRecursionB defaultInstance = new TestMutualRecursionB().MakeReadOnly();
+ private static readonly string[] _testMutualRecursionBFieldNames = new string[] { "a", "optional_int32" };
+ private static readonly uint[] _testMutualRecursionBFieldTags = new uint[] { 10, 16 };
+ public static TestMutualRecursionB DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMutualRecursionB DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMutualRecursionB ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMutualRecursionB, TestMutualRecursionB.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {
+ get { return a_ ?? global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance; }
+ }
+
+ public const int OptionalInt32FieldNumber = 2;
+ private bool hasOptionalInt32;
+ private int optionalInt32_;
+ public bool HasOptionalInt32 {
+ get { return hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMutualRecursionBFieldNames;
+ if (hasA) {
+ output.WriteMessage(1, field_names[0], A);
+ }
+ if (hasOptionalInt32) {
+ output.WriteInt32(2, field_names[1], OptionalInt32);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, A);
+ }
+ if (hasOptionalInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, OptionalInt32);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMutualRecursionB MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMutualRecursionB prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionB, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMutualRecursionB cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMutualRecursionB result;
+
+ private TestMutualRecursionB PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMutualRecursionB original = result;
+ result = new TestMutualRecursionB();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMutualRecursionB MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Descriptor; }
+ }
+
+ public override TestMutualRecursionB DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance; }
+ }
+
+ public override TestMutualRecursionB BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMutualRecursionB) {
+ return MergeFrom((TestMutualRecursionB) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMutualRecursionB other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ MergeA(other.A);
+ }
+ if (other.HasOptionalInt32) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMutualRecursionBFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMutualRecursionBFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder();
+ if (result.hasA) {
+ subBuilder.MergeFrom(A);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ A = subBuilder.BuildPartial();
+ break;
+ }
+ case 16: {
+ result.hasOptionalInt32 = input.ReadInt32(ref result.optionalInt32_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasA &&
+ result.a_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance) {
+ result.a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();
+ } else {
+ result.a_ = value;
+ }
+ result.hasA = true;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = null;
+ return this;
+ }
+
+ public bool HasOptionalInt32 {
+ get { return result.hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ PrepareBuilder();
+ result.hasOptionalInt32 = true;
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ PrepareBuilder();
+ result.hasOptionalInt32 = false;
+ result.optionalInt32_ = 0;
+ return this;
+ }
+ }
+ static TestMutualRecursionB() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestDupFieldNumber : pb::GeneratedMessage<TestDupFieldNumber, TestDupFieldNumber.Builder> {
+ private TestDupFieldNumber() { }
+ private static readonly TestDupFieldNumber defaultInstance = new TestDupFieldNumber().MakeReadOnly();
+ private static readonly string[] _testDupFieldNumberFieldNames = new string[] { "a", "bar", "foo" };
+ private static readonly uint[] _testDupFieldNumberFieldTags = new uint[] { 8, 27, 19 };
+ public static TestDupFieldNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDupFieldNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestDupFieldNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDupFieldNumber, TestDupFieldNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Foo : pb::GeneratedMessage<Foo, Foo.Builder> {
+ private Foo() { }
+ private static readonly Foo defaultInstance = new Foo().MakeReadOnly();
+ private static readonly string[] _fooFieldNames = new string[] { "a" };
+ private static readonly uint[] _fooFieldTags = new uint[] { 8 };
+ public static Foo DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Foo DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Foo ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Foo, Foo.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Foo ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Foo ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Foo ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Foo ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Foo MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Foo prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Foo, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Foo cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Foo result;
+
+ private Foo PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Foo original = result;
+ result = new Foo();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Foo MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Descriptor; }
+ }
+
+ public override Foo DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance; }
+ }
+
+ public override Foo BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Foo) {
+ return MergeFrom((Foo) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Foo other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static Foo() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Bar : pb::GeneratedMessage<Bar, Bar.Builder> {
+ private Bar() { }
+ private static readonly Bar defaultInstance = new Bar().MakeReadOnly();
+ private static readonly string[] _barFieldNames = new string[] { "a" };
+ private static readonly uint[] _barFieldTags = new uint[] { 8 };
+ public static Bar DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Bar DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Bar ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Bar, Bar.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _barFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Bar ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Bar ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Bar ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Bar ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Bar MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Bar prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Bar, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Bar cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Bar result;
+
+ private Bar PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Bar original = result;
+ result = new Bar();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Bar MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Descriptor; }
+ }
+
+ public override Bar DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance; }
+ }
+
+ public override Bar BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Bar) {
+ return MergeFrom((Bar) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Bar other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_barFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _barFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static Bar() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int FooFieldNumber = 2;
+ private bool hasFoo;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo foo_;
+ public bool HasFoo {
+ get { return hasFoo; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {
+ get { return foo_ ?? global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance; }
+ }
+
+ public const int BarFieldNumber = 3;
+ private bool hasBar;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar bar_;
+ public bool HasBar {
+ get { return hasBar; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {
+ get { return bar_ ?? global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testDupFieldNumberFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ if (hasFoo) {
+ output.WriteGroup(2, field_names[2], Foo);
+ }
+ if (hasBar) {
+ output.WriteGroup(3, field_names[1], Bar);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (hasFoo) {
+ size += pb::CodedOutputStream.ComputeGroupSize(2, Foo);
+ }
+ if (hasBar) {
+ size += pb::CodedOutputStream.ComputeGroupSize(3, Bar);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestDupFieldNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDupFieldNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDupFieldNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestDupFieldNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestDupFieldNumber result;
+
+ private TestDupFieldNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestDupFieldNumber original = result;
+ result = new TestDupFieldNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestDupFieldNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Descriptor; }
+ }
+
+ public override TestDupFieldNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.DefaultInstance; }
+ }
+
+ public override TestDupFieldNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDupFieldNumber) {
+ return MergeFrom((TestDupFieldNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDupFieldNumber other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasFoo) {
+ MergeFoo(other.Foo);
+ }
+ if (other.HasBar) {
+ MergeBar(other.Bar);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testDupFieldNumberFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testDupFieldNumberFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 19: {
+ global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder();
+ if (result.hasFoo) {
+ subBuilder.MergeFrom(Foo);
+ }
+ input.ReadGroup(2, subBuilder, extensionRegistry);
+ Foo = subBuilder.BuildPartial();
+ break;
+ }
+ case 27: {
+ global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder();
+ if (result.hasBar) {
+ subBuilder.MergeFrom(Bar);
+ }
+ input.ReadGroup(3, subBuilder, extensionRegistry);
+ Bar = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasFoo {
+ get { return result.hasFoo; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {
+ get { return result.Foo; }
+ set { SetFoo(value); }
+ }
+ public Builder SetFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFoo = true;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFoo = true;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFoo &&
+ result.foo_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder(result.foo_).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.hasFoo = true;
+ return this;
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.hasFoo = false;
+ result.foo_ = null;
+ return this;
+ }
+
+ public bool HasBar {
+ get { return result.hasBar; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {
+ get { return result.Bar; }
+ set { SetBar(value); }
+ }
+ public Builder SetBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBar = true;
+ result.bar_ = value;
+ return this;
+ }
+ public Builder SetBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasBar = true;
+ result.bar_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasBar &&
+ result.bar_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance) {
+ result.bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder(result.bar_).MergeFrom(value).BuildPartial();
+ } else {
+ result.bar_ = value;
+ }
+ result.hasBar = true;
+ return this;
+ }
+ public Builder ClearBar() {
+ PrepareBuilder();
+ result.hasBar = false;
+ result.bar_ = null;
+ return this;
+ }
+ }
+ static TestDupFieldNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEagerMessage : pb::GeneratedMessage<TestEagerMessage, TestEagerMessage.Builder> {
+ private TestEagerMessage() { }
+ private static readonly TestEagerMessage defaultInstance = new TestEagerMessage().MakeReadOnly();
+ private static readonly string[] _testEagerMessageFieldNames = new string[] { "sub_message" };
+ private static readonly uint[] _testEagerMessageFieldTags = new uint[] { 10 };
+ public static TestEagerMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEagerMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEagerMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEagerMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEagerMessage, TestEagerMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEagerMessage__FieldAccessorTable; }
+ }
+
+ public const int SubMessageFieldNumber = 1;
+ private bool hasSubMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes subMessage_;
+ public bool HasSubMessage {
+ get { return hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return subMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEagerMessageFieldNames;
+ if (hasSubMessage) {
+ output.WriteMessage(1, field_names[0], SubMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSubMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, SubMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestEagerMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEagerMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEagerMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEagerMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEagerMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestEagerMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEagerMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEagerMessage result;
+
+ private TestEagerMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEagerMessage original = result;
+ result = new TestEagerMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEagerMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.Descriptor; }
+ }
+
+ public override TestEagerMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.DefaultInstance; }
+ }
+
+ public override TestEagerMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEagerMessage) {
+ return MergeFrom((TestEagerMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEagerMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasSubMessage) {
+ MergeSubMessage(other.SubMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEagerMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEagerMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasSubMessage) {
+ subBuilder.MergeFrom(SubMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ SubMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasSubMessage {
+ get { return result.hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return result.SubMessage; }
+ set { SetSubMessage(value); }
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = value;
+ return this;
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasSubMessage &&
+ result.subMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.subMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.subMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.subMessage_ = value;
+ }
+ result.hasSubMessage = true;
+ return this;
+ }
+ public Builder ClearSubMessage() {
+ PrepareBuilder();
+ result.hasSubMessage = false;
+ result.subMessage_ = null;
+ return this;
+ }
+ }
+ static TestEagerMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestLazyMessage : pb::GeneratedMessage<TestLazyMessage, TestLazyMessage.Builder> {
+ private TestLazyMessage() { }
+ private static readonly TestLazyMessage defaultInstance = new TestLazyMessage().MakeReadOnly();
+ private static readonly string[] _testLazyMessageFieldNames = new string[] { "sub_message" };
+ private static readonly uint[] _testLazyMessageFieldTags = new uint[] { 10 };
+ public static TestLazyMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestLazyMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestLazyMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestLazyMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestLazyMessage, TestLazyMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestLazyMessage__FieldAccessorTable; }
+ }
+
+ public const int SubMessageFieldNumber = 1;
+ private bool hasSubMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes subMessage_;
+ public bool HasSubMessage {
+ get { return hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return subMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testLazyMessageFieldNames;
+ if (hasSubMessage) {
+ output.WriteMessage(1, field_names[0], SubMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSubMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, SubMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestLazyMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestLazyMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestLazyMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestLazyMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestLazyMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestLazyMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestLazyMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestLazyMessage result;
+
+ private TestLazyMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestLazyMessage original = result;
+ result = new TestLazyMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestLazyMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.Descriptor; }
+ }
+
+ public override TestLazyMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.DefaultInstance; }
+ }
+
+ public override TestLazyMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestLazyMessage) {
+ return MergeFrom((TestLazyMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestLazyMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasSubMessage) {
+ MergeSubMessage(other.SubMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testLazyMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testLazyMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasSubMessage) {
+ subBuilder.MergeFrom(SubMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ SubMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasSubMessage {
+ get { return result.hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return result.SubMessage; }
+ set { SetSubMessage(value); }
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = value;
+ return this;
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasSubMessage &&
+ result.subMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.subMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.subMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.subMessage_ = value;
+ }
+ result.hasSubMessage = true;
+ return this;
+ }
+ public Builder ClearSubMessage() {
+ PrepareBuilder();
+ result.hasSubMessage = false;
+ result.subMessage_ = null;
+ return this;
+ }
+ }
+ static TestLazyMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestNestedMessageHasBits : pb::GeneratedMessage<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> {
+ private TestNestedMessageHasBits() { }
+ private static readonly TestNestedMessageHasBits defaultInstance = new TestNestedMessageHasBits().MakeReadOnly();
+ private static readonly string[] _testNestedMessageHasBitsFieldNames = new string[] { "optional_nested_message" };
+ private static readonly uint[] _testNestedMessageHasBitsFieldTags = new uint[] { 10 };
+ public static TestNestedMessageHasBits DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedMessageHasBits DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestNestedMessageHasBits ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "nestedmessage_repeated_foreignmessage", "nestedmessage_repeated_int32" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 18, 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int NestedmessageRepeatedInt32FieldNumber = 1;
+ private pbc::PopsicleList<int> nestedmessageRepeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> NestedmessageRepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(nestedmessageRepeatedInt32_); }
+ }
+ public int NestedmessageRepeatedInt32Count {
+ get { return nestedmessageRepeatedInt32_.Count; }
+ }
+ public int GetNestedmessageRepeatedInt32(int index) {
+ return nestedmessageRepeatedInt32_[index];
+ }
+
+ public const int NestedmessageRepeatedForeignmessageFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> nestedmessageRepeatedForeignmessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> NestedmessageRepeatedForeignmessageList {
+ get { return nestedmessageRepeatedForeignmessage_; }
+ }
+ public int NestedmessageRepeatedForeignmessageCount {
+ get { return nestedmessageRepeatedForeignmessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetNestedmessageRepeatedForeignmessage(int index) {
+ return nestedmessageRepeatedForeignmessage_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (nestedmessageRepeatedInt32_.Count > 0) {
+ output.WriteInt32Array(1, field_names[1], nestedmessageRepeatedInt32_);
+ }
+ if (nestedmessageRepeatedForeignmessage_.Count > 0) {
+ output.WriteMessageArray(2, field_names[0], nestedmessageRepeatedForeignmessage_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in NestedmessageRepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * nestedmessageRepeatedInt32_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in NestedmessageRepeatedForeignmessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ nestedmessageRepeatedInt32_.MakeReadOnly();
+ nestedmessageRepeatedForeignmessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.nestedmessageRepeatedInt32_.Count != 0) {
+ result.nestedmessageRepeatedInt32_.Add(other.nestedmessageRepeatedInt32_);
+ }
+ if (other.nestedmessageRepeatedForeignmessage_.Count != 0) {
+ result.nestedmessageRepeatedForeignmessage_.Add(other.nestedmessageRepeatedForeignmessage_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10:
+ case 8: {
+ input.ReadInt32Array(tag, field_name, result.nestedmessageRepeatedInt32_);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.nestedmessageRepeatedForeignmessage_, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> NestedmessageRepeatedInt32List {
+ get { return PrepareBuilder().nestedmessageRepeatedInt32_; }
+ }
+ public int NestedmessageRepeatedInt32Count {
+ get { return result.NestedmessageRepeatedInt32Count; }
+ }
+ public int GetNestedmessageRepeatedInt32(int index) {
+ return result.GetNestedmessageRepeatedInt32(index);
+ }
+ public Builder SetNestedmessageRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeNestedmessageRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearNestedmessageRepeatedInt32() {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> NestedmessageRepeatedForeignmessageList {
+ get { return PrepareBuilder().nestedmessageRepeatedForeignmessage_; }
+ }
+ public int NestedmessageRepeatedForeignmessageCount {
+ get { return result.NestedmessageRepeatedForeignmessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetNestedmessageRepeatedForeignmessage(int index) {
+ return result.GetNestedmessageRepeatedForeignmessage(index);
+ }
+ public Builder SetNestedmessageRepeatedForeignmessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_[index] = value;
+ return this;
+ }
+ public Builder SetNestedmessageRepeatedForeignmessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedForeignmessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Add(value);
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedForeignmessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeNestedmessageRepeatedForeignmessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Add(values);
+ return this;
+ }
+ public Builder ClearNestedmessageRepeatedForeignmessage() {
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Clear();
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int OptionalNestedMessageFieldNumber = 1;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testNestedMessageHasBitsFieldNames;
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(1, field_names[0], OptionalNestedMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalNestedMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestNestedMessageHasBits MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedMessageHasBits prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestNestedMessageHasBits, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestNestedMessageHasBits cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestNestedMessageHasBits result;
+
+ private TestNestedMessageHasBits PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestNestedMessageHasBits original = result;
+ result = new TestNestedMessageHasBits();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestNestedMessageHasBits MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Descriptor; }
+ }
+
+ public override TestNestedMessageHasBits DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.DefaultInstance; }
+ }
+
+ public override TestNestedMessageHasBits BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestNestedMessageHasBits) {
+ return MergeFrom((TestNestedMessageHasBits) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedMessageHasBits other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testNestedMessageHasBitsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testNestedMessageHasBitsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+ }
+ static TestNestedMessageHasBits() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestCamelCaseFieldNames : pb::GeneratedMessage<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> {
+ private TestCamelCaseFieldNames() { }
+ private static readonly TestCamelCaseFieldNames defaultInstance = new TestCamelCaseFieldNames().MakeReadOnly();
+ private static readonly string[] _testCamelCaseFieldNamesFieldNames = new string[] { "CordField", "EnumField", "MessageField", "PrimitiveField", "RepeatedCordField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedStringPieceField", "StringField", "StringPieceField" };
+ private static readonly uint[] _testCamelCaseFieldNamesFieldTags = new uint[] { 50, 24, 34, 8, 98, 72, 82, 56, 66, 90, 18, 42 };
+ public static TestCamelCaseFieldNames DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestCamelCaseFieldNames DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestCamelCaseFieldNames ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable; }
+ }
+
+ public const int PrimitiveFieldFieldNumber = 1;
+ private bool hasPrimitiveField;
+ private int primitiveField_;
+ public bool HasPrimitiveField {
+ get { return hasPrimitiveField; }
+ }
+ public int PrimitiveField {
+ get { return primitiveField_; }
+ }
+
+ public const int StringFieldFieldNumber = 2;
+ private bool hasStringField;
+ private string stringField_ = "";
+ public bool HasStringField {
+ get { return hasStringField; }
+ }
+ public string StringField {
+ get { return stringField_; }
+ }
+
+ public const int EnumFieldFieldNumber = 3;
+ private bool hasEnumField;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum enumField_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasEnumField {
+ get { return hasEnumField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumField {
+ get { return enumField_; }
+ }
+
+ public const int MessageFieldFieldNumber = 4;
+ private bool hasMessageField;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageField_;
+ public bool HasMessageField {
+ get { return hasMessageField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {
+ get { return messageField_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int StringPieceFieldFieldNumber = 5;
+ private bool hasStringPieceField;
+ private string stringPieceField_ = "";
+ public bool HasStringPieceField {
+ get { return hasStringPieceField; }
+ }
+ public string StringPieceField {
+ get { return stringPieceField_; }
+ }
+
+ public const int CordFieldFieldNumber = 6;
+ private bool hasCordField;
+ private string cordField_ = "";
+ public bool HasCordField {
+ get { return hasCordField; }
+ }
+ public string CordField {
+ get { return cordField_; }
+ }
+
+ public const int RepeatedPrimitiveFieldFieldNumber = 7;
+ private pbc::PopsicleList<int> repeatedPrimitiveField_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedPrimitiveFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedPrimitiveField_); }
+ }
+ public int RepeatedPrimitiveFieldCount {
+ get { return repeatedPrimitiveField_.Count; }
+ }
+ public int GetRepeatedPrimitiveField(int index) {
+ return repeatedPrimitiveField_[index];
+ }
+
+ public const int RepeatedStringFieldFieldNumber = 8;
+ private pbc::PopsicleList<string> repeatedStringField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringField_); }
+ }
+ public int RepeatedStringFieldCount {
+ get { return repeatedStringField_.Count; }
+ }
+ public string GetRepeatedStringField(int index) {
+ return repeatedStringField_[index];
+ }
+
+ public const int RepeatedEnumFieldFieldNumber = 9;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> repeatedEnumField_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedEnumFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedEnumField_); }
+ }
+ public int RepeatedEnumFieldCount {
+ get { return repeatedEnumField_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedEnumField(int index) {
+ return repeatedEnumField_[index];
+ }
+
+ public const int RepeatedMessageFieldFieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> repeatedMessageField_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedMessageFieldList {
+ get { return repeatedMessageField_; }
+ }
+ public int RepeatedMessageFieldCount {
+ get { return repeatedMessageField_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedMessageField(int index) {
+ return repeatedMessageField_[index];
+ }
+
+ public const int RepeatedStringPieceFieldFieldNumber = 11;
+ private pbc::PopsicleList<string> repeatedStringPieceField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPieceField_); }
+ }
+ public int RepeatedStringPieceFieldCount {
+ get { return repeatedStringPieceField_.Count; }
+ }
+ public string GetRepeatedStringPieceField(int index) {
+ return repeatedStringPieceField_[index];
+ }
+
+ public const int RepeatedCordFieldFieldNumber = 12;
+ private pbc::PopsicleList<string> repeatedCordField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedCordField_); }
+ }
+ public int RepeatedCordFieldCount {
+ get { return repeatedCordField_.Count; }
+ }
+ public string GetRepeatedCordField(int index) {
+ return repeatedCordField_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testCamelCaseFieldNamesFieldNames;
+ if (hasPrimitiveField) {
+ output.WriteInt32(1, field_names[3], PrimitiveField);
+ }
+ if (hasStringField) {
+ output.WriteString(2, field_names[10], StringField);
+ }
+ if (hasEnumField) {
+ output.WriteEnum(3, field_names[1], (int) EnumField, EnumField);
+ }
+ if (hasMessageField) {
+ output.WriteMessage(4, field_names[2], MessageField);
+ }
+ if (hasStringPieceField) {
+ output.WriteString(5, field_names[11], StringPieceField);
+ }
+ if (hasCordField) {
+ output.WriteString(6, field_names[0], CordField);
+ }
+ if (repeatedPrimitiveField_.Count > 0) {
+ output.WriteInt32Array(7, field_names[7], repeatedPrimitiveField_);
+ }
+ if (repeatedStringField_.Count > 0) {
+ output.WriteStringArray(8, field_names[8], repeatedStringField_);
+ }
+ if (repeatedEnumField_.Count > 0) {
+ output.WriteEnumArray(9, field_names[5], repeatedEnumField_);
+ }
+ if (repeatedMessageField_.Count > 0) {
+ output.WriteMessageArray(10, field_names[6], repeatedMessageField_);
+ }
+ if (repeatedStringPieceField_.Count > 0) {
+ output.WriteStringArray(11, field_names[9], repeatedStringPieceField_);
+ }
+ if (repeatedCordField_.Count > 0) {
+ output.WriteStringArray(12, field_names[4], repeatedCordField_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasPrimitiveField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, PrimitiveField);
+ }
+ if (hasStringField) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, StringField);
+ }
+ if (hasEnumField) {
+ size += pb::CodedOutputStream.ComputeEnumSize(3, (int) EnumField);
+ }
+ if (hasMessageField) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, MessageField);
+ }
+ if (hasStringPieceField) {
+ size += pb::CodedOutputStream.ComputeStringSize(5, StringPieceField);
+ }
+ if (hasCordField) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, CordField);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedPrimitiveFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedPrimitiveField_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedStringField_.Count;
+ }
+ {
+ int dataSize = 0;
+ if (repeatedEnumField_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in repeatedEnumField_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1 * repeatedEnumField_.Count;
+ }
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in RepeatedMessageFieldList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(10, element);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedStringPieceField_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedCordField_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestCamelCaseFieldNames MakeReadOnly() {
+ repeatedPrimitiveField_.MakeReadOnly();
+ repeatedStringField_.MakeReadOnly();
+ repeatedEnumField_.MakeReadOnly();
+ repeatedMessageField_.MakeReadOnly();
+ repeatedStringPieceField_.MakeReadOnly();
+ repeatedCordField_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestCamelCaseFieldNames prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestCamelCaseFieldNames, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestCamelCaseFieldNames cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestCamelCaseFieldNames result;
+
+ private TestCamelCaseFieldNames PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestCamelCaseFieldNames original = result;
+ result = new TestCamelCaseFieldNames();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestCamelCaseFieldNames MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Descriptor; }
+ }
+
+ public override TestCamelCaseFieldNames DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.DefaultInstance; }
+ }
+
+ public override TestCamelCaseFieldNames BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestCamelCaseFieldNames) {
+ return MergeFrom((TestCamelCaseFieldNames) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestCamelCaseFieldNames other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasPrimitiveField) {
+ PrimitiveField = other.PrimitiveField;
+ }
+ if (other.HasStringField) {
+ StringField = other.StringField;
+ }
+ if (other.HasEnumField) {
+ EnumField = other.EnumField;
+ }
+ if (other.HasMessageField) {
+ MergeMessageField(other.MessageField);
+ }
+ if (other.HasStringPieceField) {
+ StringPieceField = other.StringPieceField;
+ }
+ if (other.HasCordField) {
+ CordField = other.CordField;
+ }
+ if (other.repeatedPrimitiveField_.Count != 0) {
+ result.repeatedPrimitiveField_.Add(other.repeatedPrimitiveField_);
+ }
+ if (other.repeatedStringField_.Count != 0) {
+ result.repeatedStringField_.Add(other.repeatedStringField_);
+ }
+ if (other.repeatedEnumField_.Count != 0) {
+ result.repeatedEnumField_.Add(other.repeatedEnumField_);
+ }
+ if (other.repeatedMessageField_.Count != 0) {
+ result.repeatedMessageField_.Add(other.repeatedMessageField_);
+ }
+ if (other.repeatedStringPieceField_.Count != 0) {
+ result.repeatedStringPieceField_.Add(other.repeatedStringPieceField_);
+ }
+ if (other.repeatedCordField_.Count != 0) {
+ result.repeatedCordField_.Add(other.repeatedCordField_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testCamelCaseFieldNamesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testCamelCaseFieldNamesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasPrimitiveField = input.ReadInt32(ref result.primitiveField_);
+ break;
+ }
+ case 18: {
+ result.hasStringField = input.ReadString(ref result.stringField_);
+ break;
+ }
+ case 24: {
+ object unknown;
+ if(input.ReadEnum(ref result.enumField_, out unknown)) {
+ result.hasEnumField = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(3, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 34: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (result.hasMessageField) {
+ subBuilder.MergeFrom(MessageField);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageField = subBuilder.BuildPartial();
+ break;
+ }
+ case 42: {
+ result.hasStringPieceField = input.ReadString(ref result.stringPieceField_);
+ break;
+ }
+ case 50: {
+ result.hasCordField = input.ReadString(ref result.cordField_);
+ break;
+ }
+ case 58:
+ case 56: {
+ input.ReadInt32Array(tag, field_name, result.repeatedPrimitiveField_);
+ break;
+ }
+ case 66: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringField_);
+ break;
+ }
+ case 74:
+ case 72: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.repeatedEnumField_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(9, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 82: {
+ input.ReadMessageArray(tag, field_name, result.repeatedMessageField_, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 90: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringPieceField_);
+ break;
+ }
+ case 98: {
+ input.ReadStringArray(tag, field_name, result.repeatedCordField_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasPrimitiveField {
+ get { return result.hasPrimitiveField; }
+ }
+ public int PrimitiveField {
+ get { return result.PrimitiveField; }
+ set { SetPrimitiveField(value); }
+ }
+ public Builder SetPrimitiveField(int value) {
+ PrepareBuilder();
+ result.hasPrimitiveField = true;
+ result.primitiveField_ = value;
+ return this;
+ }
+ public Builder ClearPrimitiveField() {
+ PrepareBuilder();
+ result.hasPrimitiveField = false;
+ result.primitiveField_ = 0;
+ return this;
+ }
+
+ public bool HasStringField {
+ get { return result.hasStringField; }
+ }
+ public string StringField {
+ get { return result.StringField; }
+ set { SetStringField(value); }
+ }
+ public Builder SetStringField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringField = true;
+ result.stringField_ = value;
+ return this;
+ }
+ public Builder ClearStringField() {
+ PrepareBuilder();
+ result.hasStringField = false;
+ result.stringField_ = "";
+ return this;
+ }
+
+ public bool HasEnumField {
+ get { return result.hasEnumField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumField {
+ get { return result.EnumField; }
+ set { SetEnumField(value); }
+ }
+ public Builder SetEnumField(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasEnumField = true;
+ result.enumField_ = value;
+ return this;
+ }
+ public Builder ClearEnumField() {
+ PrepareBuilder();
+ result.hasEnumField = false;
+ result.enumField_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasMessageField {
+ get { return result.hasMessageField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {
+ get { return result.MessageField; }
+ set { SetMessageField(value); }
+ }
+ public Builder SetMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMessageField = true;
+ result.messageField_ = value;
+ return this;
+ }
+ public Builder SetMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMessageField = true;
+ result.messageField_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMessageField &&
+ result.messageField_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageField_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageField_ = value;
+ }
+ result.hasMessageField = true;
+ return this;
+ }
+ public Builder ClearMessageField() {
+ PrepareBuilder();
+ result.hasMessageField = false;
+ result.messageField_ = null;
+ return this;
+ }
+
+ public bool HasStringPieceField {
+ get { return result.hasStringPieceField; }
+ }
+ public string StringPieceField {
+ get { return result.StringPieceField; }
+ set { SetStringPieceField(value); }
+ }
+ public Builder SetStringPieceField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringPieceField = true;
+ result.stringPieceField_ = value;
+ return this;
+ }
+ public Builder ClearStringPieceField() {
+ PrepareBuilder();
+ result.hasStringPieceField = false;
+ result.stringPieceField_ = "";
+ return this;
+ }
+
+ public bool HasCordField {
+ get { return result.hasCordField; }
+ }
+ public string CordField {
+ get { return result.CordField; }
+ set { SetCordField(value); }
+ }
+ public Builder SetCordField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCordField = true;
+ result.cordField_ = value;
+ return this;
+ }
+ public Builder ClearCordField() {
+ PrepareBuilder();
+ result.hasCordField = false;
+ result.cordField_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedPrimitiveFieldList {
+ get { return PrepareBuilder().repeatedPrimitiveField_; }
+ }
+ public int RepeatedPrimitiveFieldCount {
+ get { return result.RepeatedPrimitiveFieldCount; }
+ }
+ public int GetRepeatedPrimitiveField(int index) {
+ return result.GetRepeatedPrimitiveField(index);
+ }
+ public Builder SetRepeatedPrimitiveField(int index, int value) {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedPrimitiveField(int value) {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedPrimitiveField(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedPrimitiveField() {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringFieldList {
+ get { return PrepareBuilder().repeatedStringField_; }
+ }
+ public int RepeatedStringFieldCount {
+ get { return result.RepeatedStringFieldCount; }
+ }
+ public string GetRepeatedStringField(int index) {
+ return result.GetRepeatedStringField(index);
+ }
+ public Builder SetRepeatedStringField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringField(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringField() {
+ PrepareBuilder();
+ result.repeatedStringField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedEnumFieldList {
+ get { return PrepareBuilder().repeatedEnumField_; }
+ }
+ public int RepeatedEnumFieldCount {
+ get { return result.RepeatedEnumFieldCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedEnumField(int index) {
+ return result.GetRepeatedEnumField(index);
+ }
+ public Builder SetRepeatedEnumField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedEnumField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedEnumField(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedEnumField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedEnumField(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.repeatedEnumField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedEnumField() {
+ PrepareBuilder();
+ result.repeatedEnumField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedMessageFieldList {
+ get { return PrepareBuilder().repeatedMessageField_; }
+ }
+ public int RepeatedMessageFieldCount {
+ get { return result.RepeatedMessageFieldCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedMessageField(int index) {
+ return result.GetRepeatedMessageField(index);
+ }
+ public Builder SetRepeatedMessageField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessageField_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedMessageField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessageField_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessageField_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessageField_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedMessageField(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ PrepareBuilder();
+ result.repeatedMessageField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedMessageField() {
+ PrepareBuilder();
+ result.repeatedMessageField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceFieldList {
+ get { return PrepareBuilder().repeatedStringPieceField_; }
+ }
+ public int RepeatedStringPieceFieldCount {
+ get { return result.RepeatedStringPieceFieldCount; }
+ }
+ public string GetRepeatedStringPieceField(int index) {
+ return result.GetRepeatedStringPieceField(index);
+ }
+ public Builder SetRepeatedStringPieceField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPieceField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPieceField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPieceField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPieceField(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringPieceField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringPieceField() {
+ PrepareBuilder();
+ result.repeatedStringPieceField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordFieldList {
+ get { return PrepareBuilder().repeatedCordField_; }
+ }
+ public int RepeatedCordFieldCount {
+ get { return result.RepeatedCordFieldCount; }
+ }
+ public string GetRepeatedCordField(int index) {
+ return result.GetRepeatedCordField(index);
+ }
+ public Builder SetRepeatedCordField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCordField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCordField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCordField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCordField(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedCordField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedCordField() {
+ PrepareBuilder();
+ result.repeatedCordField_.Clear();
+ return this;
+ }
+ }
+ static TestCamelCaseFieldNames() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestFieldOrderings : pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder> {
+ private TestFieldOrderings() { }
+ private static readonly TestFieldOrderings defaultInstance = new TestFieldOrderings().MakeReadOnly();
+ private static readonly string[] _testFieldOrderingsFieldNames = new string[] { "my_float", "my_int", "my_string", "optional_nested_message" };
+ private static readonly uint[] _testFieldOrderingsFieldTags = new uint[] { 813, 8, 90, 1602 };
+ public static TestFieldOrderings DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestFieldOrderings DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestFieldOrderings ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestFieldOrderings, TestFieldOrderings.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "bb", "oo" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8, 16 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int OoFieldNumber = 2;
+ private bool hasOo;
+ private long oo_;
+ public bool HasOo {
+ get { return hasOo; }
+ }
+ public long Oo {
+ get { return oo_; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private int bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasBb) {
+ output.WriteInt32(1, field_names[0], Bb);
+ }
+ if (hasOo) {
+ output.WriteInt64(2, field_names[1], Oo);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOo) {
+ size += pb::CodedOutputStream.ComputeInt64Size(2, Oo);
+ }
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOo) {
+ Oo = other.Oo;
+ }
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasBb = input.ReadInt32(ref result.bb_);
+ break;
+ }
+ case 16: {
+ result.hasOo = input.ReadInt64(ref result.oo_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOo {
+ get { return result.hasOo; }
+ }
+ public long Oo {
+ get { return result.Oo; }
+ set { SetOo(value); }
+ }
+ public Builder SetOo(long value) {
+ PrepareBuilder();
+ result.hasOo = true;
+ result.oo_ = value;
+ return this;
+ }
+ public Builder ClearOo() {
+ PrepareBuilder();
+ result.hasOo = false;
+ result.oo_ = 0L;
+ return this;
+ }
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int MyStringFieldNumber = 11;
+ private bool hasMyString;
+ private string myString_ = "";
+ public bool HasMyString {
+ get { return hasMyString; }
+ }
+ public string MyString {
+ get { return myString_; }
+ }
+
+ public const int MyIntFieldNumber = 1;
+ private bool hasMyInt;
+ private long myInt_;
+ public bool HasMyInt {
+ get { return hasMyInt; }
+ }
+ public long MyInt {
+ get { return myInt_; }
+ }
+
+ public const int MyFloatFieldNumber = 101;
+ private bool hasMyFloat;
+ private float myFloat_;
+ public bool HasMyFloat {
+ get { return hasMyFloat; }
+ }
+ public float MyFloat {
+ get { return myFloat_; }
+ }
+
+ public const int OptionalNestedMessageFieldNumber = 200;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testFieldOrderingsFieldNames;
+ pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasMyInt) {
+ output.WriteInt64(1, field_names[1], MyInt);
+ }
+ extensionWriter.WriteUntil(11, output);
+ if (hasMyString) {
+ output.WriteString(11, field_names[2], MyString);
+ }
+ extensionWriter.WriteUntil(101, output);
+ if (hasMyFloat) {
+ output.WriteFloat(101, field_names[0], MyFloat);
+ }
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(200, field_names[3], OptionalNestedMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMyString) {
+ size += pb::CodedOutputStream.ComputeStringSize(11, MyString);
+ }
+ if (hasMyInt) {
+ size += pb::CodedOutputStream.ComputeInt64Size(1, MyInt);
+ }
+ if (hasMyFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(101, MyFloat);
+ }
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(200, OptionalNestedMessage);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestFieldOrderings ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestFieldOrderings ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestFieldOrderings MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestFieldOrderings prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestFieldOrderings, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestFieldOrderings cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestFieldOrderings result;
+
+ private TestFieldOrderings PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestFieldOrderings original = result;
+ result = new TestFieldOrderings();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestFieldOrderings MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Descriptor; }
+ }
+
+ public override TestFieldOrderings DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.DefaultInstance; }
+ }
+
+ public override TestFieldOrderings BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestFieldOrderings) {
+ return MergeFrom((TestFieldOrderings) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestFieldOrderings other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasMyString) {
+ MyString = other.MyString;
+ }
+ if (other.HasMyInt) {
+ MyInt = other.MyInt;
+ }
+ if (other.HasMyFloat) {
+ MyFloat = other.MyFloat;
+ }
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testFieldOrderingsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testFieldOrderingsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasMyInt = input.ReadInt64(ref result.myInt_);
+ break;
+ }
+ case 90: {
+ result.hasMyString = input.ReadString(ref result.myString_);
+ break;
+ }
+ case 813: {
+ result.hasMyFloat = input.ReadFloat(ref result.myFloat_);
+ break;
+ }
+ case 1602: {
+ global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasMyString {
+ get { return result.hasMyString; }
+ }
+ public string MyString {
+ get { return result.MyString; }
+ set { SetMyString(value); }
+ }
+ public Builder SetMyString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMyString = true;
+ result.myString_ = value;
+ return this;
+ }
+ public Builder ClearMyString() {
+ PrepareBuilder();
+ result.hasMyString = false;
+ result.myString_ = "";
+ return this;
+ }
+
+ public bool HasMyInt {
+ get { return result.hasMyInt; }
+ }
+ public long MyInt {
+ get { return result.MyInt; }
+ set { SetMyInt(value); }
+ }
+ public Builder SetMyInt(long value) {
+ PrepareBuilder();
+ result.hasMyInt = true;
+ result.myInt_ = value;
+ return this;
+ }
+ public Builder ClearMyInt() {
+ PrepareBuilder();
+ result.hasMyInt = false;
+ result.myInt_ = 0L;
+ return this;
+ }
+
+ public bool HasMyFloat {
+ get { return result.hasMyFloat; }
+ }
+ public float MyFloat {
+ get { return result.MyFloat; }
+ set { SetMyFloat(value); }
+ }
+ public Builder SetMyFloat(float value) {
+ PrepareBuilder();
+ result.hasMyFloat = true;
+ result.myFloat_ = value;
+ return this;
+ }
+ public Builder ClearMyFloat() {
+ PrepareBuilder();
+ result.hasMyFloat = false;
+ result.myFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+ }
+ static TestFieldOrderings() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestExtremeDefaultValues : pb::GeneratedMessage<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> {
+ private TestExtremeDefaultValues() { }
+ private static readonly TestExtremeDefaultValues defaultInstance = new TestExtremeDefaultValues().MakeReadOnly();
+ private static readonly string[] _testExtremeDefaultValuesFieldNames = new string[] { "bytes_with_zero", "cord_with_zero", "cpp_trigraph", "escaped_bytes", "inf_double", "inf_float", "large_float", "large_uint32", "large_uint64", "nan_double", "nan_float", "neg_inf_double", "neg_inf_float", "negative_float", "negative_one_float", "one_float", "really_small_int32", "really_small_int64", "replacement_string", "small_float", "small_int32", "small_int64", "small_negative_float", "string_piece_with_zero", "string_with_zero", "utf8_string", "zero_float" };
+ private static readonly uint[] _testExtremeDefaultValuesFieldTags = new uint[] { 194, 210, 162, 10, 113, 141, 101, 16, 24, 129, 157, 121, 149, 93, 85, 69, 168, 176, 218, 77, 32, 40, 109, 202, 186, 50, 61 };
+ public static TestExtremeDefaultValues DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestExtremeDefaultValues DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestExtremeDefaultValues ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable; }
+ }
+
+ public const int EscapedBytesFieldNumber = 1;
+ private bool hasEscapedBytes;
+ private pb::ByteString escapedBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[0].DefaultValue;
+ public bool HasEscapedBytes {
+ get { return hasEscapedBytes; }
+ }
+ public pb::ByteString EscapedBytes {
+ get { return escapedBytes_; }
+ }
+
+ public const int LargeUint32FieldNumber = 2;
+ private bool hasLargeUint32;
+ private uint largeUint32_ = 4294967295;
+ public bool HasLargeUint32 {
+ get { return hasLargeUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint LargeUint32 {
+ get { return largeUint32_; }
+ }
+
+ public const int LargeUint64FieldNumber = 3;
+ private bool hasLargeUint64;
+ private ulong largeUint64_ = 18446744073709551615UL;
+ public bool HasLargeUint64 {
+ get { return hasLargeUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong LargeUint64 {
+ get { return largeUint64_; }
+ }
+
+ public const int SmallInt32FieldNumber = 4;
+ private bool hasSmallInt32;
+ private int smallInt32_ = -2147483647;
+ public bool HasSmallInt32 {
+ get { return hasSmallInt32; }
+ }
+ public int SmallInt32 {
+ get { return smallInt32_; }
+ }
+
+ public const int SmallInt64FieldNumber = 5;
+ private bool hasSmallInt64;
+ private long smallInt64_ = -9223372036854775807L;
+ public bool HasSmallInt64 {
+ get { return hasSmallInt64; }
+ }
+ public long SmallInt64 {
+ get { return smallInt64_; }
+ }
+
+ public const int ReallySmallInt32FieldNumber = 21;
+ private bool hasReallySmallInt32;
+ private int reallySmallInt32_ = -2147483648;
+ public bool HasReallySmallInt32 {
+ get { return hasReallySmallInt32; }
+ }
+ public int ReallySmallInt32 {
+ get { return reallySmallInt32_; }
+ }
+
+ public const int ReallySmallInt64FieldNumber = 22;
+ private bool hasReallySmallInt64;
+ private long reallySmallInt64_ = -9223372036854775808L;
+ public bool HasReallySmallInt64 {
+ get { return hasReallySmallInt64; }
+ }
+ public long ReallySmallInt64 {
+ get { return reallySmallInt64_; }
+ }
+
+ public const int Utf8StringFieldNumber = 6;
+ private bool hasUtf8String;
+ private string utf8String_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[7].DefaultValue;
+ public bool HasUtf8String {
+ get { return hasUtf8String; }
+ }
+ public string Utf8String {
+ get { return utf8String_; }
+ }
+
+ public const int ZeroFloatFieldNumber = 7;
+ private bool hasZeroFloat;
+ private float zeroFloat_;
+ public bool HasZeroFloat {
+ get { return hasZeroFloat; }
+ }
+ public float ZeroFloat {
+ get { return zeroFloat_; }
+ }
+
+ public const int OneFloatFieldNumber = 8;
+ private bool hasOneFloat;
+ private float oneFloat_ = 1F;
+ public bool HasOneFloat {
+ get { return hasOneFloat; }
+ }
+ public float OneFloat {
+ get { return oneFloat_; }
+ }
+
+ public const int SmallFloatFieldNumber = 9;
+ private bool hasSmallFloat;
+ private float smallFloat_ = 1.5F;
+ public bool HasSmallFloat {
+ get { return hasSmallFloat; }
+ }
+ public float SmallFloat {
+ get { return smallFloat_; }
+ }
+
+ public const int NegativeOneFloatFieldNumber = 10;
+ private bool hasNegativeOneFloat;
+ private float negativeOneFloat_ = -1F;
+ public bool HasNegativeOneFloat {
+ get { return hasNegativeOneFloat; }
+ }
+ public float NegativeOneFloat {
+ get { return negativeOneFloat_; }
+ }
+
+ public const int NegativeFloatFieldNumber = 11;
+ private bool hasNegativeFloat;
+ private float negativeFloat_ = -1.5F;
+ public bool HasNegativeFloat {
+ get { return hasNegativeFloat; }
+ }
+ public float NegativeFloat {
+ get { return negativeFloat_; }
+ }
+
+ public const int LargeFloatFieldNumber = 12;
+ private bool hasLargeFloat;
+ private float largeFloat_ = 2e+08F;
+ public bool HasLargeFloat {
+ get { return hasLargeFloat; }
+ }
+ public float LargeFloat {
+ get { return largeFloat_; }
+ }
+
+ public const int SmallNegativeFloatFieldNumber = 13;
+ private bool hasSmallNegativeFloat;
+ private float smallNegativeFloat_ = -8e-28F;
+ public bool HasSmallNegativeFloat {
+ get { return hasSmallNegativeFloat; }
+ }
+ public float SmallNegativeFloat {
+ get { return smallNegativeFloat_; }
+ }
+
+ public const int InfDoubleFieldNumber = 14;
+ private bool hasInfDouble;
+ private double infDouble_ = double.PositiveInfinity;
+ public bool HasInfDouble {
+ get { return hasInfDouble; }
+ }
+ public double InfDouble {
+ get { return infDouble_; }
+ }
+
+ public const int NegInfDoubleFieldNumber = 15;
+ private bool hasNegInfDouble;
+ private double negInfDouble_ = double.NegativeInfinity;
+ public bool HasNegInfDouble {
+ get { return hasNegInfDouble; }
+ }
+ public double NegInfDouble {
+ get { return negInfDouble_; }
+ }
+
+ public const int NanDoubleFieldNumber = 16;
+ private bool hasNanDouble;
+ private double nanDouble_ = double.NaN;
+ public bool HasNanDouble {
+ get { return hasNanDouble; }
+ }
+ public double NanDouble {
+ get { return nanDouble_; }
+ }
+
+ public const int InfFloatFieldNumber = 17;
+ private bool hasInfFloat;
+ private float infFloat_ = float.PositiveInfinity;
+ public bool HasInfFloat {
+ get { return hasInfFloat; }
+ }
+ public float InfFloat {
+ get { return infFloat_; }
+ }
+
+ public const int NegInfFloatFieldNumber = 18;
+ private bool hasNegInfFloat;
+ private float negInfFloat_ = float.NegativeInfinity;
+ public bool HasNegInfFloat {
+ get { return hasNegInfFloat; }
+ }
+ public float NegInfFloat {
+ get { return negInfFloat_; }
+ }
+
+ public const int NanFloatFieldNumber = 19;
+ private bool hasNanFloat;
+ private float nanFloat_ = float.NaN;
+ public bool HasNanFloat {
+ get { return hasNanFloat; }
+ }
+ public float NanFloat {
+ get { return nanFloat_; }
+ }
+
+ public const int CppTrigraphFieldNumber = 20;
+ private bool hasCppTrigraph;
+ private string cppTrigraph_ = "? ? ?? ?? ??? ??/ ??-";
+ public bool HasCppTrigraph {
+ get { return hasCppTrigraph; }
+ }
+ public string CppTrigraph {
+ get { return cppTrigraph_; }
+ }
+
+ public const int StringWithZeroFieldNumber = 23;
+ private bool hasStringWithZero;
+ private string stringWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[22].DefaultValue;
+ public bool HasStringWithZero {
+ get { return hasStringWithZero; }
+ }
+ public string StringWithZero {
+ get { return stringWithZero_; }
+ }
+
+ public const int BytesWithZeroFieldNumber = 24;
+ private bool hasBytesWithZero;
+ private pb::ByteString bytesWithZero_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[23].DefaultValue;
+ public bool HasBytesWithZero {
+ get { return hasBytesWithZero; }
+ }
+ public pb::ByteString BytesWithZero {
+ get { return bytesWithZero_; }
+ }
+
+ public const int StringPieceWithZeroFieldNumber = 25;
+ private bool hasStringPieceWithZero;
+ private string stringPieceWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[24].DefaultValue;
+ public bool HasStringPieceWithZero {
+ get { return hasStringPieceWithZero; }
+ }
+ public string StringPieceWithZero {
+ get { return stringPieceWithZero_; }
+ }
+
+ public const int CordWithZeroFieldNumber = 26;
+ private bool hasCordWithZero;
+ private string cordWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[25].DefaultValue;
+ public bool HasCordWithZero {
+ get { return hasCordWithZero; }
+ }
+ public string CordWithZero {
+ get { return cordWithZero_; }
+ }
+
+ public const int ReplacementStringFieldNumber = 27;
+ private bool hasReplacementString;
+ private string replacementString_ = "${unknown}";
+ public bool HasReplacementString {
+ get { return hasReplacementString; }
+ }
+ public string ReplacementString {
+ get { return replacementString_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testExtremeDefaultValuesFieldNames;
+ if (hasEscapedBytes) {
+ output.WriteBytes(1, field_names[3], EscapedBytes);
+ }
+ if (hasLargeUint32) {
+ output.WriteUInt32(2, field_names[7], LargeUint32);
+ }
+ if (hasLargeUint64) {
+ output.WriteUInt64(3, field_names[8], LargeUint64);
+ }
+ if (hasSmallInt32) {
+ output.WriteInt32(4, field_names[20], SmallInt32);
+ }
+ if (hasSmallInt64) {
+ output.WriteInt64(5, field_names[21], SmallInt64);
+ }
+ if (hasUtf8String) {
+ output.WriteString(6, field_names[25], Utf8String);
+ }
+ if (hasZeroFloat) {
+ output.WriteFloat(7, field_names[26], ZeroFloat);
+ }
+ if (hasOneFloat) {
+ output.WriteFloat(8, field_names[15], OneFloat);
+ }
+ if (hasSmallFloat) {
+ output.WriteFloat(9, field_names[19], SmallFloat);
+ }
+ if (hasNegativeOneFloat) {
+ output.WriteFloat(10, field_names[14], NegativeOneFloat);
+ }
+ if (hasNegativeFloat) {
+ output.WriteFloat(11, field_names[13], NegativeFloat);
+ }
+ if (hasLargeFloat) {
+ output.WriteFloat(12, field_names[6], LargeFloat);
+ }
+ if (hasSmallNegativeFloat) {
+ output.WriteFloat(13, field_names[22], SmallNegativeFloat);
+ }
+ if (hasInfDouble) {
+ output.WriteDouble(14, field_names[4], InfDouble);
+ }
+ if (hasNegInfDouble) {
+ output.WriteDouble(15, field_names[11], NegInfDouble);
+ }
+ if (hasNanDouble) {
+ output.WriteDouble(16, field_names[9], NanDouble);
+ }
+ if (hasInfFloat) {
+ output.WriteFloat(17, field_names[5], InfFloat);
+ }
+ if (hasNegInfFloat) {
+ output.WriteFloat(18, field_names[12], NegInfFloat);
+ }
+ if (hasNanFloat) {
+ output.WriteFloat(19, field_names[10], NanFloat);
+ }
+ if (hasCppTrigraph) {
+ output.WriteString(20, field_names[2], CppTrigraph);
+ }
+ if (hasReallySmallInt32) {
+ output.WriteInt32(21, field_names[16], ReallySmallInt32);
+ }
+ if (hasReallySmallInt64) {
+ output.WriteInt64(22, field_names[17], ReallySmallInt64);
+ }
+ if (hasStringWithZero) {
+ output.WriteString(23, field_names[24], StringWithZero);
+ }
+ if (hasBytesWithZero) {
+ output.WriteBytes(24, field_names[0], BytesWithZero);
+ }
+ if (hasStringPieceWithZero) {
+ output.WriteString(25, field_names[23], StringPieceWithZero);
+ }
+ if (hasCordWithZero) {
+ output.WriteString(26, field_names[1], CordWithZero);
+ }
+ if (hasReplacementString) {
+ output.WriteString(27, field_names[18], ReplacementString);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasEscapedBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, EscapedBytes);
+ }
+ if (hasLargeUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(2, LargeUint32);
+ }
+ if (hasLargeUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(3, LargeUint64);
+ }
+ if (hasSmallInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(4, SmallInt32);
+ }
+ if (hasSmallInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(5, SmallInt64);
+ }
+ if (hasReallySmallInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(21, ReallySmallInt32);
+ }
+ if (hasReallySmallInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(22, ReallySmallInt64);
+ }
+ if (hasUtf8String) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, Utf8String);
+ }
+ if (hasZeroFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(7, ZeroFloat);
+ }
+ if (hasOneFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(8, OneFloat);
+ }
+ if (hasSmallFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(9, SmallFloat);
+ }
+ if (hasNegativeOneFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(10, NegativeOneFloat);
+ }
+ if (hasNegativeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, NegativeFloat);
+ }
+ if (hasLargeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(12, LargeFloat);
+ }
+ if (hasSmallNegativeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(13, SmallNegativeFloat);
+ }
+ if (hasInfDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(14, InfDouble);
+ }
+ if (hasNegInfDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(15, NegInfDouble);
+ }
+ if (hasNanDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(16, NanDouble);
+ }
+ if (hasInfFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(17, InfFloat);
+ }
+ if (hasNegInfFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(18, NegInfFloat);
+ }
+ if (hasNanFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(19, NanFloat);
+ }
+ if (hasCppTrigraph) {
+ size += pb::CodedOutputStream.ComputeStringSize(20, CppTrigraph);
+ }
+ if (hasStringWithZero) {
+ size += pb::CodedOutputStream.ComputeStringSize(23, StringWithZero);
+ }
+ if (hasBytesWithZero) {
+ size += pb::CodedOutputStream.ComputeBytesSize(24, BytesWithZero);
+ }
+ if (hasStringPieceWithZero) {
+ size += pb::CodedOutputStream.ComputeStringSize(25, StringPieceWithZero);
+ }
+ if (hasCordWithZero) {
+ size += pb::CodedOutputStream.ComputeStringSize(26, CordWithZero);
+ }
+ if (hasReplacementString) {
+ size += pb::CodedOutputStream.ComputeStringSize(27, ReplacementString);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestExtremeDefaultValues MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestExtremeDefaultValues prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestExtremeDefaultValues, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestExtremeDefaultValues cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestExtremeDefaultValues result;
+
+ private TestExtremeDefaultValues PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestExtremeDefaultValues original = result;
+ result = new TestExtremeDefaultValues();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestExtremeDefaultValues MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor; }
+ }
+
+ public override TestExtremeDefaultValues DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.DefaultInstance; }
+ }
+
+ public override TestExtremeDefaultValues BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestExtremeDefaultValues) {
+ return MergeFrom((TestExtremeDefaultValues) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestExtremeDefaultValues other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasEscapedBytes) {
+ EscapedBytes = other.EscapedBytes;
+ }
+ if (other.HasLargeUint32) {
+ LargeUint32 = other.LargeUint32;
+ }
+ if (other.HasLargeUint64) {
+ LargeUint64 = other.LargeUint64;
+ }
+ if (other.HasSmallInt32) {
+ SmallInt32 = other.SmallInt32;
+ }
+ if (other.HasSmallInt64) {
+ SmallInt64 = other.SmallInt64;
+ }
+ if (other.HasReallySmallInt32) {
+ ReallySmallInt32 = other.ReallySmallInt32;
+ }
+ if (other.HasReallySmallInt64) {
+ ReallySmallInt64 = other.ReallySmallInt64;
+ }
+ if (other.HasUtf8String) {
+ Utf8String = other.Utf8String;
+ }
+ if (other.HasZeroFloat) {
+ ZeroFloat = other.ZeroFloat;
+ }
+ if (other.HasOneFloat) {
+ OneFloat = other.OneFloat;
+ }
+ if (other.HasSmallFloat) {
+ SmallFloat = other.SmallFloat;
+ }
+ if (other.HasNegativeOneFloat) {
+ NegativeOneFloat = other.NegativeOneFloat;
+ }
+ if (other.HasNegativeFloat) {
+ NegativeFloat = other.NegativeFloat;
+ }
+ if (other.HasLargeFloat) {
+ LargeFloat = other.LargeFloat;
+ }
+ if (other.HasSmallNegativeFloat) {
+ SmallNegativeFloat = other.SmallNegativeFloat;
+ }
+ if (other.HasInfDouble) {
+ InfDouble = other.InfDouble;
+ }
+ if (other.HasNegInfDouble) {
+ NegInfDouble = other.NegInfDouble;
+ }
+ if (other.HasNanDouble) {
+ NanDouble = other.NanDouble;
+ }
+ if (other.HasInfFloat) {
+ InfFloat = other.InfFloat;
+ }
+ if (other.HasNegInfFloat) {
+ NegInfFloat = other.NegInfFloat;
+ }
+ if (other.HasNanFloat) {
+ NanFloat = other.NanFloat;
+ }
+ if (other.HasCppTrigraph) {
+ CppTrigraph = other.CppTrigraph;
+ }
+ if (other.HasStringWithZero) {
+ StringWithZero = other.StringWithZero;
+ }
+ if (other.HasBytesWithZero) {
+ BytesWithZero = other.BytesWithZero;
+ }
+ if (other.HasStringPieceWithZero) {
+ StringPieceWithZero = other.StringPieceWithZero;
+ }
+ if (other.HasCordWithZero) {
+ CordWithZero = other.CordWithZero;
+ }
+ if (other.HasReplacementString) {
+ ReplacementString = other.ReplacementString;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testExtremeDefaultValuesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testExtremeDefaultValuesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasEscapedBytes = input.ReadBytes(ref result.escapedBytes_);
+ break;
+ }
+ case 16: {
+ result.hasLargeUint32 = input.ReadUInt32(ref result.largeUint32_);
+ break;
+ }
+ case 24: {
+ result.hasLargeUint64 = input.ReadUInt64(ref result.largeUint64_);
+ break;
+ }
+ case 32: {
+ result.hasSmallInt32 = input.ReadInt32(ref result.smallInt32_);
+ break;
+ }
+ case 40: {
+ result.hasSmallInt64 = input.ReadInt64(ref result.smallInt64_);
+ break;
+ }
+ case 50: {
+ result.hasUtf8String = input.ReadString(ref result.utf8String_);
+ break;
+ }
+ case 61: {
+ result.hasZeroFloat = input.ReadFloat(ref result.zeroFloat_);
+ break;
+ }
+ case 69: {
+ result.hasOneFloat = input.ReadFloat(ref result.oneFloat_);
+ break;
+ }
+ case 77: {
+ result.hasSmallFloat = input.ReadFloat(ref result.smallFloat_);
+ break;
+ }
+ case 85: {
+ result.hasNegativeOneFloat = input.ReadFloat(ref result.negativeOneFloat_);
+ break;
+ }
+ case 93: {
+ result.hasNegativeFloat = input.ReadFloat(ref result.negativeFloat_);
+ break;
+ }
+ case 101: {
+ result.hasLargeFloat = input.ReadFloat(ref result.largeFloat_);
+ break;
+ }
+ case 109: {
+ result.hasSmallNegativeFloat = input.ReadFloat(ref result.smallNegativeFloat_);
+ break;
+ }
+ case 113: {
+ result.hasInfDouble = input.ReadDouble(ref result.infDouble_);
+ break;
+ }
+ case 121: {
+ result.hasNegInfDouble = input.ReadDouble(ref result.negInfDouble_);
+ break;
+ }
+ case 129: {
+ result.hasNanDouble = input.ReadDouble(ref result.nanDouble_);
+ break;
+ }
+ case 141: {
+ result.hasInfFloat = input.ReadFloat(ref result.infFloat_);
+ break;
+ }
+ case 149: {
+ result.hasNegInfFloat = input.ReadFloat(ref result.negInfFloat_);
+ break;
+ }
+ case 157: {
+ result.hasNanFloat = input.ReadFloat(ref result.nanFloat_);
+ break;
+ }
+ case 162: {
+ result.hasCppTrigraph = input.ReadString(ref result.cppTrigraph_);
+ break;
+ }
+ case 168: {
+ result.hasReallySmallInt32 = input.ReadInt32(ref result.reallySmallInt32_);
+ break;
+ }
+ case 176: {
+ result.hasReallySmallInt64 = input.ReadInt64(ref result.reallySmallInt64_);
+ break;
+ }
+ case 186: {
+ result.hasStringWithZero = input.ReadString(ref result.stringWithZero_);
+ break;
+ }
+ case 194: {
+ result.hasBytesWithZero = input.ReadBytes(ref result.bytesWithZero_);
+ break;
+ }
+ case 202: {
+ result.hasStringPieceWithZero = input.ReadString(ref result.stringPieceWithZero_);
+ break;
+ }
+ case 210: {
+ result.hasCordWithZero = input.ReadString(ref result.cordWithZero_);
+ break;
+ }
+ case 218: {
+ result.hasReplacementString = input.ReadString(ref result.replacementString_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasEscapedBytes {
+ get { return result.hasEscapedBytes; }
+ }
+ public pb::ByteString EscapedBytes {
+ get { return result.EscapedBytes; }
+ set { SetEscapedBytes(value); }
+ }
+ public Builder SetEscapedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasEscapedBytes = true;
+ result.escapedBytes_ = value;
+ return this;
+ }
+ public Builder ClearEscapedBytes() {
+ PrepareBuilder();
+ result.hasEscapedBytes = false;
+ result.escapedBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[0].DefaultValue;
+ return this;
+ }
+
+ public bool HasLargeUint32 {
+ get { return result.hasLargeUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint LargeUint32 {
+ get { return result.LargeUint32; }
+ set { SetLargeUint32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetLargeUint32(uint value) {
+ PrepareBuilder();
+ result.hasLargeUint32 = true;
+ result.largeUint32_ = value;
+ return this;
+ }
+ public Builder ClearLargeUint32() {
+ PrepareBuilder();
+ result.hasLargeUint32 = false;
+ result.largeUint32_ = 4294967295;
+ return this;
+ }
+
+ public bool HasLargeUint64 {
+ get { return result.hasLargeUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong LargeUint64 {
+ get { return result.LargeUint64; }
+ set { SetLargeUint64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetLargeUint64(ulong value) {
+ PrepareBuilder();
+ result.hasLargeUint64 = true;
+ result.largeUint64_ = value;
+ return this;
+ }
+ public Builder ClearLargeUint64() {
+ PrepareBuilder();
+ result.hasLargeUint64 = false;
+ result.largeUint64_ = 18446744073709551615UL;
+ return this;
+ }
+
+ public bool HasSmallInt32 {
+ get { return result.hasSmallInt32; }
+ }
+ public int SmallInt32 {
+ get { return result.SmallInt32; }
+ set { SetSmallInt32(value); }
+ }
+ public Builder SetSmallInt32(int value) {
+ PrepareBuilder();
+ result.hasSmallInt32 = true;
+ result.smallInt32_ = value;
+ return this;
+ }
+ public Builder ClearSmallInt32() {
+ PrepareBuilder();
+ result.hasSmallInt32 = false;
+ result.smallInt32_ = -2147483647;
+ return this;
+ }
+
+ public bool HasSmallInt64 {
+ get { return result.hasSmallInt64; }
+ }
+ public long SmallInt64 {
+ get { return result.SmallInt64; }
+ set { SetSmallInt64(value); }
+ }
+ public Builder SetSmallInt64(long value) {
+ PrepareBuilder();
+ result.hasSmallInt64 = true;
+ result.smallInt64_ = value;
+ return this;
+ }
+ public Builder ClearSmallInt64() {
+ PrepareBuilder();
+ result.hasSmallInt64 = false;
+ result.smallInt64_ = -9223372036854775807L;
+ return this;
+ }
+
+ public bool HasReallySmallInt32 {
+ get { return result.hasReallySmallInt32; }
+ }
+ public int ReallySmallInt32 {
+ get { return result.ReallySmallInt32; }
+ set { SetReallySmallInt32(value); }
+ }
+ public Builder SetReallySmallInt32(int value) {
+ PrepareBuilder();
+ result.hasReallySmallInt32 = true;
+ result.reallySmallInt32_ = value;
+ return this;
+ }
+ public Builder ClearReallySmallInt32() {
+ PrepareBuilder();
+ result.hasReallySmallInt32 = false;
+ result.reallySmallInt32_ = -2147483648;
+ return this;
+ }
+
+ public bool HasReallySmallInt64 {
+ get { return result.hasReallySmallInt64; }
+ }
+ public long ReallySmallInt64 {
+ get { return result.ReallySmallInt64; }
+ set { SetReallySmallInt64(value); }
+ }
+ public Builder SetReallySmallInt64(long value) {
+ PrepareBuilder();
+ result.hasReallySmallInt64 = true;
+ result.reallySmallInt64_ = value;
+ return this;
+ }
+ public Builder ClearReallySmallInt64() {
+ PrepareBuilder();
+ result.hasReallySmallInt64 = false;
+ result.reallySmallInt64_ = -9223372036854775808L;
+ return this;
+ }
+
+ public bool HasUtf8String {
+ get { return result.hasUtf8String; }
+ }
+ public string Utf8String {
+ get { return result.Utf8String; }
+ set { SetUtf8String(value); }
+ }
+ public Builder SetUtf8String(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasUtf8String = true;
+ result.utf8String_ = value;
+ return this;
+ }
+ public Builder ClearUtf8String() {
+ PrepareBuilder();
+ result.hasUtf8String = false;
+ result.utf8String_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[7].DefaultValue;
+ return this;
+ }
+
+ public bool HasZeroFloat {
+ get { return result.hasZeroFloat; }
+ }
+ public float ZeroFloat {
+ get { return result.ZeroFloat; }
+ set { SetZeroFloat(value); }
+ }
+ public Builder SetZeroFloat(float value) {
+ PrepareBuilder();
+ result.hasZeroFloat = true;
+ result.zeroFloat_ = value;
+ return this;
+ }
+ public Builder ClearZeroFloat() {
+ PrepareBuilder();
+ result.hasZeroFloat = false;
+ result.zeroFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOneFloat {
+ get { return result.hasOneFloat; }
+ }
+ public float OneFloat {
+ get { return result.OneFloat; }
+ set { SetOneFloat(value); }
+ }
+ public Builder SetOneFloat(float value) {
+ PrepareBuilder();
+ result.hasOneFloat = true;
+ result.oneFloat_ = value;
+ return this;
+ }
+ public Builder ClearOneFloat() {
+ PrepareBuilder();
+ result.hasOneFloat = false;
+ result.oneFloat_ = 1F;
+ return this;
+ }
+
+ public bool HasSmallFloat {
+ get { return result.hasSmallFloat; }
+ }
+ public float SmallFloat {
+ get { return result.SmallFloat; }
+ set { SetSmallFloat(value); }
+ }
+ public Builder SetSmallFloat(float value) {
+ PrepareBuilder();
+ result.hasSmallFloat = true;
+ result.smallFloat_ = value;
+ return this;
+ }
+ public Builder ClearSmallFloat() {
+ PrepareBuilder();
+ result.hasSmallFloat = false;
+ result.smallFloat_ = 1.5F;
+ return this;
+ }
+
+ public bool HasNegativeOneFloat {
+ get { return result.hasNegativeOneFloat; }
+ }
+ public float NegativeOneFloat {
+ get { return result.NegativeOneFloat; }
+ set { SetNegativeOneFloat(value); }
+ }
+ public Builder SetNegativeOneFloat(float value) {
+ PrepareBuilder();
+ result.hasNegativeOneFloat = true;
+ result.negativeOneFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegativeOneFloat() {
+ PrepareBuilder();
+ result.hasNegativeOneFloat = false;
+ result.negativeOneFloat_ = -1F;
+ return this;
+ }
+
+ public bool HasNegativeFloat {
+ get { return result.hasNegativeFloat; }
+ }
+ public float NegativeFloat {
+ get { return result.NegativeFloat; }
+ set { SetNegativeFloat(value); }
+ }
+ public Builder SetNegativeFloat(float value) {
+ PrepareBuilder();
+ result.hasNegativeFloat = true;
+ result.negativeFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegativeFloat() {
+ PrepareBuilder();
+ result.hasNegativeFloat = false;
+ result.negativeFloat_ = -1.5F;
+ return this;
+ }
+
+ public bool HasLargeFloat {
+ get { return result.hasLargeFloat; }
+ }
+ public float LargeFloat {
+ get { return result.LargeFloat; }
+ set { SetLargeFloat(value); }
+ }
+ public Builder SetLargeFloat(float value) {
+ PrepareBuilder();
+ result.hasLargeFloat = true;
+ result.largeFloat_ = value;
+ return this;
+ }
+ public Builder ClearLargeFloat() {
+ PrepareBuilder();
+ result.hasLargeFloat = false;
+ result.largeFloat_ = 2e+08F;
+ return this;
+ }
+
+ public bool HasSmallNegativeFloat {
+ get { return result.hasSmallNegativeFloat; }
+ }
+ public float SmallNegativeFloat {
+ get { return result.SmallNegativeFloat; }
+ set { SetSmallNegativeFloat(value); }
+ }
+ public Builder SetSmallNegativeFloat(float value) {
+ PrepareBuilder();
+ result.hasSmallNegativeFloat = true;
+ result.smallNegativeFloat_ = value;
+ return this;
+ }
+ public Builder ClearSmallNegativeFloat() {
+ PrepareBuilder();
+ result.hasSmallNegativeFloat = false;
+ result.smallNegativeFloat_ = -8e-28F;
+ return this;
+ }
+
+ public bool HasInfDouble {
+ get { return result.hasInfDouble; }
+ }
+ public double InfDouble {
+ get { return result.InfDouble; }
+ set { SetInfDouble(value); }
+ }
+ public Builder SetInfDouble(double value) {
+ PrepareBuilder();
+ result.hasInfDouble = true;
+ result.infDouble_ = value;
+ return this;
+ }
+ public Builder ClearInfDouble() {
+ PrepareBuilder();
+ result.hasInfDouble = false;
+ result.infDouble_ = double.PositiveInfinity;
+ return this;
+ }
+
+ public bool HasNegInfDouble {
+ get { return result.hasNegInfDouble; }
+ }
+ public double NegInfDouble {
+ get { return result.NegInfDouble; }
+ set { SetNegInfDouble(value); }
+ }
+ public Builder SetNegInfDouble(double value) {
+ PrepareBuilder();
+ result.hasNegInfDouble = true;
+ result.negInfDouble_ = value;
+ return this;
+ }
+ public Builder ClearNegInfDouble() {
+ PrepareBuilder();
+ result.hasNegInfDouble = false;
+ result.negInfDouble_ = double.NegativeInfinity;
+ return this;
+ }
+
+ public bool HasNanDouble {
+ get { return result.hasNanDouble; }
+ }
+ public double NanDouble {
+ get { return result.NanDouble; }
+ set { SetNanDouble(value); }
+ }
+ public Builder SetNanDouble(double value) {
+ PrepareBuilder();
+ result.hasNanDouble = true;
+ result.nanDouble_ = value;
+ return this;
+ }
+ public Builder ClearNanDouble() {
+ PrepareBuilder();
+ result.hasNanDouble = false;
+ result.nanDouble_ = double.NaN;
+ return this;
+ }
+
+ public bool HasInfFloat {
+ get { return result.hasInfFloat; }
+ }
+ public float InfFloat {
+ get { return result.InfFloat; }
+ set { SetInfFloat(value); }
+ }
+ public Builder SetInfFloat(float value) {
+ PrepareBuilder();
+ result.hasInfFloat = true;
+ result.infFloat_ = value;
+ return this;
+ }
+ public Builder ClearInfFloat() {
+ PrepareBuilder();
+ result.hasInfFloat = false;
+ result.infFloat_ = float.PositiveInfinity;
+ return this;
+ }
+
+ public bool HasNegInfFloat {
+ get { return result.hasNegInfFloat; }
+ }
+ public float NegInfFloat {
+ get { return result.NegInfFloat; }
+ set { SetNegInfFloat(value); }
+ }
+ public Builder SetNegInfFloat(float value) {
+ PrepareBuilder();
+ result.hasNegInfFloat = true;
+ result.negInfFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegInfFloat() {
+ PrepareBuilder();
+ result.hasNegInfFloat = false;
+ result.negInfFloat_ = float.NegativeInfinity;
+ return this;
+ }
+
+ public bool HasNanFloat {
+ get { return result.hasNanFloat; }
+ }
+ public float NanFloat {
+ get { return result.NanFloat; }
+ set { SetNanFloat(value); }
+ }
+ public Builder SetNanFloat(float value) {
+ PrepareBuilder();
+ result.hasNanFloat = true;
+ result.nanFloat_ = value;
+ return this;
+ }
+ public Builder ClearNanFloat() {
+ PrepareBuilder();
+ result.hasNanFloat = false;
+ result.nanFloat_ = float.NaN;
+ return this;
+ }
+
+ public bool HasCppTrigraph {
+ get { return result.hasCppTrigraph; }
+ }
+ public string CppTrigraph {
+ get { return result.CppTrigraph; }
+ set { SetCppTrigraph(value); }
+ }
+ public Builder SetCppTrigraph(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCppTrigraph = true;
+ result.cppTrigraph_ = value;
+ return this;
+ }
+ public Builder ClearCppTrigraph() {
+ PrepareBuilder();
+ result.hasCppTrigraph = false;
+ result.cppTrigraph_ = "? ? ?? ?? ??? ??/ ??-";
+ return this;
+ }
+
+ public bool HasStringWithZero {
+ get { return result.hasStringWithZero; }
+ }
+ public string StringWithZero {
+ get { return result.StringWithZero; }
+ set { SetStringWithZero(value); }
+ }
+ public Builder SetStringWithZero(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringWithZero = true;
+ result.stringWithZero_ = value;
+ return this;
+ }
+ public Builder ClearStringWithZero() {
+ PrepareBuilder();
+ result.hasStringWithZero = false;
+ result.stringWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[22].DefaultValue;
+ return this;
+ }
+
+ public bool HasBytesWithZero {
+ get { return result.hasBytesWithZero; }
+ }
+ public pb::ByteString BytesWithZero {
+ get { return result.BytesWithZero; }
+ set { SetBytesWithZero(value); }
+ }
+ public Builder SetBytesWithZero(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBytesWithZero = true;
+ result.bytesWithZero_ = value;
+ return this;
+ }
+ public Builder ClearBytesWithZero() {
+ PrepareBuilder();
+ result.hasBytesWithZero = false;
+ result.bytesWithZero_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[23].DefaultValue;
+ return this;
+ }
+
+ public bool HasStringPieceWithZero {
+ get { return result.hasStringPieceWithZero; }
+ }
+ public string StringPieceWithZero {
+ get { return result.StringPieceWithZero; }
+ set { SetStringPieceWithZero(value); }
+ }
+ public Builder SetStringPieceWithZero(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringPieceWithZero = true;
+ result.stringPieceWithZero_ = value;
+ return this;
+ }
+ public Builder ClearStringPieceWithZero() {
+ PrepareBuilder();
+ result.hasStringPieceWithZero = false;
+ result.stringPieceWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[24].DefaultValue;
+ return this;
+ }
+
+ public bool HasCordWithZero {
+ get { return result.hasCordWithZero; }
+ }
+ public string CordWithZero {
+ get { return result.CordWithZero; }
+ set { SetCordWithZero(value); }
+ }
+ public Builder SetCordWithZero(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCordWithZero = true;
+ result.cordWithZero_ = value;
+ return this;
+ }
+ public Builder ClearCordWithZero() {
+ PrepareBuilder();
+ result.hasCordWithZero = false;
+ result.cordWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[25].DefaultValue;
+ return this;
+ }
+
+ public bool HasReplacementString {
+ get { return result.hasReplacementString; }
+ }
+ public string ReplacementString {
+ get { return result.ReplacementString; }
+ set { SetReplacementString(value); }
+ }
+ public Builder SetReplacementString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasReplacementString = true;
+ result.replacementString_ = value;
+ return this;
+ }
+ public Builder ClearReplacementString() {
+ PrepareBuilder();
+ result.hasReplacementString = false;
+ result.replacementString_ = "${unknown}";
+ return this;
+ }
+ }
+ static TestExtremeDefaultValues() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SparseEnumMessage : pb::GeneratedMessage<SparseEnumMessage, SparseEnumMessage.Builder> {
+ private SparseEnumMessage() { }
+ private static readonly SparseEnumMessage defaultInstance = new SparseEnumMessage().MakeReadOnly();
+ private static readonly string[] _sparseEnumMessageFieldNames = new string[] { "sparse_enum" };
+ private static readonly uint[] _sparseEnumMessageFieldTags = new uint[] { 8 };
+ public static SparseEnumMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SparseEnumMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SparseEnumMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_SparseEnumMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SparseEnumMessage, SparseEnumMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable; }
+ }
+
+ public const int SparseEnumFieldNumber = 1;
+ private bool hasSparseEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestSparseEnum sparseEnum_ = global::Google.ProtocolBuffers.TestProtos.TestSparseEnum.SPARSE_A;
+ public bool HasSparseEnum {
+ get { return hasSparseEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestSparseEnum SparseEnum {
+ get { return sparseEnum_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _sparseEnumMessageFieldNames;
+ if (hasSparseEnum) {
+ output.WriteEnum(1, field_names[0], (int) SparseEnum, SparseEnum);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSparseEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(1, (int) SparseEnum);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SparseEnumMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SparseEnumMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SparseEnumMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SparseEnumMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SparseEnumMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SparseEnumMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SparseEnumMessage result;
+
+ private SparseEnumMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SparseEnumMessage original = result;
+ result = new SparseEnumMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SparseEnumMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.Descriptor; }
+ }
+
+ public override SparseEnumMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.DefaultInstance; }
+ }
+
+ public override SparseEnumMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SparseEnumMessage) {
+ return MergeFrom((SparseEnumMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SparseEnumMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasSparseEnum) {
+ SparseEnum = other.SparseEnum;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_sparseEnumMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _sparseEnumMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ object unknown;
+ if(input.ReadEnum(ref result.sparseEnum_, out unknown)) {
+ result.hasSparseEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(1, (ulong)(int)unknown);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasSparseEnum {
+ get { return result.hasSparseEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestSparseEnum SparseEnum {
+ get { return result.SparseEnum; }
+ set { SetSparseEnum(value); }
+ }
+ public Builder SetSparseEnum(global::Google.ProtocolBuffers.TestProtos.TestSparseEnum value) {
+ PrepareBuilder();
+ result.hasSparseEnum = true;
+ result.sparseEnum_ = value;
+ return this;
+ }
+ public Builder ClearSparseEnum() {
+ PrepareBuilder();
+ result.hasSparseEnum = false;
+ result.sparseEnum_ = global::Google.ProtocolBuffers.TestProtos.TestSparseEnum.SPARSE_A;
+ return this;
+ }
+ }
+ static SparseEnumMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OneString : pb::GeneratedMessage<OneString, OneString.Builder> {
+ private OneString() { }
+ private static readonly OneString defaultInstance = new OneString().MakeReadOnly();
+ private static readonly string[] _oneStringFieldNames = new string[] { "data" };
+ private static readonly uint[] _oneStringFieldTags = new uint[] { 10 };
+ public static OneString DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneString DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OneString ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneString__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneString, OneString.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneString__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private string data_ = "";
+ public bool HasData {
+ get { return hasData; }
+ }
+ public string Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _oneStringFieldNames;
+ if (hasData) {
+ output.WriteString(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OneString ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneString ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneString ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneString ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OneString MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneString prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OneString, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OneString cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OneString result;
+
+ private OneString PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OneString original = result;
+ result = new OneString();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OneString MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneString.Descriptor; }
+ }
+
+ public override OneString DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneString.DefaultInstance; }
+ }
+
+ public override OneString BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneString) {
+ return MergeFrom((OneString) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneString other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OneString.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_oneStringFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _oneStringFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasData = input.ReadString(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public string Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = "";
+ return this;
+ }
+ }
+ static OneString() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MoreString : pb::GeneratedMessage<MoreString, MoreString.Builder> {
+ private MoreString() { }
+ private static readonly MoreString defaultInstance = new MoreString().MakeReadOnly();
+ private static readonly string[] _moreStringFieldNames = new string[] { "data" };
+ private static readonly uint[] _moreStringFieldTags = new uint[] { 10 };
+ public static MoreString DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MoreString DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MoreString ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreString__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MoreString, MoreString.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreString__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private pbc::PopsicleList<string> data_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> DataList {
+ get { return pbc::Lists.AsReadOnly(data_); }
+ }
+ public int DataCount {
+ get { return data_.Count; }
+ }
+ public string GetData(int index) {
+ return data_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _moreStringFieldNames;
+ if (data_.Count > 0) {
+ output.WriteStringArray(1, field_names[0], data_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (string element in DataList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * data_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MoreString ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreString ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreString ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreString ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreString ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreString ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MoreString ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MoreString ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MoreString ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreString ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MoreString MakeReadOnly() {
+ data_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MoreString prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<MoreString, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MoreString cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MoreString result;
+
+ private MoreString PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MoreString original = result;
+ result = new MoreString();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MoreString MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreString.Descriptor; }
+ }
+
+ public override MoreString DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreString.DefaultInstance; }
+ }
+
+ public override MoreString BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MoreString) {
+ return MergeFrom((MoreString) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MoreString other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.MoreString.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.data_.Count != 0) {
+ result.data_.Add(other.data_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_moreStringFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _moreStringFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadStringArray(tag, field_name, result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<string> DataList {
+ get { return PrepareBuilder().data_; }
+ }
+ public int DataCount {
+ get { return result.DataCount; }
+ }
+ public string GetData(int index) {
+ return result.GetData(index);
+ }
+ public Builder SetData(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_[index] = value;
+ return this;
+ }
+ public Builder AddData(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_.Add(value);
+ return this;
+ }
+ public Builder AddRangeData(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.data_.Add(values);
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.data_.Clear();
+ return this;
+ }
+ }
+ static MoreString() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OneBytes : pb::GeneratedMessage<OneBytes, OneBytes.Builder> {
+ private OneBytes() { }
+ private static readonly OneBytes defaultInstance = new OneBytes().MakeReadOnly();
+ private static readonly string[] _oneBytesFieldNames = new string[] { "data" };
+ private static readonly uint[] _oneBytesFieldTags = new uint[] { 10 };
+ public static OneBytes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneBytes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OneBytes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneBytes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneBytes, OneBytes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneBytes__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private pb::ByteString data_ = pb::ByteString.Empty;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public pb::ByteString Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _oneBytesFieldNames;
+ if (hasData) {
+ output.WriteBytes(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OneBytes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneBytes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OneBytes MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneBytes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OneBytes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OneBytes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OneBytes result;
+
+ private OneBytes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OneBytes original = result;
+ result = new OneBytes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OneBytes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneBytes.Descriptor; }
+ }
+
+ public override OneBytes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneBytes.DefaultInstance; }
+ }
+
+ public override OneBytes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneBytes) {
+ return MergeFrom((OneBytes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneBytes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OneBytes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_oneBytesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _oneBytesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasData = input.ReadBytes(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public pb::ByteString Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static OneBytes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MoreBytes : pb::GeneratedMessage<MoreBytes, MoreBytes.Builder> {
+ private MoreBytes() { }
+ private static readonly MoreBytes defaultInstance = new MoreBytes().MakeReadOnly();
+ private static readonly string[] _moreBytesFieldNames = new string[] { "data" };
+ private static readonly uint[] _moreBytesFieldTags = new uint[] { 10 };
+ public static MoreBytes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MoreBytes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MoreBytes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreBytes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MoreBytes, MoreBytes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private pbc::PopsicleList<pb::ByteString> data_ = new pbc::PopsicleList<pb::ByteString>();
+ public scg::IList<pb::ByteString> DataList {
+ get { return pbc::Lists.AsReadOnly(data_); }
+ }
+ public int DataCount {
+ get { return data_.Count; }
+ }
+ public pb::ByteString GetData(int index) {
+ return data_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _moreBytesFieldNames;
+ if (data_.Count > 0) {
+ output.WriteBytesArray(1, field_names[0], data_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (pb::ByteString element in DataList) {
+ dataSize += pb::CodedOutputStream.ComputeBytesSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * data_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MoreBytes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MoreBytes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MoreBytes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MoreBytes MakeReadOnly() {
+ data_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MoreBytes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<MoreBytes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MoreBytes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MoreBytes result;
+
+ private MoreBytes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MoreBytes original = result;
+ result = new MoreBytes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MoreBytes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreBytes.Descriptor; }
+ }
+
+ public override MoreBytes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreBytes.DefaultInstance; }
+ }
+
+ public override MoreBytes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MoreBytes) {
+ return MergeFrom((MoreBytes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MoreBytes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.MoreBytes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.data_.Count != 0) {
+ result.data_.Add(other.data_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_moreBytesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _moreBytesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadBytesArray(tag, field_name, result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<pb::ByteString> DataList {
+ get { return PrepareBuilder().data_; }
+ }
+ public int DataCount {
+ get { return result.DataCount; }
+ }
+ public pb::ByteString GetData(int index) {
+ return result.GetData(index);
+ }
+ public Builder SetData(int index, pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_[index] = value;
+ return this;
+ }
+ public Builder AddData(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_.Add(value);
+ return this;
+ }
+ public Builder AddRangeData(scg::IEnumerable<pb::ByteString> values) {
+ PrepareBuilder();
+ result.data_.Add(values);
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.data_.Clear();
+ return this;
+ }
+ }
+ static MoreBytes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Int32Message : pb::GeneratedMessage<Int32Message, Int32Message.Builder> {
+ private Int32Message() { }
+ private static readonly Int32Message defaultInstance = new Int32Message().MakeReadOnly();
+ private static readonly string[] _int32MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _int32MessageFieldTags = new uint[] { 8 };
+ public static Int32Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Int32Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Int32Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int32Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Int32Message, Int32Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int32Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private int data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public int Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _int32MessageFieldNames;
+ if (hasData) {
+ output.WriteInt32(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Int32Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Int32Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Int32Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Int32Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Int32Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Int32Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Int32Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Int32Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Int32Message result;
+
+ private Int32Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Int32Message original = result;
+ result = new Int32Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Int32Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int32Message.Descriptor; }
+ }
+
+ public override Int32Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int32Message.DefaultInstance; }
+ }
+
+ public override Int32Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Int32Message) {
+ return MergeFrom((Int32Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Int32Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Int32Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_int32MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _int32MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadInt32(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public int Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(int value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0;
+ return this;
+ }
+ }
+ static Int32Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Uint32Message : pb::GeneratedMessage<Uint32Message, Uint32Message.Builder> {
+ private Uint32Message() { }
+ private static readonly Uint32Message defaultInstance = new Uint32Message().MakeReadOnly();
+ private static readonly string[] _uint32MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _uint32MessageFieldTags = new uint[] { 8 };
+ public static Uint32Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Uint32Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Uint32Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint32Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Uint32Message, Uint32Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private uint data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _uint32MessageFieldNames;
+ if (hasData) {
+ output.WriteUInt32(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Uint32Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Uint32Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Uint32Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Uint32Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Uint32Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Uint32Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Uint32Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Uint32Message result;
+
+ private Uint32Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Uint32Message original = result;
+ result = new Uint32Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Uint32Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint32Message.Descriptor; }
+ }
+
+ public override Uint32Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint32Message.DefaultInstance; }
+ }
+
+ public override Uint32Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Uint32Message) {
+ return MergeFrom((Uint32Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Uint32Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Uint32Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_uint32MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _uint32MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadUInt32(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetData(uint value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0;
+ return this;
+ }
+ }
+ static Uint32Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Int64Message : pb::GeneratedMessage<Int64Message, Int64Message.Builder> {
+ private Int64Message() { }
+ private static readonly Int64Message defaultInstance = new Int64Message().MakeReadOnly();
+ private static readonly string[] _int64MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _int64MessageFieldTags = new uint[] { 8 };
+ public static Int64Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Int64Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Int64Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int64Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Int64Message, Int64Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int64Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private long data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public long Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _int64MessageFieldNames;
+ if (hasData) {
+ output.WriteInt64(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeInt64Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Int64Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Int64Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Int64Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Int64Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Int64Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Int64Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Int64Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Int64Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Int64Message result;
+
+ private Int64Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Int64Message original = result;
+ result = new Int64Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Int64Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int64Message.Descriptor; }
+ }
+
+ public override Int64Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int64Message.DefaultInstance; }
+ }
+
+ public override Int64Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Int64Message) {
+ return MergeFrom((Int64Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Int64Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Int64Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_int64MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _int64MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadInt64(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public long Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(long value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0L;
+ return this;
+ }
+ }
+ static Int64Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Uint64Message : pb::GeneratedMessage<Uint64Message, Uint64Message.Builder> {
+ private Uint64Message() { }
+ private static readonly Uint64Message defaultInstance = new Uint64Message().MakeReadOnly();
+ private static readonly string[] _uint64MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _uint64MessageFieldTags = new uint[] { 8 };
+ public static Uint64Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Uint64Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Uint64Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint64Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Uint64Message, Uint64Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private ulong data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _uint64MessageFieldNames;
+ if (hasData) {
+ output.WriteUInt64(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Uint64Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Uint64Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Uint64Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Uint64Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Uint64Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Uint64Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Uint64Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Uint64Message result;
+
+ private Uint64Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Uint64Message original = result;
+ result = new Uint64Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Uint64Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint64Message.Descriptor; }
+ }
+
+ public override Uint64Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint64Message.DefaultInstance; }
+ }
+
+ public override Uint64Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Uint64Message) {
+ return MergeFrom((Uint64Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Uint64Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Uint64Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_uint64MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _uint64MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadUInt64(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetData(ulong value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0UL;
+ return this;
+ }
+ }
+ static Uint64Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BoolMessage : pb::GeneratedMessage<BoolMessage, BoolMessage.Builder> {
+ private BoolMessage() { }
+ private static readonly BoolMessage defaultInstance = new BoolMessage().MakeReadOnly();
+ private static readonly string[] _boolMessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _boolMessageFieldTags = new uint[] { 8 };
+ public static BoolMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BoolMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BoolMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BoolMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BoolMessage, BoolMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private bool data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public bool Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _boolMessageFieldNames;
+ if (hasData) {
+ output.WriteBool(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeBoolSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static BoolMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BoolMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BoolMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BoolMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BoolMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<BoolMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BoolMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BoolMessage result;
+
+ private BoolMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BoolMessage original = result;
+ result = new BoolMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BoolMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BoolMessage.Descriptor; }
+ }
+
+ public override BoolMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BoolMessage.DefaultInstance; }
+ }
+
+ public override BoolMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BoolMessage) {
+ return MergeFrom((BoolMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BoolMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BoolMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_boolMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _boolMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadBool(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public bool Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(bool value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = false;
+ return this;
+ }
+ }
+ static BoolMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOneof : pb::GeneratedMessage<TestOneof, TestOneof.Builder> {
+ private TestOneof() { }
+ private static readonly TestOneof defaultInstance = new TestOneof().MakeReadOnly();
+ private static readonly string[] _testOneofFieldNames = new string[] { "foo_int", "foo_message", "foo_string", "foogroup" };
+ private static readonly uint[] _testOneofFieldTags = new uint[] { 8, 26, 18, 35 };
+ public static TestOneof DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOneof DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOneof ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOneof, TestOneof.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooGroup : pb::GeneratedMessage<FooGroup, FooGroup.Builder> {
+ private FooGroup() { }
+ private static readonly FooGroup defaultInstance = new FooGroup().MakeReadOnly();
+ private static readonly string[] _fooGroupFieldNames = new string[] { "a", "b" };
+ private static readonly uint[] _fooGroupFieldTags = new uint[] { 40, 50 };
+ public static FooGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooGroup, FooGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof_FooGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 5;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BFieldNumber = 6;
+ private bool hasB;
+ private string b_ = "";
+ public bool HasB {
+ get { return hasB; }
+ }
+ public string B {
+ get { return b_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(5, field_names[0], A);
+ }
+ if (hasB) {
+ output.WriteString(6, field_names[1], B);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, A);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, B);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooGroup result;
+
+ private FooGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooGroup original = result;
+ result = new FooGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Descriptor; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override FooGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooGroup) {
+ return MergeFrom((FooGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 40: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 50: {
+ result.hasB = input.ReadString(ref result.b_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public string B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = "";
+ return this;
+ }
+ }
+ static FooGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int FooIntFieldNumber = 1;
+ private bool hasFooInt;
+ private int fooInt_;
+ public bool HasFooInt {
+ get { return hasFooInt; }
+ }
+ public int FooInt {
+ get { return fooInt_; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ private bool hasFooString;
+ private string fooString_ = "";
+ public bool HasFooString {
+ get { return hasFooString; }
+ }
+ public string FooString {
+ get { return fooString_; }
+ }
+
+ public const int FooMessageFieldNumber = 3;
+ private bool hasFooMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes fooMessage_;
+ public bool HasFooMessage {
+ get { return hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return fooMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int FooGroupFieldNumber = 4;
+ private bool hasFooGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup fooGroup_;
+ public bool HasFooGroup {
+ get { return hasFooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup FooGroup {
+ get { return fooGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testOneofFieldNames;
+ if (hasFooInt) {
+ output.WriteInt32(1, field_names[0], FooInt);
+ }
+ if (hasFooString) {
+ output.WriteString(2, field_names[2], FooString);
+ }
+ if (hasFooMessage) {
+ output.WriteMessage(3, field_names[1], FooMessage);
+ }
+ if (hasFooGroup) {
+ output.WriteGroup(4, field_names[3], FooGroup);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasFooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (hasFooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (hasFooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, FooMessage);
+ }
+ if (hasFooGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(4, FooGroup);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestOneof ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOneof ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOneof ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOneof MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOneof prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestOneof, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOneof cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOneof result;
+
+ private TestOneof PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOneof original = result;
+ result = new TestOneof();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOneof MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.Descriptor; }
+ }
+
+ public override TestOneof DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.DefaultInstance; }
+ }
+
+ public override TestOneof BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestOneof) {
+ return MergeFrom((TestOneof) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestOneof other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasFooInt) {
+ FooInt = other.FooInt;
+ }
+ if (other.HasFooString) {
+ FooString = other.FooString;
+ }
+ if (other.HasFooMessage) {
+ MergeFooMessage(other.FooMessage);
+ }
+ if (other.HasFooGroup) {
+ MergeFooGroup(other.FooGroup);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testOneofFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testOneofFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasFooInt = input.ReadInt32(ref result.fooInt_);
+ break;
+ }
+ case 18: {
+ result.hasFooString = input.ReadString(ref result.fooString_);
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasFooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ FooMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 35: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.CreateBuilder();
+ if (result.hasFooGroup) {
+ subBuilder.MergeFrom(FooGroup);
+ }
+ input.ReadGroup(4, subBuilder, extensionRegistry);
+ FooGroup = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.hasFooInt; }
+ }
+ public int FooInt {
+ get { return result.FooInt; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.hasFooInt = true;
+ result.fooInt_ = value;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ result.hasFooInt = false;
+ result.fooInt_ = 0;
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.hasFooString; }
+ }
+ public string FooString {
+ get { return result.FooString; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooString = true;
+ result.fooString_ = value;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ result.hasFooString = false;
+ result.fooString_ = "";
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return result.FooMessage; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooMessage &&
+ result.fooMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.fooMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.fooMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooMessage_ = value;
+ }
+ result.hasFooMessage = true;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ PrepareBuilder();
+ result.hasFooMessage = false;
+ result.fooMessage_ = null;
+ return this;
+ }
+
+ public bool HasFooGroup {
+ get { return result.hasFooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup FooGroup {
+ get { return result.FooGroup; }
+ set { SetFooGroup(value); }
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooGroup = true;
+ result.fooGroup_ = value;
+ return this;
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooGroup = true;
+ result.fooGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooGroup &&
+ result.fooGroup_ != global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance) {
+ result.fooGroup_ = global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.CreateBuilder(result.fooGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooGroup_ = value;
+ }
+ result.hasFooGroup = true;
+ return this;
+ }
+ public Builder ClearFooGroup() {
+ PrepareBuilder();
+ result.hasFooGroup = false;
+ result.fooGroup_ = null;
+ return this;
+ }
+ }
+ static TestOneof() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOneofBackwardsCompatible : pb::GeneratedMessage<TestOneofBackwardsCompatible, TestOneofBackwardsCompatible.Builder> {
+ private TestOneofBackwardsCompatible() { }
+ private static readonly TestOneofBackwardsCompatible defaultInstance = new TestOneofBackwardsCompatible().MakeReadOnly();
+ private static readonly string[] _testOneofBackwardsCompatibleFieldNames = new string[] { "foo_int", "foo_message", "foo_string", "foogroup" };
+ private static readonly uint[] _testOneofBackwardsCompatibleFieldTags = new uint[] { 8, 26, 18, 35 };
+ public static TestOneofBackwardsCompatible DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOneofBackwardsCompatible DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOneofBackwardsCompatible ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOneofBackwardsCompatible, TestOneofBackwardsCompatible.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooGroup : pb::GeneratedMessage<FooGroup, FooGroup.Builder> {
+ private FooGroup() { }
+ private static readonly FooGroup defaultInstance = new FooGroup().MakeReadOnly();
+ private static readonly string[] _fooGroupFieldNames = new string[] { "a", "b" };
+ private static readonly uint[] _fooGroupFieldTags = new uint[] { 40, 50 };
+ public static FooGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooGroup, FooGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 5;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BFieldNumber = 6;
+ private bool hasB;
+ private string b_ = "";
+ public bool HasB {
+ get { return hasB; }
+ }
+ public string B {
+ get { return b_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(5, field_names[0], A);
+ }
+ if (hasB) {
+ output.WriteString(6, field_names[1], B);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, A);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, B);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooGroup result;
+
+ private FooGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooGroup original = result;
+ result = new FooGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Descriptor; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override FooGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooGroup) {
+ return MergeFrom((FooGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 40: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 50: {
+ result.hasB = input.ReadString(ref result.b_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public string B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = "";
+ return this;
+ }
+ }
+ static FooGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int FooIntFieldNumber = 1;
+ private bool hasFooInt;
+ private int fooInt_;
+ public bool HasFooInt {
+ get { return hasFooInt; }
+ }
+ public int FooInt {
+ get { return fooInt_; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ private bool hasFooString;
+ private string fooString_ = "";
+ public bool HasFooString {
+ get { return hasFooString; }
+ }
+ public string FooString {
+ get { return fooString_; }
+ }
+
+ public const int FooMessageFieldNumber = 3;
+ private bool hasFooMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes fooMessage_;
+ public bool HasFooMessage {
+ get { return hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return fooMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int FooGroupFieldNumber = 4;
+ private bool hasFooGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup fooGroup_;
+ public bool HasFooGroup {
+ get { return hasFooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup FooGroup {
+ get { return fooGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testOneofBackwardsCompatibleFieldNames;
+ if (hasFooInt) {
+ output.WriteInt32(1, field_names[0], FooInt);
+ }
+ if (hasFooString) {
+ output.WriteString(2, field_names[2], FooString);
+ }
+ if (hasFooMessage) {
+ output.WriteMessage(3, field_names[1], FooMessage);
+ }
+ if (hasFooGroup) {
+ output.WriteGroup(4, field_names[3], FooGroup);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasFooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (hasFooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (hasFooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, FooMessage);
+ }
+ if (hasFooGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(4, FooGroup);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOneofBackwardsCompatible MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOneofBackwardsCompatible prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestOneofBackwardsCompatible, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOneofBackwardsCompatible cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOneofBackwardsCompatible result;
+
+ private TestOneofBackwardsCompatible PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOneofBackwardsCompatible original = result;
+ result = new TestOneofBackwardsCompatible();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOneofBackwardsCompatible MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Descriptor; }
+ }
+
+ public override TestOneofBackwardsCompatible DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.DefaultInstance; }
+ }
+
+ public override TestOneofBackwardsCompatible BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestOneofBackwardsCompatible) {
+ return MergeFrom((TestOneofBackwardsCompatible) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestOneofBackwardsCompatible other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasFooInt) {
+ FooInt = other.FooInt;
+ }
+ if (other.HasFooString) {
+ FooString = other.FooString;
+ }
+ if (other.HasFooMessage) {
+ MergeFooMessage(other.FooMessage);
+ }
+ if (other.HasFooGroup) {
+ MergeFooGroup(other.FooGroup);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testOneofBackwardsCompatibleFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testOneofBackwardsCompatibleFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasFooInt = input.ReadInt32(ref result.fooInt_);
+ break;
+ }
+ case 18: {
+ result.hasFooString = input.ReadString(ref result.fooString_);
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasFooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ FooMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 35: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.CreateBuilder();
+ if (result.hasFooGroup) {
+ subBuilder.MergeFrom(FooGroup);
+ }
+ input.ReadGroup(4, subBuilder, extensionRegistry);
+ FooGroup = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.hasFooInt; }
+ }
+ public int FooInt {
+ get { return result.FooInt; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.hasFooInt = true;
+ result.fooInt_ = value;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ result.hasFooInt = false;
+ result.fooInt_ = 0;
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.hasFooString; }
+ }
+ public string FooString {
+ get { return result.FooString; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooString = true;
+ result.fooString_ = value;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ result.hasFooString = false;
+ result.fooString_ = "";
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return result.FooMessage; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooMessage &&
+ result.fooMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.fooMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.fooMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooMessage_ = value;
+ }
+ result.hasFooMessage = true;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ PrepareBuilder();
+ result.hasFooMessage = false;
+ result.fooMessage_ = null;
+ return this;
+ }
+
+ public bool HasFooGroup {
+ get { return result.hasFooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup FooGroup {
+ get { return result.FooGroup; }
+ set { SetFooGroup(value); }
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooGroup = true;
+ result.fooGroup_ = value;
+ return this;
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooGroup = true;
+ result.fooGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooGroup &&
+ result.fooGroup_ != global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance) {
+ result.fooGroup_ = global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.CreateBuilder(result.fooGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooGroup_ = value;
+ }
+ result.hasFooGroup = true;
+ return this;
+ }
+ public Builder ClearFooGroup() {
+ PrepareBuilder();
+ result.hasFooGroup = false;
+ result.fooGroup_ = null;
+ return this;
+ }
+ }
+ static TestOneofBackwardsCompatible() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOneof2 : pb::GeneratedMessage<TestOneof2, TestOneof2.Builder> {
+ private TestOneof2() { }
+ private static readonly TestOneof2 defaultInstance = new TestOneof2().MakeReadOnly();
+ private static readonly string[] _testOneof2FieldNames = new string[] { "bar_bytes", "bar_cord", "bar_enum", "bar_int", "bar_string", "bar_string_piece", "baz_int", "baz_string", "foo_bytes", "foo_cord", "foo_enum", "foo_int", "foo_lazy_message", "foo_message", "foo_string", "foo_string_piece", "foogroup" };
+ private static readonly uint[] _testOneof2FieldTags = new uint[] { 130, 114, 136, 96, 106, 122, 144, 154, 42, 26, 48, 8, 90, 58, 18, 34, 67 };
+ public static TestOneof2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOneof2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOneof2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOneof2, TestOneof2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ FOO = 1,
+ BAR = 2,
+ BAZ = 3,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooGroup : pb::GeneratedMessage<FooGroup, FooGroup.Builder> {
+ private FooGroup() { }
+ private static readonly FooGroup defaultInstance = new FooGroup().MakeReadOnly();
+ private static readonly string[] _fooGroupFieldNames = new string[] { "a", "b" };
+ private static readonly uint[] _fooGroupFieldTags = new uint[] { 72, 82 };
+ public static FooGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooGroup, FooGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_FooGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 9;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BFieldNumber = 10;
+ private bool hasB;
+ private string b_ = "";
+ public bool HasB {
+ get { return hasB; }
+ }
+ public string B {
+ get { return b_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(9, field_names[0], A);
+ }
+ if (hasB) {
+ output.WriteString(10, field_names[1], B);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(9, A);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeStringSize(10, B);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooGroup result;
+
+ private FooGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooGroup original = result;
+ result = new FooGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Descriptor; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override FooGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooGroup) {
+ return MergeFrom((FooGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 72: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 82: {
+ result.hasB = input.ReadString(ref result.b_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public string B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = "";
+ return this;
+ }
+ }
+ static FooGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "corge_int", "qux_int" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 16, 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int QuxIntFieldNumber = 1;
+ private bool hasQuxInt;
+ private long quxInt_;
+ public bool HasQuxInt {
+ get { return hasQuxInt; }
+ }
+ public long QuxInt {
+ get { return quxInt_; }
+ }
+
+ public const int CorgeIntFieldNumber = 2;
+ private pbc::PopsicleList<int> corgeInt_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> CorgeIntList {
+ get { return pbc::Lists.AsReadOnly(corgeInt_); }
+ }
+ public int CorgeIntCount {
+ get { return corgeInt_.Count; }
+ }
+ public int GetCorgeInt(int index) {
+ return corgeInt_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasQuxInt) {
+ output.WriteInt64(1, field_names[1], QuxInt);
+ }
+ if (corgeInt_.Count > 0) {
+ output.WriteInt32Array(2, field_names[0], corgeInt_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasQuxInt) {
+ size += pb::CodedOutputStream.ComputeInt64Size(1, QuxInt);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in CorgeIntList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * corgeInt_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ corgeInt_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasQuxInt) {
+ QuxInt = other.QuxInt;
+ }
+ if (other.corgeInt_.Count != 0) {
+ result.corgeInt_.Add(other.corgeInt_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasQuxInt = input.ReadInt64(ref result.quxInt_);
+ break;
+ }
+ case 18:
+ case 16: {
+ input.ReadInt32Array(tag, field_name, result.corgeInt_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasQuxInt {
+ get { return result.hasQuxInt; }
+ }
+ public long QuxInt {
+ get { return result.QuxInt; }
+ set { SetQuxInt(value); }
+ }
+ public Builder SetQuxInt(long value) {
+ PrepareBuilder();
+ result.hasQuxInt = true;
+ result.quxInt_ = value;
+ return this;
+ }
+ public Builder ClearQuxInt() {
+ PrepareBuilder();
+ result.hasQuxInt = false;
+ result.quxInt_ = 0L;
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> CorgeIntList {
+ get { return PrepareBuilder().corgeInt_; }
+ }
+ public int CorgeIntCount {
+ get { return result.CorgeIntCount; }
+ }
+ public int GetCorgeInt(int index) {
+ return result.GetCorgeInt(index);
+ }
+ public Builder SetCorgeInt(int index, int value) {
+ PrepareBuilder();
+ result.corgeInt_[index] = value;
+ return this;
+ }
+ public Builder AddCorgeInt(int value) {
+ PrepareBuilder();
+ result.corgeInt_.Add(value);
+ return this;
+ }
+ public Builder AddRangeCorgeInt(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.corgeInt_.Add(values);
+ return this;
+ }
+ public Builder ClearCorgeInt() {
+ PrepareBuilder();
+ result.corgeInt_.Clear();
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int FooIntFieldNumber = 1;
+ private bool hasFooInt;
+ private int fooInt_;
+ public bool HasFooInt {
+ get { return hasFooInt; }
+ }
+ public int FooInt {
+ get { return fooInt_; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ private bool hasFooString;
+ private string fooString_ = "";
+ public bool HasFooString {
+ get { return hasFooString; }
+ }
+ public string FooString {
+ get { return fooString_; }
+ }
+
+ public const int FooCordFieldNumber = 3;
+ private bool hasFooCord;
+ private string fooCord_ = "";
+ public bool HasFooCord {
+ get { return hasFooCord; }
+ }
+ public string FooCord {
+ get { return fooCord_; }
+ }
+
+ public const int FooStringPieceFieldNumber = 4;
+ private bool hasFooStringPiece;
+ private string fooStringPiece_ = "";
+ public bool HasFooStringPiece {
+ get { return hasFooStringPiece; }
+ }
+ public string FooStringPiece {
+ get { return fooStringPiece_; }
+ }
+
+ public const int FooBytesFieldNumber = 5;
+ private bool hasFooBytes;
+ private pb::ByteString fooBytes_ = pb::ByteString.Empty;
+ public bool HasFooBytes {
+ get { return hasFooBytes; }
+ }
+ public pb::ByteString FooBytes {
+ get { return fooBytes_; }
+ }
+
+ public const int FooEnumFieldNumber = 6;
+ private bool hasFooEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum fooEnum_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.FOO;
+ public bool HasFooEnum {
+ get { return hasFooEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum FooEnum {
+ get { return fooEnum_; }
+ }
+
+ public const int FooMessageFieldNumber = 7;
+ private bool hasFooMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage fooMessage_;
+ public bool HasFooMessage {
+ get { return hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooMessage {
+ get { return fooMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int FooGroupFieldNumber = 8;
+ private bool hasFooGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup fooGroup_;
+ public bool HasFooGroup {
+ get { return hasFooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup FooGroup {
+ get { return fooGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance; }
+ }
+
+ public const int FooLazyMessageFieldNumber = 11;
+ private bool hasFooLazyMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage fooLazyMessage_;
+ public bool HasFooLazyMessage {
+ get { return hasFooLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooLazyMessage {
+ get { return fooLazyMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int BarIntFieldNumber = 12;
+ private bool hasBarInt;
+ private int barInt_ = 5;
+ public bool HasBarInt {
+ get { return hasBarInt; }
+ }
+ public int BarInt {
+ get { return barInt_; }
+ }
+
+ public const int BarStringFieldNumber = 13;
+ private bool hasBarString;
+ private string barString_ = "STRING";
+ public bool HasBarString {
+ get { return hasBarString; }
+ }
+ public string BarString {
+ get { return barString_; }
+ }
+
+ public const int BarCordFieldNumber = 14;
+ private bool hasBarCord;
+ private string barCord_ = "CORD";
+ public bool HasBarCord {
+ get { return hasBarCord; }
+ }
+ public string BarCord {
+ get { return barCord_; }
+ }
+
+ public const int BarStringPieceFieldNumber = 15;
+ private bool hasBarStringPiece;
+ private string barStringPiece_ = "SPIECE";
+ public bool HasBarStringPiece {
+ get { return hasBarStringPiece; }
+ }
+ public string BarStringPiece {
+ get { return barStringPiece_; }
+ }
+
+ public const int BarBytesFieldNumber = 16;
+ private bool hasBarBytes;
+ private pb::ByteString barBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor.Fields[13].DefaultValue;
+ public bool HasBarBytes {
+ get { return hasBarBytes; }
+ }
+ public pb::ByteString BarBytes {
+ get { return barBytes_; }
+ }
+
+ public const int BarEnumFieldNumber = 17;
+ private bool hasBarEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum barEnum_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.BAR;
+ public bool HasBarEnum {
+ get { return hasBarEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum BarEnum {
+ get { return barEnum_; }
+ }
+
+ public const int BazIntFieldNumber = 18;
+ private bool hasBazInt;
+ private int bazInt_;
+ public bool HasBazInt {
+ get { return hasBazInt; }
+ }
+ public int BazInt {
+ get { return bazInt_; }
+ }
+
+ public const int BazStringFieldNumber = 19;
+ private bool hasBazString;
+ private string bazString_ = "BAZ";
+ public bool HasBazString {
+ get { return hasBazString; }
+ }
+ public string BazString {
+ get { return bazString_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testOneof2FieldNames;
+ if (hasFooInt) {
+ output.WriteInt32(1, field_names[11], FooInt);
+ }
+ if (hasFooString) {
+ output.WriteString(2, field_names[14], FooString);
+ }
+ if (hasFooCord) {
+ output.WriteString(3, field_names[9], FooCord);
+ }
+ if (hasFooStringPiece) {
+ output.WriteString(4, field_names[15], FooStringPiece);
+ }
+ if (hasFooBytes) {
+ output.WriteBytes(5, field_names[8], FooBytes);
+ }
+ if (hasFooEnum) {
+ output.WriteEnum(6, field_names[10], (int) FooEnum, FooEnum);
+ }
+ if (hasFooMessage) {
+ output.WriteMessage(7, field_names[13], FooMessage);
+ }
+ if (hasFooGroup) {
+ output.WriteGroup(8, field_names[16], FooGroup);
+ }
+ if (hasFooLazyMessage) {
+ output.WriteMessage(11, field_names[12], FooLazyMessage);
+ }
+ if (hasBarInt) {
+ output.WriteInt32(12, field_names[3], BarInt);
+ }
+ if (hasBarString) {
+ output.WriteString(13, field_names[4], BarString);
+ }
+ if (hasBarCord) {
+ output.WriteString(14, field_names[1], BarCord);
+ }
+ if (hasBarStringPiece) {
+ output.WriteString(15, field_names[5], BarStringPiece);
+ }
+ if (hasBarBytes) {
+ output.WriteBytes(16, field_names[0], BarBytes);
+ }
+ if (hasBarEnum) {
+ output.WriteEnum(17, field_names[2], (int) BarEnum, BarEnum);
+ }
+ if (hasBazInt) {
+ output.WriteInt32(18, field_names[6], BazInt);
+ }
+ if (hasBazString) {
+ output.WriteString(19, field_names[7], BazString);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasFooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (hasFooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (hasFooCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, FooCord);
+ }
+ if (hasFooStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(4, FooStringPiece);
+ }
+ if (hasFooBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(5, FooBytes);
+ }
+ if (hasFooEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(6, (int) FooEnum);
+ }
+ if (hasFooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(7, FooMessage);
+ }
+ if (hasFooGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(8, FooGroup);
+ }
+ if (hasFooLazyMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, FooLazyMessage);
+ }
+ if (hasBarInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(12, BarInt);
+ }
+ if (hasBarString) {
+ size += pb::CodedOutputStream.ComputeStringSize(13, BarString);
+ }
+ if (hasBarCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(14, BarCord);
+ }
+ if (hasBarStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(15, BarStringPiece);
+ }
+ if (hasBarBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(16, BarBytes);
+ }
+ if (hasBarEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(17, (int) BarEnum);
+ }
+ if (hasBazInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(18, BazInt);
+ }
+ if (hasBazString) {
+ size += pb::CodedOutputStream.ComputeStringSize(19, BazString);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestOneof2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOneof2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOneof2 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOneof2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestOneof2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOneof2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOneof2 result;
+
+ private TestOneof2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOneof2 original = result;
+ result = new TestOneof2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOneof2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor; }
+ }
+
+ public override TestOneof2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.DefaultInstance; }
+ }
+
+ public override TestOneof2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestOneof2) {
+ return MergeFrom((TestOneof2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestOneof2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasFooInt) {
+ FooInt = other.FooInt;
+ }
+ if (other.HasFooString) {
+ FooString = other.FooString;
+ }
+ if (other.HasFooCord) {
+ FooCord = other.FooCord;
+ }
+ if (other.HasFooStringPiece) {
+ FooStringPiece = other.FooStringPiece;
+ }
+ if (other.HasFooBytes) {
+ FooBytes = other.FooBytes;
+ }
+ if (other.HasFooEnum) {
+ FooEnum = other.FooEnum;
+ }
+ if (other.HasFooMessage) {
+ MergeFooMessage(other.FooMessage);
+ }
+ if (other.HasFooGroup) {
+ MergeFooGroup(other.FooGroup);
+ }
+ if (other.HasFooLazyMessage) {
+ MergeFooLazyMessage(other.FooLazyMessage);
+ }
+ if (other.HasBarInt) {
+ BarInt = other.BarInt;
+ }
+ if (other.HasBarString) {
+ BarString = other.BarString;
+ }
+ if (other.HasBarCord) {
+ BarCord = other.BarCord;
+ }
+ if (other.HasBarStringPiece) {
+ BarStringPiece = other.BarStringPiece;
+ }
+ if (other.HasBarBytes) {
+ BarBytes = other.BarBytes;
+ }
+ if (other.HasBarEnum) {
+ BarEnum = other.BarEnum;
+ }
+ if (other.HasBazInt) {
+ BazInt = other.BazInt;
+ }
+ if (other.HasBazString) {
+ BazString = other.BazString;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testOneof2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testOneof2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasFooInt = input.ReadInt32(ref result.fooInt_);
+ break;
+ }
+ case 18: {
+ result.hasFooString = input.ReadString(ref result.fooString_);
+ break;
+ }
+ case 26: {
+ result.hasFooCord = input.ReadString(ref result.fooCord_);
+ break;
+ }
+ case 34: {
+ result.hasFooStringPiece = input.ReadString(ref result.fooStringPiece_);
+ break;
+ }
+ case 42: {
+ result.hasFooBytes = input.ReadBytes(ref result.fooBytes_);
+ break;
+ }
+ case 48: {
+ object unknown;
+ if(input.ReadEnum(ref result.fooEnum_, out unknown)) {
+ result.hasFooEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(6, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 58: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder();
+ if (result.hasFooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ FooMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 67: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.CreateBuilder();
+ if (result.hasFooGroup) {
+ subBuilder.MergeFrom(FooGroup);
+ }
+ input.ReadGroup(8, subBuilder, extensionRegistry);
+ FooGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder();
+ if (result.hasFooLazyMessage) {
+ subBuilder.MergeFrom(FooLazyMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ FooLazyMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 96: {
+ result.hasBarInt = input.ReadInt32(ref result.barInt_);
+ break;
+ }
+ case 106: {
+ result.hasBarString = input.ReadString(ref result.barString_);
+ break;
+ }
+ case 114: {
+ result.hasBarCord = input.ReadString(ref result.barCord_);
+ break;
+ }
+ case 122: {
+ result.hasBarStringPiece = input.ReadString(ref result.barStringPiece_);
+ break;
+ }
+ case 130: {
+ result.hasBarBytes = input.ReadBytes(ref result.barBytes_);
+ break;
+ }
+ case 136: {
+ object unknown;
+ if(input.ReadEnum(ref result.barEnum_, out unknown)) {
+ result.hasBarEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(17, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 144: {
+ result.hasBazInt = input.ReadInt32(ref result.bazInt_);
+ break;
+ }
+ case 154: {
+ result.hasBazString = input.ReadString(ref result.bazString_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.hasFooInt; }
+ }
+ public int FooInt {
+ get { return result.FooInt; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.hasFooInt = true;
+ result.fooInt_ = value;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ result.hasFooInt = false;
+ result.fooInt_ = 0;
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.hasFooString; }
+ }
+ public string FooString {
+ get { return result.FooString; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooString = true;
+ result.fooString_ = value;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ result.hasFooString = false;
+ result.fooString_ = "";
+ return this;
+ }
+
+ public bool HasFooCord {
+ get { return result.hasFooCord; }
+ }
+ public string FooCord {
+ get { return result.FooCord; }
+ set { SetFooCord(value); }
+ }
+ public Builder SetFooCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooCord = true;
+ result.fooCord_ = value;
+ return this;
+ }
+ public Builder ClearFooCord() {
+ PrepareBuilder();
+ result.hasFooCord = false;
+ result.fooCord_ = "";
+ return this;
+ }
+
+ public bool HasFooStringPiece {
+ get { return result.hasFooStringPiece; }
+ }
+ public string FooStringPiece {
+ get { return result.FooStringPiece; }
+ set { SetFooStringPiece(value); }
+ }
+ public Builder SetFooStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooStringPiece = true;
+ result.fooStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearFooStringPiece() {
+ PrepareBuilder();
+ result.hasFooStringPiece = false;
+ result.fooStringPiece_ = "";
+ return this;
+ }
+
+ public bool HasFooBytes {
+ get { return result.hasFooBytes; }
+ }
+ public pb::ByteString FooBytes {
+ get { return result.FooBytes; }
+ set { SetFooBytes(value); }
+ }
+ public Builder SetFooBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooBytes = true;
+ result.fooBytes_ = value;
+ return this;
+ }
+ public Builder ClearFooBytes() {
+ PrepareBuilder();
+ result.hasFooBytes = false;
+ result.fooBytes_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasFooEnum {
+ get { return result.hasFooEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum FooEnum {
+ get { return result.FooEnum; }
+ set { SetFooEnum(value); }
+ }
+ public Builder SetFooEnum(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.hasFooEnum = true;
+ result.fooEnum_ = value;
+ return this;
+ }
+ public Builder ClearFooEnum() {
+ PrepareBuilder();
+ result.hasFooEnum = false;
+ result.fooEnum_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.FOO;
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooMessage {
+ get { return result.FooMessage; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooMessage &&
+ result.fooMessage_ != global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance) {
+ result.fooMessage_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder(result.fooMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooMessage_ = value;
+ }
+ result.hasFooMessage = true;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ PrepareBuilder();
+ result.hasFooMessage = false;
+ result.fooMessage_ = null;
+ return this;
+ }
+
+ public bool HasFooGroup {
+ get { return result.hasFooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup FooGroup {
+ get { return result.FooGroup; }
+ set { SetFooGroup(value); }
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooGroup = true;
+ result.fooGroup_ = value;
+ return this;
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooGroup = true;
+ result.fooGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooGroup &&
+ result.fooGroup_ != global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance) {
+ result.fooGroup_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.CreateBuilder(result.fooGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooGroup_ = value;
+ }
+ result.hasFooGroup = true;
+ return this;
+ }
+ public Builder ClearFooGroup() {
+ PrepareBuilder();
+ result.hasFooGroup = false;
+ result.fooGroup_ = null;
+ return this;
+ }
+
+ public bool HasFooLazyMessage {
+ get { return result.hasFooLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooLazyMessage {
+ get { return result.FooLazyMessage; }
+ set { SetFooLazyMessage(value); }
+ }
+ public Builder SetFooLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooLazyMessage = true;
+ result.fooLazyMessage_ = value;
+ return this;
+ }
+ public Builder SetFooLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooLazyMessage = true;
+ result.fooLazyMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooLazyMessage &&
+ result.fooLazyMessage_ != global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance) {
+ result.fooLazyMessage_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder(result.fooLazyMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooLazyMessage_ = value;
+ }
+ result.hasFooLazyMessage = true;
+ return this;
+ }
+ public Builder ClearFooLazyMessage() {
+ PrepareBuilder();
+ result.hasFooLazyMessage = false;
+ result.fooLazyMessage_ = null;
+ return this;
+ }
+
+ public bool HasBarInt {
+ get { return result.hasBarInt; }
+ }
+ public int BarInt {
+ get { return result.BarInt; }
+ set { SetBarInt(value); }
+ }
+ public Builder SetBarInt(int value) {
+ PrepareBuilder();
+ result.hasBarInt = true;
+ result.barInt_ = value;
+ return this;
+ }
+ public Builder ClearBarInt() {
+ PrepareBuilder();
+ result.hasBarInt = false;
+ result.barInt_ = 5;
+ return this;
+ }
+
+ public bool HasBarString {
+ get { return result.hasBarString; }
+ }
+ public string BarString {
+ get { return result.BarString; }
+ set { SetBarString(value); }
+ }
+ public Builder SetBarString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBarString = true;
+ result.barString_ = value;
+ return this;
+ }
+ public Builder ClearBarString() {
+ PrepareBuilder();
+ result.hasBarString = false;
+ result.barString_ = "STRING";
+ return this;
+ }
+
+ public bool HasBarCord {
+ get { return result.hasBarCord; }
+ }
+ public string BarCord {
+ get { return result.BarCord; }
+ set { SetBarCord(value); }
+ }
+ public Builder SetBarCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBarCord = true;
+ result.barCord_ = value;
+ return this;
+ }
+ public Builder ClearBarCord() {
+ PrepareBuilder();
+ result.hasBarCord = false;
+ result.barCord_ = "CORD";
+ return this;
+ }
+
+ public bool HasBarStringPiece {
+ get { return result.hasBarStringPiece; }
+ }
+ public string BarStringPiece {
+ get { return result.BarStringPiece; }
+ set { SetBarStringPiece(value); }
+ }
+ public Builder SetBarStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBarStringPiece = true;
+ result.barStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearBarStringPiece() {
+ PrepareBuilder();
+ result.hasBarStringPiece = false;
+ result.barStringPiece_ = "SPIECE";
+ return this;
+ }
+
+ public bool HasBarBytes {
+ get { return result.hasBarBytes; }
+ }
+ public pb::ByteString BarBytes {
+ get { return result.BarBytes; }
+ set { SetBarBytes(value); }
+ }
+ public Builder SetBarBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBarBytes = true;
+ result.barBytes_ = value;
+ return this;
+ }
+ public Builder ClearBarBytes() {
+ PrepareBuilder();
+ result.hasBarBytes = false;
+ result.barBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor.Fields[13].DefaultValue;
+ return this;
+ }
+
+ public bool HasBarEnum {
+ get { return result.hasBarEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum BarEnum {
+ get { return result.BarEnum; }
+ set { SetBarEnum(value); }
+ }
+ public Builder SetBarEnum(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.hasBarEnum = true;
+ result.barEnum_ = value;
+ return this;
+ }
+ public Builder ClearBarEnum() {
+ PrepareBuilder();
+ result.hasBarEnum = false;
+ result.barEnum_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.BAR;
+ return this;
+ }
+
+ public bool HasBazInt {
+ get { return result.hasBazInt; }
+ }
+ public int BazInt {
+ get { return result.BazInt; }
+ set { SetBazInt(value); }
+ }
+ public Builder SetBazInt(int value) {
+ PrepareBuilder();
+ result.hasBazInt = true;
+ result.bazInt_ = value;
+ return this;
+ }
+ public Builder ClearBazInt() {
+ PrepareBuilder();
+ result.hasBazInt = false;
+ result.bazInt_ = 0;
+ return this;
+ }
+
+ public bool HasBazString {
+ get { return result.hasBazString; }
+ }
+ public string BazString {
+ get { return result.BazString; }
+ set { SetBazString(value); }
+ }
+ public Builder SetBazString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBazString = true;
+ result.bazString_ = value;
+ return this;
+ }
+ public Builder ClearBazString() {
+ PrepareBuilder();
+ result.hasBazString = false;
+ result.bazString_ = "BAZ";
+ return this;
+ }
+ }
+ static TestOneof2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequiredOneof : pb::GeneratedMessage<TestRequiredOneof, TestRequiredOneof.Builder> {
+ private TestRequiredOneof() { }
+ private static readonly TestRequiredOneof defaultInstance = new TestRequiredOneof().MakeReadOnly();
+ private static readonly string[] _testRequiredOneofFieldNames = new string[] { "foo_int", "foo_message", "foo_string" };
+ private static readonly uint[] _testRequiredOneofFieldTags = new uint[] { 8, 26, 18 };
+ public static TestRequiredOneof DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequiredOneof DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequiredOneof ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequiredOneof, TestRequiredOneof.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "required_double" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 9 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int RequiredDoubleFieldNumber = 1;
+ private bool hasRequiredDouble;
+ private double requiredDouble_;
+ public bool HasRequiredDouble {
+ get { return hasRequiredDouble; }
+ }
+ public double RequiredDouble {
+ get { return requiredDouble_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasRequiredDouble) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasRequiredDouble) {
+ output.WriteDouble(1, field_names[0], RequiredDouble);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRequiredDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(1, RequiredDouble);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRequiredDouble) {
+ RequiredDouble = other.RequiredDouble;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 9: {
+ result.hasRequiredDouble = input.ReadDouble(ref result.requiredDouble_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasRequiredDouble {
+ get { return result.hasRequiredDouble; }
+ }
+ public double RequiredDouble {
+ get { return result.RequiredDouble; }
+ set { SetRequiredDouble(value); }
+ }
+ public Builder SetRequiredDouble(double value) {
+ PrepareBuilder();
+ result.hasRequiredDouble = true;
+ result.requiredDouble_ = value;
+ return this;
+ }
+ public Builder ClearRequiredDouble() {
+ PrepareBuilder();
+ result.hasRequiredDouble = false;
+ result.requiredDouble_ = 0D;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int FooIntFieldNumber = 1;
+ private bool hasFooInt;
+ private int fooInt_;
+ public bool HasFooInt {
+ get { return hasFooInt; }
+ }
+ public int FooInt {
+ get { return fooInt_; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ private bool hasFooString;
+ private string fooString_ = "";
+ public bool HasFooString {
+ get { return hasFooString; }
+ }
+ public string FooString {
+ get { return fooString_; }
+ }
+
+ public const int FooMessageFieldNumber = 3;
+ private bool hasFooMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage fooMessage_;
+ public bool HasFooMessage {
+ get { return hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage FooMessage {
+ get { return fooMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasFooMessage) {
+ if (!FooMessage.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRequiredOneofFieldNames;
+ if (hasFooInt) {
+ output.WriteInt32(1, field_names[0], FooInt);
+ }
+ if (hasFooString) {
+ output.WriteString(2, field_names[2], FooString);
+ }
+ if (hasFooMessage) {
+ output.WriteMessage(3, field_names[1], FooMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasFooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (hasFooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (hasFooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, FooMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRequiredOneof ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequiredOneof ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequiredOneof MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequiredOneof prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredOneof, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequiredOneof cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequiredOneof result;
+
+ private TestRequiredOneof PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequiredOneof original = result;
+ result = new TestRequiredOneof();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequiredOneof MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Descriptor; }
+ }
+
+ public override TestRequiredOneof DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.DefaultInstance; }
+ }
+
+ public override TestRequiredOneof BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequiredOneof) {
+ return MergeFrom((TestRequiredOneof) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequiredOneof other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasFooInt) {
+ FooInt = other.FooInt;
+ }
+ if (other.HasFooString) {
+ FooString = other.FooString;
+ }
+ if (other.HasFooMessage) {
+ MergeFooMessage(other.FooMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRequiredOneofFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRequiredOneofFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasFooInt = input.ReadInt32(ref result.fooInt_);
+ break;
+ }
+ case 18: {
+ result.hasFooString = input.ReadString(ref result.fooString_);
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.CreateBuilder();
+ if (result.hasFooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ FooMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.hasFooInt; }
+ }
+ public int FooInt {
+ get { return result.FooInt; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.hasFooInt = true;
+ result.fooInt_ = value;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ result.hasFooInt = false;
+ result.fooInt_ = 0;
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.hasFooString; }
+ }
+ public string FooString {
+ get { return result.FooString; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooString = true;
+ result.fooString_ = value;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ result.hasFooString = false;
+ result.fooString_ = "";
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage FooMessage {
+ get { return result.FooMessage; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooMessage &&
+ result.fooMessage_ != global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance) {
+ result.fooMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.CreateBuilder(result.fooMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooMessage_ = value;
+ }
+ result.hasFooMessage = true;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ PrepareBuilder();
+ result.hasFooMessage = false;
+ result.fooMessage_ = null;
+ return this;
+ }
+ }
+ static TestRequiredOneof() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestPackedTypes : pb::GeneratedMessage<TestPackedTypes, TestPackedTypes.Builder> {
+ private TestPackedTypes() { }
+ private static readonly TestPackedTypes defaultInstance = new TestPackedTypes().MakeReadOnly();
+ private static readonly string[] _testPackedTypesFieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
+ private static readonly uint[] _testPackedTypesFieldTags = new uint[] { 818, 810, 826, 770, 778, 802, 722, 730, 786, 794, 754, 762, 738, 746 };
+ public static TestPackedTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestPackedTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestPackedTypes, TestPackedTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable; }
+ }
+
+ public const int PackedInt32FieldNumber = 90;
+ private int packedInt32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedInt32List {
+ get { return pbc::Lists.AsReadOnly(packedInt32_); }
+ }
+ public int PackedInt32Count {
+ get { return packedInt32_.Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return packedInt32_[index];
+ }
+
+ public const int PackedInt64FieldNumber = 91;
+ private int packedInt64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedInt64List {
+ get { return pbc::Lists.AsReadOnly(packedInt64_); }
+ }
+ public int PackedInt64Count {
+ get { return packedInt64_.Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return packedInt64_[index];
+ }
+
+ public const int PackedUint32FieldNumber = 92;
+ private int packedUint32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedUint32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> PackedUint32List {
+ get { return pbc::Lists.AsReadOnly(packedUint32_); }
+ }
+ public int PackedUint32Count {
+ get { return packedUint32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedUint32(int index) {
+ return packedUint32_[index];
+ }
+
+ public const int PackedUint64FieldNumber = 93;
+ private int packedUint64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> PackedUint64List {
+ get { return pbc::Lists.AsReadOnly(packedUint64_); }
+ }
+ public int PackedUint64Count {
+ get { return packedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedUint64(int index) {
+ return packedUint64_[index];
+ }
+
+ public const int PackedSint32FieldNumber = 94;
+ private int packedSint32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSint32List {
+ get { return pbc::Lists.AsReadOnly(packedSint32_); }
+ }
+ public int PackedSint32Count {
+ get { return packedSint32_.Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return packedSint32_[index];
+ }
+
+ public const int PackedSint64FieldNumber = 95;
+ private int packedSint64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSint64List {
+ get { return pbc::Lists.AsReadOnly(packedSint64_); }
+ }
+ public int PackedSint64Count {
+ get { return packedSint64_.Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return packedSint64_[index];
+ }
+
+ public const int PackedFixed32FieldNumber = 96;
+ private int packedFixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> PackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(packedFixed32_); }
+ }
+ public int PackedFixed32Count {
+ get { return packedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedFixed32(int index) {
+ return packedFixed32_[index];
+ }
+
+ public const int PackedFixed64FieldNumber = 97;
+ private int packedFixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> PackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(packedFixed64_); }
+ }
+ public int PackedFixed64Count {
+ get { return packedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedFixed64(int index) {
+ return packedFixed64_[index];
+ }
+
+ public const int PackedSfixed32FieldNumber = 98;
+ private int packedSfixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed32_); }
+ }
+ public int PackedSfixed32Count {
+ get { return packedSfixed32_.Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return packedSfixed32_[index];
+ }
+
+ public const int PackedSfixed64FieldNumber = 99;
+ private int packedSfixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed64_); }
+ }
+ public int PackedSfixed64Count {
+ get { return packedSfixed64_.Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return packedSfixed64_[index];
+ }
+
+ public const int PackedFloatFieldNumber = 100;
+ private int packedFloatMemoizedSerializedSize;
+ private pbc::PopsicleList<float> packedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> PackedFloatList {
+ get { return pbc::Lists.AsReadOnly(packedFloat_); }
+ }
+ public int PackedFloatCount {
+ get { return packedFloat_.Count; }
+ }
+ public float GetPackedFloat(int index) {
+ return packedFloat_[index];
+ }
+
+ public const int PackedDoubleFieldNumber = 101;
+ private int packedDoubleMemoizedSerializedSize;
+ private pbc::PopsicleList<double> packedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> PackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(packedDouble_); }
+ }
+ public int PackedDoubleCount {
+ get { return packedDouble_.Count; }
+ }
+ public double GetPackedDouble(int index) {
+ return packedDouble_[index];
+ }
+
+ public const int PackedBoolFieldNumber = 102;
+ private int packedBoolMemoizedSerializedSize;
+ private pbc::PopsicleList<bool> packedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> PackedBoolList {
+ get { return pbc::Lists.AsReadOnly(packedBool_); }
+ }
+ public int PackedBoolCount {
+ get { return packedBool_.Count; }
+ }
+ public bool GetPackedBool(int index) {
+ return packedBool_[index];
+ }
+
+ public const int PackedEnumFieldNumber = 103;
+ private int packedEnumMemoizedSerializedSize;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> packedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> PackedEnumList {
+ get { return pbc::Lists.AsReadOnly(packedEnum_); }
+ }
+ public int PackedEnumCount {
+ get { return packedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetPackedEnum(int index) {
+ return packedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testPackedTypesFieldNames;
+ if (packedInt32_.Count > 0) {
+ output.WritePackedInt32Array(90, field_names[6], packedInt32MemoizedSerializedSize, packedInt32_);
+ }
+ if (packedInt64_.Count > 0) {
+ output.WritePackedInt64Array(91, field_names[7], packedInt64MemoizedSerializedSize, packedInt64_);
+ }
+ if (packedUint32_.Count > 0) {
+ output.WritePackedUInt32Array(92, field_names[12], packedUint32MemoizedSerializedSize, packedUint32_);
+ }
+ if (packedUint64_.Count > 0) {
+ output.WritePackedUInt64Array(93, field_names[13], packedUint64MemoizedSerializedSize, packedUint64_);
+ }
+ if (packedSint32_.Count > 0) {
+ output.WritePackedSInt32Array(94, field_names[10], packedSint32MemoizedSerializedSize, packedSint32_);
+ }
+ if (packedSint64_.Count > 0) {
+ output.WritePackedSInt64Array(95, field_names[11], packedSint64MemoizedSerializedSize, packedSint64_);
+ }
+ if (packedFixed32_.Count > 0) {
+ output.WritePackedFixed32Array(96, field_names[3], packedFixed32MemoizedSerializedSize, packedFixed32_);
+ }
+ if (packedFixed64_.Count > 0) {
+ output.WritePackedFixed64Array(97, field_names[4], packedFixed64MemoizedSerializedSize, packedFixed64_);
+ }
+ if (packedSfixed32_.Count > 0) {
+ output.WritePackedSFixed32Array(98, field_names[8], packedSfixed32MemoizedSerializedSize, packedSfixed32_);
+ }
+ if (packedSfixed64_.Count > 0) {
+ output.WritePackedSFixed64Array(99, field_names[9], packedSfixed64MemoizedSerializedSize, packedSfixed64_);
+ }
+ if (packedFloat_.Count > 0) {
+ output.WritePackedFloatArray(100, field_names[5], packedFloatMemoizedSerializedSize, packedFloat_);
+ }
+ if (packedDouble_.Count > 0) {
+ output.WritePackedDoubleArray(101, field_names[1], packedDoubleMemoizedSerializedSize, packedDouble_);
+ }
+ if (packedBool_.Count > 0) {
+ output.WritePackedBoolArray(102, field_names[0], packedBoolMemoizedSerializedSize, packedBool_);
+ }
+ if (packedEnum_.Count > 0) {
+ output.WritePackedEnumArray(103, field_names[2], packedEnumMemoizedSerializedSize, packedEnum_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in PackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in PackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in PackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFixed32_.Count;
+ size += dataSize;
+ if (packedFixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedFixed64_.Count;
+ size += dataSize;
+ if (packedFixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedSfixed32_.Count;
+ size += dataSize;
+ if (packedSfixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedSfixed64_.Count;
+ size += dataSize;
+ if (packedSfixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFloat_.Count;
+ size += dataSize;
+ if (packedFloat_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFloatMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedDouble_.Count;
+ size += dataSize;
+ if (packedDouble_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedDoubleMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * packedBool_.Count;
+ size += dataSize;
+ if (packedBool_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedBoolMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ if (packedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in packedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2;
+ size += pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ packedEnumMemoizedSerializedSize = dataSize;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestPackedTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestPackedTypes MakeReadOnly() {
+ packedInt32_.MakeReadOnly();
+ packedInt64_.MakeReadOnly();
+ packedUint32_.MakeReadOnly();
+ packedUint64_.MakeReadOnly();
+ packedSint32_.MakeReadOnly();
+ packedSint64_.MakeReadOnly();
+ packedFixed32_.MakeReadOnly();
+ packedFixed64_.MakeReadOnly();
+ packedSfixed32_.MakeReadOnly();
+ packedSfixed64_.MakeReadOnly();
+ packedFloat_.MakeReadOnly();
+ packedDouble_.MakeReadOnly();
+ packedBool_.MakeReadOnly();
+ packedEnum_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestPackedTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestPackedTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestPackedTypes result;
+
+ private TestPackedTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestPackedTypes original = result;
+ result = new TestPackedTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestPackedTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Descriptor; }
+ }
+
+ public override TestPackedTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.DefaultInstance; }
+ }
+
+ public override TestPackedTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestPackedTypes) {
+ return MergeFrom((TestPackedTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.packedInt32_.Count != 0) {
+ result.packedInt32_.Add(other.packedInt32_);
+ }
+ if (other.packedInt64_.Count != 0) {
+ result.packedInt64_.Add(other.packedInt64_);
+ }
+ if (other.packedUint32_.Count != 0) {
+ result.packedUint32_.Add(other.packedUint32_);
+ }
+ if (other.packedUint64_.Count != 0) {
+ result.packedUint64_.Add(other.packedUint64_);
+ }
+ if (other.packedSint32_.Count != 0) {
+ result.packedSint32_.Add(other.packedSint32_);
+ }
+ if (other.packedSint64_.Count != 0) {
+ result.packedSint64_.Add(other.packedSint64_);
+ }
+ if (other.packedFixed32_.Count != 0) {
+ result.packedFixed32_.Add(other.packedFixed32_);
+ }
+ if (other.packedFixed64_.Count != 0) {
+ result.packedFixed64_.Add(other.packedFixed64_);
+ }
+ if (other.packedSfixed32_.Count != 0) {
+ result.packedSfixed32_.Add(other.packedSfixed32_);
+ }
+ if (other.packedSfixed64_.Count != 0) {
+ result.packedSfixed64_.Add(other.packedSfixed64_);
+ }
+ if (other.packedFloat_.Count != 0) {
+ result.packedFloat_.Add(other.packedFloat_);
+ }
+ if (other.packedDouble_.Count != 0) {
+ result.packedDouble_.Add(other.packedDouble_);
+ }
+ if (other.packedBool_.Count != 0) {
+ result.packedBool_.Add(other.packedBool_);
+ }
+ if (other.packedEnum_.Count != 0) {
+ result.packedEnum_.Add(other.packedEnum_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testPackedTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testPackedTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 722:
+ case 720: {
+ input.ReadInt32Array(tag, field_name, result.packedInt32_);
+ break;
+ }
+ case 730:
+ case 728: {
+ input.ReadInt64Array(tag, field_name, result.packedInt64_);
+ break;
+ }
+ case 738:
+ case 736: {
+ input.ReadUInt32Array(tag, field_name, result.packedUint32_);
+ break;
+ }
+ case 746:
+ case 744: {
+ input.ReadUInt64Array(tag, field_name, result.packedUint64_);
+ break;
+ }
+ case 754:
+ case 752: {
+ input.ReadSInt32Array(tag, field_name, result.packedSint32_);
+ break;
+ }
+ case 762:
+ case 760: {
+ input.ReadSInt64Array(tag, field_name, result.packedSint64_);
+ break;
+ }
+ case 770:
+ case 773: {
+ input.ReadFixed32Array(tag, field_name, result.packedFixed32_);
+ break;
+ }
+ case 778:
+ case 777: {
+ input.ReadFixed64Array(tag, field_name, result.packedFixed64_);
+ break;
+ }
+ case 786:
+ case 789: {
+ input.ReadSFixed32Array(tag, field_name, result.packedSfixed32_);
+ break;
+ }
+ case 794:
+ case 793: {
+ input.ReadSFixed64Array(tag, field_name, result.packedSfixed64_);
+ break;
+ }
+ case 802:
+ case 805: {
+ input.ReadFloatArray(tag, field_name, result.packedFloat_);
+ break;
+ }
+ case 810:
+ case 809: {
+ input.ReadDoubleArray(tag, field_name, result.packedDouble_);
+ break;
+ }
+ case 818:
+ case 816: {
+ input.ReadBoolArray(tag, field_name, result.packedBool_);
+ break;
+ }
+ case 826:
+ case 824: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.packedEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(103, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> PackedInt32List {
+ get { return PrepareBuilder().packedInt32_; }
+ }
+ public int PackedInt32Count {
+ get { return result.PackedInt32Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return result.GetPackedInt32(index);
+ }
+ public Builder SetPackedInt32(int index, int value) {
+ PrepareBuilder();
+ result.packedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt32(int value) {
+ PrepareBuilder();
+ result.packedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedInt32() {
+ PrepareBuilder();
+ result.packedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedInt64List {
+ get { return PrepareBuilder().packedInt64_; }
+ }
+ public int PackedInt64Count {
+ get { return result.PackedInt64Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return result.GetPackedInt64(index);
+ }
+ public Builder SetPackedInt64(int index, long value) {
+ PrepareBuilder();
+ result.packedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt64(long value) {
+ PrepareBuilder();
+ result.packedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedInt64() {
+ PrepareBuilder();
+ result.packedInt64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> PackedUint32List {
+ get { return PrepareBuilder().packedUint32_; }
+ }
+ public int PackedUint32Count {
+ get { return result.PackedUint32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedUint32(int index) {
+ return result.GetPackedUint32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.packedUint32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedUint32(uint value) {
+ PrepareBuilder();
+ result.packedUint32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.packedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedUint32() {
+ PrepareBuilder();
+ result.packedUint32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> PackedUint64List {
+ get { return PrepareBuilder().packedUint64_; }
+ }
+ public int PackedUint64Count {
+ get { return result.PackedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedUint64(int index) {
+ return result.GetPackedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.packedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedUint64(ulong value) {
+ PrepareBuilder();
+ result.packedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.packedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedUint64() {
+ PrepareBuilder();
+ result.packedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSint32List {
+ get { return PrepareBuilder().packedSint32_; }
+ }
+ public int PackedSint32Count {
+ get { return result.PackedSint32Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return result.GetPackedSint32(index);
+ }
+ public Builder SetPackedSint32(int index, int value) {
+ PrepareBuilder();
+ result.packedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint32(int value) {
+ PrepareBuilder();
+ result.packedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSint32() {
+ PrepareBuilder();
+ result.packedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSint64List {
+ get { return PrepareBuilder().packedSint64_; }
+ }
+ public int PackedSint64Count {
+ get { return result.PackedSint64Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return result.GetPackedSint64(index);
+ }
+ public Builder SetPackedSint64(int index, long value) {
+ PrepareBuilder();
+ result.packedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint64(long value) {
+ PrepareBuilder();
+ result.packedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSint64() {
+ PrepareBuilder();
+ result.packedSint64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> PackedFixed32List {
+ get { return PrepareBuilder().packedFixed32_; }
+ }
+ public int PackedFixed32Count {
+ get { return result.PackedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedFixed32(int index) {
+ return result.GetPackedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.packedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedFixed32(uint value) {
+ PrepareBuilder();
+ result.packedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.packedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFixed32() {
+ PrepareBuilder();
+ result.packedFixed32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> PackedFixed64List {
+ get { return PrepareBuilder().packedFixed64_; }
+ }
+ public int PackedFixed64Count {
+ get { return result.PackedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedFixed64(int index) {
+ return result.GetPackedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.packedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedFixed64(ulong value) {
+ PrepareBuilder();
+ result.packedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.packedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFixed64() {
+ PrepareBuilder();
+ result.packedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSfixed32List {
+ get { return PrepareBuilder().packedSfixed32_; }
+ }
+ public int PackedSfixed32Count {
+ get { return result.PackedSfixed32Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return result.GetPackedSfixed32(index);
+ }
+ public Builder SetPackedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.packedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed32(int value) {
+ PrepareBuilder();
+ result.packedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSfixed32() {
+ PrepareBuilder();
+ result.packedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSfixed64List {
+ get { return PrepareBuilder().packedSfixed64_; }
+ }
+ public int PackedSfixed64Count {
+ get { return result.PackedSfixed64Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return result.GetPackedSfixed64(index);
+ }
+ public Builder SetPackedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.packedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed64(long value) {
+ PrepareBuilder();
+ result.packedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSfixed64() {
+ PrepareBuilder();
+ result.packedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> PackedFloatList {
+ get { return PrepareBuilder().packedFloat_; }
+ }
+ public int PackedFloatCount {
+ get { return result.PackedFloatCount; }
+ }
+ public float GetPackedFloat(int index) {
+ return result.GetPackedFloat(index);
+ }
+ public Builder SetPackedFloat(int index, float value) {
+ PrepareBuilder();
+ result.packedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFloat(float value) {
+ PrepareBuilder();
+ result.packedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.packedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFloat() {
+ PrepareBuilder();
+ result.packedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> PackedDoubleList {
+ get { return PrepareBuilder().packedDouble_; }
+ }
+ public int PackedDoubleCount {
+ get { return result.PackedDoubleCount; }
+ }
+ public double GetPackedDouble(int index) {
+ return result.GetPackedDouble(index);
+ }
+ public Builder SetPackedDouble(int index, double value) {
+ PrepareBuilder();
+ result.packedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddPackedDouble(double value) {
+ PrepareBuilder();
+ result.packedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.packedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedDouble() {
+ PrepareBuilder();
+ result.packedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> PackedBoolList {
+ get { return PrepareBuilder().packedBool_; }
+ }
+ public int PackedBoolCount {
+ get { return result.PackedBoolCount; }
+ }
+ public bool GetPackedBool(int index) {
+ return result.GetPackedBool(index);
+ }
+ public Builder SetPackedBool(int index, bool value) {
+ PrepareBuilder();
+ result.packedBool_[index] = value;
+ return this;
+ }
+ public Builder AddPackedBool(bool value) {
+ PrepareBuilder();
+ result.packedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.packedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedBool() {
+ PrepareBuilder();
+ result.packedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> PackedEnumList {
+ get { return PrepareBuilder().packedEnum_; }
+ }
+ public int PackedEnumCount {
+ get { return result.PackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetPackedEnum(int index) {
+ return result.GetPackedEnum(index);
+ }
+ public Builder SetPackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.packedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddPackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.packedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.packedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedEnum() {
+ PrepareBuilder();
+ result.packedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestPackedTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestUnpackedTypes : pb::GeneratedMessage<TestUnpackedTypes, TestUnpackedTypes.Builder> {
+ private TestUnpackedTypes() { }
+ private static readonly TestUnpackedTypes defaultInstance = new TestUnpackedTypes().MakeReadOnly();
+ private static readonly string[] _testUnpackedTypesFieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
+ private static readonly uint[] _testUnpackedTypesFieldTags = new uint[] { 816, 809, 824, 773, 777, 805, 720, 728, 789, 793, 752, 760, 736, 744 };
+ public static TestUnpackedTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestUnpackedTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestUnpackedTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestUnpackedTypes, TestUnpackedTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable; }
+ }
+
+ public const int UnpackedInt32FieldNumber = 90;
+ private pbc::PopsicleList<int> unpackedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedInt32List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt32_); }
+ }
+ public int UnpackedInt32Count {
+ get { return unpackedInt32_.Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return unpackedInt32_[index];
+ }
+
+ public const int UnpackedInt64FieldNumber = 91;
+ private pbc::PopsicleList<long> unpackedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedInt64List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt64_); }
+ }
+ public int UnpackedInt64Count {
+ get { return unpackedInt64_.Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return unpackedInt64_[index];
+ }
+
+ public const int UnpackedUint32FieldNumber = 92;
+ private pbc::PopsicleList<uint> unpackedUint32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> UnpackedUint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint32_); }
+ }
+ public int UnpackedUint32Count {
+ get { return unpackedUint32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedUint32(int index) {
+ return unpackedUint32_[index];
+ }
+
+ public const int UnpackedUint64FieldNumber = 93;
+ private pbc::PopsicleList<ulong> unpackedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> UnpackedUint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint64_); }
+ }
+ public int UnpackedUint64Count {
+ get { return unpackedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedUint64(int index) {
+ return unpackedUint64_[index];
+ }
+
+ public const int UnpackedSint32FieldNumber = 94;
+ private pbc::PopsicleList<int> unpackedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint32_); }
+ }
+ public int UnpackedSint32Count {
+ get { return unpackedSint32_.Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return unpackedSint32_[index];
+ }
+
+ public const int UnpackedSint64FieldNumber = 95;
+ private pbc::PopsicleList<long> unpackedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint64_); }
+ }
+ public int UnpackedSint64Count {
+ get { return unpackedSint64_.Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return unpackedSint64_[index];
+ }
+
+ public const int UnpackedFixed32FieldNumber = 96;
+ private pbc::PopsicleList<uint> unpackedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> UnpackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed32_); }
+ }
+ public int UnpackedFixed32Count {
+ get { return unpackedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedFixed32(int index) {
+ return unpackedFixed32_[index];
+ }
+
+ public const int UnpackedFixed64FieldNumber = 97;
+ private pbc::PopsicleList<ulong> unpackedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> UnpackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed64_); }
+ }
+ public int UnpackedFixed64Count {
+ get { return unpackedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedFixed64(int index) {
+ return unpackedFixed64_[index];
+ }
+
+ public const int UnpackedSfixed32FieldNumber = 98;
+ private pbc::PopsicleList<int> unpackedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed32_); }
+ }
+ public int UnpackedSfixed32Count {
+ get { return unpackedSfixed32_.Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return unpackedSfixed32_[index];
+ }
+
+ public const int UnpackedSfixed64FieldNumber = 99;
+ private pbc::PopsicleList<long> unpackedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed64_); }
+ }
+ public int UnpackedSfixed64Count {
+ get { return unpackedSfixed64_.Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return unpackedSfixed64_[index];
+ }
+
+ public const int UnpackedFloatFieldNumber = 100;
+ private pbc::PopsicleList<float> unpackedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> UnpackedFloatList {
+ get { return pbc::Lists.AsReadOnly(unpackedFloat_); }
+ }
+ public int UnpackedFloatCount {
+ get { return unpackedFloat_.Count; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return unpackedFloat_[index];
+ }
+
+ public const int UnpackedDoubleFieldNumber = 101;
+ private pbc::PopsicleList<double> unpackedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> UnpackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(unpackedDouble_); }
+ }
+ public int UnpackedDoubleCount {
+ get { return unpackedDouble_.Count; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return unpackedDouble_[index];
+ }
+
+ public const int UnpackedBoolFieldNumber = 102;
+ private pbc::PopsicleList<bool> unpackedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> UnpackedBoolList {
+ get { return pbc::Lists.AsReadOnly(unpackedBool_); }
+ }
+ public int UnpackedBoolCount {
+ get { return unpackedBool_.Count; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return unpackedBool_[index];
+ }
+
+ public const int UnpackedEnumFieldNumber = 103;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> unpackedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> UnpackedEnumList {
+ get { return pbc::Lists.AsReadOnly(unpackedEnum_); }
+ }
+ public int UnpackedEnumCount {
+ get { return unpackedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetUnpackedEnum(int index) {
+ return unpackedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testUnpackedTypesFieldNames;
+ if (unpackedInt32_.Count > 0) {
+ output.WriteInt32Array(90, field_names[6], unpackedInt32_);
+ }
+ if (unpackedInt64_.Count > 0) {
+ output.WriteInt64Array(91, field_names[7], unpackedInt64_);
+ }
+ if (unpackedUint32_.Count > 0) {
+ output.WriteUInt32Array(92, field_names[12], unpackedUint32_);
+ }
+ if (unpackedUint64_.Count > 0) {
+ output.WriteUInt64Array(93, field_names[13], unpackedUint64_);
+ }
+ if (unpackedSint32_.Count > 0) {
+ output.WriteSInt32Array(94, field_names[10], unpackedSint32_);
+ }
+ if (unpackedSint64_.Count > 0) {
+ output.WriteSInt64Array(95, field_names[11], unpackedSint64_);
+ }
+ if (unpackedFixed32_.Count > 0) {
+ output.WriteFixed32Array(96, field_names[3], unpackedFixed32_);
+ }
+ if (unpackedFixed64_.Count > 0) {
+ output.WriteFixed64Array(97, field_names[4], unpackedFixed64_);
+ }
+ if (unpackedSfixed32_.Count > 0) {
+ output.WriteSFixed32Array(98, field_names[8], unpackedSfixed32_);
+ }
+ if (unpackedSfixed64_.Count > 0) {
+ output.WriteSFixed64Array(99, field_names[9], unpackedSfixed64_);
+ }
+ if (unpackedFloat_.Count > 0) {
+ output.WriteFloatArray(100, field_names[5], unpackedFloat_);
+ }
+ if (unpackedDouble_.Count > 0) {
+ output.WriteDoubleArray(101, field_names[1], unpackedDouble_);
+ }
+ if (unpackedBool_.Count > 0) {
+ output.WriteBoolArray(102, field_names[0], unpackedBool_);
+ }
+ if (unpackedEnum_.Count > 0) {
+ output.WriteEnumArray(103, field_names[2], unpackedEnum_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in UnpackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in UnpackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedFixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFloat_.Count;
+ size += dataSize;
+ size += 2 * unpackedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedDouble_.Count;
+ size += dataSize;
+ size += 2 * unpackedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * unpackedBool_.Count;
+ size += dataSize;
+ size += 2 * unpackedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ if (unpackedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in unpackedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * unpackedEnum_.Count;
+ }
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestUnpackedTypes MakeReadOnly() {
+ unpackedInt32_.MakeReadOnly();
+ unpackedInt64_.MakeReadOnly();
+ unpackedUint32_.MakeReadOnly();
+ unpackedUint64_.MakeReadOnly();
+ unpackedSint32_.MakeReadOnly();
+ unpackedSint64_.MakeReadOnly();
+ unpackedFixed32_.MakeReadOnly();
+ unpackedFixed64_.MakeReadOnly();
+ unpackedSfixed32_.MakeReadOnly();
+ unpackedSfixed64_.MakeReadOnly();
+ unpackedFloat_.MakeReadOnly();
+ unpackedDouble_.MakeReadOnly();
+ unpackedBool_.MakeReadOnly();
+ unpackedEnum_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestUnpackedTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestUnpackedTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestUnpackedTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestUnpackedTypes result;
+
+ private TestUnpackedTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestUnpackedTypes original = result;
+ result = new TestUnpackedTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestUnpackedTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Descriptor; }
+ }
+
+ public override TestUnpackedTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.DefaultInstance; }
+ }
+
+ public override TestUnpackedTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestUnpackedTypes) {
+ return MergeFrom((TestUnpackedTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestUnpackedTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.unpackedInt32_.Count != 0) {
+ result.unpackedInt32_.Add(other.unpackedInt32_);
+ }
+ if (other.unpackedInt64_.Count != 0) {
+ result.unpackedInt64_.Add(other.unpackedInt64_);
+ }
+ if (other.unpackedUint32_.Count != 0) {
+ result.unpackedUint32_.Add(other.unpackedUint32_);
+ }
+ if (other.unpackedUint64_.Count != 0) {
+ result.unpackedUint64_.Add(other.unpackedUint64_);
+ }
+ if (other.unpackedSint32_.Count != 0) {
+ result.unpackedSint32_.Add(other.unpackedSint32_);
+ }
+ if (other.unpackedSint64_.Count != 0) {
+ result.unpackedSint64_.Add(other.unpackedSint64_);
+ }
+ if (other.unpackedFixed32_.Count != 0) {
+ result.unpackedFixed32_.Add(other.unpackedFixed32_);
+ }
+ if (other.unpackedFixed64_.Count != 0) {
+ result.unpackedFixed64_.Add(other.unpackedFixed64_);
+ }
+ if (other.unpackedSfixed32_.Count != 0) {
+ result.unpackedSfixed32_.Add(other.unpackedSfixed32_);
+ }
+ if (other.unpackedSfixed64_.Count != 0) {
+ result.unpackedSfixed64_.Add(other.unpackedSfixed64_);
+ }
+ if (other.unpackedFloat_.Count != 0) {
+ result.unpackedFloat_.Add(other.unpackedFloat_);
+ }
+ if (other.unpackedDouble_.Count != 0) {
+ result.unpackedDouble_.Add(other.unpackedDouble_);
+ }
+ if (other.unpackedBool_.Count != 0) {
+ result.unpackedBool_.Add(other.unpackedBool_);
+ }
+ if (other.unpackedEnum_.Count != 0) {
+ result.unpackedEnum_.Add(other.unpackedEnum_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testUnpackedTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testUnpackedTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 722:
+ case 720: {
+ input.ReadInt32Array(tag, field_name, result.unpackedInt32_);
+ break;
+ }
+ case 730:
+ case 728: {
+ input.ReadInt64Array(tag, field_name, result.unpackedInt64_);
+ break;
+ }
+ case 738:
+ case 736: {
+ input.ReadUInt32Array(tag, field_name, result.unpackedUint32_);
+ break;
+ }
+ case 746:
+ case 744: {
+ input.ReadUInt64Array(tag, field_name, result.unpackedUint64_);
+ break;
+ }
+ case 754:
+ case 752: {
+ input.ReadSInt32Array(tag, field_name, result.unpackedSint32_);
+ break;
+ }
+ case 762:
+ case 760: {
+ input.ReadSInt64Array(tag, field_name, result.unpackedSint64_);
+ break;
+ }
+ case 770:
+ case 773: {
+ input.ReadFixed32Array(tag, field_name, result.unpackedFixed32_);
+ break;
+ }
+ case 778:
+ case 777: {
+ input.ReadFixed64Array(tag, field_name, result.unpackedFixed64_);
+ break;
+ }
+ case 786:
+ case 789: {
+ input.ReadSFixed32Array(tag, field_name, result.unpackedSfixed32_);
+ break;
+ }
+ case 794:
+ case 793: {
+ input.ReadSFixed64Array(tag, field_name, result.unpackedSfixed64_);
+ break;
+ }
+ case 802:
+ case 805: {
+ input.ReadFloatArray(tag, field_name, result.unpackedFloat_);
+ break;
+ }
+ case 810:
+ case 809: {
+ input.ReadDoubleArray(tag, field_name, result.unpackedDouble_);
+ break;
+ }
+ case 818:
+ case 816: {
+ input.ReadBoolArray(tag, field_name, result.unpackedBool_);
+ break;
+ }
+ case 826:
+ case 824: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.unpackedEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(103, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> UnpackedInt32List {
+ get { return PrepareBuilder().unpackedInt32_; }
+ }
+ public int UnpackedInt32Count {
+ get { return result.UnpackedInt32Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return result.GetUnpackedInt32(index);
+ }
+ public Builder SetUnpackedInt32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt32(int value) {
+ PrepareBuilder();
+ result.unpackedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedInt32() {
+ PrepareBuilder();
+ result.unpackedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedInt64List {
+ get { return PrepareBuilder().unpackedInt64_; }
+ }
+ public int UnpackedInt64Count {
+ get { return result.UnpackedInt64Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return result.GetUnpackedInt64(index);
+ }
+ public Builder SetUnpackedInt64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt64(long value) {
+ PrepareBuilder();
+ result.unpackedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedInt64() {
+ PrepareBuilder();
+ result.unpackedInt64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> UnpackedUint32List {
+ get { return PrepareBuilder().unpackedUint32_; }
+ }
+ public int UnpackedUint32Count {
+ get { return result.UnpackedUint32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedUint32(int index) {
+ return result.GetUnpackedUint32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.unpackedUint32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedUint32(uint value) {
+ PrepareBuilder();
+ result.unpackedUint32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.unpackedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedUint32() {
+ PrepareBuilder();
+ result.unpackedUint32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> UnpackedUint64List {
+ get { return PrepareBuilder().unpackedUint64_; }
+ }
+ public int UnpackedUint64Count {
+ get { return result.UnpackedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedUint64(int index) {
+ return result.GetUnpackedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.unpackedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedUint64(ulong value) {
+ PrepareBuilder();
+ result.unpackedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.unpackedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedUint64() {
+ PrepareBuilder();
+ result.unpackedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSint32List {
+ get { return PrepareBuilder().unpackedSint32_; }
+ }
+ public int UnpackedSint32Count {
+ get { return result.UnpackedSint32Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return result.GetUnpackedSint32(index);
+ }
+ public Builder SetUnpackedSint32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint32(int value) {
+ PrepareBuilder();
+ result.unpackedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSint32() {
+ PrepareBuilder();
+ result.unpackedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSint64List {
+ get { return PrepareBuilder().unpackedSint64_; }
+ }
+ public int UnpackedSint64Count {
+ get { return result.UnpackedSint64Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return result.GetUnpackedSint64(index);
+ }
+ public Builder SetUnpackedSint64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint64(long value) {
+ PrepareBuilder();
+ result.unpackedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSint64() {
+ PrepareBuilder();
+ result.unpackedSint64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> UnpackedFixed32List {
+ get { return PrepareBuilder().unpackedFixed32_; }
+ }
+ public int UnpackedFixed32Count {
+ get { return result.UnpackedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedFixed32(int index) {
+ return result.GetUnpackedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.unpackedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedFixed32(uint value) {
+ PrepareBuilder();
+ result.unpackedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.unpackedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFixed32() {
+ PrepareBuilder();
+ result.unpackedFixed32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> UnpackedFixed64List {
+ get { return PrepareBuilder().unpackedFixed64_; }
+ }
+ public int UnpackedFixed64Count {
+ get { return result.UnpackedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedFixed64(int index) {
+ return result.GetUnpackedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.unpackedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedFixed64(ulong value) {
+ PrepareBuilder();
+ result.unpackedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.unpackedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFixed64() {
+ PrepareBuilder();
+ result.unpackedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSfixed32List {
+ get { return PrepareBuilder().unpackedSfixed32_; }
+ }
+ public int UnpackedSfixed32Count {
+ get { return result.UnpackedSfixed32Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return result.GetUnpackedSfixed32(index);
+ }
+ public Builder SetUnpackedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed32(int value) {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed32() {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSfixed64List {
+ get { return PrepareBuilder().unpackedSfixed64_; }
+ }
+ public int UnpackedSfixed64Count {
+ get { return result.UnpackedSfixed64Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return result.GetUnpackedSfixed64(index);
+ }
+ public Builder SetUnpackedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed64(long value) {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed64() {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> UnpackedFloatList {
+ get { return PrepareBuilder().unpackedFloat_; }
+ }
+ public int UnpackedFloatCount {
+ get { return result.UnpackedFloatCount; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return result.GetUnpackedFloat(index);
+ }
+ public Builder SetUnpackedFloat(int index, float value) {
+ PrepareBuilder();
+ result.unpackedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFloat(float value) {
+ PrepareBuilder();
+ result.unpackedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.unpackedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFloat() {
+ PrepareBuilder();
+ result.unpackedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> UnpackedDoubleList {
+ get { return PrepareBuilder().unpackedDouble_; }
+ }
+ public int UnpackedDoubleCount {
+ get { return result.UnpackedDoubleCount; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return result.GetUnpackedDouble(index);
+ }
+ public Builder SetUnpackedDouble(int index, double value) {
+ PrepareBuilder();
+ result.unpackedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedDouble(double value) {
+ PrepareBuilder();
+ result.unpackedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.unpackedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedDouble() {
+ PrepareBuilder();
+ result.unpackedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> UnpackedBoolList {
+ get { return PrepareBuilder().unpackedBool_; }
+ }
+ public int UnpackedBoolCount {
+ get { return result.UnpackedBoolCount; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return result.GetUnpackedBool(index);
+ }
+ public Builder SetUnpackedBool(int index, bool value) {
+ PrepareBuilder();
+ result.unpackedBool_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedBool(bool value) {
+ PrepareBuilder();
+ result.unpackedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.unpackedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedBool() {
+ PrepareBuilder();
+ result.unpackedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> UnpackedEnumList {
+ get { return PrepareBuilder().unpackedEnum_; }
+ }
+ public int UnpackedEnumCount {
+ get { return result.UnpackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetUnpackedEnum(int index) {
+ return result.GetUnpackedEnum(index);
+ }
+ public Builder SetUnpackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.unpackedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.unpackedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.unpackedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedEnum() {
+ PrepareBuilder();
+ result.unpackedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestUnpackedTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestPackedExtensions : pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder> {
+ private TestPackedExtensions() { }
+ private static readonly TestPackedExtensions defaultInstance = new TestPackedExtensions().MakeReadOnly();
+ private static readonly string[] _testPackedExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testPackedExtensionsFieldTags = new uint[] { };
+ public static TestPackedExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestPackedExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestPackedExtensions, TestPackedExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testPackedExtensionsFieldNames;
+ pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestPackedExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestPackedExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestPackedExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestPackedExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestPackedExtensions result;
+
+ private TestPackedExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestPackedExtensions original = result;
+ result = new TestPackedExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestPackedExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Descriptor; }
+ }
+
+ public override TestPackedExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.DefaultInstance; }
+ }
+
+ public override TestPackedExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestPackedExtensions) {
+ return MergeFrom((TestPackedExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testPackedExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testPackedExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestPackedExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestUnpackedExtensions : pb::ExtendableMessage<TestUnpackedExtensions, TestUnpackedExtensions.Builder> {
+ private TestUnpackedExtensions() { }
+ private static readonly TestUnpackedExtensions defaultInstance = new TestUnpackedExtensions().MakeReadOnly();
+ private static readonly string[] _testUnpackedExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testUnpackedExtensionsFieldTags = new uint[] { };
+ public static TestUnpackedExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestUnpackedExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestUnpackedExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestUnpackedExtensions, TestUnpackedExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testUnpackedExtensionsFieldNames;
+ pb::ExtendableMessage<TestUnpackedExtensions, TestUnpackedExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestUnpackedExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestUnpackedExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestUnpackedExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestUnpackedExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestUnpackedExtensions result;
+
+ private TestUnpackedExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestUnpackedExtensions original = result;
+ result = new TestUnpackedExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestUnpackedExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.Descriptor; }
+ }
+
+ public override TestUnpackedExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.DefaultInstance; }
+ }
+
+ public override TestUnpackedExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestUnpackedExtensions) {
+ return MergeFrom((TestUnpackedExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestUnpackedExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testUnpackedExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testUnpackedExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestUnpackedExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestDynamicExtensions : pb::GeneratedMessage<TestDynamicExtensions, TestDynamicExtensions.Builder> {
+ private TestDynamicExtensions() { }
+ private static readonly TestDynamicExtensions defaultInstance = new TestDynamicExtensions().MakeReadOnly();
+ private static readonly string[] _testDynamicExtensionsFieldNames = new string[] { "dynamic_enum_extension", "dynamic_message_extension", "enum_extension", "message_extension", "packed_extension", "repeated_extension", "scalar_extension" };
+ private static readonly uint[] _testDynamicExtensionsFieldTags = new uint[] { 16016, 16034, 16008, 16026, 16050, 16042, 16005 };
+ public static TestDynamicExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDynamicExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestDynamicExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDynamicExtensions, TestDynamicExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum DynamicEnumType {
+ DYNAMIC_FOO = 2200,
+ DYNAMIC_BAR = 2201,
+ DYNAMIC_BAZ = 2202,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class DynamicMessageType : pb::GeneratedMessage<DynamicMessageType, DynamicMessageType.Builder> {
+ private DynamicMessageType() { }
+ private static readonly DynamicMessageType defaultInstance = new DynamicMessageType().MakeReadOnly();
+ private static readonly string[] _dynamicMessageTypeFieldNames = new string[] { "dynamic_field" };
+ private static readonly uint[] _dynamicMessageTypeFieldTags = new uint[] { 16800 };
+ public static DynamicMessageType DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DynamicMessageType DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override DynamicMessageType ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DynamicMessageType, DynamicMessageType.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable; }
+ }
+
+ public const int DynamicFieldFieldNumber = 2100;
+ private bool hasDynamicField;
+ private int dynamicField_;
+ public bool HasDynamicField {
+ get { return hasDynamicField; }
+ }
+ public int DynamicField {
+ get { return dynamicField_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _dynamicMessageTypeFieldNames;
+ if (hasDynamicField) {
+ output.WriteInt32(2100, field_names[0], DynamicField);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasDynamicField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2100, DynamicField);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static DynamicMessageType ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DynamicMessageType ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private DynamicMessageType MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DynamicMessageType prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<DynamicMessageType, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(DynamicMessageType cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private DynamicMessageType result;
+
+ private DynamicMessageType PrepareBuilder() {
+ if (resultIsReadOnly) {
+ DynamicMessageType original = result;
+ result = new DynamicMessageType();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override DynamicMessageType MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Descriptor; }
+ }
+
+ public override DynamicMessageType DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance; }
+ }
+
+ public override DynamicMessageType BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DynamicMessageType) {
+ return MergeFrom((DynamicMessageType) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DynamicMessageType other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasDynamicField) {
+ DynamicField = other.DynamicField;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_dynamicMessageTypeFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _dynamicMessageTypeFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 16800: {
+ result.hasDynamicField = input.ReadInt32(ref result.dynamicField_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasDynamicField {
+ get { return result.hasDynamicField; }
+ }
+ public int DynamicField {
+ get { return result.DynamicField; }
+ set { SetDynamicField(value); }
+ }
+ public Builder SetDynamicField(int value) {
+ PrepareBuilder();
+ result.hasDynamicField = true;
+ result.dynamicField_ = value;
+ return this;
+ }
+ public Builder ClearDynamicField() {
+ PrepareBuilder();
+ result.hasDynamicField = false;
+ result.dynamicField_ = 0;
+ return this;
+ }
+ }
+ static DynamicMessageType() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int ScalarExtensionFieldNumber = 2000;
+ private bool hasScalarExtension;
+ private uint scalarExtension_;
+ public bool HasScalarExtension {
+ get { return hasScalarExtension; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint ScalarExtension {
+ get { return scalarExtension_; }
+ }
+
+ public const int EnumExtensionFieldNumber = 2001;
+ private bool hasEnumExtension;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum enumExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasEnumExtension {
+ get { return hasEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {
+ get { return enumExtension_; }
+ }
+
+ public const int DynamicEnumExtensionFieldNumber = 2002;
+ private bool hasDynamicEnumExtension;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType dynamicEnumExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType.DYNAMIC_FOO;
+ public bool HasDynamicEnumExtension {
+ get { return hasDynamicEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
+ get { return dynamicEnumExtension_; }
+ }
+
+ public const int MessageExtensionFieldNumber = 2003;
+ private bool hasMessageExtension;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageExtension_;
+ public bool HasMessageExtension {
+ get { return hasMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
+ get { return messageExtension_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int DynamicMessageExtensionFieldNumber = 2004;
+ private bool hasDynamicMessageExtension;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType dynamicMessageExtension_;
+ public bool HasDynamicMessageExtension {
+ get { return hasDynamicMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
+ get { return dynamicMessageExtension_ ?? global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance; }
+ }
+
+ public const int RepeatedExtensionFieldNumber = 2005;
+ private pbc::PopsicleList<string> repeatedExtension_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedExtensionList {
+ get { return pbc::Lists.AsReadOnly(repeatedExtension_); }
+ }
+ public int RepeatedExtensionCount {
+ get { return repeatedExtension_.Count; }
+ }
+ public string GetRepeatedExtension(int index) {
+ return repeatedExtension_[index];
+ }
+
+ public const int PackedExtensionFieldNumber = 2006;
+ private int packedExtensionMemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedExtension_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedExtensionList {
+ get { return pbc::Lists.AsReadOnly(packedExtension_); }
+ }
+ public int PackedExtensionCount {
+ get { return packedExtension_.Count; }
+ }
+ public int GetPackedExtension(int index) {
+ return packedExtension_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testDynamicExtensionsFieldNames;
+ if (hasScalarExtension) {
+ output.WriteFixed32(2000, field_names[6], ScalarExtension);
+ }
+ if (hasEnumExtension) {
+ output.WriteEnum(2001, field_names[2], (int) EnumExtension, EnumExtension);
+ }
+ if (hasDynamicEnumExtension) {
+ output.WriteEnum(2002, field_names[0], (int) DynamicEnumExtension, DynamicEnumExtension);
+ }
+ if (hasMessageExtension) {
+ output.WriteMessage(2003, field_names[3], MessageExtension);
+ }
+ if (hasDynamicMessageExtension) {
+ output.WriteMessage(2004, field_names[1], DynamicMessageExtension);
+ }
+ if (repeatedExtension_.Count > 0) {
+ output.WriteStringArray(2005, field_names[5], repeatedExtension_);
+ }
+ if (packedExtension_.Count > 0) {
+ output.WritePackedSInt32Array(2006, field_names[4], packedExtensionMemoizedSerializedSize, packedExtension_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasScalarExtension) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(2000, ScalarExtension);
+ }
+ if (hasEnumExtension) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2001, (int) EnumExtension);
+ }
+ if (hasDynamicEnumExtension) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2002, (int) DynamicEnumExtension);
+ }
+ if (hasMessageExtension) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2003, MessageExtension);
+ }
+ if (hasDynamicMessageExtension) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2004, DynamicMessageExtension);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedExtensionList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedExtension_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedExtensionList) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedExtension_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedExtensionMemoizedSerializedSize = dataSize;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestDynamicExtensions MakeReadOnly() {
+ repeatedExtension_.MakeReadOnly();
+ packedExtension_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDynamicExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDynamicExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestDynamicExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestDynamicExtensions result;
+
+ private TestDynamicExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestDynamicExtensions original = result;
+ result = new TestDynamicExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestDynamicExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Descriptor; }
+ }
+
+ public override TestDynamicExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.DefaultInstance; }
+ }
+
+ public override TestDynamicExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDynamicExtensions) {
+ return MergeFrom((TestDynamicExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDynamicExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasScalarExtension) {
+ ScalarExtension = other.ScalarExtension;
+ }
+ if (other.HasEnumExtension) {
+ EnumExtension = other.EnumExtension;
+ }
+ if (other.HasDynamicEnumExtension) {
+ DynamicEnumExtension = other.DynamicEnumExtension;
+ }
+ if (other.HasMessageExtension) {
+ MergeMessageExtension(other.MessageExtension);
+ }
+ if (other.HasDynamicMessageExtension) {
+ MergeDynamicMessageExtension(other.DynamicMessageExtension);
+ }
+ if (other.repeatedExtension_.Count != 0) {
+ result.repeatedExtension_.Add(other.repeatedExtension_);
+ }
+ if (other.packedExtension_.Count != 0) {
+ result.packedExtension_.Add(other.packedExtension_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testDynamicExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testDynamicExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 16005: {
+ result.hasScalarExtension = input.ReadFixed32(ref result.scalarExtension_);
+ break;
+ }
+ case 16008: {
+ object unknown;
+ if(input.ReadEnum(ref result.enumExtension_, out unknown)) {
+ result.hasEnumExtension = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2001, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 16016: {
+ object unknown;
+ if(input.ReadEnum(ref result.dynamicEnumExtension_, out unknown)) {
+ result.hasDynamicEnumExtension = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2002, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 16026: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (result.hasMessageExtension) {
+ subBuilder.MergeFrom(MessageExtension);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageExtension = subBuilder.BuildPartial();
+ break;
+ }
+ case 16034: {
+ global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder();
+ if (result.hasDynamicMessageExtension) {
+ subBuilder.MergeFrom(DynamicMessageExtension);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ DynamicMessageExtension = subBuilder.BuildPartial();
+ break;
+ }
+ case 16042: {
+ input.ReadStringArray(tag, field_name, result.repeatedExtension_);
+ break;
+ }
+ case 16050:
+ case 16048: {
+ input.ReadSInt32Array(tag, field_name, result.packedExtension_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasScalarExtension {
+ get { return result.hasScalarExtension; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint ScalarExtension {
+ get { return result.ScalarExtension; }
+ set { SetScalarExtension(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetScalarExtension(uint value) {
+ PrepareBuilder();
+ result.hasScalarExtension = true;
+ result.scalarExtension_ = value;
+ return this;
+ }
+ public Builder ClearScalarExtension() {
+ PrepareBuilder();
+ result.hasScalarExtension = false;
+ result.scalarExtension_ = 0;
+ return this;
+ }
+
+ public bool HasEnumExtension {
+ get { return result.hasEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {
+ get { return result.EnumExtension; }
+ set { SetEnumExtension(value); }
+ }
+ public Builder SetEnumExtension(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasEnumExtension = true;
+ result.enumExtension_ = value;
+ return this;
+ }
+ public Builder ClearEnumExtension() {
+ PrepareBuilder();
+ result.hasEnumExtension = false;
+ result.enumExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasDynamicEnumExtension {
+ get { return result.hasDynamicEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
+ get { return result.DynamicEnumExtension; }
+ set { SetDynamicEnumExtension(value); }
+ }
+ public Builder SetDynamicEnumExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType value) {
+ PrepareBuilder();
+ result.hasDynamicEnumExtension = true;
+ result.dynamicEnumExtension_ = value;
+ return this;
+ }
+ public Builder ClearDynamicEnumExtension() {
+ PrepareBuilder();
+ result.hasDynamicEnumExtension = false;
+ result.dynamicEnumExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType.DYNAMIC_FOO;
+ return this;
+ }
+
+ public bool HasMessageExtension {
+ get { return result.hasMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
+ get { return result.MessageExtension; }
+ set { SetMessageExtension(value); }
+ }
+ public Builder SetMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMessageExtension = true;
+ result.messageExtension_ = value;
+ return this;
+ }
+ public Builder SetMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMessageExtension = true;
+ result.messageExtension_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMessageExtension &&
+ result.messageExtension_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageExtension_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageExtension_ = value;
+ }
+ result.hasMessageExtension = true;
+ return this;
+ }
+ public Builder ClearMessageExtension() {
+ PrepareBuilder();
+ result.hasMessageExtension = false;
+ result.messageExtension_ = null;
+ return this;
+ }
+
+ public bool HasDynamicMessageExtension {
+ get { return result.hasDynamicMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
+ get { return result.DynamicMessageExtension; }
+ set { SetDynamicMessageExtension(value); }
+ }
+ public Builder SetDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDynamicMessageExtension = true;
+ result.dynamicMessageExtension_ = value;
+ return this;
+ }
+ public Builder SetDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasDynamicMessageExtension = true;
+ result.dynamicMessageExtension_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasDynamicMessageExtension &&
+ result.dynamicMessageExtension_ != global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) {
+ result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder(result.dynamicMessageExtension_).MergeFrom(value).BuildPartial();
+ } else {
+ result.dynamicMessageExtension_ = value;
+ }
+ result.hasDynamicMessageExtension = true;
+ return this;
+ }
+ public Builder ClearDynamicMessageExtension() {
+ PrepareBuilder();
+ result.hasDynamicMessageExtension = false;
+ result.dynamicMessageExtension_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedExtensionList {
+ get { return PrepareBuilder().repeatedExtension_; }
+ }
+ public int RepeatedExtensionCount {
+ get { return result.RepeatedExtensionCount; }
+ }
+ public string GetRepeatedExtension(int index) {
+ return result.GetRepeatedExtension(index);
+ }
+ public Builder SetRepeatedExtension(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedExtension_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedExtension(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedExtension_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedExtension(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedExtension_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedExtension() {
+ PrepareBuilder();
+ result.repeatedExtension_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedExtensionList {
+ get { return PrepareBuilder().packedExtension_; }
+ }
+ public int PackedExtensionCount {
+ get { return result.PackedExtensionCount; }
+ }
+ public int GetPackedExtension(int index) {
+ return result.GetPackedExtension(index);
+ }
+ public Builder SetPackedExtension(int index, int value) {
+ PrepareBuilder();
+ result.packedExtension_[index] = value;
+ return this;
+ }
+ public Builder AddPackedExtension(int value) {
+ PrepareBuilder();
+ result.packedExtension_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedExtension(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedExtension_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedExtension() {
+ PrepareBuilder();
+ result.packedExtension_.Clear();
+ return this;
+ }
+ }
+ static TestDynamicExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::GeneratedMessage<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> {
+ private TestRepeatedScalarDifferentTagSizes() { }
+ private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new TestRepeatedScalarDifferentTagSizes().MakeReadOnly();
+ private static readonly string[] _testRepeatedScalarDifferentTagSizesFieldNames = new string[] { "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_int32", "repeated_int64", "repeated_uint64" };
+ private static readonly uint[] _testRepeatedScalarDifferentTagSizesFieldTags = new uint[] { 101, 16369, 2097141, 104, 16376, 2097144 };
+ public static TestRepeatedScalarDifferentTagSizes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRepeatedScalarDifferentTagSizes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable; }
+ }
+
+ public const int RepeatedFixed32FieldNumber = 12;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedInt32FieldNumber = 13;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 2046;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 2047;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 262142;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 262143;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRepeatedScalarDifferentTagSizesFieldNames;
+ if (repeatedFixed32_.Count > 0) {
+ output.WriteFixed32Array(12, field_names[0], repeatedFixed32_);
+ }
+ if (repeatedInt32_.Count > 0) {
+ output.WriteInt32Array(13, field_names[3], repeatedInt32_);
+ }
+ if (repeatedFixed64_.Count > 0) {
+ output.WriteFixed64Array(2046, field_names[1], repeatedFixed64_);
+ }
+ if (repeatedInt64_.Count > 0) {
+ output.WriteInt64Array(2047, field_names[4], repeatedInt64_);
+ }
+ if (repeatedFloat_.Count > 0) {
+ output.WriteFloatArray(262142, field_names[2], repeatedFloat_);
+ }
+ if (repeatedUint64_.Count > 0) {
+ output.WriteUInt64Array(262143, field_names[5], repeatedUint64_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 1 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 3 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 3 * repeatedUint64_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRepeatedScalarDifferentTagSizes MakeReadOnly() {
+ repeatedFixed32_.MakeReadOnly();
+ repeatedInt32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRepeatedScalarDifferentTagSizes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRepeatedScalarDifferentTagSizes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRepeatedScalarDifferentTagSizes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRepeatedScalarDifferentTagSizes result;
+
+ private TestRepeatedScalarDifferentTagSizes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRepeatedScalarDifferentTagSizes original = result;
+ result = new TestRepeatedScalarDifferentTagSizes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRepeatedScalarDifferentTagSizes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Descriptor; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.DefaultInstance; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRepeatedScalarDifferentTagSizes) {
+ return MergeFrom((TestRepeatedScalarDifferentTagSizes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRepeatedScalarDifferentTagSizes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.repeatedFixed32_.Count != 0) {
+ result.repeatedFixed32_.Add(other.repeatedFixed32_);
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ result.repeatedInt32_.Add(other.repeatedInt32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ result.repeatedFixed64_.Add(other.repeatedFixed64_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ result.repeatedInt64_.Add(other.repeatedInt64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ result.repeatedFloat_.Add(other.repeatedFloat_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ result.repeatedUint64_.Add(other.repeatedUint64_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRepeatedScalarDifferentTagSizesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRepeatedScalarDifferentTagSizesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 98:
+ case 101: {
+ input.ReadFixed32Array(tag, field_name, result.repeatedFixed32_);
+ break;
+ }
+ case 106:
+ case 104: {
+ input.ReadInt32Array(tag, field_name, result.repeatedInt32_);
+ break;
+ }
+ case 16370:
+ case 16369: {
+ input.ReadFixed64Array(tag, field_name, result.repeatedFixed64_);
+ break;
+ }
+ case 16378:
+ case 16376: {
+ input.ReadInt64Array(tag, field_name, result.repeatedInt64_);
+ break;
+ }
+ case 2097138:
+ case 2097141: {
+ input.ReadFloatArray(tag, field_name, result.repeatedFloat_);
+ break;
+ }
+ case 2097146:
+ case 2097144: {
+ input.ReadUInt64Array(tag, field_name, result.repeatedUint64_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return PrepareBuilder().repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed32(uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ PrepareBuilder();
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return PrepareBuilder().repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ PrepareBuilder();
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return PrepareBuilder().repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed64(ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ PrepareBuilder();
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return PrepareBuilder().repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ PrepareBuilder();
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return PrepareBuilder().repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ PrepareBuilder();
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ PrepareBuilder();
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return PrepareBuilder().repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedUint64(ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ PrepareBuilder();
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+ }
+ static TestRepeatedScalarDifferentTagSizes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestParsingMerge : pb::ExtendableMessage<TestParsingMerge, TestParsingMerge.Builder> {
+ private TestParsingMerge() { }
+ private static readonly TestParsingMerge defaultInstance = new TestParsingMerge().MakeReadOnly();
+ private static readonly string[] _testParsingMergeFieldNames = new string[] { "optional_all_types", "optionalgroup", "repeated_all_types", "repeatedgroup", "required_all_types" };
+ private static readonly uint[] _testParsingMergeFieldTags = new uint[] { 18, 83, 26, 163, 10 };
+ public static TestParsingMerge DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestParsingMerge DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestParsingMerge ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestParsingMerge, TestParsingMerge.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge__FieldAccessorTable; }
+ }
+
+ public const int OptionalExtFieldNumber = 1000;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> OptionalExt;
+ public const int RepeatedExtFieldNumber = 1001;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>> RepeatedExt;
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedFieldsGenerator : pb::GeneratedMessage<RepeatedFieldsGenerator, RepeatedFieldsGenerator.Builder> {
+ private RepeatedFieldsGenerator() { }
+ private static readonly RepeatedFieldsGenerator defaultInstance = new RepeatedFieldsGenerator().MakeReadOnly();
+ private static readonly string[] _repeatedFieldsGeneratorFieldNames = new string[] { "ext1", "ext2", "field1", "field2", "field3", "group1", "group2" };
+ private static readonly uint[] _repeatedFieldsGeneratorFieldTags = new uint[] { 8002, 8010, 10, 18, 26, 83, 163 };
+ public static RepeatedFieldsGenerator DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedFieldsGenerator DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedFieldsGenerator ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedFieldsGenerator, RepeatedFieldsGenerator.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
+ private Group1() { }
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
+ private static readonly string[] _group1FieldNames = new string[] { "field1" };
+ private static readonly uint[] _group1FieldTags = new uint[] { 90 };
+ public static Group1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Group1, Group1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 11;
+ private bool hasField1;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return field1_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group1FieldNames;
+ if (hasField1) {
+ output.WriteMessage(11, field_names[0], Field1);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, Field1);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Group1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group1 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Group1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group1 result;
+
+ private Group1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group1 original = result;
+ result = new Group1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Descriptor; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance; }
+ }
+
+ public override Group1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Group1) {
+ return MergeFrom((Group1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group1 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ MergeField1(other.Field1);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasField1) {
+ subBuilder.MergeFrom(Field1);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field1 = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField1 &&
+ result.field1_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.field1_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.field1_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field1_ = value;
+ }
+ result.hasField1 = true;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = null;
+ return this;
+ }
+ }
+ static Group1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group2 : pb::GeneratedMessage<Group2, Group2.Builder> {
+ private Group2() { }
+ private static readonly Group2 defaultInstance = new Group2().MakeReadOnly();
+ private static readonly string[] _group2FieldNames = new string[] { "field1" };
+ private static readonly uint[] _group2FieldTags = new uint[] { 170 };
+ public static Group2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Group2, Group2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 21;
+ private bool hasField1;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return field1_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group2FieldNames;
+ if (hasField1) {
+ output.WriteMessage(21, field_names[0], Field1);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeMessageSize(21, Field1);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Group2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group2 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Group2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group2 result;
+
+ private Group2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group2 original = result;
+ result = new Group2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Descriptor; }
+ }
+
+ public override Group2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance; }
+ }
+
+ public override Group2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Group2) {
+ return MergeFrom((Group2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ MergeField1(other.Field1);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 170: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasField1) {
+ subBuilder.MergeFrom(Field1);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field1 = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField1 &&
+ result.field1_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.field1_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.field1_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field1_ = value;
+ }
+ result.hasField1 = true;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = null;
+ return this;
+ }
+ }
+ static Group2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> field1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field1List {
+ get { return field1_; }
+ }
+ public int Field1Count {
+ get { return field1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField1(int index) {
+ return field1_[index];
+ }
+
+ public const int Field2FieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> field2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field2List {
+ get { return field2_; }
+ }
+ public int Field2Count {
+ get { return field2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField2(int index) {
+ return field2_[index];
+ }
+
+ public const int Field3FieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> field3_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field3List {
+ get { return field3_; }
+ }
+ public int Field3Count {
+ get { return field3_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField3(int index) {
+ return field3_[index];
+ }
+
+ public const int Group1FieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> group1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> Group1List {
+ get { return group1_; }
+ }
+ public int Group1Count {
+ get { return group1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 GetGroup1(int index) {
+ return group1_[index];
+ }
+
+ public const int Group2FieldNumber = 20;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> group2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> Group2List {
+ get { return group2_; }
+ }
+ public int Group2Count {
+ get { return group2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 GetGroup2(int index) {
+ return group2_[index];
+ }
+
+ public const int Ext1FieldNumber = 1000;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> ext1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext1List {
+ get { return ext1_; }
+ }
+ public int Ext1Count {
+ get { return ext1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt1(int index) {
+ return ext1_[index];
+ }
+
+ public const int Ext2FieldNumber = 1001;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> ext2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext2List {
+ get { return ext2_; }
+ }
+ public int Ext2Count {
+ get { return ext2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt2(int index) {
+ return ext2_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedFieldsGeneratorFieldNames;
+ if (field1_.Count > 0) {
+ output.WriteMessageArray(1, field_names[2], field1_);
+ }
+ if (field2_.Count > 0) {
+ output.WriteMessageArray(2, field_names[3], field2_);
+ }
+ if (field3_.Count > 0) {
+ output.WriteMessageArray(3, field_names[4], field3_);
+ }
+ if (group1_.Count > 0) {
+ output.WriteGroupArray(10, field_names[5], group1_);
+ }
+ if (group2_.Count > 0) {
+ output.WriteGroupArray(20, field_names[6], group2_);
+ }
+ if (ext1_.Count > 0) {
+ output.WriteMessageArray(1000, field_names[0], ext1_);
+ }
+ if (ext2_.Count > 0) {
+ output.WriteMessageArray(1001, field_names[1], ext2_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Field1List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Field2List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Field3List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 element in Group1List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 element in Group2List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(20, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Ext1List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1000, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Ext2List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1001, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedFieldsGenerator MakeReadOnly() {
+ field1_.MakeReadOnly();
+ field2_.MakeReadOnly();
+ field3_.MakeReadOnly();
+ group1_.MakeReadOnly();
+ group2_.MakeReadOnly();
+ ext1_.MakeReadOnly();
+ ext2_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedFieldsGenerator prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedFieldsGenerator, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedFieldsGenerator cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedFieldsGenerator result;
+
+ private RepeatedFieldsGenerator PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedFieldsGenerator original = result;
+ result = new RepeatedFieldsGenerator();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedFieldsGenerator MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Descriptor; }
+ }
+
+ public override RepeatedFieldsGenerator DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.DefaultInstance; }
+ }
+
+ public override RepeatedFieldsGenerator BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedFieldsGenerator) {
+ return MergeFrom((RepeatedFieldsGenerator) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedFieldsGenerator other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.field1_.Count != 0) {
+ result.field1_.Add(other.field1_);
+ }
+ if (other.field2_.Count != 0) {
+ result.field2_.Add(other.field2_);
+ }
+ if (other.field3_.Count != 0) {
+ result.field3_.Add(other.field3_);
+ }
+ if (other.group1_.Count != 0) {
+ result.group1_.Add(other.group1_);
+ }
+ if (other.group2_.Count != 0) {
+ result.group2_.Add(other.group2_);
+ }
+ if (other.ext1_.Count != 0) {
+ result.ext1_.Add(other.ext1_);
+ }
+ if (other.ext2_.Count != 0) {
+ result.ext2_.Add(other.ext2_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedFieldsGeneratorFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedFieldsGeneratorFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadMessageArray(tag, field_name, result.field1_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.field2_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.field3_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 83: {
+ input.ReadGroupArray(tag, field_name, result.group1_, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 163: {
+ input.ReadGroupArray(tag, field_name, result.group2_, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 8002: {
+ input.ReadMessageArray(tag, field_name, result.ext1_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 8010: {
+ input.ReadMessageArray(tag, field_name, result.ext2_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field1List {
+ get { return PrepareBuilder().field1_; }
+ }
+ public int Field1Count {
+ get { return result.Field1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField1(int index) {
+ return result.GetField1(index);
+ }
+ public Builder SetField1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field1_[index] = value;
+ return this;
+ }
+ public Builder SetField1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field1_.Add(value);
+ return this;
+ }
+ public Builder AddField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.field1_.Add(values);
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.field1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field2List {
+ get { return PrepareBuilder().field2_; }
+ }
+ public int Field2Count {
+ get { return result.Field2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField2(int index) {
+ return result.GetField2(index);
+ }
+ public Builder SetField2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field2_[index] = value;
+ return this;
+ }
+ public Builder SetField2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field2_.Add(value);
+ return this;
+ }
+ public Builder AddField2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.field2_.Add(values);
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.field2_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field3List {
+ get { return PrepareBuilder().field3_; }
+ }
+ public int Field3Count {
+ get { return result.Field3Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField3(int index) {
+ return result.GetField3(index);
+ }
+ public Builder SetField3(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field3_[index] = value;
+ return this;
+ }
+ public Builder SetField3(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field3_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField3(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field3_.Add(value);
+ return this;
+ }
+ public Builder AddField3(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field3_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField3(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.field3_.Add(values);
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.field3_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> Group1List {
+ get { return PrepareBuilder().group1_; }
+ }
+ public int Group1Count {
+ get { return result.Group1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 GetGroup1(int index) {
+ return result.GetGroup1(index);
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_[index] = value;
+ return this;
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_.Add(value);
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> values) {
+ PrepareBuilder();
+ result.group1_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup1() {
+ PrepareBuilder();
+ result.group1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> Group2List {
+ get { return PrepareBuilder().group2_; }
+ }
+ public int Group2Count {
+ get { return result.Group2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 GetGroup2(int index) {
+ return result.GetGroup2(index);
+ }
+ public Builder SetGroup2(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group2_[index] = value;
+ return this;
+ }
+ public Builder SetGroup2(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup2(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group2_.Add(value);
+ return this;
+ }
+ public Builder AddGroup2(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> values) {
+ PrepareBuilder();
+ result.group2_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup2() {
+ PrepareBuilder();
+ result.group2_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext1List {
+ get { return PrepareBuilder().ext1_; }
+ }
+ public int Ext1Count {
+ get { return result.Ext1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt1(int index) {
+ return result.GetExt1(index);
+ }
+ public Builder SetExt1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext1_[index] = value;
+ return this;
+ }
+ public Builder SetExt1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExt1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext1_.Add(value);
+ return this;
+ }
+ public Builder AddExt1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExt1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.ext1_.Add(values);
+ return this;
+ }
+ public Builder ClearExt1() {
+ PrepareBuilder();
+ result.ext1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext2List {
+ get { return PrepareBuilder().ext2_; }
+ }
+ public int Ext2Count {
+ get { return result.Ext2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt2(int index) {
+ return result.GetExt2(index);
+ }
+ public Builder SetExt2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext2_[index] = value;
+ return this;
+ }
+ public Builder SetExt2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExt2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext2_.Add(value);
+ return this;
+ }
+ public Builder AddExt2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExt2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.ext2_.Add(values);
+ return this;
+ }
+ public Builder ClearExt2() {
+ PrepareBuilder();
+ result.ext2_.Clear();
+ return this;
+ }
+ }
+ static RepeatedFieldsGenerator() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
+ private OptionalGroup() { }
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
+ private static readonly string[] _optionalGroupFieldNames = new string[] { "optional_group_all_types" };
+ private static readonly uint[] _optionalGroupFieldTags = new uint[] { 90 };
+ public static OptionalGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup, OptionalGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__FieldAccessorTable; }
+ }
+
+ public const int OptionalGroupAllTypesFieldNumber = 11;
+ private bool hasOptionalGroupAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes optionalGroupAllTypes_;
+ public bool HasOptionalGroupAllTypes {
+ get { return hasOptionalGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalGroupAllTypes {
+ get { return optionalGroupAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupFieldNames;
+ if (hasOptionalGroupAllTypes) {
+ output.WriteMessage(11, field_names[0], OptionalGroupAllTypes);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalGroupAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, OptionalGroupAllTypes);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
+
+ private OptionalGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup original = result;
+ result = new OptionalGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Descriptor; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public override OptionalGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup) {
+ return MergeFrom((OptionalGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalGroupAllTypes) {
+ MergeOptionalGroupAllTypes(other.OptionalGroupAllTypes);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasOptionalGroupAllTypes) {
+ subBuilder.MergeFrom(OptionalGroupAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalGroupAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalGroupAllTypes {
+ get { return result.hasOptionalGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalGroupAllTypes {
+ get { return result.OptionalGroupAllTypes; }
+ set { SetOptionalGroupAllTypes(value); }
+ }
+ public Builder SetOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = true;
+ result.optionalGroupAllTypes_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = true;
+ result.optionalGroupAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroupAllTypes &&
+ result.optionalGroupAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.optionalGroupAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.optionalGroupAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroupAllTypes_ = value;
+ }
+ result.hasOptionalGroupAllTypes = true;
+ return this;
+ }
+ public Builder ClearOptionalGroupAllTypes() {
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = false;
+ result.optionalGroupAllTypes_ = null;
+ return this;
+ }
+ }
+ static OptionalGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
+ private RepeatedGroup() { }
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
+ private static readonly string[] _repeatedGroupFieldNames = new string[] { "repeated_group_all_types" };
+ private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 170 };
+ public static RepeatedGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup, RepeatedGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__FieldAccessorTable; }
+ }
+
+ public const int RepeatedGroupAllTypesFieldNumber = 21;
+ private bool hasRepeatedGroupAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes repeatedGroupAllTypes_;
+ public bool HasRepeatedGroupAllTypes {
+ get { return hasRepeatedGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RepeatedGroupAllTypes {
+ get { return repeatedGroupAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupFieldNames;
+ if (hasRepeatedGroupAllTypes) {
+ output.WriteMessage(21, field_names[0], RepeatedGroupAllTypes);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRepeatedGroupAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(21, RepeatedGroupAllTypes);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
+
+ private RepeatedGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup original = result;
+ result = new RepeatedGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Descriptor; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.DefaultInstance; }
+ }
+
+ public override RepeatedGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup) {
+ return MergeFrom((RepeatedGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRepeatedGroupAllTypes) {
+ MergeRepeatedGroupAllTypes(other.RepeatedGroupAllTypes);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 170: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasRepeatedGroupAllTypes) {
+ subBuilder.MergeFrom(RepeatedGroupAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ RepeatedGroupAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasRepeatedGroupAllTypes {
+ get { return result.hasRepeatedGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RepeatedGroupAllTypes {
+ get { return result.RepeatedGroupAllTypes; }
+ set { SetRepeatedGroupAllTypes(value); }
+ }
+ public Builder SetRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = true;
+ result.repeatedGroupAllTypes_ = value;
+ return this;
+ }
+ public Builder SetRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = true;
+ result.repeatedGroupAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasRepeatedGroupAllTypes &&
+ result.repeatedGroupAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.repeatedGroupAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.repeatedGroupAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.repeatedGroupAllTypes_ = value;
+ }
+ result.hasRepeatedGroupAllTypes = true;
+ return this;
+ }
+ public Builder ClearRepeatedGroupAllTypes() {
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = false;
+ result.repeatedGroupAllTypes_ = null;
+ return this;
+ }
+ }
+ static RepeatedGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int RequiredAllTypesFieldNumber = 1;
+ private bool hasRequiredAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes requiredAllTypes_;
+ public bool HasRequiredAllTypes {
+ get { return hasRequiredAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RequiredAllTypes {
+ get { return requiredAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int OptionalAllTypesFieldNumber = 2;
+ private bool hasOptionalAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes optionalAllTypes_;
+ public bool HasOptionalAllTypes {
+ get { return hasOptionalAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalAllTypes {
+ get { return optionalAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int RepeatedAllTypesFieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> repeatedAllTypes_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> RepeatedAllTypesList {
+ get { return repeatedAllTypes_; }
+ }
+ public int RepeatedAllTypesCount {
+ get { return repeatedAllTypes_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetRepeatedAllTypes(int index) {
+ return repeatedAllTypes_[index];
+ }
+
+ public const int OptionalGroupFieldNumber = 10;
+ private bool hasOptionalGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup optionalGroup_;
+ public bool HasOptionalGroup {
+ get { return hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup OptionalGroup {
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public const int RepeatedGroupFieldNumber = 20;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> repeatedGroup_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> RepeatedGroupList {
+ get { return repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return repeatedGroup_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return repeatedGroup_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasRequiredAllTypes) return false;
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testParsingMergeFieldNames;
+ pb::ExtendableMessage<TestParsingMerge, TestParsingMerge.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasRequiredAllTypes) {
+ output.WriteMessage(1, field_names[4], RequiredAllTypes);
+ }
+ if (hasOptionalAllTypes) {
+ output.WriteMessage(2, field_names[0], OptionalAllTypes);
+ }
+ if (repeatedAllTypes_.Count > 0) {
+ output.WriteMessageArray(3, field_names[2], repeatedAllTypes_);
+ }
+ if (hasOptionalGroup) {
+ output.WriteGroup(10, field_names[1], OptionalGroup);
+ }
+ if (repeatedGroup_.Count > 0) {
+ output.WriteGroupArray(20, field_names[3], repeatedGroup_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRequiredAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, RequiredAllTypes);
+ }
+ if (hasOptionalAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, OptionalAllTypes);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in RepeatedAllTypesList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ if (hasOptionalGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, OptionalGroup);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup element in RepeatedGroupList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(20, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestParsingMerge ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMerge ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestParsingMerge ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestParsingMerge MakeReadOnly() {
+ repeatedAllTypes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestParsingMerge prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestParsingMerge, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestParsingMerge cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestParsingMerge result;
+
+ private TestParsingMerge PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestParsingMerge original = result;
+ result = new TestParsingMerge();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestParsingMerge MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Descriptor; }
+ }
+
+ public override TestParsingMerge DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.DefaultInstance; }
+ }
+
+ public override TestParsingMerge BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestParsingMerge) {
+ return MergeFrom((TestParsingMerge) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestParsingMerge other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRequiredAllTypes) {
+ MergeRequiredAllTypes(other.RequiredAllTypes);
+ }
+ if (other.HasOptionalAllTypes) {
+ MergeOptionalAllTypes(other.OptionalAllTypes);
+ }
+ if (other.repeatedAllTypes_.Count != 0) {
+ result.repeatedAllTypes_.Add(other.repeatedAllTypes_);
+ }
+ if (other.HasOptionalGroup) {
+ MergeOptionalGroup(other.OptionalGroup);
+ }
+ if (other.repeatedGroup_.Count != 0) {
+ result.repeatedGroup_.Add(other.repeatedGroup_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testParsingMergeFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testParsingMergeFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasRequiredAllTypes) {
+ subBuilder.MergeFrom(RequiredAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ RequiredAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasOptionalAllTypes) {
+ subBuilder.MergeFrom(OptionalAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.repeatedAllTypes_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 83: {
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.CreateBuilder();
+ if (result.hasOptionalGroup) {
+ subBuilder.MergeFrom(OptionalGroup);
+ }
+ input.ReadGroup(10, subBuilder, extensionRegistry);
+ OptionalGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 163: {
+ input.ReadGroupArray(tag, field_name, result.repeatedGroup_, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasRequiredAllTypes {
+ get { return result.hasRequiredAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RequiredAllTypes {
+ get { return result.RequiredAllTypes; }
+ set { SetRequiredAllTypes(value); }
+ }
+ public Builder SetRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasRequiredAllTypes = true;
+ result.requiredAllTypes_ = value;
+ return this;
+ }
+ public Builder SetRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasRequiredAllTypes = true;
+ result.requiredAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasRequiredAllTypes &&
+ result.requiredAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.requiredAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.requiredAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.requiredAllTypes_ = value;
+ }
+ result.hasRequiredAllTypes = true;
+ return this;
+ }
+ public Builder ClearRequiredAllTypes() {
+ PrepareBuilder();
+ result.hasRequiredAllTypes = false;
+ result.requiredAllTypes_ = null;
+ return this;
+ }
+
+ public bool HasOptionalAllTypes {
+ get { return result.hasOptionalAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalAllTypes {
+ get { return result.OptionalAllTypes; }
+ set { SetOptionalAllTypes(value); }
+ }
+ public Builder SetOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalAllTypes = true;
+ result.optionalAllTypes_ = value;
+ return this;
+ }
+ public Builder SetOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalAllTypes = true;
+ result.optionalAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalAllTypes &&
+ result.optionalAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.optionalAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.optionalAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalAllTypes_ = value;
+ }
+ result.hasOptionalAllTypes = true;
+ return this;
+ }
+ public Builder ClearOptionalAllTypes() {
+ PrepareBuilder();
+ result.hasOptionalAllTypes = false;
+ result.optionalAllTypes_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> RepeatedAllTypesList {
+ get { return PrepareBuilder().repeatedAllTypes_; }
+ }
+ public int RepeatedAllTypesCount {
+ get { return result.RepeatedAllTypesCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetRepeatedAllTypes(int index) {
+ return result.GetRepeatedAllTypes(index);
+ }
+ public Builder SetRepeatedAllTypes(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedAllTypes_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedAllTypes(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedAllTypes_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedAllTypes(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedAllTypes() {
+ PrepareBuilder();
+ result.repeatedAllTypes_.Clear();
+ return this;
+ }
+
+ public bool HasOptionalGroup {
+ get { return result.hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup OptionalGroup {
+ get { return result.OptionalGroup; }
+ set { SetOptionalGroup(value); }
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroup &&
+ result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance) {
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroup_ = value;
+ }
+ result.hasOptionalGroup = true;
+ return this;
+ }
+ public Builder ClearOptionalGroup() {
+ PrepareBuilder();
+ result.hasOptionalGroup = false;
+ result.optionalGroup_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> RepeatedGroupList {
+ get { return PrepareBuilder().repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return result.RepeatedGroupCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return result.GetRepeatedGroup(index);
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedGroup(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> values) {
+ PrepareBuilder();
+ result.repeatedGroup_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedGroup() {
+ PrepareBuilder();
+ result.repeatedGroup_.Clear();
+ return this;
+ }
+ }
+ static TestParsingMerge() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestCommentInjectionMessage : pb::GeneratedMessage<TestCommentInjectionMessage, TestCommentInjectionMessage.Builder> {
+ private TestCommentInjectionMessage() { }
+ private static readonly TestCommentInjectionMessage defaultInstance = new TestCommentInjectionMessage().MakeReadOnly();
+ private static readonly string[] _testCommentInjectionMessageFieldNames = new string[] { "a" };
+ private static readonly uint[] _testCommentInjectionMessageFieldTags = new uint[] { 10 };
+ public static TestCommentInjectionMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestCommentInjectionMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestCommentInjectionMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestCommentInjectionMessage, TestCommentInjectionMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private string a_ = "*/ <- Neither should this.";
+ public bool HasA {
+ get { return hasA; }
+ }
+ public string A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testCommentInjectionMessageFieldNames;
+ if (hasA) {
+ output.WriteString(1, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestCommentInjectionMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestCommentInjectionMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestCommentInjectionMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestCommentInjectionMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestCommentInjectionMessage result;
+
+ private TestCommentInjectionMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestCommentInjectionMessage original = result;
+ result = new TestCommentInjectionMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestCommentInjectionMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.Descriptor; }
+ }
+
+ public override TestCommentInjectionMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.DefaultInstance; }
+ }
+
+ public override TestCommentInjectionMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestCommentInjectionMessage) {
+ return MergeFrom((TestCommentInjectionMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestCommentInjectionMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testCommentInjectionMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testCommentInjectionMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasA = input.ReadString(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public string A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = "*/ <- Neither should this.";
+ return this;
+ }
+ }
+ static TestCommentInjectionMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooRequest : pb::GeneratedMessage<FooRequest, FooRequest.Builder> {
+ private FooRequest() { }
+ private static readonly FooRequest defaultInstance = new FooRequest().MakeReadOnly();
+ private static readonly string[] _fooRequestFieldNames = new string[] { };
+ private static readonly uint[] _fooRequestFieldTags = new uint[] { };
+ public static FooRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooRequest DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooRequest, FooRequest.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooRequest__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooRequestFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooRequest MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooRequest prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooRequest, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooRequest cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooRequest result;
+
+ private FooRequest PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooRequest original = result;
+ result = new FooRequest();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooRequest MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooRequest.Descriptor; }
+ }
+
+ public override FooRequest DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooRequest.DefaultInstance; }
+ }
+
+ public override FooRequest BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooRequest) {
+ return MergeFrom((FooRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooRequest other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooRequest.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooRequestFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooRequestFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooRequest() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooResponse : pb::GeneratedMessage<FooResponse, FooResponse.Builder> {
+ private FooResponse() { }
+ private static readonly FooResponse defaultInstance = new FooResponse().MakeReadOnly();
+ private static readonly string[] _fooResponseFieldNames = new string[] { };
+ private static readonly uint[] _fooResponseFieldTags = new uint[] { };
+ public static FooResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooResponse DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooResponse, FooResponse.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooResponse__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooResponseFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooResponse MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooResponse prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooResponse, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooResponse cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooResponse result;
+
+ private FooResponse PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooResponse original = result;
+ result = new FooResponse();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooResponse MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooResponse.Descriptor; }
+ }
+
+ public override FooResponse DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance; }
+ }
+
+ public override FooResponse BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooResponse) {
+ return MergeFrom((FooResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooResponse other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooResponseFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooResponseFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooResponse() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooClientMessage : pb::GeneratedMessage<FooClientMessage, FooClientMessage.Builder> {
+ private FooClientMessage() { }
+ private static readonly FooClientMessage defaultInstance = new FooClientMessage().MakeReadOnly();
+ private static readonly string[] _fooClientMessageFieldNames = new string[] { };
+ private static readonly uint[] _fooClientMessageFieldTags = new uint[] { };
+ public static FooClientMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooClientMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooClientMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooClientMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooClientMessage, FooClientMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooClientMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooClientMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooClientMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooClientMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooClientMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooClientMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooClientMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooClientMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooClientMessage result;
+
+ private FooClientMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooClientMessage original = result;
+ result = new FooClientMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooClientMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooClientMessage.Descriptor; }
+ }
+
+ public override FooClientMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooClientMessage.DefaultInstance; }
+ }
+
+ public override FooClientMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooClientMessage) {
+ return MergeFrom((FooClientMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooClientMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooClientMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooClientMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooClientMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooClientMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooServerMessage : pb::GeneratedMessage<FooServerMessage, FooServerMessage.Builder> {
+ private FooServerMessage() { }
+ private static readonly FooServerMessage defaultInstance = new FooServerMessage().MakeReadOnly();
+ private static readonly string[] _fooServerMessageFieldNames = new string[] { };
+ private static readonly uint[] _fooServerMessageFieldTags = new uint[] { };
+ public static FooServerMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooServerMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooServerMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooServerMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooServerMessage, FooServerMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooServerMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooServerMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooServerMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooServerMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooServerMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooServerMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooServerMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooServerMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooServerMessage result;
+
+ private FooServerMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooServerMessage original = result;
+ result = new FooServerMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooServerMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooServerMessage.Descriptor; }
+ }
+
+ public override FooServerMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooServerMessage.DefaultInstance; }
+ }
+
+ public override FooServerMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooServerMessage) {
+ return MergeFrom((FooServerMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooServerMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooServerMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooServerMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooServerMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooServerMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BarRequest : pb::GeneratedMessage<BarRequest, BarRequest.Builder> {
+ private BarRequest() { }
+ private static readonly BarRequest defaultInstance = new BarRequest().MakeReadOnly();
+ private static readonly string[] _barRequestFieldNames = new string[] { };
+ private static readonly uint[] _barRequestFieldTags = new uint[] { };
+ public static BarRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BarRequest DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BarRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BarRequest, BarRequest.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarRequest__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _barRequestFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static BarRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BarRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BarRequest MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BarRequest prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<BarRequest, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BarRequest cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BarRequest result;
+
+ private BarRequest PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BarRequest original = result;
+ result = new BarRequest();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BarRequest MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarRequest.Descriptor; }
+ }
+
+ public override BarRequest DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarRequest.DefaultInstance; }
+ }
+
+ public override BarRequest BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BarRequest) {
+ return MergeFrom((BarRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BarRequest other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BarRequest.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_barRequestFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _barRequestFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static BarRequest() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BarResponse : pb::GeneratedMessage<BarResponse, BarResponse.Builder> {
+ private BarResponse() { }
+ private static readonly BarResponse defaultInstance = new BarResponse().MakeReadOnly();
+ private static readonly string[] _barResponseFieldNames = new string[] { };
+ private static readonly uint[] _barResponseFieldTags = new uint[] { };
+ public static BarResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BarResponse DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BarResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BarResponse, BarResponse.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarResponse__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _barResponseFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static BarResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BarResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BarResponse MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BarResponse prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<BarResponse, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BarResponse cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BarResponse result;
+
+ private BarResponse PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BarResponse original = result;
+ result = new BarResponse();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BarResponse MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarResponse.Descriptor; }
+ }
+
+ public override BarResponse DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance; }
+ }
+
+ public override BarResponse BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BarResponse) {
+ return MergeFrom((BarResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BarResponse other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_barResponseFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _barResponseFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static BarResponse() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtoBench/UnittestImport.cs b/csharp/src/ProtoBench/UnittestImport.cs
new file mode 100644
index 00000000..81f9ee53
--- /dev/null
+++ b/csharp/src/ProtoBench/UnittestImport.cs
@@ -0,0 +1,347 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_import.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestImport {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_import_ImportMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ImportMessage, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder> internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestImport() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0LnByb3RvEhhwcm90",
+ "b2J1Zl91bml0dGVzdF9pbXBvcnQaLGdvb2dsZS9wcm90b2J1Zi91bml0dGVz",
+ "dF9pbXBvcnRfcHVibGljLnByb3RvIhoKDUltcG9ydE1lc3NhZ2USCQoBZBgB",
+ "IAEoBSo8CgpJbXBvcnRFbnVtEg4KCklNUE9SVF9GT08QBxIOCgpJTVBPUlRf",
+ "QkFSEAgSDgoKSU1QT1JUX0JBWhAJQkMKGGNvbS5nb29nbGUucHJvdG9idWYu",
+ "dGVzdEgB+AEBqgIhR29vZ2xlLlByb3RvY29sQnVmZmVycy5UZXN0UHJvdG9z",
+ "UAA="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_import_ImportMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ImportMessage, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder>(internal__static_protobuf_unittest_import_ImportMessage__Descriptor,
+ new string[] { "D", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ImportEnum {
+ IMPORT_FOO = 7,
+ IMPORT_BAR = 8,
+ IMPORT_BAZ = 9,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ImportMessage : pb::GeneratedMessage<ImportMessage, ImportMessage.Builder> {
+ private ImportMessage() { }
+ private static readonly ImportMessage defaultInstance = new ImportMessage().MakeReadOnly();
+ private static readonly string[] _importMessageFieldNames = new string[] { "d" };
+ private static readonly uint[] _importMessageFieldTags = new uint[] { 8 };
+ public static ImportMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ImportMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ImportMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImport.internal__static_protobuf_unittest_import_ImportMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ImportMessage, ImportMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImport.internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable; }
+ }
+
+ public const int DFieldNumber = 1;
+ private bool hasD;
+ private int d_;
+ public bool HasD {
+ get { return hasD; }
+ }
+ public int D {
+ get { return d_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _importMessageFieldNames;
+ if (hasD) {
+ output.WriteInt32(1, field_names[0], D);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasD) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, D);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ImportMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ImportMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ImportMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ImportMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ImportMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ImportMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ImportMessage result;
+
+ private ImportMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ImportMessage original = result;
+ result = new ImportMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ImportMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessage.Descriptor; }
+ }
+
+ public override ImportMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance; }
+ }
+
+ public override ImportMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ImportMessage) {
+ return MergeFrom((ImportMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ImportMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasD) {
+ D = other.D;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_importMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _importMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasD = input.ReadInt32(ref result.d_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasD {
+ get { return result.hasD; }
+ }
+ public int D {
+ get { return result.D; }
+ set { SetD(value); }
+ }
+ public Builder SetD(int value) {
+ PrepareBuilder();
+ result.hasD = true;
+ result.d_ = value;
+ return this;
+ }
+ public Builder ClearD() {
+ PrepareBuilder();
+ result.hasD = false;
+ result.d_ = 0;
+ return this;
+ }
+ }
+ static ImportMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestImport.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtoBench/UnittestImportPublic.cs b/csharp/src/ProtoBench/UnittestImportPublic.cs
new file mode 100644
index 00000000..4185cac7
--- /dev/null
+++ b/csharp/src/ProtoBench/UnittestImportPublic.cs
@@ -0,0 +1,333 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_import_public.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestImportPublic {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage, global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder> internal__static_protobuf_unittest_import_PublicImportMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestImportPublic() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Cixnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90",
+ "bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0IiAKE1B1YmxpY0ltcG9ydE1l",
+ "c3NhZ2USCQoBZRgBIAEoBUI+Chhjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3Sq",
+ "AiFHb29nbGUuUHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3M="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_import_PublicImportMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage, global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder>(internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor,
+ new string[] { "E", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class PublicImportMessage : pb::GeneratedMessage<PublicImportMessage, PublicImportMessage.Builder> {
+ private PublicImportMessage() { }
+ private static readonly PublicImportMessage defaultInstance = new PublicImportMessage().MakeReadOnly();
+ private static readonly string[] _publicImportMessageFieldNames = new string[] { "e" };
+ private static readonly uint[] _publicImportMessageFieldTags = new uint[] { 8 };
+ public static PublicImportMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PublicImportMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override PublicImportMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<PublicImportMessage, PublicImportMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.internal__static_protobuf_unittest_import_PublicImportMessage__FieldAccessorTable; }
+ }
+
+ public const int EFieldNumber = 1;
+ private bool hasE;
+ private int e_;
+ public bool HasE {
+ get { return hasE; }
+ }
+ public int E {
+ get { return e_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _publicImportMessageFieldNames;
+ if (hasE) {
+ output.WriteInt32(1, field_names[0], E);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasE) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, E);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static PublicImportMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PublicImportMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private PublicImportMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PublicImportMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<PublicImportMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(PublicImportMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private PublicImportMessage result;
+
+ private PublicImportMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ PublicImportMessage original = result;
+ result = new PublicImportMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override PublicImportMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Descriptor; }
+ }
+
+ public override PublicImportMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance; }
+ }
+
+ public override PublicImportMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is PublicImportMessage) {
+ return MergeFrom((PublicImportMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(PublicImportMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasE) {
+ E = other.E;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_publicImportMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _publicImportMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasE = input.ReadInt32(ref result.e_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasE {
+ get { return result.hasE; }
+ }
+ public int E {
+ get { return result.E; }
+ set { SetE(value); }
+ }
+ public Builder SetE(int value) {
+ PrepareBuilder();
+ result.hasE = true;
+ result.e_ = value;
+ return this;
+ }
+ public Builder ClearE() {
+ PrepareBuilder();
+ result.hasE = false;
+ result.e_ = 0;
+ return this;
+ }
+ }
+ static PublicImportMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtoBench/app.config b/csharp/src/ProtoBench/app.config
new file mode 100644
index 00000000..e2a5a187
--- /dev/null
+++ b/csharp/src/ProtoBench/app.config
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/></startup></configuration>
diff --git a/csharp/src/ProtoBench/google_message1.dat b/csharp/src/ProtoBench/google_message1.dat
new file mode 100644
index 00000000..bc0f064c
--- /dev/null
+++ b/csharp/src/ProtoBench/google_message1.dat
Binary files differ
diff --git a/csharp/src/ProtoBench/google_message2.dat b/csharp/src/ProtoBench/google_message2.dat
new file mode 100644
index 00000000..06c09441
--- /dev/null
+++ b/csharp/src/ProtoBench/google_message2.dat
Binary files differ
diff --git a/csharp/src/ProtoDump/Program.cs b/csharp/src/ProtoDump/Program.cs
new file mode 100644
index 00000000..a935e780
--- /dev/null
+++ b/csharp/src/ProtoDump/Program.cs
@@ -0,0 +1,88 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.IO;
+
+namespace Google.ProtocolBuffers.ProtoDump
+{
+ /// <summary>
+ /// Small utility to load a binary message and dump it in text form
+ /// </summary>
+ internal class Program
+ {
+ private static int Main(string[] args)
+ {
+ if (args.Length != 2)
+ {
+ Console.Error.WriteLine("Usage: ProtoDump <descriptor type name> <input data>");
+ Console.Error.WriteLine("The descriptor type name is the fully-qualified message name,");
+ Console.Error.WriteLine("including assembly e.g. ProjectNamespace.Message,Company.Project");
+ return 1;
+ }
+ IMessage defaultMessage;
+ try
+ {
+ defaultMessage = MessageUtil.GetDefaultMessage(args[0]);
+ }
+ catch (ArgumentException e)
+ {
+ Console.Error.WriteLine(e.Message);
+ return 1;
+ }
+ try
+ {
+ IBuilder builder = defaultMessage.WeakCreateBuilderForType();
+ if (builder == null)
+ {
+ Console.Error.WriteLine("Unable to create builder");
+ return 1;
+ }
+ byte[] inputData = File.ReadAllBytes(args[1]);
+ builder.WeakMergeFrom(ByteString.CopyFrom(inputData));
+ Console.WriteLine(TextFormat.PrintToString(builder.WeakBuild()));
+ return 0;
+ }
+ catch (Exception e)
+ {
+ Console.Error.WriteLine("Error: {0}", e.Message);
+ Console.Error.WriteLine();
+ Console.Error.WriteLine("Detailed exception information: {0}", e);
+ return 1;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtoDump/Properties/AssemblyInfo.cs b/csharp/src/ProtoDump/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..a8ce8eae
--- /dev/null
+++ b/csharp/src/ProtoDump/Properties/AssemblyInfo.cs
@@ -0,0 +1,30 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+
+[assembly: AssemblyTitle("ProtoDump")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ProtoDump")]
+[assembly: AssemblyCopyright("Copyright © 2009")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("2.4.1.555")]
+
+[assembly: AssemblyVersion("2.4.1.555")]
+[assembly: AssemblyFileVersion("2.4.1.555")] \ No newline at end of file
diff --git a/csharp/src/ProtoDump/ProtoDump.csproj b/csharp/src/ProtoDump/ProtoDump.csproj
new file mode 100644
index 00000000..b7e6c1a3
--- /dev/null
+++ b/csharp/src/ProtoDump/ProtoDump.csproj
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <EnvironmentFlavor>CLIENTPROFILE</EnvironmentFlavor>
+ <EnvironmentTemplate>NET35</EnvironmentTemplate>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{D7282E99-2DC3-405B-946F-177DB2FD2AE2}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers.ProtoDump</RootNamespace>
+ <AssemblyName>ProtoDump</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
+ <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffers</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="app.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/src/ProtoDump/app.config b/csharp/src/ProtoDump/app.config
new file mode 100644
index 00000000..e2a5a187
--- /dev/null
+++ b/csharp/src/ProtoDump/app.config
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/></startup></configuration>
diff --git a/csharp/src/ProtoMunge/Program.cs b/csharp/src/ProtoMunge/Program.cs
new file mode 100644
index 00000000..53dc3501
--- /dev/null
+++ b/csharp/src/ProtoMunge/Program.cs
@@ -0,0 +1,305 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.ProtoMunge
+{
+ /// <summary>
+ /// Utility console application which takes a message descriptor and a corresponding message,
+ /// and produces a new message with similar but random data. The data is the same length
+ /// as the original, but with random values within appropriate bands. (For instance, a compressed
+ /// integer in the range 0-127 will end up as another integer in the same range, to keep the length
+ /// the same.)
+ /// TODO(jonskeet): Potentially refactor to use an instance instead, making it simpler to
+ /// be thread-safe for external use.
+ /// </summary>
+ public sealed class Program
+ {
+ private static readonly Random rng = new Random();
+
+ private static int Main(string[] args)
+ {
+ if (args.Length != 3)
+ {
+ Console.Error.WriteLine("Usage: ProtoMunge <descriptor type name> <input data> <output file>");
+ Console.Error.WriteLine(
+ "The descriptor type name is the fully-qualified message name, including assembly.");
+ Console.Error.WriteLine(
+ "(At a future date it may be possible to do this without building the .NET assembly at all.)");
+ return 1;
+ }
+ IMessage defaultMessage;
+ try
+ {
+ defaultMessage = MessageUtil.GetDefaultMessage(args[0]);
+ }
+ catch (ArgumentException e)
+ {
+ Console.Error.WriteLine(e.Message);
+ return 1;
+ }
+ try
+ {
+ IBuilder builder = defaultMessage.WeakCreateBuilderForType();
+ byte[] inputData = File.ReadAllBytes(args[1]);
+ builder.WeakMergeFrom(ByteString.CopyFrom(inputData));
+ IMessage original = builder.WeakBuild();
+ IMessage munged = Munge(original);
+ if (original.SerializedSize != munged.SerializedSize)
+ {
+ throw new Exception("Serialized sizes don't match");
+ }
+ File.WriteAllBytes(args[2], munged.ToByteArray());
+ return 0;
+ }
+ catch (Exception e)
+ {
+ Console.Error.WriteLine("Error: {0}", e.Message);
+ Console.Error.WriteLine();
+ Console.Error.WriteLine("Detailed exception information: {0}", e);
+ return 1;
+ }
+ }
+
+ /// <summary>
+ /// Munges a message recursively.
+ /// </summary>
+ /// <returns>A new message of the same type as the original message,
+ /// but munged so that all the data is desensitised.</returns>
+ private static IMessage Munge(IMessage message)
+ {
+ IBuilder builder = message.WeakCreateBuilderForType();
+ foreach (var pair in message.AllFields)
+ {
+ if (pair.Key.IsRepeated)
+ {
+ foreach (object singleValue in (IEnumerable) pair.Value)
+ {
+ builder.WeakAddRepeatedField(pair.Key, CheckedMungeValue(pair.Key, singleValue));
+ }
+ }
+ else
+ {
+ builder[pair.Key] = CheckedMungeValue(pair.Key, pair.Value);
+ }
+ }
+ IMessage munged = builder.WeakBuild();
+ if (message.SerializedSize != munged.SerializedSize)
+ {
+ Console.WriteLine("Sub message sizes: {0}/{1}", message.SerializedSize, munged.SerializedSize);
+ }
+ return munged;
+ }
+
+ /// <summary>
+ /// Munges a single value and checks that the length ends up the same as it was before.
+ /// </summary>
+ private static object CheckedMungeValue(FieldDescriptor fieldDescriptor, object value)
+ {
+ int currentSize = CodedOutputStream.ComputeFieldSize(fieldDescriptor.FieldType, fieldDescriptor.FieldNumber,
+ value);
+ object mungedValue = MungeValue(fieldDescriptor, value);
+ int mungedSize = CodedOutputStream.ComputeFieldSize(fieldDescriptor.FieldType, fieldDescriptor.FieldNumber,
+ mungedValue);
+ // Exceptions log more easily than assertions
+ if (currentSize != mungedSize)
+ {
+ throw new Exception("Munged value had wrong size. Field type: " + fieldDescriptor.FieldType
+ + "; old value: " + value + "; new value: " + mungedValue);
+ }
+ return mungedValue;
+ }
+
+ /// <summary>
+ /// Munges a single value of the specified field descriptor. (i.e. if the field is
+ /// actually a repeated int, this method receives a single int value to munge, and
+ /// is called multiple times).
+ /// </summary>
+ private static object MungeValue(FieldDescriptor fieldDescriptor, object value)
+ {
+ switch (fieldDescriptor.FieldType)
+ {
+ case FieldType.SInt64:
+ case FieldType.Int64:
+ return (long) MungeVarint64((ulong) (long) value);
+ case FieldType.UInt64:
+ return MungeVarint64((ulong) value);
+ case FieldType.SInt32:
+ return (int) MungeVarint32((uint) (int) value);
+ case FieldType.Int32:
+ return MungeInt32((int) value);
+ case FieldType.UInt32:
+ return MungeVarint32((uint) value);
+ case FieldType.Double:
+ return rng.NextDouble();
+ case FieldType.Float:
+ return (float) rng.NextDouble();
+ case FieldType.Fixed64:
+ {
+ byte[] data = new byte[8];
+ rng.NextBytes(data);
+ return BitConverter.ToUInt64(data, 0);
+ }
+ case FieldType.Fixed32:
+ {
+ byte[] data = new byte[4];
+ rng.NextBytes(data);
+ return BitConverter.ToUInt32(data, 0);
+ }
+ case FieldType.Bool:
+ return rng.Next(2) == 1;
+ case FieldType.String:
+ return MungeString((string) value);
+ case FieldType.Group:
+ case FieldType.Message:
+ return Munge((IMessage) value);
+ case FieldType.Bytes:
+ return MungeByteString((ByteString) value);
+ case FieldType.SFixed64:
+ {
+ byte[] data = new byte[8];
+ rng.NextBytes(data);
+ return BitConverter.ToInt64(data, 0);
+ }
+ case FieldType.SFixed32:
+ {
+ byte[] data = new byte[4];
+ rng.NextBytes(data);
+ return BitConverter.ToInt32(data, 0);
+ }
+ case FieldType.Enum:
+ return MungeEnum(fieldDescriptor, (EnumValueDescriptor) value);
+ default:
+ // TODO(jonskeet): Different exception?
+ throw new ArgumentException("Invalid field descriptor");
+ }
+ }
+
+ private static object MungeString(string original)
+ {
+ foreach (char c in original)
+ {
+ if (c > 127)
+ {
+ throw new ArgumentException("Can't handle non-ascii yet");
+ }
+ }
+ char[] chars = new char[original.Length];
+ // Convert to pure ASCII - no control characters.
+ for (int i = 0; i < chars.Length; i++)
+ {
+ chars[i] = (char) rng.Next(32, 127);
+ }
+ return new string(chars);
+ }
+
+ /// <summary>
+ /// Int32 fields are slightly strange - we need to keep the sign the same way it is:
+ /// negative numbers can munge to any other negative number (it'll always take
+ /// 10 bytes) but positive numbers have to stay positive, so we can't use the
+ /// full range of 32 bits.
+ /// </summary>
+ private static int MungeInt32(int value)
+ {
+ if (value < 0)
+ {
+ return rng.Next(int.MinValue, 0);
+ }
+ int length = CodedOutputStream.ComputeRawVarint32Size((uint) value);
+ uint min = length == 1 ? 0 : 1U << ((length - 1)*7);
+ uint max = length == 5 ? int.MaxValue : (1U << (length*7)) - 1;
+ return (int) NextRandomUInt64(min, max);
+ }
+
+ private static uint MungeVarint32(uint original)
+ {
+ int length = CodedOutputStream.ComputeRawVarint32Size(original);
+ uint min = length == 1 ? 0 : 1U << ((length - 1)*7);
+ uint max = length == 5 ? uint.MaxValue : (1U << (length*7)) - 1;
+ return (uint) NextRandomUInt64(min, max);
+ }
+
+ private static ulong MungeVarint64(ulong original)
+ {
+ int length = CodedOutputStream.ComputeRawVarint64Size(original);
+ ulong min = length == 1 ? 0 : 1UL << ((length - 1)*7);
+ ulong max = length == 10 ? ulong.MaxValue : (1UL << (length*7)) - 1;
+ return NextRandomUInt64(min, max);
+ }
+
+ /// <summary>
+ /// Returns a random number in the range [min, max] (both inclusive).
+ /// </summary>
+ private static ulong NextRandomUInt64(ulong min, ulong max)
+ {
+ if (min > max)
+ {
+ throw new ArgumentException("min must be <= max; min=" + min + "; max = " + max);
+ }
+ ulong range = max - min;
+ // This isn't actually terribly good at very large ranges - but it doesn't really matter for the sake
+ // of this program.
+ return min + (ulong) (range*rng.NextDouble());
+ }
+
+ private static object MungeEnum(FieldDescriptor fieldDescriptor, EnumValueDescriptor original)
+ {
+ // Find all the values which get encoded to the same size as the current value, and pick one at random
+ int originalSize = CodedOutputStream.ComputeRawVarint32Size((uint) original.Number);
+ List<EnumValueDescriptor> sameSizeValues = new List<EnumValueDescriptor>();
+ foreach (EnumValueDescriptor candidate in fieldDescriptor.EnumType.Values)
+ {
+ if (CodedOutputStream.ComputeRawVarint32Size((uint) candidate.Number) == originalSize)
+ {
+ sameSizeValues.Add(candidate);
+ }
+ }
+ return sameSizeValues[rng.Next(sameSizeValues.Count)];
+ }
+
+ private static object MungeByteString(ByteString byteString)
+ {
+ byte[] data = new byte[byteString.Length];
+ rng.NextBytes(data);
+ return ByteString.CopyFrom(data);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtoMunge/Properties/AssemblyInfo.cs b/csharp/src/ProtoMunge/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..b78271b9
--- /dev/null
+++ b/csharp/src/ProtoMunge/Properties/AssemblyInfo.cs
@@ -0,0 +1,30 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+
+[assembly: AssemblyTitle("ProtoMunge")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ProtoMunge")]
+[assembly: AssemblyCopyright("Copyright © 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("2.4.1.555")]
+
+[assembly: AssemblyVersion("2.4.1.555")]
+[assembly: AssemblyFileVersion("2.4.1.555")] \ No newline at end of file
diff --git a/csharp/src/ProtoMunge/ProtoMunge.csproj b/csharp/src/ProtoMunge/ProtoMunge.csproj
new file mode 100644
index 00000000..60c907b1
--- /dev/null
+++ b/csharp/src/ProtoMunge/ProtoMunge.csproj
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <EnvironmentFlavor>CLIENTPROFILE</EnvironmentFlavor>
+ <EnvironmentTemplate>NET35</EnvironmentTemplate>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{8F09AF72-3327-4FA7-BC09-070B80221AB9}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers.ProtoMunge</RootNamespace>
+ <AssemblyName>ProtoMunge</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Program.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
+ <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffers</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="app.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/src/ProtoMunge/app.config b/csharp/src/ProtoMunge/app.config
new file mode 100644
index 00000000..e2a5a187
--- /dev/null
+++ b/csharp/src/ProtoMunge/app.config
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/></startup></configuration>
diff --git a/csharp/src/ProtocolBuffers.Serialization/AbstractReader.cs b/csharp/src/ProtocolBuffers.Serialization/AbstractReader.cs
new file mode 100644
index 00000000..99ecec88
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/AbstractReader.cs
@@ -0,0 +1,686 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using Google.ProtocolBuffers.Descriptors;
+
+//Disable CS3011: only CLS-compliant members can be abstract
+#pragma warning disable 3011
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// Provides a base-class that provides some basic functionality for handling type dispatching
+ /// </summary>
+ public abstract class AbstractReader : ICodedInputStream
+ {
+ private const int DefaultMaxDepth = 64;
+ private int _depth;
+
+ /// <summary> Constructs a new reader </summary>
+ protected AbstractReader() { MaxDepth = DefaultMaxDepth; }
+
+ /// <summary> Gets or sets the maximum recursion depth allowed </summary>
+ public int MaxDepth { get; set; }
+
+ /// <summary>
+ /// Merges the contents of stream into the provided message builder
+ /// </summary>
+ public TBuilder Merge<TBuilder>(TBuilder builder) where TBuilder : IBuilderLite
+ {
+ return Merge(builder, ExtensionRegistry.Empty);
+ }
+
+ /// <summary>
+ /// Merges the contents of stream into the provided message builder
+ /// </summary>
+ public abstract TBuilder Merge<TBuilder>(TBuilder builder, ExtensionRegistry registry)
+ where TBuilder : IBuilderLite;
+
+ /// <summary>
+ /// Peeks at the next field in the input stream and returns what information is available.
+ /// </summary>
+ /// <remarks>
+ /// This may be called multiple times without actually reading the field. Only after the field
+ /// is either read, or skipped, should PeekNext return a different value.
+ /// </remarks>
+ protected abstract bool PeekNext(out string field);
+
+ /// <summary>
+ /// Causes the reader to skip past this field
+ /// </summary>
+ protected abstract void Skip();
+
+ /// <summary>
+ /// Returns true if it was able to read a Boolean from the input
+ /// </summary>
+ protected abstract bool Read(ref bool value);
+
+ /// <summary>
+ /// Returns true if it was able to read a Int32 from the input
+ /// </summary>
+ protected abstract bool Read(ref int value);
+
+ /// <summary>
+ /// Returns true if it was able to read a UInt32 from the input
+ /// </summary>
+ protected abstract bool Read(ref uint value);
+
+ /// <summary>
+ /// Returns true if it was able to read a Int64 from the input
+ /// </summary>
+ protected abstract bool Read(ref long value);
+
+ /// <summary>
+ /// Returns true if it was able to read a UInt64 from the input
+ /// </summary>
+ protected abstract bool Read(ref ulong value);
+
+ /// <summary>
+ /// Returns true if it was able to read a Single from the input
+ /// </summary>
+ protected abstract bool Read(ref float value);
+
+ /// <summary>
+ /// Returns true if it was able to read a Double from the input
+ /// </summary>
+ protected abstract bool Read(ref double value);
+
+ /// <summary>
+ /// Returns true if it was able to read a String from the input
+ /// </summary>
+ protected abstract bool Read(ref string value);
+
+ /// <summary>
+ /// Returns true if it was able to read a ByteString from the input
+ /// </summary>
+ protected abstract bool Read(ref ByteString value);
+
+ /// <summary>
+ /// returns true if it was able to read a single value into the value reference. The value
+ /// stored may be of type System.String, System.Int32, or an IEnumLite from the IEnumLiteMap.
+ /// </summary>
+ protected abstract bool ReadEnum(ref object value);
+
+ /// <summary>
+ /// Merges the input stream into the provided IBuilderLite
+ /// </summary>
+ protected abstract bool ReadMessage(IBuilderLite builder, ExtensionRegistry registry);
+
+ /// <summary>
+ /// Reads the root-message preamble specific to this formatter
+ /// </summary>
+ public abstract void ReadMessageStart();
+
+ /// <summary>
+ /// Reads the root-message close specific to this formatter
+ /// </summary>
+ public abstract void ReadMessageEnd();
+
+ /// <summary>
+ /// Merges the input stream into the provided IBuilderLite
+ /// </summary>
+ public virtual bool ReadGroup(IBuilderLite value, ExtensionRegistry registry)
+ {
+ return ReadMessage(value, registry);
+ }
+
+ /// <summary>
+ /// Cursors through the array elements and stops at the end of the array
+ /// </summary>
+ protected virtual IEnumerable<string> ForeachArrayItem(string field)
+ {
+ string next = field;
+ while (true)
+ {
+ yield return next;
+
+ if (!PeekNext(out next) || next != field)
+ {
+ break;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Reads an array of T messages
+ /// </summary>
+ public virtual bool ReadMessageArray<T>(string field, ICollection<T> items, IMessageLite messageType,
+ ExtensionRegistry registry)
+ {
+ bool success = false;
+ foreach (string next in ForeachArrayItem(field))
+ {
+ IBuilderLite builder = messageType.WeakCreateBuilderForType();
+ if (ReadMessage(builder, registry))
+ {
+ items.Add((T) builder.WeakBuild());
+ success |= true;
+ }
+ }
+ return success;
+ }
+
+ /// <summary>
+ /// Reads an array of T messages as a proto-buffer group
+ /// </summary>
+ public virtual bool ReadGroupArray<T>(string field, ICollection<T> items, IMessageLite messageType,
+ ExtensionRegistry registry)
+ {
+ bool success = false;
+ foreach (string next in ForeachArrayItem(field))
+ {
+ IBuilderLite builder = messageType.WeakCreateBuilderForType();
+ if (ReadGroup(builder, registry))
+ {
+ items.Add((T) builder.WeakBuild());
+ success |= true;
+ }
+ }
+ return success;
+ }
+
+ /// <summary>
+ /// Reads an array of System.Enum type T and adds them to the collection
+ /// </summary>
+ public virtual bool ReadEnumArray(string field, ICollection<object> items)
+ {
+ bool success = false;
+ foreach (string next in ForeachArrayItem(field))
+ {
+ object temp = null;
+ if (ReadEnum(ref temp))
+ {
+ items.Add(temp);
+ success |= true;
+ }
+ }
+ return success;
+ }
+
+ /// <summary>
+ /// Reads an array of T, where T is a primitive type defined by FieldType
+ /// </summary>
+ public virtual bool ReadArray<T>(FieldType type, string field, ICollection<T> items)
+ {
+ bool success = false;
+ foreach (string next in ForeachArrayItem(field))
+ {
+ object temp = null;
+ if (ReadField(type, ref temp))
+ {
+ items.Add((T) temp);
+ success |= true;
+ }
+ }
+ return success;
+ }
+
+ /// <summary>
+ /// returns true if it was able to read a single primitive value of FieldType into the value reference
+ /// </summary>
+ public virtual bool ReadField(FieldType type, ref object value)
+ {
+ switch (type)
+ {
+ case FieldType.Bool:
+ {
+ bool temp = false;
+ if (Read(ref temp))
+ {
+ value = temp;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ case FieldType.Int64:
+ case FieldType.SInt64:
+ case FieldType.SFixed64:
+ {
+ long temp = 0;
+ if (Read(ref temp))
+ {
+ value = temp;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ case FieldType.UInt64:
+ case FieldType.Fixed64:
+ {
+ ulong temp = 0;
+ if (Read(ref temp))
+ {
+ value = temp;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ case FieldType.Int32:
+ case FieldType.SInt32:
+ case FieldType.SFixed32:
+ {
+ int temp = 0;
+ if (Read(ref temp))
+ {
+ value = temp;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ case FieldType.UInt32:
+ case FieldType.Fixed32:
+ {
+ uint temp = 0;
+ if (Read(ref temp))
+ {
+ value = temp;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ case FieldType.Float:
+ {
+ float temp = float.NaN;
+ if (Read(ref temp))
+ {
+ value = temp;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ case FieldType.Double:
+ {
+ double temp = float.NaN;
+ if (Read(ref temp))
+ {
+ value = temp;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ case FieldType.String:
+ {
+ string temp = null;
+ if (Read(ref temp))
+ {
+ value = temp;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ case FieldType.Bytes:
+ {
+ ByteString temp = null;
+ if (Read(ref temp))
+ {
+ value = temp;
+ }
+ else
+ {
+ return false;
+ }
+ break;
+ }
+ default:
+ throw InvalidProtocolBufferException.InvalidTag();
+ }
+ return true;
+ }
+
+ #region ICodedInputStream Members
+
+ bool ICodedInputStream.ReadTag(out uint fieldTag, out string fieldName)
+ {
+ fieldTag = 0;
+ if (PeekNext(out fieldName))
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool ICodedInputStream.ReadDouble(ref double value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadFloat(ref float value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadUInt64(ref ulong value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadInt64(ref long value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadInt32(ref int value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadFixed64(ref ulong value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadFixed32(ref uint value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadBool(ref bool value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadString(ref string value)
+ {
+ return Read(ref value);
+ }
+
+ void ICodedInputStream.ReadGroup(int fieldNumber, IBuilderLite builder, ExtensionRegistry extensionRegistry)
+ {
+ if (_depth++ > MaxDepth)
+ {
+ throw new RecursionLimitExceededException();
+ }
+ ReadGroup(builder, extensionRegistry);
+ _depth--;
+ }
+
+ void ICodedInputStream.ReadUnknownGroup(int fieldNumber, IBuilderLite builder)
+ {
+ throw new NotSupportedException();
+ }
+
+ void ICodedInputStream.ReadMessage(IBuilderLite builder, ExtensionRegistry extensionRegistry)
+ {
+ if (_depth++ > MaxDepth)
+ {
+ throw new RecursionLimitExceededException();
+ }
+ ReadMessage(builder, extensionRegistry);
+ _depth--;
+ }
+
+ bool ICodedInputStream.ReadBytes(ref ByteString value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadUInt32(ref uint value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadEnum(ref IEnumLite value, out object unknown, IEnumLiteMap mapping)
+ {
+ value = null;
+ unknown = null;
+ if (ReadEnum(ref unknown))
+ {
+ if (unknown is int)
+ {
+ value = mapping.FindValueByNumber((int) unknown);
+ }
+ else if (unknown is string)
+ {
+ value = mapping.FindValueByName((string) unknown);
+ }
+ return value != null;
+ }
+ return false;
+ }
+
+ bool ICodedInputStream.ReadEnum<T>(ref T value, out object rawValue)
+ {
+ rawValue = null;
+ if (ReadEnum(ref rawValue))
+ {
+ if (!EnumParser<T>.TryConvert(rawValue, ref value))
+ {
+ value = default(T);
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ bool ICodedInputStream.ReadSFixed32(ref int value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadSFixed64(ref long value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadSInt32(ref int value)
+ {
+ return Read(ref value);
+ }
+
+ bool ICodedInputStream.ReadSInt64(ref long value)
+ {
+ return Read(ref value);
+ }
+
+ void ICodedInputStream.ReadPrimitiveArray(FieldType fieldType, uint fieldTag, string fieldName,
+ ICollection<object> list)
+ {
+ ReadArray(fieldType, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadEnumArray(uint fieldTag, string fieldName, ICollection<IEnumLite> list,
+ out ICollection<object> unknown, IEnumLiteMap mapping)
+ {
+ unknown = null;
+ List<object> array = new List<object>();
+ if (ReadEnumArray(fieldName, array))
+ {
+ foreach (object rawValue in array)
+ {
+ IEnumLite item = null;
+ if (rawValue is int)
+ {
+ item = mapping.FindValueByNumber((int) rawValue);
+ }
+ else if (rawValue is string)
+ {
+ item = mapping.FindValueByName((string) rawValue);
+ }
+
+ if (item != null)
+ {
+ list.Add(item);
+ }
+ else
+ {
+ if (unknown == null)
+ {
+ unknown = new List<object>();
+ }
+ unknown.Add(rawValue);
+ }
+ }
+ }
+ }
+
+ void ICodedInputStream.ReadEnumArray<T>(uint fieldTag, string fieldName, ICollection<T> list,
+ out ICollection<object> unknown)
+ {
+ unknown = null;
+ List<object> array = new List<object>();
+ if (ReadEnumArray(fieldName, array))
+ {
+ foreach (object rawValue in array)
+ {
+ T val = default(T);
+ if (EnumParser<T>.TryConvert(rawValue, ref val))
+ {
+ list.Add(val);
+ }
+ else
+ {
+ if (unknown == null)
+ {
+ unknown = new List<object>();
+ }
+ unknown.Add(rawValue);
+ }
+ }
+ }
+ }
+
+ void ICodedInputStream.ReadMessageArray<T>(uint fieldTag, string fieldName, ICollection<T> list, T messageType,
+ ExtensionRegistry registry)
+ {
+ if (_depth++ > MaxDepth)
+ {
+ throw new RecursionLimitExceededException();
+ }
+ ReadMessageArray(fieldName, list, messageType, registry);
+ _depth--;
+ }
+
+ void ICodedInputStream.ReadGroupArray<T>(uint fieldTag, string fieldName, ICollection<T> list, T messageType,
+ ExtensionRegistry registry)
+ {
+ if (_depth++ > MaxDepth)
+ {
+ throw new RecursionLimitExceededException();
+ }
+ ReadGroupArray(fieldName, list, messageType, registry);
+ _depth--;
+ }
+
+ bool ICodedInputStream.ReadPrimitiveField(FieldType fieldType, ref object value)
+ {
+ return ReadField(fieldType, ref value);
+ }
+
+ bool ICodedInputStream.IsAtEnd
+ {
+ get
+ {
+ string next;
+ return PeekNext(out next) == false;
+ }
+ }
+
+ bool ICodedInputStream.SkipField()
+ {
+ Skip();
+ return true;
+ }
+
+ void ICodedInputStream.ReadStringArray(uint fieldTag, string fieldName, ICollection<string> list)
+ {
+ ReadArray(FieldType.String, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadBytesArray(uint fieldTag, string fieldName, ICollection<ByteString> list)
+ {
+ ReadArray(FieldType.Bytes, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadBoolArray(uint fieldTag, string fieldName, ICollection<bool> list)
+ {
+ ReadArray(FieldType.Bool, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadInt32Array(uint fieldTag, string fieldName, ICollection<int> list)
+ {
+ ReadArray(FieldType.Int32, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadSInt32Array(uint fieldTag, string fieldName, ICollection<int> list)
+ {
+ ReadArray(FieldType.SInt32, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadUInt32Array(uint fieldTag, string fieldName, ICollection<uint> list)
+ {
+ ReadArray(FieldType.UInt32, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadFixed32Array(uint fieldTag, string fieldName, ICollection<uint> list)
+ {
+ ReadArray(FieldType.Fixed32, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadSFixed32Array(uint fieldTag, string fieldName, ICollection<int> list)
+ {
+ ReadArray(FieldType.SFixed32, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadInt64Array(uint fieldTag, string fieldName, ICollection<long> list)
+ {
+ ReadArray(FieldType.Int64, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadSInt64Array(uint fieldTag, string fieldName, ICollection<long> list)
+ {
+ ReadArray(FieldType.SInt64, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadUInt64Array(uint fieldTag, string fieldName, ICollection<ulong> list)
+ {
+ ReadArray(FieldType.UInt64, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadFixed64Array(uint fieldTag, string fieldName, ICollection<ulong> list)
+ {
+ ReadArray(FieldType.Fixed64, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadSFixed64Array(uint fieldTag, string fieldName, ICollection<long> list)
+ {
+ ReadArray(FieldType.SFixed64, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadDoubleArray(uint fieldTag, string fieldName, ICollection<double> list)
+ {
+ ReadArray(FieldType.Double, fieldName, list);
+ }
+
+ void ICodedInputStream.ReadFloatArray(uint fieldTag, string fieldName, ICollection<float> list)
+ {
+ ReadArray(FieldType.Float, fieldName, list);
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/AbstractTextReader.cs b/csharp/src/ProtocolBuffers.Serialization/AbstractTextReader.cs
new file mode 100644
index 00000000..41578fab
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/AbstractTextReader.cs
@@ -0,0 +1,175 @@
+using System;
+using System.Globalization;
+using System.Xml;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// Provides a base class for text-parsing readers
+ /// </summary>
+ public abstract class AbstractTextReader : AbstractReader
+ {
+ /// <summary> Constructs a new reader </summary>
+ protected AbstractTextReader() { }
+
+ /// <summary>
+ /// Reads a typed field as a string
+ /// </summary>
+ protected abstract bool ReadAsText(ref string textValue, Type type);
+
+ /// <summary>
+ /// Returns true if it was able to read a String from the input
+ /// </summary>
+ protected override bool Read(ref string value)
+ {
+ string text = null;
+ if (ReadAsText(ref text, typeof(string)))
+ {
+ value = text;
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a Boolean from the input
+ /// </summary>
+ protected override bool Read(ref bool value)
+ {
+ string text = null;
+ if (ReadAsText(ref text, typeof(bool)))
+ {
+ value = XmlConvert.ToBoolean(text);
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a Int32 from the input
+ /// </summary>
+ protected override bool Read(ref int value)
+ {
+ string text = null;
+ if (ReadAsText(ref text, typeof(int)))
+ {
+ value = XmlConvert.ToInt32(text);
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a UInt32 from the input
+ /// </summary>
+ protected override bool Read(ref uint value)
+ {
+ string text = null;
+ if (ReadAsText(ref text, typeof(uint)))
+ {
+ value = XmlConvert.ToUInt32(text);
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a Int64 from the input
+ /// </summary>
+ protected override bool Read(ref long value)
+ {
+ string text = null;
+ if (ReadAsText(ref text, typeof(long)))
+ {
+ value = XmlConvert.ToInt64(text);
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a UInt64 from the input
+ /// </summary>
+ protected override bool Read(ref ulong value)
+ {
+ string text = null;
+ if (ReadAsText(ref text, typeof(ulong)))
+ {
+ value = XmlConvert.ToUInt64(text);
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a Single from the input
+ /// </summary>
+ protected override bool Read(ref float value)
+ {
+ string text = null;
+ if (ReadAsText(ref text, typeof(float)))
+ {
+ value = XmlConvert.ToSingle(text);
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a Double from the input
+ /// </summary>
+ protected override bool Read(ref double value)
+ {
+ string text = null;
+ if (ReadAsText(ref text, typeof(double)))
+ {
+ value = XmlConvert.ToDouble(text);
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Provides decoding of bytes read from the input stream
+ /// </summary>
+ protected virtual ByteString DecodeBytes(string bytes)
+ {
+ return ByteString.FromBase64(bytes);
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a ByteString from the input
+ /// </summary>
+ protected override bool Read(ref ByteString value)
+ {
+ string text = null;
+ if (ReadAsText(ref text, typeof(ByteString)))
+ {
+ value = DecodeBytes(text);
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// returns true if it was able to read a single value into the value reference. The value
+ /// stored may be of type System.String, System.Int32, or an IEnumLite from the IEnumLiteMap.
+ /// </summary>
+ protected override bool ReadEnum(ref object value)
+ {
+ string text = null;
+ if (ReadAsText(ref text, typeof(Enum)))
+ {
+ int number;
+ if (FrameworkPortability.TryParseInt32(text, NumberStyles.Integer, FrameworkPortability.InvariantCulture, out number))
+ {
+ value = number;
+ return true;
+ }
+ value = text;
+ return true;
+ }
+ return false;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/AbstractTextWriter.cs b/csharp/src/ProtocolBuffers.Serialization/AbstractTextWriter.cs
new file mode 100644
index 00000000..e13cbbab
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/AbstractTextWriter.cs
@@ -0,0 +1,104 @@
+using System;
+using System.Xml;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// Provides a base class for text writers
+ /// </summary>
+ public abstract class AbstractTextWriter : AbstractWriter
+ {
+ /// <summary>
+ /// Encodes raw bytes to be written to the stream
+ /// </summary>
+ protected virtual string EncodeBytes(ByteString bytes)
+ {
+ return bytes.ToBase64();
+ }
+
+ /// <summary>
+ /// Writes a typed field as a text value
+ /// </summary>
+ protected abstract void WriteAsText(string field, string textValue, object typedValue);
+
+ /// <summary>
+ /// Writes a String value
+ /// </summary>
+ protected override void Write(string field, string value)
+ {
+ WriteAsText(field, value, value);
+ }
+
+ /// <summary>
+ /// Writes a Boolean value
+ /// </summary>
+ protected override void Write(string field, bool value)
+ {
+ WriteAsText(field, XmlConvert.ToString(value), value);
+ }
+
+ /// <summary>
+ /// Writes a Int32 value
+ /// </summary>
+ protected override void Write(string field, int value)
+ {
+ WriteAsText(field, XmlConvert.ToString(value), value);
+ }
+
+ /// <summary>
+ /// Writes a UInt32 value
+ /// </summary>
+ protected override void Write(string field, uint value)
+ {
+ WriteAsText(field, XmlConvert.ToString(value), value);
+ }
+
+ /// <summary>
+ /// Writes a Int64 value
+ /// </summary>
+ protected override void Write(string field, long value)
+ {
+ WriteAsText(field, XmlConvert.ToString(value), value);
+ }
+
+ /// <summary>
+ /// Writes a UInt64 value
+ /// </summary>
+ protected override void Write(string field, ulong value)
+ {
+ WriteAsText(field, XmlConvert.ToString(value), value);
+ }
+
+ /// <summary>
+ /// Writes a Single value
+ /// </summary>
+ protected override void Write(string field, float value)
+ {
+ WriteAsText(field, XmlConvert.ToString(value), value);
+ }
+
+ /// <summary>
+ /// Writes a Double value
+ /// </summary>
+ protected override void Write(string field, double value)
+ {
+ WriteAsText(field, XmlConvert.ToString(value), value);
+ }
+
+ /// <summary>
+ /// Writes a set of bytes
+ /// </summary>
+ protected override void Write(string field, ByteString value)
+ {
+ WriteAsText(field, EncodeBytes(value), value);
+ }
+
+ /// <summary>
+ /// Writes a System.Enum by the numeric and textual value
+ /// </summary>
+ protected override void WriteEnum(string field, int number, string name)
+ {
+ WriteAsText(field, name, number);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/AbstractWriter.cs b/csharp/src/ProtocolBuffers.Serialization/AbstractWriter.cs
new file mode 100644
index 00000000..f4cfe3e1
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/AbstractWriter.cs
@@ -0,0 +1,503 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using Google.ProtocolBuffers.Descriptors;
+
+//Disable CS3011: only CLS-compliant members can be abstract
+#pragma warning disable 3011
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// Provides a base class for writers that performs some basic type dispatching
+ /// </summary>
+ public abstract class AbstractWriter : ICodedOutputStream
+ {
+ /// <summary>
+ /// Completes any pending write operations
+ /// </summary>
+ public virtual void Flush()
+ {
+ }
+
+ /// <summary>
+ /// Writes the message to the the formatted stream.
+ /// </summary>
+ public abstract void WriteMessage(IMessageLite message);
+
+ /// <summary>
+ /// Used to write any nessary root-message preamble. After this call you can call
+ /// IMessageLite.MergeTo(...) and complete the message with a call to WriteMessageEnd().
+ /// These three calls are identical to just calling WriteMessage(message);
+ /// </summary>
+ /// <example>
+ /// AbstractWriter writer;
+ /// writer.WriteMessageStart();
+ /// message.WriteTo(writer);
+ /// writer.WriteMessageEnd();
+ /// // ... or, but not both ...
+ /// writer.WriteMessage(message);
+ /// </example>
+ public abstract void WriteMessageStart();
+
+ /// <summary>
+ /// Used to complete a root-message previously started with a call to WriteMessageStart()
+ /// </summary>
+ public abstract void WriteMessageEnd();
+
+ /// <summary>
+ /// Writes a Boolean value
+ /// </summary>
+ protected abstract void Write(string field, Boolean value);
+
+ /// <summary>
+ /// Writes a Int32 value
+ /// </summary>
+ protected abstract void Write(string field, Int32 value);
+
+ /// <summary>
+ /// Writes a UInt32 value
+ /// </summary>
+ protected abstract void Write(string field, UInt32 value);
+
+ /// <summary>
+ /// Writes a Int64 value
+ /// </summary>
+ protected abstract void Write(string field, Int64 value);
+
+ /// <summary>
+ /// Writes a UInt64 value
+ /// </summary>
+ protected abstract void Write(string field, UInt64 value);
+
+ /// <summary>
+ /// Writes a Single value
+ /// </summary>
+ protected abstract void Write(string field, Single value);
+
+ /// <summary>
+ /// Writes a Double value
+ /// </summary>
+ protected abstract void Write(string field, Double value);
+
+ /// <summary>
+ /// Writes a String value
+ /// </summary>
+ protected abstract void Write(string field, String value);
+
+ /// <summary>
+ /// Writes a set of bytes
+ /// </summary>
+ protected abstract void Write(string field, ByteString value);
+
+ /// <summary>
+ /// Writes a message or group as a field
+ /// </summary>
+ protected abstract void WriteMessageOrGroup(string field, IMessageLite message);
+
+ /// <summary>
+ /// Writes a System.Enum by the numeric and textual value
+ /// </summary>
+ protected abstract void WriteEnum(string field, int number, string name);
+
+ /// <summary>
+ /// Writes a field of the type determined by field.FieldType
+ /// </summary>
+ protected virtual void WriteField(FieldType fieldType, string field, object value)
+ {
+ switch (fieldType)
+ {
+ case FieldType.Bool:
+ Write(field, (bool) value);
+ break;
+ case FieldType.Int64:
+ case FieldType.SInt64:
+ case FieldType.SFixed64:
+ Write(field, (long) value);
+ break;
+ case FieldType.UInt64:
+ case FieldType.Fixed64:
+ Write(field, (ulong) value);
+ break;
+ case FieldType.Int32:
+ case FieldType.SInt32:
+ case FieldType.SFixed32:
+ Write(field, (int) value);
+ break;
+ case FieldType.UInt32:
+ case FieldType.Fixed32:
+ Write(field, (uint) value);
+ break;
+ case FieldType.Float:
+ Write(field, (float) value);
+ break;
+ case FieldType.Double:
+ Write(field, (double) value);
+ break;
+ case FieldType.String:
+ Write(field, (string) value);
+ break;
+ case FieldType.Bytes:
+ Write(field, (ByteString) value);
+ break;
+ case FieldType.Group:
+ WriteMessageOrGroup(field, (IMessageLite) value);
+ break;
+ case FieldType.Message:
+ WriteMessageOrGroup(field, (IMessageLite) value);
+ break;
+ case FieldType.Enum:
+ {
+ if (value is IEnumLite)
+ {
+ WriteEnum(field, ((IEnumLite) value).Number, ((IEnumLite) value).Name);
+ }
+ else if (value is IConvertible)
+ {
+ WriteEnum(field, ((IConvertible)value).ToInt32(FrameworkPortability.InvariantCulture),
+ ((IConvertible)value).ToString(FrameworkPortability.InvariantCulture));
+ }
+ else
+ {
+ throw new ArgumentException("Expected an Enum type for field " + field);
+ }
+ break;
+ }
+ default:
+ throw InvalidProtocolBufferException.InvalidTag();
+ }
+ }
+
+ /// <summary>
+ /// Writes an array of field values
+ /// </summary>
+ protected virtual void WriteArray(FieldType fieldType, string field, IEnumerable items)
+ {
+ foreach (object obj in items)
+ {
+ WriteField(fieldType, field, obj);
+ }
+ }
+
+ /// <summary>
+ /// Writes a numeric unknown field of wire type: Fixed32, Fixed64, or Variant
+ /// </summary>
+ protected virtual void WriteUnknown(WireFormat.WireType wireType, int fieldNumber, ulong value)
+ {
+ }
+
+ /// <summary>
+ /// Writes an unknown field, Expect WireType of GroupStart or LengthPrefix
+ /// </summary>
+ protected virtual void WriteUnknown(WireFormat.WireType wireType, int fieldNumber, ByteString value)
+ {
+ }
+
+ #region ICodedOutputStream Members
+
+ void ICodedOutputStream.WriteUnknownGroup(int fieldNumber, IMessageLite value)
+ {
+ }
+
+ void ICodedOutputStream.WriteUnknownBytes(int fieldNumber, ByteString value)
+ {
+ }
+
+ void ICodedOutputStream.WriteUnknownField(int fieldNumber, WireFormat.WireType type, ulong value)
+ {
+ }
+
+ void ICodedOutputStream.WriteMessageSetExtension(int fieldNumber, string fieldName, IMessageLite value)
+ {
+ }
+
+ void ICodedOutputStream.WriteMessageSetExtension(int fieldNumber, string fieldName, ByteString value)
+ {
+ }
+
+ void ICodedOutputStream.WriteField(FieldType fieldType, int fieldNumber, string fieldName, object value)
+ {
+ WriteField(fieldType, fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteDouble(int fieldNumber, string fieldName, double value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteFloat(int fieldNumber, string fieldName, float value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteUInt64(int fieldNumber, string fieldName, ulong value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteInt64(int fieldNumber, string fieldName, long value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteInt32(int fieldNumber, string fieldName, int value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteFixed64(int fieldNumber, string fieldName, ulong value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteFixed32(int fieldNumber, string fieldName, uint value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteBool(int fieldNumber, string fieldName, bool value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteString(int fieldNumber, string fieldName, string value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteGroup(int fieldNumber, string fieldName, IMessageLite value)
+ {
+ WriteMessageOrGroup(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteMessage(int fieldNumber, string fieldName, IMessageLite value)
+ {
+ WriteMessageOrGroup(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteBytes(int fieldNumber, string fieldName, ByteString value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteUInt32(int fieldNumber, string fieldName, uint value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteEnum(int fieldNumber, string fieldName, int value, object rawValue)
+ {
+ WriteEnum(fieldName, value, rawValue.ToString());
+ }
+
+ void ICodedOutputStream.WriteSFixed32(int fieldNumber, string fieldName, int value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteSFixed64(int fieldNumber, string fieldName, long value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteSInt32(int fieldNumber, string fieldName, int value)
+ {
+ Write(fieldName, value);
+ }
+
+ void ICodedOutputStream.WriteSInt64(int fieldNumber, string fieldName, long value)
+ {
+ Write(fieldName, value);
+ }
+
+
+ void ICodedOutputStream.WriteArray(FieldType fieldType, int fieldNumber, string fieldName, IEnumerable list)
+ {
+ WriteArray(fieldType, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteGroupArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
+ {
+ WriteArray(FieldType.Group, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteMessageArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
+ {
+ WriteArray(FieldType.Message, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteStringArray(int fieldNumber, string fieldName, IEnumerable<string> list)
+ {
+ WriteArray(FieldType.String, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteBytesArray(int fieldNumber, string fieldName, IEnumerable<ByteString> list)
+ {
+ WriteArray(FieldType.Bytes, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteBoolArray(int fieldNumber, string fieldName, IEnumerable<bool> list)
+ {
+ WriteArray(FieldType.Bool, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteInt32Array(int fieldNumber, string fieldName, IEnumerable<int> list)
+ {
+ WriteArray(FieldType.Int32, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteSInt32Array(int fieldNumber, string fieldName, IEnumerable<int> list)
+ {
+ WriteArray(FieldType.SInt32, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteUInt32Array(int fieldNumber, string fieldName, IEnumerable<uint> list)
+ {
+ WriteArray(FieldType.UInt32, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteFixed32Array(int fieldNumber, string fieldName, IEnumerable<uint> list)
+ {
+ WriteArray(FieldType.Fixed32, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteSFixed32Array(int fieldNumber, string fieldName, IEnumerable<int> list)
+ {
+ WriteArray(FieldType.SFixed32, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteInt64Array(int fieldNumber, string fieldName, IEnumerable<long> list)
+ {
+ WriteArray(FieldType.Int64, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteSInt64Array(int fieldNumber, string fieldName, IEnumerable<long> list)
+ {
+ WriteArray(FieldType.SInt64, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteUInt64Array(int fieldNumber, string fieldName, IEnumerable<ulong> list)
+ {
+ WriteArray(FieldType.UInt64, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteFixed64Array(int fieldNumber, string fieldName, IEnumerable<ulong> list)
+ {
+ WriteArray(FieldType.Fixed64, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteSFixed64Array(int fieldNumber, string fieldName, IEnumerable<long> list)
+ {
+ WriteArray(FieldType.SFixed64, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteDoubleArray(int fieldNumber, string fieldName, IEnumerable<double> list)
+ {
+ WriteArray(FieldType.Double, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteFloatArray(int fieldNumber, string fieldName, IEnumerable<float> list)
+ {
+ WriteArray(FieldType.Float, fieldName, list);
+ }
+
+ void ICodedOutputStream.WriteEnumArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
+ {
+ WriteArray(FieldType.Enum, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedArray(FieldType fieldType, int fieldNumber, string fieldName,
+ IEnumerable list)
+ {
+ WriteArray(fieldType, fieldName, list);
+ }
+
+
+ void ICodedOutputStream.WritePackedBoolArray(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<bool> list)
+ {
+ WriteArray(FieldType.Bool, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedInt32Array(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<int> list)
+ {
+ WriteArray(FieldType.Int32, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedSInt32Array(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<int> list)
+ {
+ WriteArray(FieldType.SInt32, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedUInt32Array(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<uint> list)
+ {
+ WriteArray(FieldType.UInt32, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedFixed32Array(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<uint> list)
+ {
+ WriteArray(FieldType.Fixed32, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedSFixed32Array(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<int> list)
+ {
+ WriteArray(FieldType.SFixed32, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedInt64Array(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<long> list)
+ {
+ WriteArray(FieldType.Int64, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedSInt64Array(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<long> list)
+ {
+ WriteArray(FieldType.SInt64, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedUInt64Array(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<ulong> list)
+ {
+ WriteArray(FieldType.UInt64, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedFixed64Array(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<ulong> list)
+ {
+ WriteArray(FieldType.Fixed64, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedSFixed64Array(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<long> list)
+ {
+ WriteArray(FieldType.SFixed64, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedDoubleArray(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<double> list)
+ {
+ WriteArray(FieldType.Double, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedFloatArray(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<float> list)
+ {
+ WriteArray(FieldType.Float, fieldName, list);
+ }
+
+ void ICodedOutputStream.WritePackedEnumArray<T>(int fieldNumber, string fieldName, int computedSize,
+ IEnumerable<T> list)
+ {
+ WriteArray(FieldType.Enum, fieldName, list);
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/DictionaryReader.cs b/csharp/src/ProtocolBuffers.Serialization/DictionaryReader.cs
new file mode 100644
index 00000000..971d0fee
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/DictionaryReader.cs
@@ -0,0 +1,265 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// Allows reading messages from a name/value dictionary
+ /// </summary>
+ public class DictionaryReader : AbstractReader
+ {
+ private readonly IEnumerator<KeyValuePair<string, object>> _input;
+ private bool _ready;
+
+ /// <summary>
+ /// Creates a dictionary reader from an enumeration of KeyValuePair data, like an IDictionary
+ /// </summary>
+ public DictionaryReader(IEnumerable<KeyValuePair<string, object>> input)
+ {
+ _input = input.GetEnumerator();
+ _ready = _input.MoveNext();
+ }
+
+ /// <summary>
+ /// No-op
+ /// </summary>
+ public override void ReadMessageStart()
+ { }
+
+ /// <summary>
+ /// No-op
+ /// </summary>
+ public override void ReadMessageEnd()
+ { }
+
+ /// <summary>
+ /// Merges the contents of stream into the provided message builder
+ /// </summary>
+ public override TBuilder Merge<TBuilder>(TBuilder builder, ExtensionRegistry registry)
+ {
+ builder.WeakMergeFrom(this, registry);
+ return builder;
+ }
+
+ /// <summary>
+ /// Peeks at the next field in the input stream and returns what information is available.
+ /// </summary>
+ /// <remarks>
+ /// This may be called multiple times without actually reading the field. Only after the field
+ /// is either read, or skipped, should PeekNext return a different value.
+ /// </remarks>
+ protected override bool PeekNext(out string field)
+ {
+ field = _ready ? _input.Current.Key : null;
+ return _ready;
+ }
+
+ /// <summary>
+ /// Causes the reader to skip past this field
+ /// </summary>
+ protected override void Skip()
+ {
+ _ready = _input.MoveNext();
+ }
+
+ private bool GetValue<T>(ref T value)
+ {
+ if (!_ready)
+ {
+ return false;
+ }
+
+ object obj = _input.Current.Value;
+ if (obj is T)
+ {
+ value = (T) obj;
+ }
+ else
+ {
+ try
+ {
+ if (obj is IConvertible)
+ {
+ value = (T)Convert.ChangeType(obj, typeof(T), FrameworkPortability.InvariantCulture);
+ }
+ else
+ {
+ value = (T) obj;
+ }
+ }
+ catch
+ {
+ _ready = _input.MoveNext();
+ return false;
+ }
+ }
+ _ready = _input.MoveNext();
+ return true;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a Boolean from the input
+ /// </summary>
+ protected override bool Read(ref bool value)
+ {
+ return GetValue(ref value);
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a Int32 from the input
+ /// </summary>
+ protected override bool Read(ref int value)
+ {
+ return GetValue(ref value);
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a UInt32 from the input
+ /// </summary>
+ protected override bool Read(ref uint value)
+ {
+ return GetValue(ref value);
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a Int64 from the input
+ /// </summary>
+ protected override bool Read(ref long value)
+ {
+ return GetValue(ref value);
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a UInt64 from the input
+ /// </summary>
+ protected override bool Read(ref ulong value)
+ {
+ return GetValue(ref value);
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a Single from the input
+ /// </summary>
+ protected override bool Read(ref float value)
+ {
+ return GetValue(ref value);
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a Double from the input
+ /// </summary>
+ protected override bool Read(ref double value)
+ {
+ return GetValue(ref value);
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a String from the input
+ /// </summary>
+ protected override bool Read(ref string value)
+ {
+ return GetValue(ref value);
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a ByteString from the input
+ /// </summary>
+ protected override bool Read(ref ByteString value)
+ {
+ byte[] rawbytes = null;
+ if (GetValue(ref rawbytes))
+ {
+ value = ByteString.CopyFrom(rawbytes);
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// returns true if it was able to read a single value into the value reference. The value
+ /// stored may be of type System.String, System.Int32, or an IEnumLite from the IEnumLiteMap.
+ /// </summary>
+ protected override bool ReadEnum(ref object value)
+ {
+ return GetValue(ref value);
+ }
+
+ /// <summary>
+ /// Merges the input stream into the provided IBuilderLite
+ /// </summary>
+ protected override bool ReadMessage(IBuilderLite builder, ExtensionRegistry registry)
+ {
+ IDictionary<string, object> values = null;
+ if (GetValue(ref values))
+ {
+ new DictionaryReader(values).Merge(builder, registry);
+ return true;
+ }
+ return false;
+ }
+
+ public override bool ReadArray<T>(FieldType type, string field, ICollection<T> items)
+ {
+ object[] array = null;
+ if (GetValue(ref array))
+ {
+ if (typeof(T) == typeof(ByteString))
+ {
+ ICollection<ByteString> output = (ICollection<ByteString>) items;
+ foreach (byte[] item in array)
+ {
+ output.Add(ByteString.CopyFrom(item));
+ }
+ }
+ else
+ {
+ foreach (T item in array)
+ {
+ items.Add(item);
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ public override bool ReadEnumArray(string field, ICollection<object> items)
+ {
+ object[] array = null;
+ if (GetValue(ref array))
+ {
+ foreach (object item in array)
+ {
+ items.Add(item);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ public override bool ReadMessageArray<T>(string field, ICollection<T> items, IMessageLite messageType,
+ ExtensionRegistry registry)
+ {
+ object[] array = null;
+ if (GetValue(ref array))
+ {
+ foreach (IDictionary<string, object> item in array)
+ {
+ IBuilderLite builder = messageType.WeakCreateBuilderForType();
+ new DictionaryReader(item).Merge(builder);
+ items.Add((T) builder.WeakBuild());
+ }
+ return true;
+ }
+ return false;
+ }
+
+ public override bool ReadGroupArray<T>(string field, ICollection<T> items, IMessageLite messageType,
+ ExtensionRegistry registry)
+ {
+ return ReadMessageArray(field, items, messageType, registry);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs b/csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs
new file mode 100644
index 00000000..8cc8ed6b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/DictionaryWriter.cs
@@ -0,0 +1,200 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// Allows writing messages to a name/value dictionary
+ /// </summary>
+ public class DictionaryWriter : AbstractWriter
+ {
+ private readonly IDictionary<string, object> _output;
+
+ /// <summary>
+ /// Constructs a writer using a new dictionary
+ /// </summary>
+ public DictionaryWriter()
+ : this(new Dictionary<string, object>(StringComparer.Ordinal))
+ {
+ }
+
+ /// <summary>
+ /// Constructs a writer using an existing dictionary
+ /// </summary>
+ public DictionaryWriter(IDictionary<string, object> output)
+ {
+ ThrowHelper.ThrowIfNull(output, "output");
+ _output = output;
+ }
+
+ /// <summary>
+ /// Creates the dictionary instance for a child message.
+ /// </summary>
+ protected virtual DictionaryWriter Create()
+ {
+ return new DictionaryWriter();
+ }
+
+ /// <summary>
+ /// Accesses the dictionary that is backing this writer
+ /// </summary>
+ public IDictionary<string, object> ToDictionary()
+ {
+ return _output;
+ }
+
+ /// <summary>
+ /// Writes the message to the the formatted stream.
+ /// </summary>
+ public override void WriteMessage(IMessageLite message)
+ {
+ message.WriteTo(this);
+ }
+
+
+ /// <summary>
+ /// No-op
+ /// </summary>
+ public override void WriteMessageStart()
+ { }
+
+ /// <summary>
+ /// No-op
+ /// </summary>
+ public override void WriteMessageEnd()
+ { }
+
+ /// <summary>
+ /// Writes a Boolean value
+ /// </summary>
+ protected override void Write(string field, bool value)
+ {
+ _output[field] = value;
+ }
+
+ /// <summary>
+ /// Writes a Int32 value
+ /// </summary>
+ protected override void Write(string field, int value)
+ {
+ _output[field] = value;
+ }
+
+ /// <summary>
+ /// Writes a UInt32 value
+ /// </summary>
+ protected override void Write(string field, uint value)
+ {
+ _output[field] = value;
+ }
+
+ /// <summary>
+ /// Writes a Int64 value
+ /// </summary>
+ protected override void Write(string field, long value)
+ {
+ _output[field] = value;
+ }
+
+ /// <summary>
+ /// Writes a UInt64 value
+ /// </summary>
+ protected override void Write(string field, ulong value)
+ {
+ _output[field] = value;
+ }
+
+ /// <summary>
+ /// Writes a Single value
+ /// </summary>
+ protected override void Write(string field, float value)
+ {
+ _output[field] = value;
+ }
+
+ /// <summary>
+ /// Writes a Double value
+ /// </summary>
+ protected override void Write(string field, double value)
+ {
+ _output[field] = value;
+ }
+
+ /// <summary>
+ /// Writes a String value
+ /// </summary>
+ protected override void Write(string field, string value)
+ {
+ _output[field] = value;
+ }
+
+ /// <summary>
+ /// Writes a set of bytes
+ /// </summary>
+ protected override void Write(string field, ByteString value)
+ {
+ _output[field] = value.ToByteArray();
+ }
+
+ /// <summary>
+ /// Writes a message or group as a field
+ /// </summary>
+ protected override void WriteMessageOrGroup(string field, IMessageLite message)
+ {
+ DictionaryWriter writer = Create();
+ writer.WriteMessage(message);
+
+ _output[field] = writer.ToDictionary();
+ }
+
+ /// <summary>
+ /// Writes a System.Enum by the numeric and textual value
+ /// </summary>
+ protected override void WriteEnum(string field, int number, string name)
+ {
+ _output[field] = number;
+ }
+
+ /// <summary>
+ /// Writes an array of field values
+ /// </summary>
+ protected override void WriteArray(FieldType fieldType, string field, IEnumerable items)
+ {
+ List<object> objects = new List<object>();
+ foreach (object o in items)
+ {
+ switch (fieldType)
+ {
+ case FieldType.Group:
+ case FieldType.Message:
+ {
+ DictionaryWriter writer = Create();
+ writer.WriteMessage((IMessageLite) o);
+ objects.Add(writer.ToDictionary());
+ }
+ break;
+ case FieldType.Bytes:
+ objects.Add(((ByteString) o).ToByteArray());
+ break;
+ case FieldType.Enum:
+ if (o is IEnumLite)
+ {
+ objects.Add(((IEnumLite) o).Number);
+ }
+ else
+ {
+ objects.Add((int) o);
+ }
+ break;
+ default:
+ objects.Add(o);
+ break;
+ }
+ }
+
+ _output[field] = objects.ToArray();
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/Extensions.cs b/csharp/src/ProtocolBuffers.Serialization/Extensions.cs
new file mode 100644
index 00000000..63ac98d8
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/Extensions.cs
@@ -0,0 +1,185 @@
+using System;
+using System.Text;
+using System.IO;
+using System.Xml;
+using Google.ProtocolBuffers.Serialization;
+using Google.ProtocolBuffers.Serialization.Http;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Extension methods for using serializers on instances of IMessageLite/IBuilderLite
+ /// </summary>
+ public static class Extensions
+ {
+ #region IMessageLite Extension
+ /// <summary>
+ /// Serializes the message to JSON text. This is a trivial wrapper
+ /// around Serialization.JsonFormatWriter.WriteMessage.
+ /// </summary>
+ public static string ToJson(
+#if !NOEXTENSIONS
+ this
+#endif
+ IMessageLite message)
+ {
+ JsonFormatWriter w = JsonFormatWriter.CreateInstance();
+ w.WriteMessage(message);
+ return w.ToString();
+ }
+ /// <summary>
+ /// Serializes the message to XML text. This is a trivial wrapper
+ /// around Serialization.XmlFormatWriter.WriteMessage.
+ /// </summary>
+ public static string ToXml(
+#if !NOEXTENSIONS
+ this
+#endif
+ IMessageLite message)
+ {
+ StringWriter w = new StringWriter(new StringBuilder(4096));
+ XmlFormatWriter.CreateInstance(w).WriteMessage(message);
+ return w.ToString();
+ }
+ /// <summary>
+ /// Serializes the message to XML text using the element name provided.
+ /// This is a trivial wrapper around Serialization.XmlFormatWriter.WriteMessage.
+ /// </summary>
+ public static string ToXml(
+#if !NOEXTENSIONS
+ this
+#endif
+ IMessageLite message, string rootElementName)
+ {
+ StringWriter w = new StringWriter(new StringBuilder(4096));
+ XmlFormatWriter.CreateInstance(w).WriteMessage(rootElementName, message);
+ return w.ToString();
+ }
+
+ /// <summary>
+ /// Writes the message instance to the stream using the content type provided
+ /// </summary>
+ /// <param name="message">An instance of a message</param>
+ /// <param name="options">Options specific to writing this message and/or content type</param>
+ /// <param name="contentType">The mime type of the content to be written</param>
+ /// <param name="output">The stream to write the message to</param>
+ public static void WriteTo(
+#if !NOEXTENSIONS
+ this
+#endif
+ IMessageLite message, MessageFormatOptions options, string contentType, Stream output)
+ {
+ ICodedOutputStream codedOutput = MessageFormatFactory.CreateOutputStream(options, contentType, output);
+
+ // Output the appropriate message preamble
+ codedOutput.WriteMessageStart();
+
+ // Write the message content to the output
+ message.WriteTo(codedOutput);
+
+ // Write the closing message fragment
+ codedOutput.WriteMessageEnd();
+ codedOutput.Flush();
+ }
+
+ #endregion
+ #region IBuilderLite Extensions
+ /// <summary>
+ /// Merges a JSON object into this builder and returns
+ /// </summary>
+ public static TBuilder MergeFromJson<TBuilder>(
+#if !NOEXTENSIONS
+ this
+#endif
+ TBuilder builder, string jsonText) where TBuilder : IBuilderLite
+ {
+ return JsonFormatReader.CreateInstance(jsonText)
+ .Merge(builder);
+ }
+ /// <summary>
+ /// Merges a JSON object into this builder and returns
+ /// </summary>
+ public static TBuilder MergeFromJson<TBuilder>(
+#if !NOEXTENSIONS
+ this
+#endif
+ TBuilder builder, TextReader reader) where TBuilder : IBuilderLite
+ {
+ return MergeFromJson(builder, reader, ExtensionRegistry.Empty);
+ }
+ /// <summary>
+ /// Merges a JSON object into this builder using the extensions provided and returns
+ /// </summary>
+ public static TBuilder MergeFromJson<TBuilder>(
+#if !NOEXTENSIONS
+ this
+#endif
+ TBuilder builder, TextReader reader, ExtensionRegistry extensionRegistry) where TBuilder : IBuilderLite
+ {
+ return JsonFormatReader.CreateInstance(reader)
+ .Merge(builder, extensionRegistry);
+ }
+
+ /// <summary>
+ /// Merges an XML object into this builder and returns
+ /// </summary>
+ public static TBuilder MergeFromXml<TBuilder>(
+#if !NOEXTENSIONS
+ this
+#endif
+ TBuilder builder, XmlReader reader) where TBuilder : IBuilderLite
+ {
+ return MergeFromXml(builder, XmlFormatReader.DefaultRootElementName, reader, ExtensionRegistry.Empty);
+ }
+
+ /// <summary>
+ /// Merges an XML object into this builder and returns
+ /// </summary>
+ public static TBuilder MergeFromXml<TBuilder>(
+#if !NOEXTENSIONS
+ this
+#endif
+ TBuilder builder, string rootElementName, XmlReader reader) where TBuilder : IBuilderLite
+ {
+ return MergeFromXml(builder, rootElementName, reader, ExtensionRegistry.Empty);
+ }
+
+ /// <summary>
+ /// Merges an XML object into this builder using the extensions provided and returns
+ /// </summary>
+ public static TBuilder MergeFromXml<TBuilder>(
+#if !NOEXTENSIONS
+ this
+#endif
+ TBuilder builder, string rootElementName, XmlReader reader,
+ ExtensionRegistry extensionRegistry) where TBuilder : IBuilderLite
+ {
+ return XmlFormatReader.CreateInstance(reader)
+ .Merge(rootElementName, builder, extensionRegistry);
+ }
+
+ /// <summary>
+ /// Merges the message from the input stream based on the contentType provided
+ /// </summary>
+ /// <typeparam name="TBuilder">A type derived from IBuilderLite</typeparam>
+ /// <param name="builder">An instance of a message builder</param>
+ /// <param name="options">Options specific to reading this message and/or content type</param>
+ /// <param name="contentType">The mime type of the input stream content</param>
+ /// <param name="input">The stream to read the message from</param>
+ /// <returns>The same builder instance that was supplied in the builder parameter</returns>
+ public static TBuilder MergeFrom<TBuilder>(
+#if !NOEXTENSIONS
+ this
+#endif
+ TBuilder builder, MessageFormatOptions options, string contentType, Stream input) where TBuilder : IBuilderLite
+ {
+ ICodedInputStream codedInput = MessageFormatFactory.CreateInputStream(options, contentType, input);
+ codedInput.ReadMessageStart();
+ builder.WeakMergeFrom(codedInput, options.ExtensionRegistry);
+ codedInput.ReadMessageEnd();
+ return builder;
+ }
+
+ #endregion
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Serialization/Http/FormUrlEncodedReader.cs b/csharp/src/ProtocolBuffers.Serialization/Http/FormUrlEncodedReader.cs
new file mode 100644
index 00000000..508d76a9
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/Http/FormUrlEncodedReader.cs
@@ -0,0 +1,162 @@
+using System;
+using System.IO;
+using System.Text;
+
+namespace Google.ProtocolBuffers.Serialization.Http
+{
+ /// <summary>
+ /// Allows reading messages from a name/value dictionary
+ /// </summary>
+ public class FormUrlEncodedReader : AbstractTextReader
+ {
+ private readonly TextReader _input;
+ private string _fieldName, _fieldValue;
+ private bool _ready;
+
+ /// <summary>
+ /// Creates a dictionary reader from an enumeration of KeyValuePair data, like an IDictionary
+ /// </summary>
+ FormUrlEncodedReader(TextReader input)
+ {
+ _input = input;
+ int ch = input.Peek();
+ if (ch == '?')
+ {
+ input.Read();
+ }
+ _ready = ReadNext();
+ }
+
+ #region CreateInstance overloads
+ /// <summary>
+ /// Constructs a FormUrlEncodedReader to parse form data, or url query text into a message.
+ /// </summary>
+ public static FormUrlEncodedReader CreateInstance(Stream stream)
+ {
+ return new FormUrlEncodedReader(new StreamReader(stream, Encoding.UTF8, false));
+ }
+
+ /// <summary>
+ /// Constructs a FormUrlEncodedReader to parse form data, or url query text into a message.
+ /// </summary>
+ public static FormUrlEncodedReader CreateInstance(byte[] bytes)
+ {
+ return new FormUrlEncodedReader(new StreamReader(new MemoryStream(bytes, false), Encoding.UTF8, false));
+ }
+
+ /// <summary>
+ /// Constructs a FormUrlEncodedReader to parse form data, or url query text into a message.
+ /// </summary>
+ public static FormUrlEncodedReader CreateInstance(string text)
+ {
+ return new FormUrlEncodedReader(new StringReader(text));
+ }
+
+ /// <summary>
+ /// Constructs a FormUrlEncodedReader to parse form data, or url query text into a message.
+ /// </summary>
+ public static FormUrlEncodedReader CreateInstance(TextReader input)
+ {
+ return new FormUrlEncodedReader(input);
+ }
+ #endregion
+
+ private bool ReadNext()
+ {
+ StringBuilder field = new StringBuilder(32);
+ StringBuilder value = new StringBuilder(64);
+ int ch;
+ while (-1 != (ch = _input.Read()) && ch != '=' && ch != '&')
+ {
+ field.Append((char)ch);
+ }
+
+ if (ch != -1 && ch != '&')
+ {
+ while (-1 != (ch = _input.Read()) && ch != '&')
+ {
+ value.Append((char)ch);
+ }
+ }
+
+ _fieldName = field.ToString();
+ _fieldValue = Uri.UnescapeDataString(value.Replace('+', ' ').ToString());
+
+ return !String.IsNullOrEmpty(_fieldName);
+ }
+
+ /// <summary>
+ /// No-op
+ /// </summary>
+ public override void ReadMessageStart()
+ { }
+
+ /// <summary>
+ /// No-op
+ /// </summary>
+ public override void ReadMessageEnd()
+ { }
+
+ /// <summary>
+ /// Merges the contents of stream into the provided message builder
+ /// </summary>
+ public override TBuilder Merge<TBuilder>(TBuilder builder, ExtensionRegistry registry)
+ {
+ builder.WeakMergeFrom(this, registry);
+ return builder;
+ }
+
+ /// <summary>
+ /// Causes the reader to skip past this field
+ /// </summary>
+ protected override void Skip()
+ {
+ _ready = ReadNext();
+ }
+
+ /// <summary>
+ /// Peeks at the next field in the input stream and returns what information is available.
+ /// </summary>
+ /// <remarks>
+ /// This may be called multiple times without actually reading the field. Only after the field
+ /// is either read, or skipped, should PeekNext return a different value.
+ /// </remarks>
+ protected override bool PeekNext(out string field)
+ {
+ field = _ready ? _fieldName : null;
+ return field != null;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a String from the input
+ /// </summary>
+ protected override bool ReadAsText(ref string value, Type typeInfo)
+ {
+ if (_ready)
+ {
+ value = _fieldValue;
+ _ready = ReadNext();
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// It's unlikely this will work for anything but text data as bytes UTF8 are transformed to text and back to bytes
+ /// </summary>
+ protected override ByteString DecodeBytes(string bytes)
+ { return ByteString.CopyFromUtf8(bytes); }
+
+ /// <summary>
+ /// Not Supported
+ /// </summary>
+ public override bool ReadGroup(IBuilderLite value, ExtensionRegistry registry)
+ { throw new NotSupportedException(); }
+
+ /// <summary>
+ /// Not Supported
+ /// </summary>
+ protected override bool ReadMessage(IBuilderLite builder, ExtensionRegistry registry)
+ { throw new NotSupportedException(); }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs b/csharp/src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs
new file mode 100644
index 00000000..270af64b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/Http/MessageFormatFactory.cs
@@ -0,0 +1,112 @@
+using System;
+using System.IO;
+using System.Xml;
+using System.Text;
+
+namespace Google.ProtocolBuffers.Serialization.Http
+{
+ /// <summary>
+ /// Extensions and helpers to abstract the reading/writing of messages by a client-specified content type.
+ /// </summary>
+ public static class MessageFormatFactory
+ {
+ /// <summary>
+ /// Constructs an ICodedInputStream from the input stream based on the contentType provided
+ /// </summary>
+ /// <param name="options">Options specific to reading this message and/or content type</param>
+ /// <param name="contentType">The mime type of the input stream content</param>
+ /// <param name="input">The stream to read the message from</param>
+ /// <returns>The ICodedInputStream that can be given to the IBuilder.MergeFrom(...) method</returns>
+ public static ICodedInputStream CreateInputStream(MessageFormatOptions options, string contentType, Stream input)
+ {
+ ICodedInputStream codedInput = ContentTypeToInputStream(contentType, options, input);
+
+ if (codedInput is XmlFormatReader)
+ {
+ XmlFormatReader reader = (XmlFormatReader)codedInput;
+ reader.RootElementName = options.XmlReaderRootElementName;
+ reader.Options = options.XmlReaderOptions;
+ }
+
+ return codedInput;
+ }
+
+ /// <summary>
+ /// Writes the message instance to the stream using the content type provided
+ /// </summary>
+ /// <param name="options">Options specific to writing this message and/or content type</param>
+ /// <param name="contentType">The mime type of the content to be written</param>
+ /// <param name="output">The stream to write the message to</param>
+ /// <remarks> If you do not dispose of ICodedOutputStream some formats may yield incomplete output </remarks>
+ public static ICodedOutputStream CreateOutputStream(MessageFormatOptions options, string contentType, Stream output)
+ {
+ ICodedOutputStream codedOutput = ContentTypeToOutputStream(contentType, options, output);
+
+ if (codedOutput is JsonFormatWriter)
+ {
+ JsonFormatWriter writer = (JsonFormatWriter)codedOutput;
+ if (options.FormattedOutput)
+ {
+ writer.Formatted();
+ }
+ }
+ else if (codedOutput is XmlFormatWriter)
+ {
+ XmlFormatWriter writer = (XmlFormatWriter)codedOutput;
+ if (options.FormattedOutput)
+ {
+ XmlWriterSettings settings = new XmlWriterSettings()
+ {
+ CheckCharacters = false,
+ NewLineHandling = NewLineHandling.Entitize,
+ OmitXmlDeclaration = true,
+ Encoding = new UTF8Encoding(false),
+ Indent = true,
+ IndentChars = " ",
+ };
+ // Don't know how else to change xml writer options?
+ codedOutput = writer = XmlFormatWriter.CreateInstance(XmlWriter.Create(output, settings));
+ }
+ writer.RootElementName = options.XmlWriterRootElementName;
+ writer.Options = options.XmlWriterOptions;
+ }
+
+ return codedOutput;
+ }
+
+ private static ICodedInputStream ContentTypeToInputStream(string contentType, MessageFormatOptions options, Stream input)
+ {
+ contentType = (contentType ?? String.Empty).Split(';')[0].Trim();
+
+ CodedInputBuilder factory;
+ if(!options.MimeInputTypesReadOnly.TryGetValue(contentType, out factory) || factory == null)
+ {
+ if(String.IsNullOrEmpty(options.DefaultContentType) ||
+ !options.MimeInputTypesReadOnly.TryGetValue(options.DefaultContentType, out factory) || factory == null)
+ {
+ throw new ArgumentOutOfRangeException("contentType");
+ }
+ }
+
+ return factory(input);
+ }
+
+ private static ICodedOutputStream ContentTypeToOutputStream(string contentType, MessageFormatOptions options, Stream output)
+ {
+ contentType = (contentType ?? String.Empty).Split(';')[0].Trim();
+
+ CodedOutputBuilder factory;
+ if (!options.MimeOutputTypesReadOnly.TryGetValue(contentType, out factory) || factory == null)
+ {
+ if (String.IsNullOrEmpty(options.DefaultContentType) ||
+ !options.MimeOutputTypesReadOnly.TryGetValue(options.DefaultContentType, out factory) || factory == null)
+ {
+ throw new ArgumentOutOfRangeException("contentType");
+ }
+ }
+
+ return factory(output);
+ }
+
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/Http/MessageFormatOptions.cs b/csharp/src/ProtocolBuffers.Serialization/Http/MessageFormatOptions.cs
new file mode 100644
index 00000000..1480e50a
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/Http/MessageFormatOptions.cs
@@ -0,0 +1,176 @@
+using System;
+using System.IO;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Collections;
+
+namespace Google.ProtocolBuffers.Serialization.Http
+{
+ /// <summary>
+ /// A delegate used to specify a method that constructs an ICodedInputStream from a .NET Stream.
+ /// </summary>
+ public delegate ICodedInputStream CodedInputBuilder(Stream stream);
+ /// <summary>
+ /// A delegate used to specify a method that constructs an ICodedOutputStream from a .NET Stream.
+ /// </summary>
+ public delegate ICodedOutputStream CodedOutputBuilder(Stream stream);
+
+ /// <summary>
+ /// Defines control information for the various formatting used with HTTP services
+ /// </summary>
+ public class MessageFormatOptions
+ {
+ /// <summary>The mime type for xml content</summary>
+ /// <remarks>Other valid xml mime types include: application/binary, application/x-protobuf</remarks>
+ public const string ContentTypeProtoBuffer = "application/vnd.google.protobuf";
+
+ /// <summary>The mime type for xml content</summary>
+ /// <remarks>Other valid xml mime types include: text/xml</remarks>
+ public const string ContentTypeXml = "application/xml";
+
+ /// <summary>The mime type for json content</summary>
+ /// <remarks>
+ /// Other valid json mime types include: application/json, application/x-json,
+ /// application/x-javascript, text/javascript, text/x-javascript, text/x-json, text/json
+ /// </remarks>
+ public const string ContentTypeJson = "application/json";
+
+ /// <summary>The mime type for query strings and x-www-form-urlencoded content</summary>
+ /// <remarks>This mime type is input-only</remarks>
+ public const string ContentFormUrlEncoded = "application/x-www-form-urlencoded";
+
+ /// <summary>
+ /// Default mime-type handling for input
+ /// </summary>
+ private static readonly IDictionary<string, CodedInputBuilder> MimeInputDefaults =
+ new ReadOnlyDictionary<string, CodedInputBuilder>(
+ new Dictionary<string, CodedInputBuilder>(StringComparer.OrdinalIgnoreCase)
+ {
+ {"application/json", JsonFormatReader.CreateInstance},
+ {"application/x-json", JsonFormatReader.CreateInstance},
+ {"application/x-javascript", JsonFormatReader.CreateInstance},
+ {"text/javascript", JsonFormatReader.CreateInstance},
+ {"text/x-javascript", JsonFormatReader.CreateInstance},
+ {"text/x-json", JsonFormatReader.CreateInstance},
+ {"text/json", JsonFormatReader.CreateInstance},
+ {"text/xml", XmlFormatReader.CreateInstance},
+ {"application/xml", XmlFormatReader.CreateInstance},
+ {"application/binary", CodedInputStream.CreateInstance},
+ {"application/x-protobuf", CodedInputStream.CreateInstance},
+ {"application/vnd.google.protobuf", CodedInputStream.CreateInstance},
+ {"application/x-www-form-urlencoded", FormUrlEncodedReader.CreateInstance},
+ }
+ );
+
+ /// <summary>
+ /// Default mime-type handling for output
+ /// </summary>
+ private static readonly IDictionary<string, CodedOutputBuilder> MimeOutputDefaults =
+ new ReadOnlyDictionary<string, CodedOutputBuilder>(
+ new Dictionary<string, CodedOutputBuilder>(StringComparer.OrdinalIgnoreCase)
+ {
+ {"application/json", JsonFormatWriter.CreateInstance},
+ {"application/x-json", JsonFormatWriter.CreateInstance},
+ {"application/x-javascript", JsonFormatWriter.CreateInstance},
+ {"text/javascript", JsonFormatWriter.CreateInstance},
+ {"text/x-javascript", JsonFormatWriter.CreateInstance},
+ {"text/x-json", JsonFormatWriter.CreateInstance},
+ {"text/json", JsonFormatWriter.CreateInstance},
+ {"text/xml", XmlFormatWriter.CreateInstance},
+ {"application/xml", XmlFormatWriter.CreateInstance},
+ {"application/binary", CodedOutputStream.CreateInstance},
+ {"application/x-protobuf", CodedOutputStream.CreateInstance},
+ {"application/vnd.google.protobuf", CodedOutputStream.CreateInstance},
+ }
+ );
+
+
+
+
+ private string _defaultContentType;
+ private string _xmlReaderRootElementName;
+ private string _xmlWriterRootElementName;
+ private ExtensionRegistry _extensionRegistry;
+ private Dictionary<string, CodedInputBuilder> _mimeInputTypes;
+ private Dictionary<string, CodedOutputBuilder> _mimeOutputTypes;
+
+ /// <summary> Provides access to modify the mime-type input stream construction </summary>
+ public IDictionary<string, CodedInputBuilder> MimeInputTypes
+ {
+ get
+ {
+ return _mimeInputTypes ??
+ (_mimeInputTypes = new Dictionary<string, CodedInputBuilder>(
+ MimeInputDefaults, StringComparer.OrdinalIgnoreCase));
+ }
+ }
+
+ /// <summary> Provides access to modify the mime-type input stream construction </summary>
+ public IDictionary<string, CodedOutputBuilder> MimeOutputTypes
+ {
+ get
+ {
+ return _mimeOutputTypes ??
+ (_mimeOutputTypes = new Dictionary<string, CodedOutputBuilder>(
+ MimeOutputDefaults, StringComparer.OrdinalIgnoreCase));
+ }
+ }
+
+ internal IDictionary<string, CodedInputBuilder> MimeInputTypesReadOnly
+ { get { return _mimeInputTypes ?? MimeInputDefaults; } }
+
+ internal IDictionary<string, CodedOutputBuilder> MimeOutputTypesReadOnly
+ { get { return _mimeOutputTypes ?? MimeOutputDefaults; } }
+
+ /// <summary>
+ /// The default content type to use if the input type is null or empty. If this
+ /// value is not supplied an ArgumentOutOfRangeException exception will be raised.
+ /// </summary>
+ public string DefaultContentType
+ {
+ get { return _defaultContentType ?? String.Empty; }
+ set { _defaultContentType = value; }
+ }
+
+ /// <summary>
+ /// The extension registry to use when reading messages
+ /// </summary>
+ public ExtensionRegistry ExtensionRegistry
+ {
+ get { return _extensionRegistry ?? ExtensionRegistry.Empty; }
+ set { _extensionRegistry = value; }
+ }
+
+ /// <summary>
+ /// The name of the xml root element when reading messages
+ /// </summary>
+ public string XmlReaderRootElementName
+ {
+ get { return _xmlReaderRootElementName ?? XmlFormatReader.DefaultRootElementName; }
+ set { _xmlReaderRootElementName = value; }
+ }
+
+ /// <summary>
+ /// Xml reader options
+ /// </summary>
+ public XmlReaderOptions XmlReaderOptions { get; set; }
+
+ /// <summary>
+ /// True to use formatted output including new-lines and default indentation
+ /// </summary>
+ public bool FormattedOutput { get; set; }
+
+ /// <summary>
+ /// The name of the xml root element when writing messages
+ /// </summary>
+ public string XmlWriterRootElementName
+ {
+ get { return _xmlWriterRootElementName ?? XmlFormatWriter.DefaultRootElementName; }
+ set { _xmlWriterRootElementName = value; }
+ }
+
+ /// <summary>
+ /// Xml writer options
+ /// </summary>
+ public XmlWriterOptions XmlWriterOptions { get; set; }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/JsonFormatReader.cs b/csharp/src/ProtocolBuffers.Serialization/JsonFormatReader.cs
new file mode 100644
index 00000000..423196d8
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/JsonFormatReader.cs
@@ -0,0 +1,262 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Xml;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// JsonFormatReader is used to parse Json into a message or an array of messages
+ /// </summary>
+ public class JsonFormatReader : AbstractTextReader
+ {
+ private readonly JsonCursor _input;
+ // The expected token that ends the current item, either ']' or '}'
+ private readonly Stack<int> _stopChar;
+
+ private enum ReaderState
+ {
+ Start,
+ BeginValue,
+ EndValue,
+ BeginObject,
+ BeginArray
+ }
+
+ private string _current;
+ private ReaderState _state;
+
+ /// <summary>
+ /// Constructs a JsonFormatReader to parse Json into a message, this method does not use text encoding, all bytes MUST
+ /// represent ASCII character values.
+ /// </summary>
+ public static JsonFormatReader CreateInstance(Stream stream)
+ {
+ return new JsonFormatReader(JsonCursor.CreateInstance(stream));
+ }
+
+ /// <summary>
+ /// Constructs a JsonFormatReader to parse Json into a message, this method does not use text encoding, all bytes MUST
+ /// represent ASCII character values.
+ /// </summary>
+ public static JsonFormatReader CreateInstance(byte[] bytes)
+ {
+ return new JsonFormatReader(JsonCursor.CreateInstance(bytes));
+ }
+
+ /// <summary>
+ /// Constructs a JsonFormatReader to parse Json into a message
+ /// </summary>
+ public static JsonFormatReader CreateInstance(string jsonText)
+ {
+ return new JsonFormatReader(JsonCursor.CreateInstance(jsonText));
+ }
+
+ /// <summary>
+ /// Constructs a JsonFormatReader to parse Json into a message
+ /// </summary>
+ public static JsonFormatReader CreateInstance(TextReader input)
+ {
+ return new JsonFormatReader(JsonCursor.CreateInstance(input));
+ }
+
+ /// <summary>
+ /// Constructs a JsonFormatReader to parse Json into a message
+ /// </summary>
+ internal JsonFormatReader(JsonCursor input)
+ {
+ _input = input;
+ _stopChar = new Stack<int>();
+ _stopChar.Push(-1);
+ _state = ReaderState.Start;
+ }
+
+ /// <summary>
+ /// Constructs a JsonFormatReader to parse Json into a message
+ /// </summary>
+ protected JsonFormatReader(TextReader input)
+ : this(JsonCursor.CreateInstance(input))
+ {
+ }
+
+ /// <summary>
+ /// Returns true if the reader is currently on an array element
+ /// </summary>
+ public bool IsArrayMessage
+ {
+ get { return _input.NextChar == '['; }
+ }
+
+ /// <summary>
+ /// Returns an enumerator that is used to cursor over an array of messages
+ /// </summary>
+ /// <remarks>
+ /// This is generally used when receiving an array of messages rather than a single root message
+ /// </remarks>
+ public IEnumerable<JsonFormatReader> EnumerateArray()
+ {
+ foreach (string ignored in ForeachArrayItem(_current))
+ {
+ yield return this;
+ }
+ }
+
+ /// <summary>
+ /// Reads the root-message preamble specific to this formatter
+ /// </summary>
+ public override void ReadMessageStart()
+ {
+ _input.Consume('{');
+ _stopChar.Push('}');
+
+ _state = ReaderState.BeginObject;
+ }
+
+ /// <summary>
+ /// Reads the root-message close specific to this formatter
+ /// </summary>
+ public override void ReadMessageEnd()
+ {
+ _input.Consume((char)_stopChar.Pop());
+ _state = ReaderState.EndValue;
+ }
+
+ /// <summary>
+ /// Merges the contents of stream into the provided message builder
+ /// </summary>
+ public override TBuilder Merge<TBuilder>(TBuilder builder, ExtensionRegistry registry)
+ {
+ ReadMessageStart();
+ builder.WeakMergeFrom(this, registry);
+ ReadMessageEnd();
+ return builder;
+ }
+
+ /// <summary>
+ /// Causes the reader to skip past this field
+ /// </summary>
+ protected override void Skip()
+ {
+ object temp;
+ _input.ReadVariant(out temp);
+ _state = ReaderState.EndValue;
+ }
+
+ /// <summary>
+ /// Peeks at the next field in the input stream and returns what information is available.
+ /// </summary>
+ /// <remarks>
+ /// This may be called multiple times without actually reading the field. Only after the field
+ /// is either read, or skipped, should PeekNext return a different value.
+ /// </remarks>
+ protected override bool PeekNext(out string field)
+ {
+ field = _current;
+ if (_state == ReaderState.BeginValue)
+ {
+ return true;
+ }
+
+ int next = _input.NextChar;
+ if (next == _stopChar.Peek())
+ {
+ return false;
+ }
+
+ _input.Assert(next != -1, "Unexpected end of file.");
+
+ //not sure about this yet, it will allow {, "a":true }
+ if (_state == ReaderState.EndValue && !_input.TryConsume(','))
+ {
+ return false;
+ }
+
+ field = _current = _input.ReadString();
+ _input.Consume(':');
+ _state = ReaderState.BeginValue;
+ return true;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a String from the input
+ /// </summary>
+ protected override bool ReadAsText(ref string value, Type typeInfo)
+ {
+ object temp;
+ JsonCursor.JsType type = _input.ReadVariant(out temp);
+ _state = ReaderState.EndValue;
+
+ _input.Assert(type != JsonCursor.JsType.Array && type != JsonCursor.JsType.Object,
+ "Encountered {0} while expecting {1}", type, typeInfo);
+ if (type == JsonCursor.JsType.Null)
+ {
+ return false;
+ }
+ if (type == JsonCursor.JsType.True)
+ {
+ value = "1";
+ }
+ else if (type == JsonCursor.JsType.False)
+ {
+ value = "0";
+ }
+ else
+ {
+ value = temp as string;
+ }
+
+ //exponent representation of integer number:
+ if (value != null && type == JsonCursor.JsType.Number &&
+ (typeInfo != typeof(double) && typeInfo != typeof(float)) &&
+ value.IndexOf("e", StringComparison.OrdinalIgnoreCase) > 0)
+ {
+ value = XmlConvert.ToString((long) Math.Round(XmlConvert.ToDouble(value), 0));
+ }
+ return value != null;
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a ByteString from the input
+ /// </summary>
+ protected override bool Read(ref ByteString value)
+ {
+ string bytes = null;
+ if (Read(ref bytes))
+ {
+ value = ByteString.FromBase64(bytes);
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Cursors through the array elements and stops at the end of the array
+ /// </summary>
+ protected override IEnumerable<string> ForeachArrayItem(string field)
+ {
+ _input.Consume('[');
+ _stopChar.Push(']');
+ _state = ReaderState.BeginArray;
+ while (_input.NextChar != ']')
+ {
+ _current = field;
+ yield return field;
+ if (!_input.TryConsume(','))
+ {
+ break;
+ }
+ }
+ _input.Consume((char) _stopChar.Pop());
+ _state = ReaderState.EndValue;
+ }
+
+ /// <summary>
+ /// Merges the input stream into the provided IBuilderLite
+ /// </summary>
+ protected override bool ReadMessage(IBuilderLite builder, ExtensionRegistry registry)
+ {
+ Merge(builder, registry);
+ return true;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/JsonFormatWriter.cs b/csharp/src/ProtocolBuffers.Serialization/JsonFormatWriter.cs
new file mode 100644
index 00000000..15e0424e
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/JsonFormatWriter.cs
@@ -0,0 +1,541 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// JsonFormatWriter is a .NET 2.0 friendly json formatter for proto buffer messages. For .NET 3.5
+ /// you may also use the XmlFormatWriter with an XmlWriter created by the
+ /// <see cref="System.Runtime.Serialization.Json.JsonReaderWriterFactory">JsonReaderWriterFactory</see>.
+ /// </summary>
+ public abstract class JsonFormatWriter : AbstractTextWriter
+ {
+ #region buffering implementations
+
+ private class JsonTextWriter : JsonFormatWriter
+ {
+ private readonly char[] _buffer;
+ private TextWriter _output;
+ private int _bufferPos;
+
+ public JsonTextWriter(TextWriter output)
+ {
+ _buffer = new char[4096];
+ _bufferPos = 0;
+ _output = output;
+ _counter.Add(0);
+ }
+
+ /// <summary>
+ /// Returns the output of TextWriter.ToString() where TextWriter is the ctor argument.
+ /// </summary>
+ public override string ToString()
+ {
+ Flush();
+
+ if (_output != null)
+ {
+ return _output.ToString();
+ }
+
+ return new String(_buffer, 0, _bufferPos);
+ }
+
+ protected override void WriteToOutput(char[] chars, int offset, int len)
+ {
+ if (_bufferPos + len >= _buffer.Length)
+ {
+ if (_output == null)
+ {
+ _output = new StringWriter(new StringBuilder(_buffer.Length*2 + len));
+ }
+ Flush();
+ }
+
+ if (len < _buffer.Length)
+ {
+ if (len <= 12)
+ {
+ int stop = offset + len;
+ for (int i = offset; i < stop; i++)
+ {
+ _buffer[_bufferPos++] = chars[i];
+ }
+ }
+ else
+ {
+ Buffer.BlockCopy(chars, offset << 1, _buffer, _bufferPos << 1, len << 1);
+ _bufferPos += len;
+ }
+ }
+ else
+ {
+ _output.Write(chars, offset, len);
+ }
+ }
+
+ protected override void WriteToOutput(char ch)
+ {
+ if (_bufferPos >= _buffer.Length)
+ {
+ if (_output == null)
+ {
+ _output = new StringWriter(new StringBuilder(_buffer.Length * 2));
+ }
+ Flush();
+ }
+ _buffer[_bufferPos++] = ch;
+ }
+
+ public override void Flush()
+ {
+ if (_bufferPos > 0 && _output != null)
+ {
+ _output.Write(_buffer, 0, _bufferPos);
+ _bufferPos = 0;
+ }
+ base.Flush();
+ }
+ }
+
+ private class JsonStreamWriter : JsonFormatWriter
+ {
+ static readonly Encoding Encoding = new UTF8Encoding(false);
+ private readonly byte[] _buffer;
+ private Stream _output;
+ private int _bufferPos;
+
+ public JsonStreamWriter(Stream output)
+ {
+ _buffer = new byte[8192];
+ _bufferPos = 0;
+ _output = output;
+ _counter.Add(0);
+ }
+
+ protected override void WriteToOutput(char[] chars, int offset, int len)
+ {
+ if (_bufferPos + len >= _buffer.Length)
+ {
+ Flush();
+ }
+
+ if (len < _buffer.Length)
+ {
+ if (len <= 12)
+ {
+ int stop = offset + len;
+ for (int i = offset; i < stop; i++)
+ {
+ _buffer[_bufferPos++] = (byte) chars[i];
+ }
+ }
+ else
+ {
+ _bufferPos += Encoding.GetBytes(chars, offset, len, _buffer, _bufferPos);
+ }
+ }
+ else
+ {
+ byte[] temp = Encoding.GetBytes(chars, offset, len);
+ _output.Write(temp, 0, temp.Length);
+ }
+ }
+
+ protected override void WriteToOutput(char ch)
+ {
+ if (_bufferPos >= _buffer.Length)
+ {
+ Flush();
+ }
+ _buffer[_bufferPos++] = (byte) ch;
+ }
+
+ public override void Flush()
+ {
+ if (_bufferPos > 0 && _output != null)
+ {
+ _output.Write(_buffer, 0, _bufferPos);
+ _bufferPos = 0;
+ }
+ base.Flush();
+ }
+ }
+
+ #endregion
+
+ //Tracks the writer depth and the array element count at that depth.
+ private readonly List<int> _counter;
+ //True if the top-level of the writer is an array as opposed to a single message.
+ private bool _isArray;
+
+ /// <summary>
+ /// Constructs a JsonFormatWriter, use the ToString() member to extract the final Json on completion.
+ /// </summary>
+ protected JsonFormatWriter()
+ {
+ _counter = new List<int>();
+ }
+
+ /// <summary>
+ /// Constructs a JsonFormatWriter, use ToString() to extract the final output
+ /// </summary>
+ public static JsonFormatWriter CreateInstance()
+ {
+ return new JsonTextWriter(null);
+ }
+
+ /// <summary>
+ /// Constructs a JsonFormatWriter to output to the given text writer
+ /// </summary>
+ public static JsonFormatWriter CreateInstance(TextWriter output)
+ {
+ return new JsonTextWriter(output);
+ }
+
+ /// <summary>
+ /// Constructs a JsonFormatWriter to output to the given stream
+ /// </summary>
+ public static JsonFormatWriter CreateInstance(Stream output)
+ {
+ return new JsonStreamWriter(output);
+ }
+
+ /// <summary> Write to the output stream </summary>
+ protected void WriteToOutput(string format, params object[] args)
+ {
+ WriteToOutput(String.Format(format, args));
+ }
+
+ /// <summary> Write to the output stream </summary>
+ protected void WriteToOutput(string text)
+ {
+ WriteToOutput(text.ToCharArray(), 0, text.Length);
+ }
+
+ /// <summary> Write to the output stream </summary>
+ protected abstract void WriteToOutput(char ch);
+
+ /// <summary> Write to the output stream </summary>
+ protected abstract void WriteToOutput(char[] chars, int offset, int len);
+
+ /// <summary> Sets the output formatting to use Environment.NewLine with 4-character indentions </summary>
+ public JsonFormatWriter Formatted()
+ {
+ NewLine = FrameworkPortability.NewLine;
+ Indent = " ";
+ Whitespace = " ";
+ return this;
+ }
+
+ /// <summary> Gets or sets the characters to use for the new-line, default = empty </summary>
+ public string NewLine { get; set; }
+
+ /// <summary> Gets or sets the text to use for indenting, default = empty </summary>
+ public string Indent { get; set; }
+
+ /// <summary> Gets or sets the whitespace to use to separate the text, default = empty </summary>
+ public string Whitespace { get; set; }
+
+ private void Seperator()
+ {
+ if (_counter.Count == 0)
+ {
+ throw new InvalidOperationException("Mismatched open/close in Json writer.");
+ }
+
+ int index = _counter.Count - 1;
+ if (_counter[index] > 0)
+ {
+ WriteToOutput(',');
+ }
+
+ WriteLine(String.Empty);
+ _counter[index] = _counter[index] + 1;
+ }
+
+ private void WriteLine(string content)
+ {
+ if (!String.IsNullOrEmpty(NewLine))
+ {
+ WriteToOutput(NewLine);
+ for (int i = 1; i < _counter.Count; i++)
+ {
+ WriteToOutput(Indent);
+ }
+ }
+ else if (!String.IsNullOrEmpty(Whitespace))
+ {
+ WriteToOutput(Whitespace);
+ }
+
+ WriteToOutput(content);
+ }
+
+ private void WriteName(string field)
+ {
+ Seperator();
+ if (!String.IsNullOrEmpty(field))
+ {
+ WriteToOutput('"');
+ WriteToOutput(field);
+ WriteToOutput('"');
+ WriteToOutput(':');
+ if (!String.IsNullOrEmpty(Whitespace))
+ {
+ WriteToOutput(Whitespace);
+ }
+ }
+ }
+
+ private void EncodeText(string value)
+ {
+ char[] text = value.ToCharArray();
+ int len = text.Length;
+ int pos = 0;
+
+ while (pos < len)
+ {
+ int next = pos;
+ while (next < len && text[next] >= 32 && text[next] < 127 && text[next] != '\\' && text[next] != '/' &&
+ text[next] != '"')
+ {
+ next++;
+ }
+ WriteToOutput(text, pos, next - pos);
+ if (next < len)
+ {
+ switch (text[next])
+ {
+ case '"':
+ WriteToOutput(@"\""");
+ break;
+ case '\\':
+ WriteToOutput(@"\\");
+ break;
+ //odd at best to escape '/', most Json implementations don't, but it is defined in the rfc-4627
+ case '/':
+ WriteToOutput(@"\/");
+ break;
+ case '\b':
+ WriteToOutput(@"\b");
+ break;
+ case '\f':
+ WriteToOutput(@"\f");
+ break;
+ case '\n':
+ WriteToOutput(@"\n");
+ break;
+ case '\r':
+ WriteToOutput(@"\r");
+ break;
+ case '\t':
+ WriteToOutput(@"\t");
+ break;
+ default:
+ WriteToOutput(@"\u{0:x4}", (int) text[next]);
+ break;
+ }
+ next++;
+ }
+ pos = next;
+ }
+ }
+
+ /// <summary>
+ /// Writes a String value
+ /// </summary>
+ protected override void WriteAsText(string field, string textValue, object typedValue)
+ {
+ WriteName(field);
+ if (typedValue is bool || typedValue is int || typedValue is uint || typedValue is long ||
+ typedValue is ulong || typedValue is double || typedValue is float)
+ {
+ WriteToOutput(textValue);
+ }
+ else
+ {
+ WriteToOutput('"');
+ if (typedValue is string)
+ {
+ EncodeText(textValue);
+ }
+ else
+ {
+ WriteToOutput(textValue);
+ }
+ WriteToOutput('"');
+ }
+ }
+
+ /// <summary>
+ /// Writes a Double value
+ /// </summary>
+ protected override void Write(string field, double value)
+ {
+ if (double.IsNaN(value) || double.IsNegativeInfinity(value) || double.IsPositiveInfinity(value))
+ {
+ throw new InvalidOperationException("This format does not support NaN, Infinity, or -Infinity");
+ }
+ base.Write(field, value);
+ }
+
+ /// <summary>
+ /// Writes a Single value
+ /// </summary>
+ protected override void Write(string field, float value)
+ {
+ if (float.IsNaN(value) || float.IsNegativeInfinity(value) || float.IsPositiveInfinity(value))
+ {
+ throw new InvalidOperationException("This format does not support NaN, Infinity, or -Infinity");
+ }
+ base.Write(field, value);
+ }
+
+ // Treat enum as string
+ protected override void WriteEnum(string field, int number, string name)
+ {
+ Write(field, name);
+ }
+
+ /// <summary>
+ /// Writes an array of field values
+ /// </summary>
+ protected override void WriteArray(FieldType type, string field, IEnumerable items)
+ {
+ IEnumerator enumerator = items.GetEnumerator();
+ try
+ {
+ if (!enumerator.MoveNext())
+ {
+ return;
+ }
+ }
+ finally
+ {
+ if (enumerator is IDisposable)
+ {
+ ((IDisposable) enumerator).Dispose();
+ }
+ }
+
+ WriteName(field);
+ WriteToOutput("[");
+ _counter.Add(0);
+
+ base.WriteArray(type, String.Empty, items);
+
+ _counter.RemoveAt(_counter.Count - 1);
+ WriteLine("]");
+ }
+
+ /// <summary>
+ /// Writes a message
+ /// </summary>
+ protected override void WriteMessageOrGroup(string field, IMessageLite message)
+ {
+ WriteName(field);
+ WriteMessage(message);
+ }
+
+ /// <summary>
+ /// Writes the message to the the formatted stream.
+ /// </summary>
+ public override void WriteMessage(IMessageLite message)
+ {
+ WriteMessageStart();
+ message.WriteTo(this);
+ WriteMessageEnd();
+ }
+
+ /// <summary>
+ /// Used to write the root-message preamble, in json this is the left-curly brace '{'.
+ /// After this call you can call IMessageLite.MergeTo(...) and complete the message with
+ /// a call to WriteMessageEnd().
+ /// </summary>
+ public override void WriteMessageStart()
+ {
+ if (_isArray)
+ {
+ Seperator();
+ }
+ WriteToOutput("{");
+ _counter.Add(0);
+ }
+
+ /// <summary>
+ /// Used to complete a root-message previously started with a call to WriteMessageStart()
+ /// </summary>
+ public override void WriteMessageEnd()
+ {
+ _counter.RemoveAt(_counter.Count - 1);
+ WriteLine("}");
+ Flush();
+ }
+
+ /// <summary>
+ /// Used in streaming arrays of objects to the writer
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// using(writer.StartArray())
+ /// foreach(IMessageLite m in messages)
+ /// writer.WriteMessage(m);
+ /// </code>
+ /// </example>
+ public sealed class JsonArray : IDisposable
+ {
+ private JsonFormatWriter _writer;
+
+ internal JsonArray(JsonFormatWriter writer)
+ {
+ _writer = writer;
+ _writer.WriteToOutput("[");
+ _writer._counter.Add(0);
+ }
+
+ /// <summary>
+ /// Causes the end of the array character to be written.
+ /// </summary>
+ private void EndArray()
+ {
+ if (_writer != null)
+ {
+ _writer._counter.RemoveAt(_writer._counter.Count - 1);
+ _writer.WriteLine("]");
+ _writer.Flush();
+ }
+ _writer = null;
+ }
+
+ void IDisposable.Dispose()
+ {
+ EndArray();
+ }
+ }
+
+ /// <summary>
+ /// Used to write an array of messages as the output rather than a single message.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// using(writer.StartArray())
+ /// foreach(IMessageLite m in messages)
+ /// writer.WriteMessage(m);
+ /// </code>
+ /// </example>
+ public JsonArray StartArray()
+ {
+ if (_isArray)
+ {
+ Seperator();
+ }
+ _isArray = true;
+ return new JsonArray(this);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/JsonTextCursor.cs b/csharp/src/ProtocolBuffers.Serialization/JsonTextCursor.cs
new file mode 100644
index 00000000..19c45af7
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/JsonTextCursor.cs
@@ -0,0 +1,442 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Globalization;
+using System.IO;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// JSon Tokenizer used by JsonFormatReader
+ /// </summary>
+ internal abstract class JsonCursor
+ {
+ public enum JsType
+ {
+ String,
+ Number,
+ Object,
+ Array,
+ True,
+ False,
+ Null
+ }
+
+ #region Buffering implementations
+
+ private class JsonStreamCursor : JsonCursor
+ {
+ private readonly byte[] _buffer;
+ private int _bufferPos;
+ private readonly Stream _input;
+
+ public JsonStreamCursor(Stream input)
+ {
+ _input = input;
+ _next = _input.ReadByte();
+ }
+
+ public JsonStreamCursor(byte[] input)
+ {
+ _input = null;
+ _buffer = input;
+ _next = _buffer[_bufferPos];
+ }
+
+ protected override int Peek()
+ {
+ if (_input != null)
+ {
+ return _next;
+ }
+ else if (_bufferPos < _buffer.Length)
+ {
+ return _buffer[_bufferPos];
+ }
+ else
+ {
+ return -1;
+ }
+ }
+
+ protected override int Read()
+ {
+ if (_input != null)
+ {
+ int result = _next;
+ _next = _input.ReadByte();
+ return result;
+ }
+ else if (_bufferPos < _buffer.Length)
+ {
+ return _buffer[_bufferPos++];
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ }
+
+ private class JsonTextCursor : JsonCursor
+ {
+ private readonly char[] _buffer;
+ private int _bufferPos;
+ private readonly TextReader _input;
+
+ public JsonTextCursor(char[] input)
+ {
+ _input = null;
+ _buffer = input;
+ _bufferPos = 0;
+ _next = Peek();
+ }
+
+ public JsonTextCursor(TextReader input)
+ {
+ _input = input;
+ _next = Peek();
+ }
+
+ protected override int Peek()
+ {
+ if (_input != null)
+ {
+ return _input.Peek();
+ }
+ else if (_bufferPos < _buffer.Length)
+ {
+ return _buffer[_bufferPos];
+ }
+ else
+ {
+ return -1;
+ }
+ }
+
+ protected override int Read()
+ {
+ if (_input != null)
+ {
+ return _input.Read();
+ }
+ else if (_bufferPos < _buffer.Length)
+ {
+ return _buffer[_bufferPos++];
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ }
+
+ #endregion
+
+ protected int _next;
+ private int _lineNo, _linePos;
+
+ public static JsonCursor CreateInstance(byte[] input)
+ {
+ return new JsonStreamCursor(input);
+ }
+
+ public static JsonCursor CreateInstance(Stream input)
+ {
+ return new JsonStreamCursor(input);
+ }
+
+ public static JsonCursor CreateInstance(string input)
+ {
+ return new JsonTextCursor(input.ToCharArray());
+ }
+
+ public static JsonCursor CreateInstance(TextReader input)
+ {
+ return new JsonTextCursor(input);
+ }
+
+ protected JsonCursor()
+ {
+ _lineNo = 1;
+ _linePos = 0;
+ }
+
+ /// <summary>Returns the next character without actually 'reading' it</summary>
+ protected abstract int Peek();
+
+ /// <summary>Reads the next character in the input</summary>
+ protected abstract int Read();
+
+ public Char NextChar
+ {
+ get
+ {
+ SkipWhitespace();
+ return (char) _next;
+ }
+ }
+
+ #region Assert(...)
+
+ [DebuggerNonUserCode]
+ private string CharDisplay(int ch)
+ {
+ return ch == -1
+ ? "EOF"
+ : (ch > 32 && ch < 127)
+ ? String.Format("'{0}'", (char) ch)
+ : String.Format("'\\u{0:x4}'", ch);
+ }
+
+ [DebuggerNonUserCode]
+ private void Assert(bool cond, char expected)
+ {
+ if (!cond)
+ {
+ throw new FormatException(
+ String.Format(FrameworkPortability.InvariantCulture,
+ "({0}:{1}) error: Unexpected token {2}, expected: {3}.",
+ _lineNo, _linePos,
+ CharDisplay(_next),
+ CharDisplay(expected)
+ ));
+ }
+ }
+
+ [DebuggerNonUserCode]
+ public void Assert(bool cond, string message)
+ {
+ if (!cond)
+ {
+ throw new FormatException(
+ String.Format(FrameworkPortability.InvariantCulture,
+ "({0},{1}) error: {2}", _lineNo, _linePos, message));
+ }
+ }
+
+ [DebuggerNonUserCode]
+ public void Assert(bool cond, string format, params object[] args)
+ {
+ if (!cond)
+ {
+ if (args != null && args.Length > 0)
+ {
+ format = String.Format(format, args);
+ }
+ throw new FormatException(
+ String.Format(FrameworkPortability.InvariantCulture,
+ "({0},{1}) error: {2}", _lineNo, _linePos, format));
+ }
+ }
+
+ #endregion
+
+ private char ReadChar()
+ {
+ int ch = Read();
+ Assert(ch != -1, "Unexpected end of file.");
+ if (ch == '\n')
+ {
+ _lineNo++;
+ _linePos = 0;
+ }
+ else if (ch != '\r')
+ {
+ _linePos++;
+ }
+ _next = Peek();
+ return (char) ch;
+ }
+
+ public void Consume(char ch)
+ {
+ Assert(TryConsume(ch), ch);
+ }
+
+ public bool TryConsume(char ch)
+ {
+ SkipWhitespace();
+ if (_next == ch)
+ {
+ ReadChar();
+ return true;
+ }
+ return false;
+ }
+
+ public void Consume(string sequence)
+ {
+ SkipWhitespace();
+
+ foreach (char ch in sequence)
+ {
+ Assert(ch == ReadChar(), "Expected token '{0}'.", sequence);
+ }
+ }
+
+ public void SkipWhitespace()
+ {
+ int chnext = _next;
+ while (chnext != -1)
+ {
+ if (!Char.IsWhiteSpace((char) chnext))
+ {
+ break;
+ }
+ ReadChar();
+ chnext = _next;
+ }
+ }
+
+ public string ReadString()
+ {
+ SkipWhitespace();
+ Consume('"');
+ List<Char> sb = new List<char>(100);
+ while (_next != '"')
+ {
+ if (_next == '\\')
+ {
+ Consume('\\'); //skip the escape
+ char ch = ReadChar();
+ switch (ch)
+ {
+ case 'b':
+ sb.Add('\b');
+ break;
+ case 'f':
+ sb.Add('\f');
+ break;
+ case 'n':
+ sb.Add('\n');
+ break;
+ case 'r':
+ sb.Add('\r');
+ break;
+ case 't':
+ sb.Add('\t');
+ break;
+ case 'u':
+ {
+ string hex = new string(new char[] {ReadChar(), ReadChar(), ReadChar(), ReadChar()});
+ int result;
+ Assert(
+ FrameworkPortability.TryParseInt32(hex, NumberStyles.AllowHexSpecifier, FrameworkPortability.InvariantCulture,
+ out result),
+ "Expected a 4-character hex specifier.");
+ sb.Add((char) result);
+ break;
+ }
+ default:
+ sb.Add(ch);
+ break;
+ }
+ }
+ else
+ {
+ Assert(_next != '\n' && _next != '\r' && _next != '\f' && _next != -1, '"');
+ sb.Add(ReadChar());
+ }
+ }
+ Consume('"');
+ return new String(sb.ToArray());
+ }
+
+ public string ReadNumber()
+ {
+ SkipWhitespace();
+ List<Char> sb = new List<char>(24);
+ if (_next == '-')
+ {
+ sb.Add(ReadChar());
+ }
+ Assert(_next >= '0' && _next <= '9', "Expected a numeric type.");
+ while ((_next >= '0' && _next <= '9') || _next == '.')
+ {
+ sb.Add(ReadChar());
+ }
+ if (_next == 'e' || _next == 'E')
+ {
+ sb.Add(ReadChar());
+ if (_next == '-' || _next == '+')
+ {
+ sb.Add(ReadChar());
+ }
+ Assert(_next >= '0' && _next <= '9', "Expected a numeric type.");
+ while (_next >= '0' && _next <= '9')
+ {
+ sb.Add(ReadChar());
+ }
+ }
+ return new String(sb.ToArray());
+ }
+
+ public JsType ReadVariant(out object value)
+ {
+ SkipWhitespace();
+ switch (_next)
+ {
+ case 'n':
+ Consume("null");
+ value = null;
+ return JsType.Null;
+ case 't':
+ Consume("true");
+ value = true;
+ return JsType.True;
+ case 'f':
+ Consume("false");
+ value = false;
+ return JsType.False;
+ case '"':
+ value = ReadString();
+ return JsType.String;
+ case '{':
+ {
+ Consume('{');
+ while (NextChar != '}')
+ {
+ ReadString();
+ Consume(':');
+ object tmp;
+ ReadVariant(out tmp);
+ if (!TryConsume(','))
+ {
+ break;
+ }
+ }
+ Consume('}');
+ value = null;
+ return JsType.Object;
+ }
+ case '[':
+ {
+ Consume('[');
+ List<object> values = new List<object>();
+ while (NextChar != ']')
+ {
+ object tmp;
+ ReadVariant(out tmp);
+ values.Add(tmp);
+ if (!TryConsume(','))
+ {
+ break;
+ }
+ }
+ Consume(']');
+ value = values.ToArray();
+ return JsType.Array;
+ }
+ default:
+ if ((_next >= '0' && _next <= '9') || _next == '-')
+ {
+ value = ReadNumber();
+ return JsType.Number;
+ }
+ Assert(false, "Expected a value.");
+ throw new FormatException();
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs b/csharp/src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..0ab58120
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs
@@ -0,0 +1,65 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Reflection;
+using System.Runtime.InteropServices;
+using System.Runtime.CompilerServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+
+[assembly: AssemblyTitle("ProtocolBuffers")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ProtocolBuffers")]
+[assembly: AssemblyCopyright("Copyright © 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("2.4.1.555")]
+
+[assembly: AssemblyVersion("2.4.1.555")]
+
+#if !NOFILEVERSION
+[assembly: AssemblyFileVersion("2.4.1.555")]
+#endif
diff --git a/csharp/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj b/csharp/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj
new file mode 100644
index 00000000..4ee41ab7
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{231391AF-449C-4A39-986C-AD7F270F4750}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers.Serialization</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffers.Serialization</AssemblyName>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <TargetFrameworkProfile>Profile92</TargetFrameworkProfile>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>..\..\keys\Google.ProtocolBuffers.snk</AssemblyOriginatorKeyFile>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
+ <NoWarn>1591, 1570, 1571, 1572, 1573, 1574</NoWarn>
+ <DefineConstants>DEBUG;TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
+ <NoWarn>1591, 1570, 1571, 1572, 1573, 1574</NoWarn>
+ <DefineConstants>TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Core" Condition="'$(TargetFrameworkVersion)' != 'v2.0'" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\ProtocolBuffers\FrameworkPortability.cs">
+ <Link>FrameworkPortability.cs</Link>
+ </Compile>
+ <Compile Include="Extensions.cs" />
+ <Compile Include="Http\FormUrlEncodedReader.cs" />
+ <Compile Include="Http\MessageFormatFactory.cs" />
+ <Compile Include="Http\MessageFormatOptions.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="AbstractReader.cs" />
+ <Compile Include="AbstractTextReader.cs" />
+ <Compile Include="AbstractTextWriter.cs" />
+ <Compile Include="AbstractWriter.cs" />
+ <Compile Include="DictionaryReader.cs" />
+ <Compile Include="DictionaryWriter.cs" />
+ <Compile Include="JsonFormatReader.cs" />
+ <Compile Include="JsonFormatWriter.cs" />
+ <Compile Include="JsonTextCursor.cs" />
+ <Compile Include="RecursionLimitExceeded.cs" />
+ <Compile Include="XmlFormatReader.cs" />
+ <Compile Include="XmlFormatWriter.cs" />
+ <Compile Include="XmlReaderOptions.cs" />
+ <Compile Include="XmlWriterOptions.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
+ <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffers</Name>
+ <Private>False</Private>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj b/csharp/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj
new file mode 100644
index 00000000..5faa74f6
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{E067A59D-9D0A-4A1F-92B1-38E4457241D1}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers.Serialization</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffersLite.Serialization</AssemblyName>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <TargetFrameworkProfile>Profile92</TargetFrameworkProfile>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>..\..\keys\Google.ProtocolBuffers.snk</AssemblyOriginatorKeyFile>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
+ <NoWarn>1591, 1570, 1571, 1572, 1573, 1574</NoWarn>
+ <DefineConstants>DEBUG;TRACE;LITE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
+ <NoWarn>1591, 1570, 1571, 1572, 1573, 1574</NoWarn>
+ <DefineConstants>TRACE;LITE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Core" Condition="'$(TargetFrameworkVersion)' != 'v2.0'" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\ProtocolBuffers\FrameworkPortability.cs">
+ <Link>FrameworkPortability.cs</Link>
+ </Compile>
+ <Compile Include="Extensions.cs" />
+ <Compile Include="Http\FormUrlEncodedReader.cs" />
+ <Compile Include="Http\MessageFormatFactory.cs" />
+ <Compile Include="Http\MessageFormatOptions.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="AbstractReader.cs" />
+ <Compile Include="AbstractTextReader.cs" />
+ <Compile Include="AbstractTextWriter.cs" />
+ <Compile Include="AbstractWriter.cs" />
+ <Compile Include="DictionaryReader.cs" />
+ <Compile Include="DictionaryWriter.cs" />
+ <Compile Include="JsonFormatReader.cs" />
+ <Compile Include="JsonFormatWriter.cs" />
+ <Compile Include="JsonTextCursor.cs" />
+ <Compile Include="RecursionLimitExceeded.cs" />
+ <Compile Include="XmlFormatReader.cs" />
+ <Compile Include="XmlFormatWriter.cs" />
+ <Compile Include="XmlReaderOptions.cs" />
+ <Compile Include="XmlWriterOptions.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffersLite.csproj">
+ <Project>{6969BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffersLite</Name>
+ <Private>False</Private>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/RecursionLimitExceeded.cs b/csharp/src/ProtocolBuffers.Serialization/RecursionLimitExceeded.cs
new file mode 100644
index 00000000..14e72ba8
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/RecursionLimitExceeded.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// The exception raised when a recursion limit is reached while parsing input.
+ /// </summary>
+ public sealed class RecursionLimitExceededException : FormatException
+ {
+ const string message = "Possible malicious message had too many levels of nesting.";
+
+ internal RecursionLimitExceededException() : base(message)
+ {
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Serialization/XmlFormatReader.cs b/csharp/src/ProtocolBuffers.Serialization/XmlFormatReader.cs
new file mode 100644
index 00000000..a4f111d4
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/XmlFormatReader.cs
@@ -0,0 +1,338 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Xml;
+using System.Diagnostics;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// Parses a proto buffer from an XML document or fragment. .NET 3.5 users may also
+ /// use this class to process Json by setting the options to support Json and providing
+ /// an XmlReader obtained from <see cref="System.Runtime.Serialization.Json.JsonReaderWriterFactory"/>.
+ /// </summary>
+ public class XmlFormatReader : AbstractTextReader
+ {
+ public const string DefaultRootElementName = XmlFormatWriter.DefaultRootElementName;
+ private readonly XmlReader _input;
+ // Tracks the message element for each nested message read
+ private readonly Stack<ElementStackEntry> _elements;
+ // The default element name for ReadMessageStart
+ private string _rootElementName;
+
+ private struct ElementStackEntry
+ {
+ public readonly string LocalName;
+ public readonly int Depth;
+ public readonly bool IsEmpty;
+
+ public ElementStackEntry(string localName, int depth, bool isEmpty) : this()
+ {
+ LocalName = localName;
+ IsEmpty = isEmpty;
+ Depth = depth;
+ }
+ }
+
+ private static XmlReaderSettings DefaultSettings
+ {
+ get
+ {
+ return new XmlReaderSettings()
+ {CheckCharacters = false, IgnoreComments = true, IgnoreProcessingInstructions = true};
+ }
+ }
+
+ /// <summary>
+ /// Constructs the XmlFormatReader using the stream provided as the xml
+ /// </summary>
+ public static XmlFormatReader CreateInstance(byte[] input)
+ {
+ return new XmlFormatReader(XmlReader.Create(new MemoryStream(input, false), DefaultSettings));
+ }
+
+ /// <summary>
+ /// Constructs the XmlFormatReader using the stream provided as the xml
+ /// </summary>
+ public static XmlFormatReader CreateInstance(Stream input)
+ {
+ return new XmlFormatReader(XmlReader.Create(input, DefaultSettings));
+ }
+
+ /// <summary>
+ /// Constructs the XmlFormatReader using the string provided as the xml to be read
+ /// </summary>
+ public static XmlFormatReader CreateInstance(String input)
+ {
+ return new XmlFormatReader(XmlReader.Create(new StringReader(input), DefaultSettings));
+ }
+
+ /// <summary>
+ /// Constructs the XmlFormatReader using the xml in the TextReader
+ /// </summary>
+ public static XmlFormatReader CreateInstance(TextReader input)
+ {
+ return new XmlFormatReader(XmlReader.Create(input, DefaultSettings));
+ }
+
+ /// <summary>
+ /// Constructs the XmlFormatReader with the XmlReader
+ /// </summary>
+ public static XmlFormatReader CreateInstance(XmlReader input)
+ {
+ return new XmlFormatReader(input);
+ }
+
+ /// <summary>
+ /// Constructs the XmlFormatReader with the XmlReader and options
+ /// </summary>
+ protected XmlFormatReader(XmlReader input)
+ {
+ _input = input;
+ _rootElementName = DefaultRootElementName;
+ _elements = new Stack<ElementStackEntry>();
+ Options = XmlReaderOptions.None;
+ }
+
+ /// <summary>
+ /// Gets or sets the options to use when reading the xml
+ /// </summary>
+ public XmlReaderOptions Options { get; set; }
+
+ /// <summary>
+ /// Sets the options to use while generating the XML
+ /// </summary>
+ public XmlFormatReader SetOptions(XmlReaderOptions options)
+ {
+ Options = options;
+ return this;
+ }
+
+ /// <summary>
+ /// Gets or sets the default element name to use when using the Merge&lt;TBuilder>()
+ /// </summary>
+ public string RootElementName
+ {
+ get { return _rootElementName; }
+ set
+ {
+ ThrowHelper.ThrowIfNull(value, "RootElementName");
+ _rootElementName = value;
+ }
+ }
+
+ [DebuggerNonUserCode]
+ private static void Assert(bool cond)
+ {
+ if (!cond)
+ {
+ throw new FormatException();
+ }
+ }
+
+ /// <summary>
+ /// Reads the root-message preamble specific to this formatter
+ /// </summary>
+ public override void ReadMessageStart()
+ {
+ ReadMessageStart(_rootElementName);
+ }
+
+ /// <summary>
+ /// Reads the root-message preamble specific to this formatter
+ /// </summary>
+ public void ReadMessageStart(string element)
+ {
+ while (!_input.IsStartElement() && _input.Read())
+ {
+ continue;
+ }
+ Assert(_input.IsStartElement() && _input.LocalName == element);
+ _elements.Push(new ElementStackEntry(element, _input.Depth, _input.IsEmptyElement));
+ _input.Read();
+ }
+
+ /// <summary>
+ /// Reads the root-message close specific to this formatter, MUST be called
+ /// on the reader obtained from ReadMessageStart(string element).
+ /// </summary>
+ public override void ReadMessageEnd()
+ {
+ Assert(_elements.Count > 0);
+
+ ElementStackEntry stop = _elements.Peek();
+ while (_input.NodeType != XmlNodeType.EndElement && _input.NodeType != XmlNodeType.Element
+ && _input.Depth > stop.Depth && _input.Read())
+ {
+ continue;
+ }
+
+ if (!stop.IsEmpty)
+ {
+ Assert(_input.NodeType == XmlNodeType.EndElement
+ && _input.LocalName == stop.LocalName
+ && _input.Depth == stop.Depth);
+
+ _input.Read();
+ }
+ _elements.Pop();
+ }
+
+ /// <summary>
+ /// Merge the provided builder as an element named <see cref="RootElementName"/> in the current context
+ /// </summary>
+ public override TBuilder Merge<TBuilder>(TBuilder builder, ExtensionRegistry registry)
+ {
+ return Merge(_rootElementName, builder, registry);
+ }
+
+ /// <summary>
+ /// Merge the provided builder as an element of the current context
+ /// </summary>
+ public TBuilder Merge<TBuilder>(string element, TBuilder builder) where TBuilder : IBuilderLite
+ {
+ return Merge(element, builder, ExtensionRegistry.Empty);
+ }
+
+ /// <summary>
+ /// Merge the provided builder as an element of the current context
+ /// </summary>
+ public TBuilder Merge<TBuilder>(string element, TBuilder builder, ExtensionRegistry registry)
+ where TBuilder : IBuilderLite
+ {
+ ReadMessageStart(element);
+ builder.WeakMergeFrom(this, registry);
+ ReadMessageEnd();
+ return builder;
+ }
+
+ /// <summary>
+ /// Peeks at the next field in the input stream and returns what information is available.
+ /// </summary>
+ /// <remarks>
+ /// This may be called multiple times without actually reading the field. Only after the field
+ /// is either read, or skipped, should PeekNext return a different value.
+ /// </remarks>
+ protected override bool PeekNext(out string field)
+ {
+ ElementStackEntry stopNode;
+ if (_elements.Count == 0)
+ {
+ stopNode = new ElementStackEntry(null, _input.Depth - 1, false);
+ }
+ else
+ {
+ stopNode = _elements.Peek();
+ }
+
+ if (!stopNode.IsEmpty)
+ {
+ while (!_input.IsStartElement() && _input.Depth > stopNode.Depth && _input.Read())
+ {
+ continue;
+ }
+
+ if (_input.IsStartElement() && _input.Depth > stopNode.Depth)
+ {
+ field = _input.LocalName;
+ return true;
+ }
+ }
+ field = null;
+ return false;
+ }
+
+ /// <summary>
+ /// Causes the reader to skip past this field
+ /// </summary>
+ protected override void Skip()
+ {
+ if (_input.IsStartElement())
+ {
+ if (!_input.IsEmptyElement)
+ {
+ int depth = _input.Depth;
+ while (_input.Depth >= depth && _input.NodeType != XmlNodeType.EndElement)
+ {
+ Assert(_input.Read());
+ }
+ }
+ _input.Read();
+ }
+ }
+
+ /// <summary>
+ /// returns true if it was able to read a single value into the value reference. The value
+ /// stored may be of type System.String, System.Int32, or an IEnumLite from the IEnumLiteMap.
+ /// </summary>
+ protected override bool ReadEnum(ref object value)
+ {
+ int number;
+ string temp;
+ if (null != (temp = _input.GetAttribute("value")) && FrameworkPortability.TryParseInt32(temp, out number))
+ {
+ Skip();
+ value = number;
+ return true;
+ }
+ return base.ReadEnum(ref value);
+ }
+
+ /// <summary>
+ /// Returns true if it was able to read a String from the input
+ /// </summary>
+ protected override bool ReadAsText(ref string value, Type type)
+ {
+ Assert(_input.NodeType == XmlNodeType.Element);
+ value = _input.ReadElementContentAsString();
+
+ return true;
+ }
+
+ /// <summary>
+ /// Merges the input stream into the provided IBuilderLite
+ /// </summary>
+ protected override bool ReadMessage(IBuilderLite builder, ExtensionRegistry registry)
+ {
+ Assert(_input.IsStartElement());
+ ReadMessageStart(_input.LocalName);
+ builder.WeakMergeFrom(this, registry);
+ ReadMessageEnd();
+ return true;
+ }
+
+ private IEnumerable<string> NonNestedArrayItems(string field)
+ {
+ return base.ForeachArrayItem(field);
+ }
+
+ /// <summary>
+ /// Cursors through the array elements and stops at the end of the array
+ /// </summary>
+ protected override IEnumerable<string> ForeachArrayItem(string field)
+ {
+ bool isNested = (Options & XmlReaderOptions.ReadNestedArrays) != 0;
+
+ if (!isNested)
+ {
+ foreach (string item in NonNestedArrayItems(field))
+ {
+ yield return item;
+ }
+ }
+ else
+ {
+ string found;
+ ReadMessageStart(field);
+ if (PeekNext(out found) && found == "item")
+ {
+ foreach (string item in NonNestedArrayItems("item"))
+ {
+ yield return item;
+ }
+ }
+ ReadMessageEnd();
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/XmlFormatWriter.cs b/csharp/src/ProtocolBuffers.Serialization/XmlFormatWriter.cs
new file mode 100644
index 00000000..4bd27562
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/XmlFormatWriter.cs
@@ -0,0 +1,280 @@
+using System;
+using System.Collections;
+using System.IO;
+using System.Text;
+using System.Xml;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// Writes a proto buffer to an XML document or fragment. .NET 3.5 users may also
+ /// use this class to produce Json by setting the options to support Json and providing
+ /// an XmlWriter obtained from <see cref="System.Runtime.Serialization.Json.JsonReaderWriterFactory"/>.
+ /// </summary>
+ public class XmlFormatWriter : AbstractTextWriter
+ {
+ private static readonly Encoding DefaultEncoding = new UTF8Encoding(false);
+ public const string DefaultRootElementName = "root";
+
+ private readonly XmlWriter _output;
+ // The default element name used for WriteMessageStart
+ private string _rootElementName;
+ // Used to assert matching WriteMessageStart/WriteMessageEnd calls
+ private int _messageOpenCount;
+
+ private static XmlWriterSettings DefaultSettings(Encoding encoding)
+ {
+ return new XmlWriterSettings()
+ {
+ CheckCharacters = false,
+ NewLineHandling = NewLineHandling.Entitize,
+ OmitXmlDeclaration = true,
+ Encoding = encoding,
+ };
+ }
+
+ /// <summary>
+ /// Constructs the XmlFormatWriter to write to the given TextWriter
+ /// </summary>
+ public static XmlFormatWriter CreateInstance(TextWriter output)
+ {
+ return new XmlFormatWriter(XmlWriter.Create(output, DefaultSettings(output.Encoding)));
+ }
+
+ /// <summary>
+ /// Constructs the XmlFormatWriter to write to the given stream
+ /// </summary>
+ public static XmlFormatWriter CreateInstance(Stream output)
+ {
+ return new XmlFormatWriter(XmlWriter.Create(output, DefaultSettings(DefaultEncoding)));
+ }
+
+ /// <summary>
+ /// Constructs the XmlFormatWriter to write to the given stream
+ /// </summary>
+ public static XmlFormatWriter CreateInstance(Stream output, Encoding encoding)
+ {
+ return new XmlFormatWriter(XmlWriter.Create(output, DefaultSettings(encoding)));
+ }
+
+ /// <summary>
+ /// Constructs the XmlFormatWriter to write to the given XmlWriter
+ /// </summary>
+ public static XmlFormatWriter CreateInstance(XmlWriter output)
+ {
+ return new XmlFormatWriter(output);
+ }
+
+ protected XmlFormatWriter(XmlWriter output)
+ {
+ _output = output;
+ _messageOpenCount = 0;
+ _rootElementName = DefaultRootElementName;
+ }
+
+ /// <summary>
+ /// Gets or sets the default element name to use when using the Merge&lt;TBuilder>()
+ /// </summary>
+ public string RootElementName
+ {
+ get { return _rootElementName; }
+ set
+ {
+ ThrowHelper.ThrowIfNull(value, "RootElementName");
+ _rootElementName = value;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the options to use while generating the XML
+ /// </summary>
+ public XmlWriterOptions Options { get; set; }
+
+ /// <summary>
+ /// Sets the options to use while generating the XML
+ /// </summary>
+ public XmlFormatWriter SetOptions(XmlWriterOptions options)
+ {
+ Options = options;
+ return this;
+ }
+
+ private bool TestOption(XmlWriterOptions option)
+ {
+ return (Options & option) != 0;
+ }
+
+ /// <summary>
+ /// Completes any pending write operations
+ /// </summary>
+ public override void Flush()
+ {
+ _output.Flush();
+ base.Flush();
+ }
+
+ /// <summary>
+ /// Used to write the root-message preamble, in xml this is open element for RootElementName,
+ /// by default "&lt;root&gt;". After this call you can call IMessageLite.MergeTo(...) and
+ /// complete the message with a call to WriteMessageEnd().
+ /// </summary>
+ public override void WriteMessageStart()
+ {
+ WriteMessageStart(_rootElementName);
+ }
+
+ /// <summary>
+ /// Used to write the root-message preamble, in xml this is open element for elementName.
+ /// After this call you can call IMessageLite.MergeTo(...) and complete the message with
+ /// a call to WriteMessageEnd().
+ /// </summary>
+ public void WriteMessageStart(string elementName)
+ {
+ if (TestOption(XmlWriterOptions.OutputJsonTypes))
+ {
+ _output.WriteStartElement("root"); // json requires this is the root-element
+ _output.WriteAttributeString("type", "object");
+ }
+ else
+ {
+ _output.WriteStartElement(elementName);
+ }
+ _messageOpenCount++;
+ }
+
+ /// <summary>
+ /// Used to complete a root-message previously started with a call to WriteMessageStart()
+ /// </summary>
+ public override void WriteMessageEnd()
+ {
+ if (_messageOpenCount <= 0)
+ {
+ throw new InvalidOperationException();
+ }
+
+ _output.WriteEndElement();
+ _output.Flush();
+ _messageOpenCount--;
+ }
+
+ /// <summary>
+ /// Writes a message as an element using the name defined in <see cref="RootElementName"/>
+ /// </summary>
+ public override void WriteMessage(IMessageLite message)
+ {
+ WriteMessage(_rootElementName, message);
+ }
+
+ /// <summary>
+ /// Writes a message as an element with the given name
+ /// </summary>
+ public void WriteMessage(string elementName, IMessageLite message)
+ {
+ WriteMessageStart(elementName);
+ message.WriteTo(this);
+ WriteMessageEnd();
+ }
+
+ /// <summary>
+ /// Writes a message
+ /// </summary>
+ protected override void WriteMessageOrGroup(string field, IMessageLite message)
+ {
+ _output.WriteStartElement(field);
+
+ if (TestOption(XmlWriterOptions.OutputJsonTypes))
+ {
+ _output.WriteAttributeString("type", "object");
+ }
+
+ message.WriteTo(this);
+ _output.WriteEndElement();
+ }
+
+ /// <summary>
+ /// Writes a String value
+ /// </summary>
+ protected override void WriteAsText(string field, string textValue, object typedValue)
+ {
+ _output.WriteStartElement(field);
+
+ if (TestOption(XmlWriterOptions.OutputJsonTypes))
+ {
+ if (typedValue is int || typedValue is uint || typedValue is long || typedValue is ulong ||
+ typedValue is double || typedValue is float)
+ {
+ _output.WriteAttributeString("type", "number");
+ }
+ else if (typedValue is bool)
+ {
+ _output.WriteAttributeString("type", "boolean");
+ }
+ }
+ _output.WriteString(textValue);
+
+ //Empty strings should not be written as empty elements '<item/>', rather as '<item></item>'
+ if (_output.WriteState == WriteState.Element)
+ {
+ _output.WriteRaw("");
+ }
+
+ _output.WriteEndElement();
+ }
+
+ /// <summary>
+ /// Writes an array of field values
+ /// </summary>
+ protected override void WriteArray(FieldType fieldType, string field, IEnumerable items)
+ {
+ //see if it's empty
+ IEnumerator eitems = items.GetEnumerator();
+ try
+ {
+ if (!eitems.MoveNext())
+ {
+ return;
+ }
+ }
+ finally
+ {
+ if (eitems is IDisposable)
+ {
+ ((IDisposable) eitems).Dispose();
+ }
+ }
+
+ if (TestOption(XmlWriterOptions.OutputNestedArrays | XmlWriterOptions.OutputJsonTypes))
+ {
+ _output.WriteStartElement(field);
+ if (TestOption(XmlWriterOptions.OutputJsonTypes))
+ {
+ _output.WriteAttributeString("type", "array");
+ }
+
+ base.WriteArray(fieldType, "item", items);
+ _output.WriteEndElement();
+ }
+ else
+ {
+ base.WriteArray(fieldType, field, items);
+ }
+ }
+
+ /// <summary>
+ /// Writes a System.Enum by the numeric and textual value
+ /// </summary>
+ protected override void WriteEnum(string field, int number, string name)
+ {
+ _output.WriteStartElement(field);
+
+ if (!TestOption(XmlWriterOptions.OutputJsonTypes) && TestOption(XmlWriterOptions.OutputEnumValues))
+ {
+ _output.WriteAttributeString("value", XmlConvert.ToString(number));
+ }
+
+ _output.WriteString(name);
+ _output.WriteEndElement();
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/XmlReaderOptions.cs b/csharp/src/ProtocolBuffers.Serialization/XmlReaderOptions.cs
new file mode 100644
index 00000000..f7eca1d7
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/XmlReaderOptions.cs
@@ -0,0 +1,17 @@
+using System;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// Options available for the xml reader output
+ /// </summary>
+ [Flags]
+ public enum XmlReaderOptions
+ {
+ /// <summary> Simple xml formatting with no attributes </summary>
+ None,
+
+ /// <summary> Requires that arrays items are nested in an &lt;item> element </summary>
+ ReadNestedArrays = 1,
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Serialization/XmlWriterOptions.cs b/csharp/src/ProtocolBuffers.Serialization/XmlWriterOptions.cs
new file mode 100644
index 00000000..7d740ee3
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Serialization/XmlWriterOptions.cs
@@ -0,0 +1,24 @@
+using System;
+
+namespace Google.ProtocolBuffers.Serialization
+{
+ /// <summary>
+ /// Options available for the xml writer output
+ /// </summary>
+ [Flags]
+ public enum XmlWriterOptions
+ {
+ /// <summary> Simple xml formatting with no attributes </summary>
+ None,
+
+ /// <summary> Writes the 'value' attribute on all enumerations with the numeric identifier </summary>
+ OutputEnumValues = 0x1,
+
+ /// <summary> Embeds array items into child &lt;item> elements </summary>
+ OutputNestedArrays = 0x4,
+
+ /// <summary> Outputs the 'type' attribute for compatibility with the <see cref="System.Runtime.Serialization.Json.JsonReaderWriterFactory">JsonReaderWriterFactory</see> </summary>
+ /// <remarks> This option must, by nessessity, also enable NestedArrayItems </remarks>
+ OutputJsonTypes = 0x8,
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs b/csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs
new file mode 100644
index 00000000..8118808b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/AbstractMessageTest.cs
@@ -0,0 +1,548 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class AbstractMessageTest
+ {
+ [Test]
+ public void Clear()
+ {
+ AbstractMessageWrapper message =
+ new AbstractMessageWrapper.Builder(TestAllTypes.CreateBuilder(TestUtil.GetAllSet())).Clear().Build();
+ TestUtil.AssertClear((TestAllTypes) message.WrappedMessage);
+ }
+
+ [Test]
+ public void Copy()
+ {
+ AbstractMessageWrapper message =
+ new AbstractMessageWrapper.Builder(TestAllTypes.CreateBuilder()).MergeFrom(TestUtil.GetAllSet()).Build();
+ TestUtil.AssertAllFieldsSet((TestAllTypes) message.WrappedMessage);
+ }
+
+ [Test]
+ public void CreateAndBuild()
+ {
+ TestAllTypes.CreateBuilder()
+ .Build();
+ }
+
+ [Test]
+ public void SerializedSize()
+ {
+ TestAllTypes message = TestUtil.GetAllSet();
+ IMessage abstractMessage = new AbstractMessageWrapper(TestUtil.GetAllSet());
+
+ Assert.AreEqual(message.SerializedSize, abstractMessage.SerializedSize);
+ }
+
+ [Test]
+ public void Serialization()
+ {
+ IMessage abstractMessage = new AbstractMessageWrapper(TestUtil.GetAllSet());
+ TestUtil.AssertAllFieldsSet(TestAllTypes.ParseFrom(abstractMessage.ToByteString()));
+ Assert.AreEqual(TestUtil.GetAllSet().ToByteString(), abstractMessage.ToByteString());
+ }
+
+ [Test]
+ public void Parsing()
+ {
+ IBuilder builder = new AbstractMessageWrapper.Builder(TestAllTypes.CreateBuilder());
+ AbstractMessageWrapper message =
+ (AbstractMessageWrapper) builder.WeakMergeFrom(TestUtil.GetAllSet().ToByteString()).WeakBuild();
+ TestUtil.AssertAllFieldsSet((TestAllTypes) message.WrappedMessage);
+ }
+
+ [Test]
+ public void PackedSerialization()
+ {
+ IMessage abstractMessage = new AbstractMessageWrapper(TestUtil.GetPackedSet());
+ TestUtil.AssertPackedFieldsSet(TestPackedTypes.ParseFrom(abstractMessage.ToByteString()));
+ Assert.AreEqual(TestUtil.GetPackedSet().ToByteString(), abstractMessage.ToByteString());
+ }
+
+ [Test]
+ public void PackedParsing()
+ {
+ AbstractMessageWrapper.Builder builder = new AbstractMessageWrapper.Builder(TestPackedTypes.CreateBuilder());
+ AbstractMessageWrapper message = builder.MergeFrom(TestUtil.GetPackedSet().ToByteString()).Build();
+ TestUtil.AssertPackedFieldsSet((TestPackedTypes)message.WrappedMessage);
+ }
+
+ [Test]
+ public void UnpackedParsingOfPackedInput()
+ {
+ byte[] bytes = TestUtil.GetPackedSet().ToByteArray();
+ TestUnpackedTypes message = TestUnpackedTypes.ParseFrom(bytes);
+ TestUtil.AssertUnpackedFieldsSet(message);
+ }
+
+ [Test]
+ public void PackedParsingOfUnpackedInput()
+ {
+ byte[] bytes = TestUnpackedTypes.ParseFrom(TestUtil.GetPackedSet().ToByteArray()).ToByteArray();
+ TestPackedTypes message = TestPackedTypes.ParseFrom(bytes);
+ TestUtil.AssertPackedFieldsSet(message);
+ }
+
+ [Test]
+ public void UnpackedParsingOfPackedInputExtensions()
+ {
+ byte[] bytes = TestUtil.GetPackedSet().ToByteArray();
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ Unittest.RegisterAllExtensions(registry);
+ UnittestImport.RegisterAllExtensions(registry);
+ TestUnpackedExtensions message = TestUnpackedExtensions.ParseFrom(bytes, registry);
+ TestUtil.AssertUnpackedExtensionsSet(message);
+ }
+
+ [Test]
+ public void PackedParsingOfUnpackedInputExtensions()
+ {
+ byte[] bytes = TestUnpackedTypes.ParseFrom(TestUtil.GetPackedSet().ToByteArray()).ToByteArray();
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ Unittest.RegisterAllExtensions(registry);
+ TestPackedExtensions message = TestPackedExtensions.ParseFrom(bytes, registry);
+ TestUtil.AssertPackedExtensionsSet(message);
+ }
+
+ [Test]
+ public void OptimizedForSize()
+ {
+ // We're mostly only Checking that this class was compiled successfully.
+ TestOptimizedForSize message = TestOptimizedForSize.CreateBuilder().SetI(1).Build();
+ message = TestOptimizedForSize.ParseFrom(message.ToByteString());
+ Assert.AreEqual(2, message.SerializedSize);
+ }
+
+ // -----------------------------------------------------------------
+ // Tests for isInitialized().
+
+ private static readonly TestRequired TestRequiredUninitialized = TestRequired.DefaultInstance;
+
+ private static readonly TestRequired TestRequiredInitialized =
+ TestRequired.CreateBuilder().SetA(1).SetB(2).SetC(3).Build();
+
+ [Test]
+ public void IsInitialized()
+ {
+ TestRequired.Builder builder = TestRequired.CreateBuilder();
+ AbstractMessageWrapper.Builder abstractBuilder = new AbstractMessageWrapper.Builder(builder);
+
+ Assert.IsFalse(abstractBuilder.IsInitialized);
+ builder.A = 1;
+ Assert.IsFalse(abstractBuilder.IsInitialized);
+ builder.B = 1;
+ Assert.IsFalse(abstractBuilder.IsInitialized);
+ builder.C = 1;
+ Assert.IsTrue(abstractBuilder.IsInitialized);
+ }
+
+ [Test]
+ public void ForeignIsInitialized()
+ {
+ TestRequiredForeign.Builder builder = TestRequiredForeign.CreateBuilder();
+ AbstractMessageWrapper.Builder abstractBuilder = new AbstractMessageWrapper.Builder(builder);
+
+ Assert.IsTrue(abstractBuilder.IsInitialized);
+
+ builder.SetOptionalMessage(TestRequiredUninitialized);
+ Assert.IsFalse(abstractBuilder.IsInitialized);
+
+ builder.SetOptionalMessage(TestRequiredInitialized);
+ Assert.IsTrue(abstractBuilder.IsInitialized);
+
+ builder.AddRepeatedMessage(TestRequiredUninitialized);
+ Assert.IsFalse(abstractBuilder.IsInitialized);
+
+ builder.SetRepeatedMessage(0, TestRequiredInitialized);
+ Assert.IsTrue(abstractBuilder.IsInitialized);
+ }
+
+ // -----------------------------------------------------------------
+ // Tests for mergeFrom
+
+ private static readonly TestAllTypes MergeSource = TestAllTypes.CreateBuilder()
+ .SetOptionalInt32(1)
+ .SetOptionalString("foo")
+ .SetOptionalForeignMessage(ForeignMessage.DefaultInstance)
+ .AddRepeatedString("bar")
+ .Build();
+
+ private static readonly TestAllTypes MergeDest = TestAllTypes.CreateBuilder()
+ .SetOptionalInt64(2)
+ .SetOptionalString("baz")
+ .SetOptionalForeignMessage(ForeignMessage.CreateBuilder().SetC(3).Build())
+ .AddRepeatedString("qux")
+ .Build();
+
+ private const string MergeResultText = "optional_int32: 1\n" +
+ "optional_int64: 2\n" +
+ "optional_string: \"foo\"\n" +
+ "optional_foreign_message {\n" +
+ " c: 3\n" +
+ "}\n" +
+ "repeated_string: \"qux\"\n" +
+ "repeated_string: \"bar\"\n";
+
+ [Test]
+ public void MergeFrom()
+ {
+ AbstractMessageWrapper result = (AbstractMessageWrapper)
+ new AbstractMessageWrapper.Builder(TestAllTypes.CreateBuilder(MergeDest))
+ .MergeFrom(MergeSource)
+ .Build();
+
+ Assert.AreEqual(MergeResultText, result.ToString());
+ }
+
+ // -----------------------------------------------------------------
+ // Tests for equals and hashCode
+
+ [Test]
+ public void EqualsAndHashCode()
+ {
+ TestAllTypes a = TestUtil.GetAllSet();
+ TestAllTypes b = TestAllTypes.CreateBuilder().Build();
+ TestAllTypes c = TestAllTypes.CreateBuilder(b).AddRepeatedString("x").Build();
+ TestAllTypes d = TestAllTypes.CreateBuilder(c).AddRepeatedString("y").Build();
+ TestAllExtensions e = TestUtil.GetAllExtensionsSet();
+ TestAllExtensions f = TestAllExtensions.CreateBuilder(e)
+ .AddExtension(Unittest.RepeatedInt32Extension, 999).Build();
+
+ CheckEqualsIsConsistent(a);
+ CheckEqualsIsConsistent(b);
+ CheckEqualsIsConsistent(c);
+ CheckEqualsIsConsistent(d);
+ CheckEqualsIsConsistent(e);
+ CheckEqualsIsConsistent(f);
+
+ CheckNotEqual(a, b);
+ CheckNotEqual(a, c);
+ CheckNotEqual(a, d);
+ CheckNotEqual(a, e);
+ CheckNotEqual(a, f);
+
+ CheckNotEqual(b, c);
+ CheckNotEqual(b, d);
+ CheckNotEqual(b, e);
+ CheckNotEqual(b, f);
+
+ CheckNotEqual(c, d);
+ CheckNotEqual(c, e);
+ CheckNotEqual(c, f);
+
+ CheckNotEqual(d, e);
+ CheckNotEqual(d, f);
+
+ CheckNotEqual(e, f);
+
+ // Deserializing into the TestEmptyMessage such that every field is an UnknownFieldSet.Field
+ TestEmptyMessage eUnknownFields = TestEmptyMessage.ParseFrom(e.ToByteArray());
+ TestEmptyMessage fUnknownFields = TestEmptyMessage.ParseFrom(f.ToByteArray());
+ CheckNotEqual(eUnknownFields, fUnknownFields);
+ CheckEqualsIsConsistent(eUnknownFields);
+ CheckEqualsIsConsistent(fUnknownFields);
+
+ // Subseqent reconstitutions should be identical
+ TestEmptyMessage eUnknownFields2 = TestEmptyMessage.ParseFrom(e.ToByteArray());
+ CheckEqualsIsConsistent(eUnknownFields, eUnknownFields2);
+ }
+
+ /// <summary>
+ /// Asserts that the given protos are equal and have the same hash code.
+ /// </summary>
+ private static void CheckEqualsIsConsistent(IMessage message)
+ {
+ // Object should be equal to itself.
+ Assert.AreEqual(message, message);
+
+ // Object should be equal to a dynamic copy of itself.
+ DynamicMessage dynamic = DynamicMessage.CreateBuilder(message).Build();
+ CheckEqualsIsConsistent(message, dynamic);
+ }
+
+ /// <summary>
+ /// Asserts that the given protos are equal and have the same hash code.
+ /// </summary>
+ private static void CheckEqualsIsConsistent(IMessage message1, IMessage message2)
+ {
+ // Not using Assert.AreEqual as that checks for type equality, which isn't
+ // what we want bearing in mind the dynamic message checks.
+ Assert.IsTrue(message1.Equals(message2));
+ Assert.IsTrue(message2.Equals(message1));
+ Assert.AreEqual(message2.GetHashCode(), message1.GetHashCode());
+ }
+
+ /// <summary>
+ /// Asserts that the given protos are not equal and have different hash codes.
+ /// </summary>
+ /// <remarks>
+ /// It's valid for non-equal objects to have the same hash code, so
+ /// this test is stricter than it needs to be. However, this should happen
+ /// relatively rarely. (If this test fails, it's probably still due to a bug.)
+ /// </remarks>
+ private static void CheckNotEqual(IMessage m1, IMessage m2)
+ {
+ String equalsError = string.Format("{0} should not be equal to {1}", m1, m2);
+ Assert.IsFalse(m1.Equals(m2), equalsError);
+ Assert.IsFalse(m2.Equals(m1), equalsError);
+
+ Assert.IsFalse(m1.GetHashCode() == m2.GetHashCode(),
+ string.Format("{0} should have a different hash code from {1}", m1, m2));
+ }
+
+ /// <summary>
+ /// Extends AbstractMessage and wraps some other message object. The methods
+ /// of the Message interface which aren't explicitly implemented by
+ /// AbstractMessage are forwarded to the wrapped object. This allows us to
+ /// test that AbstractMessage's implementations work even if the wrapped
+ /// object does not use them.
+ /// </summary>
+ private class AbstractMessageWrapper : AbstractMessage<AbstractMessageWrapper, AbstractMessageWrapper.Builder>
+ {
+ private readonly IMessage wrappedMessage;
+
+ public IMessage WrappedMessage
+ {
+ get { return wrappedMessage; }
+ }
+
+ public AbstractMessageWrapper(IMessage wrappedMessage)
+ {
+ this.wrappedMessage = wrappedMessage;
+ }
+
+ public override MessageDescriptor DescriptorForType
+ {
+ get { return wrappedMessage.DescriptorForType; }
+ }
+
+ public override AbstractMessageWrapper DefaultInstanceForType
+ {
+ get { return new AbstractMessageWrapper(wrappedMessage.WeakDefaultInstanceForType); }
+ }
+
+ public override IDictionary<FieldDescriptor, object> AllFields
+ {
+ get { return wrappedMessage.AllFields; }
+ }
+
+ public override bool HasField(FieldDescriptor field)
+ {
+ return wrappedMessage.HasField(field);
+ }
+
+ public override bool HasOneof(OneofDescriptor oneof)
+ {
+ return wrappedMessage.HasOneof(oneof);
+ }
+
+ public override FieldDescriptor OneofFieldDescriptor(OneofDescriptor oneof)
+ {
+ return wrappedMessage.OneofFieldDescriptor(oneof);
+ }
+
+ public override object this[FieldDescriptor field]
+ {
+ get { return wrappedMessage[field]; }
+ }
+
+ public override object this[FieldDescriptor field, int index]
+ {
+ get { return wrappedMessage[field, index]; }
+ }
+
+ public override int GetRepeatedFieldCount(FieldDescriptor field)
+ {
+ return wrappedMessage.GetRepeatedFieldCount(field);
+ }
+
+ public override UnknownFieldSet UnknownFields
+ {
+ get { return wrappedMessage.UnknownFields; }
+ }
+
+ public override Builder CreateBuilderForType()
+ {
+ return new Builder(wrappedMessage.WeakCreateBuilderForType());
+ }
+
+ public override Builder ToBuilder()
+ {
+ return new Builder(wrappedMessage.WeakToBuilder());
+ }
+
+ internal class Builder : AbstractBuilder<AbstractMessageWrapper, Builder>
+ {
+ private readonly IBuilder wrappedBuilder;
+
+ protected override Builder ThisBuilder
+ {
+ get { return this; }
+ }
+
+ internal Builder(IBuilder wrappedBuilder)
+ {
+ this.wrappedBuilder = wrappedBuilder;
+ }
+
+ public override Builder MergeFrom(AbstractMessageWrapper other)
+ {
+ wrappedBuilder.WeakMergeFrom(other.wrappedMessage);
+ return this;
+ }
+
+ public override bool IsInitialized
+ {
+ get { return wrappedBuilder.IsInitialized; }
+ }
+
+ public override IDictionary<FieldDescriptor, object> AllFields
+ {
+ get { return wrappedBuilder.AllFields; }
+ }
+
+ public override object this[FieldDescriptor field]
+ {
+ get { return wrappedBuilder[field]; }
+ set { wrappedBuilder[field] = value; }
+ }
+
+ public override MessageDescriptor DescriptorForType
+ {
+ get { return wrappedBuilder.DescriptorForType; }
+ }
+
+ public override int GetRepeatedFieldCount(FieldDescriptor field)
+ {
+ return wrappedBuilder.GetRepeatedFieldCount(field);
+ }
+
+ public override object this[FieldDescriptor field, int index]
+ {
+ get { return wrappedBuilder[field, index]; }
+ set { wrappedBuilder[field, index] = value; }
+ }
+
+ public override bool HasField(FieldDescriptor field)
+ {
+ return wrappedBuilder.HasField(field);
+ }
+
+ public override bool HasOneof(OneofDescriptor oneof)
+ {
+ return wrappedBuilder.HasOneof(oneof);
+ }
+
+ public override FieldDescriptor OneofFieldDescriptor(OneofDescriptor oneof)
+ {
+ return wrappedBuilder.OneofFieldDescriptor(oneof);
+ }
+
+ public override UnknownFieldSet UnknownFields
+ {
+ get { return wrappedBuilder.UnknownFields; }
+ set { wrappedBuilder.UnknownFields = value; }
+ }
+
+ public override AbstractMessageWrapper Build()
+ {
+ return new AbstractMessageWrapper(wrappedBuilder.WeakBuild());
+ }
+
+ public override AbstractMessageWrapper BuildPartial()
+ {
+ return new AbstractMessageWrapper(wrappedBuilder.WeakBuildPartial());
+ }
+
+ public override Builder Clone()
+ {
+ return new Builder(wrappedBuilder.WeakClone());
+ }
+
+ public override AbstractMessageWrapper DefaultInstanceForType
+ {
+ get { return new AbstractMessageWrapper(wrappedBuilder.WeakDefaultInstanceForType); }
+ }
+
+ public override Builder ClearField(FieldDescriptor field)
+ {
+ wrappedBuilder.WeakClearField(field);
+ return this;
+ }
+
+ public override Builder ClearOneof(OneofDescriptor oneof)
+ {
+ wrappedBuilder.WeakClearOneof(oneof);
+ return this;
+ }
+
+ public override Builder AddRepeatedField(FieldDescriptor field, object value)
+ {
+ wrappedBuilder.WeakAddRepeatedField(field, value);
+ return this;
+ }
+
+ public override IBuilder CreateBuilderForField(FieldDescriptor field)
+ {
+ wrappedBuilder.CreateBuilderForField(field);
+ return this;
+ }
+
+ public override Builder MergeFrom(IMessage other)
+ {
+ wrappedBuilder.WeakMergeFrom(other);
+ return this;
+ }
+
+ public override Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
+ {
+ wrappedBuilder.WeakMergeFrom(input, extensionRegistry);
+ return this;
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/App.xaml b/csharp/src/ProtocolBuffers.Test/App.xaml
new file mode 100644
index 00000000..d4f1f2e3
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/App.xaml
@@ -0,0 +1,8 @@
+<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ x:Class="ProtocolBuffers.SilverlightTest.App"
+ >
+ <Application.Resources>
+
+ </Application.Resources>
+</Application>
diff --git a/csharp/src/ProtocolBuffers.Test/App.xaml.cs b/csharp/src/ProtocolBuffers.Test/App.xaml.cs
new file mode 100644
index 00000000..0c9fd9e6
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/App.xaml.cs
@@ -0,0 +1,60 @@
+using System;
+using System.Windows;
+using Microsoft.Silverlight.Testing;
+
+namespace Google.ProtocolBuffers
+{
+ public partial class App : Application
+ {
+
+ public App()
+ {
+ this.Startup += this.Application_Startup;
+ this.Exit += this.Application_Exit;
+ this.UnhandledException += this.Application_UnhandledException;
+
+ //InitializeComponent();
+ }
+
+ private void Application_Startup(object sender, StartupEventArgs e)
+ {
+ this.RootVisual = UnitTestSystem.CreateTestPage();
+ }
+
+ private void Application_Exit(object sender, EventArgs e)
+ {
+
+ }
+ private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
+ {
+ // If the app is running outside of the debugger then report the exception using
+ // the browser's exception mechanism. On IE this will display it a yellow alert
+ // icon in the status bar and Firefox will display a script error.
+ if (!System.Diagnostics.Debugger.IsAttached)
+ {
+
+ // NOTE: This will allow the application to continue running after an exception has been thrown
+ // but not handled.
+ // For production applications this error handling should be replaced with something that will
+ // report the error to the website and stop the application.
+ e.Handled = true;
+ Deployment.Current.Dispatcher.BeginInvoke(
+ new EventHandler<ApplicationUnhandledExceptionEventArgs>(ReportErrorToDOM),
+ new object[] { sender, e } );
+ }
+ }
+ private void ReportErrorToDOM(object sender, ApplicationUnhandledExceptionEventArgs e)
+ {
+ try
+ {
+ string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
+ errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
+
+ System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight 2 Application " + errorMsg + "\");");
+ }
+ catch (Exception)
+ {
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/ByteStringTest.cs b/csharp/src/ProtocolBuffers.Test/ByteStringTest.cs
new file mode 100644
index 00000000..e4f7bd9e
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/ByteStringTest.cs
@@ -0,0 +1,147 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Text;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class ByteStringTest
+ {
+ [Test]
+ public void EmptyByteStringHasZeroSize()
+ {
+ Assert.AreEqual(0, ByteString.Empty.Length);
+ }
+
+ [Test]
+ public void CopyFromStringWithExplicitEncoding()
+ {
+ ByteString bs = ByteString.CopyFrom("AB", Encoding.Unicode);
+ Assert.AreEqual(4, bs.Length);
+ Assert.AreEqual(65, bs[0]);
+ Assert.AreEqual(0, bs[1]);
+ Assert.AreEqual(66, bs[2]);
+ Assert.AreEqual(0, bs[3]);
+ }
+
+ [Test]
+ public void IsEmptyWhenEmpty()
+ {
+ Assert.IsTrue(ByteString.CopyFromUtf8("").IsEmpty);
+ }
+
+ [Test]
+ public void IsEmptyWhenNotEmpty()
+ {
+ Assert.IsFalse(ByteString.CopyFromUtf8("X").IsEmpty);
+ }
+
+ [Test]
+ public void CopyFromByteArrayCopiesContents()
+ {
+ byte[] data = new byte[1];
+ data[0] = 10;
+ ByteString bs = ByteString.CopyFrom(data);
+ Assert.AreEqual(10, bs[0]);
+ data[0] = 5;
+ Assert.AreEqual(10, bs[0]);
+ }
+
+ [Test]
+ public void ToByteArrayCopiesContents()
+ {
+ ByteString bs = ByteString.CopyFromUtf8("Hello");
+ byte[] data = bs.ToByteArray();
+ Assert.AreEqual((byte)'H', data[0]);
+ Assert.AreEqual((byte)'H', bs[0]);
+ data[0] = 0;
+ Assert.AreEqual(0, data[0]);
+ Assert.AreEqual((byte)'H', bs[0]);
+ }
+
+ [Test]
+ public void CopyFromUtf8UsesUtf8()
+ {
+ ByteString bs = ByteString.CopyFromUtf8("\u20ac");
+ Assert.AreEqual(3, bs.Length);
+ Assert.AreEqual(0xe2, bs[0]);
+ Assert.AreEqual(0x82, bs[1]);
+ Assert.AreEqual(0xac, bs[2]);
+ }
+
+ [Test]
+ public void CopyFromPortion()
+ {
+ byte[] data = new byte[] {0, 1, 2, 3, 4, 5, 6};
+ ByteString bs = ByteString.CopyFrom(data, 2, 3);
+ Assert.AreEqual(3, bs.Length);
+ Assert.AreEqual(2, bs[0]);
+ Assert.AreEqual(3, bs[1]);
+ }
+
+ [Test]
+ public void ToStringUtf8()
+ {
+ ByteString bs = ByteString.CopyFromUtf8("\u20ac");
+ Assert.AreEqual("\u20ac", bs.ToStringUtf8());
+ }
+
+ [Test]
+ public void ToStringWithExplicitEncoding()
+ {
+ ByteString bs = ByteString.CopyFrom("\u20ac", Encoding.Unicode);
+ Assert.AreEqual("\u20ac", bs.ToString(Encoding.Unicode));
+ }
+
+ [Test]
+ public void FromBase64_WithText()
+ {
+ byte[] data = new byte[] {0, 1, 2, 3, 4, 5, 6};
+ string base64 = Convert.ToBase64String(data);
+ ByteString bs = ByteString.FromBase64(base64);
+ Assert.AreEqual(data, bs.ToByteArray());
+ }
+
+ [Test]
+ public void FromBase64_Empty()
+ {
+ // Optimization which also fixes issue 61.
+ Assert.AreSame(ByteString.Empty, ByteString.FromBase64(""));
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/CodedInputStreamTest.cs b/csharp/src/ProtocolBuffers.Test/CodedInputStreamTest.cs
new file mode 100644
index 00000000..9bb8ba27
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/CodedInputStreamTest.cs
@@ -0,0 +1,569 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class CodedInputStreamTest
+ {
+ /// <summary>
+ /// Helper to construct a byte array from a bunch of bytes. The inputs are
+ /// actually ints so that I can use hex notation and not get stupid errors
+ /// about precision.
+ /// </summary>
+ private static byte[] Bytes(params int[] bytesAsInts)
+ {
+ byte[] bytes = new byte[bytesAsInts.Length];
+ for (int i = 0; i < bytesAsInts.Length; i++)
+ {
+ bytes[i] = (byte) bytesAsInts[i];
+ }
+ return bytes;
+ }
+
+ /// <summary>
+ /// Parses the given bytes using ReadRawVarint32() and ReadRawVarint64() and
+ /// </summary>
+ private static void AssertReadVarint(byte[] data, ulong value)
+ {
+ CodedInputStream input = CodedInputStream.CreateInstance(data);
+ Assert.AreEqual((uint) value, input.ReadRawVarint32());
+
+ input = CodedInputStream.CreateInstance(data);
+ Assert.AreEqual(value, input.ReadRawVarint64());
+ Assert.IsTrue(input.IsAtEnd);
+
+ // Try different block sizes.
+ for (int bufferSize = 1; bufferSize <= 16; bufferSize *= 2)
+ {
+ input = CodedInputStream.CreateInstance(new SmallBlockInputStream(data, bufferSize));
+ Assert.AreEqual((uint) value, input.ReadRawVarint32());
+
+ input = CodedInputStream.CreateInstance(new SmallBlockInputStream(data, bufferSize));
+ Assert.AreEqual(value, input.ReadRawVarint64());
+ Assert.IsTrue(input.IsAtEnd);
+ }
+
+ // Try reading directly from a MemoryStream. We want to verify that it
+ // doesn't read past the end of the input, so write an extra byte - this
+ // lets us test the position at the end.
+ MemoryStream memoryStream = new MemoryStream();
+ memoryStream.Write(data, 0, data.Length);
+ memoryStream.WriteByte(0);
+ memoryStream.Position = 0;
+ Assert.AreEqual((uint) value, CodedInputStream.ReadRawVarint32(memoryStream));
+ Assert.AreEqual(data.Length, memoryStream.Position);
+ }
+
+ /// <summary>
+ /// Parses the given bytes using ReadRawVarint32() and ReadRawVarint64() and
+ /// expects them to fail with an InvalidProtocolBufferException whose
+ /// description matches the given one.
+ /// </summary>
+ private static void AssertReadVarintFailure(InvalidProtocolBufferException expected, byte[] data)
+ {
+ CodedInputStream input = CodedInputStream.CreateInstance(data);
+ var exception = Assert.Throws<InvalidProtocolBufferException>(() => input.ReadRawVarint32());
+ Assert.AreEqual(expected.Message, exception.Message);
+
+ input = CodedInputStream.CreateInstance(data);
+ exception = Assert.Throws<InvalidProtocolBufferException>(() => input.ReadRawVarint64());
+ Assert.AreEqual(expected.Message, exception.Message);
+
+ // Make sure we get the same error when reading directly from a Stream.
+ exception = Assert.Throws<InvalidProtocolBufferException>(() => CodedInputStream.ReadRawVarint32(new MemoryStream(data)));
+ Assert.AreEqual(expected.Message, exception.Message);
+ }
+
+ [Test]
+ public void ReadVarint()
+ {
+ AssertReadVarint(Bytes(0x00), 0);
+ AssertReadVarint(Bytes(0x01), 1);
+ AssertReadVarint(Bytes(0x7f), 127);
+ // 14882
+ AssertReadVarint(Bytes(0xa2, 0x74), (0x22 << 0) | (0x74 << 7));
+ // 2961488830
+ AssertReadVarint(Bytes(0xbe, 0xf7, 0x92, 0x84, 0x0b),
+ (0x3e << 0) | (0x77 << 7) | (0x12 << 14) | (0x04 << 21) |
+ (0x0bL << 28));
+
+ // 64-bit
+ // 7256456126
+ AssertReadVarint(Bytes(0xbe, 0xf7, 0x92, 0x84, 0x1b),
+ (0x3e << 0) | (0x77 << 7) | (0x12 << 14) | (0x04 << 21) |
+ (0x1bL << 28));
+ // 41256202580718336
+ AssertReadVarint(Bytes(0x80, 0xe6, 0xeb, 0x9c, 0xc3, 0xc9, 0xa4, 0x49),
+ (0x00 << 0) | (0x66 << 7) | (0x6b << 14) | (0x1c << 21) |
+ (0x43L << 28) | (0x49L << 35) | (0x24L << 42) | (0x49L << 49));
+ // 11964378330978735131
+ AssertReadVarint(Bytes(0x9b, 0xa8, 0xf9, 0xc2, 0xbb, 0xd6, 0x80, 0x85, 0xa6, 0x01),
+ (0x1b << 0) | (0x28 << 7) | (0x79 << 14) | (0x42 << 21) |
+ (0x3bUL << 28) | (0x56UL << 35) | (0x00UL << 42) |
+ (0x05UL << 49) | (0x26UL << 56) | (0x01UL << 63));
+
+ // Failures
+ AssertReadVarintFailure(
+ InvalidProtocolBufferException.MalformedVarint(),
+ Bytes(0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
+ 0x00));
+ AssertReadVarintFailure(
+ InvalidProtocolBufferException.TruncatedMessage(),
+ Bytes(0x80));
+ }
+
+ /// <summary>
+ /// Parses the given bytes using ReadRawLittleEndian32() and checks
+ /// that the result matches the given value.
+ /// </summary>
+ private static void AssertReadLittleEndian32(byte[] data, uint value)
+ {
+ CodedInputStream input = CodedInputStream.CreateInstance(data);
+ Assert.AreEqual(value, input.ReadRawLittleEndian32());
+ Assert.IsTrue(input.IsAtEnd);
+
+ // Try different block sizes.
+ for (int blockSize = 1; blockSize <= 16; blockSize *= 2)
+ {
+ input = CodedInputStream.CreateInstance(
+ new SmallBlockInputStream(data, blockSize));
+ Assert.AreEqual(value, input.ReadRawLittleEndian32());
+ Assert.IsTrue(input.IsAtEnd);
+ }
+ }
+
+ /// <summary>
+ /// Parses the given bytes using ReadRawLittleEndian64() and checks
+ /// that the result matches the given value.
+ /// </summary>
+ private static void AssertReadLittleEndian64(byte[] data, ulong value)
+ {
+ CodedInputStream input = CodedInputStream.CreateInstance(data);
+ Assert.AreEqual(value, input.ReadRawLittleEndian64());
+ Assert.IsTrue(input.IsAtEnd);
+
+ // Try different block sizes.
+ for (int blockSize = 1; blockSize <= 16; blockSize *= 2)
+ {
+ input = CodedInputStream.CreateInstance(
+ new SmallBlockInputStream(data, blockSize));
+ Assert.AreEqual(value, input.ReadRawLittleEndian64());
+ Assert.IsTrue(input.IsAtEnd);
+ }
+ }
+
+ [Test]
+ public void ReadLittleEndian()
+ {
+ AssertReadLittleEndian32(Bytes(0x78, 0x56, 0x34, 0x12), 0x12345678);
+ AssertReadLittleEndian32(Bytes(0xf0, 0xde, 0xbc, 0x9a), 0x9abcdef0);
+
+ AssertReadLittleEndian64(Bytes(0xf0, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12),
+ 0x123456789abcdef0L);
+ AssertReadLittleEndian64(
+ Bytes(0x78, 0x56, 0x34, 0x12, 0xf0, 0xde, 0xbc, 0x9a), 0x9abcdef012345678UL);
+ }
+
+ [Test]
+ public void DecodeZigZag32()
+ {
+ Assert.AreEqual(0, CodedInputStream.DecodeZigZag32(0));
+ Assert.AreEqual(-1, CodedInputStream.DecodeZigZag32(1));
+ Assert.AreEqual(1, CodedInputStream.DecodeZigZag32(2));
+ Assert.AreEqual(-2, CodedInputStream.DecodeZigZag32(3));
+ Assert.AreEqual(0x3FFFFFFF, CodedInputStream.DecodeZigZag32(0x7FFFFFFE));
+ Assert.AreEqual(unchecked((int) 0xC0000000), CodedInputStream.DecodeZigZag32(0x7FFFFFFF));
+ Assert.AreEqual(0x7FFFFFFF, CodedInputStream.DecodeZigZag32(0xFFFFFFFE));
+ Assert.AreEqual(unchecked((int) 0x80000000), CodedInputStream.DecodeZigZag32(0xFFFFFFFF));
+ }
+
+ [Test]
+ public void DecodeZigZag64()
+ {
+ Assert.AreEqual(0, CodedInputStream.DecodeZigZag64(0));
+ Assert.AreEqual(-1, CodedInputStream.DecodeZigZag64(1));
+ Assert.AreEqual(1, CodedInputStream.DecodeZigZag64(2));
+ Assert.AreEqual(-2, CodedInputStream.DecodeZigZag64(3));
+ Assert.AreEqual(0x000000003FFFFFFFL, CodedInputStream.DecodeZigZag64(0x000000007FFFFFFEL));
+ Assert.AreEqual(unchecked((long) 0xFFFFFFFFC0000000L), CodedInputStream.DecodeZigZag64(0x000000007FFFFFFFL));
+ Assert.AreEqual(0x000000007FFFFFFFL, CodedInputStream.DecodeZigZag64(0x00000000FFFFFFFEL));
+ Assert.AreEqual(unchecked((long) 0xFFFFFFFF80000000L), CodedInputStream.DecodeZigZag64(0x00000000FFFFFFFFL));
+ Assert.AreEqual(0x7FFFFFFFFFFFFFFFL, CodedInputStream.DecodeZigZag64(0xFFFFFFFFFFFFFFFEL));
+ Assert.AreEqual(unchecked((long) 0x8000000000000000L), CodedInputStream.DecodeZigZag64(0xFFFFFFFFFFFFFFFFL));
+ }
+
+ [Test]
+ public void ReadWholeMessage()
+ {
+ TestAllTypes message = TestUtil.GetAllSet();
+
+ byte[] rawBytes = message.ToByteArray();
+ Assert.AreEqual(rawBytes.Length, message.SerializedSize);
+ TestAllTypes message2 = TestAllTypes.ParseFrom(rawBytes);
+ TestUtil.AssertAllFieldsSet(message2);
+
+ // Try different block sizes.
+ for (int blockSize = 1; blockSize < 256; blockSize *= 2)
+ {
+ message2 = TestAllTypes.ParseFrom(new SmallBlockInputStream(rawBytes, blockSize));
+ TestUtil.AssertAllFieldsSet(message2);
+ }
+ }
+
+ [Test]
+ public void SkipWholeMessage()
+ {
+ TestAllTypes message = TestUtil.GetAllSet();
+ byte[] rawBytes = message.ToByteArray();
+
+ // Create two parallel inputs. Parse one as unknown fields while using
+ // skipField() to skip each field on the other. Expect the same tags.
+ CodedInputStream input1 = CodedInputStream.CreateInstance(rawBytes);
+ CodedInputStream input2 = CodedInputStream.CreateInstance(rawBytes);
+ UnknownFieldSet.Builder unknownFields = UnknownFieldSet.CreateBuilder();
+
+ uint tag;
+ string name;
+ while (input1.ReadTag(out tag, out name))
+ {
+ uint tag2;
+ Assert.IsTrue(input2.ReadTag(out tag2, out name));
+ Assert.AreEqual(tag, tag2);
+
+ unknownFields.MergeFieldFrom(tag, input1);
+ input2.SkipField();
+ }
+ }
+
+ /// <summary>
+ /// Test that a bug in SkipRawBytes has been fixed: if the skip
+ /// skips exactly up to a limit, this should bnot break things
+ /// </summary>
+ [Test]
+ public void SkipRawBytesBug()
+ {
+ byte[] rawBytes = new byte[] {1, 2};
+ CodedInputStream input = CodedInputStream.CreateInstance(rawBytes);
+
+ int limit = input.PushLimit(1);
+ input.SkipRawBytes(1);
+ input.PopLimit(limit);
+ Assert.AreEqual(2, input.ReadRawByte());
+ }
+
+ public void ReadHugeBlob()
+ {
+ // Allocate and initialize a 1MB blob.
+ byte[] blob = new byte[1 << 20];
+ for (int i = 0; i < blob.Length; i++)
+ {
+ blob[i] = (byte) i;
+ }
+
+ // Make a message containing it.
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TestUtil.SetAllFields(builder);
+ builder.SetOptionalBytes(ByteString.CopyFrom(blob));
+ TestAllTypes message = builder.Build();
+
+ // Serialize and parse it. Make sure to parse from an InputStream, not
+ // directly from a ByteString, so that CodedInputStream uses buffered
+ // reading.
+ TestAllTypes message2 = TestAllTypes.ParseFrom(message.ToByteString().CreateCodedInput());
+
+ Assert.AreEqual(message.OptionalBytes, message2.OptionalBytes);
+
+ // Make sure all the other fields were parsed correctly.
+ TestAllTypes message3 = TestAllTypes.CreateBuilder(message2)
+ .SetOptionalBytes(TestUtil.GetAllSet().OptionalBytes)
+ .Build();
+ TestUtil.AssertAllFieldsSet(message3);
+ }
+
+ [Test]
+ public void ReadMaliciouslyLargeBlob()
+ {
+ MemoryStream ms = new MemoryStream();
+ CodedOutputStream output = CodedOutputStream.CreateInstance(ms);
+
+ uint tag = WireFormat.MakeTag(1, WireFormat.WireType.LengthDelimited);
+ output.WriteRawVarint32(tag);
+ output.WriteRawVarint32(0x7FFFFFFF);
+ output.WriteRawBytes(new byte[32]); // Pad with a few random bytes.
+ output.Flush();
+ ms.Position = 0;
+
+ CodedInputStream input = CodedInputStream.CreateInstance(ms);
+ uint testtag;
+ string ignore;
+ Assert.IsTrue(input.ReadTag(out testtag, out ignore));
+ Assert.AreEqual(tag, testtag);
+
+ ByteString bytes = null;
+ // TODO(jonskeet): Should this be ArgumentNullException instead?
+ Assert.Throws<InvalidProtocolBufferException>(() => input.ReadBytes(ref bytes));
+ }
+
+ private static TestRecursiveMessage MakeRecursiveMessage(int depth)
+ {
+ if (depth == 0)
+ {
+ return TestRecursiveMessage.CreateBuilder().SetI(5).Build();
+ }
+ else
+ {
+ return TestRecursiveMessage.CreateBuilder()
+ .SetA(MakeRecursiveMessage(depth - 1)).Build();
+ }
+ }
+
+ private static void AssertMessageDepth(TestRecursiveMessage message, int depth)
+ {
+ if (depth == 0)
+ {
+ Assert.IsFalse(message.HasA);
+ Assert.AreEqual(5, message.I);
+ }
+ else
+ {
+ Assert.IsTrue(message.HasA);
+ AssertMessageDepth(message.A, depth - 1);
+ }
+ }
+
+ [Test]
+ public void MaliciousRecursion()
+ {
+ ByteString data64 = MakeRecursiveMessage(64).ToByteString();
+ ByteString data65 = MakeRecursiveMessage(65).ToByteString();
+
+ AssertMessageDepth(TestRecursiveMessage.ParseFrom(data64), 64);
+
+ Assert.Throws<InvalidProtocolBufferException>(() => TestRecursiveMessage.ParseFrom(data65));
+
+ CodedInputStream input = data64.CreateCodedInput();
+ input.SetRecursionLimit(8);
+ Assert.Throws<InvalidProtocolBufferException>(() => TestRecursiveMessage.ParseFrom(input));
+ }
+
+ [Test]
+ public void SizeLimit()
+ {
+ // Have to use a Stream rather than ByteString.CreateCodedInput as SizeLimit doesn't
+ // apply to the latter case.
+ MemoryStream ms = new MemoryStream(TestUtil.GetAllSet().ToByteString().ToByteArray());
+ CodedInputStream input = CodedInputStream.CreateInstance(ms);
+ input.SetSizeLimit(16);
+
+ Assert.Throws<InvalidProtocolBufferException>(() => TestAllTypes.ParseFrom(input));
+ }
+
+ [Test]
+ public void ResetSizeCounter()
+ {
+ CodedInputStream input = CodedInputStream.CreateInstance(
+ new SmallBlockInputStream(new byte[256], 8));
+ input.SetSizeLimit(16);
+ input.ReadRawBytes(16);
+
+ Assert.Throws<InvalidProtocolBufferException>(() => input.ReadRawByte());
+
+ input.ResetSizeCounter();
+ input.ReadRawByte(); // No exception thrown.
+
+ Assert.Throws<InvalidProtocolBufferException>(() => input.ReadRawBytes(16));
+ }
+
+ /// <summary>
+ /// Tests that if we read an string that contains invalid UTF-8, no exception
+ /// is thrown. Instead, the invalid bytes are replaced with the Unicode
+ /// "replacement character" U+FFFD.
+ /// </summary>
+ [Test]
+ public void ReadInvalidUtf8()
+ {
+ MemoryStream ms = new MemoryStream();
+ CodedOutputStream output = CodedOutputStream.CreateInstance(ms);
+
+ uint tag = WireFormat.MakeTag(1, WireFormat.WireType.LengthDelimited);
+ output.WriteRawVarint32(tag);
+ output.WriteRawVarint32(1);
+ output.WriteRawBytes(new byte[] {0x80});
+ output.Flush();
+ ms.Position = 0;
+
+ CodedInputStream input = CodedInputStream.CreateInstance(ms);
+
+ uint testtag;
+ string ignored;
+
+ Assert.IsTrue(input.ReadTag(out testtag, out ignored));
+ Assert.AreEqual(tag, testtag);
+ string text = null;
+ input.ReadString(ref text);
+ Assert.AreEqual('\ufffd', text[0]);
+ }
+
+ /// <summary>
+ /// A stream which limits the number of bytes it reads at a time.
+ /// We use this to make sure that CodedInputStream doesn't screw up when
+ /// reading in small blocks.
+ /// </summary>
+ private sealed class SmallBlockInputStream : MemoryStream
+ {
+ private readonly int blockSize;
+
+ public SmallBlockInputStream(byte[] data, int blockSize)
+ : base(data)
+ {
+ this.blockSize = blockSize;
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ return base.Read(buffer, offset, Math.Min(count, blockSize));
+ }
+ }
+
+ enum TestNegEnum { None = 0, Value = -2 }
+
+ [Test]
+ public void TestNegativeEnum()
+ {
+ byte[] bytes = new byte[10] { 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01 };
+ CodedInputStream input = CodedInputStream.CreateInstance(bytes);
+ object unk;
+ TestNegEnum val = TestNegEnum.None;
+
+ Assert.IsTrue(input.ReadEnum(ref val, out unk));
+ Assert.IsTrue(input.IsAtEnd);
+ Assert.AreEqual(TestNegEnum.Value, val);
+ }
+
+ [Test]
+ public void TestNegativeEnumPackedArray()
+ {
+ int arraySize = 1 + (10 * 5);
+ int msgSize = 1 + 1 + arraySize;
+ byte[] bytes = new byte[msgSize];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(bytes);
+ output.WritePackedInt32Array(8, "", arraySize, new int[] { 0, -1, -2, -3, -4, -5 });
+
+ Assert.AreEqual(0, output.SpaceLeft);
+
+ CodedInputStream input = CodedInputStream.CreateInstance(bytes);
+ uint tag;
+ string name;
+ Assert.IsTrue(input.ReadTag(out tag, out name));
+
+ List<TestNegEnum> values = new List<TestNegEnum>();
+ ICollection<object> unk;
+ input.ReadEnumArray(tag, name, values, out unk);
+
+ Assert.AreEqual(2, values.Count);
+ Assert.AreEqual(TestNegEnum.None, values[0]);
+ Assert.AreEqual(TestNegEnum.Value, values[1]);
+
+ Assert.NotNull(unk);
+ Assert.AreEqual(4, unk.Count);
+ }
+
+ [Test]
+ public void TestNegativeEnumArray()
+ {
+ int arraySize = 1 + 1 + (11 * 5);
+ int msgSize = arraySize;
+ byte[] bytes = new byte[msgSize];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(bytes);
+ output.WriteInt32Array(8, "", new int[] { 0, -1, -2, -3, -4, -5 });
+
+ Assert.AreEqual(0, output.SpaceLeft);
+
+ CodedInputStream input = CodedInputStream.CreateInstance(bytes);
+ uint tag;
+ string name;
+ Assert.IsTrue(input.ReadTag(out tag, out name));
+
+ List<TestNegEnum> values = new List<TestNegEnum>();
+ ICollection<object> unk;
+ input.ReadEnumArray(tag, name, values, out unk);
+
+ Assert.AreEqual(2, values.Count);
+ Assert.AreEqual(TestNegEnum.None, values[0]);
+ Assert.AreEqual(TestNegEnum.Value, values[1]);
+
+ Assert.NotNull(unk);
+ Assert.AreEqual(4, unk.Count);
+ }
+
+ //Issue 71: CodedInputStream.ReadBytes go to slow path unnecessarily
+ [Test]
+ public void TestSlowPathAvoidance()
+ {
+ using (var ms = new MemoryStream())
+ {
+ CodedOutputStream output = CodedOutputStream.CreateInstance(ms);
+ output.WriteField(FieldType.Bytes, 1, "bytes", ByteString.CopyFrom(new byte[100]));
+ output.WriteField(FieldType.Bytes, 2, "bytes", ByteString.CopyFrom(new byte[100]));
+ output.Flush();
+
+ ms.Position = 0;
+ CodedInputStream input = CodedInputStream.CreateInstance(ms, new byte[ms.Length / 2]);
+
+ uint tag;
+ string ignore;
+ ByteString value;
+
+ Assert.IsTrue(input.ReadTag(out tag, out ignore));
+ Assert.AreEqual(1, WireFormat.GetTagFieldNumber(tag));
+ value = ByteString.Empty;
+ Assert.IsTrue(input.ReadBytes(ref value) && value.Length == 100);
+
+ Assert.IsTrue(input.ReadTag(out tag, out ignore));
+ Assert.AreEqual(2, WireFormat.GetTagFieldNumber(tag));
+ value = ByteString.Empty;
+ Assert.IsTrue(input.ReadBytes(ref value) && value.Length == 100);
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/CodedOutputStreamTest.cs b/csharp/src/ProtocolBuffers.Test/CodedOutputStreamTest.cs
new file mode 100644
index 00000000..4d5b8302
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/CodedOutputStreamTest.cs
@@ -0,0 +1,471 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class CodedOutputStreamTest
+ {
+ /// <summary>
+ /// Writes the given value using WriteRawVarint32() and WriteRawVarint64() and
+ /// checks that the result matches the given bytes
+ /// </summary>
+ private static void AssertWriteVarint(byte[] data, ulong value)
+ {
+ // Only do 32-bit write if the value fits in 32 bits.
+ if ((value >> 32) == 0)
+ {
+ MemoryStream rawOutput = new MemoryStream();
+ CodedOutputStream output = CodedOutputStream.CreateInstance(rawOutput);
+ output.WriteRawVarint32((uint) value);
+ output.Flush();
+ Assert.AreEqual(data, rawOutput.ToArray());
+ // Also try computing size.
+ Assert.AreEqual(data.Length, CodedOutputStream.ComputeRawVarint32Size((uint) value));
+ }
+
+ {
+ MemoryStream rawOutput = new MemoryStream();
+ CodedOutputStream output = CodedOutputStream.CreateInstance(rawOutput);
+ output.WriteRawVarint64(value);
+ output.Flush();
+ Assert.AreEqual(data, rawOutput.ToArray());
+
+ // Also try computing size.
+ Assert.AreEqual(data.Length, CodedOutputStream.ComputeRawVarint64Size(value));
+ }
+
+ // Try different buffer sizes.
+ for (int bufferSize = 1; bufferSize <= 16; bufferSize *= 2)
+ {
+ // Only do 32-bit write if the value fits in 32 bits.
+ if ((value >> 32) == 0)
+ {
+ MemoryStream rawOutput = new MemoryStream();
+ CodedOutputStream output =
+ CodedOutputStream.CreateInstance(rawOutput, bufferSize);
+ output.WriteRawVarint32((uint) value);
+ output.Flush();
+ Assert.AreEqual(data, rawOutput.ToArray());
+ }
+
+ {
+ MemoryStream rawOutput = new MemoryStream();
+ CodedOutputStream output = CodedOutputStream.CreateInstance(rawOutput, bufferSize);
+ output.WriteRawVarint64(value);
+ output.Flush();
+ Assert.AreEqual(data, rawOutput.ToArray());
+ }
+ }
+ }
+
+ /// <summary>
+ /// Tests WriteRawVarint32() and WriteRawVarint64()
+ /// </summary>
+ [Test]
+ public void WriteVarint()
+ {
+ AssertWriteVarint(new byte[] {0x00}, 0);
+ AssertWriteVarint(new byte[] {0x01}, 1);
+ AssertWriteVarint(new byte[] {0x7f}, 127);
+ // 14882
+ AssertWriteVarint(new byte[] {0xa2, 0x74}, (0x22 << 0) | (0x74 << 7));
+ // 2961488830
+ AssertWriteVarint(new byte[] {0xbe, 0xf7, 0x92, 0x84, 0x0b},
+ (0x3e << 0) | (0x77 << 7) | (0x12 << 14) | (0x04 << 21) |
+ (0x0bL << 28));
+
+ // 64-bit
+ // 7256456126
+ AssertWriteVarint(new byte[] {0xbe, 0xf7, 0x92, 0x84, 0x1b},
+ (0x3e << 0) | (0x77 << 7) | (0x12 << 14) | (0x04 << 21) |
+ (0x1bL << 28));
+ // 41256202580718336
+ AssertWriteVarint(
+ new byte[] {0x80, 0xe6, 0xeb, 0x9c, 0xc3, 0xc9, 0xa4, 0x49},
+ (0x00 << 0) | (0x66 << 7) | (0x6b << 14) | (0x1c << 21) |
+ (0x43UL << 28) | (0x49L << 35) | (0x24UL << 42) | (0x49UL << 49));
+ // 11964378330978735131
+ AssertWriteVarint(
+ new byte[] {0x9b, 0xa8, 0xf9, 0xc2, 0xbb, 0xd6, 0x80, 0x85, 0xa6, 0x01},
+ unchecked((ulong)
+ ((0x1b << 0) | (0x28 << 7) | (0x79 << 14) | (0x42 << 21) |
+ (0x3bL << 28) | (0x56L << 35) | (0x00L << 42) |
+ (0x05L << 49) | (0x26L << 56) | (0x01L << 63))));
+ }
+
+ /// <summary>
+ /// Parses the given bytes using WriteRawLittleEndian32() and checks
+ /// that the result matches the given value.
+ /// </summary>
+ private static void AssertWriteLittleEndian32(byte[] data, uint value)
+ {
+ MemoryStream rawOutput = new MemoryStream();
+ CodedOutputStream output = CodedOutputStream.CreateInstance(rawOutput);
+ output.WriteRawLittleEndian32(value);
+ output.Flush();
+ Assert.AreEqual(data, rawOutput.ToArray());
+
+ // Try different buffer sizes.
+ for (int bufferSize = 1; bufferSize <= 16; bufferSize *= 2)
+ {
+ rawOutput = new MemoryStream();
+ output = CodedOutputStream.CreateInstance(rawOutput, bufferSize);
+ output.WriteRawLittleEndian32(value);
+ output.Flush();
+ Assert.AreEqual(data, rawOutput.ToArray());
+ }
+ }
+
+ /// <summary>
+ /// Parses the given bytes using WriteRawLittleEndian64() and checks
+ /// that the result matches the given value.
+ /// </summary>
+ private static void AssertWriteLittleEndian64(byte[] data, ulong value)
+ {
+ MemoryStream rawOutput = new MemoryStream();
+ CodedOutputStream output = CodedOutputStream.CreateInstance(rawOutput);
+ output.WriteRawLittleEndian64(value);
+ output.Flush();
+ Assert.AreEqual(data, rawOutput.ToArray());
+
+ // Try different block sizes.
+ for (int blockSize = 1; blockSize <= 16; blockSize *= 2)
+ {
+ rawOutput = new MemoryStream();
+ output = CodedOutputStream.CreateInstance(rawOutput, blockSize);
+ output.WriteRawLittleEndian64(value);
+ output.Flush();
+ Assert.AreEqual(data, rawOutput.ToArray());
+ }
+ }
+
+ /// <summary>
+ /// Tests writeRawLittleEndian32() and writeRawLittleEndian64().
+ /// </summary>
+ [Test]
+ public void WriteLittleEndian()
+ {
+ AssertWriteLittleEndian32(new byte[] {0x78, 0x56, 0x34, 0x12}, 0x12345678);
+ AssertWriteLittleEndian32(new byte[] {0xf0, 0xde, 0xbc, 0x9a}, 0x9abcdef0);
+
+ AssertWriteLittleEndian64(
+ new byte[] {0xf0, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12},
+ 0x123456789abcdef0L);
+ AssertWriteLittleEndian64(
+ new byte[] {0x78, 0x56, 0x34, 0x12, 0xf0, 0xde, 0xbc, 0x9a},
+ 0x9abcdef012345678UL);
+ }
+
+ [Test]
+ public void WriteWholeMessage()
+ {
+ TestAllTypes message = TestUtil.GetAllSet();
+
+ byte[] rawBytes = message.ToByteArray();
+ TestUtil.AssertEqualBytes(TestUtil.GoldenMessage.ToByteArray(), rawBytes);
+
+ // Try different block sizes.
+ for (int blockSize = 1; blockSize < 256; blockSize *= 2)
+ {
+ MemoryStream rawOutput = new MemoryStream();
+ CodedOutputStream output =
+ CodedOutputStream.CreateInstance(rawOutput, blockSize);
+ message.WriteTo(output);
+ output.Flush();
+ TestUtil.AssertEqualBytes(rawBytes, rawOutput.ToArray());
+ }
+ }
+
+ /// <summary>
+ /// Tests writing a whole message with every packed field type. Ensures the
+ /// wire format of packed fields is compatible with C++.
+ /// </summary>
+ [Test]
+ public void WriteWholePackedFieldsMessage()
+ {
+ TestPackedTypes message = TestUtil.GetPackedSet();
+
+ byte[] rawBytes = message.ToByteArray();
+ TestUtil.AssertEqualBytes(TestUtil.GetGoldenPackedFieldsMessage().ToByteArray(),
+ rawBytes);
+ }
+
+ [Test]
+ public void EncodeZigZag32()
+ {
+ Assert.AreEqual(0u, CodedOutputStream.EncodeZigZag32(0));
+ Assert.AreEqual(1u, CodedOutputStream.EncodeZigZag32(-1));
+ Assert.AreEqual(2u, CodedOutputStream.EncodeZigZag32(1));
+ Assert.AreEqual(3u, CodedOutputStream.EncodeZigZag32(-2));
+ Assert.AreEqual(0x7FFFFFFEu, CodedOutputStream.EncodeZigZag32(0x3FFFFFFF));
+ Assert.AreEqual(0x7FFFFFFFu, CodedOutputStream.EncodeZigZag32(unchecked((int) 0xC0000000)));
+ Assert.AreEqual(0xFFFFFFFEu, CodedOutputStream.EncodeZigZag32(0x7FFFFFFF));
+ Assert.AreEqual(0xFFFFFFFFu, CodedOutputStream.EncodeZigZag32(unchecked((int) 0x80000000)));
+ }
+
+ [Test]
+ public void EncodeZigZag64()
+ {
+ Assert.AreEqual(0u, CodedOutputStream.EncodeZigZag64(0));
+ Assert.AreEqual(1u, CodedOutputStream.EncodeZigZag64(-1));
+ Assert.AreEqual(2u, CodedOutputStream.EncodeZigZag64(1));
+ Assert.AreEqual(3u, CodedOutputStream.EncodeZigZag64(-2));
+ Assert.AreEqual(0x000000007FFFFFFEuL,
+ CodedOutputStream.EncodeZigZag64(unchecked((long) 0x000000003FFFFFFFUL)));
+ Assert.AreEqual(0x000000007FFFFFFFuL,
+ CodedOutputStream.EncodeZigZag64(unchecked((long) 0xFFFFFFFFC0000000UL)));
+ Assert.AreEqual(0x00000000FFFFFFFEuL,
+ CodedOutputStream.EncodeZigZag64(unchecked((long) 0x000000007FFFFFFFUL)));
+ Assert.AreEqual(0x00000000FFFFFFFFuL,
+ CodedOutputStream.EncodeZigZag64(unchecked((long) 0xFFFFFFFF80000000UL)));
+ Assert.AreEqual(0xFFFFFFFFFFFFFFFEL,
+ CodedOutputStream.EncodeZigZag64(unchecked((long) 0x7FFFFFFFFFFFFFFFUL)));
+ Assert.AreEqual(0xFFFFFFFFFFFFFFFFL,
+ CodedOutputStream.EncodeZigZag64(unchecked((long) 0x8000000000000000UL)));
+ }
+
+ [Test]
+ public void RoundTripZigZag32()
+ {
+ // Some easier-to-verify round-trip tests. The inputs (other than 0, 1, -1)
+ // were chosen semi-randomly via keyboard bashing.
+ Assert.AreEqual(0, CodedInputStream.DecodeZigZag32(CodedOutputStream.EncodeZigZag32(0)));
+ Assert.AreEqual(1, CodedInputStream.DecodeZigZag32(CodedOutputStream.EncodeZigZag32(1)));
+ Assert.AreEqual(-1, CodedInputStream.DecodeZigZag32(CodedOutputStream.EncodeZigZag32(-1)));
+ Assert.AreEqual(14927, CodedInputStream.DecodeZigZag32(CodedOutputStream.EncodeZigZag32(14927)));
+ Assert.AreEqual(-3612, CodedInputStream.DecodeZigZag32(CodedOutputStream.EncodeZigZag32(-3612)));
+ }
+
+ [Test]
+ public void RoundTripZigZag64()
+ {
+ Assert.AreEqual(0, CodedInputStream.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(0)));
+ Assert.AreEqual(1, CodedInputStream.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(1)));
+ Assert.AreEqual(-1, CodedInputStream.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(-1)));
+ Assert.AreEqual(14927, CodedInputStream.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(14927)));
+ Assert.AreEqual(-3612, CodedInputStream.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(-3612)));
+
+ Assert.AreEqual(856912304801416L,
+ CodedInputStream.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(856912304801416L)));
+ Assert.AreEqual(-75123905439571256L,
+ CodedInputStream.DecodeZigZag64(CodedOutputStream.EncodeZigZag64(-75123905439571256L)));
+ }
+
+ [Test]
+ public void TestNegativeEnumNoTag()
+ {
+ Assert.AreEqual(10, CodedOutputStream.ComputeInt32SizeNoTag(-2));
+ Assert.AreEqual(10, CodedOutputStream.ComputeEnumSizeNoTag(-2));
+
+ byte[] bytes = new byte[10];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(bytes);
+ output.WriteEnumNoTag(-2);
+
+ Assert.AreEqual(0, output.SpaceLeft);
+ Assert.AreEqual("FE-FF-FF-FF-FF-FF-FF-FF-FF-01", BitConverter.ToString(bytes));
+ }
+
+ [Test]
+ public void TestNegativeEnumWithTag()
+ {
+ Assert.AreEqual(11, CodedOutputStream.ComputeInt32Size(8, -2));
+ Assert.AreEqual(11, CodedOutputStream.ComputeEnumSize(8, -2));
+
+ byte[] bytes = new byte[11];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(bytes);
+ output.WriteEnum(8, "", -2, -2);
+
+ Assert.AreEqual(0, output.SpaceLeft);
+ //fyi, 0x40 == 0x08 << 3 + 0, field num + wire format shift
+ Assert.AreEqual("40-FE-FF-FF-FF-FF-FF-FF-FF-FF-01", BitConverter.ToString(bytes));
+ }
+
+ [Test]
+ public void TestNegativeEnumArrayPacked()
+ {
+ int arraySize = 1 + (10 * 5);
+ int msgSize = 1 + 1 + arraySize;
+ byte[] bytes = new byte[msgSize];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(bytes);
+ output.WritePackedEnumArray(8, "", arraySize, new int[] { 0, -1, -2, -3, -4, -5 });
+
+ Assert.AreEqual(0, output.SpaceLeft);
+
+ CodedInputStream input = CodedInputStream.CreateInstance(bytes);
+ uint tag;
+ string name;
+ Assert.IsTrue(input.ReadTag(out tag, out name));
+
+ List<int> values = new List<int>();
+ input.ReadInt32Array(tag, name, values);
+
+ Assert.AreEqual(6, values.Count);
+ for (int i = 0; i > -6; i--)
+ Assert.AreEqual(i, values[Math.Abs(i)]);
+ }
+
+ [Test]
+ public void TestNegativeEnumArray()
+ {
+ int arraySize = 1 + 1 + (11 * 5);
+ int msgSize = arraySize;
+ byte[] bytes = new byte[msgSize];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(bytes);
+ output.WriteEnumArray(8, "", new int[] { 0, -1, -2, -3, -4, -5 });
+
+ Assert.AreEqual(0, output.SpaceLeft);
+
+ CodedInputStream input = CodedInputStream.CreateInstance(bytes);
+ uint tag;
+ string name;
+ Assert.IsTrue(input.ReadTag(out tag, out name));
+
+ List<int> values = new List<int>();
+ input.ReadInt32Array(tag, name, values);
+
+ Assert.AreEqual(6, values.Count);
+ for (int i = 0; i > -6; i--)
+ Assert.AreEqual(i, values[Math.Abs(i)]);
+ }
+
+ [Test]
+ public void TestCodedInputOutputPosition()
+ {
+ byte[] content = new byte[110];
+ for (int i = 0; i < content.Length; i++)
+ content[i] = (byte)i;
+
+ byte[] child = new byte[120];
+ {
+ MemoryStream ms = new MemoryStream(child);
+ CodedOutputStream cout = CodedOutputStream.CreateInstance(ms, 20);
+ // Field 11: numeric value: 500
+ cout.WriteTag(11, WireFormat.WireType.Varint);
+ Assert.AreEqual(1, cout.Position);
+ cout.WriteInt32NoTag(500);
+ Assert.AreEqual(3, cout.Position);
+ //Field 12: length delimited 120 bytes
+ cout.WriteTag(12, WireFormat.WireType.LengthDelimited);
+ Assert.AreEqual(4, cout.Position);
+ cout.WriteBytesNoTag(ByteString.CopyFrom(content));
+ Assert.AreEqual(115, cout.Position);
+ // Field 13: fixed numeric value: 501
+ cout.WriteTag(13, WireFormat.WireType.Fixed32);
+ Assert.AreEqual(116, cout.Position);
+ cout.WriteSFixed32NoTag(501);
+ Assert.AreEqual(120, cout.Position);
+ cout.Flush();
+ }
+
+ byte[] bytes = new byte[130];
+ {
+ CodedOutputStream cout = CodedOutputStream.CreateInstance(bytes);
+ // Field 1: numeric value: 500
+ cout.WriteTag(1, WireFormat.WireType.Varint);
+ Assert.AreEqual(1, cout.Position);
+ cout.WriteInt32NoTag(500);
+ Assert.AreEqual(3, cout.Position);
+ //Field 2: length delimited 120 bytes
+ cout.WriteTag(2, WireFormat.WireType.LengthDelimited);
+ Assert.AreEqual(4, cout.Position);
+ cout.WriteBytesNoTag(ByteString.CopyFrom(child));
+ Assert.AreEqual(125, cout.Position);
+ // Field 3: fixed numeric value: 500
+ cout.WriteTag(3, WireFormat.WireType.Fixed32);
+ Assert.AreEqual(126, cout.Position);
+ cout.WriteSFixed32NoTag(501);
+ Assert.AreEqual(130, cout.Position);
+ cout.Flush();
+ }
+ //Now test Input stream:
+ {
+ CodedInputStream cin = CodedInputStream.CreateInstance(new MemoryStream(bytes), new byte[50]);
+ uint tag;
+ int intValue = 0;
+ string ignore;
+ Assert.AreEqual(0, cin.Position);
+ // Field 1:
+ Assert.IsTrue(cin.ReadTag(out tag, out ignore) && tag >> 3 == 1);
+ Assert.AreEqual(1, cin.Position);
+ Assert.IsTrue(cin.ReadInt32(ref intValue) && intValue == 500);
+ Assert.AreEqual(3, cin.Position);
+ //Field 2:
+ Assert.IsTrue(cin.ReadTag(out tag, out ignore) && tag >> 3 == 2);
+ Assert.AreEqual(4, cin.Position);
+ uint childlen = cin.ReadRawVarint32();
+ Assert.AreEqual(120u, childlen);
+ Assert.AreEqual(5, cin.Position);
+ int oldlimit = cin.PushLimit((int)childlen);
+ Assert.AreEqual(5, cin.Position);
+ // Now we are reading child message
+ {
+ // Field 11: numeric value: 500
+ Assert.IsTrue(cin.ReadTag(out tag, out ignore) && tag >> 3 == 11);
+ Assert.AreEqual(6, cin.Position);
+ Assert.IsTrue(cin.ReadInt32(ref intValue) && intValue == 500);
+ Assert.AreEqual(8, cin.Position);
+ //Field 12: length delimited 120 bytes
+ Assert.IsTrue(cin.ReadTag(out tag, out ignore) && tag >> 3 == 12);
+ Assert.AreEqual(9, cin.Position);
+ ByteString bstr = null;
+ Assert.IsTrue(cin.ReadBytes(ref bstr) && bstr.Length == 110 && bstr.ToByteArray()[109] == 109);
+ Assert.AreEqual(120, cin.Position);
+ // Field 13: fixed numeric value: 501
+ Assert.IsTrue(cin.ReadTag(out tag, out ignore) && tag >> 3 == 13);
+ // ROK - Previously broken here, this returned 126 failing to account for bufferSizeAfterLimit
+ Assert.AreEqual(121, cin.Position);
+ Assert.IsTrue(cin.ReadSFixed32(ref intValue) && intValue == 501);
+ Assert.AreEqual(125, cin.Position);
+ Assert.IsTrue(cin.IsAtEnd);
+ }
+ cin.PopLimit(oldlimit);
+ Assert.AreEqual(125, cin.Position);
+ // Field 3: fixed numeric value: 501
+ Assert.IsTrue(cin.ReadTag(out tag, out ignore) && tag >> 3 == 3);
+ Assert.AreEqual(126, cin.Position);
+ Assert.IsTrue(cin.ReadSFixed32(ref intValue) && intValue == 501);
+ Assert.AreEqual(130, cin.Position);
+ Assert.IsTrue(cin.IsAtEnd);
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/Collections/PopsicleListTest.cs b/csharp/src/ProtocolBuffers.Test/Collections/PopsicleListTest.cs
new file mode 100644
index 00000000..f336a84b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Collections/PopsicleListTest.cs
@@ -0,0 +1,125 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers.Collections
+{
+ public class PopsicleListTest
+ {
+ [Test]
+ public void MutatingOperationsOnFrozenList()
+ {
+ PopsicleList<string> list = new PopsicleList<string>();
+ list.MakeReadOnly();
+ Assert.Throws<NotSupportedException>(() => list.Add(""));
+ Assert.Throws<NotSupportedException>(() => list.Clear());
+ Assert.Throws<NotSupportedException>(() => list.Insert(0, ""));
+ Assert.Throws<NotSupportedException>(() => list.Remove(""));
+ Assert.Throws<NotSupportedException>(() => list.RemoveAt(0));
+ Assert.Throws<NotSupportedException>(() => list.Add(new[] { "", "" }));
+ }
+
+ [Test]
+ public void NonMutatingOperationsOnFrozenList()
+ {
+ PopsicleList<string> list = new PopsicleList<string>();
+ list.MakeReadOnly();
+ Assert.IsFalse(list.Contains(""));
+ Assert.AreEqual(0, list.Count);
+ list.CopyTo(new string[5], 0);
+ list.GetEnumerator();
+ Assert.AreEqual(-1, list.IndexOf(""));
+ Assert.IsTrue(list.IsReadOnly);
+ }
+
+ [Test]
+ public void MutatingOperationsOnFluidList()
+ {
+ PopsicleList<string> list = new PopsicleList<string>();
+ list.Add("");
+ list.Clear();
+ list.Insert(0, "");
+ list.Remove("");
+ list.Add("x"); // Just to make the next call valid
+ list.RemoveAt(0);
+ }
+
+ [Test]
+ public void NonMutatingOperationsOnFluidList()
+ {
+ PopsicleList<string> list = new PopsicleList<string>();
+ Assert.IsFalse(list.Contains(""));
+ Assert.AreEqual(0, list.Count);
+ list.CopyTo(new string[5], 0);
+ list.GetEnumerator();
+ Assert.AreEqual(-1, list.IndexOf(""));
+ Assert.IsFalse(list.IsReadOnly);
+ }
+
+ [Test]
+ public void DoesNotAddNullEnumerable()
+ {
+ PopsicleList<string> list = new PopsicleList<string>();
+ Assert.Throws<ArgumentNullException>(() => list.Add((IEnumerable<string>) null));
+ }
+
+ [Test]
+ public void DoesNotAddRangeWithNull()
+ {
+ PopsicleList<string> list = new PopsicleList<string>();
+ // TODO(jonskeet): Change to ArgumentException? The argument isn't null...
+ Assert.Throws<ArgumentNullException>(() => list.Add(new[] {"a", "b", null}));
+ }
+
+ [Test]
+ public void DoesNotAddNull()
+ {
+ PopsicleList<string> list = new PopsicleList<string>();
+ Assert.Throws<ArgumentNullException>(() => list.Add((string) null));
+ }
+
+ [Test]
+ public void DoesNotSetNull()
+ {
+ PopsicleList<string> list = new PopsicleList<string>();
+ list.Add("a");
+ Assert.Throws<ArgumentNullException>(() => list[0] = null);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/Compatibility/BinaryCompatibilityTests.cs b/csharp/src/ProtocolBuffers.Test/Compatibility/BinaryCompatibilityTests.cs
new file mode 100644
index 00000000..30d257ad
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Compatibility/BinaryCompatibilityTests.cs
@@ -0,0 +1,18 @@
+using System;
+
+namespace Google.ProtocolBuffers.Compatibility
+{
+ public class BinaryCompatibilityTests : CompatibilityTests
+ {
+ protected override object SerializeMessage<TMessage, TBuilder>(TMessage message)
+ {
+ byte[] bresult = message.ToByteArray();
+ return Convert.ToBase64String(bresult);
+ }
+
+ protected override TBuilder DeserializeMessage<TMessage, TBuilder>(object message, TBuilder builder, ExtensionRegistry registry)
+ {
+ return builder.MergeFrom((byte[])Convert.FromBase64String((string)message), registry);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/Compatibility/CompatibilityTests.cs b/csharp/src/ProtocolBuffers.Test/Compatibility/CompatibilityTests.cs
new file mode 100644
index 00000000..a050827e
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Compatibility/CompatibilityTests.cs
@@ -0,0 +1,227 @@
+using System;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+
+namespace Google.ProtocolBuffers.Compatibility
+{
+ /// <summary>
+ /// This abstract base implements several tests to ensure that well-known messages can be written
+ /// and read to/from various formats without losing data. Implementations override the two serialization
+ /// methods to provide the tests with the means to read and write for a given format.
+ /// </summary>
+ public abstract class CompatibilityTests
+ {
+ protected abstract object SerializeMessage<TMessage, TBuilder>(TMessage message)
+ where TMessage : IMessageLite<TMessage, TBuilder>
+ where TBuilder : IBuilderLite<TMessage, TBuilder>;
+
+ protected abstract TBuilder DeserializeMessage<TMessage, TBuilder>(object message, TBuilder builder, ExtensionRegistry registry)
+ where TMessage : IMessageLite<TMessage, TBuilder>
+ where TBuilder : IBuilderLite<TMessage, TBuilder>;
+
+ protected virtual void AssertOutputEquals(object lhs, object rhs)
+ {
+ Assert.AreEqual(lhs, rhs);
+ }
+
+ [Test]
+ public virtual void RoundTripWithEmptyChildMessageSize()
+ {
+ SizeMessage1 msg = SizeMessage1.CreateBuilder()
+ .SetField100(100)
+ .SetField15(SizeMessage1SubMessage.DefaultInstance)
+ .BuildPartial();
+ byte[] contents = msg.ToByteArray();
+ object content = SerializeMessage<SizeMessage1, SizeMessage1.Builder>(msg);
+
+ SizeMessage1 copy = DeserializeMessage<SizeMessage1, SizeMessage1.Builder>(content, SizeMessage1.CreateBuilder(), ExtensionRegistry.Empty).BuildPartial();
+
+ Assert.AreEqual(msg, copy);
+ AssertOutputEquals(content, SerializeMessage<SizeMessage1, SizeMessage1.Builder>(copy));
+ Assert.AreEqual(Convert.ToBase64String(contents), Convert.ToBase64String(copy.ToByteArray()));
+ }
+
+ [Test]
+ public virtual void RoundTripWithEmptyChildMessageSpeed()
+ {
+ SpeedMessage1 msg = SpeedMessage1.CreateBuilder()
+ .SetField100(100)
+ .SetField15(SpeedMessage1SubMessage.DefaultInstance)
+ .BuildPartial();
+ byte[] contents = msg.ToByteArray();
+ object content = SerializeMessage<SpeedMessage1, SpeedMessage1.Builder>(msg);
+
+ SpeedMessage1 copy = DeserializeMessage<SpeedMessage1, SpeedMessage1.Builder>(content, SpeedMessage1.CreateBuilder(), ExtensionRegistry.Empty).BuildPartial();
+
+ Assert.AreEqual(msg, copy);
+ AssertOutputEquals(content, SerializeMessage<SpeedMessage1, SpeedMessage1.Builder>(copy));
+ Assert.AreEqual(Convert.ToBase64String(contents), Convert.ToBase64String(copy.ToByteArray()));
+ }
+
+ [Test]
+ public virtual void RoundTripMessage1OptimizeSize()
+ {
+ SizeMessage1 msg = SizeMessage1.CreateBuilder().MergeFrom(TestResources.google_message1).Build();
+ object content = SerializeMessage<SizeMessage1, SizeMessage1.Builder>(msg);
+
+ SizeMessage1 copy = DeserializeMessage<SizeMessage1, SizeMessage1.Builder>(content, SizeMessage1.CreateBuilder(), ExtensionRegistry.Empty).Build();
+
+ Assert.AreEqual(msg, copy);
+ AssertOutputEquals(content, SerializeMessage<SizeMessage1, SizeMessage1.Builder>(copy));
+ Assert.AreEqual(Convert.ToBase64String(TestResources.google_message1), Convert.ToBase64String(copy.ToByteArray()));
+ }
+
+ [Test]
+ public virtual void RoundTripMessage2OptimizeSize()
+ {
+ SizeMessage2 msg = SizeMessage2.CreateBuilder().MergeFrom(TestResources.google_message2).Build();
+ object content = SerializeMessage<SizeMessage2, SizeMessage2.Builder>(msg);
+
+ SizeMessage2 copy = DeserializeMessage<SizeMessage2, SizeMessage2.Builder>(content, SizeMessage2.CreateBuilder(), ExtensionRegistry.Empty).Build();
+
+ Assert.AreEqual(msg, copy);
+ AssertOutputEquals(content, SerializeMessage<SizeMessage2, SizeMessage2.Builder>(copy));
+ Assert.AreEqual(Convert.ToBase64String(TestResources.google_message2), Convert.ToBase64String(copy.ToByteArray()));
+ }
+
+ [Test]
+ public virtual void RoundTripMessage1OptimizeSpeed()
+ {
+ SpeedMessage1 msg = SpeedMessage1.CreateBuilder().MergeFrom(TestResources.google_message1).Build();
+ object content = SerializeMessage<SpeedMessage1, SpeedMessage1.Builder>(msg);
+
+ SpeedMessage1 copy = DeserializeMessage<SpeedMessage1, SpeedMessage1.Builder>(content, SpeedMessage1.CreateBuilder(), ExtensionRegistry.Empty).Build();
+
+ Assert.AreEqual(msg, copy);
+ AssertOutputEquals(content, SerializeMessage<SpeedMessage1, SpeedMessage1.Builder>(copy));
+ Assert.AreEqual(Convert.ToBase64String(TestResources.google_message1), Convert.ToBase64String(copy.ToByteArray()));
+ }
+
+ [Test]
+ public virtual void RoundTripMessage2OptimizeSpeed()
+ {
+ SpeedMessage2 msg = SpeedMessage2.CreateBuilder().MergeFrom(TestResources.google_message2).Build();
+ object content = SerializeMessage<SpeedMessage2, SpeedMessage2.Builder>(msg);
+
+ SpeedMessage2 copy = DeserializeMessage<SpeedMessage2, SpeedMessage2.Builder>(content, SpeedMessage2.CreateBuilder(), ExtensionRegistry.Empty).Build();
+
+ Assert.AreEqual(msg, copy);
+ AssertOutputEquals(content, SerializeMessage<SpeedMessage2, SpeedMessage2.Builder>(copy));
+ Assert.AreEqual(Convert.ToBase64String(TestResources.google_message2), Convert.ToBase64String(copy.ToByteArray()));
+ }
+
+ #region Test message builders
+
+ protected static TestAllTypes.Builder AddAllTypes(TestAllTypes.Builder builder)
+ {
+ return builder.SetOptionalInt32(1001)
+ .SetOptionalInt64(1001)
+ .SetOptionalUint32(1001)
+ .SetOptionalUint64(1001)
+ .SetOptionalSint32(-1001)
+ .SetOptionalSint64(-1001)
+ .SetOptionalFixed32(1001)
+ .SetOptionalFixed64(1001)
+ .SetOptionalSfixed32(-1001)
+ .SetOptionalSfixed64(-1001)
+ .SetOptionalFloat(1001.1001f)
+ .SetOptionalDouble(1001.1001)
+ .SetOptionalBool(true)
+ .SetOptionalString("this is a string value")
+ .SetOptionalBytes(ByteString.CopyFromUtf8("this is an array of bytes"))
+ .SetOptionalGroup(new TestAllTypes.Types.OptionalGroup.Builder().SetA(1001))
+ .SetOptionalNestedMessage(new TestAllTypes.Types.NestedMessage.Builder().SetBb(1001))
+ .SetOptionalNestedEnum(TestAllTypes.Types.NestedEnum.FOO)
+ ;
+ }
+
+ protected static TestAllTypes.Builder AddRepeatedTypes(TestAllTypes.Builder builder, int size)
+ {
+ //repeated values
+ for (int i = 0; i < size; i++)
+ builder.AddRepeatedInt32(1001 + i)
+ .AddRepeatedInt64(1001)
+ .AddRepeatedUint32(1001)
+ .AddRepeatedUint64(1001)
+ .AddRepeatedSint32(-1001)
+ .AddRepeatedSint64(-1001)
+ .AddRepeatedFixed32(1001)
+ .AddRepeatedFixed64(1001)
+ .AddRepeatedSfixed32(-1001)
+ .AddRepeatedSfixed64(-1001)
+ .AddRepeatedFloat(1001.1001f)
+ .AddRepeatedDouble(1001.1001)
+ .AddRepeatedBool(true)
+ .AddRepeatedString("this is a string value")
+ .AddRepeatedBytes(ByteString.CopyFromUtf8("this is an array of bytes"))
+ .AddRepeatedGroup(new TestAllTypes.Types.RepeatedGroup.Builder().SetA(1001))
+ .AddRepeatedNestedMessage(new TestAllTypes.Types.NestedMessage.Builder().SetBb(1001))
+ .AddRepeatedNestedEnum(TestAllTypes.Types.NestedEnum.FOO)
+ ;
+ return builder;
+ }
+
+ protected static TestPackedTypes.Builder AddPackedTypes(TestPackedTypes.Builder builder, int size)
+ {
+ for(int i=0; i < size; i++ )
+ builder.AddPackedInt32(1001)
+ .AddPackedInt64(1001)
+ .AddPackedUint32(1001)
+ .AddPackedUint64(1001)
+ .AddPackedSint32(-1001)
+ .AddPackedSint64(-1001)
+ .AddPackedFixed32(1001)
+ .AddPackedFixed64(1001)
+ .AddPackedSfixed32(-1001)
+ .AddPackedSfixed64(-1001)
+ .AddPackedFloat(1001.1001f)
+ .AddPackedDouble(1001.1001)
+ .AddPackedBool(true)
+ .AddPackedEnum(ForeignEnum.FOREIGN_FOO)
+ ;
+ return builder;
+ }
+
+ #endregion
+
+ [Test]
+ public void TestRoundTripAllTypes()
+ {
+ TestAllTypes msg = AddAllTypes(new TestAllTypes.Builder()).Build();
+ object content = SerializeMessage<TestAllTypes, TestAllTypes.Builder>(msg);
+
+ TestAllTypes copy = DeserializeMessage<TestAllTypes, TestAllTypes.Builder>(content, TestAllTypes.CreateBuilder(), ExtensionRegistry.Empty).Build();
+
+ Assert.AreEqual(msg, copy);
+ AssertOutputEquals(content, SerializeMessage<TestAllTypes, TestAllTypes.Builder>(copy));
+ Assert.AreEqual(Convert.ToBase64String(msg.ToByteArray()), Convert.ToBase64String(copy.ToByteArray()));
+ }
+
+ [Test]
+ public void TestRoundTripRepeatedTypes()
+ {
+ TestAllTypes msg = AddRepeatedTypes(new TestAllTypes.Builder(), 5).Build();
+ object content = SerializeMessage<TestAllTypes, TestAllTypes.Builder>(msg);
+
+ TestAllTypes copy = DeserializeMessage<TestAllTypes, TestAllTypes.Builder>(content, TestAllTypes.CreateBuilder(), ExtensionRegistry.Empty).Build();
+
+ Assert.AreEqual(msg, copy);
+ AssertOutputEquals(content, SerializeMessage<TestAllTypes, TestAllTypes.Builder>(copy));
+ Assert.AreEqual(Convert.ToBase64String(msg.ToByteArray()), Convert.ToBase64String(copy.ToByteArray()));
+ }
+
+ [Test]
+ public void TestRoundTripPackedTypes()
+ {
+ TestPackedTypes msg = AddPackedTypes(new TestPackedTypes.Builder(), 5).Build();
+ object content = SerializeMessage<TestPackedTypes, TestPackedTypes.Builder>(msg);
+
+ TestPackedTypes copy = DeserializeMessage<TestPackedTypes, TestPackedTypes.Builder>(content, TestPackedTypes.CreateBuilder(), ExtensionRegistry.Empty).Build();
+
+ Assert.AreEqual(msg, copy);
+ AssertOutputEquals(content, SerializeMessage<TestPackedTypes, TestPackedTypes.Builder>(copy));
+ Assert.AreEqual(Convert.ToBase64String(msg.ToByteArray()), Convert.ToBase64String(copy.ToByteArray()));
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/Compatibility/DictionaryCompatibilityTests.cs b/csharp/src/ProtocolBuffers.Test/Compatibility/DictionaryCompatibilityTests.cs
new file mode 100644
index 00000000..299bb1a6
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Compatibility/DictionaryCompatibilityTests.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Serialization;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers.Compatibility
+{
+ [TestFixture]
+ public class DictionaryCompatibilityTests : CompatibilityTests
+ {
+ protected override object SerializeMessage<TMessage, TBuilder>(TMessage message)
+ {
+ DictionaryWriter writer = new DictionaryWriter();
+ writer.WriteMessage(message);
+ return writer.ToDictionary();
+ }
+
+ protected override TBuilder DeserializeMessage<TMessage, TBuilder>(object message, TBuilder builder, ExtensionRegistry registry)
+ {
+ new DictionaryReader((IDictionary<string, object>)message).Merge(builder);
+ return builder;
+ }
+
+ protected override void AssertOutputEquals(object lhs, object rhs)
+ {
+ IDictionary<string, object> left = (IDictionary<string, object>)lhs;
+ IDictionary<string, object> right = (IDictionary<string, object>)rhs;
+
+ Assert.AreEqual(
+ String.Join(",", new List<string>(left.Keys).ToArray()),
+ String.Join(",", new List<string>(right.Keys).ToArray())
+ );
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/Compatibility/JsonCompatibilityTests.cs b/csharp/src/ProtocolBuffers.Test/Compatibility/JsonCompatibilityTests.cs
new file mode 100644
index 00000000..a1e0ed33
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Compatibility/JsonCompatibilityTests.cs
@@ -0,0 +1,43 @@
+using System.IO;
+using Google.ProtocolBuffers.Serialization;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers.Compatibility
+{
+ [TestFixture]
+ public class JsonCompatibilityTests : CompatibilityTests
+ {
+ protected override object SerializeMessage<TMessage, TBuilder>(TMessage message)
+ {
+ StringWriter sw = new StringWriter();
+ JsonFormatWriter.CreateInstance(sw)
+ .WriteMessage(message);
+ return sw.ToString();
+ }
+
+ protected override TBuilder DeserializeMessage<TMessage, TBuilder>(object message, TBuilder builder, ExtensionRegistry registry)
+ {
+ JsonFormatReader.CreateInstance((string)message).Merge(builder);
+ return builder;
+ }
+ }
+
+ [TestFixture]
+ public class JsonCompatibilityFormattedTests : CompatibilityTests
+ {
+ protected override object SerializeMessage<TMessage, TBuilder>(TMessage message)
+ {
+ StringWriter sw = new StringWriter();
+ JsonFormatWriter.CreateInstance(sw)
+ .Formatted()
+ .WriteMessage(message);
+ return sw.ToString();
+ }
+
+ protected override TBuilder DeserializeMessage<TMessage, TBuilder>(object message, TBuilder builder, ExtensionRegistry registry)
+ {
+ JsonFormatReader.CreateInstance((string)message).Merge(builder);
+ return builder;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/Compatibility/TestResources.cs b/csharp/src/ProtocolBuffers.Test/Compatibility/TestResources.cs
new file mode 100644
index 00000000..2282d61f
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Compatibility/TestResources.cs
@@ -0,0 +1,38 @@
+using System.IO;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers.Compatibility
+{
+ static class TestResources
+ {
+ public static byte[] google_message1
+ {
+ get
+ {
+ Stream resource = typeof(TestResources).Assembly.GetManifestResourceStream(
+ typeof(TestResources).Namespace + ".google_message1.dat");
+
+ Assert.NotNull(resource);
+
+ byte[] bytes = new byte[resource.Length];
+ int amtRead = resource.Read(bytes, 0, bytes.Length);
+ Assert.AreEqual(bytes.Length, amtRead);
+ return bytes;
+ }
+ }
+ public static byte[] google_message2
+ {
+ get
+ {
+ Stream resource = typeof(TestResources).Assembly.GetManifestResourceStream(
+ typeof(TestResources).Namespace + ".google_message2.dat");
+
+ Assert.NotNull(resource);
+ byte[] bytes = new byte[resource.Length];
+ int amtRead = resource.Read(bytes, 0, bytes.Length);
+ Assert.AreEqual(bytes.Length, amtRead);
+ return bytes;
+ }
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/Compatibility/TextCompatibilityTests.cs b/csharp/src/ProtocolBuffers.Test/Compatibility/TextCompatibilityTests.cs
new file mode 100644
index 00000000..89d6e260
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Compatibility/TextCompatibilityTests.cs
@@ -0,0 +1,35 @@
+using System.IO;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers.Compatibility
+{
+ [TestFixture]
+ public class TextCompatibilityTests : CompatibilityTests
+ {
+ protected override object SerializeMessage<TMessage, TBuilder>(TMessage message)
+ {
+ StringWriter text = new StringWriter();
+ message.PrintTo(text);
+ return text.ToString();
+ }
+
+ protected override TBuilder DeserializeMessage<TMessage, TBuilder>(object message, TBuilder builder, ExtensionRegistry registry)
+ {
+ TextFormat.Merge(new StringReader((string)message), registry, (IBuilder)builder);
+ return builder;
+ }
+ //This test can take a very long time to run.
+ [Test]
+ public override void RoundTripMessage2OptimizeSize()
+ {
+ //base.RoundTripMessage2OptimizeSize();
+ }
+
+ //This test can take a very long time to run.
+ [Test]
+ public override void RoundTripMessage2OptimizeSpeed()
+ {
+ //base.RoundTripMessage2OptimizeSpeed();
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/Compatibility/XmlCompatibilityTests.cs b/csharp/src/ProtocolBuffers.Test/Compatibility/XmlCompatibilityTests.cs
new file mode 100644
index 00000000..91d40d83
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Compatibility/XmlCompatibilityTests.cs
@@ -0,0 +1,45 @@
+using System.IO;
+using System.Xml;
+using Google.ProtocolBuffers.Serialization;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers.Compatibility
+{
+ [TestFixture]
+ public class XmlCompatibilityTests : CompatibilityTests
+ {
+ protected override object SerializeMessage<TMessage, TBuilder>(TMessage message)
+ {
+ StringWriter text = new StringWriter();
+ XmlFormatWriter writer = XmlFormatWriter.CreateInstance(text);
+ writer.WriteMessage("root", message);
+ return text.ToString();
+ }
+
+ protected override TBuilder DeserializeMessage<TMessage, TBuilder>(object message, TBuilder builder, ExtensionRegistry registry)
+ {
+ XmlFormatReader reader = XmlFormatReader.CreateInstance((string)message);
+ return reader.Merge("root", builder, registry);
+ }
+ }
+
+ [TestFixture]
+ public class XmlCompatibilityFormattedTests : CompatibilityTests
+ {
+ protected override object SerializeMessage<TMessage, TBuilder>(TMessage message)
+ {
+ StringWriter text = new StringWriter();
+ XmlWriter xwtr = XmlWriter.Create(text, new XmlWriterSettings { Indent = true, IndentChars = " " });
+
+ XmlFormatWriter writer = XmlFormatWriter.CreateInstance(xwtr).SetOptions(XmlWriterOptions.OutputNestedArrays);
+ writer.WriteMessage("root", message);
+ return text.ToString();
+ }
+
+ protected override TBuilder DeserializeMessage<TMessage, TBuilder>(object message, TBuilder builder, ExtensionRegistry registry)
+ {
+ XmlFormatReader reader = XmlFormatReader.CreateInstance((string)message).SetOptions(XmlReaderOptions.ReadNestedArrays);
+ return reader.Merge("root", builder, registry);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/Compatibility/google_message1.dat b/csharp/src/ProtocolBuffers.Test/Compatibility/google_message1.dat
new file mode 100644
index 00000000..bc0f064c
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Compatibility/google_message1.dat
Binary files differ
diff --git a/csharp/src/ProtocolBuffers.Test/Compatibility/google_message2.dat b/csharp/src/ProtocolBuffers.Test/Compatibility/google_message2.dat
new file mode 100644
index 00000000..06c09441
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Compatibility/google_message2.dat
Binary files differ
diff --git a/csharp/src/ProtocolBuffers.Test/DeprecatedMemberTest.cs b/csharp/src/ProtocolBuffers.Test/DeprecatedMemberTest.cs
new file mode 100644
index 00000000..db64d37a
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/DeprecatedMemberTest.cs
@@ -0,0 +1,99 @@
+using System;
+using System.Reflection;
+using UnitTest.Issues.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class DeprecatedMemberTest
+ {
+ private static void AssertIsDeprecated(MemberInfo member)
+ {
+ Assert.NotNull(member);
+ Assert.IsTrue(member.IsDefined(typeof(ObsoleteAttribute), false), "Member not obsolete: " + member);
+ }
+
+ [Test]
+ public void TestDepreatedPrimitiveValue()
+ {
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("HasPrimitiveValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("PrimitiveValue"));
+
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("HasPrimitiveValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("PrimitiveValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("ClearPrimitiveValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("SetPrimitiveValue"));
+ }
+ [Test]
+ public void TestDepreatedPrimitiveArray()
+ {
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("PrimitiveArrayList"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("PrimitiveArrayCount"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetMethod("GetPrimitiveArray"));
+
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("PrimitiveArrayList"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("PrimitiveArrayCount"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("GetPrimitiveArray"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("SetPrimitiveArray"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("AddPrimitiveArray"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("AddRangePrimitiveArray"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("ClearPrimitiveArray"));
+ }
+ [Test]
+ public void TestDepreatedMessageValue()
+ {
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("HasMessageValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("MessageValue"));
+
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("HasMessageValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("MessageValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("MergeMessageValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("ClearMessageValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("SetMessageValue", new[] { typeof(DeprecatedChild) }));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("SetMessageValue", new[] { typeof(DeprecatedChild.Builder) }));
+ }
+ [Test]
+ public void TestDepreatedMessageArray()
+ {
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("MessageArrayList"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("MessageArrayCount"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetMethod("GetMessageArray"));
+
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("MessageArrayList"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("MessageArrayCount"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("GetMessageArray"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("SetMessageArray", new[] { typeof(int), typeof(DeprecatedChild) }));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("SetMessageArray", new[] { typeof(int), typeof(DeprecatedChild.Builder) }));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("AddMessageArray", new[] { typeof(DeprecatedChild) }));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("AddMessageArray", new[] { typeof(DeprecatedChild.Builder) }));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("AddRangeMessageArray"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("ClearMessageArray"));
+ }
+ [Test]
+ public void TestDepreatedEnumValue()
+ {
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("HasEnumValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("EnumValue"));
+
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("HasEnumValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("EnumValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("ClearEnumValue"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("SetEnumValue"));
+ }
+ [Test]
+ public void TestDepreatedEnumArray()
+ {
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("EnumArrayList"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetProperty("EnumArrayCount"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage).GetMethod("GetEnumArray"));
+
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("EnumArrayList"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetProperty("EnumArrayCount"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("GetEnumArray"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("SetEnumArray"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("AddEnumArray"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("AddRangeEnumArray"));
+ AssertIsDeprecated(typeof(DeprecatedFieldsMessage.Builder).GetMethod("ClearEnumArray"));
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs b/csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs
new file mode 100644
index 00000000..3c26f441
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/DescriptorsTest.cs
@@ -0,0 +1,286 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Tests for descriptors. (Not in its own namespace or broken up into individual classes as the
+ /// size doesn't warrant it. On the other hand, this makes me feel a bit dirty...)
+ /// </summary>
+ public class DescriptorsTest
+ {
+ [Test]
+ public void FileDescriptor()
+ {
+ FileDescriptor file = Unittest.Descriptor;
+
+ Assert.AreEqual("google/protobuf/unittest.proto", file.Name);
+ Assert.AreEqual("protobuf_unittest", file.Package);
+
+ Assert.AreEqual("UnittestProto", file.Options.JavaOuterClassname);
+ Assert.AreEqual("google/protobuf/unittest.proto", file.Proto.Name);
+
+ // unittest.proto doesn't have any public imports, but unittest_import.proto does.
+ Assert.AreEqual(0, file.PublicDependencies.Count);
+ Assert.AreEqual(1, UnittestImport.Descriptor.PublicDependencies.Count);
+ Assert.AreEqual(UnittestImportPublic.Descriptor, UnittestImport.Descriptor.PublicDependencies[0]);
+
+ Assert.AreEqual(1, file.Dependencies.Count);
+ Assert.AreEqual(UnittestImport.Descriptor, file.Dependencies[0]);
+
+ MessageDescriptor messageType = TestAllTypes.Descriptor;
+ Assert.AreEqual(messageType, file.MessageTypes[0]);
+ Assert.AreEqual(messageType, file.FindTypeByName<MessageDescriptor>("TestAllTypes"));
+ Assert.Null(file.FindTypeByName<MessageDescriptor>("NoSuchType"));
+ Assert.Null(file.FindTypeByName<MessageDescriptor>("protobuf_unittest.TestAllTypes"));
+ for (int i = 0; i < file.MessageTypes.Count; i++)
+ {
+ Assert.AreEqual(i, file.MessageTypes[i].Index);
+ }
+
+ Assert.AreEqual(file.EnumTypes[0], file.FindTypeByName<EnumDescriptor>("ForeignEnum"));
+ Assert.Null(file.FindTypeByName<EnumDescriptor>("NoSuchType"));
+ Assert.Null(file.FindTypeByName<EnumDescriptor>("protobuf_unittest.ForeignEnum"));
+ Assert.AreEqual(1, UnittestImport.Descriptor.EnumTypes.Count);
+ Assert.AreEqual("ImportEnum", UnittestImport.Descriptor.EnumTypes[0].Name);
+ for (int i = 0; i < file.EnumTypes.Count; i++)
+ {
+ Assert.AreEqual(i, file.EnumTypes[i].Index);
+ }
+
+ FieldDescriptor extension = Unittest.OptionalInt32Extension.Descriptor;
+ Assert.AreEqual(extension, file.Extensions[0]);
+ Assert.AreEqual(extension, file.FindTypeByName<FieldDescriptor>("optional_int32_extension"));
+ Assert.Null(file.FindTypeByName<FieldDescriptor>("no_such_ext"));
+ Assert.Null(file.FindTypeByName<FieldDescriptor>("protobuf_unittest.optional_int32_extension"));
+ Assert.AreEqual(0, UnittestImport.Descriptor.Extensions.Count);
+ for (int i = 0; i < file.Extensions.Count; i++)
+ {
+ Assert.AreEqual(i, file.Extensions[i].Index);
+ }
+ }
+
+ [Test]
+ public void MessageDescriptor()
+ {
+ MessageDescriptor messageType = TestAllTypes.Descriptor;
+ MessageDescriptor nestedType = TestAllTypes.Types.NestedMessage.Descriptor;
+
+ Assert.AreEqual("TestAllTypes", messageType.Name);
+ Assert.AreEqual("protobuf_unittest.TestAllTypes", messageType.FullName);
+ Assert.AreEqual(Unittest.Descriptor, messageType.File);
+ Assert.Null(messageType.ContainingType);
+ Assert.AreEqual(DescriptorProtos.MessageOptions.DefaultInstance, messageType.Options);
+ Assert.AreEqual("TestAllTypes", messageType.Proto.Name);
+
+ Assert.AreEqual("NestedMessage", nestedType.Name);
+ Assert.AreEqual("protobuf_unittest.TestAllTypes.NestedMessage", nestedType.FullName);
+ Assert.AreEqual(Unittest.Descriptor, nestedType.File);
+ Assert.AreEqual(messageType, nestedType.ContainingType);
+
+ FieldDescriptor field = messageType.Fields[0];
+ Assert.AreEqual("optional_int32", field.Name);
+ Assert.AreEqual(field, messageType.FindDescriptor<FieldDescriptor>("optional_int32"));
+ Assert.Null(messageType.FindDescriptor<FieldDescriptor>("no_such_field"));
+ Assert.AreEqual(field, messageType.FindFieldByNumber(1));
+ Assert.Null(messageType.FindFieldByNumber(571283));
+ for (int i = 0; i < messageType.Fields.Count; i++)
+ {
+ Assert.AreEqual(i, messageType.Fields[i].Index);
+ }
+
+ Assert.AreEqual(nestedType, messageType.NestedTypes[0]);
+ Assert.AreEqual(nestedType, messageType.FindDescriptor<MessageDescriptor>("NestedMessage"));
+ Assert.Null(messageType.FindDescriptor<MessageDescriptor>("NoSuchType"));
+ for (int i = 0; i < messageType.NestedTypes.Count; i++)
+ {
+ Assert.AreEqual(i, messageType.NestedTypes[i].Index);
+ }
+
+ Assert.AreEqual(messageType.EnumTypes[0], messageType.FindDescriptor<EnumDescriptor>("NestedEnum"));
+ Assert.Null(messageType.FindDescriptor<EnumDescriptor>("NoSuchType"));
+ for (int i = 0; i < messageType.EnumTypes.Count; i++)
+ {
+ Assert.AreEqual(i, messageType.EnumTypes[i].Index);
+ }
+ }
+
+ [Test]
+ public void FieldDescriptor()
+ {
+ MessageDescriptor messageType = TestAllTypes.Descriptor;
+ FieldDescriptor primitiveField = messageType.FindDescriptor<FieldDescriptor>("optional_int32");
+ FieldDescriptor enumField = messageType.FindDescriptor<FieldDescriptor>("optional_nested_enum");
+ FieldDescriptor messageField = messageType.FindDescriptor<FieldDescriptor>("optional_foreign_message");
+ FieldDescriptor cordField = messageType.FindDescriptor<FieldDescriptor>("optional_cord");
+ FieldDescriptor extension = Unittest.OptionalInt32Extension.Descriptor;
+ FieldDescriptor nestedExtension = TestRequired.Single.Descriptor;
+
+ Assert.AreEqual("optional_int32", primitiveField.Name);
+ Assert.AreEqual("protobuf_unittest.TestAllTypes.optional_int32",
+ primitiveField.FullName);
+ Assert.AreEqual(1, primitiveField.FieldNumber);
+ Assert.AreEqual(messageType, primitiveField.ContainingType);
+ Assert.AreEqual(Unittest.Descriptor, primitiveField.File);
+ Assert.AreEqual(FieldType.Int32, primitiveField.FieldType);
+ Assert.AreEqual(MappedType.Int32, primitiveField.MappedType);
+ Assert.AreEqual(DescriptorProtos.FieldOptions.DefaultInstance, primitiveField.Options);
+ Assert.IsFalse(primitiveField.IsExtension);
+ Assert.AreEqual("optional_int32", primitiveField.Proto.Name);
+
+ Assert.AreEqual("optional_nested_enum", enumField.Name);
+ Assert.AreEqual(FieldType.Enum, enumField.FieldType);
+ Assert.AreEqual(MappedType.Enum, enumField.MappedType);
+ // Assert.AreEqual(TestAllTypes.Types.NestedEnum.DescriptorProtoFile, enumField.EnumType);
+
+ Assert.AreEqual("optional_foreign_message", messageField.Name);
+ Assert.AreEqual(FieldType.Message, messageField.FieldType);
+ Assert.AreEqual(MappedType.Message, messageField.MappedType);
+ Assert.AreEqual(ForeignMessage.Descriptor, messageField.MessageType);
+
+ Assert.AreEqual("optional_cord", cordField.Name);
+ Assert.AreEqual(FieldType.String, cordField.FieldType);
+ Assert.AreEqual(MappedType.String, cordField.MappedType);
+ Assert.AreEqual(DescriptorProtos.FieldOptions.Types.CType.CORD, cordField.Options.Ctype);
+
+ Assert.AreEqual("optional_int32_extension", extension.Name);
+ Assert.AreEqual("protobuf_unittest.optional_int32_extension", extension.FullName);
+ Assert.AreEqual(1, extension.FieldNumber);
+ Assert.AreEqual(TestAllExtensions.Descriptor, extension.ContainingType);
+ Assert.AreEqual(Unittest.Descriptor, extension.File);
+ Assert.AreEqual(FieldType.Int32, extension.FieldType);
+ Assert.AreEqual(MappedType.Int32, extension.MappedType);
+ Assert.AreEqual(DescriptorProtos.FieldOptions.DefaultInstance,
+ extension.Options);
+ Assert.IsTrue(extension.IsExtension);
+ Assert.AreEqual(null, extension.ExtensionScope);
+ Assert.AreEqual("optional_int32_extension", extension.Proto.Name);
+
+ Assert.AreEqual("single", nestedExtension.Name);
+ Assert.AreEqual("protobuf_unittest.TestRequired.single",
+ nestedExtension.FullName);
+ Assert.AreEqual(TestRequired.Descriptor,
+ nestedExtension.ExtensionScope);
+ }
+
+ [Test]
+ public void FieldDescriptorLabel()
+ {
+ FieldDescriptor requiredField =
+ TestRequired.Descriptor.FindDescriptor<FieldDescriptor>("a");
+ FieldDescriptor optionalField =
+ TestAllTypes.Descriptor.FindDescriptor<FieldDescriptor>("optional_int32");
+ FieldDescriptor repeatedField =
+ TestAllTypes.Descriptor.FindDescriptor<FieldDescriptor>("repeated_int32");
+
+ Assert.IsTrue(requiredField.IsRequired);
+ Assert.IsFalse(requiredField.IsRepeated);
+ Assert.IsFalse(optionalField.IsRequired);
+ Assert.IsFalse(optionalField.IsRepeated);
+ Assert.IsFalse(repeatedField.IsRequired);
+ Assert.IsTrue(repeatedField.IsRepeated);
+ }
+ [Test]
+ public void FieldDescriptorDefault()
+ {
+ MessageDescriptor d = TestAllTypes.Descriptor;
+ Assert.IsFalse(d.FindDescriptor<FieldDescriptor>("optional_int32").HasDefaultValue);
+ Assert.AreEqual(0, d.FindDescriptor<FieldDescriptor>("optional_int32").DefaultValue);
+ Assert.IsTrue(d.FindDescriptor<FieldDescriptor>("default_int32").HasDefaultValue);
+ Assert.AreEqual(41, d.FindDescriptor<FieldDescriptor>("default_int32").DefaultValue);
+
+ d = TestExtremeDefaultValues.Descriptor;
+ Assert.AreEqual(TestExtremeDefaultValues.DefaultInstance.EscapedBytes,
+ d.FindDescriptor<FieldDescriptor>("escaped_bytes").DefaultValue);
+
+ Assert.AreEqual(uint.MaxValue, d.FindDescriptor<FieldDescriptor>("large_uint32").DefaultValue);
+ Assert.AreEqual(ulong.MaxValue, d.FindDescriptor<FieldDescriptor>("large_uint64").DefaultValue);
+ }
+ [Test]
+ public void EnumDescriptor()
+ {
+ // Note: this test is a bit different to the Java version because there's no static way of getting to the descriptor
+ EnumDescriptor enumType = Unittest.Descriptor.FindTypeByName<EnumDescriptor>("ForeignEnum");
+ EnumDescriptor nestedType = TestAllTypes.Descriptor.FindDescriptor<EnumDescriptor>("NestedEnum");
+
+ Assert.AreEqual("ForeignEnum", enumType.Name);
+ Assert.AreEqual("protobuf_unittest.ForeignEnum", enumType.FullName);
+ Assert.AreEqual(Unittest.Descriptor, enumType.File);
+ Assert.Null(enumType.ContainingType);
+ Assert.AreEqual(DescriptorProtos.EnumOptions.DefaultInstance,
+ enumType.Options);
+
+ Assert.AreEqual("NestedEnum", nestedType.Name);
+ Assert.AreEqual("protobuf_unittest.TestAllTypes.NestedEnum",
+ nestedType.FullName);
+ Assert.AreEqual(Unittest.Descriptor, nestedType.File);
+ Assert.AreEqual(TestAllTypes.Descriptor, nestedType.ContainingType);
+
+ EnumValueDescriptor value = enumType.FindValueByName("FOREIGN_FOO");
+ Assert.AreEqual(value, enumType.Values[0]);
+ Assert.AreEqual("FOREIGN_FOO", value.Name);
+ Assert.AreEqual(4, value.Number);
+ Assert.AreEqual((int) ForeignEnum.FOREIGN_FOO, value.Number);
+ Assert.AreEqual(value, enumType.FindValueByNumber(4));
+ Assert.Null(enumType.FindValueByName("NO_SUCH_VALUE"));
+ for (int i = 0; i < enumType.Values.Count; i++)
+ {
+ Assert.AreEqual(i, enumType.Values[i].Index);
+ }
+ }
+
+
+ [Test]
+ public void CustomOptions()
+ {
+ MessageDescriptor descriptor = TestMessageWithCustomOptions.Descriptor;
+ Assert.IsTrue(descriptor.Options.HasExtension(UnittestCustomOptions.MessageOpt1));
+ Assert.AreEqual(-56, descriptor.Options.GetExtension(UnittestCustomOptions.MessageOpt1));
+
+
+ FieldDescriptor field = descriptor.FindFieldByName("field1");
+ Assert.NotNull(field);
+
+ Assert.IsTrue(field.Options.HasExtension(UnittestCustomOptions.FieldOpt1));
+ Assert.AreEqual(8765432109uL, field.Options.GetExtension(UnittestCustomOptions.FieldOpt1));
+
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/DynamicMessageTest.cs b/csharp/src/ProtocolBuffers.Test/DynamicMessageTest.cs
new file mode 100644
index 00000000..f60db213
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/DynamicMessageTest.cs
@@ -0,0 +1,276 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class DynamicMessageTest
+ {
+ private ReflectionTester reflectionTester;
+ private ReflectionTester extensionsReflectionTester;
+ private ReflectionTester packedReflectionTester;
+
+ public DynamicMessageTest()
+ {
+ reflectionTester = ReflectionTester.CreateTestAllTypesInstance();
+ extensionsReflectionTester = ReflectionTester.CreateTestAllExtensionsInstance();
+ packedReflectionTester = ReflectionTester.CreateTestPackedTypesInstance();
+ }
+
+ [Test]
+ public void DynamicMessageAccessors()
+ {
+ IBuilder builder = DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ IMessage message = builder.WeakBuild();
+ reflectionTester.AssertAllFieldsSetViaReflection(message);
+ }
+
+ [Test]
+ public void DoubleBuildError()
+ {
+ DynamicMessage.Builder builder = DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ builder.Build();
+ Assert.Throws<InvalidOperationException>(() => builder.Build());
+ }
+
+ [Test]
+ public void DynamicMessageSettersRejectNull()
+ {
+ IBuilder builder = DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ reflectionTester.AssertReflectionSettersRejectNull(builder);
+ }
+
+ [Test]
+ public void DynamicMessageExtensionAccessors()
+ {
+ // We don't need to extensively test DynamicMessage's handling of
+ // extensions because, frankly, it doesn't do anything special with them.
+ // It treats them just like any other fields.
+ IBuilder builder = DynamicMessage.CreateBuilder(TestAllExtensions.Descriptor);
+ extensionsReflectionTester.SetAllFieldsViaReflection(builder);
+ IMessage message = builder.WeakBuild();
+ extensionsReflectionTester.AssertAllFieldsSetViaReflection(message);
+ }
+
+ [Test]
+ public void DynamicMessageExtensionSettersRejectNull()
+ {
+ IBuilder builder = DynamicMessage.CreateBuilder(TestAllExtensions.Descriptor);
+ extensionsReflectionTester.AssertReflectionSettersRejectNull(builder);
+ }
+
+ [Test]
+ public void DynamicMessageRepeatedSetters()
+ {
+ IBuilder builder = DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ reflectionTester.ModifyRepeatedFieldsViaReflection(builder);
+ IMessage message = builder.WeakBuild();
+ reflectionTester.AssertRepeatedFieldsModifiedViaReflection(message);
+ }
+
+ [Test]
+ public void DynamicMessageRepeatedSettersRejectNull()
+ {
+ IBuilder builder = DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ reflectionTester.AssertReflectionRepeatedSettersRejectNull(builder);
+ }
+
+ [Test]
+ public void DynamicMessageDefaults()
+ {
+ reflectionTester.AssertClearViaReflection(DynamicMessage.GetDefaultInstance(TestAllTypes.Descriptor));
+ reflectionTester.AssertClearViaReflection(DynamicMessage.CreateBuilder(TestAllTypes.Descriptor).Build());
+ }
+
+ [Test]
+ public void DynamicMessageSerializedSize()
+ {
+ TestAllTypes message = TestUtil.GetAllSet();
+
+ IBuilder dynamicBuilder = DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ reflectionTester.SetAllFieldsViaReflection(dynamicBuilder);
+ IMessage dynamicMessage = dynamicBuilder.WeakBuild();
+
+ Assert.AreEqual(message.SerializedSize, dynamicMessage.SerializedSize);
+ }
+
+ [Test]
+ public void DynamicMessageSerialization()
+ {
+ IBuilder builder = DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ IMessage message = builder.WeakBuild();
+
+ ByteString rawBytes = message.ToByteString();
+ TestAllTypes message2 = TestAllTypes.ParseFrom(rawBytes);
+
+ TestUtil.AssertAllFieldsSet(message2);
+
+ // In fact, the serialized forms should be exactly the same, byte-for-byte.
+ Assert.AreEqual(TestUtil.GetAllSet().ToByteString(), rawBytes);
+ }
+
+ [Test]
+ public void DynamicMessageParsing()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TestUtil.SetAllFields(builder);
+ TestAllTypes message = builder.Build();
+
+ ByteString rawBytes = message.ToByteString();
+
+ IMessage message2 = DynamicMessage.ParseFrom(TestAllTypes.Descriptor, rawBytes);
+ reflectionTester.AssertAllFieldsSetViaReflection(message2);
+ }
+
+ [Test]
+ public void DynamicMessagePackedSerialization()
+ {
+ IBuilder builder = DynamicMessage.CreateBuilder(TestPackedTypes.Descriptor);
+ packedReflectionTester.SetPackedFieldsViaReflection(builder);
+ IMessage message = builder.WeakBuild();
+
+ ByteString rawBytes = message.ToByteString();
+ TestPackedTypes message2 = TestPackedTypes.ParseFrom(rawBytes);
+
+ TestUtil.AssertPackedFieldsSet(message2);
+
+ // In fact, the serialized forms should be exactly the same, byte-for-byte.
+ Assert.AreEqual(TestUtil.GetPackedSet().ToByteString(), rawBytes);
+ }
+
+ [Test]
+ public void DynamicMessagePackedParsing()
+ {
+ TestPackedTypes.Builder builder = TestPackedTypes.CreateBuilder();
+ TestUtil.SetPackedFields(builder);
+ TestPackedTypes message = builder.Build();
+
+ ByteString rawBytes = message.ToByteString();
+
+ IMessage message2 = DynamicMessage.ParseFrom(TestPackedTypes.Descriptor, rawBytes);
+ packedReflectionTester.AssertPackedFieldsSetViaReflection(message2);
+ }
+
+ [Test]
+ public void DynamicMessageCopy()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TestUtil.SetAllFields(builder);
+ TestAllTypes message = builder.Build();
+
+ DynamicMessage copy = DynamicMessage.CreateBuilder(message).Build();
+ reflectionTester.AssertAllFieldsSetViaReflection(copy);
+
+ // Oneof
+ FieldDescriptor bytesField =
+ TestAllTypes.Descriptor.FindFieldByName("oneof_bytes");
+ FieldDescriptor uint32Field =
+ TestAllTypes.Descriptor.FindFieldByName("oneof_uint32");
+ Assert.True(copy.HasField(bytesField));
+ Assert.False(copy.HasField(uint32Field));
+
+ DynamicMessage.Builder dynamicBuilder = DynamicMessage.CreateBuilder(message);
+ dynamicBuilder[uint32Field] = 123U;
+ DynamicMessage copy2 = dynamicBuilder.Build();
+ Assert.IsFalse(copy2.HasField(bytesField));
+ Assert.IsTrue(copy2.HasField(uint32Field));
+ Assert.AreEqual(123U, copy2[uint32Field]);
+ }
+
+ [Test]
+ public void ToBuilder()
+ {
+ DynamicMessage.Builder builder =
+ DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ int unknownFieldNum = 9;
+ ulong unknownFieldVal = 90;
+ builder.SetUnknownFields(UnknownFieldSet.CreateBuilder()
+ .AddField(unknownFieldNum,
+ UnknownField.CreateBuilder().AddVarint(unknownFieldVal).Build())
+ .Build());
+ DynamicMessage message = builder.Build();
+
+ DynamicMessage derived = message.ToBuilder().Build();
+ reflectionTester.AssertAllFieldsSetViaReflection(derived);
+
+ IList<ulong> values = derived.UnknownFields.FieldDictionary[unknownFieldNum].VarintList;
+ Assert.AreEqual(1, values.Count);
+ Assert.AreEqual(unknownFieldVal, values[0]);
+ }
+
+ [Test]
+ public void DynamicOneofMessage()
+ {
+ DynamicMessage.Builder builder =
+ DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ OneofDescriptor oneof = TestAllTypes.Descriptor.Oneofs[0];
+ Assert.False(builder.HasOneof(oneof));
+ Assert.AreSame(null, builder.OneofFieldDescriptor(oneof));
+
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ Assert.True(builder.HasOneof(oneof));
+ FieldDescriptor field = oneof.Field(3);
+ Assert.AreSame(field, builder.OneofFieldDescriptor(oneof));
+ Assert.AreEqual(TestUtil.ToBytes("604"), builder[field]);
+
+ DynamicMessage message = builder.BuildPartial();
+ Assert.IsTrue(message.HasOneof(oneof));
+
+ DynamicMessage.Builder mergedBuilder =
+ DynamicMessage.CreateBuilder(TestAllTypes.Descriptor);
+ FieldDescriptor mergedField = oneof.Field(0);
+ mergedBuilder[mergedField] = 123U;
+ Assert.IsTrue(mergedBuilder.HasField(mergedField));
+ mergedBuilder.MergeFrom(message);
+ Assert.IsTrue(mergedBuilder.HasField(field));
+ Assert.IsFalse(mergedBuilder.HasField(mergedField));
+
+ mergedBuilder.ClearOneof(oneof);
+ Assert.AreSame(null, mergedBuilder.OneofFieldDescriptor(oneof));
+ message = mergedBuilder.Build();
+ Assert.AreSame(null, message.OneofFieldDescriptor(oneof));
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs b/csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs
new file mode 100644
index 00000000..2aaf39c8
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/ExtendableMessageTest.cs
@@ -0,0 +1,200 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class ExtendableMessageTest
+ {
+ [Test]
+ public void ExtensionWriterInvalidExtension()
+ {
+ Assert.Throws<ArgumentException>(() =>
+ TestPackedExtensions.CreateBuilder()[Unittest.OptionalForeignMessageExtension.Descriptor] =
+ ForeignMessage.DefaultInstance);
+ }
+
+ [Test]
+ public void ExtensionWriterTest()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder()
+ .SetExtension(Unittest.DefaultBoolExtension, true)
+ .SetExtension(Unittest.DefaultBytesExtension, ByteString.CopyFromUtf8("123"))
+ .SetExtension(Unittest.DefaultCordExtension, "123")
+ .SetExtension(Unittest.DefaultDoubleExtension, 123)
+ .SetExtension(Unittest.DefaultFixed32Extension, 123u)
+ .SetExtension(Unittest.DefaultFixed64Extension, 123u)
+ .SetExtension(Unittest.DefaultFloatExtension, 123)
+ .SetExtension(Unittest.DefaultForeignEnumExtension, ForeignEnum.FOREIGN_BAZ)
+ .SetExtension(Unittest.DefaultImportEnumExtension, ImportEnum.IMPORT_BAZ)
+ .SetExtension(Unittest.DefaultInt32Extension, 123)
+ .SetExtension(Unittest.DefaultInt64Extension, 123)
+ .SetExtension(Unittest.DefaultNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO)
+ .SetExtension(Unittest.DefaultSfixed32Extension, 123)
+ .SetExtension(Unittest.DefaultSfixed64Extension, 123)
+ .SetExtension(Unittest.DefaultSint32Extension, 123)
+ .SetExtension(Unittest.DefaultSint64Extension, 123)
+ .SetExtension(Unittest.DefaultStringExtension, "123")
+ .SetExtension(Unittest.DefaultStringPieceExtension, "123")
+ .SetExtension(Unittest.DefaultUint32Extension, 123u)
+ .SetExtension(Unittest.DefaultUint64Extension, 123u)
+ //Optional
+ .SetExtension(Unittest.OptionalBoolExtension, true)
+ .SetExtension(Unittest.OptionalBytesExtension, ByteString.CopyFromUtf8("123"))
+ .SetExtension(Unittest.OptionalCordExtension, "123")
+ .SetExtension(Unittest.OptionalDoubleExtension, 123)
+ .SetExtension(Unittest.OptionalFixed32Extension, 123u)
+ .SetExtension(Unittest.OptionalFixed64Extension, 123u)
+ .SetExtension(Unittest.OptionalFloatExtension, 123)
+ .SetExtension(Unittest.OptionalForeignEnumExtension, ForeignEnum.FOREIGN_BAZ)
+ .SetExtension(Unittest.OptionalImportEnumExtension, ImportEnum.IMPORT_BAZ)
+ .SetExtension(Unittest.OptionalInt32Extension, 123)
+ .SetExtension(Unittest.OptionalInt64Extension, 123)
+ .SetExtension(Unittest.OptionalNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO)
+ .SetExtension(Unittest.OptionalSfixed32Extension, 123)
+ .SetExtension(Unittest.OptionalSfixed64Extension, 123)
+ .SetExtension(Unittest.OptionalSint32Extension, 123)
+ .SetExtension(Unittest.OptionalSint64Extension, 123)
+ .SetExtension(Unittest.OptionalStringExtension, "123")
+ .SetExtension(Unittest.OptionalStringPieceExtension, "123")
+ .SetExtension(Unittest.OptionalUint32Extension, 123u)
+ .SetExtension(Unittest.OptionalUint64Extension, 123u)
+ //Repeated
+ .AddExtension(Unittest.RepeatedBoolExtension, true)
+ .AddExtension(Unittest.RepeatedBytesExtension, ByteString.CopyFromUtf8("123"))
+ .AddExtension(Unittest.RepeatedCordExtension, "123")
+ .AddExtension(Unittest.RepeatedDoubleExtension, 123)
+ .AddExtension(Unittest.RepeatedFixed32Extension, 123u)
+ .AddExtension(Unittest.RepeatedFixed64Extension, 123u)
+ .AddExtension(Unittest.RepeatedFloatExtension, 123)
+ .AddExtension(Unittest.RepeatedForeignEnumExtension, ForeignEnum.FOREIGN_BAZ)
+ .AddExtension(Unittest.RepeatedImportEnumExtension, ImportEnum.IMPORT_BAZ)
+ .AddExtension(Unittest.RepeatedInt32Extension, 123)
+ .AddExtension(Unittest.RepeatedInt64Extension, 123)
+ .AddExtension(Unittest.RepeatedNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO)
+ .AddExtension(Unittest.RepeatedSfixed32Extension, 123)
+ .AddExtension(Unittest.RepeatedSfixed64Extension, 123)
+ .AddExtension(Unittest.RepeatedSint32Extension, 123)
+ .AddExtension(Unittest.RepeatedSint64Extension, 123)
+ .AddExtension(Unittest.RepeatedStringExtension, "123")
+ .AddExtension(Unittest.RepeatedStringPieceExtension, "123")
+ .AddExtension(Unittest.RepeatedUint32Extension, 123u)
+ .AddExtension(Unittest.RepeatedUint64Extension, 123u)
+ ;
+ TestAllExtensions msg = builder.Build();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ Unittest.RegisterAllExtensions(registry);
+
+ TestAllExtensions.Builder copyBuilder = TestAllExtensions.CreateBuilder().MergeFrom(msg.ToByteArray(),
+ registry);
+ TestAllExtensions copy = copyBuilder.Build();
+
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Assert.AreEqual(true, copy.GetExtension(Unittest.DefaultBoolExtension));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(Unittest.DefaultBytesExtension));
+ Assert.AreEqual("123", copy.GetExtension(Unittest.DefaultCordExtension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultDoubleExtension));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.DefaultFixed32Extension));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.DefaultFixed64Extension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultFloatExtension));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, copy.GetExtension(Unittest.DefaultForeignEnumExtension));
+ Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(Unittest.DefaultImportEnumExtension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultInt32Extension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultInt64Extension));
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO,
+ copy.GetExtension(Unittest.DefaultNestedEnumExtension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultSfixed32Extension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultSfixed64Extension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultSint32Extension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.DefaultSint64Extension));
+ Assert.AreEqual("123", copy.GetExtension(Unittest.DefaultStringExtension));
+ Assert.AreEqual("123", copy.GetExtension(Unittest.DefaultStringPieceExtension));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.DefaultUint32Extension));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.DefaultUint64Extension));
+
+ Assert.AreEqual(true, copy.GetExtension(Unittest.OptionalBoolExtension));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(Unittest.OptionalBytesExtension));
+ Assert.AreEqual("123", copy.GetExtension(Unittest.OptionalCordExtension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalDoubleExtension));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.OptionalFixed32Extension));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.OptionalFixed64Extension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalFloatExtension));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, copy.GetExtension(Unittest.OptionalForeignEnumExtension));
+ Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(Unittest.OptionalImportEnumExtension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalInt32Extension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalInt64Extension));
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO,
+ copy.GetExtension(Unittest.OptionalNestedEnumExtension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalSfixed32Extension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalSfixed64Extension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalSint32Extension));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.OptionalSint64Extension));
+ Assert.AreEqual("123", copy.GetExtension(Unittest.OptionalStringExtension));
+ Assert.AreEqual("123", copy.GetExtension(Unittest.OptionalStringPieceExtension));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.OptionalUint32Extension));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.OptionalUint64Extension));
+
+ Assert.AreEqual(true, copy.GetExtension(Unittest.RepeatedBoolExtension, 0));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"),
+ copy.GetExtension(Unittest.RepeatedBytesExtension, 0));
+ Assert.AreEqual("123", copy.GetExtension(Unittest.RepeatedCordExtension, 0));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedDoubleExtension, 0));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.RepeatedFixed32Extension, 0));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.RepeatedFixed64Extension, 0));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedFloatExtension, 0));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ,
+ copy.GetExtension(Unittest.RepeatedForeignEnumExtension, 0));
+ Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(Unittest.RepeatedImportEnumExtension, 0));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedInt32Extension, 0));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedInt64Extension, 0));
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO,
+ copy.GetExtension(Unittest.RepeatedNestedEnumExtension, 0));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedSfixed32Extension, 0));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedSfixed64Extension, 0));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedSint32Extension, 0));
+ Assert.AreEqual(123, copy.GetExtension(Unittest.RepeatedSint64Extension, 0));
+ Assert.AreEqual("123", copy.GetExtension(Unittest.RepeatedStringExtension, 0));
+ Assert.AreEqual("123", copy.GetExtension(Unittest.RepeatedStringPieceExtension, 0));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.RepeatedUint32Extension, 0));
+ Assert.AreEqual(123u, copy.GetExtension(Unittest.RepeatedUint64Extension, 0));
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/FieldPresenceTest.cs b/csharp/src/ProtocolBuffers.Test/FieldPresenceTest.cs
new file mode 100644
index 00000000..66214221
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/FieldPresenceTest.cs
@@ -0,0 +1,198 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2015 Google Inc. All rights reserved.
+// Author: jieluo@google.com (Jie Luo)
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.TestProtos.Proto3;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class FieldPresenceTest
+ {
+ private void CheckHasMethodRemoved(Type proto2Type, Type proto3Type, string name)
+ {
+ Assert.NotNull(proto2Type.GetProperty(name));
+ Assert.NotNull(proto2Type.GetProperty("Has" + name));
+ Assert.NotNull(proto3Type.GetProperty(name));
+ Assert.Null(proto3Type.GetProperty("Has" + name));
+ }
+
+ [Test]
+ public void TestHasMethod()
+ {
+ // Optional non-message fields don't have HasFoo method generated
+ Type proto2Type = typeof(Google.ProtocolBuffers.TestProtos.TestAllTypes);
+ Type proto3Type = typeof(TestAllTypes);
+ CheckHasMethodRemoved(proto2Type, proto3Type, "OptionalInt32");
+ CheckHasMethodRemoved(proto2Type, proto3Type, "OptionalString");
+ CheckHasMethodRemoved(proto2Type, proto3Type, "OptionalBytes");
+ CheckHasMethodRemoved(proto2Type, proto3Type, "OptionalNestedEnum");
+
+ Type proto2BuilderType = typeof(Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder);
+ Type proto3BuilderType = typeof(TestAllTypes.Builder);
+ CheckHasMethodRemoved(proto2BuilderType, proto3BuilderType, "OptionalInt32");
+ CheckHasMethodRemoved(proto2BuilderType, proto3BuilderType, "OptionalString");
+ CheckHasMethodRemoved(proto2BuilderType, proto3BuilderType, "OptionalBytes");
+ CheckHasMethodRemoved(proto2BuilderType, proto3BuilderType, "OptionalNestedEnum");
+
+ // message fields still have the HasFoo method generated
+ Assert.IsFalse(TestAllTypes.CreateBuilder().Build().HasOptionalNestedMessage);
+ Assert.IsFalse(TestAllTypes.CreateBuilder().HasOptionalNestedMessage);
+
+ // oneof fields don't have the HasFoo method (even for message types)
+ CheckHasMethodRemoved(proto2Type, proto3Type, "OneofUint32");
+ CheckHasMethodRemoved(proto2Type, proto3Type, "OneofString");
+ CheckHasMethodRemoved(proto2Type, proto3Type, "OneofNestedMessage");
+
+ CheckHasMethodRemoved(proto2BuilderType, proto3BuilderType, "OneofUint32");
+ CheckHasMethodRemoved(proto2BuilderType, proto3BuilderType, "OneofString");
+ CheckHasMethodRemoved(proto2BuilderType, proto3BuilderType, "OneofNestedMessage");
+ }
+
+ [Test]
+ public void TestFieldPresence()
+ {
+ // Optional non-message fields set to their default value are treated the same
+ // way as not set.
+
+ // Serialization will ignore such fields.
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ builder.SetOptionalInt32(0);
+ builder.SetOptionalString("");
+ builder.SetOptionalBytes(ByteString.Empty);
+ builder.SetOptionalNestedEnum(TestAllTypes.Types.NestedEnum.FOO);
+ TestAllTypes message = builder.Build();
+ Assert.AreEqual(0, message.SerializedSize);
+
+ // Test merge
+ TestAllTypes.Builder a = TestAllTypes.CreateBuilder();
+ a.SetOptionalInt32(1);
+ a.SetOptionalString("x");
+ a.SetOptionalBytes(ByteString.CopyFromUtf8("y"));
+ a.SetOptionalNestedEnum(TestAllTypes.Types.NestedEnum.BAR);
+ a.MergeFrom(message);
+ TestAllTypes messageA = a.Build();
+ Assert.AreEqual(1, messageA.OptionalInt32);
+ Assert.AreEqual("x", messageA.OptionalString);
+ Assert.AreEqual(ByteString.CopyFromUtf8("y"), messageA.OptionalBytes);
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR, messageA.OptionalNestedEnum);
+
+ // equals/hashCode should produce the same results
+ TestAllTypes empty = TestAllTypes.CreateBuilder().Build();
+ Assert.IsTrue(empty.Equals(message));
+ Assert.IsTrue(message.Equals(empty));
+ Assert.AreEqual(empty.GetHashCode(), message.GetHashCode());
+ }
+
+ [Test]
+ public void TestFieldPresenceReflection()
+ {
+ MessageDescriptor descriptor = TestAllTypes.Descriptor;
+ FieldDescriptor optionalInt32Field = descriptor.FindFieldByName("optional_int32");
+ FieldDescriptor optionalStringField = descriptor.FindFieldByName("optional_string");
+ FieldDescriptor optionalBytesField = descriptor.FindFieldByName("optional_bytes");
+ FieldDescriptor optionalNestedEnumField = descriptor.FindFieldByName("optional_nested_enum");
+ FieldDescriptor oneofUint32Field = descriptor.FindFieldByName("oneof_uint32");
+
+ TestAllTypes message = TestAllTypes.CreateBuilder().Build();
+ Assert.IsFalse(message.HasField(optionalInt32Field));
+ Assert.IsFalse(message.HasField(optionalStringField));
+ Assert.IsFalse(message.HasField(optionalBytesField));
+ Assert.IsFalse(message.HasField(optionalNestedEnumField));
+
+ // Set to default value is seen as not present for optional fields.
+ // Set to default value is seen as present for oneof fields.
+ message = TestAllTypes.CreateBuilder()
+ .SetOptionalInt32(0)
+ .SetOptionalString("")
+ .SetOptionalBytes(ByteString.Empty)
+ .SetOptionalNestedEnum(TestAllTypes.Types.NestedEnum.FOO)
+ .SetOneofUint32(0U)
+ .Build();
+ Assert.IsFalse(message.HasField(optionalInt32Field));
+ Assert.IsFalse(message.HasField(optionalStringField));
+ Assert.IsFalse(message.HasField(optionalBytesField));
+ Assert.IsFalse(message.HasField(optionalNestedEnumField));
+ Assert.IsTrue(message.HasField(oneofUint32Field));
+ Assert.AreEqual(1, message.AllFields.Count);
+
+ // Set to non-defalut value is seen as present
+ message = TestAllTypes.CreateBuilder()
+ .SetOptionalInt32(1)
+ .SetOptionalString("x")
+ .SetOptionalBytes(ByteString.CopyFromUtf8("y"))
+ .SetOptionalNestedEnum(TestAllTypes.Types.NestedEnum.BAR)
+ .Build();
+ Assert.IsTrue(message.HasField(optionalInt32Field));
+ Assert.IsTrue(message.HasField(optionalStringField));
+ Assert.IsTrue(message.HasField(optionalBytesField));
+ Assert.IsTrue(message.HasField(optionalNestedEnumField));
+ Assert.AreEqual(4, message.AllFields.Count);
+ }
+
+ [Test]
+ public void TestMessageField()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ Assert.IsFalse(builder.HasOptionalNestedMessage);
+ Assert.IsFalse(builder.Build().HasOptionalNestedMessage);
+
+ // Unlike non-message fields, if we set default value to message field, the field
+ // shoule be seem as present.
+ builder.SetOptionalNestedMessage(TestAllTypes.Types.NestedMessage.DefaultInstance);
+ Assert.IsTrue(builder.HasOptionalNestedMessage);
+ Assert.IsTrue(builder.Build().HasOptionalNestedMessage);
+ }
+
+ [Test]
+ public void TestSerializeAndParse()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ builder.SetOptionalInt32(1234);
+ builder.SetOptionalString("hello");
+ builder.SetOptionalNestedMessage(TestAllTypes.Types.NestedMessage.DefaultInstance);
+ builder.SetOneofUint32(0U);
+ ByteString data = builder.Build().ToByteString();
+
+ TestAllTypes message = TestAllTypes.ParseFrom(data);
+ Assert.AreEqual(1234, message.OptionalInt32);
+ Assert.AreEqual("hello", message.OptionalString);
+ Assert.AreEqual(ByteString.Empty, message.OptionalBytes);
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, message.OptionalNestedEnum);
+ Assert.IsTrue(message.HasOptionalNestedMessage);
+ Assert.AreEqual(0, message.OptionalNestedMessage.Bb);
+ Assert.AreEqual(TestAllTypes.OneofFieldOneofCase.OneofUint32, message.OneofFieldCase);
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/GeneratedBuilderTest.cs b/csharp/src/ProtocolBuffers.Test/GeneratedBuilderTest.cs
new file mode 100644
index 00000000..257f5001
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/GeneratedBuilderTest.cs
@@ -0,0 +1,102 @@
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class GeneratedBuilderTest
+ {
+ class OneTimeEnumerator<T> : IEnumerable<T>
+ {
+ readonly T _item;
+ bool _enumerated;
+ public OneTimeEnumerator(T item)
+ {
+ _item = item;
+ }
+ public IEnumerator<T> GetEnumerator()
+ {
+ Assert.IsFalse(_enumerated);
+ _enumerated = true;
+ yield return _item;
+ }
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+ }
+
+ [Test]
+ public void DoesNotEnumerateTwiceForMessageList()
+ {
+ TestAllTypes.Builder b = new TestAllTypes.Builder();
+ b.AddRangeRepeatedForeignMessage(new OneTimeEnumerator<ForeignMessage>(ForeignMessage.DefaultInstance));
+ }
+
+ [Test]
+ public void DoesNotEnumerateTwiceForPrimitiveList()
+ {
+ TestAllTypes.Builder b = new TestAllTypes.Builder();
+ b.AddRangeRepeatedInt32(new OneTimeEnumerator<int>(1));
+ }
+
+ [Test]
+ public void DoesNotEnumerateTwiceForStringList()
+ {
+ TestAllTypes.Builder b = new TestAllTypes.Builder();
+ b.AddRangeRepeatedString(new OneTimeEnumerator<string>("test"));
+ }
+
+ [Test]
+ public void DoesNotEnumerateTwiceForEnumList()
+ {
+ TestAllTypes.Builder b = new TestAllTypes.Builder();
+ b.AddRangeRepeatedForeignEnum(new OneTimeEnumerator<ForeignEnum>(ForeignEnum.FOREIGN_BAR));
+ }
+
+ [Test]
+ public void DoesNotAddNullToMessageListByAddRange()
+ {
+ TestAllTypes.Builder b = new TestAllTypes.Builder();
+ Assert.Throws<ArgumentNullException>(() => b.AddRangeRepeatedForeignMessage(new ForeignMessage[] { null }));
+ }
+
+ [Test]
+ public void DoesNotAddNullToMessageListByAdd()
+ {
+ TestAllTypes.Builder b = new TestAllTypes.Builder();
+ Assert.Throws<ArgumentNullException>(() => b.AddRepeatedForeignMessage((ForeignMessage)null));
+ }
+
+ [Test]
+ public void DoesNotAddNullToMessageListBySet()
+ {
+ TestAllTypes.Builder b = new TestAllTypes.Builder();
+ b.AddRepeatedForeignMessage(ForeignMessage.DefaultInstance);
+ Assert.Throws<ArgumentNullException>(() => b.SetRepeatedForeignMessage(0, (ForeignMessage)null));
+ }
+
+ [Test]
+ public void DoesNotAddNullToStringListByAddRange()
+ {
+ TestAllTypes.Builder b = new TestAllTypes.Builder();
+ Assert.Throws<ArgumentNullException>(() => b.AddRangeRepeatedString(new String[] { null }));
+ }
+
+ [Test]
+ public void DoesNotAddNullToStringListByAdd()
+ {
+ TestAllTypes.Builder b = new TestAllTypes.Builder();
+ Assert.Throws<ArgumentNullException>(() => b.AddRepeatedString(null));
+ }
+
+ [Test]
+ public void DoesNotAddNullToStringListBySet()
+ {
+ TestAllTypes.Builder b = new TestAllTypes.Builder();
+ b.AddRepeatedString("one");
+ Assert.Throws<ArgumentNullException>(() => b.SetRepeatedString(0, null));
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs b/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs
new file mode 100644
index 00000000..4f669449
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/GeneratedMessageTest.cs
@@ -0,0 +1,776 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class GeneratedMessageTest
+ {
+ private readonly ReflectionTester reflectionTester;
+ private readonly ReflectionTester extensionsReflectionTester;
+
+ public GeneratedMessageTest()
+ {
+ reflectionTester = ReflectionTester.CreateTestAllTypesInstance();
+ extensionsReflectionTester = ReflectionTester.CreateTestAllExtensionsInstance();
+ }
+
+ [Test]
+ public void RepeatedAddPrimitiveBeforeBuild()
+ {
+ TestAllTypes message = new TestAllTypes.Builder {RepeatedInt32List = {1, 2, 3}}.Build();
+ TestUtil.AssertEqual(new int[] {1, 2, 3}, message.RepeatedInt32List);
+ }
+
+ [Test]
+ public void AddPrimitiveFailsAfterBuild()
+ {
+ TestAllTypes.Builder builder = new TestAllTypes.Builder();
+ IList<int> list = builder.RepeatedInt32List;
+ list.Add(1); // Fine
+ builder.Build();
+
+ Assert.Throws<NotSupportedException>(() => list.Add(2));
+ }
+
+ [Test]
+ public void RepeatedAddMessageBeforeBuild()
+ {
+ TestAllTypes message = new TestAllTypes.Builder
+ {
+ RepeatedNestedMessageList =
+ {new TestAllTypes.Types.NestedMessage.Builder {Bb = 10}.Build()}
+ }.Build();
+ Assert.AreEqual(1, message.RepeatedNestedMessageCount);
+ Assert.AreEqual(10, message.RepeatedNestedMessageList[0].Bb);
+ }
+
+ [Test]
+ public void AddMessageFailsAfterBuild()
+ {
+ TestAllTypes.Builder builder = new TestAllTypes.Builder();
+ IList<TestAllTypes.Types.NestedMessage> list = builder.RepeatedNestedMessageList;
+ builder.Build();
+
+ Assert.Throws<NotSupportedException>(() => list.Add(new TestAllTypes.Types.NestedMessage.Builder { Bb = 10 }.Build()));
+ }
+
+ [Test]
+ public void DefaultInstance()
+ {
+ Assert.AreSame(TestAllTypes.DefaultInstance, TestAllTypes.DefaultInstance.DefaultInstanceForType);
+ Assert.AreSame(TestAllTypes.DefaultInstance, TestAllTypes.CreateBuilder().DefaultInstanceForType);
+ }
+
+ [Test]
+ public void Accessors()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TestUtil.SetAllFields(builder);
+ TestAllTypes message = builder.Build();
+ TestUtil.AssertAllFieldsSet(message);
+ }
+
+ [Test]
+ public void SettersRejectNull()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ Assert.Throws<ArgumentNullException>(() => builder.SetOptionalString(null));
+ Assert.Throws<ArgumentNullException>(() => builder.SetOptionalBytes(null));
+ Assert.Throws<ArgumentNullException>(
+ () => builder.SetOptionalNestedMessage((TestAllTypes.Types.NestedMessage) null));
+ Assert.Throws<ArgumentNullException>(
+ () => builder.SetOptionalNestedMessage((TestAllTypes.Types.NestedMessage.Builder) null));
+ Assert.Throws<ArgumentNullException>(() => builder.AddRepeatedString(null));
+ Assert.Throws<ArgumentNullException>(() => builder.AddRepeatedBytes(null));
+ Assert.Throws<ArgumentNullException>(
+ () => builder.AddRepeatedNestedMessage((TestAllTypes.Types.NestedMessage) null));
+ Assert.Throws<ArgumentNullException>(
+ () => builder.AddRepeatedNestedMessage((TestAllTypes.Types.NestedMessage.Builder) null));
+ }
+
+ [Test]
+ public void RepeatedSetters()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TestUtil.SetAllFields(builder);
+ TestUtil.ModifyRepeatedFields(builder);
+ TestAllTypes message = builder.Build();
+ TestUtil.AssertRepeatedFieldsModified(message);
+ }
+
+ [Test]
+ public void RepeatedAppend()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+
+ builder.AddRangeRepeatedInt32(new int[] {1, 2, 3, 4});
+ builder.AddRangeRepeatedForeignEnum((new ForeignEnum[] {ForeignEnum.FOREIGN_BAZ}));
+
+ ForeignMessage foreignMessage = ForeignMessage.CreateBuilder().SetC(12).Build();
+ builder.AddRangeRepeatedForeignMessage(new ForeignMessage[] {foreignMessage});
+
+ TestAllTypes message = builder.Build();
+ TestUtil.AssertEqual(message.RepeatedInt32List, new int[] {1, 2, 3, 4});
+ TestUtil.AssertEqual(message.RepeatedForeignEnumList, new ForeignEnum[] {ForeignEnum.FOREIGN_BAZ});
+ Assert.AreEqual(1, message.RepeatedForeignMessageCount);
+ Assert.AreEqual(12, message.GetRepeatedForeignMessage(0).C);
+ }
+
+ [Test]
+ public void RepeatedAppendRejectsNull()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+
+ ForeignMessage foreignMessage = ForeignMessage.CreateBuilder().SetC(12).Build();
+ Assert.Throws<ArgumentNullException>(
+ () => builder.AddRangeRepeatedForeignMessage(new[] {foreignMessage, null}));
+ Assert.Throws<ArgumentNullException>(() => builder.AddRangeRepeatedForeignMessage(null));
+ Assert.Throws<ArgumentNullException>(() => builder.AddRangeRepeatedForeignEnum(null));
+ Assert.Throws<ArgumentNullException>(() => builder.AddRangeRepeatedString(new[] {"one", null}));
+ Assert.Throws<ArgumentNullException>(
+ () => builder.AddRangeRepeatedBytes(new[] {TestUtil.ToBytes("one"), null}));
+ }
+
+ [Test]
+ public void SettingForeignMessageUsingBuilder()
+ {
+ TestAllTypes message = TestAllTypes.CreateBuilder()
+ // Pass builder for foreign message instance.
+ .SetOptionalForeignMessage(ForeignMessage.CreateBuilder().SetC(123))
+ .Build();
+ TestAllTypes expectedMessage = TestAllTypes.CreateBuilder()
+ // Create expected version passing foreign message instance explicitly.
+ .SetOptionalForeignMessage(ForeignMessage.CreateBuilder().SetC(123).Build())
+ .Build();
+ Assert.AreEqual(expectedMessage, message);
+ }
+
+ [Test]
+ public void SettingRepeatedForeignMessageUsingBuilder()
+ {
+ TestAllTypes message = TestAllTypes.CreateBuilder()
+ // Pass builder for foreign message instance.
+ .AddRepeatedForeignMessage(ForeignMessage.CreateBuilder().SetC(456))
+ .Build();
+ TestAllTypes expectedMessage = TestAllTypes.CreateBuilder()
+ // Create expected version passing foreign message instance explicitly.
+ .AddRepeatedForeignMessage(ForeignMessage.CreateBuilder().SetC(456).Build())
+ .Build();
+ Assert.AreEqual(expectedMessage, message);
+ }
+
+ [Test]
+ public void SettingRepeatedValuesUsingRangeInCollectionInitializer()
+ {
+ int[] values = {1, 2, 3};
+ TestAllTypes message = new TestAllTypes.Builder
+ {
+ RepeatedSint32List = {values}
+ }.Build();
+ Assert.IsTrue(Lists.Equals(values, message.RepeatedSint32List));
+ }
+
+ [Test]
+ public void SettingRepeatedValuesUsingIndividualValuesInCollectionInitializer()
+ {
+ TestAllTypes message = new TestAllTypes.Builder
+ {
+ RepeatedSint32List = {6, 7}
+ }.Build();
+ Assert.IsTrue(Lists.Equals(new int[] {6, 7}, message.RepeatedSint32List));
+ }
+
+ [Test]
+ public void Defaults()
+ {
+ TestUtil.AssertClear(TestAllTypes.DefaultInstance);
+ TestUtil.AssertClear(TestAllTypes.CreateBuilder().Build());
+
+ Assert.AreEqual("\u1234", TestExtremeDefaultValues.DefaultInstance.Utf8String);
+ }
+
+ [Test]
+ public void ReflectionGetters()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TestUtil.SetAllFields(builder);
+ TestAllTypes message = builder.Build();
+ reflectionTester.AssertAllFieldsSetViaReflection(message);
+ }
+
+ [Test]
+ public void ReflectionSetters()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ TestAllTypes message = builder.Build();
+ TestUtil.AssertAllFieldsSet(message);
+ }
+
+ [Test]
+ public void ReflectionClear()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ reflectionTester.ClearAllFieldsViaReflection(builder);
+ TestAllTypes message = builder.Build();
+ TestUtil.AssertClear(message);
+ }
+
+ [Test]
+ public void ReflectionSettersRejectNull()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ reflectionTester.AssertReflectionSettersRejectNull(builder);
+ }
+
+ [Test]
+ public void ReflectionRepeatedSetters()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ reflectionTester.ModifyRepeatedFieldsViaReflection(builder);
+ TestAllTypes message = builder.Build();
+ TestUtil.AssertRepeatedFieldsModified(message);
+ }
+
+ [Test]
+ public void TestReflectionRepeatedSettersRejectNull()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ reflectionTester.AssertReflectionRepeatedSettersRejectNull(builder);
+ }
+
+ [Test]
+ public void ReflectionDefaults()
+ {
+ TestUtil.TestInMultipleCultures(() =>
+ {
+ reflectionTester.AssertClearViaReflection(
+ TestAllTypes.DefaultInstance);
+ reflectionTester.AssertClearViaReflection(
+ TestAllTypes.CreateBuilder().Build());
+ });
+ }
+
+ [Test]
+ public void ReflectionGetOneof()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ Descriptors.OneofDescriptor oneof = TestAllTypes.Descriptor.Oneofs[0];
+ Descriptors.FieldDescriptor field = TestAllTypes.Descriptor.FindFieldByName("oneof_bytes");
+ Assert.AreSame(field, builder.OneofFieldDescriptor(oneof));
+ }
+
+ [Test]
+ public void ReflectionClearOneof()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ reflectionTester.SetAllFieldsViaReflection(builder);
+ OneofDescriptor oneof = TestAllTypes.Descriptor.Oneofs[0];
+ FieldDescriptor field = TestAllTypes.Descriptor.FindFieldByName("oneof_bytes");
+
+ Assert.IsTrue(builder.HasOneof(oneof));
+ Assert.IsTrue(builder.HasField(field));
+ builder.ClearOneof(oneof);
+ Assert.IsFalse(builder.HasOneof(oneof));
+ Assert.IsFalse(builder.HasField(field));
+ }
+
+ // =================================================================
+ // Extensions.
+
+ [Test]
+ public void ExtensionAccessors()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ TestUtil.SetAllExtensions(builder);
+ TestAllExtensions message = builder.Build();
+ TestUtil.AssertAllExtensionsSet(message);
+ }
+
+ [Test]
+ public void ExtensionRepeatedSetters()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ TestUtil.SetAllExtensions(builder);
+ TestUtil.ModifyRepeatedExtensions(builder);
+ TestAllExtensions message = builder.Build();
+ TestUtil.AssertRepeatedExtensionsModified(message);
+ }
+
+ [Test]
+ public void ExtensionDefaults()
+ {
+ TestUtil.AssertExtensionsClear(TestAllExtensions.DefaultInstance);
+ TestUtil.AssertExtensionsClear(TestAllExtensions.CreateBuilder().Build());
+ }
+
+ [Test]
+ public void ExtensionReflectionGetters()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ TestUtil.SetAllExtensions(builder);
+ TestAllExtensions message = builder.Build();
+ extensionsReflectionTester.AssertAllFieldsSetViaReflection(message);
+ }
+
+ [Test]
+ public void ExtensionReflectionSetters()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ extensionsReflectionTester.SetAllFieldsViaReflection(builder);
+ TestAllExtensions message = builder.Build();
+ TestUtil.AssertAllExtensionsSet(message);
+ }
+
+ [Test]
+ public void ExtensionReflectionSettersRejectNull()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ extensionsReflectionTester.AssertReflectionSettersRejectNull(builder);
+ }
+
+ [Test]
+ public void ExtensionReflectionRepeatedSetters()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ extensionsReflectionTester.SetAllFieldsViaReflection(builder);
+ extensionsReflectionTester.ModifyRepeatedFieldsViaReflection(builder);
+ TestAllExtensions message = builder.Build();
+ TestUtil.AssertRepeatedExtensionsModified(message);
+ }
+
+ [Test]
+ public void ExtensionReflectionRepeatedSettersRejectNull()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ extensionsReflectionTester.AssertReflectionRepeatedSettersRejectNull(builder);
+ }
+
+ [Test]
+ public void ExtensionReflectionDefaults()
+ {
+ TestUtil.TestInMultipleCultures(() =>
+ {
+ extensionsReflectionTester.AssertClearViaReflection(
+ TestAllExtensions.DefaultInstance);
+ extensionsReflectionTester.AssertClearViaReflection(
+ TestAllExtensions.CreateBuilder().Build());
+ });
+ }
+
+ [Test]
+ public void ClearExtension()
+ {
+ // ClearExtension() is not actually used in TestUtil, so try it manually.
+ Assert.IsFalse(TestAllExtensions.CreateBuilder()
+ .SetExtension(Unittest.OptionalInt32Extension, 1)
+ .ClearExtension(Unittest.OptionalInt32Extension)
+ .HasExtension(Unittest.OptionalInt32Extension));
+ Assert.AreEqual(0, TestAllExtensions.CreateBuilder()
+ .AddExtension(Unittest.RepeatedInt32Extension, 1)
+ .ClearExtension(Unittest.RepeatedInt32Extension)
+ .GetExtensionCount(Unittest.RepeatedInt32Extension));
+ }
+
+ [Test]
+ public void ExtensionMergeFrom()
+ {
+ TestAllExtensions original = TestAllExtensions.CreateBuilder()
+ .SetExtension(Unittest.OptionalInt32Extension, 1).Build();
+ TestAllExtensions merged =
+ TestAllExtensions.CreateBuilder().MergeFrom(original).Build();
+ Assert.IsTrue((merged.HasExtension(Unittest.OptionalInt32Extension)));
+ Assert.AreEqual(1, (int) merged.GetExtension(Unittest.OptionalInt32Extension));
+ }
+
+ /* Removed multiple files option for the moment
+ [Test]
+ public void MultipleFilesOption() {
+ // We mostly just want to check that things compile.
+ MessageWithNoOuter message = MessageWithNoOuter.CreateBuilder()
+ .SetNested(MessageWithNoOuter.Types.NestedMessage.CreateBuilder().SetI(1))
+ .AddForeign(TestAllTypes.CreateBuilder().SetOptionalInt32(1))
+ .SetNestedEnum(MessageWithNoOuter.Types.NestedEnum.BAZ)
+ .SetForeignEnum(EnumWithNoOuter.BAR)
+ .Build();
+ Assert.AreEqual(message, MessageWithNoOuter.ParseFrom(message.ToByteString()));
+
+ Assert.AreEqual(MultiFileProto.DescriptorProtoFile, MessageWithNoOuter.DescriptorProtoFile.File);
+
+ FieldDescriptor field = MessageWithNoOuter.DescriptorProtoFile.FindDescriptor<FieldDescriptor>("foreign_enum");
+ Assert.AreEqual(MultiFileProto.DescriptorProtoFile.FindTypeByName<EnumDescriptor>("EnumWithNoOuter")
+ .FindValueByNumber((int)EnumWithNoOuter.BAR), message[field]);
+
+ Assert.AreEqual(MultiFileProto.DescriptorProtoFile, ServiceWithNoOuter.DescriptorProtoFile.File);
+
+ Assert.IsFalse(TestAllExtensions.DefaultInstance.HasExtension(MultiFileProto.ExtensionWithOuter));
+ }*/
+
+ [Test]
+ public void OptionalFieldWithRequiredSubfieldsOptimizedForSize()
+ {
+ TestOptionalOptimizedForSize message = TestOptionalOptimizedForSize.DefaultInstance;
+ Assert.IsTrue(message.IsInitialized);
+
+ message = TestOptionalOptimizedForSize.CreateBuilder().SetO(
+ TestRequiredOptimizedForSize.CreateBuilder().BuildPartial()
+ ).BuildPartial();
+ Assert.IsFalse(message.IsInitialized);
+
+ message = TestOptionalOptimizedForSize.CreateBuilder().SetO(
+ TestRequiredOptimizedForSize.CreateBuilder().SetX(5).BuildPartial()
+ ).BuildPartial();
+ Assert.IsTrue(message.IsInitialized);
+ }
+
+ [Test]
+ public void OptimizedForSizeMergeUsesAllFieldsFromTarget()
+ {
+ TestOptimizedForSize withFieldSet = new TestOptimizedForSize.Builder {I = 10}.Build();
+ TestOptimizedForSize.Builder builder = new TestOptimizedForSize.Builder();
+ builder.MergeFrom(withFieldSet);
+ TestOptimizedForSize built = builder.Build();
+ Assert.AreEqual(10, built.I);
+ }
+
+ [Test]
+ public void UninitializedExtensionInOptimizedForSizeMakesMessageUninitialized()
+ {
+ TestOptimizedForSize.Builder builder = new TestOptimizedForSize.Builder();
+ builder.SetExtension(TestOptimizedForSize.TestExtension2,
+ new TestRequiredOptimizedForSize.Builder().BuildPartial());
+ Assert.IsFalse(builder.IsInitialized);
+ Assert.IsFalse(builder.BuildPartial().IsInitialized);
+
+ builder = new TestOptimizedForSize.Builder();
+ builder.SetExtension(TestOptimizedForSize.TestExtension2,
+ new TestRequiredOptimizedForSize.Builder {X = 10}.BuildPartial());
+ Assert.IsTrue(builder.IsInitialized);
+ Assert.IsTrue(builder.BuildPartial().IsInitialized);
+ }
+
+ [Test]
+ public void ToBuilder()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TestUtil.SetAllFields(builder);
+ TestAllTypes message = builder.Build();
+ TestUtil.AssertAllFieldsSet(message.ToBuilder().Build());
+ }
+
+ [Test]
+ public void FieldConstantValues()
+ {
+ Assert.AreEqual(TestAllTypes.Types.NestedMessage.BbFieldNumber, 1);
+ Assert.AreEqual(TestAllTypes.OptionalInt32FieldNumber, 1);
+ Assert.AreEqual(TestAllTypes.OptionalGroupFieldNumber, 16);
+ Assert.AreEqual(TestAllTypes.OptionalNestedMessageFieldNumber, 18);
+ Assert.AreEqual(TestAllTypes.OptionalNestedEnumFieldNumber, 21);
+ Assert.AreEqual(TestAllTypes.RepeatedInt32FieldNumber, 31);
+ Assert.AreEqual(TestAllTypes.RepeatedGroupFieldNumber, 46);
+ Assert.AreEqual(TestAllTypes.RepeatedNestedMessageFieldNumber, 48);
+ Assert.AreEqual(TestAllTypes.RepeatedNestedEnumFieldNumber, 51);
+ }
+
+ [Test]
+ public void ExtensionConstantValues()
+ {
+ Assert.AreEqual(TestRequired.SingleFieldNumber, 1000);
+ Assert.AreEqual(TestRequired.MultiFieldNumber, 1001);
+ Assert.AreEqual(Unittest.OptionalInt32ExtensionFieldNumber, 1);
+ Assert.AreEqual(Unittest.OptionalGroupExtensionFieldNumber, 16);
+ Assert.AreEqual(Unittest.OptionalNestedMessageExtensionFieldNumber, 18);
+ Assert.AreEqual(Unittest.OptionalNestedEnumExtensionFieldNumber, 21);
+ Assert.AreEqual(Unittest.RepeatedInt32ExtensionFieldNumber, 31);
+ Assert.AreEqual(Unittest.RepeatedGroupExtensionFieldNumber, 46);
+ Assert.AreEqual(Unittest.RepeatedNestedMessageExtensionFieldNumber, 48);
+ Assert.AreEqual(Unittest.RepeatedNestedEnumExtensionFieldNumber, 51);
+ }
+
+ [Test]
+ public void EmptyPackedValue()
+ {
+ TestPackedTypes empty = new TestPackedTypes.Builder().Build();
+ Assert.AreEqual(0, empty.SerializedSize);
+ }
+
+ // oneof tests
+ [Test]
+ public void TestOneofEnumCase()
+ {
+ TestOneof2 message = TestOneof2.CreateBuilder()
+ .SetFooInt(123).SetFooString("foo").SetFooCord("bar").Build();
+ TestUtil.AssertAtMostOneFieldSetOneof(message);
+ }
+
+ [Test]
+ public void TestClearOneof()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder().SetFooInt(123);
+ Assert.AreEqual(TestOneof2.FooOneofCase.FooInt, builder.FooCase);
+ builder.ClearFoo();
+ Assert.AreEqual(TestOneof2.FooOneofCase.None, builder.FooCase);
+ }
+
+ [Test]
+ public void TestSetOneofClearsOthers()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ TestOneof2 message =
+ builder.SetFooInt(123).SetFooString("foo").Build();
+ Assert.IsTrue(message.HasFooString);
+ TestUtil.AssertAtMostOneFieldSetOneof(message);
+
+ message = builder.SetFooCord("bar").Build();
+ Assert.IsTrue(message.HasFooCord);
+ TestUtil.AssertAtMostOneFieldSetOneof(message);
+
+ message = builder.SetFooStringPiece("baz").Build();
+ Assert.IsTrue(message.HasFooStringPiece);
+ TestUtil.AssertAtMostOneFieldSetOneof(message);
+
+ message = builder.SetFooBytes(TestUtil.ToBytes("qux")).Build();
+ Assert.IsTrue(message.HasFooBytes);
+ TestUtil.AssertAtMostOneFieldSetOneof(message);
+
+ message = builder.SetFooEnum(TestOneof2.Types.NestedEnum.FOO).Build();
+ Assert.IsTrue(message.HasFooEnum);
+ TestUtil.AssertAtMostOneFieldSetOneof(message);
+
+ message = builder.SetFooMessage(
+ TestOneof2.Types.NestedMessage.CreateBuilder().SetQuxInt(234).Build()).Build();
+ Assert.IsTrue(message.HasFooMessage);
+ TestUtil.AssertAtMostOneFieldSetOneof(message);
+
+ message = builder.SetFooInt(123).Build();
+ Assert.IsTrue(message.HasFooInt);
+ TestUtil.AssertAtMostOneFieldSetOneof(message);
+ }
+
+ [Test]
+ public void TestOneofTypes_Primitive()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ Assert.AreEqual(builder.FooInt, 0);
+ Assert.IsFalse(builder.HasFooInt);
+ Assert.IsTrue(builder.SetFooInt(123).HasFooInt);
+ Assert.AreEqual(builder.FooInt, 123);
+ TestOneof2 message = builder.BuildPartial();
+ Assert.IsTrue(message.HasFooInt);
+ Assert.AreEqual(message.FooInt, 123);
+
+ Assert.IsFalse(builder.ClearFooInt().HasFooInt);
+ TestOneof2 message2 = builder.Build();
+ Assert.IsFalse(message2.HasFooInt);
+ Assert.AreEqual(message2.FooInt, 0);
+ }
+
+ [Test]
+ public void TestOneofTypes_Enum()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ Assert.AreEqual(builder.FooEnum, TestOneof2.Types.NestedEnum.FOO);
+ Assert.IsTrue(builder.SetFooEnum(TestOneof2.Types.NestedEnum.BAR).HasFooEnum);
+ Assert.AreEqual(builder.FooEnum, TestOneof2.Types.NestedEnum.BAR);
+ TestOneof2 message = builder.BuildPartial();
+ Assert.IsTrue(message.HasFooEnum);
+ Assert.AreEqual(message.FooEnum, TestOneof2.Types.NestedEnum.BAR);
+
+ Assert.IsFalse(builder.ClearFooEnum().HasFooEnum);
+ TestOneof2 message2 = builder.Build();
+ Assert.IsFalse(message2.HasFooEnum);
+ Assert.AreEqual(message2.FooEnum, TestOneof2.Types.NestedEnum.FOO);
+ }
+
+ [Test]
+ public void TestOneofTypes_String()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ Assert.AreEqual(builder.FooString, "");
+ Assert.IsTrue(builder.SetFooString("foo").HasFooString);
+ Assert.AreEqual(builder.FooString, "foo");
+ TestOneof2 message = builder.BuildPartial();
+ Assert.IsTrue(message.HasFooString);
+ Assert.AreEqual(message.FooString, "foo");
+
+ Assert.IsFalse(builder.ClearFooString().HasFooString);
+ TestOneof2 message2 = builder.Build();
+ Assert.IsFalse(message2.HasFooString);
+ Assert.AreEqual(message2.FooString, "");
+
+ builder.SetFooInt(123);
+ Assert.AreEqual(builder.FooString, "");
+ Assert.AreEqual(builder.FooInt, 123);
+ message = builder.Build();
+ Assert.AreEqual(message.FooString, "");
+ Assert.AreEqual(message.FooInt, 123);
+ }
+
+ [Test]
+ public void TestOneofTypes_Message()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ Assert.AreEqual(builder.FooMessage.QuxInt, 0);
+ builder.SetFooMessage(TestOneof2.Types.NestedMessage.CreateBuilder().SetQuxInt(234).Build());
+ Assert.IsTrue(builder.HasFooMessage);
+ Assert.AreEqual(builder.FooMessage.QuxInt, 234);
+ TestOneof2 message = builder.BuildPartial();
+ Assert.IsTrue(message.HasFooMessage);
+ Assert.AreEqual(message.FooMessage.QuxInt, 234);
+
+ Assert.IsFalse(builder.ClearFooMessage().HasFooMessage);
+ message = builder.Build();
+ Assert.IsFalse(message.HasFooMessage);
+ Assert.AreEqual(message.FooMessage.QuxInt, 0);
+
+ builder = TestOneof2.CreateBuilder();
+ Assert.IsFalse(builder.HasFooMessage);
+ builder.SetFooMessage(TestOneof2.Types.NestedMessage.CreateBuilder().SetQuxInt(123));
+ Assert.IsTrue(builder.HasFooMessage);
+ Assert.AreEqual(builder.FooMessage.QuxInt, 123);
+ message = builder.Build();
+ Assert.IsTrue(message.HasFooMessage);
+ Assert.AreEqual(message.FooMessage.QuxInt, 123);
+ }
+
+ [Test]
+ public void TestOneofMerge_Primitive()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ TestOneof2 message = builder.SetFooInt(123).Build();
+ TestOneof2 message2 = TestOneof2.CreateBuilder().MergeFrom(message).Build();
+ Assert.IsTrue(message2.HasFooInt);
+ Assert.AreEqual(message2.FooInt, 123);
+ }
+
+ [Test]
+ public void TestOneofMerge_String()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ TestOneof2 message = builder.SetFooString("foo").Build();
+ TestOneof2 message2 = TestOneof2.CreateBuilder().MergeFrom(message).Build();
+ Assert.IsTrue(message2.HasFooString);
+ Assert.AreEqual(message2.FooString, "foo");
+ }
+
+ [Test]
+ public void TestOneofMerge_Enum()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ TestOneof2 message = builder.SetFooEnum(TestOneof2.Types.NestedEnum.BAR).Build();
+ TestOneof2 message2 = TestOneof2.CreateBuilder().MergeFrom(message).Build();
+ Assert.IsTrue(message2.HasFooEnum);
+ Assert.AreEqual(message2.FooEnum, TestOneof2.Types.NestedEnum.BAR);
+ }
+
+ public void TestOneofMerge_message()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ TestOneof2 message = builder.SetFooMessage(
+ TestOneof2.Types.NestedMessage.CreateBuilder().SetQuxInt(234).Build()).Build();
+ TestOneof2 message2 = TestOneof2.CreateBuilder().MergeFrom(message).Build();
+ Assert.IsTrue(message2.HasFooMessage);
+ Assert.AreEqual(message2.FooMessage.QuxInt, 234);
+ }
+
+ [Test]
+ public void TestOneofMergeMixed()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ TestOneof2 message = builder.SetFooEnum(TestOneof2.Types.NestedEnum.BAR).Build();
+ TestOneof2 message2 =
+ TestOneof2.CreateBuilder().SetFooString("foo").MergeFrom(message).Build();
+ Assert.IsFalse(message2.HasFooString);
+ Assert.IsTrue(message2.HasFooEnum);
+ Assert.AreEqual(message2.FooEnum, TestOneof2.Types.NestedEnum.BAR);
+ }
+
+ [Test]
+ public void TestOneofSerialization_Primitive()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ TestOneof2 message = builder.SetFooInt(123).Build();
+ ByteString serialized = message.ToByteString();
+ TestOneof2 message2 = TestOneof2.ParseFrom(serialized);
+ Assert.IsTrue(message2.HasFooInt);
+ Assert.AreEqual(message2.FooInt, 123);
+ }
+
+ [Test]
+ public void TestOneofSerialization_String()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ TestOneof2 message = builder.SetFooString("foo").Build();
+ ByteString serialized = message.ToByteString();
+ TestOneof2 message2 = TestOneof2.ParseFrom(serialized);
+ Assert.IsTrue(message2.HasFooString);
+ Assert.AreEqual(message2.FooString, "foo");
+ }
+
+ [Test]
+ public void TestOneofSerialization_Enum()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ TestOneof2 message = builder.SetFooEnum(TestOneof2.Types.NestedEnum.BAR).Build();
+ ByteString serialized = message.ToByteString();
+ TestOneof2 message2 = TestOneof2.ParseFrom(serialized);
+ Assert.IsTrue(message2.HasFooEnum);
+ Assert.AreEqual(message2.FooEnum, TestOneof2.Types.NestedEnum.BAR);
+ }
+
+ [Test]
+ public void TestOneofSerialization_Message()
+ {
+ TestOneof2.Builder builder = TestOneof2.CreateBuilder();
+ TestOneof2 message = builder.SetFooMessage(
+ TestOneof2.Types.NestedMessage.CreateBuilder().SetQuxInt(234).Build()).Build();
+ ByteString serialized = message.ToByteString();
+ TestOneof2 message2 = TestOneof2.ParseFrom(serialized);
+ Assert.IsTrue(message2.HasFooMessage);
+ Assert.AreEqual(message2.FooMessage.QuxInt, 234);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/IssuesTest.cs b/csharp/src/ProtocolBuffers.Test/IssuesTest.cs
new file mode 100644
index 00000000..ce7e5f09
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/IssuesTest.cs
@@ -0,0 +1,60 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+
+using Google.ProtocolBuffers.Descriptors;
+using UnitTest.Issues.TestProtos;
+using NUnit.Framework;
+
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Tests for issues which aren't easily compartmentalized into other unit tests.
+ /// </summary>
+ public class IssuesTest
+ {
+ // Issue 45
+ [Test]
+ public void FieldCalledItem()
+ {
+ ItemField message = new ItemField.Builder { Item = 3 }.Build();
+ FieldDescriptor field = ItemField.Descriptor.FindFieldByName("item");
+ Assert.NotNull(field);
+ Assert.AreEqual(3, (int)message[field]);
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/MessageStreamIteratorTest.cs b/csharp/src/ProtocolBuffers.Test/MessageStreamIteratorTest.cs
new file mode 100644
index 00000000..4754ce60
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/MessageStreamIteratorTest.cs
@@ -0,0 +1,90 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+using NestedMessage = Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage;
+
+namespace Google.ProtocolBuffers
+{
+ public class MessageStreamIteratorTest
+ {
+ [Test]
+ public void ThreeMessagesInMemory()
+ {
+ MemoryStream stream = new MemoryStream(MessageStreamWriterTest.ThreeMessageData);
+ IEnumerable<NestedMessage> iterator = MessageStreamIterator<NestedMessage>.FromStreamProvider(() => stream);
+ List<NestedMessage> messages = new List<NestedMessage>(iterator);
+
+ Assert.AreEqual(3, messages.Count);
+ Assert.AreEqual(5, messages[0].Bb);
+ Assert.AreEqual(1500, messages[1].Bb);
+ Assert.IsFalse(messages[2].HasBb);
+ }
+
+ [Test]
+ public void ManyMessagesShouldNotTriggerSizeAlert()
+ {
+ int messageSize = TestUtil.GetAllSet().SerializedSize;
+ // Enough messages to trigger the alert unless we've reset the size
+ // Note that currently we need to make this big enough to copy two whole buffers,
+ // as otherwise when we refill the buffer the second type, the alert triggers instantly.
+ int correctCount = (CodedInputStream.BufferSize*2)/messageSize + 1;
+ using (MemoryStream stream = new MemoryStream())
+ {
+ MessageStreamWriter<TestAllTypes> writer = new MessageStreamWriter<TestAllTypes>(stream);
+ for (int i = 0; i < correctCount; i++)
+ {
+ writer.Write(TestUtil.GetAllSet());
+ }
+ writer.Flush();
+
+ stream.Position = 0;
+
+ int count = 0;
+ foreach (var message in MessageStreamIterator<TestAllTypes>.FromStreamProvider(() => stream)
+ .WithSizeLimit(CodedInputStream.BufferSize*2))
+ {
+ count++;
+ TestUtil.AssertAllFieldsSet(message);
+ }
+ Assert.AreEqual(correctCount, count);
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/MessageStreamWriterTest.cs b/csharp/src/ProtocolBuffers.Test/MessageStreamWriterTest.cs
new file mode 100644
index 00000000..030804ee
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/MessageStreamWriterTest.cs
@@ -0,0 +1,78 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+using NUnit.Framework;
+using NestedMessage = Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage;
+
+namespace Google.ProtocolBuffers
+{
+ public class MessageStreamWriterTest
+ {
+ internal static readonly byte[] ThreeMessageData = new byte[]
+ {
+ (1 << 3) | 2, 2,
+ // Field 1, 2 bytes long (first message)
+ (1 << 3) | 0, 5, // Field 1, value 5
+ (1 << 3) | 2, 3,
+ // Field 1, 3 bytes long (second message)
+ (1 << 3) | 0, (1500 & 0x7f) | 0x80, 1500 >> 7,
+ // Field 1, value 1500
+ (1 << 3) | 2, 0, // Field 1, no data (third message)
+ };
+
+ [Test]
+ public void ThreeMessages()
+ {
+ NestedMessage message1 = new NestedMessage.Builder {Bb = 5}.Build();
+ NestedMessage message2 = new NestedMessage.Builder {Bb = 1500}.Build();
+ NestedMessage message3 = new NestedMessage.Builder().Build();
+
+ byte[] data;
+ using (MemoryStream stream = new MemoryStream())
+ {
+ MessageStreamWriter<NestedMessage> writer = new MessageStreamWriter<NestedMessage>(stream);
+ writer.Write(message1);
+ writer.Write(message2);
+ writer.Write(message3);
+ writer.Flush();
+ data = stream.ToArray();
+ }
+
+ TestUtil.AssertEqualBytes(ThreeMessageData, data);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/MessageTest.cs b/csharp/src/ProtocolBuffers.Test/MessageTest.cs
new file mode 100644
index 00000000..e746c01a
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/MessageTest.cs
@@ -0,0 +1,344 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Miscellaneous tests for message operations that apply to both
+ /// generated and dynamic messages.
+ /// </summary>
+ public class MessageTest
+ {
+ // =================================================================
+ // Message-merging tests.
+
+ private static readonly TestAllTypes MergeSource = new TestAllTypes.Builder
+ {
+ OptionalInt32 = 1,
+ OptionalString = "foo",
+ OptionalForeignMessage =
+ ForeignMessage.DefaultInstance,
+ }.AddRepeatedString("bar").Build();
+
+ private static readonly TestAllTypes MergeDest = new TestAllTypes.Builder
+ {
+ OptionalInt64 = 2,
+ OptionalString = "baz",
+ OptionalForeignMessage =
+ new ForeignMessage.Builder {C = 3}.Build(),
+ }.AddRepeatedString("qux").Build();
+
+ private const string MergeResultText =
+ "optional_int32: 1\n" +
+ "optional_int64: 2\n" +
+ "optional_string: \"foo\"\n" +
+ "optional_foreign_message {\n" +
+ " c: 3\n" +
+ "}\n" +
+ "repeated_string: \"qux\"\n" +
+ "repeated_string: \"bar\"\n";
+
+ [Test]
+ public void MergeFrom()
+ {
+ TestAllTypes result = TestAllTypes.CreateBuilder(MergeDest).MergeFrom(MergeSource).Build();
+
+ Assert.AreEqual(MergeResultText, result.ToString());
+ }
+
+ /// <summary>
+ /// Test merging a DynamicMessage into a GeneratedMessage.
+ /// As long as they have the same descriptor, this should work, but it is an
+ /// entirely different code path.
+ /// </summary>
+ [Test]
+ public void MergeFromDynamic()
+ {
+ TestAllTypes result = (TestAllTypes) TestAllTypes.CreateBuilder(MergeDest)
+ .MergeFrom(DynamicMessage.CreateBuilder(MergeSource).Build())
+ .Build();
+
+ Assert.AreEqual(MergeResultText, result.ToString());
+ }
+
+ /// <summary>
+ /// Test merging two DynamicMessages.
+ /// </summary>
+ [Test]
+ public void DynamicMergeFrom()
+ {
+ DynamicMessage result = (DynamicMessage) DynamicMessage.CreateBuilder(MergeDest)
+ .MergeFrom(
+ (DynamicMessage)
+ DynamicMessage.CreateBuilder(MergeSource).Build())
+ .Build();
+
+ Assert.AreEqual(MergeResultText, result.ToString());
+ }
+
+ // =================================================================
+ // Required-field-related tests.
+
+ private static readonly TestRequired TestRequiredUninitialized = TestRequired.DefaultInstance;
+
+ private static readonly TestRequired TestRequiredInitialized = new TestRequired.Builder
+ {
+ A = 1,
+ B = 2,
+ C = 3
+ }.Build();
+
+ [Test]
+ public void Initialization()
+ {
+ TestRequired.Builder builder = TestRequired.CreateBuilder();
+
+ Assert.IsFalse(builder.IsInitialized);
+ builder.A = 1;
+ Assert.IsFalse(builder.IsInitialized);
+ builder.B = 1;
+ Assert.IsFalse(builder.IsInitialized);
+ builder.C = 1;
+ Assert.IsTrue(builder.IsInitialized);
+ }
+
+ [Test]
+ public void UninitializedBuilderToString()
+ {
+ TestRequired.Builder builder = TestRequired.CreateBuilder().SetA(1);
+ Assert.AreEqual("a: 1\n", builder.ToString());
+ }
+
+ [Test]
+ public void RequiredForeign()
+ {
+ TestRequiredForeign.Builder builder = TestRequiredForeign.CreateBuilder();
+
+ Assert.IsTrue(builder.IsInitialized);
+
+ builder.SetOptionalMessage(TestRequiredUninitialized);
+ Assert.IsFalse(builder.IsInitialized);
+
+ builder.SetOptionalMessage(TestRequiredInitialized);
+ Assert.IsTrue(builder.IsInitialized);
+
+ builder.AddRepeatedMessage(TestRequiredUninitialized);
+ Assert.IsFalse(builder.IsInitialized);
+
+ builder.SetRepeatedMessage(0, TestRequiredInitialized);
+ Assert.IsTrue(builder.IsInitialized);
+ }
+
+ [Test]
+ public void RequiredExtension()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+
+ Assert.IsTrue(builder.IsInitialized);
+
+ builder.SetExtension(TestRequired.Single, TestRequiredUninitialized);
+ Assert.IsFalse(builder.IsInitialized);
+
+ builder.SetExtension(TestRequired.Single, TestRequiredInitialized);
+ Assert.IsTrue(builder.IsInitialized);
+
+ builder.AddExtension(TestRequired.Multi, TestRequiredUninitialized);
+ Assert.IsFalse(builder.IsInitialized);
+
+ builder.SetExtension(TestRequired.Multi, 0, TestRequiredInitialized);
+ Assert.IsTrue(builder.IsInitialized);
+ }
+
+ [Test]
+ public void RequiredDynamic()
+ {
+ MessageDescriptor descriptor = TestRequired.Descriptor;
+ DynamicMessage.Builder builder = DynamicMessage.CreateBuilder(descriptor);
+
+ Assert.IsFalse(builder.IsInitialized);
+ builder[descriptor.FindDescriptor<FieldDescriptor>("a")] = 1;
+ Assert.IsFalse(builder.IsInitialized);
+ builder[descriptor.FindDescriptor<FieldDescriptor>("b")] = 1;
+ Assert.IsFalse(builder.IsInitialized);
+ builder[descriptor.FindDescriptor<FieldDescriptor>("c")] = 1;
+ Assert.IsTrue(builder.IsInitialized);
+ }
+
+ [Test]
+ public void RequiredDynamicForeign()
+ {
+ MessageDescriptor descriptor = TestRequiredForeign.Descriptor;
+ DynamicMessage.Builder builder = DynamicMessage.CreateBuilder(descriptor);
+
+ Assert.IsTrue(builder.IsInitialized);
+
+ builder[descriptor.FindDescriptor<FieldDescriptor>("optional_message")] = TestRequiredUninitialized;
+ Assert.IsFalse(builder.IsInitialized);
+
+ builder[descriptor.FindDescriptor<FieldDescriptor>("optional_message")] = TestRequiredInitialized;
+ Assert.IsTrue(builder.IsInitialized);
+
+ builder.AddRepeatedField(descriptor.FindDescriptor<FieldDescriptor>("repeated_message"),
+ TestRequiredUninitialized);
+ Assert.IsFalse(builder.IsInitialized);
+
+ builder.SetRepeatedField(descriptor.FindDescriptor<FieldDescriptor>("repeated_message"), 0,
+ TestRequiredInitialized);
+ Assert.IsTrue(builder.IsInitialized);
+ }
+
+ [Test]
+ public void UninitializedException()
+ {
+ var e = Assert.Throws<UninitializedMessageException>(() => TestRequired.CreateBuilder().Build());
+ Assert.AreEqual("Message missing required fields: a, b, c", e.Message);
+ }
+
+ [Test]
+ public void BuildPartial()
+ {
+ // We're mostly testing that no exception is thrown.
+ TestRequired message = TestRequired.CreateBuilder().BuildPartial();
+ Assert.IsFalse(message.IsInitialized);
+ }
+
+ [Test]
+ public void NestedUninitializedException()
+ {
+ var e = Assert.Throws<UninitializedMessageException>(() => TestRequiredForeign.CreateBuilder()
+ .SetOptionalMessage(TestRequiredUninitialized)
+ .AddRepeatedMessage(TestRequiredUninitialized)
+ .AddRepeatedMessage(TestRequiredUninitialized)
+ .Build());
+ Assert.AreEqual(
+ "Message missing required fields: " +
+ "optional_message.a, " +
+ "optional_message.b, " +
+ "optional_message.c, " +
+ "repeated_message[0].a, " +
+ "repeated_message[0].b, " +
+ "repeated_message[0].c, " +
+ "repeated_message[1].a, " +
+ "repeated_message[1].b, " +
+ "repeated_message[1].c",
+ e.Message);
+ }
+
+ [Test]
+ public void BuildNestedPartial()
+ {
+ // We're mostly testing that no exception is thrown.
+ TestRequiredForeign message =
+ TestRequiredForeign.CreateBuilder()
+ .SetOptionalMessage(TestRequiredUninitialized)
+ .AddRepeatedMessage(TestRequiredUninitialized)
+ .AddRepeatedMessage(TestRequiredUninitialized)
+ .BuildPartial();
+ Assert.IsFalse(message.IsInitialized);
+ }
+
+ [Test]
+ public void ParseUninitialized()
+ {
+ var e = Assert.Throws<InvalidProtocolBufferException>(() => TestRequired.ParseFrom(ByteString.Empty));
+ Assert.AreEqual("Message missing required fields: a, b, c", e.Message);
+ }
+
+ [Test]
+ public void ParseNestedUnititialized()
+ {
+ ByteString data =
+ TestRequiredForeign.CreateBuilder()
+ .SetOptionalMessage(TestRequiredUninitialized)
+ .AddRepeatedMessage(TestRequiredUninitialized)
+ .AddRepeatedMessage(TestRequiredUninitialized)
+ .BuildPartial().ToByteString();
+
+ var e = Assert.Throws<InvalidProtocolBufferException>(() => TestRequiredForeign.ParseFrom(data));
+ Assert.AreEqual(
+ "Message missing required fields: " +
+ "optional_message.a, " +
+ "optional_message.b, " +
+ "optional_message.c, " +
+ "repeated_message[0].a, " +
+ "repeated_message[0].b, " +
+ "repeated_message[0].c, " +
+ "repeated_message[1].a, " +
+ "repeated_message[1].b, " +
+ "repeated_message[1].c",
+ e.Message);
+ }
+
+ [Test]
+ public void DynamicUninitializedException()
+ {
+ var e = Assert.Throws<UninitializedMessageException>(() => DynamicMessage.CreateBuilder(TestRequired.Descriptor).Build());
+ Assert.AreEqual("Message missing required fields: a, b, c", e.Message);
+ }
+
+ [Test]
+ public void DynamicBuildPartial()
+ {
+ // We're mostly testing that no exception is thrown.
+ DynamicMessage message = DynamicMessage.CreateBuilder(TestRequired.Descriptor).BuildPartial();
+ Assert.IsFalse(message.Initialized);
+ }
+
+ [Test]
+ public void DynamicParseUnititialized()
+ {
+ MessageDescriptor descriptor = TestRequired.Descriptor;
+ var e = Assert.Throws<InvalidProtocolBufferException>(() => DynamicMessage.ParseFrom(descriptor, ByteString.Empty));
+ Assert.AreEqual("Message missing required fields: a, b, c", e.Message);
+ }
+
+ [Test]
+ public void PackedTypesWrittenDirectlyToStream()
+ {
+ TestPackedTypes message = new TestPackedTypes.Builder {PackedInt32List = {0, 1, 2}}.Build();
+ MemoryStream stream = new MemoryStream();
+ message.WriteTo(stream);
+ stream.Position = 0;
+ TestPackedTypes readMessage = TestPackedTypes.ParseFrom(stream);
+ Assert.AreEqual(message, readMessage);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/MessageUtilTest.cs b/csharp/src/ProtocolBuffers.Test/MessageUtilTest.cs
new file mode 100644
index 00000000..72909660
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/MessageUtilTest.cs
@@ -0,0 +1,82 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class MessageUtilTest
+ {
+ [Test]
+ public void NullTypeName()
+ {
+ Assert.Throws<ArgumentNullException>(() => MessageUtil.GetDefaultMessage((string) null));
+ }
+
+ [Test]
+ public void InvalidTypeName()
+ {
+ Assert.Throws<ArgumentException>(() => MessageUtil.GetDefaultMessage("invalidtypename"));
+ }
+
+ [Test]
+ public void ValidTypeName()
+ {
+ Assert.AreSame(TestAllTypes.DefaultInstance,
+ MessageUtil.GetDefaultMessage(typeof(TestAllTypes).AssemblyQualifiedName));
+ }
+
+ [Test]
+ public void NullType()
+ {
+ Assert.Throws<ArgumentNullException>(() => MessageUtil.GetDefaultMessage((Type)null));
+ }
+
+ [Test]
+ public void NonMessageType()
+ {
+ Assert.Throws<ArgumentException>(() => MessageUtil.GetDefaultMessage(typeof(string)));
+ }
+
+ [Test]
+ public void ValidType()
+ {
+ Assert.AreSame(TestAllTypes.DefaultInstance, MessageUtil.GetDefaultMessage(typeof(TestAllTypes)));
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/NameHelpersTest.cs b/csharp/src/ProtocolBuffers.Test/NameHelpersTest.cs
new file mode 100644
index 00000000..edd3ccd9
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/NameHelpersTest.cs
@@ -0,0 +1,81 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class NameHelpersTest
+ {
+ [Test]
+ public void UnderscoresToPascalCase()
+ {
+ Assert.AreEqual("FooBar", NameHelpers.UnderscoresToPascalCase("Foo_bar"));
+ Assert.AreEqual("FooBar", NameHelpers.UnderscoresToPascalCase("foo_bar"));
+ Assert.AreEqual("Foo0Bar", NameHelpers.UnderscoresToPascalCase("Foo0bar"));
+ Assert.AreEqual("FooBar", NameHelpers.UnderscoresToPascalCase("Foo_+_Bar"));
+
+ Assert.AreEqual("Bar", NameHelpers.UnderscoresToPascalCase("__+bar"));
+ Assert.AreEqual("Bar", NameHelpers.UnderscoresToPascalCase("bar_"));
+ Assert.AreEqual("_0Bar", NameHelpers.UnderscoresToPascalCase("_0bar"));
+ Assert.AreEqual("_1Bar", NameHelpers.UnderscoresToPascalCase("_1_bar"));
+ }
+
+ [Test]
+ public void UnderscoresToCamelCase()
+ {
+ Assert.AreEqual("fooBar", NameHelpers.UnderscoresToCamelCase("Foo_bar"));
+ Assert.AreEqual("fooBar", NameHelpers.UnderscoresToCamelCase("foo_bar"));
+ Assert.AreEqual("foo0Bar", NameHelpers.UnderscoresToCamelCase("Foo0bar"));
+ Assert.AreEqual("fooBar", NameHelpers.UnderscoresToCamelCase("Foo_+_Bar"));
+
+ Assert.AreEqual("bar", NameHelpers.UnderscoresToCamelCase("__+bar"));
+ Assert.AreEqual("bar", NameHelpers.UnderscoresToCamelCase("bar_"));
+ Assert.AreEqual("_0Bar", NameHelpers.UnderscoresToCamelCase("_0bar"));
+ Assert.AreEqual("_1Bar", NameHelpers.UnderscoresToCamelCase("_1_bar"));
+ }
+
+ [Test]
+ public void StripSuffix()
+ {
+ string text = "FooBar";
+ Assert.IsFalse(NameHelpers.StripSuffix(ref text, "Foo"));
+ Assert.AreEqual("FooBar", text);
+ Assert.IsTrue(NameHelpers.StripSuffix(ref text, "Bar"));
+ Assert.AreEqual("Foo", text);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/Properties/AppManifest.xml b/csharp/src/ProtocolBuffers.Test/Properties/AppManifest.xml
new file mode 100644
index 00000000..a9552327
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Properties/AppManifest.xml
@@ -0,0 +1,6 @@
+<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+>
+ <Deployment.Parts>
+ </Deployment.Parts>
+</Deployment>
diff --git a/csharp/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs b/csharp/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..bfa1f05e
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+
+[assembly: AssemblyTitle("ProtocolBuffers.Test")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ProtocolBuffers.Test")]
+[assembly: AssemblyCopyright("Copyright � 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("2.4.1.555")]
+
+[assembly: AssemblyVersion("2.4.1.555")]
diff --git a/csharp/src/ProtocolBuffers.Test/Properties/OutOfBrowserSettings.xml b/csharp/src/ProtocolBuffers.Test/Properties/OutOfBrowserSettings.xml
new file mode 100644
index 00000000..634f44bf
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/Properties/OutOfBrowserSettings.xml
@@ -0,0 +1,7 @@
+<OutOfBrowserSettings ShortName="ProtocolBuffers.Test" EnableGPUAcceleration="False" ShowInstallMenuItem="False">
+ <OutOfBrowserSettings.Blurb>ProtocolBuffers.Test</OutOfBrowserSettings.Blurb>
+ <OutOfBrowserSettings.WindowSettings>
+ <WindowSettings Title="ProtocolBuffers.Test" />
+ </OutOfBrowserSettings.WindowSettings>
+ <OutOfBrowserSettings.Icons />
+</OutOfBrowserSettings> \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj b/csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
new file mode 100644
index 00000000..b4c562d1
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{DD01ED24-3750-4567-9A23-1DB676A15610}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffers.Test</AssemblyName>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>..\..\keys\Google.ProtocolBuffers.snk</AssemblyOriginatorKeyFile>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <TargetFrameworkProfile>
+ </TargetFrameworkProfile>
+ <NuGetPackageImportStamp>
+ </NuGetPackageImportStamp>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DefineConstants>DEBUG;TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DefineConstants>TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="nunit.core, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="nunit.core.interfaces, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.interfaces.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="nunit.util, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\nunit.util.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="NUnit.VisualStudio.TestAdapter, Version=2.0.0.0, Culture=neutral, PublicKeyToken=4cb40d35494691ac, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\NUnit.VisualStudio.TestAdapter.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="AbstractMessageTest.cs" />
+ <Compile Include="ByteStringTest.cs" />
+ <Compile Include="FieldPresenceTest.cs" />
+ <Compile Include="CodedInputStreamTest.cs" />
+ <Compile Include="CodedOutputStreamTest.cs" />
+ <Compile Include="Collections\PopsicleListTest.cs" />
+ <Compile Include="Compatibility\BinaryCompatibilityTests.cs" />
+ <Compile Include="Compatibility\CompatibilityTests.cs" />
+ <Compile Include="Compatibility\DictionaryCompatibilityTests.cs" />
+ <Compile Include="Compatibility\JsonCompatibilityTests.cs" />
+ <Compile Include="Compatibility\TestResources.cs" />
+ <Compile Include="Compatibility\TextCompatibilityTests.cs" />
+ <Compile Include="Compatibility\XmlCompatibilityTests.cs" />
+ <Compile Include="TestProtos\GoogleSize.cs" />
+ <Compile Include="TestProtos\GoogleSpeed.cs" />
+ <Compile Include="TestProtos\Unittest.cs" />
+ <Compile Include="TestProtos\UnittestCustomOptions.cs" />
+ <Compile Include="TestProtos\UnittestDropUnknownFields.cs" />
+ <Compile Include="TestProtos\UnittestEnormousDescriptor.cs" />
+ <Compile Include="TestProtos\UnittestExtrasXmltest.cs" />
+ <Compile Include="TestProtos\UnittestImport.cs" />
+ <Compile Include="TestProtos\UnittestImportPublic.cs" />
+ <Compile Include="TestProtos\UnittestIssues.cs" />
+ <Compile Include="TestProtos\UnittestMset.cs" />
+ <Compile Include="TestProtos\UnittestNoFieldPresence.cs" />
+ <Compile Include="TestProtos\UnittestOptimizeFor.cs" />
+ <Compile Include="TestProtos\UnknownEnumTest.cs" />
+ <Compile Include="TestResources.cs" />
+ <Compile Include="TestReaderForUrlEncoded.cs" />
+ <Compile Include="DeprecatedMemberTest.cs" />
+ <Compile Include="DescriptorsTest.cs" />
+ <Compile Include="DynamicMessageTest.cs" />
+ <Compile Include="ExtendableMessageTest.cs" />
+ <Compile Include="GeneratedBuilderTest.cs" />
+ <Compile Include="GeneratedMessageTest.cs" />
+ <Compile Include="IssuesTest.cs" />
+ <Compile Include="MessageStreamIteratorTest.cs" />
+ <Compile Include="MessageStreamWriterTest.cs" />
+ <Compile Include="MessageTest.cs" />
+ <Compile Include="MessageUtilTest.cs" />
+ <Compile Include="NameHelpersTest.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="ReflectionTester.cs" />
+ <Compile Include="ReusableBuilderTest.cs" />
+ <Compile Include="TestCornerCases.cs" />
+ <Compile Include="TestMimeMessageFormats.cs" />
+ <Compile Include="TestUtil.cs" />
+ <Compile Include="TestWriterFormatJson.cs" />
+ <Compile Include="TestWriterFormatXml.cs" />
+ <Compile Include="TextFormatTest.cs" />
+ <Compile Include="UnknownFieldSetTest.cs" />
+ <Compile Include="WireFormatTest.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers.Serialization\ProtocolBuffers.Serialization.csproj">
+ <Project>{231391AF-449C-4a39-986C-AD7F270F4750}</Project>
+ <Name>ProtocolBuffers.Serialization</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
+ <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffers</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <EmbeddedResource Include="Compatibility\google_message1.dat" />
+ <EmbeddedResource Include="Compatibility\google_message2.dat" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/ReflectionTester.cs b/csharp/src/ProtocolBuffers.Test/ReflectionTester.cs
new file mode 100644
index 00000000..22795b3f
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/ReflectionTester.cs
@@ -0,0 +1,1033 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+#pragma warning disable 618 // Disable warning about obsolete use miss-matched assert arguments
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Performs the same things that the methods of TestUtil do, but
+ /// via the reflection interface. This is its own class because it needs
+ /// to know what descriptor to use.
+ /// </summary>
+ internal class ReflectionTester
+ {
+ private readonly MessageDescriptor baseDescriptor;
+ private readonly ExtensionRegistry extensionRegistry;
+
+ private readonly FileDescriptor file;
+ private readonly FileDescriptor importFile;
+
+ private readonly MessageDescriptor optionalGroup;
+ private readonly MessageDescriptor repeatedGroup;
+ private readonly MessageDescriptor nestedMessage;
+ private readonly MessageDescriptor foreignMessage;
+ private readonly MessageDescriptor importMessage;
+
+ private readonly FieldDescriptor groupA;
+ private readonly FieldDescriptor repeatedGroupA;
+ private readonly FieldDescriptor nestedB;
+ private readonly FieldDescriptor foreignC;
+ private readonly FieldDescriptor importD;
+
+ private readonly EnumDescriptor nestedEnum;
+ private readonly EnumDescriptor foreignEnum;
+ private readonly EnumDescriptor importEnum;
+
+ private readonly EnumValueDescriptor nestedFoo;
+ private readonly EnumValueDescriptor nestedBar;
+ private readonly EnumValueDescriptor nestedBaz;
+ private readonly EnumValueDescriptor foreignFoo;
+ private readonly EnumValueDescriptor foreignBar;
+ private readonly EnumValueDescriptor foreignBaz;
+ private readonly EnumValueDescriptor importFoo;
+ private readonly EnumValueDescriptor importBar;
+ private readonly EnumValueDescriptor importBaz;
+
+ /// <summary>
+ /// Constructs an instance that will expect messages using the given
+ /// descriptor. Normally <paramref name="baseDescriptor"/> should be
+ /// a descriptor for TestAllTypes. However, if extensionRegistry is non-null,
+ /// then baseDescriptor should be for TestAllExtensions instead, and instead of
+ /// reading and writing normal fields, the tester will read and write extensions.
+ /// All of the TestAllExtensions extensions must be registered in the registry.
+ /// </summary>
+ private ReflectionTester(MessageDescriptor baseDescriptor,
+ ExtensionRegistry extensionRegistry)
+ {
+ this.baseDescriptor = baseDescriptor;
+ this.extensionRegistry = extensionRegistry;
+
+ this.file = baseDescriptor.File;
+ Assert.AreEqual(1, file.Dependencies.Count);
+ this.importFile = file.Dependencies[0];
+
+ MessageDescriptor testAllTypes;
+ if (baseDescriptor.Name == "TestAllTypes")
+ {
+ testAllTypes = baseDescriptor;
+ }
+ else
+ {
+ testAllTypes = file.FindTypeByName<MessageDescriptor>("TestAllTypes");
+ Assert.NotNull(testAllTypes);
+ }
+
+ if (extensionRegistry == null)
+ {
+ // Use testAllTypes, rather than baseDescriptor, to allow
+ // initialization using TestPackedTypes descriptors. These objects
+ // won't be used by the methods for packed fields.
+ this.optionalGroup =
+ testAllTypes.FindDescriptor<MessageDescriptor>("OptionalGroup");
+ this.repeatedGroup =
+ testAllTypes.FindDescriptor<MessageDescriptor>("RepeatedGroup");
+ }
+ else
+ {
+ this.optionalGroup =
+ file.FindTypeByName<MessageDescriptor>("OptionalGroup_extension");
+ this.repeatedGroup =
+ file.FindTypeByName<MessageDescriptor>("RepeatedGroup_extension");
+ }
+ this.nestedMessage = testAllTypes.FindDescriptor<MessageDescriptor>("NestedMessage");
+ this.foreignMessage = file.FindTypeByName<MessageDescriptor>("ForeignMessage");
+ this.importMessage = importFile.FindTypeByName<MessageDescriptor>("ImportMessage");
+
+ this.nestedEnum = testAllTypes.FindDescriptor<EnumDescriptor>("NestedEnum");
+ this.foreignEnum = file.FindTypeByName<EnumDescriptor>("ForeignEnum");
+ this.importEnum = importFile.FindTypeByName<EnumDescriptor>("ImportEnum");
+
+ Assert.NotNull(optionalGroup);
+ Assert.NotNull(repeatedGroup);
+ Assert.NotNull(nestedMessage);
+ Assert.NotNull(foreignMessage);
+ Assert.NotNull(importMessage);
+ Assert.NotNull(nestedEnum);
+ Assert.NotNull(foreignEnum);
+ Assert.NotNull(importEnum);
+
+ this.nestedB = nestedMessage.FindDescriptor<FieldDescriptor>("bb");
+ this.foreignC = foreignMessage.FindDescriptor<FieldDescriptor>("c");
+ this.importD = importMessage.FindDescriptor<FieldDescriptor>("d");
+ this.nestedFoo = nestedEnum.FindValueByName("FOO");
+ this.nestedBar = nestedEnum.FindValueByName("BAR");
+ this.nestedBaz = nestedEnum.FindValueByName("BAZ");
+ this.foreignFoo = foreignEnum.FindValueByName("FOREIGN_FOO");
+ this.foreignBar = foreignEnum.FindValueByName("FOREIGN_BAR");
+ this.foreignBaz = foreignEnum.FindValueByName("FOREIGN_BAZ");
+ this.importFoo = importEnum.FindValueByName("IMPORT_FOO");
+ this.importBar = importEnum.FindValueByName("IMPORT_BAR");
+ this.importBaz = importEnum.FindValueByName("IMPORT_BAZ");
+
+ this.groupA = optionalGroup.FindDescriptor<FieldDescriptor>("a");
+ this.repeatedGroupA = repeatedGroup.FindDescriptor<FieldDescriptor>("a");
+
+ Assert.NotNull(groupA);
+ Assert.NotNull(repeatedGroupA);
+ Assert.NotNull(nestedB);
+ Assert.NotNull(foreignC);
+ Assert.NotNull(importD);
+ Assert.NotNull(nestedFoo);
+ Assert.NotNull(nestedBar);
+ Assert.NotNull(nestedBaz);
+ Assert.NotNull(foreignFoo);
+ Assert.NotNull(foreignBar);
+ Assert.NotNull(foreignBaz);
+ Assert.NotNull(importFoo);
+ Assert.NotNull(importBar);
+ Assert.NotNull(importBaz);
+ }
+
+ /// <summary>
+ /// Creates an instance for the TestAllTypes message, with no extension registry.
+ /// </summary>
+ public static ReflectionTester CreateTestAllTypesInstance()
+ {
+ return new ReflectionTester(TestAllTypes.Descriptor, null);
+ }
+
+ /// <summary>
+ /// Creates an instance for the TestAllExtensions message, with an
+ /// extension registry from TestUtil.CreateExtensionRegistry.
+ /// </summary>
+ public static ReflectionTester CreateTestAllExtensionsInstance()
+ {
+ return new ReflectionTester(TestAllExtensions.Descriptor, TestUtil.CreateExtensionRegistry());
+ }
+
+ /// <summary>
+ /// Creates an instance for the TestPackedTypes message, with no extensions.
+ /// </summary>
+ public static ReflectionTester CreateTestPackedTypesInstance()
+ {
+ return new ReflectionTester(TestPackedTypes.Descriptor, null);
+ }
+
+ /// <summary>
+ /// Shorthand to get a FieldDescriptor for a field of unittest::TestAllTypes.
+ /// </summary>
+ private FieldDescriptor f(String name)
+ {
+ FieldDescriptor result;
+ if (extensionRegistry == null)
+ {
+ result = baseDescriptor.FindDescriptor<FieldDescriptor>(name);
+ }
+ else
+ {
+ result = file.FindTypeByName<FieldDescriptor>(name + "_extension");
+ }
+ Assert.NotNull(result);
+ return result;
+ }
+
+ /// <summary>
+ /// Calls parent.CreateBuilderForField() or uses the extension registry
+ /// to find an appropriate builder, depending on what type is being tested.
+ /// </summary>
+ private IBuilder CreateBuilderForField(IBuilder parent, FieldDescriptor field)
+ {
+ if (extensionRegistry == null)
+ {
+ return parent.CreateBuilderForField(field);
+ }
+ else
+ {
+ ExtensionInfo extension = extensionRegistry[field.ContainingType, field.FieldNumber];
+ Assert.NotNull(extension);
+ Assert.NotNull(extension.DefaultInstance);
+ return (IBuilder) extension.DefaultInstance.WeakCreateBuilderForType();
+ }
+ }
+
+ /// <summary>
+ /// Sets every field of the message to the values expected by
+ /// AssertAllFieldsSet, using the reflection interface.
+ /// </summary>
+ /// <param name="message"></param>
+ internal void SetAllFieldsViaReflection(IBuilder message)
+ {
+ message[f("optional_int32")] = 101;
+ message[f("optional_int64")] = 102L;
+ message[f("optional_uint32")] = 103U;
+ message[f("optional_uint64")] = 104UL;
+ message[f("optional_sint32")] = 105;
+ message[f("optional_sint64")] = 106L;
+ message[f("optional_fixed32")] = 107U;
+ message[f("optional_fixed64")] = 108UL;
+ message[f("optional_sfixed32")] = 109;
+ message[f("optional_sfixed64")] = 110L;
+ message[f("optional_float")] = 111F;
+ message[f("optional_double")] = 112D;
+ message[f("optional_bool")] = true;
+ message[f("optional_string")] = "115";
+ message[f("optional_bytes")] = TestUtil.ToBytes("116");
+
+ message[f("optionalgroup")] =
+ CreateBuilderForField(message, f("optionalgroup")).SetField(groupA, 117).WeakBuild();
+ message[f("optional_nested_message")] =
+ CreateBuilderForField(message, f("optional_nested_message")).SetField(nestedB, 118).WeakBuild();
+ message[f("optional_foreign_message")] =
+ CreateBuilderForField(message, f("optional_foreign_message")).SetField(foreignC, 119).WeakBuild();
+ message[f("optional_import_message")] =
+ CreateBuilderForField(message, f("optional_import_message")).SetField(importD, 120).WeakBuild();
+
+ message[f("optional_nested_enum")] = nestedBaz;
+ message[f("optional_foreign_enum")] = foreignBaz;
+ message[f("optional_import_enum")] = importBaz;
+
+ message[f("optional_string_piece")] = "124";
+ message[f("optional_cord")] = "125";
+
+ // -----------------------------------------------------------------
+
+ message.WeakAddRepeatedField(f("repeated_int32"), 201);
+ message.WeakAddRepeatedField(f("repeated_int64"), 202L);
+ message.WeakAddRepeatedField(f("repeated_uint32"), 203U);
+ message.WeakAddRepeatedField(f("repeated_uint64"), 204UL);
+ message.WeakAddRepeatedField(f("repeated_sint32"), 205);
+ message.WeakAddRepeatedField(f("repeated_sint64"), 206L);
+ message.WeakAddRepeatedField(f("repeated_fixed32"), 207U);
+ message.WeakAddRepeatedField(f("repeated_fixed64"), 208UL);
+ message.WeakAddRepeatedField(f("repeated_sfixed32"), 209);
+ message.WeakAddRepeatedField(f("repeated_sfixed64"), 210L);
+ message.WeakAddRepeatedField(f("repeated_float"), 211F);
+ message.WeakAddRepeatedField(f("repeated_double"), 212D);
+ message.WeakAddRepeatedField(f("repeated_bool"), true);
+ message.WeakAddRepeatedField(f("repeated_string"), "215");
+ message.WeakAddRepeatedField(f("repeated_bytes"), TestUtil.ToBytes("216"));
+
+
+ message.WeakAddRepeatedField(f("repeatedgroup"),
+ CreateBuilderForField(message, f("repeatedgroup")).SetField(repeatedGroupA, 217)
+ .WeakBuild());
+ message.WeakAddRepeatedField(f("repeated_nested_message"),
+ CreateBuilderForField(message, f("repeated_nested_message")).SetField(nestedB,
+ 218).
+ WeakBuild());
+ message.WeakAddRepeatedField(f("repeated_foreign_message"),
+ CreateBuilderForField(message, f("repeated_foreign_message")).SetField(
+ foreignC, 219).WeakBuild());
+ message.WeakAddRepeatedField(f("repeated_import_message"),
+ CreateBuilderForField(message, f("repeated_import_message")).SetField(importD,
+ 220).
+ WeakBuild());
+
+ message.WeakAddRepeatedField(f("repeated_nested_enum"), nestedBar);
+ message.WeakAddRepeatedField(f("repeated_foreign_enum"), foreignBar);
+ message.WeakAddRepeatedField(f("repeated_import_enum"), importBar);
+
+ message.WeakAddRepeatedField(f("repeated_string_piece"), "224");
+ message.WeakAddRepeatedField(f("repeated_cord"), "225");
+
+ // Add a second one of each field.
+ message.WeakAddRepeatedField(f("repeated_int32"), 301);
+ message.WeakAddRepeatedField(f("repeated_int64"), 302L);
+ message.WeakAddRepeatedField(f("repeated_uint32"), 303U);
+ message.WeakAddRepeatedField(f("repeated_uint64"), 304UL);
+ message.WeakAddRepeatedField(f("repeated_sint32"), 305);
+ message.WeakAddRepeatedField(f("repeated_sint64"), 306L);
+ message.WeakAddRepeatedField(f("repeated_fixed32"), 307U);
+ message.WeakAddRepeatedField(f("repeated_fixed64"), 308UL);
+ message.WeakAddRepeatedField(f("repeated_sfixed32"), 309);
+ message.WeakAddRepeatedField(f("repeated_sfixed64"), 310L);
+ message.WeakAddRepeatedField(f("repeated_float"), 311F);
+ message.WeakAddRepeatedField(f("repeated_double"), 312D);
+ message.WeakAddRepeatedField(f("repeated_bool"), false);
+ message.WeakAddRepeatedField(f("repeated_string"), "315");
+ message.WeakAddRepeatedField(f("repeated_bytes"), TestUtil.ToBytes("316"));
+
+ message.WeakAddRepeatedField(f("repeatedgroup"),
+ CreateBuilderForField(message, f("repeatedgroup"))
+ .SetField(repeatedGroupA, 317).WeakBuild());
+ message.WeakAddRepeatedField(f("repeated_nested_message"),
+ CreateBuilderForField(message, f("repeated_nested_message"))
+ .SetField(nestedB, 318).WeakBuild());
+ message.WeakAddRepeatedField(f("repeated_foreign_message"),
+ CreateBuilderForField(message, f("repeated_foreign_message"))
+ .SetField(foreignC, 319).WeakBuild());
+ message.WeakAddRepeatedField(f("repeated_import_message"),
+ CreateBuilderForField(message, f("repeated_import_message"))
+ .SetField(importD, 320).WeakBuild());
+
+ message.WeakAddRepeatedField(f("repeated_nested_enum"), nestedBaz);
+ message.WeakAddRepeatedField(f("repeated_foreign_enum"), foreignBaz);
+ message.WeakAddRepeatedField(f("repeated_import_enum"), importBaz);
+
+ message.WeakAddRepeatedField(f("repeated_string_piece"), "324");
+ message.WeakAddRepeatedField(f("repeated_cord"), "325");
+
+ // -----------------------------------------------------------------
+
+ message[f("default_int32")] = 401;
+ message[f("default_int64")] = 402L;
+ message[f("default_uint32")] = 403U;
+ message[f("default_uint64")] = 404UL;
+ message[f("default_sint32")] = 405;
+ message[f("default_sint64")] = 406L;
+ message[f("default_fixed32")] = 407U;
+ message[f("default_fixed64")] = 408UL;
+ message[f("default_sfixed32")] = 409;
+ message[f("default_sfixed64")] = 410L;
+ message[f("default_float")] = 411F;
+ message[f("default_double")] = 412D;
+ message[f("default_bool")] = false;
+ message[f("default_string")] = "415";
+ message[f("default_bytes")] = TestUtil.ToBytes("416");
+
+ message[f("default_nested_enum")] = nestedFoo;
+ message[f("default_foreign_enum")] = foreignFoo;
+ message[f("default_import_enum")] = importFoo;
+
+ message[f("default_string_piece")] = "424";
+ message[f("default_cord")] = "425";
+
+ message[f("oneof_uint32")] = 601U;
+ message[f("oneof_nested_message")] =
+ CreateBuilderForField(message, f("optional_nested_message")).SetField(nestedB, 602).WeakBuild();
+ message[f("oneof_string")] = "603";
+ message[f("oneof_bytes")] = TestUtil.ToBytes("604");
+ }
+
+ /// <summary>
+ /// Clears every field of the message, using the reflection interface.
+ /// </summary>
+ /// <param name="message"></param>
+ internal void ClearAllFieldsViaReflection(IBuilder message)
+ {
+ foreach (FieldDescriptor field in message.AllFields.Keys)
+ {
+ message.WeakClearField(field);
+ }
+ }
+
+ // -------------------------------------------------------------------
+
+ /// <summary>
+ /// Modify the repeated fields of the specified message to contain the
+ /// values expected by AssertRepeatedFieldsModified, using the IBuilder
+ /// reflection interface.
+ /// </summary>
+ internal void ModifyRepeatedFieldsViaReflection(IBuilder message)
+ {
+ message[f("repeated_int32"), 1] = 501;
+ message[f("repeated_int64"), 1] = 502L;
+ message[f("repeated_uint32"), 1] = 503U;
+ message[f("repeated_uint64"), 1] = 504UL;
+ message[f("repeated_sint32"), 1] = 505;
+ message[f("repeated_sint64"), 1] = 506L;
+ message[f("repeated_fixed32"), 1] = 507U;
+ message[f("repeated_fixed64"), 1] = 508UL;
+ message[f("repeated_sfixed32"), 1] = 509;
+ message[f("repeated_sfixed64"), 1] = 510L;
+ message[f("repeated_float"), 1] = 511F;
+ message[f("repeated_double"), 1] = 512D;
+ message[f("repeated_bool"), 1] = true;
+ message[f("repeated_string"), 1] = "515";
+ message.SetRepeatedField(f("repeated_bytes"), 1, TestUtil.ToBytes("516"));
+
+ message.SetRepeatedField(f("repeatedgroup"), 1,
+ CreateBuilderForField(message, f("repeatedgroup")).SetField(repeatedGroupA, 517).
+ WeakBuild());
+ message.SetRepeatedField(f("repeated_nested_message"), 1,
+ CreateBuilderForField(message, f("repeated_nested_message")).SetField(nestedB, 518)
+ .WeakBuild());
+ message.SetRepeatedField(f("repeated_foreign_message"), 1,
+ CreateBuilderForField(message, f("repeated_foreign_message")).SetField(foreignC,
+ 519).
+ WeakBuild());
+ message.SetRepeatedField(f("repeated_import_message"), 1,
+ CreateBuilderForField(message, f("repeated_import_message")).SetField(importD, 520)
+ .WeakBuild());
+
+ message[f("repeated_nested_enum"), 1] = nestedFoo;
+ message[f("repeated_foreign_enum"), 1] = foreignFoo;
+ message[f("repeated_import_enum"), 1] = importFoo;
+
+ message[f("repeated_string_piece"), 1] = "524";
+ message[f("repeated_cord"), 1] = "525";
+ }
+
+ // -------------------------------------------------------------------
+
+ /// <summary>
+ /// Asserts that all fields of the specified message are set to the values
+ /// assigned by SetAllFields, using the IMessage reflection interface.
+ /// </summary>
+ public void AssertAllFieldsSetViaReflection(IMessage message)
+ {
+ Assert.IsTrue(message.HasField(f("optional_int32")));
+ Assert.IsTrue(message.HasField(f("optional_int64")));
+ Assert.IsTrue(message.HasField(f("optional_uint32")));
+ Assert.IsTrue(message.HasField(f("optional_uint64")));
+ Assert.IsTrue(message.HasField(f("optional_sint32")));
+ Assert.IsTrue(message.HasField(f("optional_sint64")));
+ Assert.IsTrue(message.HasField(f("optional_fixed32")));
+ Assert.IsTrue(message.HasField(f("optional_fixed64")));
+ Assert.IsTrue(message.HasField(f("optional_sfixed32")));
+ Assert.IsTrue(message.HasField(f("optional_sfixed64")));
+ Assert.IsTrue(message.HasField(f("optional_float")));
+ Assert.IsTrue(message.HasField(f("optional_double")));
+ Assert.IsTrue(message.HasField(f("optional_bool")));
+ Assert.IsTrue(message.HasField(f("optional_string")));
+ Assert.IsTrue(message.HasField(f("optional_bytes")));
+
+ Assert.IsTrue(message.HasField(f("optionalgroup")));
+ Assert.IsTrue(message.HasField(f("optional_nested_message")));
+ Assert.IsTrue(message.HasField(f("optional_foreign_message")));
+ Assert.IsTrue(message.HasField(f("optional_import_message")));
+
+ Assert.IsTrue(((IMessage) message[f("optionalgroup")]).HasField(groupA));
+ Assert.IsTrue(((IMessage) message[f("optional_nested_message")]).HasField(nestedB));
+ Assert.IsTrue(((IMessage) message[f("optional_foreign_message")]).HasField(foreignC));
+ Assert.IsTrue(((IMessage) message[f("optional_import_message")]).HasField(importD));
+
+ Assert.IsTrue(message.HasField(f("optional_nested_enum")));
+ Assert.IsTrue(message.HasField(f("optional_foreign_enum")));
+ Assert.IsTrue(message.HasField(f("optional_import_enum")));
+
+ Assert.IsTrue(message.HasField(f("optional_string_piece")));
+ Assert.IsTrue(message.HasField(f("optional_cord")));
+
+ Assert.AreEqual(101, message[f("optional_int32")]);
+ Assert.AreEqual(102L, message[f("optional_int64")]);
+ Assert.AreEqual(103u, message[f("optional_uint32")]);
+ Assert.AreEqual(104UL, message[f("optional_uint64")]);
+ Assert.AreEqual(105, message[f("optional_sint32")]);
+ Assert.AreEqual(106L, message[f("optional_sint64")]);
+ Assert.AreEqual(107U, message[f("optional_fixed32")]);
+ Assert.AreEqual(108UL, message[f("optional_fixed64")]);
+ Assert.AreEqual(109, message[f("optional_sfixed32")]);
+ Assert.AreEqual(110L, message[f("optional_sfixed64")]);
+ Assert.AreEqual(111F, message[f("optional_float")]);
+ Assert.AreEqual(112D, message[f("optional_double")]);
+ Assert.AreEqual(true, message[f("optional_bool")]);
+ Assert.AreEqual("115", message[f("optional_string")]);
+ Assert.AreEqual(TestUtil.ToBytes("116"), message[f("optional_bytes")]);
+
+ Assert.AreEqual(117, ((IMessage) message[f("optionalgroup")])[groupA]);
+ Assert.AreEqual(118, ((IMessage) message[f("optional_nested_message")])[nestedB]);
+ Assert.AreEqual(119, ((IMessage) message[f("optional_foreign_message")])[foreignC]);
+ Assert.AreEqual(120, ((IMessage) message[f("optional_import_message")])[importD]);
+
+ Assert.AreEqual(nestedBaz, message[f("optional_nested_enum")]);
+ Assert.AreEqual(foreignBaz, message[f("optional_foreign_enum")]);
+ Assert.AreEqual(importBaz, message[f("optional_import_enum")]);
+
+ Assert.AreEqual("124", message[f("optional_string_piece")]);
+ Assert.AreEqual("125", message[f("optional_cord")]);
+
+ // -----------------------------------------------------------------
+
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_int32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_int64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_uint32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_uint64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_sint32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_sint64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_fixed32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_fixed64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_sfixed32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_sfixed64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_float")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_double")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_bool")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_string")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_bytes")));
+
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeatedgroup")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_nested_message")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_foreign_message")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_import_message")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_nested_enum")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_foreign_enum")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_import_enum")));
+
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_string_piece")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_cord")));
+
+ Assert.AreEqual(201, message[f("repeated_int32"), 0]);
+ Assert.AreEqual(202L, message[f("repeated_int64"), 0]);
+ Assert.AreEqual(203U, message[f("repeated_uint32"), 0]);
+ Assert.AreEqual(204UL, message[f("repeated_uint64"), 0]);
+ Assert.AreEqual(205, message[f("repeated_sint32"), 0]);
+ Assert.AreEqual(206L, message[f("repeated_sint64"), 0]);
+ Assert.AreEqual(207U, message[f("repeated_fixed32"), 0]);
+ Assert.AreEqual(208UL, message[f("repeated_fixed64"), 0]);
+ Assert.AreEqual(209, message[f("repeated_sfixed32"), 0]);
+ Assert.AreEqual(210L, message[f("repeated_sfixed64"), 0]);
+ Assert.AreEqual(211F, message[f("repeated_float"), 0]);
+ Assert.AreEqual(212D, message[f("repeated_double"), 0]);
+ Assert.AreEqual(true, message[f("repeated_bool"), 0]);
+ Assert.AreEqual("215", message[f("repeated_string"), 0]);
+ Assert.AreEqual(TestUtil.ToBytes("216"), message[f("repeated_bytes"), 0]);
+
+ Assert.AreEqual(217, ((IMessage) message[f("repeatedgroup"), 0])[repeatedGroupA]);
+ Assert.AreEqual(218, ((IMessage) message[f("repeated_nested_message"), 0])[nestedB]);
+ Assert.AreEqual(219, ((IMessage) message[f("repeated_foreign_message"), 0])[foreignC]);
+ Assert.AreEqual(220, ((IMessage) message[f("repeated_import_message"), 0])[importD]);
+
+ Assert.AreEqual(nestedBar, message[f("repeated_nested_enum"), 0]);
+ Assert.AreEqual(foreignBar, message[f("repeated_foreign_enum"), 0]);
+ Assert.AreEqual(importBar, message[f("repeated_import_enum"), 0]);
+
+ Assert.AreEqual("224", message[f("repeated_string_piece"), 0]);
+ Assert.AreEqual("225", message[f("repeated_cord"), 0]);
+
+ Assert.AreEqual(301, message[f("repeated_int32"), 1]);
+ Assert.AreEqual(302L, message[f("repeated_int64"), 1]);
+ Assert.AreEqual(303U, message[f("repeated_uint32"), 1]);
+ Assert.AreEqual(304UL, message[f("repeated_uint64"), 1]);
+ Assert.AreEqual(305, message[f("repeated_sint32"), 1]);
+ Assert.AreEqual(306L, message[f("repeated_sint64"), 1]);
+ Assert.AreEqual(307U, message[f("repeated_fixed32"), 1]);
+ Assert.AreEqual(308UL, message[f("repeated_fixed64"), 1]);
+ Assert.AreEqual(309, message[f("repeated_sfixed32"), 1]);
+ Assert.AreEqual(310L, message[f("repeated_sfixed64"), 1]);
+ Assert.AreEqual(311F, message[f("repeated_float"), 1]);
+ Assert.AreEqual(312D, message[f("repeated_double"), 1]);
+ Assert.AreEqual(false, message[f("repeated_bool"), 1]);
+ Assert.AreEqual("315", message[f("repeated_string"), 1]);
+ Assert.AreEqual(TestUtil.ToBytes("316"), message[f("repeated_bytes"), 1]);
+
+ Assert.AreEqual(317, ((IMessage) message[f("repeatedgroup"), 1])[repeatedGroupA]);
+ Assert.AreEqual(318, ((IMessage) message[f("repeated_nested_message"), 1])[nestedB]);
+ Assert.AreEqual(319, ((IMessage) message[f("repeated_foreign_message"), 1])[foreignC]);
+ Assert.AreEqual(320, ((IMessage) message[f("repeated_import_message"), 1])[importD]);
+
+ Assert.AreEqual(nestedBaz, message[f("repeated_nested_enum"), 1]);
+ Assert.AreEqual(foreignBaz, message[f("repeated_foreign_enum"), 1]);
+ Assert.AreEqual(importBaz, message[f("repeated_import_enum"), 1]);
+
+ Assert.AreEqual("324", message[f("repeated_string_piece"), 1]);
+ Assert.AreEqual("325", message[f("repeated_cord"), 1]);
+
+ // -----------------------------------------------------------------
+
+ Assert.IsTrue(message.HasField(f("default_int32")));
+ Assert.IsTrue(message.HasField(f("default_int64")));
+ Assert.IsTrue(message.HasField(f("default_uint32")));
+ Assert.IsTrue(message.HasField(f("default_uint64")));
+ Assert.IsTrue(message.HasField(f("default_sint32")));
+ Assert.IsTrue(message.HasField(f("default_sint64")));
+ Assert.IsTrue(message.HasField(f("default_fixed32")));
+ Assert.IsTrue(message.HasField(f("default_fixed64")));
+ Assert.IsTrue(message.HasField(f("default_sfixed32")));
+ Assert.IsTrue(message.HasField(f("default_sfixed64")));
+ Assert.IsTrue(message.HasField(f("default_float")));
+ Assert.IsTrue(message.HasField(f("default_double")));
+ Assert.IsTrue(message.HasField(f("default_bool")));
+ Assert.IsTrue(message.HasField(f("default_string")));
+ Assert.IsTrue(message.HasField(f("default_bytes")));
+
+ Assert.IsTrue(message.HasField(f("default_nested_enum")));
+ Assert.IsTrue(message.HasField(f("default_foreign_enum")));
+ Assert.IsTrue(message.HasField(f("default_import_enum")));
+
+ Assert.IsTrue(message.HasField(f("default_string_piece")));
+ Assert.IsTrue(message.HasField(f("default_cord")));
+
+ Assert.AreEqual(401, message[f("default_int32")]);
+ Assert.AreEqual(402L, message[f("default_int64")]);
+ Assert.AreEqual(403U, message[f("default_uint32")]);
+ Assert.AreEqual(404UL, message[f("default_uint64")]);
+ Assert.AreEqual(405, message[f("default_sint32")]);
+ Assert.AreEqual(406L, message[f("default_sint64")]);
+ Assert.AreEqual(407U, message[f("default_fixed32")]);
+ Assert.AreEqual(408UL, message[f("default_fixed64")]);
+ Assert.AreEqual(409, message[f("default_sfixed32")]);
+ Assert.AreEqual(410L, message[f("default_sfixed64")]);
+ Assert.AreEqual(411F, message[f("default_float")]);
+ Assert.AreEqual(412D, message[f("default_double")]);
+ Assert.AreEqual(false, message[f("default_bool")]);
+ Assert.AreEqual("415", message[f("default_string")]);
+ Assert.AreEqual(TestUtil.ToBytes("416"), message[f("default_bytes")]);
+
+ Assert.AreEqual(nestedFoo, message[f("default_nested_enum")]);
+ Assert.AreEqual(foreignFoo, message[f("default_foreign_enum")]);
+ Assert.AreEqual(importFoo, message[f("default_import_enum")]);
+
+ Assert.AreEqual("424", message[f("default_string_piece")]);
+ Assert.AreEqual("425", message[f("default_cord")]);
+ if (extensionRegistry == null)
+ {
+ Assert.IsFalse(message.HasField(f("oneof_uint32")));
+ Assert.IsFalse(message.HasField(f("oneof_nested_message")));
+ Assert.IsFalse(message.HasField(f("oneof_string")));
+ } else
+ {
+ Assert.IsTrue(message.HasField(f("oneof_uint32")));
+ Assert.IsTrue(message.HasField(f("oneof_nested_message")));
+ Assert.IsTrue(message.HasField(f("oneof_string")));
+ Assert.AreEqual(601U, message[f("oneof_uint32")]);
+ Assert.AreEqual(602, ((IMessage)message[f("oneof_nested_message")])[nestedB]);
+ Assert.AreEqual("603", message[f("oneof_string")]);
+ }
+ }
+
+ /// <summary>
+ /// Assert that all fields of the message are cleared, and that
+ /// getting the fields returns their default values, using the reflection interface.
+ /// </summary>
+ public void AssertClearViaReflection(IMessage message)
+ {
+ // has_blah() should initially be false for all optional fields.
+ Assert.IsFalse(message.HasField(f("optional_int32")));
+ Assert.IsFalse(message.HasField(f("optional_int64")));
+ Assert.IsFalse(message.HasField(f("optional_uint32")));
+ Assert.IsFalse(message.HasField(f("optional_uint64")));
+ Assert.IsFalse(message.HasField(f("optional_sint32")));
+ Assert.IsFalse(message.HasField(f("optional_sint64")));
+ Assert.IsFalse(message.HasField(f("optional_fixed32")));
+ Assert.IsFalse(message.HasField(f("optional_fixed64")));
+ Assert.IsFalse(message.HasField(f("optional_sfixed32")));
+ Assert.IsFalse(message.HasField(f("optional_sfixed64")));
+ Assert.IsFalse(message.HasField(f("optional_float")));
+ Assert.IsFalse(message.HasField(f("optional_double")));
+ Assert.IsFalse(message.HasField(f("optional_bool")));
+ Assert.IsFalse(message.HasField(f("optional_string")));
+ Assert.IsFalse(message.HasField(f("optional_bytes")));
+
+ Assert.IsFalse(message.HasField(f("optionalgroup")));
+ Assert.IsFalse(message.HasField(f("optional_nested_message")));
+ Assert.IsFalse(message.HasField(f("optional_foreign_message")));
+ Assert.IsFalse(message.HasField(f("optional_import_message")));
+
+ Assert.IsFalse(message.HasField(f("optional_nested_enum")));
+ Assert.IsFalse(message.HasField(f("optional_foreign_enum")));
+ Assert.IsFalse(message.HasField(f("optional_import_enum")));
+
+ Assert.IsFalse(message.HasField(f("optional_string_piece")));
+ Assert.IsFalse(message.HasField(f("optional_cord")));
+
+ // Optional fields without defaults are set to zero or something like it.
+ Assert.AreEqual(0, message[f("optional_int32")]);
+ Assert.AreEqual(0L, message[f("optional_int64")]);
+ Assert.AreEqual(0U, message[f("optional_uint32")]);
+ Assert.AreEqual(0UL, message[f("optional_uint64")]);
+ Assert.AreEqual(0, message[f("optional_sint32")]);
+ Assert.AreEqual(0L, message[f("optional_sint64")]);
+ Assert.AreEqual(0U, message[f("optional_fixed32")]);
+ Assert.AreEqual(0UL, message[f("optional_fixed64")]);
+ Assert.AreEqual(0, message[f("optional_sfixed32")]);
+ Assert.AreEqual(0L, message[f("optional_sfixed64")]);
+ Assert.AreEqual(0F, message[f("optional_float")]);
+ Assert.AreEqual(0D, message[f("optional_double")]);
+ Assert.AreEqual(false, message[f("optional_bool")]);
+ Assert.AreEqual("", message[f("optional_string")]);
+ Assert.AreEqual(ByteString.Empty, message[f("optional_bytes")]);
+
+ // Embedded messages should also be clear.
+ Assert.IsFalse(((IMessage) message[f("optionalgroup")]).HasField(groupA));
+ Assert.IsFalse(((IMessage) message[f("optional_nested_message")])
+ .HasField(nestedB));
+ Assert.IsFalse(((IMessage) message[f("optional_foreign_message")])
+ .HasField(foreignC));
+ Assert.IsFalse(((IMessage) message[f("optional_import_message")])
+ .HasField(importD));
+
+ Assert.AreEqual(0, ((IMessage) message[f("optionalgroup")])[groupA]);
+ Assert.AreEqual(0, ((IMessage) message[f("optional_nested_message")])[nestedB]);
+ Assert.AreEqual(0, ((IMessage) message[f("optional_foreign_message")])[foreignC]);
+ Assert.AreEqual(0, ((IMessage) message[f("optional_import_message")])[importD]);
+
+ // Enums without defaults are set to the first value in the enum.
+ Assert.AreEqual(nestedFoo, message[f("optional_nested_enum")]);
+ Assert.AreEqual(foreignFoo, message[f("optional_foreign_enum")]);
+ Assert.AreEqual(importFoo, message[f("optional_import_enum")]);
+
+ Assert.AreEqual("", message[f("optional_string_piece")]);
+ Assert.AreEqual("", message[f("optional_cord")]);
+
+ // Repeated fields are empty.
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_int32")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_int64")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_uint32")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_uint64")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_sint32")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_sint64")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_fixed32")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_fixed64")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_sfixed32")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_sfixed64")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_float")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_double")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_bool")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_string")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_bytes")));
+
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeatedgroup")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_nested_message")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_foreign_message")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_import_message")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_nested_enum")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_foreign_enum")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_import_enum")));
+
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_string_piece")));
+ Assert.AreEqual(0, message.GetRepeatedFieldCount(f("repeated_cord")));
+
+ // has_blah() should also be false for all default fields.
+ Assert.IsFalse(message.HasField(f("default_int32")));
+ Assert.IsFalse(message.HasField(f("default_int64")));
+ Assert.IsFalse(message.HasField(f("default_uint32")));
+ Assert.IsFalse(message.HasField(f("default_uint64")));
+ Assert.IsFalse(message.HasField(f("default_sint32")));
+ Assert.IsFalse(message.HasField(f("default_sint64")));
+ Assert.IsFalse(message.HasField(f("default_fixed32")));
+ Assert.IsFalse(message.HasField(f("default_fixed64")));
+ Assert.IsFalse(message.HasField(f("default_sfixed32")));
+ Assert.IsFalse(message.HasField(f("default_sfixed64")));
+ Assert.IsFalse(message.HasField(f("default_float")));
+ Assert.IsFalse(message.HasField(f("default_double")));
+ Assert.IsFalse(message.HasField(f("default_bool")));
+ Assert.IsFalse(message.HasField(f("default_string")));
+ Assert.IsFalse(message.HasField(f("default_bytes")));
+
+ Assert.IsFalse(message.HasField(f("default_nested_enum")));
+ Assert.IsFalse(message.HasField(f("default_foreign_enum")));
+ Assert.IsFalse(message.HasField(f("default_import_enum")));
+
+ Assert.IsFalse(message.HasField(f("default_string_piece")));
+ Assert.IsFalse(message.HasField(f("default_cord")));
+
+ // Fields with defaults have their default values (duh).
+ Assert.AreEqual(41, message[f("default_int32")]);
+ Assert.AreEqual(42L, message[f("default_int64")]);
+ Assert.AreEqual(43U, message[f("default_uint32")]);
+ Assert.AreEqual(44UL, message[f("default_uint64")]);
+ Assert.AreEqual(-45, message[f("default_sint32")]);
+ Assert.AreEqual(46L, message[f("default_sint64")]);
+ Assert.AreEqual(47U, message[f("default_fixed32")]);
+ Assert.AreEqual(48UL, message[f("default_fixed64")]);
+ Assert.AreEqual(49, message[f("default_sfixed32")]);
+ Assert.AreEqual(-50L, message[f("default_sfixed64")]);
+ Assert.AreEqual(51.5F, message[f("default_float")]);
+ Assert.AreEqual(52e3D, message[f("default_double")]);
+ Assert.AreEqual(true, message[f("default_bool")]);
+ Assert.AreEqual("hello", message[f("default_string")]);
+ Assert.AreEqual(TestUtil.ToBytes("world"), message[f("default_bytes")]);
+
+ Assert.AreEqual(nestedBar, message[f("default_nested_enum")]);
+ Assert.AreEqual(foreignBar, message[f("default_foreign_enum")]);
+ Assert.AreEqual(importBar, message[f("default_import_enum")]);
+
+ Assert.AreEqual("abc", message[f("default_string_piece")]);
+ Assert.AreEqual("123", message[f("default_cord")]);
+
+ Assert.IsFalse(message.HasField(f("oneof_uint32")));
+ Assert.IsFalse(message.HasField(f("oneof_nested_message")));
+ Assert.IsFalse(message.HasField(f("oneof_string")));
+ Assert.IsFalse(message.HasField(f("oneof_bytes")));
+
+ Assert.AreEqual(0U, message[f("oneof_uint32")]);
+ Assert.AreEqual("", message[f("oneof_string")]);
+ Assert.AreEqual(TestUtil.ToBytes(""), message[f("oneof_bytes")]);
+ }
+
+ // ---------------------------------------------------------------
+
+ internal void AssertRepeatedFieldsModifiedViaReflection(IMessage message)
+ {
+ // ModifyRepeatedFields only sets the second repeated element of each
+ // field. In addition to verifying this, we also verify that the first
+ // element and size were *not* modified.
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_int32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_int64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_uint32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_uint64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_sint32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_sint64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_fixed32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_fixed64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_sfixed32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_sfixed64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_float")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_double")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_bool")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_string")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_bytes")));
+
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeatedgroup")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_nested_message")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_foreign_message")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_import_message")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_nested_enum")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_foreign_enum")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_import_enum")));
+
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_string_piece")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("repeated_cord")));
+
+ Assert.AreEqual(201, message[f("repeated_int32"), 0]);
+ Assert.AreEqual(202L, message[f("repeated_int64"), 0]);
+ Assert.AreEqual(203U, message[f("repeated_uint32"), 0]);
+ Assert.AreEqual(204UL, message[f("repeated_uint64"), 0]);
+ Assert.AreEqual(205, message[f("repeated_sint32"), 0]);
+ Assert.AreEqual(206L, message[f("repeated_sint64"), 0]);
+ Assert.AreEqual(207U, message[f("repeated_fixed32"), 0]);
+ Assert.AreEqual(208UL, message[f("repeated_fixed64"), 0]);
+ Assert.AreEqual(209, message[f("repeated_sfixed32"), 0]);
+ Assert.AreEqual(210L, message[f("repeated_sfixed64"), 0]);
+ Assert.AreEqual(211F, message[f("repeated_float"), 0]);
+ Assert.AreEqual(212D, message[f("repeated_double"), 0]);
+ Assert.AreEqual(true, message[f("repeated_bool"), 0]);
+ Assert.AreEqual("215", message[f("repeated_string"), 0]);
+ Assert.AreEqual(TestUtil.ToBytes("216"), message[f("repeated_bytes"), 0]);
+
+ Assert.AreEqual(217, ((IMessage) message[f("repeatedgroup"), 0])[repeatedGroupA]);
+ Assert.AreEqual(218, ((IMessage) message[f("repeated_nested_message"), 0])[nestedB]);
+ Assert.AreEqual(219, ((IMessage) message[f("repeated_foreign_message"), 0])[foreignC]);
+ Assert.AreEqual(220, ((IMessage) message[f("repeated_import_message"), 0])[importD]);
+
+ Assert.AreEqual(nestedBar, message[f("repeated_nested_enum"), 0]);
+ Assert.AreEqual(foreignBar, message[f("repeated_foreign_enum"), 0]);
+ Assert.AreEqual(importBar, message[f("repeated_import_enum"), 0]);
+
+ Assert.AreEqual("224", message[f("repeated_string_piece"), 0]);
+ Assert.AreEqual("225", message[f("repeated_cord"), 0]);
+
+ Assert.AreEqual(501, message[f("repeated_int32"), 1]);
+ Assert.AreEqual(502L, message[f("repeated_int64"), 1]);
+ Assert.AreEqual(503U, message[f("repeated_uint32"), 1]);
+ Assert.AreEqual(504UL, message[f("repeated_uint64"), 1]);
+ Assert.AreEqual(505, message[f("repeated_sint32"), 1]);
+ Assert.AreEqual(506L, message[f("repeated_sint64"), 1]);
+ Assert.AreEqual(507U, message[f("repeated_fixed32"), 1]);
+ Assert.AreEqual(508UL, message[f("repeated_fixed64"), 1]);
+ Assert.AreEqual(509, message[f("repeated_sfixed32"), 1]);
+ Assert.AreEqual(510L, message[f("repeated_sfixed64"), 1]);
+ Assert.AreEqual(511F, message[f("repeated_float"), 1]);
+ Assert.AreEqual(512D, message[f("repeated_double"), 1]);
+ Assert.AreEqual(true, message[f("repeated_bool"), 1]);
+ Assert.AreEqual("515", message[f("repeated_string"), 1]);
+ Assert.AreEqual(TestUtil.ToBytes("516"), message[f("repeated_bytes"), 1]);
+
+ Assert.AreEqual(517, ((IMessage) message[f("repeatedgroup"), 1])[repeatedGroupA]);
+ Assert.AreEqual(518, ((IMessage) message[f("repeated_nested_message"), 1])[nestedB]);
+ Assert.AreEqual(519, ((IMessage) message[f("repeated_foreign_message"), 1])[foreignC]);
+ Assert.AreEqual(520, ((IMessage) message[f("repeated_import_message"), 1])[importD]);
+
+ Assert.AreEqual(nestedFoo, message[f("repeated_nested_enum"), 1]);
+ Assert.AreEqual(foreignFoo, message[f("repeated_foreign_enum"), 1]);
+ Assert.AreEqual(importFoo, message[f("repeated_import_enum"), 1]);
+
+ Assert.AreEqual("524", message[f("repeated_string_piece"), 1]);
+ Assert.AreEqual("525", message[f("repeated_cord"), 1]);
+ }
+
+ /// <summary>
+ /// Verifies that the reflection setters for the given Builder object throw an
+ /// ArgumentNullException if they are passed a null value.
+ /// </summary>
+ public void AssertReflectionSettersRejectNull(IBuilder builder)
+ {
+ Assert.Throws<ArgumentNullException>(() => builder[f("optional_string")] = null);
+ Assert.Throws<ArgumentNullException>(() => builder[f("optional_bytes")] = null);
+ Assert.Throws<ArgumentNullException>(() => builder[f("optional_nested_enum")] = null);
+ Assert.Throws<ArgumentNullException>(() => builder[f("optional_nested_message")] = null);
+ Assert.Throws<ArgumentNullException>(() => builder[f("optional_nested_message")] = null);
+ Assert.Throws<ArgumentNullException>(() => builder.WeakAddRepeatedField(f("repeated_string"), null));
+ Assert.Throws<ArgumentNullException>(() => builder.WeakAddRepeatedField(f("repeated_bytes"), null));
+ Assert.Throws<ArgumentNullException>(() => builder.WeakAddRepeatedField(f("repeated_nested_enum"), null));
+ Assert.Throws<ArgumentNullException>(() => builder.WeakAddRepeatedField(f("repeated_nested_message"), null));
+ }
+
+ /// <summary>
+ /// Verifies that the reflection repeated setters for the given Builder object throw an
+ /// ArgumentNullException if they are passed a null value.
+ /// </summary>
+ public void AssertReflectionRepeatedSettersRejectNull(IBuilder builder)
+ {
+ builder.WeakAddRepeatedField(f("repeated_string"), "one");
+ Assert.Throws<ArgumentNullException>(() => builder.SetRepeatedField(f("repeated_string"), 0, null));
+ builder.WeakAddRepeatedField(f("repeated_bytes"), TestUtil.ToBytes("one"));
+ Assert.Throws<ArgumentNullException>(() => builder.SetRepeatedField(f("repeated_bytes"), 0, null));
+ builder.WeakAddRepeatedField(f("repeated_nested_enum"), nestedBaz);
+ Assert.Throws<ArgumentNullException>(() => builder.SetRepeatedField(f("repeated_nested_enum"), 0, null));
+ builder.WeakAddRepeatedField(f("repeated_nested_message"),
+ new TestAllTypes.Types.NestedMessage.Builder {Bb = 218}.Build());
+ Assert.Throws<ArgumentNullException>(() => builder.SetRepeatedField(f("repeated_nested_message"), 0, null));
+ }
+
+ public void SetPackedFieldsViaReflection(IBuilder message)
+ {
+ message.WeakAddRepeatedField(f("packed_int32"), 601);
+ message.WeakAddRepeatedField(f("packed_int64"), 602L);
+ message.WeakAddRepeatedField(f("packed_uint32"), 603U);
+ message.WeakAddRepeatedField(f("packed_uint64"), 604UL);
+ message.WeakAddRepeatedField(f("packed_sint32"), 605);
+ message.WeakAddRepeatedField(f("packed_sint64"), 606L);
+ message.WeakAddRepeatedField(f("packed_fixed32"), 607U);
+ message.WeakAddRepeatedField(f("packed_fixed64"), 608UL);
+ message.WeakAddRepeatedField(f("packed_sfixed32"), 609);
+ message.WeakAddRepeatedField(f("packed_sfixed64"), 610L);
+ message.WeakAddRepeatedField(f("packed_float"), 611F);
+ message.WeakAddRepeatedField(f("packed_double"), 612D);
+ message.WeakAddRepeatedField(f("packed_bool"), true);
+ message.WeakAddRepeatedField(f("packed_enum"), foreignBar);
+ // Add a second one of each field.
+ message.WeakAddRepeatedField(f("packed_int32"), 701);
+ message.WeakAddRepeatedField(f("packed_int64"), 702L);
+ message.WeakAddRepeatedField(f("packed_uint32"), 703U);
+ message.WeakAddRepeatedField(f("packed_uint64"), 704UL);
+ message.WeakAddRepeatedField(f("packed_sint32"), 705);
+ message.WeakAddRepeatedField(f("packed_sint64"), 706L);
+ message.WeakAddRepeatedField(f("packed_fixed32"), 707U);
+ message.WeakAddRepeatedField(f("packed_fixed64"), 708UL);
+ message.WeakAddRepeatedField(f("packed_sfixed32"), 709);
+ message.WeakAddRepeatedField(f("packed_sfixed64"), 710L);
+ message.WeakAddRepeatedField(f("packed_float"), 711F);
+ message.WeakAddRepeatedField(f("packed_double"), 712D);
+ message.WeakAddRepeatedField(f("packed_bool"), false);
+ message.WeakAddRepeatedField(f("packed_enum"), foreignBaz);
+ }
+
+ public void AssertPackedFieldsSetViaReflection(IMessage message)
+ {
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_int32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_int64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_uint32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_uint64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_sint32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_sint64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_fixed32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_fixed64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_sfixed32")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_sfixed64")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_float")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_double")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_bool")));
+ Assert.AreEqual(2, message.GetRepeatedFieldCount(f("packed_enum")));
+
+ Assert.AreEqual(601, message[f("packed_int32"), 0]);
+ Assert.AreEqual(602L, message[f("packed_int64"), 0]);
+ Assert.AreEqual(603u, message[f("packed_uint32"), 0]);
+ Assert.AreEqual(604uL, message[f("packed_uint64"), 0]);
+ Assert.AreEqual(605, message[f("packed_sint32"), 0]);
+ Assert.AreEqual(606L, message[f("packed_sint64"), 0]);
+ Assert.AreEqual(607u, message[f("packed_fixed32"), 0]);
+ Assert.AreEqual(608uL, message[f("packed_fixed64"), 0]);
+ Assert.AreEqual(609, message[f("packed_sfixed32"), 0]);
+ Assert.AreEqual(610L, message[f("packed_sfixed64"), 0]);
+ Assert.AreEqual(611F, message[f("packed_float"), 0]);
+ Assert.AreEqual(612D, message[f("packed_double"), 0]);
+ Assert.AreEqual(true, message[f("packed_bool"), 0]);
+ Assert.AreEqual(foreignBar, message[f("packed_enum"), 0]);
+
+ Assert.AreEqual(701, message[f("packed_int32"), 1]);
+ Assert.AreEqual(702L, message[f("packed_int64"), 1]);
+ Assert.AreEqual(703u, message[f("packed_uint32"), 1]);
+ Assert.AreEqual(704uL, message[f("packed_uint64"), 1]);
+ Assert.AreEqual(705, message[f("packed_sint32"), 1]);
+ Assert.AreEqual(706L, message[f("packed_sint64"), 1]);
+ Assert.AreEqual(707u, message[f("packed_fixed32"), 1]);
+ Assert.AreEqual(708uL, message[f("packed_fixed64"), 1]);
+ Assert.AreEqual(709, message[f("packed_sfixed32"), 1]);
+ Assert.AreEqual(710L, message[f("packed_sfixed64"), 1]);
+ Assert.AreEqual(711F, message[f("packed_float"), 1]);
+ Assert.AreEqual(712D, message[f("packed_double"), 1]);
+ Assert.AreEqual(false, message[f("packed_bool"), 1]);
+ Assert.AreEqual(foreignBaz, message[f("packed_enum"), 1]);
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs b/csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs
new file mode 100644
index 00000000..4f25a5ab
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/ReusableBuilderTest.cs
@@ -0,0 +1,166 @@
+using System;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.TestProtos;
+using UnitTest.Issues.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class ReusableBuilderTest
+ {
+ //Issue 28: Circular message dependencies result in null defaults for DefaultInstance
+ [Test]
+ public void EnsureStaticCicularReference()
+ {
+ MyMessageAReferenceB ab = MyMessageAReferenceB.DefaultInstance;
+ Assert.NotNull(ab);
+ Assert.NotNull(ab.Value);
+ MyMessageBReferenceA ba = MyMessageBReferenceA.DefaultInstance;
+ Assert.NotNull(ba);
+ Assert.NotNull(ba.Value);
+ }
+
+ [Test]
+ public void TestModifyDefaultInstance()
+ {
+ //verify that the default instance has correctly been marked as read-only
+ Assert.AreEqual(typeof(PopsicleList<bool>), TestAllTypes.DefaultInstance.RepeatedBoolList.GetType());
+ PopsicleList<bool> list = (PopsicleList<bool>)TestAllTypes.DefaultInstance.RepeatedBoolList;
+ Assert.IsTrue(list.IsReadOnly);
+ }
+
+ [Test]
+ public void TestUnmodifiedDefaultInstance()
+ {
+ //Simply calling ToBuilder().Build() no longer creates a copy of the message
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ }
+
+ [Test]
+ public void BuildMultipleWithoutChange()
+ {
+ //Calling Build() or BuildPartial() does not require a copy of the message
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ builder.SetDefaultBool(true);
+
+ TestAllTypes first = builder.BuildPartial();
+ //Still the same instance?
+ Assert.IsTrue(ReferenceEquals(first, builder.Build()));
+ //Still the same instance?
+ Assert.IsTrue(ReferenceEquals(first, builder.BuildPartial().ToBuilder().Build()));
+ }
+
+ [Test]
+ public void MergeFromDefaultInstance()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ builder.MergeFrom(TestAllTypes.DefaultInstance);
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ }
+
+ [Test]
+ public void BuildNewBuilderIsDefaultInstance()
+ {
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, new TestAllTypes.Builder().Build()));
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, TestAllTypes.CreateBuilder().Build()));
+ //last test, if you clear a builder it reverts to default instance
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance,
+ TestAllTypes.CreateBuilder().SetOptionalBool(true).Build().ToBuilder().Clear().Build()));
+ }
+
+ [Test]
+ public void BuildModifyAndRebuild()
+ {
+ TestAllTypes.Builder b1 = new TestAllTypes.Builder();
+ b1.SetDefaultInt32(1);
+ b1.AddRepeatedInt32(2);
+ b1.SetOptionalForeignMessage(ForeignMessage.DefaultInstance);
+
+ TestAllTypes m1 = b1.Build();
+
+ b1.SetDefaultInt32(5);
+ b1.AddRepeatedInt32(6);
+ b1.SetOptionalForeignMessage(b1.OptionalForeignMessage.ToBuilder().SetC(7));
+
+ TestAllTypes m2 = b1.Build();
+
+ Assert.AreEqual("{\"optional_foreign_message\":{},\"repeated_int32\":[2],\"default_int32\":1}", Extensions.ToJson(m1));
+ Assert.AreEqual("{\"optional_foreign_message\":{\"c\":7},\"repeated_int32\":[2,6],\"default_int32\":5}", Extensions.ToJson(m2));
+ }
+
+ [Test]
+ public void CloneOnChangePrimitive()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ builder.SetDefaultBool(true);
+ Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ }
+
+ [Test]
+ public void CloneOnAddRepeatedBool()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ builder.AddRepeatedBool(true);
+ Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ }
+
+ [Test]
+ public void CloneOnGetRepeatedBoolList()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ GC.KeepAlive(builder.RepeatedBoolList);
+ Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ }
+
+ [Test]
+ public void CloneOnChangeMessage()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ builder.SetOptionalForeignMessage(new ForeignMessage.Builder());
+ Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ }
+
+ [Test]
+ public void CloneOnClearMessage()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ builder.ClearOptionalForeignMessage();
+ Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ }
+
+ [Test]
+ public void CloneOnGetRepeatedForeignMessageList()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ GC.KeepAlive(builder.RepeatedForeignMessageList);
+ Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ }
+
+ [Test]
+ public void CloneOnChangeEnumValue()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ builder.SetOptionalForeignEnum(ForeignEnum.FOREIGN_BAR);
+ Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ }
+
+ [Test]
+ public void CloneOnGetRepeatedForeignEnumList()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.DefaultInstance.ToBuilder();
+ Assert.IsTrue(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ GC.KeepAlive(builder.RepeatedForeignEnumList);
+ Assert.IsFalse(ReferenceEquals(TestAllTypes.DefaultInstance, builder.Build()));
+ }
+
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/TestCornerCases.cs b/csharp/src/ProtocolBuffers.Test/TestCornerCases.cs
new file mode 100644
index 00000000..b60e7fae
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestCornerCases.cs
@@ -0,0 +1,34 @@
+using UnitTest.Issues.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class TestCornerCases
+ {
+ [Test]
+ public void TestRoundTripNegativeEnums()
+ {
+ NegativeEnumMessage msg = NegativeEnumMessage.CreateBuilder()
+ .SetValue(NegativeEnum.MinusOne) //11
+ .AddValues(NegativeEnum.Zero) //2
+ .AddValues(NegativeEnum.MinusOne) //11
+ .AddValues(NegativeEnum.FiveBelow) //11
+ //2
+ .AddPackedValues(NegativeEnum.Zero) //1
+ .AddPackedValues(NegativeEnum.MinusOne) //10
+ .AddPackedValues(NegativeEnum.FiveBelow) //10
+ .Build();
+
+ Assert.AreEqual(58, msg.SerializedSize);
+
+ byte[] bytes = new byte[58];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(bytes);
+
+ msg.WriteTo(output);
+ Assert.AreEqual(0, output.SpaceLeft);
+
+ NegativeEnumMessage copy = NegativeEnumMessage.ParseFrom(bytes);
+ Assert.AreEqual(msg, copy);
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/TestMimeMessageFormats.cs b/csharp/src/ProtocolBuffers.Test/TestMimeMessageFormats.cs
new file mode 100644
index 00000000..3d4d0320
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestMimeMessageFormats.cs
@@ -0,0 +1,277 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using Google.ProtocolBuffers.Serialization;
+using Google.ProtocolBuffers.Serialization.Http;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class TestMimeMessageFormats
+ {
+ // There is a whole host of various json mime types in use around the net, this is the set we accept...
+ readonly IEnumerable<string> JsonTypes = new string[] { "application/json", "application/x-json", "application/x-javascript", "text/javascript", "text/x-javascript", "text/x-json", "text/json" };
+ readonly IEnumerable<string> XmlTypes = new string[] { "text/xml", "application/xml" };
+ readonly IEnumerable<string> ProtobufTypes = new string[] { "application/binary", "application/x-protobuf", "application/vnd.google.protobuf" };
+
+ [Test]
+ public void TestReadJsonMimeTypes()
+ {
+ foreach (string type in JsonTypes)
+ {
+ Assert.IsTrue(
+ MessageFormatFactory.CreateInputStream(new MessageFormatOptions(), type, Stream.Null)
+ is JsonFormatReader);
+ }
+ Assert.IsTrue(
+ MessageFormatFactory.CreateInputStream(new MessageFormatOptions() { DefaultContentType = "application/json" }, null, Stream.Null)
+ is JsonFormatReader);
+ }
+
+ [Test]
+ public void TestWriteJsonMimeTypes()
+ {
+ foreach (string type in JsonTypes)
+ {
+ Assert.IsTrue(
+ MessageFormatFactory.CreateOutputStream(new MessageFormatOptions(), type, Stream.Null)
+ is JsonFormatWriter);
+ }
+ Assert.IsTrue(
+ MessageFormatFactory.CreateOutputStream(new MessageFormatOptions() { DefaultContentType = "application/json" }, null, Stream.Null)
+ is JsonFormatWriter);
+ }
+
+ [Test]
+ public void TestReadXmlMimeTypes()
+ {
+ foreach (string type in XmlTypes)
+ {
+ Assert.IsTrue(
+ MessageFormatFactory.CreateInputStream(new MessageFormatOptions(), type, Stream.Null)
+ is XmlFormatReader);
+ }
+ Assert.IsTrue(
+ MessageFormatFactory.CreateInputStream(new MessageFormatOptions() { DefaultContentType = "application/xml" }, null, Stream.Null)
+ is XmlFormatReader);
+ }
+
+ [Test]
+ public void TestWriteXmlMimeTypes()
+ {
+ foreach (string type in XmlTypes)
+ {
+ Assert.IsTrue(
+ MessageFormatFactory.CreateOutputStream(new MessageFormatOptions(), type, Stream.Null)
+ is XmlFormatWriter);
+ }
+ Assert.IsTrue(
+ MessageFormatFactory.CreateOutputStream(new MessageFormatOptions() { DefaultContentType = "application/xml" }, null, Stream.Null)
+ is XmlFormatWriter);
+ }
+
+ [Test]
+ public void TestReadProtoMimeTypes()
+ {
+ foreach (string type in ProtobufTypes)
+ {
+ Assert.IsTrue(
+ MessageFormatFactory.CreateInputStream(new MessageFormatOptions(), type, Stream.Null)
+ is CodedInputStream);
+ }
+ Assert.IsTrue(
+ MessageFormatFactory.CreateInputStream(new MessageFormatOptions() { DefaultContentType = "application/vnd.google.protobuf" }, null, Stream.Null)
+ is CodedInputStream);
+ }
+
+ [Test]
+ public void TestWriteProtoMimeTypes()
+ {
+ foreach (string type in ProtobufTypes)
+ {
+ Assert.IsTrue(
+ MessageFormatFactory.CreateOutputStream(new MessageFormatOptions(), type, Stream.Null)
+ is CodedOutputStream);
+ }
+ Assert.IsTrue(
+ MessageFormatFactory.CreateOutputStream(new MessageFormatOptions() { DefaultContentType = "application/vnd.google.protobuf" }, null, Stream.Null)
+ is CodedOutputStream);
+ }
+
+ [Test]
+ public void TestMergeFromJsonType()
+ {
+ TestXmlMessage msg = Extensions.MergeFrom(new TestXmlMessage.Builder(),
+ new MessageFormatOptions(), "application/json", new MemoryStream(Encoding.UTF8.GetBytes(
+ Extensions.ToJson(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build())
+ )))
+ .Build();
+ Assert.AreEqual("a", msg.Text);
+ Assert.AreEqual(1, msg.Number);
+ }
+
+ [Test]
+ public void TestMergeFromXmlType()
+ {
+ TestXmlMessage msg = Extensions.MergeFrom(new TestXmlMessage.Builder(),
+ new MessageFormatOptions(), "application/xml", new MemoryStream(Encoding.UTF8.GetBytes(
+ Extensions.ToXml(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build())
+ )))
+ .Build();
+ Assert.AreEqual("a", msg.Text);
+ Assert.AreEqual(1, msg.Number);
+ }
+ [Test]
+ public void TestMergeFromProtoType()
+ {
+ TestXmlMessage msg = Extensions.MergeFrom(new TestXmlMessage.Builder(),
+ new MessageFormatOptions(), "application/vnd.google.protobuf", new MemoryStream(
+ TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build().ToByteArray()
+ ))
+ .Build();
+ Assert.AreEqual("a", msg.Text);
+ Assert.AreEqual(1, msg.Number);
+ }
+
+ [Test]
+ public void TestWriteToJsonType()
+ {
+ MemoryStream ms = new MemoryStream();
+ Extensions.WriteTo(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build(),
+ new MessageFormatOptions(), "application/json", ms);
+
+ Assert.AreEqual(@"{""text"":""a"",""number"":1}", Encoding.UTF8.GetString(ms.ToArray(), 0, (int)ms.Length));
+ }
+
+ [Test]
+ public void TestWriteToXmlType()
+ {
+ MemoryStream ms = new MemoryStream();
+ Extensions.WriteTo(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build(),
+ new MessageFormatOptions(), "application/xml", ms);
+
+ Assert.AreEqual("<root><text>a</text><number>1</number></root>", Encoding.UTF8.GetString(ms.ToArray(), 0, (int)ms.Length));
+ }
+ [Test]
+ public void TestWriteToProtoType()
+ {
+ MemoryStream ms = new MemoryStream();
+ Extensions.WriteTo(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build(),
+ new MessageFormatOptions(), "application/vnd.google.protobuf", ms);
+
+ byte[] bytes = TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build().ToByteArray();
+ Assert.AreEqual(bytes, ms.ToArray());
+ }
+
+ [Test]
+ public void TestXmlReaderOptions()
+ {
+ MemoryStream ms = new MemoryStream();
+ XmlFormatWriter.CreateInstance(ms)
+ .SetOptions(XmlWriterOptions.OutputNestedArrays)
+ .WriteMessage("my-root-node", TestXmlMessage.CreateBuilder().SetText("a").AddNumbers(1).AddNumbers(2).Build());
+ ms.Position = 0;
+
+ MessageFormatOptions options = new MessageFormatOptions()
+ {
+ XmlReaderOptions = XmlReaderOptions.ReadNestedArrays,
+ XmlReaderRootElementName = "my-root-node"
+ };
+
+ TestXmlMessage msg = Extensions.MergeFrom(new TestXmlMessage.Builder(),
+ options, "application/xml", ms)
+ .Build();
+
+ Assert.AreEqual("a", msg.Text);
+ Assert.AreEqual(1, msg.NumbersList[0]);
+ Assert.AreEqual(2, msg.NumbersList[1]);
+
+ }
+
+ [Test]
+ public void TestXmlWriterOptions()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder().SetText("a").AddNumbers(1).AddNumbers(2).Build();
+ MessageFormatOptions options = new MessageFormatOptions()
+ {
+ XmlWriterOptions = XmlWriterOptions.OutputNestedArrays,
+ XmlWriterRootElementName = "root-node"
+ };
+
+ MemoryStream ms = new MemoryStream();
+ Extensions.WriteTo(message, options, "application/xml", ms);
+ ms.Position = 0;
+
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ XmlFormatReader.CreateInstance(ms)
+ .SetOptions(XmlReaderOptions.ReadNestedArrays)
+ .Merge("root-node", builder);
+
+ Assert.AreEqual("a", builder.Text);
+ Assert.AreEqual(1, builder.NumbersList[0]);
+ Assert.AreEqual(2, builder.NumbersList[1]);
+ }
+
+ [Test]
+ public void TestJsonFormatted()
+ {
+ MemoryStream ms = new MemoryStream();
+ Extensions.WriteTo(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build(),
+ new MessageFormatOptions() { FormattedOutput = true }, "application/json", ms);
+
+ string expected = string.Format("{{{0} \"text\": \"a\",{0} \"number\": 1{0}}}", System.Environment.NewLine);
+ Assert.AreEqual(expected, Encoding.UTF8.GetString(ms.ToArray(), 0, (int)ms.Length));
+ }
+
+ [Test]
+ public void TestXmlFormatted()
+ {
+ MemoryStream ms = new MemoryStream();
+ Extensions.WriteTo(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build(),
+ new MessageFormatOptions() { FormattedOutput = true }, "application/xml", ms);
+
+ Assert.AreEqual("<root>\r\n <text>a</text>\r\n <number>1</number>\r\n</root>", Encoding.UTF8.GetString(ms.ToArray(), 0, (int)ms.Length));
+ }
+
+ [Test]
+ public void TestReadCustomMimeTypes()
+ {
+ var options = new MessageFormatOptions();
+ //Remove existing mime-type mappings
+ options.MimeInputTypes.Clear();
+ //Add our own
+ options.MimeInputTypes.Add("-custom-XML-mime-type-", XmlFormatReader.CreateInstance);
+ Assert.AreEqual(1, options.MimeInputTypes.Count);
+
+ Stream xmlStream = new MemoryStream(Encoding.UTF8.GetBytes(
+ Extensions.ToXml(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build())
+ ));
+
+ TestXmlMessage msg = Extensions.MergeFrom(new TestXmlMessage.Builder(),
+ options, "-custom-XML-mime-type-", xmlStream)
+ .Build();
+ Assert.AreEqual("a", msg.Text);
+ Assert.AreEqual(1, msg.Number);
+ }
+
+ [Test]
+ public void TestWriteToCustomType()
+ {
+ var options = new MessageFormatOptions();
+ //Remove existing mime-type mappings
+ options.MimeOutputTypes.Clear();
+ //Add our own
+ options.MimeOutputTypes.Add("-custom-XML-mime-type-", XmlFormatWriter.CreateInstance);
+
+ Assert.AreEqual(1, options.MimeOutputTypes.Count);
+
+ MemoryStream ms = new MemoryStream();
+ Extensions.WriteTo(TestXmlMessage.CreateBuilder().SetText("a").SetNumber(1).Build(),
+ options, "-custom-XML-mime-type-", ms);
+
+ Assert.AreEqual("<root><text>a</text><number>1</number></root>", Encoding.UTF8.GetString(ms.ToArray(), 0, (int)ms.Length));
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSize.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSize.cs
new file mode 100644
index 00000000..92309e92
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSize.cs
@@ -0,0 +1,4547 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google_size.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class GoogleSize {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage1, global::Google.ProtocolBuffers.TestProtos.SizeMessage1.Builder> internal__static_benchmarks_SizeMessage1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage1SubMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage, global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.Builder> internal__static_benchmarks_SizeMessage1SubMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Builder> internal__static_benchmarks_SizeMessage2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage2_Group1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.Builder> internal__static_benchmarks_SizeMessage2_Group1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage, global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.Builder> internal__static_benchmarks_SizeMessage2GroupedMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static GoogleSize() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChFnb29nbGVfc2l6ZS5wcm90bxIKYmVuY2htYXJrcyL2BgoMU2l6ZU1lc3Nh",
+ "Z2UxEg4KBmZpZWxkMRgBIAIoCRIOCgZmaWVsZDkYCSABKAkSDwoHZmllbGQx",
+ "OBgSIAEoCRIWCgdmaWVsZDgwGFAgASgIOgVmYWxzZRIVCgdmaWVsZDgxGFEg",
+ "ASgIOgR0cnVlEg4KBmZpZWxkMhgCIAIoBRIOCgZmaWVsZDMYAyACKAUSEQoI",
+ "ZmllbGQyODAYmAIgASgFEhEKBmZpZWxkNhgGIAEoBToBMBIPCgdmaWVsZDIy",
+ "GBYgASgDEg4KBmZpZWxkNBgEIAEoCRIOCgZmaWVsZDUYBSADKAYSFgoHZmll",
+ "bGQ1ORg7IAEoCDoFZmFsc2USDgoGZmllbGQ3GAcgASgJEg8KB2ZpZWxkMTYY",
+ "ECABKAUSFAoIZmllbGQxMzAYggEgASgFOgEwEhUKB2ZpZWxkMTIYDCABKAg6",
+ "BHRydWUSFQoHZmllbGQxNxgRIAEoCDoEdHJ1ZRIVCgdmaWVsZDEzGA0gASgI",
+ "OgR0cnVlEhUKB2ZpZWxkMTQYDiABKAg6BHRydWUSEwoIZmllbGQxMDQYaCAB",
+ "KAU6ATASEwoIZmllbGQxMDAYZCABKAU6ATASEwoIZmllbGQxMDEYZSABKAU6",
+ "ATASEAoIZmllbGQxMDIYZiABKAkSEAoIZmllbGQxMDMYZyABKAkSEgoHZmll",
+ "bGQyORgdIAEoBToBMBIWCgdmaWVsZDMwGB4gASgIOgVmYWxzZRITCgdmaWVs",
+ "ZDYwGDwgASgFOgItMRIVCghmaWVsZDI3MRiPAiABKAU6Ai0xEhUKCGZpZWxk",
+ "MjcyGJACIAEoBToCLTESEQoIZmllbGQxNTAYlgEgASgFEhIKB2ZpZWxkMjMY",
+ "FyABKAU6ATASFgoHZmllbGQyNBgYIAEoCDoFZmFsc2USEgoHZmllbGQyNRgZ",
+ "IAEoBToBMBIzCgdmaWVsZDE1GA8gASgLMiIuYmVuY2htYXJrcy5TaXplTWVz",
+ "c2FnZTFTdWJNZXNzYWdlEg8KB2ZpZWxkNzgYTiABKAgSEgoHZmllbGQ2NxhD",
+ "IAEoBToBMBIPCgdmaWVsZDY4GEQgASgFEhQKCGZpZWxkMTI4GIABIAEoBToB",
+ "MBIoCghmaWVsZDEyORiBASABKAk6FXh4eHh4eHh4eHh4eHh4eHh4eHh4eBIU",
+ "CghmaWVsZDEzMRiDASABKAU6ATAioQMKFlNpemVNZXNzYWdlMVN1Yk1lc3Nh",
+ "Z2USEQoGZmllbGQxGAEgASgFOgEwEhEKBmZpZWxkMhgCIAEoBToBMBIRCgZm",
+ "aWVsZDMYAyABKAU6ATASDwoHZmllbGQxNRgPIAEoCRIVCgdmaWVsZDEyGAwg",
+ "ASgIOgR0cnVlEg8KB2ZpZWxkMTMYDSABKAMSDwoHZmllbGQxNBgOIAEoAxIP",
+ "CgdmaWVsZDE2GBAgASgFEhIKB2ZpZWxkMTkYEyABKAU6ATISFQoHZmllbGQy",
+ "MBgUIAEoCDoEdHJ1ZRIVCgdmaWVsZDI4GBwgASgIOgR0cnVlEg8KB2ZpZWxk",
+ "MjEYFSABKAYSDwoHZmllbGQyMhgWIAEoBRIWCgdmaWVsZDIzGBcgASgIOgVm",
+ "YWxzZRIYCghmaWVsZDIwNhjOASABKAg6BWZhbHNlEhEKCGZpZWxkMjAzGMsB",
+ "IAEoBxIRCghmaWVsZDIwNBjMASABKAUSEQoIZmllbGQyMDUYzQEgASgJEhEK",
+ "CGZpZWxkMjA3GM8BIAEoBBIRCghmaWVsZDMwMBisAiABKAQixwcKDFNpemVN",
+ "ZXNzYWdlMhIOCgZmaWVsZDEYASABKAkSDgoGZmllbGQzGAMgASgDEg4KBmZp",
+ "ZWxkNBgEIAEoAxIPCgdmaWVsZDMwGB4gASgDEhYKB2ZpZWxkNzUYSyABKAg6",
+ "BWZhbHNlEg4KBmZpZWxkNhgGIAEoCRIOCgZmaWVsZDIYAiABKAwSEgoHZmll",
+ "bGQyMRgVIAEoBToBMBIPCgdmaWVsZDcxGEcgASgFEg8KB2ZpZWxkMjUYGSAB",
+ "KAISEwoIZmllbGQxMDkYbSABKAU6ATASFAoIZmllbGQyMTAY0gEgASgFOgEw",
+ "EhQKCGZpZWxkMjExGNMBIAEoBToBMBIUCghmaWVsZDIxMhjUASABKAU6ATAS",
+ "FAoIZmllbGQyMTMY1QEgASgFOgEwEhQKCGZpZWxkMjE2GNgBIAEoBToBMBIU",
+ "CghmaWVsZDIxNxjZASABKAU6ATASFAoIZmllbGQyMTgY2gEgASgFOgEwEhQK",
+ "CGZpZWxkMjIwGNwBIAEoBToBMBIUCghmaWVsZDIyMRjdASABKAU6ATASFAoI",
+ "ZmllbGQyMjIY3gEgASgCOgEwEg8KB2ZpZWxkNjMYPyABKAUSLwoGZ3JvdXAx",
+ "GAogAygKMh8uYmVuY2htYXJrcy5TaXplTWVzc2FnZTIuR3JvdXAxEhEKCGZp",
+ "ZWxkMTI4GIABIAMoCRIRCghmaWVsZDEzMRiDASABKAMSEAoIZmllbGQxMjcY",
+ "fyADKAkSEQoIZmllbGQxMjkYgQEgASgFEhEKCGZpZWxkMTMwGIIBIAMoAxIY",
+ "CghmaWVsZDIwNRjNASABKAg6BWZhbHNlEhgKCGZpZWxkMjA2GM4BIAEoCDoF",
+ "ZmFsc2UawgIKBkdyb3VwMRIPCgdmaWVsZDExGAsgAigCEg8KB2ZpZWxkMjYY",
+ "GiABKAISDwoHZmllbGQxMhgMIAEoCRIPCgdmaWVsZDEzGA0gASgJEg8KB2Zp",
+ "ZWxkMTQYDiADKAkSDwoHZmllbGQxNRgPIAIoBBIOCgZmaWVsZDUYBSABKAUS",
+ "DwoHZmllbGQyNxgbIAEoCRIPCgdmaWVsZDI4GBwgASgFEg8KB2ZpZWxkMjkY",
+ "HSABKAkSDwoHZmllbGQxNhgQIAEoCRIPCgdmaWVsZDIyGBYgAygJEg8KB2Zp",
+ "ZWxkNzMYSSADKAUSEgoHZmllbGQyMBgUIAEoBToBMBIPCgdmaWVsZDI0GBgg",
+ "ASgJEjcKB2ZpZWxkMzEYHyABKAsyJi5iZW5jaG1hcmtzLlNpemVNZXNzYWdl",
+ "Mkdyb3VwZWRNZXNzYWdlIt4BChpTaXplTWVzc2FnZTJHcm91cGVkTWVzc2Fn",
+ "ZRIOCgZmaWVsZDEYASABKAISDgoGZmllbGQyGAIgASgCEhEKBmZpZWxkMxgD",
+ "IAEoAjoBMBIOCgZmaWVsZDQYBCABKAgSDgoGZmllbGQ1GAUgASgIEhQKBmZp",
+ "ZWxkNhgGIAEoCDoEdHJ1ZRIVCgZmaWVsZDcYByABKAg6BWZhbHNlEg4KBmZp",
+ "ZWxkOBgIIAEoAhIOCgZmaWVsZDkYCSABKAgSDwoHZmllbGQxMBgKIAEoAhIP",
+ "CgdmaWVsZDExGAsgASgDQjJCCkdvb2dsZVNpemVIAqoCIUdvb2dsZS5Qcm90",
+ "b2NvbEJ1ZmZlcnMuVGVzdFByb3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_benchmarks_SizeMessage1__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_benchmarks_SizeMessage1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage1, global::Google.ProtocolBuffers.TestProtos.SizeMessage1.Builder>(internal__static_benchmarks_SizeMessage1__Descriptor,
+ new string[] { "Field1", "Field9", "Field18", "Field80", "Field81", "Field2", "Field3", "Field280", "Field6", "Field22", "Field4", "Field5", "Field59", "Field7", "Field16", "Field130", "Field12", "Field17", "Field13", "Field14", "Field104", "Field100", "Field101", "Field102", "Field103", "Field29", "Field30", "Field60", "Field271", "Field272", "Field150", "Field23", "Field24", "Field25", "Field15", "Field78", "Field67", "Field68", "Field128", "Field129", "Field131", });
+ internal__static_benchmarks_SizeMessage1SubMessage__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_benchmarks_SizeMessage1SubMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage, global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.Builder>(internal__static_benchmarks_SizeMessage1SubMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field15", "Field12", "Field13", "Field14", "Field16", "Field19", "Field20", "Field28", "Field21", "Field22", "Field23", "Field206", "Field203", "Field204", "Field205", "Field207", "Field300", });
+ internal__static_benchmarks_SizeMessage2__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_benchmarks_SizeMessage2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Builder>(internal__static_benchmarks_SizeMessage2__Descriptor,
+ new string[] { "Field1", "Field3", "Field4", "Field30", "Field75", "Field6", "Field2", "Field21", "Field71", "Field25", "Field109", "Field210", "Field211", "Field212", "Field213", "Field216", "Field217", "Field218", "Field220", "Field221", "Field222", "Field63", "Group1", "Field128", "Field131", "Field127", "Field129", "Field130", "Field205", "Field206", });
+ internal__static_benchmarks_SizeMessage2_Group1__Descriptor = internal__static_benchmarks_SizeMessage2__Descriptor.NestedTypes[0];
+ internal__static_benchmarks_SizeMessage2_Group1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.Builder>(internal__static_benchmarks_SizeMessage2_Group1__Descriptor,
+ new string[] { "Field11", "Field26", "Field12", "Field13", "Field14", "Field15", "Field5", "Field27", "Field28", "Field29", "Field16", "Field22", "Field73", "Field20", "Field24", "Field31", });
+ internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_benchmarks_SizeMessage2GroupedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage, global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.Builder>(internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field4", "Field5", "Field6", "Field7", "Field8", "Field9", "Field10", "Field11", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage1 : pb::GeneratedMessage<SizeMessage1, SizeMessage1.Builder> {
+ private SizeMessage1() { }
+ private static readonly SizeMessage1 defaultInstance = new SizeMessage1().MakeReadOnly();
+ public static SizeMessage1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SizeMessage1, SizeMessage1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage1__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private string field9_ = "";
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public string Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field18FieldNumber = 18;
+ private bool hasField18;
+ private string field18_ = "";
+ public bool HasField18 {
+ get { return hasField18; }
+ }
+ public string Field18 {
+ get { return field18_; }
+ }
+
+ public const int Field80FieldNumber = 80;
+ private bool hasField80;
+ private bool field80_;
+ public bool HasField80 {
+ get { return hasField80; }
+ }
+ public bool Field80 {
+ get { return field80_; }
+ }
+
+ public const int Field81FieldNumber = 81;
+ private bool hasField81;
+ private bool field81_ = true;
+ public bool HasField81 {
+ get { return hasField81; }
+ }
+ public bool Field81 {
+ get { return field81_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field280FieldNumber = 280;
+ private bool hasField280;
+ private int field280_;
+ public bool HasField280 {
+ get { return hasField280; }
+ }
+ public int Field280 {
+ get { return field280_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private int field6_;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public int Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private long field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public long Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private string field4_ = "";
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public string Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private pbc::PopsicleList<ulong> field5_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> Field5List {
+ get { return pbc::Lists.AsReadOnly(field5_); }
+ }
+ public int Field5Count {
+ get { return field5_.Count; }
+ }
+ public ulong GetField5(int index) {
+ return field5_[index];
+ }
+
+ public const int Field59FieldNumber = 59;
+ private bool hasField59;
+ private bool field59_;
+ public bool HasField59 {
+ get { return hasField59; }
+ }
+ public bool Field59 {
+ get { return field59_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private string field7_ = "";
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public string Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private bool hasField130;
+ private int field130_;
+ public bool HasField130 {
+ get { return hasField130; }
+ }
+ public int Field130 {
+ get { return field130_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field17FieldNumber = 17;
+ private bool hasField17;
+ private bool field17_ = true;
+ public bool HasField17 {
+ get { return hasField17; }
+ }
+ public bool Field17 {
+ get { return field17_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private bool field13_ = true;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public bool Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private bool field14_ = true;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public bool Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field104FieldNumber = 104;
+ private bool hasField104;
+ private int field104_;
+ public bool HasField104 {
+ get { return hasField104; }
+ }
+ public int Field104 {
+ get { return field104_; }
+ }
+
+ public const int Field100FieldNumber = 100;
+ private bool hasField100;
+ private int field100_;
+ public bool HasField100 {
+ get { return hasField100; }
+ }
+ public int Field100 {
+ get { return field100_; }
+ }
+
+ public const int Field101FieldNumber = 101;
+ private bool hasField101;
+ private int field101_;
+ public bool HasField101 {
+ get { return hasField101; }
+ }
+ public int Field101 {
+ get { return field101_; }
+ }
+
+ public const int Field102FieldNumber = 102;
+ private bool hasField102;
+ private string field102_ = "";
+ public bool HasField102 {
+ get { return hasField102; }
+ }
+ public string Field102 {
+ get { return field102_; }
+ }
+
+ public const int Field103FieldNumber = 103;
+ private bool hasField103;
+ private string field103_ = "";
+ public bool HasField103 {
+ get { return hasField103; }
+ }
+ public string Field103 {
+ get { return field103_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private int field29_;
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public int Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private bool field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public bool Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field60FieldNumber = 60;
+ private bool hasField60;
+ private int field60_ = -1;
+ public bool HasField60 {
+ get { return hasField60; }
+ }
+ public int Field60 {
+ get { return field60_; }
+ }
+
+ public const int Field271FieldNumber = 271;
+ private bool hasField271;
+ private int field271_ = -1;
+ public bool HasField271 {
+ get { return hasField271; }
+ }
+ public int Field271 {
+ get { return field271_; }
+ }
+
+ public const int Field272FieldNumber = 272;
+ private bool hasField272;
+ private int field272_ = -1;
+ public bool HasField272 {
+ get { return hasField272; }
+ }
+ public int Field272 {
+ get { return field272_; }
+ }
+
+ public const int Field150FieldNumber = 150;
+ private bool hasField150;
+ private int field150_;
+ public bool HasField150 {
+ get { return hasField150; }
+ }
+ public int Field150 {
+ get { return field150_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private int field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public int Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private bool field24_;
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public bool Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private int field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public int Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage Field15 {
+ get { return field15_ ?? global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.DefaultInstance; }
+ }
+
+ public const int Field78FieldNumber = 78;
+ private bool hasField78;
+ private bool field78_;
+ public bool HasField78 {
+ get { return hasField78; }
+ }
+ public bool Field78 {
+ get { return field78_; }
+ }
+
+ public const int Field67FieldNumber = 67;
+ private bool hasField67;
+ private int field67_;
+ public bool HasField67 {
+ get { return hasField67; }
+ }
+ public int Field67 {
+ get { return field67_; }
+ }
+
+ public const int Field68FieldNumber = 68;
+ private bool hasField68;
+ private int field68_;
+ public bool HasField68 {
+ get { return hasField68; }
+ }
+ public int Field68 {
+ get { return field68_; }
+ }
+
+ public const int Field128FieldNumber = 128;
+ private bool hasField128;
+ private int field128_;
+ public bool HasField128 {
+ get { return hasField128; }
+ }
+ public int Field128 {
+ get { return field128_; }
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private string field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public string Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private int field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public int Field131 {
+ get { return field131_; }
+ }
+
+ public static SizeMessage1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage1 MakeReadOnly() {
+ field5_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage1 result;
+
+ private SizeMessage1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage1 original = result;
+ result = new SizeMessage1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage1.Descriptor; }
+ }
+
+ public override SizeMessage1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage1.DefaultInstance; }
+ }
+
+ public override SizeMessage1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public string Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = "";
+ return this;
+ }
+
+ public bool HasField18 {
+ get { return result.hasField18; }
+ }
+ public string Field18 {
+ get { return result.Field18; }
+ set { SetField18(value); }
+ }
+ public Builder SetField18(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField18 = true;
+ result.field18_ = value;
+ return this;
+ }
+ public Builder ClearField18() {
+ PrepareBuilder();
+ result.hasField18 = false;
+ result.field18_ = "";
+ return this;
+ }
+
+ public bool HasField80 {
+ get { return result.hasField80; }
+ }
+ public bool Field80 {
+ get { return result.Field80; }
+ set { SetField80(value); }
+ }
+ public Builder SetField80(bool value) {
+ PrepareBuilder();
+ result.hasField80 = true;
+ result.field80_ = value;
+ return this;
+ }
+ public Builder ClearField80() {
+ PrepareBuilder();
+ result.hasField80 = false;
+ result.field80_ = false;
+ return this;
+ }
+
+ public bool HasField81 {
+ get { return result.hasField81; }
+ }
+ public bool Field81 {
+ get { return result.Field81; }
+ set { SetField81(value); }
+ }
+ public Builder SetField81(bool value) {
+ PrepareBuilder();
+ result.hasField81 = true;
+ result.field81_ = value;
+ return this;
+ }
+ public Builder ClearField81() {
+ PrepareBuilder();
+ result.hasField81 = false;
+ result.field81_ = true;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField280 {
+ get { return result.hasField280; }
+ }
+ public int Field280 {
+ get { return result.Field280; }
+ set { SetField280(value); }
+ }
+ public Builder SetField280(int value) {
+ PrepareBuilder();
+ result.hasField280 = true;
+ result.field280_ = value;
+ return this;
+ }
+ public Builder ClearField280() {
+ PrepareBuilder();
+ result.hasField280 = false;
+ result.field280_ = 0;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public int Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(int value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = 0;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public long Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(long value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public string Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> Field5List {
+ get { return PrepareBuilder().field5_; }
+ }
+ public int Field5Count {
+ get { return result.Field5Count; }
+ }
+ public ulong GetField5(int index) {
+ return result.GetField5(index);
+ }
+ public Builder SetField5(int index, ulong value) {
+ PrepareBuilder();
+ result.field5_[index] = value;
+ return this;
+ }
+ public Builder AddField5(ulong value) {
+ PrepareBuilder();
+ result.field5_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField5(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.field5_.Add(values);
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.field5_.Clear();
+ return this;
+ }
+
+ public bool HasField59 {
+ get { return result.hasField59; }
+ }
+ public bool Field59 {
+ get { return result.Field59; }
+ set { SetField59(value); }
+ }
+ public Builder SetField59(bool value) {
+ PrepareBuilder();
+ result.hasField59 = true;
+ result.field59_ = value;
+ return this;
+ }
+ public Builder ClearField59() {
+ PrepareBuilder();
+ result.hasField59 = false;
+ result.field59_ = false;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public string Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField130 {
+ get { return result.hasField130; }
+ }
+ public int Field130 {
+ get { return result.Field130; }
+ set { SetField130(value); }
+ }
+ public Builder SetField130(int value) {
+ PrepareBuilder();
+ result.hasField130 = true;
+ result.field130_ = value;
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.hasField130 = false;
+ result.field130_ = 0;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField17 {
+ get { return result.hasField17; }
+ }
+ public bool Field17 {
+ get { return result.Field17; }
+ set { SetField17(value); }
+ }
+ public Builder SetField17(bool value) {
+ PrepareBuilder();
+ result.hasField17 = true;
+ result.field17_ = value;
+ return this;
+ }
+ public Builder ClearField17() {
+ PrepareBuilder();
+ result.hasField17 = false;
+ result.field17_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public bool Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(bool value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = true;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public bool Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(bool value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = true;
+ return this;
+ }
+
+ public bool HasField104 {
+ get { return result.hasField104; }
+ }
+ public int Field104 {
+ get { return result.Field104; }
+ set { SetField104(value); }
+ }
+ public Builder SetField104(int value) {
+ PrepareBuilder();
+ result.hasField104 = true;
+ result.field104_ = value;
+ return this;
+ }
+ public Builder ClearField104() {
+ PrepareBuilder();
+ result.hasField104 = false;
+ result.field104_ = 0;
+ return this;
+ }
+
+ public bool HasField100 {
+ get { return result.hasField100; }
+ }
+ public int Field100 {
+ get { return result.Field100; }
+ set { SetField100(value); }
+ }
+ public Builder SetField100(int value) {
+ PrepareBuilder();
+ result.hasField100 = true;
+ result.field100_ = value;
+ return this;
+ }
+ public Builder ClearField100() {
+ PrepareBuilder();
+ result.hasField100 = false;
+ result.field100_ = 0;
+ return this;
+ }
+
+ public bool HasField101 {
+ get { return result.hasField101; }
+ }
+ public int Field101 {
+ get { return result.Field101; }
+ set { SetField101(value); }
+ }
+ public Builder SetField101(int value) {
+ PrepareBuilder();
+ result.hasField101 = true;
+ result.field101_ = value;
+ return this;
+ }
+ public Builder ClearField101() {
+ PrepareBuilder();
+ result.hasField101 = false;
+ result.field101_ = 0;
+ return this;
+ }
+
+ public bool HasField102 {
+ get { return result.hasField102; }
+ }
+ public string Field102 {
+ get { return result.Field102; }
+ set { SetField102(value); }
+ }
+ public Builder SetField102(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField102 = true;
+ result.field102_ = value;
+ return this;
+ }
+ public Builder ClearField102() {
+ PrepareBuilder();
+ result.hasField102 = false;
+ result.field102_ = "";
+ return this;
+ }
+
+ public bool HasField103 {
+ get { return result.hasField103; }
+ }
+ public string Field103 {
+ get { return result.Field103; }
+ set { SetField103(value); }
+ }
+ public Builder SetField103(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField103 = true;
+ result.field103_ = value;
+ return this;
+ }
+ public Builder ClearField103() {
+ PrepareBuilder();
+ result.hasField103 = false;
+ result.field103_ = "";
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public int Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(int value) {
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = 0;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public bool Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(bool value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = false;
+ return this;
+ }
+
+ public bool HasField60 {
+ get { return result.hasField60; }
+ }
+ public int Field60 {
+ get { return result.Field60; }
+ set { SetField60(value); }
+ }
+ public Builder SetField60(int value) {
+ PrepareBuilder();
+ result.hasField60 = true;
+ result.field60_ = value;
+ return this;
+ }
+ public Builder ClearField60() {
+ PrepareBuilder();
+ result.hasField60 = false;
+ result.field60_ = -1;
+ return this;
+ }
+
+ public bool HasField271 {
+ get { return result.hasField271; }
+ }
+ public int Field271 {
+ get { return result.Field271; }
+ set { SetField271(value); }
+ }
+ public Builder SetField271(int value) {
+ PrepareBuilder();
+ result.hasField271 = true;
+ result.field271_ = value;
+ return this;
+ }
+ public Builder ClearField271() {
+ PrepareBuilder();
+ result.hasField271 = false;
+ result.field271_ = -1;
+ return this;
+ }
+
+ public bool HasField272 {
+ get { return result.hasField272; }
+ }
+ public int Field272 {
+ get { return result.Field272; }
+ set { SetField272(value); }
+ }
+ public Builder SetField272(int value) {
+ PrepareBuilder();
+ result.hasField272 = true;
+ result.field272_ = value;
+ return this;
+ }
+ public Builder ClearField272() {
+ PrepareBuilder();
+ result.hasField272 = false;
+ result.field272_ = -1;
+ return this;
+ }
+
+ public bool HasField150 {
+ get { return result.hasField150; }
+ }
+ public int Field150 {
+ get { return result.Field150; }
+ set { SetField150(value); }
+ }
+ public Builder SetField150(int value) {
+ PrepareBuilder();
+ result.hasField150 = true;
+ result.field150_ = value;
+ return this;
+ }
+ public Builder ClearField150() {
+ PrepareBuilder();
+ result.hasField150 = false;
+ result.field150_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public int Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(int value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public bool Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(bool value) {
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = false;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public int Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(int value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField15(global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField15 &&
+ result.field15_ != global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.DefaultInstance) {
+ result.field15_ = global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.CreateBuilder(result.field15_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field15_ = value;
+ }
+ result.hasField15 = true;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = null;
+ return this;
+ }
+
+ public bool HasField78 {
+ get { return result.hasField78; }
+ }
+ public bool Field78 {
+ get { return result.Field78; }
+ set { SetField78(value); }
+ }
+ public Builder SetField78(bool value) {
+ PrepareBuilder();
+ result.hasField78 = true;
+ result.field78_ = value;
+ return this;
+ }
+ public Builder ClearField78() {
+ PrepareBuilder();
+ result.hasField78 = false;
+ result.field78_ = false;
+ return this;
+ }
+
+ public bool HasField67 {
+ get { return result.hasField67; }
+ }
+ public int Field67 {
+ get { return result.Field67; }
+ set { SetField67(value); }
+ }
+ public Builder SetField67(int value) {
+ PrepareBuilder();
+ result.hasField67 = true;
+ result.field67_ = value;
+ return this;
+ }
+ public Builder ClearField67() {
+ PrepareBuilder();
+ result.hasField67 = false;
+ result.field67_ = 0;
+ return this;
+ }
+
+ public bool HasField68 {
+ get { return result.hasField68; }
+ }
+ public int Field68 {
+ get { return result.Field68; }
+ set { SetField68(value); }
+ }
+ public Builder SetField68(int value) {
+ PrepareBuilder();
+ result.hasField68 = true;
+ result.field68_ = value;
+ return this;
+ }
+ public Builder ClearField68() {
+ PrepareBuilder();
+ result.hasField68 = false;
+ result.field68_ = 0;
+ return this;
+ }
+
+ public bool HasField128 {
+ get { return result.hasField128; }
+ }
+ public int Field128 {
+ get { return result.Field128; }
+ set { SetField128(value); }
+ }
+ public Builder SetField128(int value) {
+ PrepareBuilder();
+ result.hasField128 = true;
+ result.field128_ = value;
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.hasField128 = false;
+ result.field128_ = 0;
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public string Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public int Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(int value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0;
+ return this;
+ }
+ }
+ static SizeMessage1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSize.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage1SubMessage : pb::GeneratedMessage<SizeMessage1SubMessage, SizeMessage1SubMessage.Builder> {
+ private SizeMessage1SubMessage() { }
+ private static readonly SizeMessage1SubMessage defaultInstance = new SizeMessage1SubMessage().MakeReadOnly();
+ public static SizeMessage1SubMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage1SubMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage1SubMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage1SubMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SizeMessage1SubMessage, SizeMessage1SubMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage1SubMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private int field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public int Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private string field15_ = "";
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public string Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private long field13_;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public long Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private long field14_;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public long Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field19FieldNumber = 19;
+ private bool hasField19;
+ private int field19_ = 2;
+ public bool HasField19 {
+ get { return hasField19; }
+ }
+ public int Field19 {
+ get { return field19_; }
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private bool field20_ = true;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public bool Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private bool field28_ = true;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public bool Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private ulong field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ public ulong Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private int field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public int Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private bool field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public bool Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public const int Field203FieldNumber = 203;
+ private bool hasField203;
+ private uint field203_;
+ public bool HasField203 {
+ get { return hasField203; }
+ }
+ public uint Field203 {
+ get { return field203_; }
+ }
+
+ public const int Field204FieldNumber = 204;
+ private bool hasField204;
+ private int field204_;
+ public bool HasField204 {
+ get { return hasField204; }
+ }
+ public int Field204 {
+ get { return field204_; }
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private string field205_ = "";
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public string Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field207FieldNumber = 207;
+ private bool hasField207;
+ private ulong field207_;
+ public bool HasField207 {
+ get { return hasField207; }
+ }
+ public ulong Field207 {
+ get { return field207_; }
+ }
+
+ public const int Field300FieldNumber = 300;
+ private bool hasField300;
+ private ulong field300_;
+ public bool HasField300 {
+ get { return hasField300; }
+ }
+ public ulong Field300 {
+ get { return field300_; }
+ }
+
+ public static SizeMessage1SubMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage1SubMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage1SubMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage1SubMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage1SubMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage1SubMessage result;
+
+ private SizeMessage1SubMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage1SubMessage original = result;
+ result = new SizeMessage1SubMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage1SubMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.Descriptor; }
+ }
+
+ public override SizeMessage1SubMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage1SubMessage.DefaultInstance; }
+ }
+
+ public override SizeMessage1SubMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public int Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(int value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public string Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = "";
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public long Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(long value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = 0L;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public long Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(long value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = 0L;
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField19 {
+ get { return result.hasField19; }
+ }
+ public int Field19 {
+ get { return result.Field19; }
+ set { SetField19(value); }
+ }
+ public Builder SetField19(int value) {
+ PrepareBuilder();
+ result.hasField19 = true;
+ result.field19_ = value;
+ return this;
+ }
+ public Builder ClearField19() {
+ PrepareBuilder();
+ result.hasField19 = false;
+ result.field19_ = 2;
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public bool Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(bool value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = true;
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public bool Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(bool value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = true;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ public ulong Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ public Builder SetField21(ulong value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0UL;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public int Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(int value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public bool Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(bool value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+
+ public bool HasField203 {
+ get { return result.hasField203; }
+ }
+ public uint Field203 {
+ get { return result.Field203; }
+ set { SetField203(value); }
+ }
+ public Builder SetField203(uint value) {
+ PrepareBuilder();
+ result.hasField203 = true;
+ result.field203_ = value;
+ return this;
+ }
+ public Builder ClearField203() {
+ PrepareBuilder();
+ result.hasField203 = false;
+ result.field203_ = 0;
+ return this;
+ }
+
+ public bool HasField204 {
+ get { return result.hasField204; }
+ }
+ public int Field204 {
+ get { return result.Field204; }
+ set { SetField204(value); }
+ }
+ public Builder SetField204(int value) {
+ PrepareBuilder();
+ result.hasField204 = true;
+ result.field204_ = value;
+ return this;
+ }
+ public Builder ClearField204() {
+ PrepareBuilder();
+ result.hasField204 = false;
+ result.field204_ = 0;
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public string Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = "";
+ return this;
+ }
+
+ public bool HasField207 {
+ get { return result.hasField207; }
+ }
+ public ulong Field207 {
+ get { return result.Field207; }
+ set { SetField207(value); }
+ }
+ public Builder SetField207(ulong value) {
+ PrepareBuilder();
+ result.hasField207 = true;
+ result.field207_ = value;
+ return this;
+ }
+ public Builder ClearField207() {
+ PrepareBuilder();
+ result.hasField207 = false;
+ result.field207_ = 0UL;
+ return this;
+ }
+
+ public bool HasField300 {
+ get { return result.hasField300; }
+ }
+ public ulong Field300 {
+ get { return result.Field300; }
+ set { SetField300(value); }
+ }
+ public Builder SetField300(ulong value) {
+ PrepareBuilder();
+ result.hasField300 = true;
+ result.field300_ = value;
+ return this;
+ }
+ public Builder ClearField300() {
+ PrepareBuilder();
+ result.hasField300 = false;
+ result.field300_ = 0UL;
+ return this;
+ }
+ }
+ static SizeMessage1SubMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSize.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage2 : pb::GeneratedMessage<SizeMessage2, SizeMessage2.Builder> {
+ private SizeMessage2() { }
+ private static readonly SizeMessage2 defaultInstance = new SizeMessage2().MakeReadOnly();
+ public static SizeMessage2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SizeMessage2, SizeMessage2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
+ private Group1() { }
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
+ public static Group1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2_Group1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Group1, Group1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2_Group1__FieldAccessorTable; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private float field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public float Field11 {
+ get { return field11_; }
+ }
+
+ public const int Field26FieldNumber = 26;
+ private bool hasField26;
+ private float field26_;
+ public bool HasField26 {
+ get { return hasField26; }
+ }
+ public float Field26 {
+ get { return field26_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private string field12_ = "";
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public string Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private string field13_ = "";
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public string Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private pbc::PopsicleList<string> field14_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field14List {
+ get { return pbc::Lists.AsReadOnly(field14_); }
+ }
+ public int Field14Count {
+ get { return field14_.Count; }
+ }
+ public string GetField14(int index) {
+ return field14_[index];
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private ulong field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public ulong Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private int field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public int Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field27FieldNumber = 27;
+ private bool hasField27;
+ private string field27_ = "";
+ public bool HasField27 {
+ get { return hasField27; }
+ }
+ public string Field27 {
+ get { return field27_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private int field28_;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public int Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private string field29_ = "";
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public string Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private string field16_ = "";
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public string Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private pbc::PopsicleList<string> field22_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field22List {
+ get { return pbc::Lists.AsReadOnly(field22_); }
+ }
+ public int Field22Count {
+ get { return field22_.Count; }
+ }
+ public string GetField22(int index) {
+ return field22_[index];
+ }
+
+ public const int Field73FieldNumber = 73;
+ private pbc::PopsicleList<int> field73_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> Field73List {
+ get { return pbc::Lists.AsReadOnly(field73_); }
+ }
+ public int Field73Count {
+ get { return field73_.Count; }
+ }
+ public int GetField73(int index) {
+ return field73_[index];
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private int field20_;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public int Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private string field24_ = "";
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public string Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field31FieldNumber = 31;
+ private bool hasField31;
+ private global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage field31_;
+ public bool HasField31 {
+ get { return hasField31; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage Field31 {
+ get { return field31_ ?? global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public static Group1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group1 MakeReadOnly() {
+ field14_.MakeReadOnly();
+ field22_.MakeReadOnly();
+ field73_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Group1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group1 result;
+
+ private Group1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group1 original = result;
+ result = new Group1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.Descriptor; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.DefaultInstance; }
+ }
+
+ public override Group1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public float Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(float value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0F;
+ return this;
+ }
+
+ public bool HasField26 {
+ get { return result.hasField26; }
+ }
+ public float Field26 {
+ get { return result.Field26; }
+ set { SetField26(value); }
+ }
+ public Builder SetField26(float value) {
+ PrepareBuilder();
+ result.hasField26 = true;
+ result.field26_ = value;
+ return this;
+ }
+ public Builder ClearField26() {
+ PrepareBuilder();
+ result.hasField26 = false;
+ result.field26_ = 0F;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public string Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = "";
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public string Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field14List {
+ get { return PrepareBuilder().field14_; }
+ }
+ public int Field14Count {
+ get { return result.Field14Count; }
+ }
+ public string GetField14(int index) {
+ return result.GetField14(index);
+ }
+ public Builder SetField14(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_[index] = value;
+ return this;
+ }
+ public Builder AddField14(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField14(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field14_.Add(values);
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.field14_.Clear();
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public ulong Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(ulong value) {
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = 0UL;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public int Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(int value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = 0;
+ return this;
+ }
+
+ public bool HasField27 {
+ get { return result.hasField27; }
+ }
+ public string Field27 {
+ get { return result.Field27; }
+ set { SetField27(value); }
+ }
+ public Builder SetField27(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField27 = true;
+ result.field27_ = value;
+ return this;
+ }
+ public Builder ClearField27() {
+ PrepareBuilder();
+ result.hasField27 = false;
+ result.field27_ = "";
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public int Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(int value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = 0;
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public string Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public string Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field22List {
+ get { return PrepareBuilder().field22_; }
+ }
+ public int Field22Count {
+ get { return result.Field22Count; }
+ }
+ public string GetField22(int index) {
+ return result.GetField22(index);
+ }
+ public Builder SetField22(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_[index] = value;
+ return this;
+ }
+ public Builder AddField22(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField22(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field22_.Add(values);
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.field22_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> Field73List {
+ get { return PrepareBuilder().field73_; }
+ }
+ public int Field73Count {
+ get { return result.Field73Count; }
+ }
+ public int GetField73(int index) {
+ return result.GetField73(index);
+ }
+ public Builder SetField73(int index, int value) {
+ PrepareBuilder();
+ result.field73_[index] = value;
+ return this;
+ }
+ public Builder AddField73(int value) {
+ PrepareBuilder();
+ result.field73_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField73(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.field73_.Add(values);
+ return this;
+ }
+ public Builder ClearField73() {
+ PrepareBuilder();
+ result.field73_.Clear();
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public int Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(int value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public string Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = "";
+ return this;
+ }
+
+ public bool HasField31 {
+ get { return result.hasField31; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage Field31 {
+ get { return result.Field31; }
+ set { SetField31(value); }
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = value;
+ return this;
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField31(global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField31 &&
+ result.field31_ != global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.DefaultInstance) {
+ result.field31_ = global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.CreateBuilder(result.field31_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field31_ = value;
+ }
+ result.hasField31 = true;
+ return this;
+ }
+ public Builder ClearField31() {
+ PrepareBuilder();
+ result.hasField31 = false;
+ result.field31_ = null;
+ return this;
+ }
+ }
+ static Group1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSize.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private long field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public long Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private long field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public long Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private long field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public long Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field75FieldNumber = 75;
+ private bool hasField75;
+ private bool field75_;
+ public bool HasField75 {
+ get { return hasField75; }
+ }
+ public bool Field75 {
+ get { return field75_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private string field6_ = "";
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public string Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private pb::ByteString field2_ = pb::ByteString.Empty;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private int field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ public int Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field71FieldNumber = 71;
+ private bool hasField71;
+ private int field71_;
+ public bool HasField71 {
+ get { return hasField71; }
+ }
+ public int Field71 {
+ get { return field71_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private float field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public float Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field109FieldNumber = 109;
+ private bool hasField109;
+ private int field109_;
+ public bool HasField109 {
+ get { return hasField109; }
+ }
+ public int Field109 {
+ get { return field109_; }
+ }
+
+ public const int Field210FieldNumber = 210;
+ private bool hasField210;
+ private int field210_;
+ public bool HasField210 {
+ get { return hasField210; }
+ }
+ public int Field210 {
+ get { return field210_; }
+ }
+
+ public const int Field211FieldNumber = 211;
+ private bool hasField211;
+ private int field211_;
+ public bool HasField211 {
+ get { return hasField211; }
+ }
+ public int Field211 {
+ get { return field211_; }
+ }
+
+ public const int Field212FieldNumber = 212;
+ private bool hasField212;
+ private int field212_;
+ public bool HasField212 {
+ get { return hasField212; }
+ }
+ public int Field212 {
+ get { return field212_; }
+ }
+
+ public const int Field213FieldNumber = 213;
+ private bool hasField213;
+ private int field213_;
+ public bool HasField213 {
+ get { return hasField213; }
+ }
+ public int Field213 {
+ get { return field213_; }
+ }
+
+ public const int Field216FieldNumber = 216;
+ private bool hasField216;
+ private int field216_;
+ public bool HasField216 {
+ get { return hasField216; }
+ }
+ public int Field216 {
+ get { return field216_; }
+ }
+
+ public const int Field217FieldNumber = 217;
+ private bool hasField217;
+ private int field217_;
+ public bool HasField217 {
+ get { return hasField217; }
+ }
+ public int Field217 {
+ get { return field217_; }
+ }
+
+ public const int Field218FieldNumber = 218;
+ private bool hasField218;
+ private int field218_;
+ public bool HasField218 {
+ get { return hasField218; }
+ }
+ public int Field218 {
+ get { return field218_; }
+ }
+
+ public const int Field220FieldNumber = 220;
+ private bool hasField220;
+ private int field220_;
+ public bool HasField220 {
+ get { return hasField220; }
+ }
+ public int Field220 {
+ get { return field220_; }
+ }
+
+ public const int Field221FieldNumber = 221;
+ private bool hasField221;
+ private int field221_;
+ public bool HasField221 {
+ get { return hasField221; }
+ }
+ public int Field221 {
+ get { return field221_; }
+ }
+
+ public const int Field222FieldNumber = 222;
+ private bool hasField222;
+ private float field222_;
+ public bool HasField222 {
+ get { return hasField222; }
+ }
+ public float Field222 {
+ get { return field222_; }
+ }
+
+ public const int Field63FieldNumber = 63;
+ private bool hasField63;
+ private int field63_;
+ public bool HasField63 {
+ get { return hasField63; }
+ }
+ public int Field63 {
+ get { return field63_; }
+ }
+
+ public const int Group1FieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1> group1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1> Group1List {
+ get { return group1_; }
+ }
+ public int Group1Count {
+ get { return group1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1 GetGroup1(int index) {
+ return group1_[index];
+ }
+
+ public const int Field128FieldNumber = 128;
+ private pbc::PopsicleList<string> field128_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field128List {
+ get { return pbc::Lists.AsReadOnly(field128_); }
+ }
+ public int Field128Count {
+ get { return field128_.Count; }
+ }
+ public string GetField128(int index) {
+ return field128_[index];
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private long field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public long Field131 {
+ get { return field131_; }
+ }
+
+ public const int Field127FieldNumber = 127;
+ private pbc::PopsicleList<string> field127_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field127List {
+ get { return pbc::Lists.AsReadOnly(field127_); }
+ }
+ public int Field127Count {
+ get { return field127_.Count; }
+ }
+ public string GetField127(int index) {
+ return field127_[index];
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private int field129_;
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public int Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private pbc::PopsicleList<long> field130_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> Field130List {
+ get { return pbc::Lists.AsReadOnly(field130_); }
+ }
+ public int Field130Count {
+ get { return field130_.Count; }
+ }
+ public long GetField130(int index) {
+ return field130_[index];
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private bool field205_;
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public bool Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public static SizeMessage2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage2 MakeReadOnly() {
+ group1_.MakeReadOnly();
+ field128_.MakeReadOnly();
+ field127_.MakeReadOnly();
+ field130_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage2 result;
+
+ private SizeMessage2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage2 original = result;
+ result = new SizeMessage2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Descriptor; }
+ }
+
+ public override SizeMessage2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2.DefaultInstance; }
+ }
+
+ public override SizeMessage2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public long Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(long value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public long Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(long value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = 0L;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public long Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(long value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = 0L;
+ return this;
+ }
+
+ public bool HasField75 {
+ get { return result.hasField75; }
+ }
+ public bool Field75 {
+ get { return result.Field75; }
+ set { SetField75(value); }
+ }
+ public Builder SetField75(bool value) {
+ PrepareBuilder();
+ result.hasField75 = true;
+ result.field75_ = value;
+ return this;
+ }
+ public Builder ClearField75() {
+ PrepareBuilder();
+ result.hasField75 = false;
+ result.field75_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public string Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = "";
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ public int Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ public Builder SetField21(int value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0;
+ return this;
+ }
+
+ public bool HasField71 {
+ get { return result.hasField71; }
+ }
+ public int Field71 {
+ get { return result.Field71; }
+ set { SetField71(value); }
+ }
+ public Builder SetField71(int value) {
+ PrepareBuilder();
+ result.hasField71 = true;
+ result.field71_ = value;
+ return this;
+ }
+ public Builder ClearField71() {
+ PrepareBuilder();
+ result.hasField71 = false;
+ result.field71_ = 0;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public float Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(float value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0F;
+ return this;
+ }
+
+ public bool HasField109 {
+ get { return result.hasField109; }
+ }
+ public int Field109 {
+ get { return result.Field109; }
+ set { SetField109(value); }
+ }
+ public Builder SetField109(int value) {
+ PrepareBuilder();
+ result.hasField109 = true;
+ result.field109_ = value;
+ return this;
+ }
+ public Builder ClearField109() {
+ PrepareBuilder();
+ result.hasField109 = false;
+ result.field109_ = 0;
+ return this;
+ }
+
+ public bool HasField210 {
+ get { return result.hasField210; }
+ }
+ public int Field210 {
+ get { return result.Field210; }
+ set { SetField210(value); }
+ }
+ public Builder SetField210(int value) {
+ PrepareBuilder();
+ result.hasField210 = true;
+ result.field210_ = value;
+ return this;
+ }
+ public Builder ClearField210() {
+ PrepareBuilder();
+ result.hasField210 = false;
+ result.field210_ = 0;
+ return this;
+ }
+
+ public bool HasField211 {
+ get { return result.hasField211; }
+ }
+ public int Field211 {
+ get { return result.Field211; }
+ set { SetField211(value); }
+ }
+ public Builder SetField211(int value) {
+ PrepareBuilder();
+ result.hasField211 = true;
+ result.field211_ = value;
+ return this;
+ }
+ public Builder ClearField211() {
+ PrepareBuilder();
+ result.hasField211 = false;
+ result.field211_ = 0;
+ return this;
+ }
+
+ public bool HasField212 {
+ get { return result.hasField212; }
+ }
+ public int Field212 {
+ get { return result.Field212; }
+ set { SetField212(value); }
+ }
+ public Builder SetField212(int value) {
+ PrepareBuilder();
+ result.hasField212 = true;
+ result.field212_ = value;
+ return this;
+ }
+ public Builder ClearField212() {
+ PrepareBuilder();
+ result.hasField212 = false;
+ result.field212_ = 0;
+ return this;
+ }
+
+ public bool HasField213 {
+ get { return result.hasField213; }
+ }
+ public int Field213 {
+ get { return result.Field213; }
+ set { SetField213(value); }
+ }
+ public Builder SetField213(int value) {
+ PrepareBuilder();
+ result.hasField213 = true;
+ result.field213_ = value;
+ return this;
+ }
+ public Builder ClearField213() {
+ PrepareBuilder();
+ result.hasField213 = false;
+ result.field213_ = 0;
+ return this;
+ }
+
+ public bool HasField216 {
+ get { return result.hasField216; }
+ }
+ public int Field216 {
+ get { return result.Field216; }
+ set { SetField216(value); }
+ }
+ public Builder SetField216(int value) {
+ PrepareBuilder();
+ result.hasField216 = true;
+ result.field216_ = value;
+ return this;
+ }
+ public Builder ClearField216() {
+ PrepareBuilder();
+ result.hasField216 = false;
+ result.field216_ = 0;
+ return this;
+ }
+
+ public bool HasField217 {
+ get { return result.hasField217; }
+ }
+ public int Field217 {
+ get { return result.Field217; }
+ set { SetField217(value); }
+ }
+ public Builder SetField217(int value) {
+ PrepareBuilder();
+ result.hasField217 = true;
+ result.field217_ = value;
+ return this;
+ }
+ public Builder ClearField217() {
+ PrepareBuilder();
+ result.hasField217 = false;
+ result.field217_ = 0;
+ return this;
+ }
+
+ public bool HasField218 {
+ get { return result.hasField218; }
+ }
+ public int Field218 {
+ get { return result.Field218; }
+ set { SetField218(value); }
+ }
+ public Builder SetField218(int value) {
+ PrepareBuilder();
+ result.hasField218 = true;
+ result.field218_ = value;
+ return this;
+ }
+ public Builder ClearField218() {
+ PrepareBuilder();
+ result.hasField218 = false;
+ result.field218_ = 0;
+ return this;
+ }
+
+ public bool HasField220 {
+ get { return result.hasField220; }
+ }
+ public int Field220 {
+ get { return result.Field220; }
+ set { SetField220(value); }
+ }
+ public Builder SetField220(int value) {
+ PrepareBuilder();
+ result.hasField220 = true;
+ result.field220_ = value;
+ return this;
+ }
+ public Builder ClearField220() {
+ PrepareBuilder();
+ result.hasField220 = false;
+ result.field220_ = 0;
+ return this;
+ }
+
+ public bool HasField221 {
+ get { return result.hasField221; }
+ }
+ public int Field221 {
+ get { return result.Field221; }
+ set { SetField221(value); }
+ }
+ public Builder SetField221(int value) {
+ PrepareBuilder();
+ result.hasField221 = true;
+ result.field221_ = value;
+ return this;
+ }
+ public Builder ClearField221() {
+ PrepareBuilder();
+ result.hasField221 = false;
+ result.field221_ = 0;
+ return this;
+ }
+
+ public bool HasField222 {
+ get { return result.hasField222; }
+ }
+ public float Field222 {
+ get { return result.Field222; }
+ set { SetField222(value); }
+ }
+ public Builder SetField222(float value) {
+ PrepareBuilder();
+ result.hasField222 = true;
+ result.field222_ = value;
+ return this;
+ }
+ public Builder ClearField222() {
+ PrepareBuilder();
+ result.hasField222 = false;
+ result.field222_ = 0F;
+ return this;
+ }
+
+ public bool HasField63 {
+ get { return result.hasField63; }
+ }
+ public int Field63 {
+ get { return result.Field63; }
+ set { SetField63(value); }
+ }
+ public Builder SetField63(int value) {
+ PrepareBuilder();
+ result.hasField63 = true;
+ result.field63_ = value;
+ return this;
+ }
+ public Builder ClearField63() {
+ PrepareBuilder();
+ result.hasField63 = false;
+ result.field63_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1> Group1List {
+ get { return PrepareBuilder().group1_; }
+ }
+ public int Group1Count {
+ get { return result.Group1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1 GetGroup1(int index) {
+ return result.GetGroup1(index);
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_[index] = value;
+ return this;
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_.Add(value);
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.SizeMessage2.Types.Group1> values) {
+ PrepareBuilder();
+ result.group1_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup1() {
+ PrepareBuilder();
+ result.group1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field128List {
+ get { return PrepareBuilder().field128_; }
+ }
+ public int Field128Count {
+ get { return result.Field128Count; }
+ }
+ public string GetField128(int index) {
+ return result.GetField128(index);
+ }
+ public Builder SetField128(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_[index] = value;
+ return this;
+ }
+ public Builder AddField128(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField128(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field128_.Add(values);
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.field128_.Clear();
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public long Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(long value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0L;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field127List {
+ get { return PrepareBuilder().field127_; }
+ }
+ public int Field127Count {
+ get { return result.Field127Count; }
+ }
+ public string GetField127(int index) {
+ return result.GetField127(index);
+ }
+ public Builder SetField127(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_[index] = value;
+ return this;
+ }
+ public Builder AddField127(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField127(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field127_.Add(values);
+ return this;
+ }
+ public Builder ClearField127() {
+ PrepareBuilder();
+ result.field127_.Clear();
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public int Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(int value) {
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> Field130List {
+ get { return PrepareBuilder().field130_; }
+ }
+ public int Field130Count {
+ get { return result.Field130Count; }
+ }
+ public long GetField130(int index) {
+ return result.GetField130(index);
+ }
+ public Builder SetField130(int index, long value) {
+ PrepareBuilder();
+ result.field130_[index] = value;
+ return this;
+ }
+ public Builder AddField130(long value) {
+ PrepareBuilder();
+ result.field130_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField130(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.field130_.Add(values);
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.field130_.Clear();
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public bool Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(bool value) {
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+ }
+ static SizeMessage2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSize.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage2GroupedMessage : pb::GeneratedMessage<SizeMessage2GroupedMessage, SizeMessage2GroupedMessage.Builder> {
+ private SizeMessage2GroupedMessage() { }
+ private static readonly SizeMessage2GroupedMessage defaultInstance = new SizeMessage2GroupedMessage().MakeReadOnly();
+ public static SizeMessage2GroupedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage2GroupedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage2GroupedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SizeMessage2GroupedMessage, SizeMessage2GroupedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSize.internal__static_benchmarks_SizeMessage2GroupedMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private float field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public float Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private float field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public float Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private float field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public float Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private bool field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public bool Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private bool field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public bool Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private bool field6_ = true;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public bool Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private bool field7_;
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public bool Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field8FieldNumber = 8;
+ private bool hasField8;
+ private float field8_;
+ public bool HasField8 {
+ get { return hasField8; }
+ }
+ public float Field8 {
+ get { return field8_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private bool field9_;
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public bool Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field10FieldNumber = 10;
+ private bool hasField10;
+ private float field10_;
+ public bool HasField10 {
+ get { return hasField10; }
+ }
+ public float Field10 {
+ get { return field10_; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private long field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public long Field11 {
+ get { return field11_; }
+ }
+
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage2GroupedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage2GroupedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SizeMessage2GroupedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage2GroupedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage2GroupedMessage result;
+
+ private SizeMessage2GroupedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage2GroupedMessage original = result;
+ result = new SizeMessage2GroupedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage2GroupedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.Descriptor; }
+ }
+
+ public override SizeMessage2GroupedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SizeMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public override SizeMessage2GroupedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public float Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(float value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0F;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public float Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(float value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0F;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public float Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(float value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0F;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public bool Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(bool value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = false;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public bool Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(bool value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public bool Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(bool value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = true;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public bool Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(bool value) {
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = false;
+ return this;
+ }
+
+ public bool HasField8 {
+ get { return result.hasField8; }
+ }
+ public float Field8 {
+ get { return result.Field8; }
+ set { SetField8(value); }
+ }
+ public Builder SetField8(float value) {
+ PrepareBuilder();
+ result.hasField8 = true;
+ result.field8_ = value;
+ return this;
+ }
+ public Builder ClearField8() {
+ PrepareBuilder();
+ result.hasField8 = false;
+ result.field8_ = 0F;
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public bool Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(bool value) {
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = false;
+ return this;
+ }
+
+ public bool HasField10 {
+ get { return result.hasField10; }
+ }
+ public float Field10 {
+ get { return result.Field10; }
+ set { SetField10(value); }
+ }
+ public Builder SetField10(float value) {
+ PrepareBuilder();
+ result.hasField10 = true;
+ result.field10_ = value;
+ return this;
+ }
+ public Builder ClearField10() {
+ PrepareBuilder();
+ result.hasField10 = false;
+ result.field10_ = 0F;
+ return this;
+ }
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public long Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(long value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0L;
+ return this;
+ }
+ }
+ static SizeMessage2GroupedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSize.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSpeed.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSpeed.cs
new file mode 100644
index 00000000..aa9b90f0
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/GoogleSpeed.cs
@@ -0,0 +1,6612 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google_speed.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class GoogleSpeed {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage1, global::Google.ProtocolBuffers.TestProtos.SpeedMessage1.Builder> internal__static_benchmarks_SpeedMessage1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage, global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Builder> internal__static_benchmarks_SpeedMessage1SubMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Builder> internal__static_benchmarks_SpeedMessage2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage2_Group1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.Builder> internal__static_benchmarks_SpeedMessage2_Group1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Builder> internal__static_benchmarks_SpeedMessage2GroupedMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static GoogleSpeed() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChJnb29nbGVfc3BlZWQucHJvdG8SCmJlbmNobWFya3Mi+AYKDVNwZWVkTWVz",
+ "c2FnZTESDgoGZmllbGQxGAEgAigJEg4KBmZpZWxkORgJIAEoCRIPCgdmaWVs",
+ "ZDE4GBIgASgJEhYKB2ZpZWxkODAYUCABKAg6BWZhbHNlEhUKB2ZpZWxkODEY",
+ "USABKAg6BHRydWUSDgoGZmllbGQyGAIgAigFEg4KBmZpZWxkMxgDIAIoBRIR",
+ "CghmaWVsZDI4MBiYAiABKAUSEQoGZmllbGQ2GAYgASgFOgEwEg8KB2ZpZWxk",
+ "MjIYFiABKAMSDgoGZmllbGQ0GAQgASgJEg4KBmZpZWxkNRgFIAMoBhIWCgdm",
+ "aWVsZDU5GDsgASgIOgVmYWxzZRIOCgZmaWVsZDcYByABKAkSDwoHZmllbGQx",
+ "NhgQIAEoBRIUCghmaWVsZDEzMBiCASABKAU6ATASFQoHZmllbGQxMhgMIAEo",
+ "CDoEdHJ1ZRIVCgdmaWVsZDE3GBEgASgIOgR0cnVlEhUKB2ZpZWxkMTMYDSAB",
+ "KAg6BHRydWUSFQoHZmllbGQxNBgOIAEoCDoEdHJ1ZRITCghmaWVsZDEwNBho",
+ "IAEoBToBMBITCghmaWVsZDEwMBhkIAEoBToBMBITCghmaWVsZDEwMRhlIAEo",
+ "BToBMBIQCghmaWVsZDEwMhhmIAEoCRIQCghmaWVsZDEwMxhnIAEoCRISCgdm",
+ "aWVsZDI5GB0gASgFOgEwEhYKB2ZpZWxkMzAYHiABKAg6BWZhbHNlEhMKB2Zp",
+ "ZWxkNjAYPCABKAU6Ai0xEhUKCGZpZWxkMjcxGI8CIAEoBToCLTESFQoIZmll",
+ "bGQyNzIYkAIgASgFOgItMRIRCghmaWVsZDE1MBiWASABKAUSEgoHZmllbGQy",
+ "MxgXIAEoBToBMBIWCgdmaWVsZDI0GBggASgIOgVmYWxzZRISCgdmaWVsZDI1",
+ "GBkgASgFOgEwEjQKB2ZpZWxkMTUYDyABKAsyIy5iZW5jaG1hcmtzLlNwZWVk",
+ "TWVzc2FnZTFTdWJNZXNzYWdlEg8KB2ZpZWxkNzgYTiABKAgSEgoHZmllbGQ2",
+ "NxhDIAEoBToBMBIPCgdmaWVsZDY4GEQgASgFEhQKCGZpZWxkMTI4GIABIAEo",
+ "BToBMBIoCghmaWVsZDEyORiBASABKAk6FXh4eHh4eHh4eHh4eHh4eHh4eHh4",
+ "eBIUCghmaWVsZDEzMRiDASABKAU6ATAiogMKF1NwZWVkTWVzc2FnZTFTdWJN",
+ "ZXNzYWdlEhEKBmZpZWxkMRgBIAEoBToBMBIRCgZmaWVsZDIYAiABKAU6ATAS",
+ "EQoGZmllbGQzGAMgASgFOgEwEg8KB2ZpZWxkMTUYDyABKAkSFQoHZmllbGQx",
+ "MhgMIAEoCDoEdHJ1ZRIPCgdmaWVsZDEzGA0gASgDEg8KB2ZpZWxkMTQYDiAB",
+ "KAMSDwoHZmllbGQxNhgQIAEoBRISCgdmaWVsZDE5GBMgASgFOgEyEhUKB2Zp",
+ "ZWxkMjAYFCABKAg6BHRydWUSFQoHZmllbGQyOBgcIAEoCDoEdHJ1ZRIPCgdm",
+ "aWVsZDIxGBUgASgGEg8KB2ZpZWxkMjIYFiABKAUSFgoHZmllbGQyMxgXIAEo",
+ "CDoFZmFsc2USGAoIZmllbGQyMDYYzgEgASgIOgVmYWxzZRIRCghmaWVsZDIw",
+ "MxjLASABKAcSEQoIZmllbGQyMDQYzAEgASgFEhEKCGZpZWxkMjA1GM0BIAEo",
+ "CRIRCghmaWVsZDIwNxjPASABKAQSEQoIZmllbGQzMDAYrAIgASgEIsoHCg1T",
+ "cGVlZE1lc3NhZ2UyEg4KBmZpZWxkMRgBIAEoCRIOCgZmaWVsZDMYAyABKAMS",
+ "DgoGZmllbGQ0GAQgASgDEg8KB2ZpZWxkMzAYHiABKAMSFgoHZmllbGQ3NRhL",
+ "IAEoCDoFZmFsc2USDgoGZmllbGQ2GAYgASgJEg4KBmZpZWxkMhgCIAEoDBIS",
+ "CgdmaWVsZDIxGBUgASgFOgEwEg8KB2ZpZWxkNzEYRyABKAUSDwoHZmllbGQy",
+ "NRgZIAEoAhITCghmaWVsZDEwORhtIAEoBToBMBIUCghmaWVsZDIxMBjSASAB",
+ "KAU6ATASFAoIZmllbGQyMTEY0wEgASgFOgEwEhQKCGZpZWxkMjEyGNQBIAEo",
+ "BToBMBIUCghmaWVsZDIxMxjVASABKAU6ATASFAoIZmllbGQyMTYY2AEgASgF",
+ "OgEwEhQKCGZpZWxkMjE3GNkBIAEoBToBMBIUCghmaWVsZDIxOBjaASABKAU6",
+ "ATASFAoIZmllbGQyMjAY3AEgASgFOgEwEhQKCGZpZWxkMjIxGN0BIAEoBToB",
+ "MBIUCghmaWVsZDIyMhjeASABKAI6ATASDwoHZmllbGQ2Mxg/IAEoBRIwCgZn",
+ "cm91cDEYCiADKAoyIC5iZW5jaG1hcmtzLlNwZWVkTWVzc2FnZTIuR3JvdXAx",
+ "EhEKCGZpZWxkMTI4GIABIAMoCRIRCghmaWVsZDEzMRiDASABKAMSEAoIZmll",
+ "bGQxMjcYfyADKAkSEQoIZmllbGQxMjkYgQEgASgFEhEKCGZpZWxkMTMwGIIB",
+ "IAMoAxIYCghmaWVsZDIwNRjNASABKAg6BWZhbHNlEhgKCGZpZWxkMjA2GM4B",
+ "IAEoCDoFZmFsc2UawwIKBkdyb3VwMRIPCgdmaWVsZDExGAsgAigCEg8KB2Zp",
+ "ZWxkMjYYGiABKAISDwoHZmllbGQxMhgMIAEoCRIPCgdmaWVsZDEzGA0gASgJ",
+ "Eg8KB2ZpZWxkMTQYDiADKAkSDwoHZmllbGQxNRgPIAIoBBIOCgZmaWVsZDUY",
+ "BSABKAUSDwoHZmllbGQyNxgbIAEoCRIPCgdmaWVsZDI4GBwgASgFEg8KB2Zp",
+ "ZWxkMjkYHSABKAkSDwoHZmllbGQxNhgQIAEoCRIPCgdmaWVsZDIyGBYgAygJ",
+ "Eg8KB2ZpZWxkNzMYSSADKAUSEgoHZmllbGQyMBgUIAEoBToBMBIPCgdmaWVs",
+ "ZDI0GBggASgJEjgKB2ZpZWxkMzEYHyABKAsyJy5iZW5jaG1hcmtzLlNwZWVk",
+ "TWVzc2FnZTJHcm91cGVkTWVzc2FnZSLfAQobU3BlZWRNZXNzYWdlMkdyb3Vw",
+ "ZWRNZXNzYWdlEg4KBmZpZWxkMRgBIAEoAhIOCgZmaWVsZDIYAiABKAISEQoG",
+ "ZmllbGQzGAMgASgCOgEwEg4KBmZpZWxkNBgEIAEoCBIOCgZmaWVsZDUYBSAB",
+ "KAgSFAoGZmllbGQ2GAYgASgIOgR0cnVlEhUKBmZpZWxkNxgHIAEoCDoFZmFs",
+ "c2USDgoGZmllbGQ4GAggASgCEg4KBmZpZWxkORgJIAEoCBIPCgdmaWVsZDEw",
+ "GAogASgCEg8KB2ZpZWxkMTEYCyABKANCM0ILR29vZ2xlU3BlZWRIAaoCIUdv",
+ "b2dsZS5Qcm90b2NvbEJ1ZmZlcnMuVGVzdFByb3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_benchmarks_SpeedMessage1__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_benchmarks_SpeedMessage1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage1, global::Google.ProtocolBuffers.TestProtos.SpeedMessage1.Builder>(internal__static_benchmarks_SpeedMessage1__Descriptor,
+ new string[] { "Field1", "Field9", "Field18", "Field80", "Field81", "Field2", "Field3", "Field280", "Field6", "Field22", "Field4", "Field5", "Field59", "Field7", "Field16", "Field130", "Field12", "Field17", "Field13", "Field14", "Field104", "Field100", "Field101", "Field102", "Field103", "Field29", "Field30", "Field60", "Field271", "Field272", "Field150", "Field23", "Field24", "Field25", "Field15", "Field78", "Field67", "Field68", "Field128", "Field129", "Field131", });
+ internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_benchmarks_SpeedMessage1SubMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage, global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Builder>(internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field15", "Field12", "Field13", "Field14", "Field16", "Field19", "Field20", "Field28", "Field21", "Field22", "Field23", "Field206", "Field203", "Field204", "Field205", "Field207", "Field300", });
+ internal__static_benchmarks_SpeedMessage2__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_benchmarks_SpeedMessage2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Builder>(internal__static_benchmarks_SpeedMessage2__Descriptor,
+ new string[] { "Field1", "Field3", "Field4", "Field30", "Field75", "Field6", "Field2", "Field21", "Field71", "Field25", "Field109", "Field210", "Field211", "Field212", "Field213", "Field216", "Field217", "Field218", "Field220", "Field221", "Field222", "Field63", "Group1", "Field128", "Field131", "Field127", "Field129", "Field130", "Field205", "Field206", });
+ internal__static_benchmarks_SpeedMessage2_Group1__Descriptor = internal__static_benchmarks_SpeedMessage2__Descriptor.NestedTypes[0];
+ internal__static_benchmarks_SpeedMessage2_Group1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.Builder>(internal__static_benchmarks_SpeedMessage2_Group1__Descriptor,
+ new string[] { "Field11", "Field26", "Field12", "Field13", "Field14", "Field15", "Field5", "Field27", "Field28", "Field29", "Field16", "Field22", "Field73", "Field20", "Field24", "Field31", });
+ internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_benchmarks_SpeedMessage2GroupedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Builder>(internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field4", "Field5", "Field6", "Field7", "Field8", "Field9", "Field10", "Field11", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage1 : pb::GeneratedMessage<SpeedMessage1, SpeedMessage1.Builder> {
+ private SpeedMessage1() { }
+ private static readonly SpeedMessage1 defaultInstance = new SpeedMessage1().MakeReadOnly();
+ private static readonly string[] _speedMessage1FieldNames = new string[] { "field1", "field100", "field101", "field102", "field103", "field104", "field12", "field128", "field129", "field13", "field130", "field131", "field14", "field15", "field150", "field16", "field17", "field18", "field2", "field22", "field23", "field24", "field25", "field271", "field272", "field280", "field29", "field3", "field30", "field4", "field5", "field59", "field6", "field60", "field67", "field68", "field7", "field78", "field80", "field81", "field9" };
+ private static readonly uint[] _speedMessage1FieldTags = new uint[] { 10, 800, 808, 818, 826, 832, 96, 1024, 1034, 104, 1040, 1048, 112, 122, 1200, 128, 136, 146, 16, 176, 184, 192, 200, 2168, 2176, 2240, 232, 24, 240, 34, 41, 472, 48, 480, 536, 544, 58, 624, 640, 648, 74 };
+ public static SpeedMessage1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SpeedMessage1, SpeedMessage1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage1__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private string field9_ = "";
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public string Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field18FieldNumber = 18;
+ private bool hasField18;
+ private string field18_ = "";
+ public bool HasField18 {
+ get { return hasField18; }
+ }
+ public string Field18 {
+ get { return field18_; }
+ }
+
+ public const int Field80FieldNumber = 80;
+ private bool hasField80;
+ private bool field80_;
+ public bool HasField80 {
+ get { return hasField80; }
+ }
+ public bool Field80 {
+ get { return field80_; }
+ }
+
+ public const int Field81FieldNumber = 81;
+ private bool hasField81;
+ private bool field81_ = true;
+ public bool HasField81 {
+ get { return hasField81; }
+ }
+ public bool Field81 {
+ get { return field81_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field280FieldNumber = 280;
+ private bool hasField280;
+ private int field280_;
+ public bool HasField280 {
+ get { return hasField280; }
+ }
+ public int Field280 {
+ get { return field280_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private int field6_;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public int Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private long field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public long Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private string field4_ = "";
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public string Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private pbc::PopsicleList<ulong> field5_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> Field5List {
+ get { return pbc::Lists.AsReadOnly(field5_); }
+ }
+ public int Field5Count {
+ get { return field5_.Count; }
+ }
+ public ulong GetField5(int index) {
+ return field5_[index];
+ }
+
+ public const int Field59FieldNumber = 59;
+ private bool hasField59;
+ private bool field59_;
+ public bool HasField59 {
+ get { return hasField59; }
+ }
+ public bool Field59 {
+ get { return field59_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private string field7_ = "";
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public string Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private bool hasField130;
+ private int field130_;
+ public bool HasField130 {
+ get { return hasField130; }
+ }
+ public int Field130 {
+ get { return field130_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field17FieldNumber = 17;
+ private bool hasField17;
+ private bool field17_ = true;
+ public bool HasField17 {
+ get { return hasField17; }
+ }
+ public bool Field17 {
+ get { return field17_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private bool field13_ = true;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public bool Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private bool field14_ = true;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public bool Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field104FieldNumber = 104;
+ private bool hasField104;
+ private int field104_;
+ public bool HasField104 {
+ get { return hasField104; }
+ }
+ public int Field104 {
+ get { return field104_; }
+ }
+
+ public const int Field100FieldNumber = 100;
+ private bool hasField100;
+ private int field100_;
+ public bool HasField100 {
+ get { return hasField100; }
+ }
+ public int Field100 {
+ get { return field100_; }
+ }
+
+ public const int Field101FieldNumber = 101;
+ private bool hasField101;
+ private int field101_;
+ public bool HasField101 {
+ get { return hasField101; }
+ }
+ public int Field101 {
+ get { return field101_; }
+ }
+
+ public const int Field102FieldNumber = 102;
+ private bool hasField102;
+ private string field102_ = "";
+ public bool HasField102 {
+ get { return hasField102; }
+ }
+ public string Field102 {
+ get { return field102_; }
+ }
+
+ public const int Field103FieldNumber = 103;
+ private bool hasField103;
+ private string field103_ = "";
+ public bool HasField103 {
+ get { return hasField103; }
+ }
+ public string Field103 {
+ get { return field103_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private int field29_;
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public int Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private bool field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public bool Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field60FieldNumber = 60;
+ private bool hasField60;
+ private int field60_ = -1;
+ public bool HasField60 {
+ get { return hasField60; }
+ }
+ public int Field60 {
+ get { return field60_; }
+ }
+
+ public const int Field271FieldNumber = 271;
+ private bool hasField271;
+ private int field271_ = -1;
+ public bool HasField271 {
+ get { return hasField271; }
+ }
+ public int Field271 {
+ get { return field271_; }
+ }
+
+ public const int Field272FieldNumber = 272;
+ private bool hasField272;
+ private int field272_ = -1;
+ public bool HasField272 {
+ get { return hasField272; }
+ }
+ public int Field272 {
+ get { return field272_; }
+ }
+
+ public const int Field150FieldNumber = 150;
+ private bool hasField150;
+ private int field150_;
+ public bool HasField150 {
+ get { return hasField150; }
+ }
+ public int Field150 {
+ get { return field150_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private int field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public int Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private bool field24_;
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public bool Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private int field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public int Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage Field15 {
+ get { return field15_ ?? global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance; }
+ }
+
+ public const int Field78FieldNumber = 78;
+ private bool hasField78;
+ private bool field78_;
+ public bool HasField78 {
+ get { return hasField78; }
+ }
+ public bool Field78 {
+ get { return field78_; }
+ }
+
+ public const int Field67FieldNumber = 67;
+ private bool hasField67;
+ private int field67_;
+ public bool HasField67 {
+ get { return hasField67; }
+ }
+ public int Field67 {
+ get { return field67_; }
+ }
+
+ public const int Field68FieldNumber = 68;
+ private bool hasField68;
+ private int field68_;
+ public bool HasField68 {
+ get { return hasField68; }
+ }
+ public int Field68 {
+ get { return field68_; }
+ }
+
+ public const int Field128FieldNumber = 128;
+ private bool hasField128;
+ private int field128_;
+ public bool HasField128 {
+ get { return hasField128; }
+ }
+ public int Field128 {
+ get { return field128_; }
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private string field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public string Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private int field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public int Field131 {
+ get { return field131_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasField1) return false;
+ if (!hasField2) return false;
+ if (!hasField3) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage1FieldNames;
+ if (hasField1) {
+ output.WriteString(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteInt32(2, field_names[18], Field2);
+ }
+ if (hasField3) {
+ output.WriteInt32(3, field_names[27], Field3);
+ }
+ if (hasField4) {
+ output.WriteString(4, field_names[29], Field4);
+ }
+ if (field5_.Count > 0) {
+ output.WriteFixed64Array(5, field_names[30], field5_);
+ }
+ if (hasField6) {
+ output.WriteInt32(6, field_names[32], Field6);
+ }
+ if (hasField7) {
+ output.WriteString(7, field_names[36], Field7);
+ }
+ if (hasField9) {
+ output.WriteString(9, field_names[40], Field9);
+ }
+ if (hasField12) {
+ output.WriteBool(12, field_names[6], Field12);
+ }
+ if (hasField13) {
+ output.WriteBool(13, field_names[9], Field13);
+ }
+ if (hasField14) {
+ output.WriteBool(14, field_names[12], Field14);
+ }
+ if (hasField15) {
+ output.WriteMessage(15, field_names[13], Field15);
+ }
+ if (hasField16) {
+ output.WriteInt32(16, field_names[15], Field16);
+ }
+ if (hasField17) {
+ output.WriteBool(17, field_names[16], Field17);
+ }
+ if (hasField18) {
+ output.WriteString(18, field_names[17], Field18);
+ }
+ if (hasField22) {
+ output.WriteInt64(22, field_names[19], Field22);
+ }
+ if (hasField23) {
+ output.WriteInt32(23, field_names[20], Field23);
+ }
+ if (hasField24) {
+ output.WriteBool(24, field_names[21], Field24);
+ }
+ if (hasField25) {
+ output.WriteInt32(25, field_names[22], Field25);
+ }
+ if (hasField29) {
+ output.WriteInt32(29, field_names[26], Field29);
+ }
+ if (hasField30) {
+ output.WriteBool(30, field_names[28], Field30);
+ }
+ if (hasField59) {
+ output.WriteBool(59, field_names[31], Field59);
+ }
+ if (hasField60) {
+ output.WriteInt32(60, field_names[33], Field60);
+ }
+ if (hasField67) {
+ output.WriteInt32(67, field_names[34], Field67);
+ }
+ if (hasField68) {
+ output.WriteInt32(68, field_names[35], Field68);
+ }
+ if (hasField78) {
+ output.WriteBool(78, field_names[37], Field78);
+ }
+ if (hasField80) {
+ output.WriteBool(80, field_names[38], Field80);
+ }
+ if (hasField81) {
+ output.WriteBool(81, field_names[39], Field81);
+ }
+ if (hasField100) {
+ output.WriteInt32(100, field_names[1], Field100);
+ }
+ if (hasField101) {
+ output.WriteInt32(101, field_names[2], Field101);
+ }
+ if (hasField102) {
+ output.WriteString(102, field_names[3], Field102);
+ }
+ if (hasField103) {
+ output.WriteString(103, field_names[4], Field103);
+ }
+ if (hasField104) {
+ output.WriteInt32(104, field_names[5], Field104);
+ }
+ if (hasField128) {
+ output.WriteInt32(128, field_names[7], Field128);
+ }
+ if (hasField129) {
+ output.WriteString(129, field_names[8], Field129);
+ }
+ if (hasField130) {
+ output.WriteInt32(130, field_names[10], Field130);
+ }
+ if (hasField131) {
+ output.WriteInt32(131, field_names[11], Field131);
+ }
+ if (hasField150) {
+ output.WriteInt32(150, field_names[14], Field150);
+ }
+ if (hasField271) {
+ output.WriteInt32(271, field_names[23], Field271);
+ }
+ if (hasField272) {
+ output.WriteInt32(272, field_names[24], Field272);
+ }
+ if (hasField280) {
+ output.WriteInt32(280, field_names[25], Field280);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Field1);
+ }
+ if (hasField9) {
+ size += pb::CodedOutputStream.ComputeStringSize(9, Field9);
+ }
+ if (hasField18) {
+ size += pb::CodedOutputStream.ComputeStringSize(18, Field18);
+ }
+ if (hasField80) {
+ size += pb::CodedOutputStream.ComputeBoolSize(80, Field80);
+ }
+ if (hasField81) {
+ size += pb::CodedOutputStream.ComputeBoolSize(81, Field81);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Field2);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Field3);
+ }
+ if (hasField280) {
+ size += pb::CodedOutputStream.ComputeInt32Size(280, Field280);
+ }
+ if (hasField6) {
+ size += pb::CodedOutputStream.ComputeInt32Size(6, Field6);
+ }
+ if (hasField22) {
+ size += pb::CodedOutputStream.ComputeInt64Size(22, Field22);
+ }
+ if (hasField4) {
+ size += pb::CodedOutputStream.ComputeStringSize(4, Field4);
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * field5_.Count;
+ size += dataSize;
+ size += 1 * field5_.Count;
+ }
+ if (hasField59) {
+ size += pb::CodedOutputStream.ComputeBoolSize(59, Field59);
+ }
+ if (hasField7) {
+ size += pb::CodedOutputStream.ComputeStringSize(7, Field7);
+ }
+ if (hasField16) {
+ size += pb::CodedOutputStream.ComputeInt32Size(16, Field16);
+ }
+ if (hasField130) {
+ size += pb::CodedOutputStream.ComputeInt32Size(130, Field130);
+ }
+ if (hasField12) {
+ size += pb::CodedOutputStream.ComputeBoolSize(12, Field12);
+ }
+ if (hasField17) {
+ size += pb::CodedOutputStream.ComputeBoolSize(17, Field17);
+ }
+ if (hasField13) {
+ size += pb::CodedOutputStream.ComputeBoolSize(13, Field13);
+ }
+ if (hasField14) {
+ size += pb::CodedOutputStream.ComputeBoolSize(14, Field14);
+ }
+ if (hasField104) {
+ size += pb::CodedOutputStream.ComputeInt32Size(104, Field104);
+ }
+ if (hasField100) {
+ size += pb::CodedOutputStream.ComputeInt32Size(100, Field100);
+ }
+ if (hasField101) {
+ size += pb::CodedOutputStream.ComputeInt32Size(101, Field101);
+ }
+ if (hasField102) {
+ size += pb::CodedOutputStream.ComputeStringSize(102, Field102);
+ }
+ if (hasField103) {
+ size += pb::CodedOutputStream.ComputeStringSize(103, Field103);
+ }
+ if (hasField29) {
+ size += pb::CodedOutputStream.ComputeInt32Size(29, Field29);
+ }
+ if (hasField30) {
+ size += pb::CodedOutputStream.ComputeBoolSize(30, Field30);
+ }
+ if (hasField60) {
+ size += pb::CodedOutputStream.ComputeInt32Size(60, Field60);
+ }
+ if (hasField271) {
+ size += pb::CodedOutputStream.ComputeInt32Size(271, Field271);
+ }
+ if (hasField272) {
+ size += pb::CodedOutputStream.ComputeInt32Size(272, Field272);
+ }
+ if (hasField150) {
+ size += pb::CodedOutputStream.ComputeInt32Size(150, Field150);
+ }
+ if (hasField23) {
+ size += pb::CodedOutputStream.ComputeInt32Size(23, Field23);
+ }
+ if (hasField24) {
+ size += pb::CodedOutputStream.ComputeBoolSize(24, Field24);
+ }
+ if (hasField25) {
+ size += pb::CodedOutputStream.ComputeInt32Size(25, Field25);
+ }
+ if (hasField15) {
+ size += pb::CodedOutputStream.ComputeMessageSize(15, Field15);
+ }
+ if (hasField78) {
+ size += pb::CodedOutputStream.ComputeBoolSize(78, Field78);
+ }
+ if (hasField67) {
+ size += pb::CodedOutputStream.ComputeInt32Size(67, Field67);
+ }
+ if (hasField68) {
+ size += pb::CodedOutputStream.ComputeInt32Size(68, Field68);
+ }
+ if (hasField128) {
+ size += pb::CodedOutputStream.ComputeInt32Size(128, Field128);
+ }
+ if (hasField129) {
+ size += pb::CodedOutputStream.ComputeStringSize(129, Field129);
+ }
+ if (hasField131) {
+ size += pb::CodedOutputStream.ComputeInt32Size(131, Field131);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage1 MakeReadOnly() {
+ field5_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage1 result;
+
+ private SpeedMessage1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage1 original = result;
+ result = new SpeedMessage1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage1.Descriptor; }
+ }
+
+ public override SpeedMessage1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage1.DefaultInstance; }
+ }
+
+ public override SpeedMessage1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage1) {
+ return MergeFrom((SpeedMessage1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage1 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SpeedMessage1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField9) {
+ Field9 = other.Field9;
+ }
+ if (other.HasField18) {
+ Field18 = other.Field18;
+ }
+ if (other.HasField80) {
+ Field80 = other.Field80;
+ }
+ if (other.HasField81) {
+ Field81 = other.Field81;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField280) {
+ Field280 = other.Field280;
+ }
+ if (other.HasField6) {
+ Field6 = other.Field6;
+ }
+ if (other.HasField22) {
+ Field22 = other.Field22;
+ }
+ if (other.HasField4) {
+ Field4 = other.Field4;
+ }
+ if (other.field5_.Count != 0) {
+ result.field5_.Add(other.field5_);
+ }
+ if (other.HasField59) {
+ Field59 = other.Field59;
+ }
+ if (other.HasField7) {
+ Field7 = other.Field7;
+ }
+ if (other.HasField16) {
+ Field16 = other.Field16;
+ }
+ if (other.HasField130) {
+ Field130 = other.Field130;
+ }
+ if (other.HasField12) {
+ Field12 = other.Field12;
+ }
+ if (other.HasField17) {
+ Field17 = other.Field17;
+ }
+ if (other.HasField13) {
+ Field13 = other.Field13;
+ }
+ if (other.HasField14) {
+ Field14 = other.Field14;
+ }
+ if (other.HasField104) {
+ Field104 = other.Field104;
+ }
+ if (other.HasField100) {
+ Field100 = other.Field100;
+ }
+ if (other.HasField101) {
+ Field101 = other.Field101;
+ }
+ if (other.HasField102) {
+ Field102 = other.Field102;
+ }
+ if (other.HasField103) {
+ Field103 = other.Field103;
+ }
+ if (other.HasField29) {
+ Field29 = other.Field29;
+ }
+ if (other.HasField30) {
+ Field30 = other.Field30;
+ }
+ if (other.HasField60) {
+ Field60 = other.Field60;
+ }
+ if (other.HasField271) {
+ Field271 = other.Field271;
+ }
+ if (other.HasField272) {
+ Field272 = other.Field272;
+ }
+ if (other.HasField150) {
+ Field150 = other.Field150;
+ }
+ if (other.HasField23) {
+ Field23 = other.Field23;
+ }
+ if (other.HasField24) {
+ Field24 = other.Field24;
+ }
+ if (other.HasField25) {
+ Field25 = other.Field25;
+ }
+ if (other.HasField15) {
+ MergeField15(other.Field15);
+ }
+ if (other.HasField78) {
+ Field78 = other.Field78;
+ }
+ if (other.HasField67) {
+ Field67 = other.Field67;
+ }
+ if (other.HasField68) {
+ Field68 = other.Field68;
+ }
+ if (other.HasField128) {
+ Field128 = other.Field128;
+ }
+ if (other.HasField129) {
+ Field129 = other.Field129;
+ }
+ if (other.HasField131) {
+ Field131 = other.Field131;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasField1 = input.ReadString(ref result.field1_);
+ break;
+ }
+ case 16: {
+ result.hasField2 = input.ReadInt32(ref result.field2_);
+ break;
+ }
+ case 24: {
+ result.hasField3 = input.ReadInt32(ref result.field3_);
+ break;
+ }
+ case 34: {
+ result.hasField4 = input.ReadString(ref result.field4_);
+ break;
+ }
+ case 42:
+ case 41: {
+ input.ReadFixed64Array(tag, field_name, result.field5_);
+ break;
+ }
+ case 48: {
+ result.hasField6 = input.ReadInt32(ref result.field6_);
+ break;
+ }
+ case 58: {
+ result.hasField7 = input.ReadString(ref result.field7_);
+ break;
+ }
+ case 74: {
+ result.hasField9 = input.ReadString(ref result.field9_);
+ break;
+ }
+ case 96: {
+ result.hasField12 = input.ReadBool(ref result.field12_);
+ break;
+ }
+ case 104: {
+ result.hasField13 = input.ReadBool(ref result.field13_);
+ break;
+ }
+ case 112: {
+ result.hasField14 = input.ReadBool(ref result.field14_);
+ break;
+ }
+ case 122: {
+ global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.CreateBuilder();
+ if (result.hasField15) {
+ subBuilder.MergeFrom(Field15);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field15 = subBuilder.BuildPartial();
+ break;
+ }
+ case 128: {
+ result.hasField16 = input.ReadInt32(ref result.field16_);
+ break;
+ }
+ case 136: {
+ result.hasField17 = input.ReadBool(ref result.field17_);
+ break;
+ }
+ case 146: {
+ result.hasField18 = input.ReadString(ref result.field18_);
+ break;
+ }
+ case 176: {
+ result.hasField22 = input.ReadInt64(ref result.field22_);
+ break;
+ }
+ case 184: {
+ result.hasField23 = input.ReadInt32(ref result.field23_);
+ break;
+ }
+ case 192: {
+ result.hasField24 = input.ReadBool(ref result.field24_);
+ break;
+ }
+ case 200: {
+ result.hasField25 = input.ReadInt32(ref result.field25_);
+ break;
+ }
+ case 232: {
+ result.hasField29 = input.ReadInt32(ref result.field29_);
+ break;
+ }
+ case 240: {
+ result.hasField30 = input.ReadBool(ref result.field30_);
+ break;
+ }
+ case 472: {
+ result.hasField59 = input.ReadBool(ref result.field59_);
+ break;
+ }
+ case 480: {
+ result.hasField60 = input.ReadInt32(ref result.field60_);
+ break;
+ }
+ case 536: {
+ result.hasField67 = input.ReadInt32(ref result.field67_);
+ break;
+ }
+ case 544: {
+ result.hasField68 = input.ReadInt32(ref result.field68_);
+ break;
+ }
+ case 624: {
+ result.hasField78 = input.ReadBool(ref result.field78_);
+ break;
+ }
+ case 640: {
+ result.hasField80 = input.ReadBool(ref result.field80_);
+ break;
+ }
+ case 648: {
+ result.hasField81 = input.ReadBool(ref result.field81_);
+ break;
+ }
+ case 800: {
+ result.hasField100 = input.ReadInt32(ref result.field100_);
+ break;
+ }
+ case 808: {
+ result.hasField101 = input.ReadInt32(ref result.field101_);
+ break;
+ }
+ case 818: {
+ result.hasField102 = input.ReadString(ref result.field102_);
+ break;
+ }
+ case 826: {
+ result.hasField103 = input.ReadString(ref result.field103_);
+ break;
+ }
+ case 832: {
+ result.hasField104 = input.ReadInt32(ref result.field104_);
+ break;
+ }
+ case 1024: {
+ result.hasField128 = input.ReadInt32(ref result.field128_);
+ break;
+ }
+ case 1034: {
+ result.hasField129 = input.ReadString(ref result.field129_);
+ break;
+ }
+ case 1040: {
+ result.hasField130 = input.ReadInt32(ref result.field130_);
+ break;
+ }
+ case 1048: {
+ result.hasField131 = input.ReadInt32(ref result.field131_);
+ break;
+ }
+ case 1200: {
+ result.hasField150 = input.ReadInt32(ref result.field150_);
+ break;
+ }
+ case 2168: {
+ result.hasField271 = input.ReadInt32(ref result.field271_);
+ break;
+ }
+ case 2176: {
+ result.hasField272 = input.ReadInt32(ref result.field272_);
+ break;
+ }
+ case 2240: {
+ result.hasField280 = input.ReadInt32(ref result.field280_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public string Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = "";
+ return this;
+ }
+
+ public bool HasField18 {
+ get { return result.hasField18; }
+ }
+ public string Field18 {
+ get { return result.Field18; }
+ set { SetField18(value); }
+ }
+ public Builder SetField18(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField18 = true;
+ result.field18_ = value;
+ return this;
+ }
+ public Builder ClearField18() {
+ PrepareBuilder();
+ result.hasField18 = false;
+ result.field18_ = "";
+ return this;
+ }
+
+ public bool HasField80 {
+ get { return result.hasField80; }
+ }
+ public bool Field80 {
+ get { return result.Field80; }
+ set { SetField80(value); }
+ }
+ public Builder SetField80(bool value) {
+ PrepareBuilder();
+ result.hasField80 = true;
+ result.field80_ = value;
+ return this;
+ }
+ public Builder ClearField80() {
+ PrepareBuilder();
+ result.hasField80 = false;
+ result.field80_ = false;
+ return this;
+ }
+
+ public bool HasField81 {
+ get { return result.hasField81; }
+ }
+ public bool Field81 {
+ get { return result.Field81; }
+ set { SetField81(value); }
+ }
+ public Builder SetField81(bool value) {
+ PrepareBuilder();
+ result.hasField81 = true;
+ result.field81_ = value;
+ return this;
+ }
+ public Builder ClearField81() {
+ PrepareBuilder();
+ result.hasField81 = false;
+ result.field81_ = true;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField280 {
+ get { return result.hasField280; }
+ }
+ public int Field280 {
+ get { return result.Field280; }
+ set { SetField280(value); }
+ }
+ public Builder SetField280(int value) {
+ PrepareBuilder();
+ result.hasField280 = true;
+ result.field280_ = value;
+ return this;
+ }
+ public Builder ClearField280() {
+ PrepareBuilder();
+ result.hasField280 = false;
+ result.field280_ = 0;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public int Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(int value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = 0;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public long Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(long value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public string Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> Field5List {
+ get { return PrepareBuilder().field5_; }
+ }
+ public int Field5Count {
+ get { return result.Field5Count; }
+ }
+ public ulong GetField5(int index) {
+ return result.GetField5(index);
+ }
+ public Builder SetField5(int index, ulong value) {
+ PrepareBuilder();
+ result.field5_[index] = value;
+ return this;
+ }
+ public Builder AddField5(ulong value) {
+ PrepareBuilder();
+ result.field5_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField5(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.field5_.Add(values);
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.field5_.Clear();
+ return this;
+ }
+
+ public bool HasField59 {
+ get { return result.hasField59; }
+ }
+ public bool Field59 {
+ get { return result.Field59; }
+ set { SetField59(value); }
+ }
+ public Builder SetField59(bool value) {
+ PrepareBuilder();
+ result.hasField59 = true;
+ result.field59_ = value;
+ return this;
+ }
+ public Builder ClearField59() {
+ PrepareBuilder();
+ result.hasField59 = false;
+ result.field59_ = false;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public string Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField130 {
+ get { return result.hasField130; }
+ }
+ public int Field130 {
+ get { return result.Field130; }
+ set { SetField130(value); }
+ }
+ public Builder SetField130(int value) {
+ PrepareBuilder();
+ result.hasField130 = true;
+ result.field130_ = value;
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.hasField130 = false;
+ result.field130_ = 0;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField17 {
+ get { return result.hasField17; }
+ }
+ public bool Field17 {
+ get { return result.Field17; }
+ set { SetField17(value); }
+ }
+ public Builder SetField17(bool value) {
+ PrepareBuilder();
+ result.hasField17 = true;
+ result.field17_ = value;
+ return this;
+ }
+ public Builder ClearField17() {
+ PrepareBuilder();
+ result.hasField17 = false;
+ result.field17_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public bool Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(bool value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = true;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public bool Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(bool value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = true;
+ return this;
+ }
+
+ public bool HasField104 {
+ get { return result.hasField104; }
+ }
+ public int Field104 {
+ get { return result.Field104; }
+ set { SetField104(value); }
+ }
+ public Builder SetField104(int value) {
+ PrepareBuilder();
+ result.hasField104 = true;
+ result.field104_ = value;
+ return this;
+ }
+ public Builder ClearField104() {
+ PrepareBuilder();
+ result.hasField104 = false;
+ result.field104_ = 0;
+ return this;
+ }
+
+ public bool HasField100 {
+ get { return result.hasField100; }
+ }
+ public int Field100 {
+ get { return result.Field100; }
+ set { SetField100(value); }
+ }
+ public Builder SetField100(int value) {
+ PrepareBuilder();
+ result.hasField100 = true;
+ result.field100_ = value;
+ return this;
+ }
+ public Builder ClearField100() {
+ PrepareBuilder();
+ result.hasField100 = false;
+ result.field100_ = 0;
+ return this;
+ }
+
+ public bool HasField101 {
+ get { return result.hasField101; }
+ }
+ public int Field101 {
+ get { return result.Field101; }
+ set { SetField101(value); }
+ }
+ public Builder SetField101(int value) {
+ PrepareBuilder();
+ result.hasField101 = true;
+ result.field101_ = value;
+ return this;
+ }
+ public Builder ClearField101() {
+ PrepareBuilder();
+ result.hasField101 = false;
+ result.field101_ = 0;
+ return this;
+ }
+
+ public bool HasField102 {
+ get { return result.hasField102; }
+ }
+ public string Field102 {
+ get { return result.Field102; }
+ set { SetField102(value); }
+ }
+ public Builder SetField102(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField102 = true;
+ result.field102_ = value;
+ return this;
+ }
+ public Builder ClearField102() {
+ PrepareBuilder();
+ result.hasField102 = false;
+ result.field102_ = "";
+ return this;
+ }
+
+ public bool HasField103 {
+ get { return result.hasField103; }
+ }
+ public string Field103 {
+ get { return result.Field103; }
+ set { SetField103(value); }
+ }
+ public Builder SetField103(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField103 = true;
+ result.field103_ = value;
+ return this;
+ }
+ public Builder ClearField103() {
+ PrepareBuilder();
+ result.hasField103 = false;
+ result.field103_ = "";
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public int Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(int value) {
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = 0;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public bool Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(bool value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = false;
+ return this;
+ }
+
+ public bool HasField60 {
+ get { return result.hasField60; }
+ }
+ public int Field60 {
+ get { return result.Field60; }
+ set { SetField60(value); }
+ }
+ public Builder SetField60(int value) {
+ PrepareBuilder();
+ result.hasField60 = true;
+ result.field60_ = value;
+ return this;
+ }
+ public Builder ClearField60() {
+ PrepareBuilder();
+ result.hasField60 = false;
+ result.field60_ = -1;
+ return this;
+ }
+
+ public bool HasField271 {
+ get { return result.hasField271; }
+ }
+ public int Field271 {
+ get { return result.Field271; }
+ set { SetField271(value); }
+ }
+ public Builder SetField271(int value) {
+ PrepareBuilder();
+ result.hasField271 = true;
+ result.field271_ = value;
+ return this;
+ }
+ public Builder ClearField271() {
+ PrepareBuilder();
+ result.hasField271 = false;
+ result.field271_ = -1;
+ return this;
+ }
+
+ public bool HasField272 {
+ get { return result.hasField272; }
+ }
+ public int Field272 {
+ get { return result.Field272; }
+ set { SetField272(value); }
+ }
+ public Builder SetField272(int value) {
+ PrepareBuilder();
+ result.hasField272 = true;
+ result.field272_ = value;
+ return this;
+ }
+ public Builder ClearField272() {
+ PrepareBuilder();
+ result.hasField272 = false;
+ result.field272_ = -1;
+ return this;
+ }
+
+ public bool HasField150 {
+ get { return result.hasField150; }
+ }
+ public int Field150 {
+ get { return result.Field150; }
+ set { SetField150(value); }
+ }
+ public Builder SetField150(int value) {
+ PrepareBuilder();
+ result.hasField150 = true;
+ result.field150_ = value;
+ return this;
+ }
+ public Builder ClearField150() {
+ PrepareBuilder();
+ result.hasField150 = false;
+ result.field150_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public int Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(int value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public bool Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(bool value) {
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = false;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public int Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(int value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField15(global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField15 &&
+ result.field15_ != global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance) {
+ result.field15_ = global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.CreateBuilder(result.field15_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field15_ = value;
+ }
+ result.hasField15 = true;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = null;
+ return this;
+ }
+
+ public bool HasField78 {
+ get { return result.hasField78; }
+ }
+ public bool Field78 {
+ get { return result.Field78; }
+ set { SetField78(value); }
+ }
+ public Builder SetField78(bool value) {
+ PrepareBuilder();
+ result.hasField78 = true;
+ result.field78_ = value;
+ return this;
+ }
+ public Builder ClearField78() {
+ PrepareBuilder();
+ result.hasField78 = false;
+ result.field78_ = false;
+ return this;
+ }
+
+ public bool HasField67 {
+ get { return result.hasField67; }
+ }
+ public int Field67 {
+ get { return result.Field67; }
+ set { SetField67(value); }
+ }
+ public Builder SetField67(int value) {
+ PrepareBuilder();
+ result.hasField67 = true;
+ result.field67_ = value;
+ return this;
+ }
+ public Builder ClearField67() {
+ PrepareBuilder();
+ result.hasField67 = false;
+ result.field67_ = 0;
+ return this;
+ }
+
+ public bool HasField68 {
+ get { return result.hasField68; }
+ }
+ public int Field68 {
+ get { return result.Field68; }
+ set { SetField68(value); }
+ }
+ public Builder SetField68(int value) {
+ PrepareBuilder();
+ result.hasField68 = true;
+ result.field68_ = value;
+ return this;
+ }
+ public Builder ClearField68() {
+ PrepareBuilder();
+ result.hasField68 = false;
+ result.field68_ = 0;
+ return this;
+ }
+
+ public bool HasField128 {
+ get { return result.hasField128; }
+ }
+ public int Field128 {
+ get { return result.Field128; }
+ set { SetField128(value); }
+ }
+ public Builder SetField128(int value) {
+ PrepareBuilder();
+ result.hasField128 = true;
+ result.field128_ = value;
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.hasField128 = false;
+ result.field128_ = 0;
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public string Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public int Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(int value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0;
+ return this;
+ }
+ }
+ static SpeedMessage1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage1SubMessage : pb::GeneratedMessage<SpeedMessage1SubMessage, SpeedMessage1SubMessage.Builder> {
+ private SpeedMessage1SubMessage() { }
+ private static readonly SpeedMessage1SubMessage defaultInstance = new SpeedMessage1SubMessage().MakeReadOnly();
+ private static readonly string[] _speedMessage1SubMessageFieldNames = new string[] { "field1", "field12", "field13", "field14", "field15", "field16", "field19", "field2", "field20", "field203", "field204", "field205", "field206", "field207", "field21", "field22", "field23", "field28", "field3", "field300" };
+ private static readonly uint[] _speedMessage1SubMessageFieldTags = new uint[] { 8, 96, 104, 112, 122, 128, 152, 16, 160, 1629, 1632, 1642, 1648, 1656, 169, 176, 184, 224, 24, 2400 };
+ public static SpeedMessage1SubMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage1SubMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage1SubMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SpeedMessage1SubMessage, SpeedMessage1SubMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage1SubMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private int field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public int Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private string field15_ = "";
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public string Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private long field13_;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public long Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private long field14_;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public long Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field19FieldNumber = 19;
+ private bool hasField19;
+ private int field19_ = 2;
+ public bool HasField19 {
+ get { return hasField19; }
+ }
+ public int Field19 {
+ get { return field19_; }
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private bool field20_ = true;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public bool Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private bool field28_ = true;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public bool Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private ulong field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ public ulong Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private int field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public int Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private bool field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public bool Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public const int Field203FieldNumber = 203;
+ private bool hasField203;
+ private uint field203_;
+ public bool HasField203 {
+ get { return hasField203; }
+ }
+ public uint Field203 {
+ get { return field203_; }
+ }
+
+ public const int Field204FieldNumber = 204;
+ private bool hasField204;
+ private int field204_;
+ public bool HasField204 {
+ get { return hasField204; }
+ }
+ public int Field204 {
+ get { return field204_; }
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private string field205_ = "";
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public string Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field207FieldNumber = 207;
+ private bool hasField207;
+ private ulong field207_;
+ public bool HasField207 {
+ get { return hasField207; }
+ }
+ public ulong Field207 {
+ get { return field207_; }
+ }
+
+ public const int Field300FieldNumber = 300;
+ private bool hasField300;
+ private ulong field300_;
+ public bool HasField300 {
+ get { return hasField300; }
+ }
+ public ulong Field300 {
+ get { return field300_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage1SubMessageFieldNames;
+ if (hasField1) {
+ output.WriteInt32(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteInt32(2, field_names[7], Field2);
+ }
+ if (hasField3) {
+ output.WriteInt32(3, field_names[18], Field3);
+ }
+ if (hasField12) {
+ output.WriteBool(12, field_names[1], Field12);
+ }
+ if (hasField13) {
+ output.WriteInt64(13, field_names[2], Field13);
+ }
+ if (hasField14) {
+ output.WriteInt64(14, field_names[3], Field14);
+ }
+ if (hasField15) {
+ output.WriteString(15, field_names[4], Field15);
+ }
+ if (hasField16) {
+ output.WriteInt32(16, field_names[5], Field16);
+ }
+ if (hasField19) {
+ output.WriteInt32(19, field_names[6], Field19);
+ }
+ if (hasField20) {
+ output.WriteBool(20, field_names[8], Field20);
+ }
+ if (hasField21) {
+ output.WriteFixed64(21, field_names[14], Field21);
+ }
+ if (hasField22) {
+ output.WriteInt32(22, field_names[15], Field22);
+ }
+ if (hasField23) {
+ output.WriteBool(23, field_names[16], Field23);
+ }
+ if (hasField28) {
+ output.WriteBool(28, field_names[17], Field28);
+ }
+ if (hasField203) {
+ output.WriteFixed32(203, field_names[9], Field203);
+ }
+ if (hasField204) {
+ output.WriteInt32(204, field_names[10], Field204);
+ }
+ if (hasField205) {
+ output.WriteString(205, field_names[11], Field205);
+ }
+ if (hasField206) {
+ output.WriteBool(206, field_names[12], Field206);
+ }
+ if (hasField207) {
+ output.WriteUInt64(207, field_names[13], Field207);
+ }
+ if (hasField300) {
+ output.WriteUInt64(300, field_names[19], Field300);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Field1);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Field2);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Field3);
+ }
+ if (hasField15) {
+ size += pb::CodedOutputStream.ComputeStringSize(15, Field15);
+ }
+ if (hasField12) {
+ size += pb::CodedOutputStream.ComputeBoolSize(12, Field12);
+ }
+ if (hasField13) {
+ size += pb::CodedOutputStream.ComputeInt64Size(13, Field13);
+ }
+ if (hasField14) {
+ size += pb::CodedOutputStream.ComputeInt64Size(14, Field14);
+ }
+ if (hasField16) {
+ size += pb::CodedOutputStream.ComputeInt32Size(16, Field16);
+ }
+ if (hasField19) {
+ size += pb::CodedOutputStream.ComputeInt32Size(19, Field19);
+ }
+ if (hasField20) {
+ size += pb::CodedOutputStream.ComputeBoolSize(20, Field20);
+ }
+ if (hasField28) {
+ size += pb::CodedOutputStream.ComputeBoolSize(28, Field28);
+ }
+ if (hasField21) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(21, Field21);
+ }
+ if (hasField22) {
+ size += pb::CodedOutputStream.ComputeInt32Size(22, Field22);
+ }
+ if (hasField23) {
+ size += pb::CodedOutputStream.ComputeBoolSize(23, Field23);
+ }
+ if (hasField206) {
+ size += pb::CodedOutputStream.ComputeBoolSize(206, Field206);
+ }
+ if (hasField203) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(203, Field203);
+ }
+ if (hasField204) {
+ size += pb::CodedOutputStream.ComputeInt32Size(204, Field204);
+ }
+ if (hasField205) {
+ size += pb::CodedOutputStream.ComputeStringSize(205, Field205);
+ }
+ if (hasField207) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(207, Field207);
+ }
+ if (hasField300) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(300, Field300);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage1SubMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage1SubMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage1SubMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage1SubMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage1SubMessage result;
+
+ private SpeedMessage1SubMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage1SubMessage original = result;
+ result = new SpeedMessage1SubMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage1SubMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.Descriptor; }
+ }
+
+ public override SpeedMessage1SubMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance; }
+ }
+
+ public override SpeedMessage1SubMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage1SubMessage) {
+ return MergeFrom((SpeedMessage1SubMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage1SubMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SpeedMessage1SubMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField15) {
+ Field15 = other.Field15;
+ }
+ if (other.HasField12) {
+ Field12 = other.Field12;
+ }
+ if (other.HasField13) {
+ Field13 = other.Field13;
+ }
+ if (other.HasField14) {
+ Field14 = other.Field14;
+ }
+ if (other.HasField16) {
+ Field16 = other.Field16;
+ }
+ if (other.HasField19) {
+ Field19 = other.Field19;
+ }
+ if (other.HasField20) {
+ Field20 = other.Field20;
+ }
+ if (other.HasField28) {
+ Field28 = other.Field28;
+ }
+ if (other.HasField21) {
+ Field21 = other.Field21;
+ }
+ if (other.HasField22) {
+ Field22 = other.Field22;
+ }
+ if (other.HasField23) {
+ Field23 = other.Field23;
+ }
+ if (other.HasField206) {
+ Field206 = other.Field206;
+ }
+ if (other.HasField203) {
+ Field203 = other.Field203;
+ }
+ if (other.HasField204) {
+ Field204 = other.Field204;
+ }
+ if (other.HasField205) {
+ Field205 = other.Field205;
+ }
+ if (other.HasField207) {
+ Field207 = other.Field207;
+ }
+ if (other.HasField300) {
+ Field300 = other.Field300;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage1SubMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage1SubMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasField1 = input.ReadInt32(ref result.field1_);
+ break;
+ }
+ case 16: {
+ result.hasField2 = input.ReadInt32(ref result.field2_);
+ break;
+ }
+ case 24: {
+ result.hasField3 = input.ReadInt32(ref result.field3_);
+ break;
+ }
+ case 96: {
+ result.hasField12 = input.ReadBool(ref result.field12_);
+ break;
+ }
+ case 104: {
+ result.hasField13 = input.ReadInt64(ref result.field13_);
+ break;
+ }
+ case 112: {
+ result.hasField14 = input.ReadInt64(ref result.field14_);
+ break;
+ }
+ case 122: {
+ result.hasField15 = input.ReadString(ref result.field15_);
+ break;
+ }
+ case 128: {
+ result.hasField16 = input.ReadInt32(ref result.field16_);
+ break;
+ }
+ case 152: {
+ result.hasField19 = input.ReadInt32(ref result.field19_);
+ break;
+ }
+ case 160: {
+ result.hasField20 = input.ReadBool(ref result.field20_);
+ break;
+ }
+ case 169: {
+ result.hasField21 = input.ReadFixed64(ref result.field21_);
+ break;
+ }
+ case 176: {
+ result.hasField22 = input.ReadInt32(ref result.field22_);
+ break;
+ }
+ case 184: {
+ result.hasField23 = input.ReadBool(ref result.field23_);
+ break;
+ }
+ case 224: {
+ result.hasField28 = input.ReadBool(ref result.field28_);
+ break;
+ }
+ case 1629: {
+ result.hasField203 = input.ReadFixed32(ref result.field203_);
+ break;
+ }
+ case 1632: {
+ result.hasField204 = input.ReadInt32(ref result.field204_);
+ break;
+ }
+ case 1642: {
+ result.hasField205 = input.ReadString(ref result.field205_);
+ break;
+ }
+ case 1648: {
+ result.hasField206 = input.ReadBool(ref result.field206_);
+ break;
+ }
+ case 1656: {
+ result.hasField207 = input.ReadUInt64(ref result.field207_);
+ break;
+ }
+ case 2400: {
+ result.hasField300 = input.ReadUInt64(ref result.field300_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public int Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(int value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public string Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = "";
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public long Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(long value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = 0L;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public long Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(long value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = 0L;
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField19 {
+ get { return result.hasField19; }
+ }
+ public int Field19 {
+ get { return result.Field19; }
+ set { SetField19(value); }
+ }
+ public Builder SetField19(int value) {
+ PrepareBuilder();
+ result.hasField19 = true;
+ result.field19_ = value;
+ return this;
+ }
+ public Builder ClearField19() {
+ PrepareBuilder();
+ result.hasField19 = false;
+ result.field19_ = 2;
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public bool Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(bool value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = true;
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public bool Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(bool value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = true;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ public ulong Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ public Builder SetField21(ulong value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0UL;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public int Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(int value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public bool Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(bool value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+
+ public bool HasField203 {
+ get { return result.hasField203; }
+ }
+ public uint Field203 {
+ get { return result.Field203; }
+ set { SetField203(value); }
+ }
+ public Builder SetField203(uint value) {
+ PrepareBuilder();
+ result.hasField203 = true;
+ result.field203_ = value;
+ return this;
+ }
+ public Builder ClearField203() {
+ PrepareBuilder();
+ result.hasField203 = false;
+ result.field203_ = 0;
+ return this;
+ }
+
+ public bool HasField204 {
+ get { return result.hasField204; }
+ }
+ public int Field204 {
+ get { return result.Field204; }
+ set { SetField204(value); }
+ }
+ public Builder SetField204(int value) {
+ PrepareBuilder();
+ result.hasField204 = true;
+ result.field204_ = value;
+ return this;
+ }
+ public Builder ClearField204() {
+ PrepareBuilder();
+ result.hasField204 = false;
+ result.field204_ = 0;
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public string Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = "";
+ return this;
+ }
+
+ public bool HasField207 {
+ get { return result.hasField207; }
+ }
+ public ulong Field207 {
+ get { return result.Field207; }
+ set { SetField207(value); }
+ }
+ public Builder SetField207(ulong value) {
+ PrepareBuilder();
+ result.hasField207 = true;
+ result.field207_ = value;
+ return this;
+ }
+ public Builder ClearField207() {
+ PrepareBuilder();
+ result.hasField207 = false;
+ result.field207_ = 0UL;
+ return this;
+ }
+
+ public bool HasField300 {
+ get { return result.hasField300; }
+ }
+ public ulong Field300 {
+ get { return result.Field300; }
+ set { SetField300(value); }
+ }
+ public Builder SetField300(ulong value) {
+ PrepareBuilder();
+ result.hasField300 = true;
+ result.field300_ = value;
+ return this;
+ }
+ public Builder ClearField300() {
+ PrepareBuilder();
+ result.hasField300 = false;
+ result.field300_ = 0UL;
+ return this;
+ }
+ }
+ static SpeedMessage1SubMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage2 : pb::GeneratedMessage<SpeedMessage2, SpeedMessage2.Builder> {
+ private SpeedMessage2() { }
+ private static readonly SpeedMessage2 defaultInstance = new SpeedMessage2().MakeReadOnly();
+ private static readonly string[] _speedMessage2FieldNames = new string[] { "field1", "field109", "field127", "field128", "field129", "field130", "field131", "field2", "field205", "field206", "field21", "field210", "field211", "field212", "field213", "field216", "field217", "field218", "field220", "field221", "field222", "field25", "field3", "field30", "field4", "field6", "field63", "field71", "field75", "group1" };
+ private static readonly uint[] _speedMessage2FieldTags = new uint[] { 10, 872, 1018, 1026, 1032, 1040, 1048, 18, 1640, 1648, 168, 1680, 1688, 1696, 1704, 1728, 1736, 1744, 1760, 1768, 1781, 205, 24, 240, 32, 50, 504, 568, 600, 83 };
+ public static SpeedMessage2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SpeedMessage2, SpeedMessage2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
+ private Group1() { }
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
+ private static readonly string[] _group1FieldNames = new string[] { "field11", "field12", "field13", "field14", "field15", "field16", "field20", "field22", "field24", "field26", "field27", "field28", "field29", "field31", "field5", "field73" };
+ private static readonly uint[] _group1FieldTags = new uint[] { 93, 98, 106, 114, 120, 130, 160, 178, 194, 213, 218, 224, 234, 250, 40, 584 };
+ public static Group1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2_Group1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Group1, Group1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2_Group1__FieldAccessorTable; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private float field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public float Field11 {
+ get { return field11_; }
+ }
+
+ public const int Field26FieldNumber = 26;
+ private bool hasField26;
+ private float field26_;
+ public bool HasField26 {
+ get { return hasField26; }
+ }
+ public float Field26 {
+ get { return field26_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private string field12_ = "";
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public string Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private string field13_ = "";
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public string Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private pbc::PopsicleList<string> field14_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field14List {
+ get { return pbc::Lists.AsReadOnly(field14_); }
+ }
+ public int Field14Count {
+ get { return field14_.Count; }
+ }
+ public string GetField14(int index) {
+ return field14_[index];
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private ulong field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public ulong Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private int field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public int Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field27FieldNumber = 27;
+ private bool hasField27;
+ private string field27_ = "";
+ public bool HasField27 {
+ get { return hasField27; }
+ }
+ public string Field27 {
+ get { return field27_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private int field28_;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public int Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private string field29_ = "";
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public string Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private string field16_ = "";
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public string Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private pbc::PopsicleList<string> field22_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field22List {
+ get { return pbc::Lists.AsReadOnly(field22_); }
+ }
+ public int Field22Count {
+ get { return field22_.Count; }
+ }
+ public string GetField22(int index) {
+ return field22_[index];
+ }
+
+ public const int Field73FieldNumber = 73;
+ private pbc::PopsicleList<int> field73_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> Field73List {
+ get { return pbc::Lists.AsReadOnly(field73_); }
+ }
+ public int Field73Count {
+ get { return field73_.Count; }
+ }
+ public int GetField73(int index) {
+ return field73_[index];
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private int field20_;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public int Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private string field24_ = "";
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public string Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field31FieldNumber = 31;
+ private bool hasField31;
+ private global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage field31_;
+ public bool HasField31 {
+ get { return hasField31; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage Field31 {
+ get { return field31_ ?? global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasField11) return false;
+ if (!hasField15) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group1FieldNames;
+ if (hasField5) {
+ output.WriteInt32(5, field_names[14], Field5);
+ }
+ if (hasField11) {
+ output.WriteFloat(11, field_names[0], Field11);
+ }
+ if (hasField12) {
+ output.WriteString(12, field_names[1], Field12);
+ }
+ if (hasField13) {
+ output.WriteString(13, field_names[2], Field13);
+ }
+ if (field14_.Count > 0) {
+ output.WriteStringArray(14, field_names[3], field14_);
+ }
+ if (hasField15) {
+ output.WriteUInt64(15, field_names[4], Field15);
+ }
+ if (hasField16) {
+ output.WriteString(16, field_names[5], Field16);
+ }
+ if (hasField20) {
+ output.WriteInt32(20, field_names[6], Field20);
+ }
+ if (field22_.Count > 0) {
+ output.WriteStringArray(22, field_names[7], field22_);
+ }
+ if (hasField24) {
+ output.WriteString(24, field_names[8], Field24);
+ }
+ if (hasField26) {
+ output.WriteFloat(26, field_names[9], Field26);
+ }
+ if (hasField27) {
+ output.WriteString(27, field_names[10], Field27);
+ }
+ if (hasField28) {
+ output.WriteInt32(28, field_names[11], Field28);
+ }
+ if (hasField29) {
+ output.WriteString(29, field_names[12], Field29);
+ }
+ if (hasField31) {
+ output.WriteMessage(31, field_names[13], Field31);
+ }
+ if (field73_.Count > 0) {
+ output.WriteInt32Array(73, field_names[15], field73_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField11) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, Field11);
+ }
+ if (hasField26) {
+ size += pb::CodedOutputStream.ComputeFloatSize(26, Field26);
+ }
+ if (hasField12) {
+ size += pb::CodedOutputStream.ComputeStringSize(12, Field12);
+ }
+ if (hasField13) {
+ size += pb::CodedOutputStream.ComputeStringSize(13, Field13);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field14List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * field14_.Count;
+ }
+ if (hasField15) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(15, Field15);
+ }
+ if (hasField5) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, Field5);
+ }
+ if (hasField27) {
+ size += pb::CodedOutputStream.ComputeStringSize(27, Field27);
+ }
+ if (hasField28) {
+ size += pb::CodedOutputStream.ComputeInt32Size(28, Field28);
+ }
+ if (hasField29) {
+ size += pb::CodedOutputStream.ComputeStringSize(29, Field29);
+ }
+ if (hasField16) {
+ size += pb::CodedOutputStream.ComputeStringSize(16, Field16);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field22List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field22_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in Field73List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field73_.Count;
+ }
+ if (hasField20) {
+ size += pb::CodedOutputStream.ComputeInt32Size(20, Field20);
+ }
+ if (hasField24) {
+ size += pb::CodedOutputStream.ComputeStringSize(24, Field24);
+ }
+ if (hasField31) {
+ size += pb::CodedOutputStream.ComputeMessageSize(31, Field31);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Group1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group1 MakeReadOnly() {
+ field14_.MakeReadOnly();
+ field22_.MakeReadOnly();
+ field73_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Group1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group1 result;
+
+ private Group1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group1 original = result;
+ result = new Group1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.Descriptor; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.DefaultInstance; }
+ }
+
+ public override Group1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Group1) {
+ return MergeFrom((Group1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group1 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField11) {
+ Field11 = other.Field11;
+ }
+ if (other.HasField26) {
+ Field26 = other.Field26;
+ }
+ if (other.HasField12) {
+ Field12 = other.Field12;
+ }
+ if (other.HasField13) {
+ Field13 = other.Field13;
+ }
+ if (other.field14_.Count != 0) {
+ result.field14_.Add(other.field14_);
+ }
+ if (other.HasField15) {
+ Field15 = other.Field15;
+ }
+ if (other.HasField5) {
+ Field5 = other.Field5;
+ }
+ if (other.HasField27) {
+ Field27 = other.Field27;
+ }
+ if (other.HasField28) {
+ Field28 = other.Field28;
+ }
+ if (other.HasField29) {
+ Field29 = other.Field29;
+ }
+ if (other.HasField16) {
+ Field16 = other.Field16;
+ }
+ if (other.field22_.Count != 0) {
+ result.field22_.Add(other.field22_);
+ }
+ if (other.field73_.Count != 0) {
+ result.field73_.Add(other.field73_);
+ }
+ if (other.HasField20) {
+ Field20 = other.Field20;
+ }
+ if (other.HasField24) {
+ Field24 = other.Field24;
+ }
+ if (other.HasField31) {
+ MergeField31(other.Field31);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 40: {
+ result.hasField5 = input.ReadInt32(ref result.field5_);
+ break;
+ }
+ case 93: {
+ result.hasField11 = input.ReadFloat(ref result.field11_);
+ break;
+ }
+ case 98: {
+ result.hasField12 = input.ReadString(ref result.field12_);
+ break;
+ }
+ case 106: {
+ result.hasField13 = input.ReadString(ref result.field13_);
+ break;
+ }
+ case 114: {
+ input.ReadStringArray(tag, field_name, result.field14_);
+ break;
+ }
+ case 120: {
+ result.hasField15 = input.ReadUInt64(ref result.field15_);
+ break;
+ }
+ case 130: {
+ result.hasField16 = input.ReadString(ref result.field16_);
+ break;
+ }
+ case 160: {
+ result.hasField20 = input.ReadInt32(ref result.field20_);
+ break;
+ }
+ case 178: {
+ input.ReadStringArray(tag, field_name, result.field22_);
+ break;
+ }
+ case 194: {
+ result.hasField24 = input.ReadString(ref result.field24_);
+ break;
+ }
+ case 213: {
+ result.hasField26 = input.ReadFloat(ref result.field26_);
+ break;
+ }
+ case 218: {
+ result.hasField27 = input.ReadString(ref result.field27_);
+ break;
+ }
+ case 224: {
+ result.hasField28 = input.ReadInt32(ref result.field28_);
+ break;
+ }
+ case 234: {
+ result.hasField29 = input.ReadString(ref result.field29_);
+ break;
+ }
+ case 250: {
+ global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.CreateBuilder();
+ if (result.hasField31) {
+ subBuilder.MergeFrom(Field31);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field31 = subBuilder.BuildPartial();
+ break;
+ }
+ case 586:
+ case 584: {
+ input.ReadInt32Array(tag, field_name, result.field73_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public float Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(float value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0F;
+ return this;
+ }
+
+ public bool HasField26 {
+ get { return result.hasField26; }
+ }
+ public float Field26 {
+ get { return result.Field26; }
+ set { SetField26(value); }
+ }
+ public Builder SetField26(float value) {
+ PrepareBuilder();
+ result.hasField26 = true;
+ result.field26_ = value;
+ return this;
+ }
+ public Builder ClearField26() {
+ PrepareBuilder();
+ result.hasField26 = false;
+ result.field26_ = 0F;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public string Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = "";
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public string Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field14List {
+ get { return PrepareBuilder().field14_; }
+ }
+ public int Field14Count {
+ get { return result.Field14Count; }
+ }
+ public string GetField14(int index) {
+ return result.GetField14(index);
+ }
+ public Builder SetField14(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_[index] = value;
+ return this;
+ }
+ public Builder AddField14(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField14(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field14_.Add(values);
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.field14_.Clear();
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public ulong Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(ulong value) {
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = 0UL;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public int Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(int value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = 0;
+ return this;
+ }
+
+ public bool HasField27 {
+ get { return result.hasField27; }
+ }
+ public string Field27 {
+ get { return result.Field27; }
+ set { SetField27(value); }
+ }
+ public Builder SetField27(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField27 = true;
+ result.field27_ = value;
+ return this;
+ }
+ public Builder ClearField27() {
+ PrepareBuilder();
+ result.hasField27 = false;
+ result.field27_ = "";
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public int Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(int value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = 0;
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public string Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public string Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field22List {
+ get { return PrepareBuilder().field22_; }
+ }
+ public int Field22Count {
+ get { return result.Field22Count; }
+ }
+ public string GetField22(int index) {
+ return result.GetField22(index);
+ }
+ public Builder SetField22(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_[index] = value;
+ return this;
+ }
+ public Builder AddField22(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField22(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field22_.Add(values);
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.field22_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> Field73List {
+ get { return PrepareBuilder().field73_; }
+ }
+ public int Field73Count {
+ get { return result.Field73Count; }
+ }
+ public int GetField73(int index) {
+ return result.GetField73(index);
+ }
+ public Builder SetField73(int index, int value) {
+ PrepareBuilder();
+ result.field73_[index] = value;
+ return this;
+ }
+ public Builder AddField73(int value) {
+ PrepareBuilder();
+ result.field73_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField73(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.field73_.Add(values);
+ return this;
+ }
+ public Builder ClearField73() {
+ PrepareBuilder();
+ result.field73_.Clear();
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public int Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(int value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public string Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = "";
+ return this;
+ }
+
+ public bool HasField31 {
+ get { return result.hasField31; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage Field31 {
+ get { return result.Field31; }
+ set { SetField31(value); }
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = value;
+ return this;
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField31(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField31 &&
+ result.field31_ != global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance) {
+ result.field31_ = global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.CreateBuilder(result.field31_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field31_ = value;
+ }
+ result.hasField31 = true;
+ return this;
+ }
+ public Builder ClearField31() {
+ PrepareBuilder();
+ result.hasField31 = false;
+ result.field31_ = null;
+ return this;
+ }
+ }
+ static Group1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private long field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public long Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private long field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public long Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private long field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public long Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field75FieldNumber = 75;
+ private bool hasField75;
+ private bool field75_;
+ public bool HasField75 {
+ get { return hasField75; }
+ }
+ public bool Field75 {
+ get { return field75_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private string field6_ = "";
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public string Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private pb::ByteString field2_ = pb::ByteString.Empty;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private int field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ public int Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field71FieldNumber = 71;
+ private bool hasField71;
+ private int field71_;
+ public bool HasField71 {
+ get { return hasField71; }
+ }
+ public int Field71 {
+ get { return field71_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private float field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public float Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field109FieldNumber = 109;
+ private bool hasField109;
+ private int field109_;
+ public bool HasField109 {
+ get { return hasField109; }
+ }
+ public int Field109 {
+ get { return field109_; }
+ }
+
+ public const int Field210FieldNumber = 210;
+ private bool hasField210;
+ private int field210_;
+ public bool HasField210 {
+ get { return hasField210; }
+ }
+ public int Field210 {
+ get { return field210_; }
+ }
+
+ public const int Field211FieldNumber = 211;
+ private bool hasField211;
+ private int field211_;
+ public bool HasField211 {
+ get { return hasField211; }
+ }
+ public int Field211 {
+ get { return field211_; }
+ }
+
+ public const int Field212FieldNumber = 212;
+ private bool hasField212;
+ private int field212_;
+ public bool HasField212 {
+ get { return hasField212; }
+ }
+ public int Field212 {
+ get { return field212_; }
+ }
+
+ public const int Field213FieldNumber = 213;
+ private bool hasField213;
+ private int field213_;
+ public bool HasField213 {
+ get { return hasField213; }
+ }
+ public int Field213 {
+ get { return field213_; }
+ }
+
+ public const int Field216FieldNumber = 216;
+ private bool hasField216;
+ private int field216_;
+ public bool HasField216 {
+ get { return hasField216; }
+ }
+ public int Field216 {
+ get { return field216_; }
+ }
+
+ public const int Field217FieldNumber = 217;
+ private bool hasField217;
+ private int field217_;
+ public bool HasField217 {
+ get { return hasField217; }
+ }
+ public int Field217 {
+ get { return field217_; }
+ }
+
+ public const int Field218FieldNumber = 218;
+ private bool hasField218;
+ private int field218_;
+ public bool HasField218 {
+ get { return hasField218; }
+ }
+ public int Field218 {
+ get { return field218_; }
+ }
+
+ public const int Field220FieldNumber = 220;
+ private bool hasField220;
+ private int field220_;
+ public bool HasField220 {
+ get { return hasField220; }
+ }
+ public int Field220 {
+ get { return field220_; }
+ }
+
+ public const int Field221FieldNumber = 221;
+ private bool hasField221;
+ private int field221_;
+ public bool HasField221 {
+ get { return hasField221; }
+ }
+ public int Field221 {
+ get { return field221_; }
+ }
+
+ public const int Field222FieldNumber = 222;
+ private bool hasField222;
+ private float field222_;
+ public bool HasField222 {
+ get { return hasField222; }
+ }
+ public float Field222 {
+ get { return field222_; }
+ }
+
+ public const int Field63FieldNumber = 63;
+ private bool hasField63;
+ private int field63_;
+ public bool HasField63 {
+ get { return hasField63; }
+ }
+ public int Field63 {
+ get { return field63_; }
+ }
+
+ public const int Group1FieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1> group1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1> Group1List {
+ get { return group1_; }
+ }
+ public int Group1Count {
+ get { return group1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 GetGroup1(int index) {
+ return group1_[index];
+ }
+
+ public const int Field128FieldNumber = 128;
+ private pbc::PopsicleList<string> field128_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field128List {
+ get { return pbc::Lists.AsReadOnly(field128_); }
+ }
+ public int Field128Count {
+ get { return field128_.Count; }
+ }
+ public string GetField128(int index) {
+ return field128_[index];
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private long field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public long Field131 {
+ get { return field131_; }
+ }
+
+ public const int Field127FieldNumber = 127;
+ private pbc::PopsicleList<string> field127_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> Field127List {
+ get { return pbc::Lists.AsReadOnly(field127_); }
+ }
+ public int Field127Count {
+ get { return field127_.Count; }
+ }
+ public string GetField127(int index) {
+ return field127_[index];
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private int field129_;
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public int Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private pbc::PopsicleList<long> field130_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> Field130List {
+ get { return pbc::Lists.AsReadOnly(field130_); }
+ }
+ public int Field130Count {
+ get { return field130_.Count; }
+ }
+ public long GetField130(int index) {
+ return field130_[index];
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private bool field205_;
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public bool Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage2FieldNames;
+ if (hasField1) {
+ output.WriteString(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteBytes(2, field_names[7], Field2);
+ }
+ if (hasField3) {
+ output.WriteInt64(3, field_names[22], Field3);
+ }
+ if (hasField4) {
+ output.WriteInt64(4, field_names[24], Field4);
+ }
+ if (hasField6) {
+ output.WriteString(6, field_names[25], Field6);
+ }
+ if (group1_.Count > 0) {
+ output.WriteGroupArray(10, field_names[29], group1_);
+ }
+ if (hasField21) {
+ output.WriteInt32(21, field_names[10], Field21);
+ }
+ if (hasField25) {
+ output.WriteFloat(25, field_names[21], Field25);
+ }
+ if (hasField30) {
+ output.WriteInt64(30, field_names[23], Field30);
+ }
+ if (hasField63) {
+ output.WriteInt32(63, field_names[26], Field63);
+ }
+ if (hasField71) {
+ output.WriteInt32(71, field_names[27], Field71);
+ }
+ if (hasField75) {
+ output.WriteBool(75, field_names[28], Field75);
+ }
+ if (hasField109) {
+ output.WriteInt32(109, field_names[1], Field109);
+ }
+ if (field127_.Count > 0) {
+ output.WriteStringArray(127, field_names[2], field127_);
+ }
+ if (field128_.Count > 0) {
+ output.WriteStringArray(128, field_names[3], field128_);
+ }
+ if (hasField129) {
+ output.WriteInt32(129, field_names[4], Field129);
+ }
+ if (field130_.Count > 0) {
+ output.WriteInt64Array(130, field_names[5], field130_);
+ }
+ if (hasField131) {
+ output.WriteInt64(131, field_names[6], Field131);
+ }
+ if (hasField205) {
+ output.WriteBool(205, field_names[8], Field205);
+ }
+ if (hasField206) {
+ output.WriteBool(206, field_names[9], Field206);
+ }
+ if (hasField210) {
+ output.WriteInt32(210, field_names[11], Field210);
+ }
+ if (hasField211) {
+ output.WriteInt32(211, field_names[12], Field211);
+ }
+ if (hasField212) {
+ output.WriteInt32(212, field_names[13], Field212);
+ }
+ if (hasField213) {
+ output.WriteInt32(213, field_names[14], Field213);
+ }
+ if (hasField216) {
+ output.WriteInt32(216, field_names[15], Field216);
+ }
+ if (hasField217) {
+ output.WriteInt32(217, field_names[16], Field217);
+ }
+ if (hasField218) {
+ output.WriteInt32(218, field_names[17], Field218);
+ }
+ if (hasField220) {
+ output.WriteInt32(220, field_names[18], Field220);
+ }
+ if (hasField221) {
+ output.WriteInt32(221, field_names[19], Field221);
+ }
+ if (hasField222) {
+ output.WriteFloat(222, field_names[20], Field222);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Field1);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeInt64Size(3, Field3);
+ }
+ if (hasField4) {
+ size += pb::CodedOutputStream.ComputeInt64Size(4, Field4);
+ }
+ if (hasField30) {
+ size += pb::CodedOutputStream.ComputeInt64Size(30, Field30);
+ }
+ if (hasField75) {
+ size += pb::CodedOutputStream.ComputeBoolSize(75, Field75);
+ }
+ if (hasField6) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, Field6);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeBytesSize(2, Field2);
+ }
+ if (hasField21) {
+ size += pb::CodedOutputStream.ComputeInt32Size(21, Field21);
+ }
+ if (hasField71) {
+ size += pb::CodedOutputStream.ComputeInt32Size(71, Field71);
+ }
+ if (hasField25) {
+ size += pb::CodedOutputStream.ComputeFloatSize(25, Field25);
+ }
+ if (hasField109) {
+ size += pb::CodedOutputStream.ComputeInt32Size(109, Field109);
+ }
+ if (hasField210) {
+ size += pb::CodedOutputStream.ComputeInt32Size(210, Field210);
+ }
+ if (hasField211) {
+ size += pb::CodedOutputStream.ComputeInt32Size(211, Field211);
+ }
+ if (hasField212) {
+ size += pb::CodedOutputStream.ComputeInt32Size(212, Field212);
+ }
+ if (hasField213) {
+ size += pb::CodedOutputStream.ComputeInt32Size(213, Field213);
+ }
+ if (hasField216) {
+ size += pb::CodedOutputStream.ComputeInt32Size(216, Field216);
+ }
+ if (hasField217) {
+ size += pb::CodedOutputStream.ComputeInt32Size(217, Field217);
+ }
+ if (hasField218) {
+ size += pb::CodedOutputStream.ComputeInt32Size(218, Field218);
+ }
+ if (hasField220) {
+ size += pb::CodedOutputStream.ComputeInt32Size(220, Field220);
+ }
+ if (hasField221) {
+ size += pb::CodedOutputStream.ComputeInt32Size(221, Field221);
+ }
+ if (hasField222) {
+ size += pb::CodedOutputStream.ComputeFloatSize(222, Field222);
+ }
+ if (hasField63) {
+ size += pb::CodedOutputStream.ComputeInt32Size(63, Field63);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 element in Group1List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, element);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field128List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field128_.Count;
+ }
+ if (hasField131) {
+ size += pb::CodedOutputStream.ComputeInt64Size(131, Field131);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field127List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field127_.Count;
+ }
+ if (hasField129) {
+ size += pb::CodedOutputStream.ComputeInt32Size(129, Field129);
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in Field130List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field130_.Count;
+ }
+ if (hasField205) {
+ size += pb::CodedOutputStream.ComputeBoolSize(205, Field205);
+ }
+ if (hasField206) {
+ size += pb::CodedOutputStream.ComputeBoolSize(206, Field206);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage2 MakeReadOnly() {
+ group1_.MakeReadOnly();
+ field128_.MakeReadOnly();
+ field127_.MakeReadOnly();
+ field130_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage2 result;
+
+ private SpeedMessage2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage2 original = result;
+ result = new SpeedMessage2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Descriptor; }
+ }
+
+ public override SpeedMessage2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.DefaultInstance; }
+ }
+
+ public override SpeedMessage2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage2) {
+ return MergeFrom((SpeedMessage2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField4) {
+ Field4 = other.Field4;
+ }
+ if (other.HasField30) {
+ Field30 = other.Field30;
+ }
+ if (other.HasField75) {
+ Field75 = other.Field75;
+ }
+ if (other.HasField6) {
+ Field6 = other.Field6;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField21) {
+ Field21 = other.Field21;
+ }
+ if (other.HasField71) {
+ Field71 = other.Field71;
+ }
+ if (other.HasField25) {
+ Field25 = other.Field25;
+ }
+ if (other.HasField109) {
+ Field109 = other.Field109;
+ }
+ if (other.HasField210) {
+ Field210 = other.Field210;
+ }
+ if (other.HasField211) {
+ Field211 = other.Field211;
+ }
+ if (other.HasField212) {
+ Field212 = other.Field212;
+ }
+ if (other.HasField213) {
+ Field213 = other.Field213;
+ }
+ if (other.HasField216) {
+ Field216 = other.Field216;
+ }
+ if (other.HasField217) {
+ Field217 = other.Field217;
+ }
+ if (other.HasField218) {
+ Field218 = other.Field218;
+ }
+ if (other.HasField220) {
+ Field220 = other.Field220;
+ }
+ if (other.HasField221) {
+ Field221 = other.Field221;
+ }
+ if (other.HasField222) {
+ Field222 = other.Field222;
+ }
+ if (other.HasField63) {
+ Field63 = other.Field63;
+ }
+ if (other.group1_.Count != 0) {
+ result.group1_.Add(other.group1_);
+ }
+ if (other.field128_.Count != 0) {
+ result.field128_.Add(other.field128_);
+ }
+ if (other.HasField131) {
+ Field131 = other.Field131;
+ }
+ if (other.field127_.Count != 0) {
+ result.field127_.Add(other.field127_);
+ }
+ if (other.HasField129) {
+ Field129 = other.Field129;
+ }
+ if (other.field130_.Count != 0) {
+ result.field130_.Add(other.field130_);
+ }
+ if (other.HasField205) {
+ Field205 = other.Field205;
+ }
+ if (other.HasField206) {
+ Field206 = other.Field206;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasField1 = input.ReadString(ref result.field1_);
+ break;
+ }
+ case 18: {
+ result.hasField2 = input.ReadBytes(ref result.field2_);
+ break;
+ }
+ case 24: {
+ result.hasField3 = input.ReadInt64(ref result.field3_);
+ break;
+ }
+ case 32: {
+ result.hasField4 = input.ReadInt64(ref result.field4_);
+ break;
+ }
+ case 50: {
+ result.hasField6 = input.ReadString(ref result.field6_);
+ break;
+ }
+ case 83: {
+ input.ReadGroupArray(tag, field_name, result.group1_, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 168: {
+ result.hasField21 = input.ReadInt32(ref result.field21_);
+ break;
+ }
+ case 205: {
+ result.hasField25 = input.ReadFloat(ref result.field25_);
+ break;
+ }
+ case 240: {
+ result.hasField30 = input.ReadInt64(ref result.field30_);
+ break;
+ }
+ case 504: {
+ result.hasField63 = input.ReadInt32(ref result.field63_);
+ break;
+ }
+ case 568: {
+ result.hasField71 = input.ReadInt32(ref result.field71_);
+ break;
+ }
+ case 600: {
+ result.hasField75 = input.ReadBool(ref result.field75_);
+ break;
+ }
+ case 872: {
+ result.hasField109 = input.ReadInt32(ref result.field109_);
+ break;
+ }
+ case 1018: {
+ input.ReadStringArray(tag, field_name, result.field127_);
+ break;
+ }
+ case 1026: {
+ input.ReadStringArray(tag, field_name, result.field128_);
+ break;
+ }
+ case 1032: {
+ result.hasField129 = input.ReadInt32(ref result.field129_);
+ break;
+ }
+ case 1042:
+ case 1040: {
+ input.ReadInt64Array(tag, field_name, result.field130_);
+ break;
+ }
+ case 1048: {
+ result.hasField131 = input.ReadInt64(ref result.field131_);
+ break;
+ }
+ case 1640: {
+ result.hasField205 = input.ReadBool(ref result.field205_);
+ break;
+ }
+ case 1648: {
+ result.hasField206 = input.ReadBool(ref result.field206_);
+ break;
+ }
+ case 1680: {
+ result.hasField210 = input.ReadInt32(ref result.field210_);
+ break;
+ }
+ case 1688: {
+ result.hasField211 = input.ReadInt32(ref result.field211_);
+ break;
+ }
+ case 1696: {
+ result.hasField212 = input.ReadInt32(ref result.field212_);
+ break;
+ }
+ case 1704: {
+ result.hasField213 = input.ReadInt32(ref result.field213_);
+ break;
+ }
+ case 1728: {
+ result.hasField216 = input.ReadInt32(ref result.field216_);
+ break;
+ }
+ case 1736: {
+ result.hasField217 = input.ReadInt32(ref result.field217_);
+ break;
+ }
+ case 1744: {
+ result.hasField218 = input.ReadInt32(ref result.field218_);
+ break;
+ }
+ case 1760: {
+ result.hasField220 = input.ReadInt32(ref result.field220_);
+ break;
+ }
+ case 1768: {
+ result.hasField221 = input.ReadInt32(ref result.field221_);
+ break;
+ }
+ case 1781: {
+ result.hasField222 = input.ReadFloat(ref result.field222_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public long Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(long value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public long Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(long value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = 0L;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public long Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(long value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = 0L;
+ return this;
+ }
+
+ public bool HasField75 {
+ get { return result.hasField75; }
+ }
+ public bool Field75 {
+ get { return result.Field75; }
+ set { SetField75(value); }
+ }
+ public Builder SetField75(bool value) {
+ PrepareBuilder();
+ result.hasField75 = true;
+ result.field75_ = value;
+ return this;
+ }
+ public Builder ClearField75() {
+ PrepareBuilder();
+ result.hasField75 = false;
+ result.field75_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public string Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = "";
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ public int Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ public Builder SetField21(int value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0;
+ return this;
+ }
+
+ public bool HasField71 {
+ get { return result.hasField71; }
+ }
+ public int Field71 {
+ get { return result.Field71; }
+ set { SetField71(value); }
+ }
+ public Builder SetField71(int value) {
+ PrepareBuilder();
+ result.hasField71 = true;
+ result.field71_ = value;
+ return this;
+ }
+ public Builder ClearField71() {
+ PrepareBuilder();
+ result.hasField71 = false;
+ result.field71_ = 0;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public float Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(float value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0F;
+ return this;
+ }
+
+ public bool HasField109 {
+ get { return result.hasField109; }
+ }
+ public int Field109 {
+ get { return result.Field109; }
+ set { SetField109(value); }
+ }
+ public Builder SetField109(int value) {
+ PrepareBuilder();
+ result.hasField109 = true;
+ result.field109_ = value;
+ return this;
+ }
+ public Builder ClearField109() {
+ PrepareBuilder();
+ result.hasField109 = false;
+ result.field109_ = 0;
+ return this;
+ }
+
+ public bool HasField210 {
+ get { return result.hasField210; }
+ }
+ public int Field210 {
+ get { return result.Field210; }
+ set { SetField210(value); }
+ }
+ public Builder SetField210(int value) {
+ PrepareBuilder();
+ result.hasField210 = true;
+ result.field210_ = value;
+ return this;
+ }
+ public Builder ClearField210() {
+ PrepareBuilder();
+ result.hasField210 = false;
+ result.field210_ = 0;
+ return this;
+ }
+
+ public bool HasField211 {
+ get { return result.hasField211; }
+ }
+ public int Field211 {
+ get { return result.Field211; }
+ set { SetField211(value); }
+ }
+ public Builder SetField211(int value) {
+ PrepareBuilder();
+ result.hasField211 = true;
+ result.field211_ = value;
+ return this;
+ }
+ public Builder ClearField211() {
+ PrepareBuilder();
+ result.hasField211 = false;
+ result.field211_ = 0;
+ return this;
+ }
+
+ public bool HasField212 {
+ get { return result.hasField212; }
+ }
+ public int Field212 {
+ get { return result.Field212; }
+ set { SetField212(value); }
+ }
+ public Builder SetField212(int value) {
+ PrepareBuilder();
+ result.hasField212 = true;
+ result.field212_ = value;
+ return this;
+ }
+ public Builder ClearField212() {
+ PrepareBuilder();
+ result.hasField212 = false;
+ result.field212_ = 0;
+ return this;
+ }
+
+ public bool HasField213 {
+ get { return result.hasField213; }
+ }
+ public int Field213 {
+ get { return result.Field213; }
+ set { SetField213(value); }
+ }
+ public Builder SetField213(int value) {
+ PrepareBuilder();
+ result.hasField213 = true;
+ result.field213_ = value;
+ return this;
+ }
+ public Builder ClearField213() {
+ PrepareBuilder();
+ result.hasField213 = false;
+ result.field213_ = 0;
+ return this;
+ }
+
+ public bool HasField216 {
+ get { return result.hasField216; }
+ }
+ public int Field216 {
+ get { return result.Field216; }
+ set { SetField216(value); }
+ }
+ public Builder SetField216(int value) {
+ PrepareBuilder();
+ result.hasField216 = true;
+ result.field216_ = value;
+ return this;
+ }
+ public Builder ClearField216() {
+ PrepareBuilder();
+ result.hasField216 = false;
+ result.field216_ = 0;
+ return this;
+ }
+
+ public bool HasField217 {
+ get { return result.hasField217; }
+ }
+ public int Field217 {
+ get { return result.Field217; }
+ set { SetField217(value); }
+ }
+ public Builder SetField217(int value) {
+ PrepareBuilder();
+ result.hasField217 = true;
+ result.field217_ = value;
+ return this;
+ }
+ public Builder ClearField217() {
+ PrepareBuilder();
+ result.hasField217 = false;
+ result.field217_ = 0;
+ return this;
+ }
+
+ public bool HasField218 {
+ get { return result.hasField218; }
+ }
+ public int Field218 {
+ get { return result.Field218; }
+ set { SetField218(value); }
+ }
+ public Builder SetField218(int value) {
+ PrepareBuilder();
+ result.hasField218 = true;
+ result.field218_ = value;
+ return this;
+ }
+ public Builder ClearField218() {
+ PrepareBuilder();
+ result.hasField218 = false;
+ result.field218_ = 0;
+ return this;
+ }
+
+ public bool HasField220 {
+ get { return result.hasField220; }
+ }
+ public int Field220 {
+ get { return result.Field220; }
+ set { SetField220(value); }
+ }
+ public Builder SetField220(int value) {
+ PrepareBuilder();
+ result.hasField220 = true;
+ result.field220_ = value;
+ return this;
+ }
+ public Builder ClearField220() {
+ PrepareBuilder();
+ result.hasField220 = false;
+ result.field220_ = 0;
+ return this;
+ }
+
+ public bool HasField221 {
+ get { return result.hasField221; }
+ }
+ public int Field221 {
+ get { return result.Field221; }
+ set { SetField221(value); }
+ }
+ public Builder SetField221(int value) {
+ PrepareBuilder();
+ result.hasField221 = true;
+ result.field221_ = value;
+ return this;
+ }
+ public Builder ClearField221() {
+ PrepareBuilder();
+ result.hasField221 = false;
+ result.field221_ = 0;
+ return this;
+ }
+
+ public bool HasField222 {
+ get { return result.hasField222; }
+ }
+ public float Field222 {
+ get { return result.Field222; }
+ set { SetField222(value); }
+ }
+ public Builder SetField222(float value) {
+ PrepareBuilder();
+ result.hasField222 = true;
+ result.field222_ = value;
+ return this;
+ }
+ public Builder ClearField222() {
+ PrepareBuilder();
+ result.hasField222 = false;
+ result.field222_ = 0F;
+ return this;
+ }
+
+ public bool HasField63 {
+ get { return result.hasField63; }
+ }
+ public int Field63 {
+ get { return result.Field63; }
+ set { SetField63(value); }
+ }
+ public Builder SetField63(int value) {
+ PrepareBuilder();
+ result.hasField63 = true;
+ result.field63_ = value;
+ return this;
+ }
+ public Builder ClearField63() {
+ PrepareBuilder();
+ result.hasField63 = false;
+ result.field63_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1> Group1List {
+ get { return PrepareBuilder().group1_; }
+ }
+ public int Group1Count {
+ get { return result.Group1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 GetGroup1(int index) {
+ return result.GetGroup1(index);
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_[index] = value;
+ return this;
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_.Add(value);
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.SpeedMessage2.Types.Group1> values) {
+ PrepareBuilder();
+ result.group1_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup1() {
+ PrepareBuilder();
+ result.group1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field128List {
+ get { return PrepareBuilder().field128_; }
+ }
+ public int Field128Count {
+ get { return result.Field128Count; }
+ }
+ public string GetField128(int index) {
+ return result.GetField128(index);
+ }
+ public Builder SetField128(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_[index] = value;
+ return this;
+ }
+ public Builder AddField128(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField128(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field128_.Add(values);
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.field128_.Clear();
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public long Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(long value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0L;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> Field127List {
+ get { return PrepareBuilder().field127_; }
+ }
+ public int Field127Count {
+ get { return result.Field127Count; }
+ }
+ public string GetField127(int index) {
+ return result.GetField127(index);
+ }
+ public Builder SetField127(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_[index] = value;
+ return this;
+ }
+ public Builder AddField127(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField127(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.field127_.Add(values);
+ return this;
+ }
+ public Builder ClearField127() {
+ PrepareBuilder();
+ result.field127_.Clear();
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public int Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(int value) {
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> Field130List {
+ get { return PrepareBuilder().field130_; }
+ }
+ public int Field130Count {
+ get { return result.Field130Count; }
+ }
+ public long GetField130(int index) {
+ return result.GetField130(index);
+ }
+ public Builder SetField130(int index, long value) {
+ PrepareBuilder();
+ result.field130_[index] = value;
+ return this;
+ }
+ public Builder AddField130(long value) {
+ PrepareBuilder();
+ result.field130_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField130(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.field130_.Add(values);
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.field130_.Clear();
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public bool Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(bool value) {
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+ }
+ static SpeedMessage2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage2GroupedMessage : pb::GeneratedMessage<SpeedMessage2GroupedMessage, SpeedMessage2GroupedMessage.Builder> {
+ private SpeedMessage2GroupedMessage() { }
+ private static readonly SpeedMessage2GroupedMessage defaultInstance = new SpeedMessage2GroupedMessage().MakeReadOnly();
+ private static readonly string[] _speedMessage2GroupedMessageFieldNames = new string[] { "field1", "field10", "field11", "field2", "field3", "field4", "field5", "field6", "field7", "field8", "field9" };
+ private static readonly uint[] _speedMessage2GroupedMessageFieldTags = new uint[] { 13, 85, 88, 21, 29, 32, 40, 48, 56, 69, 72 };
+ public static SpeedMessage2GroupedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage2GroupedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage2GroupedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SpeedMessage2GroupedMessage, SpeedMessage2GroupedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.internal__static_benchmarks_SpeedMessage2GroupedMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private float field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public float Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private float field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public float Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private float field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public float Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private bool field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public bool Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private bool field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public bool Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private bool field6_ = true;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public bool Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private bool field7_;
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public bool Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field8FieldNumber = 8;
+ private bool hasField8;
+ private float field8_;
+ public bool HasField8 {
+ get { return hasField8; }
+ }
+ public float Field8 {
+ get { return field8_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private bool field9_;
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public bool Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field10FieldNumber = 10;
+ private bool hasField10;
+ private float field10_;
+ public bool HasField10 {
+ get { return hasField10; }
+ }
+ public float Field10 {
+ get { return field10_; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private long field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public long Field11 {
+ get { return field11_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage2GroupedMessageFieldNames;
+ if (hasField1) {
+ output.WriteFloat(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteFloat(2, field_names[3], Field2);
+ }
+ if (hasField3) {
+ output.WriteFloat(3, field_names[4], Field3);
+ }
+ if (hasField4) {
+ output.WriteBool(4, field_names[5], Field4);
+ }
+ if (hasField5) {
+ output.WriteBool(5, field_names[6], Field5);
+ }
+ if (hasField6) {
+ output.WriteBool(6, field_names[7], Field6);
+ }
+ if (hasField7) {
+ output.WriteBool(7, field_names[8], Field7);
+ }
+ if (hasField8) {
+ output.WriteFloat(8, field_names[9], Field8);
+ }
+ if (hasField9) {
+ output.WriteBool(9, field_names[10], Field9);
+ }
+ if (hasField10) {
+ output.WriteFloat(10, field_names[1], Field10);
+ }
+ if (hasField11) {
+ output.WriteInt64(11, field_names[2], Field11);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeFloatSize(1, Field1);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeFloatSize(2, Field2);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeFloatSize(3, Field3);
+ }
+ if (hasField4) {
+ size += pb::CodedOutputStream.ComputeBoolSize(4, Field4);
+ }
+ if (hasField5) {
+ size += pb::CodedOutputStream.ComputeBoolSize(5, Field5);
+ }
+ if (hasField6) {
+ size += pb::CodedOutputStream.ComputeBoolSize(6, Field6);
+ }
+ if (hasField7) {
+ size += pb::CodedOutputStream.ComputeBoolSize(7, Field7);
+ }
+ if (hasField8) {
+ size += pb::CodedOutputStream.ComputeFloatSize(8, Field8);
+ }
+ if (hasField9) {
+ size += pb::CodedOutputStream.ComputeBoolSize(9, Field9);
+ }
+ if (hasField10) {
+ size += pb::CodedOutputStream.ComputeFloatSize(10, Field10);
+ }
+ if (hasField11) {
+ size += pb::CodedOutputStream.ComputeInt64Size(11, Field11);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage2GroupedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage2GroupedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SpeedMessage2GroupedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage2GroupedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage2GroupedMessage result;
+
+ private SpeedMessage2GroupedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage2GroupedMessage original = result;
+ result = new SpeedMessage2GroupedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage2GroupedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.Descriptor; }
+ }
+
+ public override SpeedMessage2GroupedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public override SpeedMessage2GroupedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage2GroupedMessage) {
+ return MergeFrom((SpeedMessage2GroupedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage2GroupedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SpeedMessage2GroupedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField4) {
+ Field4 = other.Field4;
+ }
+ if (other.HasField5) {
+ Field5 = other.Field5;
+ }
+ if (other.HasField6) {
+ Field6 = other.Field6;
+ }
+ if (other.HasField7) {
+ Field7 = other.Field7;
+ }
+ if (other.HasField8) {
+ Field8 = other.Field8;
+ }
+ if (other.HasField9) {
+ Field9 = other.Field9;
+ }
+ if (other.HasField10) {
+ Field10 = other.Field10;
+ }
+ if (other.HasField11) {
+ Field11 = other.Field11;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage2GroupedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage2GroupedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 13: {
+ result.hasField1 = input.ReadFloat(ref result.field1_);
+ break;
+ }
+ case 21: {
+ result.hasField2 = input.ReadFloat(ref result.field2_);
+ break;
+ }
+ case 29: {
+ result.hasField3 = input.ReadFloat(ref result.field3_);
+ break;
+ }
+ case 32: {
+ result.hasField4 = input.ReadBool(ref result.field4_);
+ break;
+ }
+ case 40: {
+ result.hasField5 = input.ReadBool(ref result.field5_);
+ break;
+ }
+ case 48: {
+ result.hasField6 = input.ReadBool(ref result.field6_);
+ break;
+ }
+ case 56: {
+ result.hasField7 = input.ReadBool(ref result.field7_);
+ break;
+ }
+ case 69: {
+ result.hasField8 = input.ReadFloat(ref result.field8_);
+ break;
+ }
+ case 72: {
+ result.hasField9 = input.ReadBool(ref result.field9_);
+ break;
+ }
+ case 85: {
+ result.hasField10 = input.ReadFloat(ref result.field10_);
+ break;
+ }
+ case 88: {
+ result.hasField11 = input.ReadInt64(ref result.field11_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public float Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(float value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0F;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public float Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(float value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0F;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public float Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(float value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0F;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public bool Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(bool value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = false;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public bool Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(bool value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public bool Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(bool value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = true;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public bool Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(bool value) {
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = false;
+ return this;
+ }
+
+ public bool HasField8 {
+ get { return result.hasField8; }
+ }
+ public float Field8 {
+ get { return result.Field8; }
+ set { SetField8(value); }
+ }
+ public Builder SetField8(float value) {
+ PrepareBuilder();
+ result.hasField8 = true;
+ result.field8_ = value;
+ return this;
+ }
+ public Builder ClearField8() {
+ PrepareBuilder();
+ result.hasField8 = false;
+ result.field8_ = 0F;
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public bool Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(bool value) {
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = false;
+ return this;
+ }
+
+ public bool HasField10 {
+ get { return result.hasField10; }
+ }
+ public float Field10 {
+ get { return result.Field10; }
+ set { SetField10(value); }
+ }
+ public Builder SetField10(float value) {
+ PrepareBuilder();
+ result.hasField10 = true;
+ result.field10_ = value;
+ return this;
+ }
+ public Builder ClearField10() {
+ PrepareBuilder();
+ result.hasField10 = false;
+ result.field10_ = 0F;
+ return this;
+ }
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public long Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(long value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0L;
+ return this;
+ }
+ }
+ static SpeedMessage2GroupedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.GoogleSpeed.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/Unittest.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/Unittest.cs
new file mode 100644
index 00000000..d3441937
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/Unittest.cs
@@ -0,0 +1,33878 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Unittest {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalGroupExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalPublicImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalLazyMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedGroupExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedLazyMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionString);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionInt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.NestedStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Single);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.OptionalExt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.RepeatedExt);
+ }
+ #endregion
+ #region Extensions
+ public const int OptionalInt32ExtensionFieldNumber = 1;
+ public static pb::GeneratedExtensionBase<int> OptionalInt32Extension;
+ public const int OptionalInt64ExtensionFieldNumber = 2;
+ public static pb::GeneratedExtensionBase<long> OptionalInt64Extension;
+ public const int OptionalUint32ExtensionFieldNumber = 3;
+ public static pb::GeneratedExtensionBase<uint> OptionalUint32Extension;
+ public const int OptionalUint64ExtensionFieldNumber = 4;
+ public static pb::GeneratedExtensionBase<ulong> OptionalUint64Extension;
+ public const int OptionalSint32ExtensionFieldNumber = 5;
+ public static pb::GeneratedExtensionBase<int> OptionalSint32Extension;
+ public const int OptionalSint64ExtensionFieldNumber = 6;
+ public static pb::GeneratedExtensionBase<long> OptionalSint64Extension;
+ public const int OptionalFixed32ExtensionFieldNumber = 7;
+ public static pb::GeneratedExtensionBase<uint> OptionalFixed32Extension;
+ public const int OptionalFixed64ExtensionFieldNumber = 8;
+ public static pb::GeneratedExtensionBase<ulong> OptionalFixed64Extension;
+ public const int OptionalSfixed32ExtensionFieldNumber = 9;
+ public static pb::GeneratedExtensionBase<int> OptionalSfixed32Extension;
+ public const int OptionalSfixed64ExtensionFieldNumber = 10;
+ public static pb::GeneratedExtensionBase<long> OptionalSfixed64Extension;
+ public const int OptionalFloatExtensionFieldNumber = 11;
+ public static pb::GeneratedExtensionBase<float> OptionalFloatExtension;
+ public const int OptionalDoubleExtensionFieldNumber = 12;
+ public static pb::GeneratedExtensionBase<double> OptionalDoubleExtension;
+ public const int OptionalBoolExtensionFieldNumber = 13;
+ public static pb::GeneratedExtensionBase<bool> OptionalBoolExtension;
+ public const int OptionalStringExtensionFieldNumber = 14;
+ public static pb::GeneratedExtensionBase<string> OptionalStringExtension;
+ public const int OptionalBytesExtensionFieldNumber = 15;
+ public static pb::GeneratedExtensionBase<pb::ByteString> OptionalBytesExtension;
+ public const int OptionalGroupExtensionFieldNumber = 16;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension> OptionalGroupExtension;
+ public const int OptionalNestedMessageExtensionFieldNumber = 18;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> OptionalNestedMessageExtension;
+ public const int OptionalForeignMessageExtensionFieldNumber = 19;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> OptionalForeignMessageExtension;
+ public const int OptionalImportMessageExtensionFieldNumber = 20;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportMessage> OptionalImportMessageExtension;
+ public const int OptionalNestedEnumExtensionFieldNumber = 21;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> OptionalNestedEnumExtension;
+ public const int OptionalForeignEnumExtensionFieldNumber = 22;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> OptionalForeignEnumExtension;
+ public const int OptionalImportEnumExtensionFieldNumber = 23;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportEnum> OptionalImportEnumExtension;
+ public const int OptionalStringPieceExtensionFieldNumber = 24;
+ public static pb::GeneratedExtensionBase<string> OptionalStringPieceExtension;
+ public const int OptionalCordExtensionFieldNumber = 25;
+ public static pb::GeneratedExtensionBase<string> OptionalCordExtension;
+ public const int OptionalPublicImportMessageExtensionFieldNumber = 26;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage> OptionalPublicImportMessageExtension;
+ public const int OptionalLazyMessageExtensionFieldNumber = 27;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> OptionalLazyMessageExtension;
+ public const int RepeatedInt32ExtensionFieldNumber = 31;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedInt32Extension;
+ public const int RepeatedInt64ExtensionFieldNumber = 32;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedInt64Extension;
+ public const int RepeatedUint32ExtensionFieldNumber = 33;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> RepeatedUint32Extension;
+ public const int RepeatedUint64ExtensionFieldNumber = 34;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> RepeatedUint64Extension;
+ public const int RepeatedSint32ExtensionFieldNumber = 35;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedSint32Extension;
+ public const int RepeatedSint64ExtensionFieldNumber = 36;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedSint64Extension;
+ public const int RepeatedFixed32ExtensionFieldNumber = 37;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> RepeatedFixed32Extension;
+ public const int RepeatedFixed64ExtensionFieldNumber = 38;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> RepeatedFixed64Extension;
+ public const int RepeatedSfixed32ExtensionFieldNumber = 39;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedSfixed32Extension;
+ public const int RepeatedSfixed64ExtensionFieldNumber = 40;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedSfixed64Extension;
+ public const int RepeatedFloatExtensionFieldNumber = 41;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> RepeatedFloatExtension;
+ public const int RepeatedDoubleExtensionFieldNumber = 42;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> RepeatedDoubleExtension;
+ public const int RepeatedBoolExtensionFieldNumber = 43;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> RepeatedBoolExtension;
+ public const int RepeatedStringExtensionFieldNumber = 44;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedStringExtension;
+ public const int RepeatedBytesExtensionFieldNumber = 45;
+ public static pb::GeneratedExtensionBase<scg::IList<pb::ByteString>> RepeatedBytesExtension;
+ public const int RepeatedGroupExtensionFieldNumber = 46;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension>> RepeatedGroupExtension;
+ public const int RepeatedNestedMessageExtensionFieldNumber = 48;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>> RepeatedNestedMessageExtension;
+ public const int RepeatedForeignMessageExtensionFieldNumber = 49;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>> RepeatedForeignMessageExtension;
+ public const int RepeatedImportMessageExtensionFieldNumber = 50;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportMessage>> RepeatedImportMessageExtension;
+ public const int RepeatedNestedEnumExtensionFieldNumber = 51;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>> RepeatedNestedEnumExtension;
+ public const int RepeatedForeignEnumExtensionFieldNumber = 52;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> RepeatedForeignEnumExtension;
+ public const int RepeatedImportEnumExtensionFieldNumber = 53;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportEnum>> RepeatedImportEnumExtension;
+ public const int RepeatedStringPieceExtensionFieldNumber = 54;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedStringPieceExtension;
+ public const int RepeatedCordExtensionFieldNumber = 55;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedCordExtension;
+ public const int RepeatedLazyMessageExtensionFieldNumber = 57;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>> RepeatedLazyMessageExtension;
+ public const int DefaultInt32ExtensionFieldNumber = 61;
+ public static pb::GeneratedExtensionBase<int> DefaultInt32Extension;
+ public const int DefaultInt64ExtensionFieldNumber = 62;
+ public static pb::GeneratedExtensionBase<long> DefaultInt64Extension;
+ public const int DefaultUint32ExtensionFieldNumber = 63;
+ public static pb::GeneratedExtensionBase<uint> DefaultUint32Extension;
+ public const int DefaultUint64ExtensionFieldNumber = 64;
+ public static pb::GeneratedExtensionBase<ulong> DefaultUint64Extension;
+ public const int DefaultSint32ExtensionFieldNumber = 65;
+ public static pb::GeneratedExtensionBase<int> DefaultSint32Extension;
+ public const int DefaultSint64ExtensionFieldNumber = 66;
+ public static pb::GeneratedExtensionBase<long> DefaultSint64Extension;
+ public const int DefaultFixed32ExtensionFieldNumber = 67;
+ public static pb::GeneratedExtensionBase<uint> DefaultFixed32Extension;
+ public const int DefaultFixed64ExtensionFieldNumber = 68;
+ public static pb::GeneratedExtensionBase<ulong> DefaultFixed64Extension;
+ public const int DefaultSfixed32ExtensionFieldNumber = 69;
+ public static pb::GeneratedExtensionBase<int> DefaultSfixed32Extension;
+ public const int DefaultSfixed64ExtensionFieldNumber = 70;
+ public static pb::GeneratedExtensionBase<long> DefaultSfixed64Extension;
+ public const int DefaultFloatExtensionFieldNumber = 71;
+ public static pb::GeneratedExtensionBase<float> DefaultFloatExtension;
+ public const int DefaultDoubleExtensionFieldNumber = 72;
+ public static pb::GeneratedExtensionBase<double> DefaultDoubleExtension;
+ public const int DefaultBoolExtensionFieldNumber = 73;
+ public static pb::GeneratedExtensionBase<bool> DefaultBoolExtension;
+ public const int DefaultStringExtensionFieldNumber = 74;
+ public static pb::GeneratedExtensionBase<string> DefaultStringExtension;
+ public const int DefaultBytesExtensionFieldNumber = 75;
+ public static pb::GeneratedExtensionBase<pb::ByteString> DefaultBytesExtension;
+ public const int DefaultNestedEnumExtensionFieldNumber = 81;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> DefaultNestedEnumExtension;
+ public const int DefaultForeignEnumExtensionFieldNumber = 82;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> DefaultForeignEnumExtension;
+ public const int DefaultImportEnumExtensionFieldNumber = 83;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportEnum> DefaultImportEnumExtension;
+ public const int DefaultStringPieceExtensionFieldNumber = 84;
+ public static pb::GeneratedExtensionBase<string> DefaultStringPieceExtension;
+ public const int DefaultCordExtensionFieldNumber = 85;
+ public static pb::GeneratedExtensionBase<string> DefaultCordExtension;
+ public const int OneofUint32ExtensionFieldNumber = 111;
+ public static pb::GeneratedExtensionBase<uint> OneofUint32Extension;
+ public const int OneofNestedMessageExtensionFieldNumber = 112;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> OneofNestedMessageExtension;
+ public const int OneofStringExtensionFieldNumber = 113;
+ public static pb::GeneratedExtensionBase<string> OneofStringExtension;
+ public const int OneofBytesExtensionFieldNumber = 114;
+ public static pb::GeneratedExtensionBase<pb::ByteString> OneofBytesExtension;
+ public const int MyExtensionStringFieldNumber = 50;
+ public static pb::GeneratedExtensionBase<string> MyExtensionString;
+ public const int MyExtensionIntFieldNumber = 5;
+ public static pb::GeneratedExtensionBase<int> MyExtensionInt;
+ public const int PackedInt32ExtensionFieldNumber = 90;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedInt32Extension;
+ public const int PackedInt64ExtensionFieldNumber = 91;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedInt64Extension;
+ public const int PackedUint32ExtensionFieldNumber = 92;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> PackedUint32Extension;
+ public const int PackedUint64ExtensionFieldNumber = 93;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> PackedUint64Extension;
+ public const int PackedSint32ExtensionFieldNumber = 94;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedSint32Extension;
+ public const int PackedSint64ExtensionFieldNumber = 95;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedSint64Extension;
+ public const int PackedFixed32ExtensionFieldNumber = 96;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> PackedFixed32Extension;
+ public const int PackedFixed64ExtensionFieldNumber = 97;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> PackedFixed64Extension;
+ public const int PackedSfixed32ExtensionFieldNumber = 98;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedSfixed32Extension;
+ public const int PackedSfixed64ExtensionFieldNumber = 99;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedSfixed64Extension;
+ public const int PackedFloatExtensionFieldNumber = 100;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> PackedFloatExtension;
+ public const int PackedDoubleExtensionFieldNumber = 101;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> PackedDoubleExtension;
+ public const int PackedBoolExtensionFieldNumber = 102;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> PackedBoolExtension;
+ public const int PackedEnumExtensionFieldNumber = 103;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> PackedEnumExtension;
+ public const int UnpackedInt32ExtensionFieldNumber = 90;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> UnpackedInt32Extension;
+ public const int UnpackedInt64ExtensionFieldNumber = 91;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> UnpackedInt64Extension;
+ public const int UnpackedUint32ExtensionFieldNumber = 92;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> UnpackedUint32Extension;
+ public const int UnpackedUint64ExtensionFieldNumber = 93;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> UnpackedUint64Extension;
+ public const int UnpackedSint32ExtensionFieldNumber = 94;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> UnpackedSint32Extension;
+ public const int UnpackedSint64ExtensionFieldNumber = 95;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> UnpackedSint64Extension;
+ public const int UnpackedFixed32ExtensionFieldNumber = 96;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> UnpackedFixed32Extension;
+ public const int UnpackedFixed64ExtensionFieldNumber = 97;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> UnpackedFixed64Extension;
+ public const int UnpackedSfixed32ExtensionFieldNumber = 98;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> UnpackedSfixed32Extension;
+ public const int UnpackedSfixed64ExtensionFieldNumber = 99;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> UnpackedSfixed64Extension;
+ public const int UnpackedFloatExtensionFieldNumber = 100;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> UnpackedFloatExtension;
+ public const int UnpackedDoubleExtensionFieldNumber = 101;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> UnpackedDoubleExtension;
+ public const int UnpackedBoolExtensionFieldNumber = 102;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> UnpackedBoolExtension;
+ public const int UnpackedEnumExtensionFieldNumber = 103;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> UnpackedEnumExtension;
+ #endregion
+
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder> internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder> internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder> internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder> internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields, global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Builder> internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ForeignMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder> internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReservedFields__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReservedFields, global::Google.ProtocolBuffers.TestProtos.TestReservedFields.Builder> internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllExtensions, global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Builder> internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Builder> internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Builder> internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedExtension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedExtension, global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Builder> internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequired__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequired, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder> internal__static_protobuf_unittest_TestRequired__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredForeign__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign, global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Builder> internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestForeignNested__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestForeignNested, global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Builder> internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmptyMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Builder> internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Builder> internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges, global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Builder> internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber, global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Builder> internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage, global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder> internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder> internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder> internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Builder> internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder> internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder> internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEagerMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEagerMessage, global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.Builder> internal__static_protobuf_unittest_TestEagerMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestLazyMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestLazyMessage, global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.Builder> internal__static_protobuf_unittest_TestLazyMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Builder> internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames, global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Builder> internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Builder> internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues, global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Builder> internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_SparseEnumMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage, global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.Builder> internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneString__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneString, global::Google.ProtocolBuffers.TestProtos.OneString.Builder> internal__static_protobuf_unittest_OneString__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_MoreString__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreString, global::Google.ProtocolBuffers.TestProtos.MoreString.Builder> internal__static_protobuf_unittest_MoreString__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneBytes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneBytes, global::Google.ProtocolBuffers.TestProtos.OneBytes.Builder> internal__static_protobuf_unittest_OneBytes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_MoreBytes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreBytes, global::Google.ProtocolBuffers.TestProtos.MoreBytes.Builder> internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Int32Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int32Message, global::Google.ProtocolBuffers.TestProtos.Int32Message.Builder> internal__static_protobuf_unittest_Int32Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Uint32Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint32Message, global::Google.ProtocolBuffers.TestProtos.Uint32Message.Builder> internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Int64Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int64Message, global::Google.ProtocolBuffers.TestProtos.Int64Message.Builder> internal__static_protobuf_unittest_Int64Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Uint64Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint64Message, global::Google.ProtocolBuffers.TestProtos.Uint64Message.Builder> internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BoolMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BoolMessage, global::Google.ProtocolBuffers.TestProtos.BoolMessage.Builder> internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof, global::Google.ProtocolBuffers.TestProtos.TestOneof.Builder> internal__static_protobuf_unittest_TestOneof__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder> internal__static_protobuf_unittest_TestOneof_FooGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Builder> internal__static_protobuf_unittest_TestOneofBackwardsCompatible__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder> internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Builder> internal__static_protobuf_unittest_TestOneof2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder> internal__static_protobuf_unittest_TestOneof2_FooGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestOneof2_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredOneof__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Builder> internal__static_protobuf_unittest_TestRequiredOneof__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedTypes, global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Builder> internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes, global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Builder> internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Builder> internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.Builder> internal__static_protobuf_unittest_TestUnpackedExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Builder> internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder> internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes, global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Builder> internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Builder> internal__static_protobuf_unittest_TestParsingMerge__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder> internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage, global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.Builder> internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooRequest, global::Google.ProtocolBuffers.TestProtos.FooRequest.Builder> internal__static_protobuf_unittest_FooRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder> internal__static_protobuf_unittest_FooResponse__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooClientMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooClientMessage, global::Google.ProtocolBuffers.TestProtos.FooClientMessage.Builder> internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooServerMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooServerMessage, global::Google.ProtocolBuffers.TestProtos.FooServerMessage.Builder> internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarRequest, global::Google.ProtocolBuffers.TestProtos.BarRequest.Builder> internal__static_protobuf_unittest_BarRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder> internal__static_protobuf_unittest_BarResponse__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static Unittest() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Ch5nb29nbGUvcHJvdG9idWYvdW5pdHRlc3QucHJvdG8SEXByb3RvYnVmX3Vu",
+ "aXR0ZXN0GiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0LnByb3Rv",
+ "Iu0YCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoO",
+ "b3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgN",
+ "EhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIY",
+ "BSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2Zp",
+ "eGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRp",
+ "b25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEo",
+ "EBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUY",
+ "DCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJp",
+ "bmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSRAoNb3B0aW9uYWxn",
+ "cm91cBgQIAEoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5P",
+ "cHRpb25hbEdyb3VwEk4KF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgL",
+ "Mi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3Nh",
+ "Z2USQwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiEucHJvdG9i",
+ "dWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXb3B0aW9uYWxfaW1wb3J0",
+ "X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1w",
+ "b3J0TWVzc2FnZRJIChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIqLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFW9w",
+ "dGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LkZvcmVpZ25FbnVtEkIKFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMiQu",
+ "cHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVb3B0aW9u",
+ "YWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkg",
+ "ASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiAB",
+ "KAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVz",
+ "c2FnZRJQChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyLS5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoO",
+ "cmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMS",
+ "FwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgi",
+ "IAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2lu",
+ "dDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0",
+ "ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZ",
+ "ChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgp",
+ "IAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9v",
+ "bBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRf",
+ "Ynl0ZXMYLSADKAwSRAoNcmVwZWF0ZWRncm91cBguIAMoCjItLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwEk4KF3JlcGVh",
+ "dGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3Qu",
+ "VGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYcmVwZWF0ZWRfZm9yZWln",
+ "bl9tZXNzYWdlGDEgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1l",
+ "c3NhZ2USSAoXcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2UYMiADKAsyJy5wcm90",
+ "b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRyZXBlYXRl",
+ "ZF9uZXN0ZWRfZW51bRgzIAMoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxUeXBlcy5OZXN0ZWRFbnVtEj0KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0",
+ "IAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFHJlcGVh",
+ "dGVkX2ltcG9ydF9lbnVtGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1w",
+ "b3J0LkltcG9ydEVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJ",
+ "QgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJQChVyZXBlYXRlZF9s",
+ "YXp5X21lc3NhZ2UYOSADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "VHlwZXMuTmVzdGVkTWVzc2FnZUICKAESGQoNZGVmYXVsdF9pbnQzMhg9IAEo",
+ "BToCNDESGQoNZGVmYXVsdF9pbnQ2NBg+IAEoAzoCNDISGgoOZGVmYXVsdF91",
+ "aW50MzIYPyABKA06AjQzEhoKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NBIb",
+ "Cg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1EhoKDmRlZmF1bHRfc2ludDY0",
+ "GEIgASgSOgI0NhIbCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3EhsKD2Rl",
+ "ZmF1bHRfZml4ZWQ2NBhEIAEoBjoCNDgSHAoQZGVmYXVsdF9zZml4ZWQzMhhF",
+ "IAEoDzoCNDkSHQoQZGVmYXVsdF9zZml4ZWQ2NBhGIAEoEDoDLTUwEhsKDWRl",
+ "ZmF1bHRfZmxvYXQYRyABKAI6BDUxLjUSHQoOZGVmYXVsdF9kb3VibGUYSCAB",
+ "KAE6BTUyMDAwEhoKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZRIdCg5kZWZh",
+ "dWx0X3N0cmluZxhKIAEoCToFaGVsbG8SHAoNZGVmYXVsdF9ieXRlcxhLIAEo",
+ "DDoFd29ybGQSTAoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIqLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOgNCQVISSQoU",
+ "ZGVmYXVsdF9mb3JlaWduX2VudW0YUiABKA4yHi5wcm90b2J1Zl91bml0dGVz",
+ "dC5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVISTQoTZGVmYXVsdF9pbXBvcnRf",
+ "ZW51bRhTIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRF",
+ "bnVtOgpJTVBPUlRfQkFSEiUKFGRlZmF1bHRfc3RyaW5nX3BpZWNlGFQgASgJ",
+ "OgNhYmNCAggCEh0KDGRlZmF1bHRfY29yZBhVIAEoCToDMTIzQgIIARIWCgxv",
+ "bmVvZl91aW50MzIYbyABKA1IABJNChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhw",
+ "IAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRN",
+ "ZXNzYWdlSAASFgoMb25lb2Zfc3RyaW5nGHEgASgJSAASFQoLb25lb2ZfYnl0",
+ "ZXMYciABKAxIABobCg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFGhoKDU9w",
+ "dGlvbmFsR3JvdXASCQoBYRgRIAEoBRoaCg1SZXBlYXRlZEdyb3VwEgkKAWEY",
+ "LyABKAUiOQoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQ",
+ "AxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCK7AQoSTmVzdGVk",
+ "VGVzdEFsbFR5cGVzEjQKBWNoaWxkGAEgASgLMiUucHJvdG9idWZfdW5pdHRl",
+ "c3QuTmVzdGVkVGVzdEFsbFR5cGVzEjAKB3BheWxvYWQYAiABKAsyHy5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSPQoOcmVwZWF0ZWRfY2hpbGQY",
+ "AyADKAsyJS5wcm90b2J1Zl91bml0dGVzdC5OZXN0ZWRUZXN0QWxsVHlwZXMi",
+ "NAoUVGVzdERlcHJlY2F0ZWRGaWVsZHMSHAoQZGVwcmVjYXRlZF9pbnQzMhgB",
+ "IAEoBUICGAEiGwoORm9yZWlnbk1lc3NhZ2USCQoBYxgBIAEoBSIwChJUZXN0",
+ "UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6Ih0K",
+ "EVRlc3RBbGxFeHRlbnNpb25zKggIARCAgICAAiIkChdPcHRpb25hbEdyb3Vw",
+ "X2V4dGVuc2lvbhIJCgFhGBEgASgFIiQKF1JlcGVhdGVkR3JvdXBfZXh0ZW5z",
+ "aW9uEgkKAWEYLyABKAUimAEKE1Rlc3ROZXN0ZWRFeHRlbnNpb24yOQoEdGVz",
+ "dBIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGOoHIAEo",
+ "CToEdGVzdDJGChduZXN0ZWRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGOsHIAEoCSLVBQoMVGVzdFJl",
+ "cXVpcmVkEgkKAWEYASACKAUSDgoGZHVtbXkyGAIgASgFEgkKAWIYAyACKAUS",
+ "DgoGZHVtbXk0GAQgASgFEg4KBmR1bW15NRgFIAEoBRIOCgZkdW1teTYYBiAB",
+ "KAUSDgoGZHVtbXk3GAcgASgFEg4KBmR1bW15OBgIIAEoBRIOCgZkdW1teTkY",
+ "CSABKAUSDwoHZHVtbXkxMBgKIAEoBRIPCgdkdW1teTExGAsgASgFEg8KB2R1",
+ "bW15MTIYDCABKAUSDwoHZHVtbXkxMxgNIAEoBRIPCgdkdW1teTE0GA4gASgF",
+ "Eg8KB2R1bW15MTUYDyABKAUSDwoHZHVtbXkxNhgQIAEoBRIPCgdkdW1teTE3",
+ "GBEgASgFEg8KB2R1bW15MTgYEiABKAUSDwoHZHVtbXkxORgTIAEoBRIPCgdk",
+ "dW1teTIwGBQgASgFEg8KB2R1bW15MjEYFSABKAUSDwoHZHVtbXkyMhgWIAEo",
+ "BRIPCgdkdW1teTIzGBcgASgFEg8KB2R1bW15MjQYGCABKAUSDwoHZHVtbXky",
+ "NRgZIAEoBRIPCgdkdW1teTI2GBogASgFEg8KB2R1bW15MjcYGyABKAUSDwoH",
+ "ZHVtbXkyOBgcIAEoBRIPCgdkdW1teTI5GB0gASgFEg8KB2R1bW15MzAYHiAB",
+ "KAUSDwoHZHVtbXkzMRgfIAEoBRIPCgdkdW1teTMyGCAgASgFEgkKAWMYISAC",
+ "KAUyVgoGc2luZ2xlEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu",
+ "c2lvbnMY6AcgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVk",
+ "MlUKBW11bHRpEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv",
+ "bnMY6QcgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkIpoB",
+ "ChNUZXN0UmVxdWlyZWRGb3JlaWduEjkKEG9wdGlvbmFsX21lc3NhZ2UYASAB",
+ "KAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWQSOQoQcmVwZWF0",
+ "ZWRfbWVzc2FnZRgCIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1",
+ "aXJlZBINCgVkdW1teRgDIAEoBSJaChFUZXN0Rm9yZWlnbk5lc3RlZBJFCg5m",
+ "b3JlaWduX25lc3RlZBgBIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxUeXBlcy5OZXN0ZWRNZXNzYWdlIhIKEFRlc3RFbXB0eU1lc3NhZ2UiKgoe",
+ "VGVzdEVtcHR5TWVzc2FnZVdpdGhFeHRlbnNpb25zKggIARCAgICAAiI3ChtU",
+ "ZXN0TXVsdGlwbGVFeHRlbnNpb25SYW5nZXMqBAgqECsqBgivIBCUISoKCICA",
+ "BBCAgICAAiI0ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISCQoBYRgBIAEo",
+ "BRINCgJiYhj///9/IAEoBSJVChRUZXN0UmVjdXJzaXZlTWVzc2FnZRIyCgFh",
+ "GAEgASgLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlY3Vyc2l2ZU1lc3Nh",
+ "Z2USCQoBaRgCIAEoBSJLChRUZXN0TXV0dWFsUmVjdXJzaW9uQRIzCgJiYhgB",
+ "IAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25C",
+ "ImIKFFRlc3RNdXR1YWxSZWN1cnNpb25CEjIKAWEYASABKAsyJy5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQRIWCg5vcHRpb25hbF9p",
+ "bnQzMhgCIAEoBSKzAQoSVGVzdER1cEZpZWxkTnVtYmVyEgkKAWEYASABKAUS",
+ "NgoDZm9vGAIgASgKMikucHJvdG9idWZfdW5pdHRlc3QuVGVzdER1cEZpZWxk",
+ "TnVtYmVyLkZvbxI2CgNiYXIYAyABKAoyKS5wcm90b2J1Zl91bml0dGVzdC5U",
+ "ZXN0RHVwRmllbGROdW1iZXIuQmFyGhAKA0ZvbxIJCgFhGAEgASgFGhAKA0Jh",
+ "chIJCgFhGAEgASgFIkwKEFRlc3RFYWdlck1lc3NhZ2USOAoLc3ViX21lc3Nh",
+ "Z2UYASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNCAigA",
+ "IksKD1Rlc3RMYXp5TWVzc2FnZRI4CgtzdWJfbWVzc2FnZRgBIAEoCzIfLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0ICKAEigAIKGFRlc3ROZXN0",
+ "ZWRNZXNzYWdlSGFzQml0cxJaChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgB",
+ "IAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRNZXNzYWdlSGFz",
+ "Qml0cy5OZXN0ZWRNZXNzYWdlGocBCg1OZXN0ZWRNZXNzYWdlEiQKHG5lc3Rl",
+ "ZG1lc3NhZ2VfcmVwZWF0ZWRfaW50MzIYASADKAUSUAolbmVzdGVkbWVzc2Fn",
+ "ZV9yZXBlYXRlZF9mb3JlaWdubWVzc2FnZRgCIAMoCzIhLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LkZvcmVpZ25NZXNzYWdlIuUDChdUZXN0Q2FtZWxDYXNlRmllbGRO",
+ "YW1lcxIWCg5QcmltaXRpdmVGaWVsZBgBIAEoBRITCgtTdHJpbmdGaWVsZBgC",
+ "IAEoCRIxCglFbnVtRmllbGQYAyABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5G",
+ "b3JlaWduRW51bRI3CgxNZXNzYWdlRmllbGQYBCABKAsyIS5wcm90b2J1Zl91",
+ "bml0dGVzdC5Gb3JlaWduTWVzc2FnZRIcChBTdHJpbmdQaWVjZUZpZWxkGAUg",
+ "ASgJQgIIAhIVCglDb3JkRmllbGQYBiABKAlCAggBEh4KFlJlcGVhdGVkUHJp",
+ "bWl0aXZlRmllbGQYByADKAUSGwoTUmVwZWF0ZWRTdHJpbmdGaWVsZBgIIAMo",
+ "CRI5ChFSZXBlYXRlZEVudW1GaWVsZBgJIAMoDjIeLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LkZvcmVpZ25FbnVtEj8KFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygL",
+ "MiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USJAoYUmVwZWF0",
+ "ZWRTdHJpbmdQaWVjZUZpZWxkGAsgAygJQgIIAhIdChFSZXBlYXRlZENvcmRG",
+ "aWVsZBgMIAMoCUICCAEi1QEKElRlc3RGaWVsZE9yZGVyaW5ncxIRCglteV9z",
+ "dHJpbmcYCyABKAkSDgoGbXlfaW50GAEgASgDEhAKCG15X2Zsb2F0GGUgASgC",
+ "ElUKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGMgBIAEoCzIzLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlGicK",
+ "DU5lc3RlZE1lc3NhZ2USCgoCb28YAiABKAMSCgoCYmIYASABKAUqBAgCEAsq",
+ "BAgMEGUitgcKGFRlc3RFeHRyZW1lRGVmYXVsdFZhbHVlcxI/Cg1lc2NhcGVk",
+ "X2J5dGVzGAEgASgMOihcMDAwXDAwMVwwMDdcMDEwXDAxNFxuXHJcdFwwMTNc",
+ "XFwnXCJcMzc2EiAKDGxhcmdlX3VpbnQzMhgCIAEoDToKNDI5NDk2NzI5NRIq",
+ "CgxsYXJnZV91aW50NjQYAyABKAQ6FDE4NDQ2NzQ0MDczNzA5NTUxNjE1EiAK",
+ "C3NtYWxsX2ludDMyGAQgASgFOgstMjE0NzQ4MzY0NxIpCgtzbWFsbF9pbnQ2",
+ "NBgFIAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDcSJwoScmVhbGx5X3NtYWxs",
+ "X2ludDMyGBUgASgFOgstMjE0NzQ4MzY0OBIwChJyZWFsbHlfc21hbGxfaW50",
+ "NjQYFiABKAM6FC05MjIzMzcyMDM2ODU0Nzc1ODA4EhgKC3V0Zjhfc3RyaW5n",
+ "GAYgASgJOgPhiLQSFQoKemVyb19mbG9hdBgHIAEoAjoBMBIUCglvbmVfZmxv",
+ "YXQYCCABKAI6ATESGAoLc21hbGxfZmxvYXQYCSABKAI6AzEuNRIeChJuZWdh",
+ "dGl2ZV9vbmVfZmxvYXQYCiABKAI6Ai0xEhwKDm5lZ2F0aXZlX2Zsb2F0GAsg",
+ "ASgCOgQtMS41EhoKC2xhcmdlX2Zsb2F0GAwgASgCOgUyZSswOBIkChRzbWFs",
+ "bF9uZWdhdGl2ZV9mbG9hdBgNIAEoAjoGLThlLTI4EhcKCmluZl9kb3VibGUY",
+ "DiABKAE6A2luZhIcCg5uZWdfaW5mX2RvdWJsZRgPIAEoAToELWluZhIXCgpu",
+ "YW5fZG91YmxlGBAgASgBOgNuYW4SFgoJaW5mX2Zsb2F0GBEgASgCOgNpbmYS",
+ "GwoNbmVnX2luZl9mbG9hdBgSIAEoAjoELWluZhIWCgluYW5fZmxvYXQYEyAB",
+ "KAI6A25hbhIrCgxjcHBfdHJpZ3JhcGgYFCABKAk6FT8gPyA/PyA/PyA/Pz8g",
+ "Pz8vID8/LRIgChBzdHJpbmdfd2l0aF96ZXJvGBcgASgJOgZoZWwAbG8SIgoP",
+ "Ynl0ZXNfd2l0aF96ZXJvGBggASgMOgl3b3JcMDAwbGQSKAoWc3RyaW5nX3Bp",
+ "ZWNlX3dpdGhfemVybxgZIAEoCToEYWIAY0ICCAISIAoOY29yZF93aXRoX3pl",
+ "cm8YGiABKAk6BDEyADNCAggBEiYKEnJlcGxhY2VtZW50X3N0cmluZxgbIAEo",
+ "CToKJHt1bmtub3dufSJLChFTcGFyc2VFbnVtTWVzc2FnZRI2CgtzcGFyc2Vf",
+ "ZW51bRgBIAEoDjIhLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RTcGFyc2VFbnVt",
+ "IhkKCU9uZVN0cmluZxIMCgRkYXRhGAEgASgJIhoKCk1vcmVTdHJpbmcSDAoE",
+ "ZGF0YRgBIAMoCSIYCghPbmVCeXRlcxIMCgRkYXRhGAEgASgMIhkKCU1vcmVC",
+ "eXRlcxIMCgRkYXRhGAEgAygMIhwKDEludDMyTWVzc2FnZRIMCgRkYXRhGAEg",
+ "ASgFIh0KDVVpbnQzMk1lc3NhZ2USDAoEZGF0YRgBIAEoDSIcCgxJbnQ2NE1l",
+ "c3NhZ2USDAoEZGF0YRgBIAEoAyIdCg1VaW50NjRNZXNzYWdlEgwKBGRhdGEY",
+ "ASABKAQiGwoLQm9vbE1lc3NhZ2USDAoEZGF0YRgBIAEoCCLQAQoJVGVzdE9u",
+ "ZW9mEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAAS",
+ "NgoLZm9vX21lc3NhZ2UYAyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0",
+ "QWxsVHlwZXNIABI5Cghmb29ncm91cBgEIAEoCjIlLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RPbmVvZi5Gb29Hcm91cEgAGiAKCEZvb0dyb3VwEgkKAWEYBSAB",
+ "KAUSCQoBYhgGIAEoCUIFCgNmb28i5wEKHFRlc3RPbmVvZkJhY2t3YXJkc0Nv",
+ "bXBhdGlibGUSDwoHZm9vX2ludBgBIAEoBRISCgpmb29fc3RyaW5nGAIgASgJ",
+ "EjQKC2Zvb19tZXNzYWdlGAMgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVz",
+ "dEFsbFR5cGVzEkoKCGZvb2dyb3VwGAQgASgKMjgucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdE9uZW9mQmFja3dhcmRzQ29tcGF0aWJsZS5Gb29Hcm91cBogCghG",
+ "b29Hcm91cBIJCgFhGAUgASgFEgkKAWIYBiABKAkingYKClRlc3RPbmVvZjIS",
+ "EQoHZm9vX2ludBgBIAEoBUgAEhQKCmZvb19zdHJpbmcYAiABKAlIABIWCghm",
+ "b29fY29yZBgDIAEoCUICCAFIABIeChBmb29fc3RyaW5nX3BpZWNlGAQgASgJ",
+ "QgIIAkgAEhMKCWZvb19ieXRlcxgFIAEoDEgAEjwKCGZvb19lbnVtGAYgASgO",
+ "MigucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtSAAS",
+ "QgoLZm9vX21lc3NhZ2UYByABKAsyKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0",
+ "T25lb2YyLk5lc3RlZE1lc3NhZ2VIABI6Cghmb29ncm91cBgIIAEoCjImLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuRm9vR3JvdXBIABJLChBmb29f",
+ "bGF6eV9tZXNzYWdlGAsgASgLMisucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9u",
+ "ZW9mMi5OZXN0ZWRNZXNzYWdlQgIoAUgAEhQKB2Jhcl9pbnQYDCABKAU6ATVI",
+ "ARIcCgpiYXJfc3RyaW5nGA0gASgJOgZTVFJJTkdIARIcCghiYXJfY29yZBgO",
+ "IAEoCToEQ09SREICCAFIARImChBiYXJfc3RyaW5nX3BpZWNlGA8gASgJOgZT",
+ "UElFQ0VCAggCSAESGgoJYmFyX2J5dGVzGBAgASgMOgVCWVRFU0gBEkEKCGJh",
+ "cl9lbnVtGBEgASgOMigucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5O",
+ "ZXN0ZWRFbnVtOgNCQVJIARIPCgdiYXpfaW50GBIgASgFEhcKCmJhel9zdHJp",
+ "bmcYEyABKAk6A0JBWhogCghGb29Hcm91cBIJCgFhGAkgASgFEgkKAWIYCiAB",
+ "KAkaMwoNTmVzdGVkTWVzc2FnZRIPCgdxdXhfaW50GAEgASgDEhEKCWNvcmdl",
+ "X2ludBgCIAMoBSInCgpOZXN0ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcK",
+ "A0JBWhADQgUKA2Zvb0IFCgNiYXIiuAEKEVRlc3RSZXF1aXJlZE9uZW9mEhEK",
+ "B2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAASSQoLZm9v",
+ "X21lc3NhZ2UYAyABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWly",
+ "ZWRPbmVvZi5OZXN0ZWRNZXNzYWdlSAAaKAoNTmVzdGVkTWVzc2FnZRIXCg9y",
+ "ZXF1aXJlZF9kb3VibGUYASACKAFCBQoDZm9vIqoDCg9UZXN0UGFja2VkVHlw",
+ "ZXMSGAoMcGFja2VkX2ludDMyGFogAygFQgIQARIYCgxwYWNrZWRfaW50NjQY",
+ "WyADKANCAhABEhkKDXBhY2tlZF91aW50MzIYXCADKA1CAhABEhkKDXBhY2tl",
+ "ZF91aW50NjQYXSADKARCAhABEhkKDXBhY2tlZF9zaW50MzIYXiADKBFCAhAB",
+ "EhkKDXBhY2tlZF9zaW50NjQYXyADKBJCAhABEhoKDnBhY2tlZF9maXhlZDMy",
+ "GGAgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAESGwoPcGFj",
+ "a2VkX3NmaXhlZDMyGGIgAygPQgIQARIbCg9wYWNrZWRfc2ZpeGVkNjQYYyAD",
+ "KBBCAhABEhgKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAESGQoNcGFja2VkX2Rv",
+ "dWJsZRhlIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYZiADKAhCAhABEjcKC3Bh",
+ "Y2tlZF9lbnVtGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVu",
+ "dW1CAhABIsgDChFUZXN0VW5wYWNrZWRUeXBlcxIaCg51bnBhY2tlZF9pbnQz",
+ "MhhaIAMoBUICEAASGgoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAEhsKD3Vu",
+ "cGFja2VkX3VpbnQzMhhcIAMoDUICEAASGwoPdW5wYWNrZWRfdWludDY0GF0g",
+ "AygEQgIQABIbCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAEhsKD3VucGFj",
+ "a2VkX3NpbnQ2NBhfIAMoEkICEAASHAoQdW5wYWNrZWRfZml4ZWQzMhhgIAMo",
+ "B0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAASHQoRdW5wYWNr",
+ "ZWRfc2ZpeGVkMzIYYiADKA9CAhAAEh0KEXVucGFja2VkX3NmaXhlZDY0GGMg",
+ "AygQQgIQABIaCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEAASGwoPdW5wYWNr",
+ "ZWRfZG91YmxlGGUgAygBQgIQABIZCg11bnBhY2tlZF9ib29sGGYgAygIQgIQ",
+ "ABI5Cg11bnBhY2tlZF9lbnVtGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3Qu",
+ "Rm9yZWlnbkVudW1CAhAAIiAKFFRlc3RQYWNrZWRFeHRlbnNpb25zKggIARCA",
+ "gICAAiIiChZUZXN0VW5wYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiKZBAoV",
+ "VGVzdER5bmFtaWNFeHRlbnNpb25zEhkKEHNjYWxhcl9leHRlbnNpb24Y0A8g",
+ "ASgHEjcKDmVudW1fZXh0ZW5zaW9uGNEPIAEoDjIeLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LkZvcmVpZ25FbnVtElkKFmR5bmFtaWNfZW51bV9leHRlbnNpb24Y0g8g",
+ "ASgOMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdER5bmFtaWNFeHRlbnNpb25z",
+ "LkR5bmFtaWNFbnVtVHlwZRI9ChFtZXNzYWdlX2V4dGVuc2lvbhjTDyABKAsy",
+ "IS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJfChlkeW5hbWlj",
+ "X21lc3NhZ2VfZXh0ZW5zaW9uGNQPIAEoCzI7LnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljTWVzc2FnZVR5cGUSGwoS",
+ "cmVwZWF0ZWRfZXh0ZW5zaW9uGNUPIAMoCRIdChBwYWNrZWRfZXh0ZW5zaW9u",
+ "GNYPIAMoEUICEAEaLAoSRHluYW1pY01lc3NhZ2VUeXBlEhYKDWR5bmFtaWNf",
+ "ZmllbGQYtBAgASgFIkcKD0R5bmFtaWNFbnVtVHlwZRIQCgtEWU5BTUlDX0ZP",
+ "TxCYERIQCgtEWU5BTUlDX0JBUhCZERIQCgtEWU5BTUlDX0JBWhCaESLAAQoj",
+ "VGVzdFJlcGVhdGVkU2NhbGFyRGlmZmVyZW50VGFnU2l6ZXMSGAoQcmVwZWF0",
+ "ZWRfZml4ZWQzMhgMIAMoBxIWCg5yZXBlYXRlZF9pbnQzMhgNIAMoBRIZChBy",
+ "ZXBlYXRlZF9maXhlZDY0GP4PIAMoBhIXCg5yZXBlYXRlZF9pbnQ2NBj/DyAD",
+ "KAMSGAoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAhIZCg9yZXBlYXRlZF91aW50",
+ "NjQY//8PIAMoBCL3CQoQVGVzdFBhcnNpbmdNZXJnZRI7ChJyZXF1aXJlZF9h",
+ "bGxfdHlwZXMYASACKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlw",
+ "ZXMSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAIgASgLMh8ucHJvdG9idWZfdW5p",
+ "dHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgDIAMo",
+ "CzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxJICg1vcHRpb25h",
+ "bGdyb3VwGAogASgKMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdN",
+ "ZXJnZS5PcHRpb25hbEdyb3VwEkgKDXJlcGVhdGVkZ3JvdXAYFCADKAoyMS5w",
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkR3Jv",
+ "dXAaqgQKF1JlcGVhdGVkRmllbGRzR2VuZXJhdG9yEi8KBmZpZWxkMRgBIAMo",
+ "CzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxIvCgZmaWVsZDIY",
+ "AiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSLwoGZmll",
+ "bGQzGAMgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzElIK",
+ "Bmdyb3VwMRgKIAMoCjJCLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5n",
+ "TWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAxElIKBmdyb3Vw",
+ "MhgUIAMoCjJCLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2Uu",
+ "UmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAyEi4KBGV4dDEY6AcgAygL",
+ "Mh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEi4KBGV4dDIY6Qcg",
+ "AygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzGjkKBkdyb3Vw",
+ "MRIvCgZmaWVsZDEYCyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "VHlwZXMaOQoGR3JvdXAyEi8KBmZpZWxkMRgVIAEoCzIfLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LlRlc3RBbGxUeXBlcxpSCg1PcHRpb25hbEdyb3VwEkEKGG9wdGlv",
+ "bmFsX2dyb3VwX2FsbF90eXBlcxgLIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RBbGxUeXBlcxpSCg1SZXBlYXRlZEdyb3VwEkEKGHJlcGVhdGVkX2dy",
+ "b3VwX2FsbF90eXBlcxgVIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxUeXBlcyoJCOgHEICAgIACMlsKDG9wdGlvbmFsX2V4dBIjLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UY6AcgASgLMh8ucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbFR5cGVzMlsKDHJlcGVhdGVkX2V4dBIjLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UY6QcgAygLMh8ucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIkQKG1Rlc3RDb21tZW50SW5qZWN0",
+ "aW9uTWVzc2FnZRIlCgFhGAEgASgJOhoqLyA8LSBOZWl0aGVyIHNob3VsZCB0",
+ "aGlzLiIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVu",
+ "dE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0K",
+ "C0JhclJlc3BvbnNlKkAKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05fRk9PEAQS",
+ "DwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGKksKFFRlc3RFbnVt",
+ "V2l0aER1cFZhbHVlEggKBEZPTzEQARIICgRCQVIxEAISBwoDQkFaEAMSCAoE",
+ "Rk9PMhABEggKBEJBUjIQAhoCEAEqiQEKDlRlc3RTcGFyc2VFbnVtEgwKCFNQ",
+ "QVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoI",
+ "U1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwK",
+ "CFNQQVJTRV9GEAASDAoIU1BBUlNFX0cQAjKZAQoLVGVzdFNlcnZpY2USRAoD",
+ "Rm9vEh0ucHJvdG9idWZfdW5pdHRlc3QuRm9vUmVxdWVzdBoeLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LkZvb1Jlc3BvbnNlEkQKA0JhchIdLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LkJhclJlcXVlc3QaHi5wcm90b2J1Zl91bml0dGVzdC5CYXJSZXNwb25z",
+ "ZTpGChhvcHRpb25hbF9pbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0",
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgBIAEoBTpGChhvcHRpb25hbF9pbnQ2",
+ "NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5z",
+ "aW9ucxgCIAEoAzpHChlvcHRpb25hbF91aW50MzJfZXh0ZW5zaW9uEiQucHJv",
+ "dG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYAyABKA06RwoZb3B0",
+ "aW9uYWxfdWludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxFeHRlbnNpb25zGAQgASgEOkcKGW9wdGlvbmFsX3NpbnQzMl9leHRl",
+ "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgF",
+ "IAEoETpHChlvcHRpb25hbF9zaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYBiABKBI6SAoab3B0aW9uYWxf",
+ "Zml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "RXh0ZW5zaW9ucxgHIAEoBzpIChpvcHRpb25hbF9maXhlZDY0X2V4dGVuc2lv",
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAggASgG",
+ "OkkKG29wdGlvbmFsX3NmaXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAkgASgPOkkKG29wdGlvbmFsX3Nm",
+ "aXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF",
+ "eHRlbnNpb25zGAogASgQOkYKGG9wdGlvbmFsX2Zsb2F0X2V4dGVuc2lvbhIk",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAsgASgCOkcK",
+ "GW9wdGlvbmFsX2RvdWJsZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0QWxsRXh0ZW5zaW9ucxgMIAEoATpFChdvcHRpb25hbF9ib29sX2V4",
+ "dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25z",
+ "GA0gASgIOkcKGW9wdGlvbmFsX3N0cmluZ19leHRlbnNpb24SJC5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgOIAEoCTpGChhvcHRpb25h",
+ "bF9ieXRlc19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "RXh0ZW5zaW9ucxgPIAEoDDpxChdvcHRpb25hbGdyb3VwX2V4dGVuc2lvbhIk",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBAgASgKMiou",
+ "cHJvdG9idWZfdW5pdHRlc3QuT3B0aW9uYWxHcm91cF9leHRlbnNpb246fgoh",
+ "b3B0aW9uYWxfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYEiABKAsyLS5wcm90b2J1Zl91",
+ "bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZTpzCiJvcHRpb25h",
+ "bF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYEyABKAsyIS5wcm90b2J1Zl91bml0dGVz",
+ "dC5Gb3JlaWduTWVzc2FnZTp4CiFvcHRpb25hbF9pbXBvcnRfbWVzc2FnZV9l",
+ "eHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9u",
+ "cxgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNz",
+ "YWdlOngKHm9wdGlvbmFsX25lc3RlZF9lbnVtX2V4dGVuc2lvbhIkLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBUgASgOMioucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06bQofb3B0aW9u",
+ "YWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RBbGxFeHRlbnNpb25zGBYgASgOMh4ucHJvdG9idWZfdW5pdHRlc3Qu",
+ "Rm9yZWlnbkVudW06cgoeb3B0aW9uYWxfaW1wb3J0X2VudW1fZXh0ZW5zaW9u",
+ "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFyABKA4y",
+ "JC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bTpRCh9vcHRp",
+ "b25hbF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYGCABKAlCAggCOkkKF29wdGlvbmFsX2Nv",
+ "cmRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu",
+ "c2lvbnMYGSABKAlCAggBOoUBCihvcHRpb25hbF9wdWJsaWNfaW1wb3J0X21l",
+ "c3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4",
+ "dGVuc2lvbnMYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVi",
+ "bGljSW1wb3J0TWVzc2FnZTqAAQofb3B0aW9uYWxfbGF6eV9tZXNzYWdlX2V4",
+ "dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25z",
+ "GBsgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3Rl",
+ "ZE1lc3NhZ2VCAigBOkYKGHJlcGVhdGVkX2ludDMyX2V4dGVuc2lvbhIkLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGB8gAygFOkYKGHJl",
+ "cGVhdGVkX2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxFeHRlbnNpb25zGCAgAygDOkcKGXJlcGVhdGVkX3VpbnQzMl9leHRl",
+ "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgh",
+ "IAMoDTpHChlyZXBlYXRlZF91aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYIiADKAQ6RwoZcmVwZWF0ZWRf",
+ "c2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF",
+ "eHRlbnNpb25zGCMgAygROkcKGXJlcGVhdGVkX3NpbnQ2NF9leHRlbnNpb24S",
+ "JC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgkIAMoEjpI",
+ "ChpyZXBlYXRlZF9maXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCUgAygHOkgKGnJlcGVhdGVkX2ZpeGVk",
+ "NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu",
+ "c2lvbnMYJiADKAY6SQobcmVwZWF0ZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEiQu",
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJyADKA86SQob",
+ "cmVwZWF0ZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYKCADKBA6RgoYcmVwZWF0ZWRfZmxvYXRf",
+ "ZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv",
+ "bnMYKSADKAI6RwoZcmVwZWF0ZWRfZG91YmxlX2V4dGVuc2lvbhIkLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCogAygBOkUKF3JlcGVh",
+ "dGVkX2Jvb2xfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFs",
+ "bEV4dGVuc2lvbnMYKyADKAg6RwoZcmVwZWF0ZWRfc3RyaW5nX2V4dGVuc2lv",
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCwgAygJ",
+ "OkYKGHJlcGVhdGVkX2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGC0gAygMOnEKF3JlcGVhdGVkZ3JvdXBf",
+ "ZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv",
+ "bnMYLiADKAoyKi5wcm90b2J1Zl91bml0dGVzdC5SZXBlYXRlZEdyb3VwX2V4",
+ "dGVuc2lvbjp+CiFyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24S",
+ "JC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgwIAMoCzIt",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdl",
+ "OnMKInJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb24SJC5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgxIAMoCzIhLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlOngKIXJlcGVhdGVkX2ltcG9y",
+ "dF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxFeHRlbnNpb25zGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0",
+ "LkltcG9ydE1lc3NhZ2U6eAoecmVwZWF0ZWRfbmVzdGVkX2VudW1fZXh0ZW5z",
+ "aW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYMyAD",
+ "KA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51",
+ "bTptCh9yZXBlYXRlZF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNCADKA4yHi5wcm90b2J1",
+ "Zl91bml0dGVzdC5Gb3JlaWduRW51bTpyCh5yZXBlYXRlZF9pbXBvcnRfZW51",
+ "bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5z",
+ "aW9ucxg1IAMoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRF",
+ "bnVtOlEKH3JlcGVhdGVkX3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg2IAMoCUICCAI6SQoX",
+ "cmVwZWF0ZWRfY29yZF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5U",
+ "ZXN0QWxsRXh0ZW5zaW9ucxg3IAMoCUICCAE6gAEKH3JlcGVhdGVkX2xhenlf",
+ "bWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "RXh0ZW5zaW9ucxg5IAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxU",
+ "eXBlcy5OZXN0ZWRNZXNzYWdlQgIoATpJChdkZWZhdWx0X2ludDMyX2V4dGVu",
+ "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD0g",
+ "ASgFOgI0MTpJChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD4gASgDOgI0MjpKChhkZWZh",
+ "dWx0X3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0",
+ "QWxsRXh0ZW5zaW9ucxg/IAEoDToCNDM6SgoYZGVmYXVsdF91aW50NjRfZXh0",
+ "ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY",
+ "QCABKAQ6AjQ0OksKGGRlZmF1bHRfc2ludDMyX2V4dGVuc2lvbhIkLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEEgASgROgMtNDU6SgoY",
+ "ZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3Qu",
+ "VGVzdEFsbEV4dGVuc2lvbnMYQiABKBI6AjQ2OksKGWRlZmF1bHRfZml4ZWQz",
+ "Ml9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5z",
+ "aW9ucxhDIAEoBzoCNDc6SwoZZGVmYXVsdF9maXhlZDY0X2V4dGVuc2lvbhIk",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEQgASgGOgI0",
+ "ODpMChpkZWZhdWx0X3NmaXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEUgASgPOgI0OTpNChpkZWZhdWx0",
+ "X3NmaXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxFeHRlbnNpb25zGEYgASgQOgMtNTA6SwoXZGVmYXVsdF9mbG9hdF9leHRl",
+ "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhH",
+ "IAEoAjoENTEuNTpNChhkZWZhdWx0X2RvdWJsZV9leHRlbnNpb24SJC5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhIIAEoAToFNTIwMDA6",
+ "SgoWZGVmYXVsdF9ib29sX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RBbGxFeHRlbnNpb25zGEkgASgIOgR0cnVlOk0KGGRlZmF1bHRfc3Ry",
+ "aW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRl",
+ "bnNpb25zGEogASgJOgVoZWxsbzpMChdkZWZhdWx0X2J5dGVzX2V4dGVuc2lv",
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEsgASgM",
+ "OgV3b3JsZDp8Ch1kZWZhdWx0X25lc3RlZF9lbnVtX2V4dGVuc2lvbhIkLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFEgASgOMioucHJv",
+ "dG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUjp5",
+ "Ch5kZWZhdWx0X2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91",
+ "bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhSIAEoDjIeLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUjp9Ch1kZWZhdWx0X2lt",
+ "cG9ydF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxFeHRlbnNpb25zGFMgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0",
+ "LkltcG9ydEVudW06CklNUE9SVF9CQVI6VQoeZGVmYXVsdF9zdHJpbmdfcGll",
+ "Y2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu",
+ "c2lvbnMYVCABKAk6A2FiY0ICCAI6TQoWZGVmYXVsdF9jb3JkX2V4dGVuc2lv",
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFUgASgJ",
+ "OgMxMjNCAggBOkQKFm9uZW9mX3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhvIAEoDTp7Ch5vbmVvZl9u",
+ "ZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5U",
+ "ZXN0QWxsRXh0ZW5zaW9ucxhwIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlOkQKFm9uZW9mX3N0cmluZ19leHRl",
+ "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhx",
+ "IAEoCTpDChVvbmVvZl9ieXRlc19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0",
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhyIAEoDDpCChNteV9leHRlbnNpb25f",
+ "c3RyaW5nEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdz",
+ "GDIgASgJOj8KEG15X2V4dGVuc2lvbl9pbnQSJS5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0RmllbGRPcmRlcmluZ3MYBSABKAU6SwoWcGFja2VkX2ludDMyX2V4",
+ "dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNp",
+ "b25zGFogAygFQgIQATpLChZwYWNrZWRfaW50NjRfZXh0ZW5zaW9uEicucHJv",
+ "dG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWyADKANCAhAB",
+ "OkwKF3BhY2tlZF91aW50MzJfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhABOkwKF3BhY2tlZF91",
+ "aW50NjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tl",
+ "ZEV4dGVuc2lvbnMYXSADKARCAhABOkwKF3BhY2tlZF9zaW50MzJfZXh0ZW5z",
+ "aW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMY",
+ "XiADKBFCAhABOkwKF3BhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEicucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhABOk0K",
+ "GHBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RQYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQATpNChhwYWNrZWRfZml4",
+ "ZWQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2Vk",
+ "RXh0ZW5zaW9ucxhhIAMoBkICEAE6TgoZcGFja2VkX3NmaXhlZDMyX2V4dGVu",
+ "c2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25z",
+ "GGIgAygPQgIQATpOChlwYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEicucHJv",
+ "dG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYyADKBBCAhAB",
+ "OksKFnBhY2tlZF9mbG9hdF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEAE6TAoXcGFja2VkX2Rv",
+ "dWJsZV9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2Vk",
+ "RXh0ZW5zaW9ucxhlIAMoAUICEAE6SgoVcGFja2VkX2Jvb2xfZXh0ZW5zaW9u",
+ "EicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZiAD",
+ "KAhCAhABOmoKFXBhY2tlZF9lbnVtX2V4dGVuc2lvbhInLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGcgAygOMh4ucHJvdG9idWZf",
+ "dW5pdHRlc3QuRm9yZWlnbkVudW1CAhABOk8KGHVucGFja2VkX2ludDMyX2V4",
+ "dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVu",
+ "c2lvbnMYWiADKAVCAhAAOk8KGHVucGFja2VkX2ludDY0X2V4dGVuc2lvbhIp",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWyAD",
+ "KANCAhAAOlAKGXVucGFja2VkX3VpbnQzMl9leHRlbnNpb24SKS5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQADpQ",
+ "Chl1bnBhY2tlZF91aW50NjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhdIAMoBEICEAA6UAoZdW5wYWNr",
+ "ZWRfc2ludDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RV",
+ "bnBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhAAOlAKGXVucGFja2VkX3NpbnQ2",
+ "NF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRF",
+ "eHRlbnNpb25zGF8gAygSQgIQADpRChp1bnBhY2tlZF9maXhlZDMyX2V4dGVu",
+ "c2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lv",
+ "bnMYYCADKAdCAhAAOlEKGnVucGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEiku",
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhhIAMo",
+ "BkICEAA6UgobdW5wYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEikucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhiIAMoD0ICEAA6",
+ "UgobdW5wYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5p",
+ "dHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEAA6TwoYdW5w",
+ "YWNrZWRfZmxvYXRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVz",
+ "dFVucGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEAA6UAoZdW5wYWNrZWRfZG91",
+ "YmxlX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tl",
+ "ZEV4dGVuc2lvbnMYZSADKAFCAhAAOk4KF3VucGFja2VkX2Jvb2xfZXh0ZW5z",
+ "aW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9u",
+ "cxhmIAMoCEICEAA6bgoXdW5wYWNrZWRfZW51bV9leHRlbnNpb24SKS5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGcgAygOMh4u",
+ "cHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhAAQkFCDVVuaXR0ZXN0",
+ "UHJvdG9IAYABAYgBAZABAfgBAaoCIUdvb2dsZS5Qcm90b2NvbEJ1ZmZlcnMu",
+ "VGVzdFByb3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_TestAllTypes__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder>(internal__static_protobuf_unittest_TestAllTypes__Descriptor,
+ new string[] { "OptionalInt32", "OptionalInt64", "OptionalUint32", "OptionalUint64", "OptionalSint32", "OptionalSint64", "OptionalFixed32", "OptionalFixed64", "OptionalSfixed32", "OptionalSfixed64", "OptionalFloat", "OptionalDouble", "OptionalBool", "OptionalString", "OptionalBytes", "OptionalGroup", "OptionalNestedMessage", "OptionalForeignMessage", "OptionalImportMessage", "OptionalNestedEnum", "OptionalForeignEnum", "OptionalImportEnum", "OptionalStringPiece", "OptionalCord", "OptionalPublicImportMessage", "OptionalLazyMessage", "RepeatedInt32", "RepeatedInt64", "RepeatedUint32", "RepeatedUint64", "RepeatedSint32", "RepeatedSint64", "RepeatedFixed32", "RepeatedFixed64", "RepeatedSfixed32", "RepeatedSfixed64", "RepeatedFloat", "RepeatedDouble", "RepeatedBool", "RepeatedString", "RepeatedBytes", "RepeatedGroup", "RepeatedNestedMessage", "RepeatedForeignMessage", "RepeatedImportMessage", "RepeatedNestedEnum", "RepeatedForeignEnum", "RepeatedImportEnum", "RepeatedStringPiece", "RepeatedCord", "RepeatedLazyMessage", "DefaultInt32", "DefaultInt64", "DefaultUint32", "DefaultUint64", "DefaultSint32", "DefaultSint64", "DefaultFixed32", "DefaultFixed64", "DefaultSfixed32", "DefaultSfixed64", "DefaultFloat", "DefaultDouble", "DefaultBool", "DefaultString", "DefaultBytes", "DefaultNestedEnum", "DefaultForeignEnum", "DefaultImportEnum", "DefaultStringPiece", "DefaultCord", "OneofUint32", "OneofNestedMessage", "OneofString", "OneofBytes", "OneofField", });
+ internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor,
+ new string[] { "Bb", });
+ internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder>(internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[2];
+ internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder>(internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder>(internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor,
+ new string[] { "Child", "Payload", "RepeatedChild", });
+ internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields, global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Builder>(internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor,
+ new string[] { "DeprecatedInt32", });
+ internal__static_protobuf_unittest_ForeignMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder>(internal__static_protobuf_unittest_ForeignMessage__Descriptor,
+ new string[] { "C", });
+ internal__static_protobuf_unittest_TestReservedFields__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReservedFields, global::Google.ProtocolBuffers.TestProtos.TestReservedFields.Builder>(internal__static_protobuf_unittest_TestReservedFields__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestAllExtensions__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllExtensions, global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Builder>(internal__static_protobuf_unittest_TestAllExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Builder>(internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor = Descriptor.MessageTypes[7];
+ internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Builder>(internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestNestedExtension__Descriptor = Descriptor.MessageTypes[8];
+ internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedExtension, global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Builder>(internal__static_protobuf_unittest_TestNestedExtension__Descriptor,
+ new string[] { });
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.NestedStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestRequired__Descriptor = Descriptor.MessageTypes[9];
+ internal__static_protobuf_unittest_TestRequired__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequired, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder>(internal__static_protobuf_unittest_TestRequired__Descriptor,
+ new string[] { "A", "Dummy2", "B", "Dummy4", "Dummy5", "Dummy6", "Dummy7", "Dummy8", "Dummy9", "Dummy10", "Dummy11", "Dummy12", "Dummy13", "Dummy14", "Dummy15", "Dummy16", "Dummy17", "Dummy18", "Dummy19", "Dummy20", "Dummy21", "Dummy22", "Dummy23", "Dummy24", "Dummy25", "Dummy26", "Dummy27", "Dummy28", "Dummy29", "Dummy30", "Dummy31", "Dummy32", "C", });
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Single = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestRequired>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestRequired>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestRequiredForeign__Descriptor = Descriptor.MessageTypes[10];
+ internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign, global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Builder>(internal__static_protobuf_unittest_TestRequiredForeign__Descriptor,
+ new string[] { "OptionalMessage", "RepeatedMessage", "Dummy", });
+ internal__static_protobuf_unittest_TestForeignNested__Descriptor = Descriptor.MessageTypes[11];
+ internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestForeignNested, global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Builder>(internal__static_protobuf_unittest_TestForeignNested__Descriptor,
+ new string[] { "ForeignNested", });
+ internal__static_protobuf_unittest_TestEmptyMessage__Descriptor = Descriptor.MessageTypes[12];
+ internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Builder>(internal__static_protobuf_unittest_TestEmptyMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor = Descriptor.MessageTypes[13];
+ internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Builder>(internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor = Descriptor.MessageTypes[14];
+ internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges, global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Builder>(internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor = Descriptor.MessageTypes[15];
+ internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber, global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Builder>(internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor,
+ new string[] { "A", "Bb", });
+ internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor = Descriptor.MessageTypes[16];
+ internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage, global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder>(internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor,
+ new string[] { "A", "I", });
+ internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor = Descriptor.MessageTypes[17];
+ internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder>(internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor,
+ new string[] { "Bb", });
+ internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor = Descriptor.MessageTypes[18];
+ internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder>(internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor,
+ new string[] { "A", "OptionalInt32", });
+ internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor = Descriptor.MessageTypes[19];
+ internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor,
+ new string[] { "A", "Foo", "Bar", });
+ internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor = internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor = internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestEagerMessage__Descriptor = Descriptor.MessageTypes[20];
+ internal__static_protobuf_unittest_TestEagerMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEagerMessage, global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.Builder>(internal__static_protobuf_unittest_TestEagerMessage__Descriptor,
+ new string[] { "SubMessage", });
+ internal__static_protobuf_unittest_TestLazyMessage__Descriptor = Descriptor.MessageTypes[21];
+ internal__static_protobuf_unittest_TestLazyMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestLazyMessage, global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.Builder>(internal__static_protobuf_unittest_TestLazyMessage__Descriptor,
+ new string[] { "SubMessage", });
+ internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor = Descriptor.MessageTypes[22];
+ internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Builder>(internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor,
+ new string[] { "OptionalNestedMessage", });
+ internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor,
+ new string[] { "NestedmessageRepeatedInt32", "NestedmessageRepeatedForeignmessage", });
+ internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor = Descriptor.MessageTypes[23];
+ internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames, global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Builder>(internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor,
+ new string[] { "PrimitiveField", "StringField", "EnumField", "MessageField", "StringPieceField", "CordField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedStringPieceField", "RepeatedCordField", });
+ internal__static_protobuf_unittest_TestFieldOrderings__Descriptor = Descriptor.MessageTypes[24];
+ internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Builder>(internal__static_protobuf_unittest_TestFieldOrderings__Descriptor,
+ new string[] { "MyString", "MyInt", "MyFloat", "OptionalNestedMessage", });
+ internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestFieldOrderings__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor,
+ new string[] { "Oo", "Bb", });
+ internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor = Descriptor.MessageTypes[25];
+ internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues, global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Builder>(internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor,
+ new string[] { "EscapedBytes", "LargeUint32", "LargeUint64", "SmallInt32", "SmallInt64", "ReallySmallInt32", "ReallySmallInt64", "Utf8String", "ZeroFloat", "OneFloat", "SmallFloat", "NegativeOneFloat", "NegativeFloat", "LargeFloat", "SmallNegativeFloat", "InfDouble", "NegInfDouble", "NanDouble", "InfFloat", "NegInfFloat", "NanFloat", "CppTrigraph", "StringWithZero", "BytesWithZero", "StringPieceWithZero", "CordWithZero", "ReplacementString", });
+ internal__static_protobuf_unittest_SparseEnumMessage__Descriptor = Descriptor.MessageTypes[26];
+ internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage, global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.Builder>(internal__static_protobuf_unittest_SparseEnumMessage__Descriptor,
+ new string[] { "SparseEnum", });
+ internal__static_protobuf_unittest_OneString__Descriptor = Descriptor.MessageTypes[27];
+ internal__static_protobuf_unittest_OneString__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneString, global::Google.ProtocolBuffers.TestProtos.OneString.Builder>(internal__static_protobuf_unittest_OneString__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_MoreString__Descriptor = Descriptor.MessageTypes[28];
+ internal__static_protobuf_unittest_MoreString__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreString, global::Google.ProtocolBuffers.TestProtos.MoreString.Builder>(internal__static_protobuf_unittest_MoreString__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_OneBytes__Descriptor = Descriptor.MessageTypes[29];
+ internal__static_protobuf_unittest_OneBytes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneBytes, global::Google.ProtocolBuffers.TestProtos.OneBytes.Builder>(internal__static_protobuf_unittest_OneBytes__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_MoreBytes__Descriptor = Descriptor.MessageTypes[30];
+ internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreBytes, global::Google.ProtocolBuffers.TestProtos.MoreBytes.Builder>(internal__static_protobuf_unittest_MoreBytes__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Int32Message__Descriptor = Descriptor.MessageTypes[31];
+ internal__static_protobuf_unittest_Int32Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int32Message, global::Google.ProtocolBuffers.TestProtos.Int32Message.Builder>(internal__static_protobuf_unittest_Int32Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Uint32Message__Descriptor = Descriptor.MessageTypes[32];
+ internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint32Message, global::Google.ProtocolBuffers.TestProtos.Uint32Message.Builder>(internal__static_protobuf_unittest_Uint32Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Int64Message__Descriptor = Descriptor.MessageTypes[33];
+ internal__static_protobuf_unittest_Int64Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int64Message, global::Google.ProtocolBuffers.TestProtos.Int64Message.Builder>(internal__static_protobuf_unittest_Int64Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Uint64Message__Descriptor = Descriptor.MessageTypes[34];
+ internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint64Message, global::Google.ProtocolBuffers.TestProtos.Uint64Message.Builder>(internal__static_protobuf_unittest_Uint64Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_BoolMessage__Descriptor = Descriptor.MessageTypes[35];
+ internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BoolMessage, global::Google.ProtocolBuffers.TestProtos.BoolMessage.Builder>(internal__static_protobuf_unittest_BoolMessage__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_TestOneof__Descriptor = Descriptor.MessageTypes[36];
+ internal__static_protobuf_unittest_TestOneof__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof, global::Google.ProtocolBuffers.TestProtos.TestOneof.Builder>(internal__static_protobuf_unittest_TestOneof__Descriptor,
+ new string[] { "FooInt", "FooString", "FooMessage", "FooGroup", "Foo", });
+ internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor = internal__static_protobuf_unittest_TestOneof__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestOneof_FooGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder>(internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor,
+ new string[] { "A", "B", });
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor = Descriptor.MessageTypes[37];
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Builder>(internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor,
+ new string[] { "FooInt", "FooString", "FooMessage", "FooGroup", });
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor = internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder>(internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor,
+ new string[] { "A", "B", });
+ internal__static_protobuf_unittest_TestOneof2__Descriptor = Descriptor.MessageTypes[38];
+ internal__static_protobuf_unittest_TestOneof2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Builder>(internal__static_protobuf_unittest_TestOneof2__Descriptor,
+ new string[] { "FooInt", "FooString", "FooCord", "FooStringPiece", "FooBytes", "FooEnum", "FooMessage", "FooGroup", "FooLazyMessage", "BarInt", "BarString", "BarCord", "BarStringPiece", "BarBytes", "BarEnum", "BazInt", "BazString", "Foo", "Bar", });
+ internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor = internal__static_protobuf_unittest_TestOneof2__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestOneof2_FooGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder>(internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor,
+ new string[] { "A", "B", });
+ internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestOneof2__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestOneof2_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor,
+ new string[] { "QuxInt", "CorgeInt", });
+ internal__static_protobuf_unittest_TestRequiredOneof__Descriptor = Descriptor.MessageTypes[39];
+ internal__static_protobuf_unittest_TestRequiredOneof__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Builder>(internal__static_protobuf_unittest_TestRequiredOneof__Descriptor,
+ new string[] { "FooInt", "FooString", "FooMessage", "Foo", });
+ internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestRequiredOneof__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor,
+ new string[] { "RequiredDouble", });
+ internal__static_protobuf_unittest_TestPackedTypes__Descriptor = Descriptor.MessageTypes[40];
+ internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedTypes, global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Builder>(internal__static_protobuf_unittest_TestPackedTypes__Descriptor,
+ new string[] { "PackedInt32", "PackedInt64", "PackedUint32", "PackedUint64", "PackedSint32", "PackedSint64", "PackedFixed32", "PackedFixed64", "PackedSfixed32", "PackedSfixed64", "PackedFloat", "PackedDouble", "PackedBool", "PackedEnum", });
+ internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor = Descriptor.MessageTypes[41];
+ internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes, global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Builder>(internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor,
+ new string[] { "UnpackedInt32", "UnpackedInt64", "UnpackedUint32", "UnpackedUint64", "UnpackedSint32", "UnpackedSint64", "UnpackedFixed32", "UnpackedFixed64", "UnpackedSfixed32", "UnpackedSfixed64", "UnpackedFloat", "UnpackedDouble", "UnpackedBool", "UnpackedEnum", });
+ internal__static_protobuf_unittest_TestPackedExtensions__Descriptor = Descriptor.MessageTypes[42];
+ internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Builder>(internal__static_protobuf_unittest_TestPackedExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor = Descriptor.MessageTypes[43];
+ internal__static_protobuf_unittest_TestUnpackedExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.Builder>(internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor = Descriptor.MessageTypes[44];
+ internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Builder>(internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor,
+ new string[] { "ScalarExtension", "EnumExtension", "DynamicEnumExtension", "MessageExtension", "DynamicMessageExtension", "RepeatedExtension", "PackedExtension", });
+ internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor = internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder>(internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor,
+ new string[] { "DynamicField", });
+ internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor = Descriptor.MessageTypes[45];
+ internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes, global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Builder>(internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor,
+ new string[] { "RepeatedFixed32", "RepeatedInt32", "RepeatedFixed64", "RepeatedInt64", "RepeatedFloat", "RepeatedUint64", });
+ internal__static_protobuf_unittest_TestParsingMerge__Descriptor = Descriptor.MessageTypes[46];
+ internal__static_protobuf_unittest_TestParsingMerge__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Builder>(internal__static_protobuf_unittest_TestParsingMerge__Descriptor,
+ new string[] { "RequiredAllTypes", "OptionalAllTypes", "RepeatedAllTypes", "OptionalGroup", "RepeatedGroup", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor = internal__static_protobuf_unittest_TestParsingMerge__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Group1", "Group2", "Ext1", "Ext2", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor = internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor,
+ new string[] { "Field1", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor = internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor,
+ new string[] { "Field1", });
+ internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor = internal__static_protobuf_unittest_TestParsingMerge__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder>(internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor,
+ new string[] { "OptionalGroupAllTypes", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor = internal__static_protobuf_unittest_TestParsingMerge__Descriptor.NestedTypes[2];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor,
+ new string[] { "RepeatedGroupAllTypes", });
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.OptionalExt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.RepeatedExt = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor = Descriptor.MessageTypes[47];
+ internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage, global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.Builder>(internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_FooRequest__Descriptor = Descriptor.MessageTypes[48];
+ internal__static_protobuf_unittest_FooRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooRequest, global::Google.ProtocolBuffers.TestProtos.FooRequest.Builder>(internal__static_protobuf_unittest_FooRequest__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_FooResponse__Descriptor = Descriptor.MessageTypes[49];
+ internal__static_protobuf_unittest_FooResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder>(internal__static_protobuf_unittest_FooResponse__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_FooClientMessage__Descriptor = Descriptor.MessageTypes[50];
+ internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooClientMessage, global::Google.ProtocolBuffers.TestProtos.FooClientMessage.Builder>(internal__static_protobuf_unittest_FooClientMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_FooServerMessage__Descriptor = Descriptor.MessageTypes[51];
+ internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooServerMessage, global::Google.ProtocolBuffers.TestProtos.FooServerMessage.Builder>(internal__static_protobuf_unittest_FooServerMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_BarRequest__Descriptor = Descriptor.MessageTypes[52];
+ internal__static_protobuf_unittest_BarRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarRequest, global::Google.ProtocolBuffers.TestProtos.BarRequest.Builder>(internal__static_protobuf_unittest_BarRequest__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_BarResponse__Descriptor = Descriptor.MessageTypes[53];
+ internal__static_protobuf_unittest_BarResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder>(internal__static_protobuf_unittest_BarResponse__Descriptor,
+ new string[] { });
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[1]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[2]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[3]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[4]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[5]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[6]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[7]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[8]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[9]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFloatExtension = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[10]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalDoubleExtension = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[11]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBoolExtension = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[12]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[13]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[14]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalGroupExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[15]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[16]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[17]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[18]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[19]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[20]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[21]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringPieceExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[22]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalCordExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[23]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalPublicImportMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[24]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalLazyMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[25]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[26]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[27]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[28]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[29]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[30]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[31]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[32]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[33]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[34]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[35]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[36]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[37]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[38]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[39]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBytesExtension = pb::GeneratedRepeatExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[40]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedGroupExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[41]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[42]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[43]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[44]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[45]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[46]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[47]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringPieceExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[48]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedCordExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[49]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedLazyMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[50]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[51]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[52]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[53]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[54]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[55]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[56]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[57]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[58]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[59]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[60]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFloatExtension = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[61]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultDoubleExtension = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[62]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBoolExtension = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[63]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[64]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[65]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultNestedEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[66]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultForeignEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[67]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultImportEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[68]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringPieceExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[69]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultCordExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[70]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[71]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofNestedMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[72]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[73]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[74]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionString = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[75]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionInt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[76]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[77]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[78]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[79]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[80]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[81]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[82]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[83]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[84]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[85]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[86]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[87]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[88]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[89]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[90]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[91]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[92]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[93]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[94]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[95]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[96]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[97]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[98]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[99]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[100]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[101]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[102]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[103]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[104]);
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.TestProtos.UnittestImport.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.TestProtos.UnittestImport.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ForeignEnum {
+ FOREIGN_FOO = 4,
+ FOREIGN_BAR = 5,
+ FOREIGN_BAZ = 6,
+ }
+
+ public enum TestEnumWithDupValue {
+ FOO1 = 1,
+ BAR1 = 2,
+ BAZ = 3,
+ FOO2 = 1,
+ BAR2 = 2,
+ }
+
+ public enum TestSparseEnum {
+ SPARSE_A = 123,
+ SPARSE_B = 62374,
+ SPARSE_C = 12589234,
+ SPARSE_D = -15,
+ SPARSE_E = -53452,
+ SPARSE_F = 0,
+ SPARSE_G = 2,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestAllTypes : pb::GeneratedMessage<TestAllTypes, TestAllTypes.Builder> {
+ private TestAllTypes() { }
+ private static readonly TestAllTypes defaultInstance = new TestAllTypes().MakeReadOnly();
+ private static readonly string[] _testAllTypesFieldNames = new string[] { "default_bool", "default_bytes", "default_cord", "default_double", "default_fixed32", "default_fixed64", "default_float", "default_foreign_enum", "default_import_enum", "default_int32", "default_int64", "default_nested_enum", "default_sfixed32", "default_sfixed64", "default_sint32", "default_sint64", "default_string", "default_string_piece", "default_uint32", "default_uint64", "oneof_bytes", "oneof_nested_message", "oneof_string", "oneof_uint32", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_import_enum", "optional_import_message", "optional_int32", "optional_int64", "optional_lazy_message", "optional_nested_enum", "optional_nested_message", "optional_public_import_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "optionalgroup", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_lazy_message", "repeated_nested_enum", "repeated_nested_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64", "repeatedgroup" };
+ private static readonly uint[] _testAllTypesFieldTags = new uint[] { 584, 602, 682, 577, 541, 545, 573, 656, 664, 488, 496, 648, 557, 561, 520, 528, 594, 674, 504, 512, 914, 898, 906, 888, 104, 122, 202, 97, 61, 65, 93, 176, 154, 184, 162, 8, 16, 218, 168, 146, 210, 77, 81, 40, 48, 114, 194, 24, 32, 131, 344, 362, 442, 337, 301, 305, 333, 416, 394, 424, 402, 248, 256, 458, 408, 386, 317, 321, 280, 288, 354, 434, 264, 272, 371 };
+ public static TestAllTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestAllTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestAllTypes, TestAllTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ FOO = 1,
+ BAR = 2,
+ BAZ = 3,
+ NEG = -1,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private int bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasBb) {
+ output.WriteInt32(1, field_names[0], Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasBb = input.ReadInt32(ref result.bb_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
+ private OptionalGroup() { }
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
+ private static readonly string[] _optionalGroupFieldNames = new string[] { "a" };
+ private static readonly uint[] _optionalGroupFieldTags = new uint[] { 136 };
+ public static OptionalGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup, OptionalGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(17, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
+
+ private OptionalGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup original = result;
+ result = new OptionalGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Descriptor; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public override OptionalGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup) {
+ return MergeFrom((OptionalGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 136: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
+ private RepeatedGroup() { }
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
+ private static readonly string[] _repeatedGroupFieldNames = new string[] { "a" };
+ private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 376 };
+ public static RepeatedGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup, RepeatedGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(47, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
+
+ private RepeatedGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup original = result;
+ result = new RepeatedGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Descriptor; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance; }
+ }
+
+ public override RepeatedGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup) {
+ return MergeFrom((RepeatedGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 376: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ private object oneofField_;
+ public enum OneofFieldOneofCase {
+ OneofUint32 = 111,
+ OneofNestedMessage = 112,
+ OneofString = 113,
+ OneofBytes = 114,
+ None = 0,
+ }
+ private OneofFieldOneofCase oneofFieldCase_ = OneofFieldOneofCase.None;
+ public OneofFieldOneofCase OneofFieldCase {
+ get { return oneofFieldCase_; }
+ }
+
+ public const int OptionalInt32FieldNumber = 1;
+ private bool hasOptionalInt32;
+ private int optionalInt32_;
+ public bool HasOptionalInt32 {
+ get { return hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public const int OptionalInt64FieldNumber = 2;
+ private bool hasOptionalInt64;
+ private long optionalInt64_;
+ public bool HasOptionalInt64 {
+ get { return hasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return optionalInt64_; }
+ }
+
+ public const int OptionalUint32FieldNumber = 3;
+ private bool hasOptionalUint32;
+ private uint optionalUint32_;
+ public bool HasOptionalUint32 {
+ get { return hasOptionalUint32; }
+ }
+ public uint OptionalUint32 {
+ get { return optionalUint32_; }
+ }
+
+ public const int OptionalUint64FieldNumber = 4;
+ private bool hasOptionalUint64;
+ private ulong optionalUint64_;
+ public bool HasOptionalUint64 {
+ get { return hasOptionalUint64; }
+ }
+ public ulong OptionalUint64 {
+ get { return optionalUint64_; }
+ }
+
+ public const int OptionalSint32FieldNumber = 5;
+ private bool hasOptionalSint32;
+ private int optionalSint32_;
+ public bool HasOptionalSint32 {
+ get { return hasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return optionalSint32_; }
+ }
+
+ public const int OptionalSint64FieldNumber = 6;
+ private bool hasOptionalSint64;
+ private long optionalSint64_;
+ public bool HasOptionalSint64 {
+ get { return hasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return optionalSint64_; }
+ }
+
+ public const int OptionalFixed32FieldNumber = 7;
+ private bool hasOptionalFixed32;
+ private uint optionalFixed32_;
+ public bool HasOptionalFixed32 {
+ get { return hasOptionalFixed32; }
+ }
+ public uint OptionalFixed32 {
+ get { return optionalFixed32_; }
+ }
+
+ public const int OptionalFixed64FieldNumber = 8;
+ private bool hasOptionalFixed64;
+ private ulong optionalFixed64_;
+ public bool HasOptionalFixed64 {
+ get { return hasOptionalFixed64; }
+ }
+ public ulong OptionalFixed64 {
+ get { return optionalFixed64_; }
+ }
+
+ public const int OptionalSfixed32FieldNumber = 9;
+ private bool hasOptionalSfixed32;
+ private int optionalSfixed32_;
+ public bool HasOptionalSfixed32 {
+ get { return hasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return optionalSfixed32_; }
+ }
+
+ public const int OptionalSfixed64FieldNumber = 10;
+ private bool hasOptionalSfixed64;
+ private long optionalSfixed64_;
+ public bool HasOptionalSfixed64 {
+ get { return hasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return optionalSfixed64_; }
+ }
+
+ public const int OptionalFloatFieldNumber = 11;
+ private bool hasOptionalFloat;
+ private float optionalFloat_;
+ public bool HasOptionalFloat {
+ get { return hasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return optionalFloat_; }
+ }
+
+ public const int OptionalDoubleFieldNumber = 12;
+ private bool hasOptionalDouble;
+ private double optionalDouble_;
+ public bool HasOptionalDouble {
+ get { return hasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return optionalDouble_; }
+ }
+
+ public const int OptionalBoolFieldNumber = 13;
+ private bool hasOptionalBool;
+ private bool optionalBool_;
+ public bool HasOptionalBool {
+ get { return hasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return optionalBool_; }
+ }
+
+ public const int OptionalStringFieldNumber = 14;
+ private bool hasOptionalString;
+ private string optionalString_ = "";
+ public bool HasOptionalString {
+ get { return hasOptionalString; }
+ }
+ public string OptionalString {
+ get { return optionalString_; }
+ }
+
+ public const int OptionalBytesFieldNumber = 15;
+ private bool hasOptionalBytes;
+ private pb::ByteString optionalBytes_ = pb::ByteString.Empty;
+ public bool HasOptionalBytes {
+ get { return hasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return optionalBytes_; }
+ }
+
+ public const int OptionalGroupFieldNumber = 16;
+ private bool hasOptionalGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup optionalGroup_;
+ public bool HasOptionalGroup {
+ get { return hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public const int OptionalNestedMessageFieldNumber = 18;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int OptionalForeignMessageFieldNumber = 19;
+ private bool hasOptionalForeignMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage optionalForeignMessage_;
+ public bool HasOptionalForeignMessage {
+ get { return hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {
+ get { return optionalForeignMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int OptionalImportMessageFieldNumber = 20;
+ private bool hasOptionalImportMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ImportMessage optionalImportMessage_;
+ public bool HasOptionalImportMessage {
+ get { return hasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {
+ get { return optionalImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance; }
+ }
+
+ public const int OptionalNestedEnumFieldNumber = 21;
+ private bool hasOptionalNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.FOO;
+ public bool HasOptionalNestedEnum {
+ get { return hasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
+ get { return optionalNestedEnum_; }
+ }
+
+ public const int OptionalForeignEnumFieldNumber = 22;
+ private bool hasOptionalForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasOptionalForeignEnum {
+ get { return hasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum OptionalForeignEnum {
+ get { return optionalForeignEnum_; }
+ }
+
+ public const int OptionalImportEnumFieldNumber = 23;
+ private bool hasOptionalImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnum optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_FOO;
+ public bool HasOptionalImportEnum {
+ get { return hasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum OptionalImportEnum {
+ get { return optionalImportEnum_; }
+ }
+
+ public const int OptionalStringPieceFieldNumber = 24;
+ private bool hasOptionalStringPiece;
+ private string optionalStringPiece_ = "";
+ public bool HasOptionalStringPiece {
+ get { return hasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return optionalStringPiece_; }
+ }
+
+ public const int OptionalCordFieldNumber = 25;
+ private bool hasOptionalCord;
+ private string optionalCord_ = "";
+ public bool HasOptionalCord {
+ get { return hasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return optionalCord_; }
+ }
+
+ public const int OptionalPublicImportMessageFieldNumber = 26;
+ private bool hasOptionalPublicImportMessage;
+ private global::Google.ProtocolBuffers.TestProtos.PublicImportMessage optionalPublicImportMessage_;
+ public bool HasOptionalPublicImportMessage {
+ get { return hasOptionalPublicImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.PublicImportMessage OptionalPublicImportMessage {
+ get { return optionalPublicImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance; }
+ }
+
+ public const int OptionalLazyMessageFieldNumber = 27;
+ private bool hasOptionalLazyMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalLazyMessage_;
+ public bool HasOptionalLazyMessage {
+ get { return hasOptionalLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalLazyMessage {
+ get { return optionalLazyMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int RepeatedInt32FieldNumber = 31;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 32;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedUint32FieldNumber = 33;
+ private pbc::PopsicleList<uint> repeatedUint32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> RepeatedUint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint32_); }
+ }
+ public int RepeatedUint32Count {
+ get { return repeatedUint32_.Count; }
+ }
+ public uint GetRepeatedUint32(int index) {
+ return repeatedUint32_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 34;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public const int RepeatedSint32FieldNumber = 35;
+ private pbc::PopsicleList<int> repeatedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint32_); }
+ }
+ public int RepeatedSint32Count {
+ get { return repeatedSint32_.Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return repeatedSint32_[index];
+ }
+
+ public const int RepeatedSint64FieldNumber = 36;
+ private pbc::PopsicleList<long> repeatedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint64_); }
+ }
+ public int RepeatedSint64Count {
+ get { return repeatedSint64_.Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return repeatedSint64_[index];
+ }
+
+ public const int RepeatedFixed32FieldNumber = 37;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 38;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedSfixed32FieldNumber = 39;
+ private pbc::PopsicleList<int> repeatedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed32_); }
+ }
+ public int RepeatedSfixed32Count {
+ get { return repeatedSfixed32_.Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return repeatedSfixed32_[index];
+ }
+
+ public const int RepeatedSfixed64FieldNumber = 40;
+ private pbc::PopsicleList<long> repeatedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed64_); }
+ }
+ public int RepeatedSfixed64Count {
+ get { return repeatedSfixed64_.Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return repeatedSfixed64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 41;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedDoubleFieldNumber = 42;
+ private pbc::PopsicleList<double> repeatedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> RepeatedDoubleList {
+ get { return pbc::Lists.AsReadOnly(repeatedDouble_); }
+ }
+ public int RepeatedDoubleCount {
+ get { return repeatedDouble_.Count; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return repeatedDouble_[index];
+ }
+
+ public const int RepeatedBoolFieldNumber = 43;
+ private pbc::PopsicleList<bool> repeatedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> RepeatedBoolList {
+ get { return pbc::Lists.AsReadOnly(repeatedBool_); }
+ }
+ public int RepeatedBoolCount {
+ get { return repeatedBool_.Count; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return repeatedBool_[index];
+ }
+
+ public const int RepeatedStringFieldNumber = 44;
+ private pbc::PopsicleList<string> repeatedString_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringList {
+ get { return pbc::Lists.AsReadOnly(repeatedString_); }
+ }
+ public int RepeatedStringCount {
+ get { return repeatedString_.Count; }
+ }
+ public string GetRepeatedString(int index) {
+ return repeatedString_[index];
+ }
+
+ public const int RepeatedBytesFieldNumber = 45;
+ private pbc::PopsicleList<pb::ByteString> repeatedBytes_ = new pbc::PopsicleList<pb::ByteString>();
+ public scg::IList<pb::ByteString> RepeatedBytesList {
+ get { return pbc::Lists.AsReadOnly(repeatedBytes_); }
+ }
+ public int RepeatedBytesCount {
+ get { return repeatedBytes_.Count; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return repeatedBytes_[index];
+ }
+
+ public const int RepeatedGroupFieldNumber = 46;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> repeatedGroup_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> RepeatedGroupList {
+ get { return repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return repeatedGroup_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return repeatedGroup_[index];
+ }
+
+ public const int RepeatedNestedMessageFieldNumber = 48;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> repeatedNestedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return repeatedNestedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return repeatedNestedMessage_[index];
+ }
+
+ public const int RepeatedForeignMessageFieldNumber = 49;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> repeatedForeignMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedForeignMessageList {
+ get { return repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return repeatedForeignMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedForeignMessage(int index) {
+ return repeatedForeignMessage_[index];
+ }
+
+ public const int RepeatedImportMessageFieldNumber = 50;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> repeatedImportMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> RepeatedImportMessageList {
+ get { return repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return repeatedImportMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage GetRepeatedImportMessage(int index) {
+ return repeatedImportMessage_[index];
+ }
+
+ public const int RepeatedNestedEnumFieldNumber = 51;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> repeatedNestedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedNestedEnum_); }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return repeatedNestedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return repeatedNestedEnum_[index];
+ }
+
+ public const int RepeatedForeignEnumFieldNumber = 52;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> repeatedForeignEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedForeignEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedForeignEnum_); }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return repeatedForeignEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedForeignEnum(int index) {
+ return repeatedForeignEnum_[index];
+ }
+
+ public const int RepeatedImportEnumFieldNumber = 53;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> repeatedImportEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> RepeatedImportEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedImportEnum_); }
+ }
+ public int RepeatedImportEnumCount {
+ get { return repeatedImportEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum GetRepeatedImportEnum(int index) {
+ return repeatedImportEnum_[index];
+ }
+
+ public const int RepeatedStringPieceFieldNumber = 54;
+ private pbc::PopsicleList<string> repeatedStringPiece_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPiece_); }
+ }
+ public int RepeatedStringPieceCount {
+ get { return repeatedStringPiece_.Count; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return repeatedStringPiece_[index];
+ }
+
+ public const int RepeatedCordFieldNumber = 55;
+ private pbc::PopsicleList<string> repeatedCord_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordList {
+ get { return pbc::Lists.AsReadOnly(repeatedCord_); }
+ }
+ public int RepeatedCordCount {
+ get { return repeatedCord_.Count; }
+ }
+ public string GetRepeatedCord(int index) {
+ return repeatedCord_[index];
+ }
+
+ public const int RepeatedLazyMessageFieldNumber = 57;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> repeatedLazyMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedLazyMessageList {
+ get { return repeatedLazyMessage_; }
+ }
+ public int RepeatedLazyMessageCount {
+ get { return repeatedLazyMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedLazyMessage(int index) {
+ return repeatedLazyMessage_[index];
+ }
+
+ public const int DefaultInt32FieldNumber = 61;
+ private bool hasDefaultInt32;
+ private int defaultInt32_ = 41;
+ public bool HasDefaultInt32 {
+ get { return hasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return defaultInt32_; }
+ }
+
+ public const int DefaultInt64FieldNumber = 62;
+ private bool hasDefaultInt64;
+ private long defaultInt64_ = 42L;
+ public bool HasDefaultInt64 {
+ get { return hasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return defaultInt64_; }
+ }
+
+ public const int DefaultUint32FieldNumber = 63;
+ private bool hasDefaultUint32;
+ private uint defaultUint32_ = 43;
+ public bool HasDefaultUint32 {
+ get { return hasDefaultUint32; }
+ }
+ public uint DefaultUint32 {
+ get { return defaultUint32_; }
+ }
+
+ public const int DefaultUint64FieldNumber = 64;
+ private bool hasDefaultUint64;
+ private ulong defaultUint64_ = 44UL;
+ public bool HasDefaultUint64 {
+ get { return hasDefaultUint64; }
+ }
+ public ulong DefaultUint64 {
+ get { return defaultUint64_; }
+ }
+
+ public const int DefaultSint32FieldNumber = 65;
+ private bool hasDefaultSint32;
+ private int defaultSint32_ = -45;
+ public bool HasDefaultSint32 {
+ get { return hasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return defaultSint32_; }
+ }
+
+ public const int DefaultSint64FieldNumber = 66;
+ private bool hasDefaultSint64;
+ private long defaultSint64_ = 46L;
+ public bool HasDefaultSint64 {
+ get { return hasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return defaultSint64_; }
+ }
+
+ public const int DefaultFixed32FieldNumber = 67;
+ private bool hasDefaultFixed32;
+ private uint defaultFixed32_ = 47;
+ public bool HasDefaultFixed32 {
+ get { return hasDefaultFixed32; }
+ }
+ public uint DefaultFixed32 {
+ get { return defaultFixed32_; }
+ }
+
+ public const int DefaultFixed64FieldNumber = 68;
+ private bool hasDefaultFixed64;
+ private ulong defaultFixed64_ = 48UL;
+ public bool HasDefaultFixed64 {
+ get { return hasDefaultFixed64; }
+ }
+ public ulong DefaultFixed64 {
+ get { return defaultFixed64_; }
+ }
+
+ public const int DefaultSfixed32FieldNumber = 69;
+ private bool hasDefaultSfixed32;
+ private int defaultSfixed32_ = 49;
+ public bool HasDefaultSfixed32 {
+ get { return hasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return defaultSfixed32_; }
+ }
+
+ public const int DefaultSfixed64FieldNumber = 70;
+ private bool hasDefaultSfixed64;
+ private long defaultSfixed64_ = -50L;
+ public bool HasDefaultSfixed64 {
+ get { return hasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return defaultSfixed64_; }
+ }
+
+ public const int DefaultFloatFieldNumber = 71;
+ private bool hasDefaultFloat;
+ private float defaultFloat_ = 51.5F;
+ public bool HasDefaultFloat {
+ get { return hasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return defaultFloat_; }
+ }
+
+ public const int DefaultDoubleFieldNumber = 72;
+ private bool hasDefaultDouble;
+ private double defaultDouble_ = 52000D;
+ public bool HasDefaultDouble {
+ get { return hasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return defaultDouble_; }
+ }
+
+ public const int DefaultBoolFieldNumber = 73;
+ private bool hasDefaultBool;
+ private bool defaultBool_ = true;
+ public bool HasDefaultBool {
+ get { return hasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return defaultBool_; }
+ }
+
+ public const int DefaultStringFieldNumber = 74;
+ private bool hasDefaultString;
+ private string defaultString_ = "hello";
+ public bool HasDefaultString {
+ get { return hasDefaultString; }
+ }
+ public string DefaultString {
+ get { return defaultString_; }
+ }
+
+ public const int DefaultBytesFieldNumber = 75;
+ private bool hasDefaultBytes;
+ private pb::ByteString defaultBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor.Fields[65].DefaultValue;
+ public bool HasDefaultBytes {
+ get { return hasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return defaultBytes_; }
+ }
+
+ public const int DefaultNestedEnumFieldNumber = 81;
+ private bool hasDefaultNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.BAR;
+ public bool HasDefaultNestedEnum {
+ get { return hasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum DefaultNestedEnum {
+ get { return defaultNestedEnum_; }
+ }
+
+ public const int DefaultForeignEnumFieldNumber = 82;
+ private bool hasDefaultForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_BAR;
+ public bool HasDefaultForeignEnum {
+ get { return hasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum DefaultForeignEnum {
+ get { return defaultForeignEnum_; }
+ }
+
+ public const int DefaultImportEnumFieldNumber = 83;
+ private bool hasDefaultImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnum defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_BAR;
+ public bool HasDefaultImportEnum {
+ get { return hasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum DefaultImportEnum {
+ get { return defaultImportEnum_; }
+ }
+
+ public const int DefaultStringPieceFieldNumber = 84;
+ private bool hasDefaultStringPiece;
+ private string defaultStringPiece_ = "abc";
+ public bool HasDefaultStringPiece {
+ get { return hasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return defaultStringPiece_; }
+ }
+
+ public const int DefaultCordFieldNumber = 85;
+ private bool hasDefaultCord;
+ private string defaultCord_ = "123";
+ public bool HasDefaultCord {
+ get { return hasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return defaultCord_; }
+ }
+
+ public const int OneofUint32FieldNumber = 111;
+ public bool HasOneofUint32 {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32; }
+ }
+ public uint OneofUint32 {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) oneofField_ : 0; }
+ }
+
+ public const int OneofNestedMessageFieldNumber = 112;
+ public bool HasOneofNestedMessage {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OneofNestedMessage {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage) oneofField_ : global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int OneofStringFieldNumber = 113;
+ public bool HasOneofString {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString; }
+ }
+ public string OneofString {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) oneofField_ : ""; }
+ }
+
+ public const int OneofBytesFieldNumber = 114;
+ public bool HasOneofBytes {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes; }
+ }
+ public pb::ByteString OneofBytes {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes ? (pb::ByteString) oneofField_ : pb::ByteString.Empty; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testAllTypesFieldNames;
+ if (hasOptionalInt32) {
+ output.WriteInt32(1, field_names[35], OptionalInt32);
+ }
+ if (hasOptionalInt64) {
+ output.WriteInt64(2, field_names[36], OptionalInt64);
+ }
+ if (hasOptionalUint32) {
+ output.WriteUInt32(3, field_names[47], OptionalUint32);
+ }
+ if (hasOptionalUint64) {
+ output.WriteUInt64(4, field_names[48], OptionalUint64);
+ }
+ if (hasOptionalSint32) {
+ output.WriteSInt32(5, field_names[43], OptionalSint32);
+ }
+ if (hasOptionalSint64) {
+ output.WriteSInt64(6, field_names[44], OptionalSint64);
+ }
+ if (hasOptionalFixed32) {
+ output.WriteFixed32(7, field_names[28], OptionalFixed32);
+ }
+ if (hasOptionalFixed64) {
+ output.WriteFixed64(8, field_names[29], OptionalFixed64);
+ }
+ if (hasOptionalSfixed32) {
+ output.WriteSFixed32(9, field_names[41], OptionalSfixed32);
+ }
+ if (hasOptionalSfixed64) {
+ output.WriteSFixed64(10, field_names[42], OptionalSfixed64);
+ }
+ if (hasOptionalFloat) {
+ output.WriteFloat(11, field_names[30], OptionalFloat);
+ }
+ if (hasOptionalDouble) {
+ output.WriteDouble(12, field_names[27], OptionalDouble);
+ }
+ if (hasOptionalBool) {
+ output.WriteBool(13, field_names[24], OptionalBool);
+ }
+ if (hasOptionalString) {
+ output.WriteString(14, field_names[45], OptionalString);
+ }
+ if (hasOptionalBytes) {
+ output.WriteBytes(15, field_names[25], OptionalBytes);
+ }
+ if (hasOptionalGroup) {
+ output.WriteGroup(16, field_names[49], OptionalGroup);
+ }
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(18, field_names[39], OptionalNestedMessage);
+ }
+ if (hasOptionalForeignMessage) {
+ output.WriteMessage(19, field_names[32], OptionalForeignMessage);
+ }
+ if (hasOptionalImportMessage) {
+ output.WriteMessage(20, field_names[34], OptionalImportMessage);
+ }
+ if (hasOptionalNestedEnum) {
+ output.WriteEnum(21, field_names[38], (int) OptionalNestedEnum, OptionalNestedEnum);
+ }
+ if (hasOptionalForeignEnum) {
+ output.WriteEnum(22, field_names[31], (int) OptionalForeignEnum, OptionalForeignEnum);
+ }
+ if (hasOptionalImportEnum) {
+ output.WriteEnum(23, field_names[33], (int) OptionalImportEnum, OptionalImportEnum);
+ }
+ if (hasOptionalStringPiece) {
+ output.WriteString(24, field_names[46], OptionalStringPiece);
+ }
+ if (hasOptionalCord) {
+ output.WriteString(25, field_names[26], OptionalCord);
+ }
+ if (hasOptionalPublicImportMessage) {
+ output.WriteMessage(26, field_names[40], OptionalPublicImportMessage);
+ }
+ if (hasOptionalLazyMessage) {
+ output.WriteMessage(27, field_names[37], OptionalLazyMessage);
+ }
+ if (repeatedInt32_.Count > 0) {
+ output.WriteInt32Array(31, field_names[61], repeatedInt32_);
+ }
+ if (repeatedInt64_.Count > 0) {
+ output.WriteInt64Array(32, field_names[62], repeatedInt64_);
+ }
+ if (repeatedUint32_.Count > 0) {
+ output.WriteUInt32Array(33, field_names[72], repeatedUint32_);
+ }
+ if (repeatedUint64_.Count > 0) {
+ output.WriteUInt64Array(34, field_names[73], repeatedUint64_);
+ }
+ if (repeatedSint32_.Count > 0) {
+ output.WriteSInt32Array(35, field_names[68], repeatedSint32_);
+ }
+ if (repeatedSint64_.Count > 0) {
+ output.WriteSInt64Array(36, field_names[69], repeatedSint64_);
+ }
+ if (repeatedFixed32_.Count > 0) {
+ output.WriteFixed32Array(37, field_names[54], repeatedFixed32_);
+ }
+ if (repeatedFixed64_.Count > 0) {
+ output.WriteFixed64Array(38, field_names[55], repeatedFixed64_);
+ }
+ if (repeatedSfixed32_.Count > 0) {
+ output.WriteSFixed32Array(39, field_names[66], repeatedSfixed32_);
+ }
+ if (repeatedSfixed64_.Count > 0) {
+ output.WriteSFixed64Array(40, field_names[67], repeatedSfixed64_);
+ }
+ if (repeatedFloat_.Count > 0) {
+ output.WriteFloatArray(41, field_names[56], repeatedFloat_);
+ }
+ if (repeatedDouble_.Count > 0) {
+ output.WriteDoubleArray(42, field_names[53], repeatedDouble_);
+ }
+ if (repeatedBool_.Count > 0) {
+ output.WriteBoolArray(43, field_names[50], repeatedBool_);
+ }
+ if (repeatedString_.Count > 0) {
+ output.WriteStringArray(44, field_names[70], repeatedString_);
+ }
+ if (repeatedBytes_.Count > 0) {
+ output.WriteBytesArray(45, field_names[51], repeatedBytes_);
+ }
+ if (repeatedGroup_.Count > 0) {
+ output.WriteGroupArray(46, field_names[74], repeatedGroup_);
+ }
+ if (repeatedNestedMessage_.Count > 0) {
+ output.WriteMessageArray(48, field_names[65], repeatedNestedMessage_);
+ }
+ if (repeatedForeignMessage_.Count > 0) {
+ output.WriteMessageArray(49, field_names[58], repeatedForeignMessage_);
+ }
+ if (repeatedImportMessage_.Count > 0) {
+ output.WriteMessageArray(50, field_names[60], repeatedImportMessage_);
+ }
+ if (repeatedNestedEnum_.Count > 0) {
+ output.WriteEnumArray(51, field_names[64], repeatedNestedEnum_);
+ }
+ if (repeatedForeignEnum_.Count > 0) {
+ output.WriteEnumArray(52, field_names[57], repeatedForeignEnum_);
+ }
+ if (repeatedImportEnum_.Count > 0) {
+ output.WriteEnumArray(53, field_names[59], repeatedImportEnum_);
+ }
+ if (repeatedStringPiece_.Count > 0) {
+ output.WriteStringArray(54, field_names[71], repeatedStringPiece_);
+ }
+ if (repeatedCord_.Count > 0) {
+ output.WriteStringArray(55, field_names[52], repeatedCord_);
+ }
+ if (repeatedLazyMessage_.Count > 0) {
+ output.WriteMessageArray(57, field_names[63], repeatedLazyMessage_);
+ }
+ if (hasDefaultInt32) {
+ output.WriteInt32(61, field_names[9], DefaultInt32);
+ }
+ if (hasDefaultInt64) {
+ output.WriteInt64(62, field_names[10], DefaultInt64);
+ }
+ if (hasDefaultUint32) {
+ output.WriteUInt32(63, field_names[18], DefaultUint32);
+ }
+ if (hasDefaultUint64) {
+ output.WriteUInt64(64, field_names[19], DefaultUint64);
+ }
+ if (hasDefaultSint32) {
+ output.WriteSInt32(65, field_names[14], DefaultSint32);
+ }
+ if (hasDefaultSint64) {
+ output.WriteSInt64(66, field_names[15], DefaultSint64);
+ }
+ if (hasDefaultFixed32) {
+ output.WriteFixed32(67, field_names[4], DefaultFixed32);
+ }
+ if (hasDefaultFixed64) {
+ output.WriteFixed64(68, field_names[5], DefaultFixed64);
+ }
+ if (hasDefaultSfixed32) {
+ output.WriteSFixed32(69, field_names[12], DefaultSfixed32);
+ }
+ if (hasDefaultSfixed64) {
+ output.WriteSFixed64(70, field_names[13], DefaultSfixed64);
+ }
+ if (hasDefaultFloat) {
+ output.WriteFloat(71, field_names[6], DefaultFloat);
+ }
+ if (hasDefaultDouble) {
+ output.WriteDouble(72, field_names[3], DefaultDouble);
+ }
+ if (hasDefaultBool) {
+ output.WriteBool(73, field_names[0], DefaultBool);
+ }
+ if (hasDefaultString) {
+ output.WriteString(74, field_names[16], DefaultString);
+ }
+ if (hasDefaultBytes) {
+ output.WriteBytes(75, field_names[1], DefaultBytes);
+ }
+ if (hasDefaultNestedEnum) {
+ output.WriteEnum(81, field_names[11], (int) DefaultNestedEnum, DefaultNestedEnum);
+ }
+ if (hasDefaultForeignEnum) {
+ output.WriteEnum(82, field_names[7], (int) DefaultForeignEnum, DefaultForeignEnum);
+ }
+ if (hasDefaultImportEnum) {
+ output.WriteEnum(83, field_names[8], (int) DefaultImportEnum, DefaultImportEnum);
+ }
+ if (hasDefaultStringPiece) {
+ output.WriteString(84, field_names[17], DefaultStringPiece);
+ }
+ if (hasDefaultCord) {
+ output.WriteString(85, field_names[2], DefaultCord);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ output.WriteUInt32(111, field_names[23], OneofUint32);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ output.WriteMessage(112, field_names[21], OneofNestedMessage);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ output.WriteString(113, field_names[22], OneofString);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
+ output.WriteBytes(114, field_names[20], OneofBytes);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, OptionalInt32);
+ }
+ if (hasOptionalInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(2, OptionalInt64);
+ }
+ if (hasOptionalUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(3, OptionalUint32);
+ }
+ if (hasOptionalUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(4, OptionalUint64);
+ }
+ if (hasOptionalSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(5, OptionalSint32);
+ }
+ if (hasOptionalSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(6, OptionalSint64);
+ }
+ if (hasOptionalFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(7, OptionalFixed32);
+ }
+ if (hasOptionalFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(8, OptionalFixed64);
+ }
+ if (hasOptionalSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(9, OptionalSfixed32);
+ }
+ if (hasOptionalSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(10, OptionalSfixed64);
+ }
+ if (hasOptionalFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, OptionalFloat);
+ }
+ if (hasOptionalDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(12, OptionalDouble);
+ }
+ if (hasOptionalBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(13, OptionalBool);
+ }
+ if (hasOptionalString) {
+ size += pb::CodedOutputStream.ComputeStringSize(14, OptionalString);
+ }
+ if (hasOptionalBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(15, OptionalBytes);
+ }
+ if (hasOptionalGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(16, OptionalGroup);
+ }
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(18, OptionalNestedMessage);
+ }
+ if (hasOptionalForeignMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(19, OptionalForeignMessage);
+ }
+ if (hasOptionalImportMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(20, OptionalImportMessage);
+ }
+ if (hasOptionalNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(21, (int) OptionalNestedEnum);
+ }
+ if (hasOptionalForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(22, (int) OptionalForeignEnum);
+ }
+ if (hasOptionalImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(23, (int) OptionalImportEnum);
+ }
+ if (hasOptionalStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(24, OptionalStringPiece);
+ }
+ if (hasOptionalCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(25, OptionalCord);
+ }
+ if (hasOptionalPublicImportMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(26, OptionalPublicImportMessage);
+ }
+ if (hasOptionalLazyMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(27, OptionalLazyMessage);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in RepeatedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 2 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedDouble_.Count;
+ size += dataSize;
+ size += 2 * repeatedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * repeatedBool_.Count;
+ size += dataSize;
+ size += 2 * repeatedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedString_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (pb::ByteString element in RepeatedBytesList) {
+ dataSize += pb::CodedOutputStream.ComputeBytesSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedBytes_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup element in RepeatedGroupList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(46, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage element in RepeatedNestedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(48, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in RepeatedForeignMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(49, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportMessage element in RepeatedImportMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(50, element);
+ }
+ {
+ int dataSize = 0;
+ if (repeatedNestedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum element in repeatedNestedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedNestedEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedForeignEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in repeatedForeignEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedForeignEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedImportEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportEnum element in repeatedImportEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedImportEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedStringPiece_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedCord_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage element in RepeatedLazyMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(57, element);
+ }
+ if (hasDefaultInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(61, DefaultInt32);
+ }
+ if (hasDefaultInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(62, DefaultInt64);
+ }
+ if (hasDefaultUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(63, DefaultUint32);
+ }
+ if (hasDefaultUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(64, DefaultUint64);
+ }
+ if (hasDefaultSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(65, DefaultSint32);
+ }
+ if (hasDefaultSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(66, DefaultSint64);
+ }
+ if (hasDefaultFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(67, DefaultFixed32);
+ }
+ if (hasDefaultFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(68, DefaultFixed64);
+ }
+ if (hasDefaultSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(69, DefaultSfixed32);
+ }
+ if (hasDefaultSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(70, DefaultSfixed64);
+ }
+ if (hasDefaultFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(71, DefaultFloat);
+ }
+ if (hasDefaultDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(72, DefaultDouble);
+ }
+ if (hasDefaultBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(73, DefaultBool);
+ }
+ if (hasDefaultString) {
+ size += pb::CodedOutputStream.ComputeStringSize(74, DefaultString);
+ }
+ if (hasDefaultBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(75, DefaultBytes);
+ }
+ if (hasDefaultNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(81, (int) DefaultNestedEnum);
+ }
+ if (hasDefaultForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(82, (int) DefaultForeignEnum);
+ }
+ if (hasDefaultImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(83, (int) DefaultImportEnum);
+ }
+ if (hasDefaultStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(84, DefaultStringPiece);
+ }
+ if (hasDefaultCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(85, DefaultCord);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(111, OneofUint32);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(112, OneofNestedMessage);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ size += pb::CodedOutputStream.ComputeStringSize(113, OneofString);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(114, OneofBytes);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestAllTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestAllTypes MakeReadOnly() {
+ repeatedInt32_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedUint32_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ repeatedSint32_.MakeReadOnly();
+ repeatedSint64_.MakeReadOnly();
+ repeatedFixed32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedSfixed32_.MakeReadOnly();
+ repeatedSfixed64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedDouble_.MakeReadOnly();
+ repeatedBool_.MakeReadOnly();
+ repeatedString_.MakeReadOnly();
+ repeatedBytes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ repeatedNestedMessage_.MakeReadOnly();
+ repeatedForeignMessage_.MakeReadOnly();
+ repeatedImportMessage_.MakeReadOnly();
+ repeatedNestedEnum_.MakeReadOnly();
+ repeatedForeignEnum_.MakeReadOnly();
+ repeatedImportEnum_.MakeReadOnly();
+ repeatedStringPiece_.MakeReadOnly();
+ repeatedCord_.MakeReadOnly();
+ repeatedLazyMessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestAllTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestAllTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestAllTypes result;
+
+ private TestAllTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestAllTypes original = result;
+ result = new TestAllTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestAllTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor; }
+ }
+
+ public override TestAllTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override TestAllTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestAllTypes) {
+ return MergeFrom((TestAllTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalInt32) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ if (other.HasOptionalInt64) {
+ OptionalInt64 = other.OptionalInt64;
+ }
+ if (other.HasOptionalUint32) {
+ OptionalUint32 = other.OptionalUint32;
+ }
+ if (other.HasOptionalUint64) {
+ OptionalUint64 = other.OptionalUint64;
+ }
+ if (other.HasOptionalSint32) {
+ OptionalSint32 = other.OptionalSint32;
+ }
+ if (other.HasOptionalSint64) {
+ OptionalSint64 = other.OptionalSint64;
+ }
+ if (other.HasOptionalFixed32) {
+ OptionalFixed32 = other.OptionalFixed32;
+ }
+ if (other.HasOptionalFixed64) {
+ OptionalFixed64 = other.OptionalFixed64;
+ }
+ if (other.HasOptionalSfixed32) {
+ OptionalSfixed32 = other.OptionalSfixed32;
+ }
+ if (other.HasOptionalSfixed64) {
+ OptionalSfixed64 = other.OptionalSfixed64;
+ }
+ if (other.HasOptionalFloat) {
+ OptionalFloat = other.OptionalFloat;
+ }
+ if (other.HasOptionalDouble) {
+ OptionalDouble = other.OptionalDouble;
+ }
+ if (other.HasOptionalBool) {
+ OptionalBool = other.OptionalBool;
+ }
+ if (other.HasOptionalString) {
+ OptionalString = other.OptionalString;
+ }
+ if (other.HasOptionalBytes) {
+ OptionalBytes = other.OptionalBytes;
+ }
+ if (other.HasOptionalGroup) {
+ MergeOptionalGroup(other.OptionalGroup);
+ }
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ if (other.HasOptionalForeignMessage) {
+ MergeOptionalForeignMessage(other.OptionalForeignMessage);
+ }
+ if (other.HasOptionalImportMessage) {
+ MergeOptionalImportMessage(other.OptionalImportMessage);
+ }
+ if (other.HasOptionalNestedEnum) {
+ OptionalNestedEnum = other.OptionalNestedEnum;
+ }
+ if (other.HasOptionalForeignEnum) {
+ OptionalForeignEnum = other.OptionalForeignEnum;
+ }
+ if (other.HasOptionalImportEnum) {
+ OptionalImportEnum = other.OptionalImportEnum;
+ }
+ if (other.HasOptionalStringPiece) {
+ OptionalStringPiece = other.OptionalStringPiece;
+ }
+ if (other.HasOptionalCord) {
+ OptionalCord = other.OptionalCord;
+ }
+ if (other.HasOptionalPublicImportMessage) {
+ MergeOptionalPublicImportMessage(other.OptionalPublicImportMessage);
+ }
+ if (other.HasOptionalLazyMessage) {
+ MergeOptionalLazyMessage(other.OptionalLazyMessage);
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ result.repeatedInt32_.Add(other.repeatedInt32_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ result.repeatedInt64_.Add(other.repeatedInt64_);
+ }
+ if (other.repeatedUint32_.Count != 0) {
+ result.repeatedUint32_.Add(other.repeatedUint32_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ result.repeatedUint64_.Add(other.repeatedUint64_);
+ }
+ if (other.repeatedSint32_.Count != 0) {
+ result.repeatedSint32_.Add(other.repeatedSint32_);
+ }
+ if (other.repeatedSint64_.Count != 0) {
+ result.repeatedSint64_.Add(other.repeatedSint64_);
+ }
+ if (other.repeatedFixed32_.Count != 0) {
+ result.repeatedFixed32_.Add(other.repeatedFixed32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ result.repeatedFixed64_.Add(other.repeatedFixed64_);
+ }
+ if (other.repeatedSfixed32_.Count != 0) {
+ result.repeatedSfixed32_.Add(other.repeatedSfixed32_);
+ }
+ if (other.repeatedSfixed64_.Count != 0) {
+ result.repeatedSfixed64_.Add(other.repeatedSfixed64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ result.repeatedFloat_.Add(other.repeatedFloat_);
+ }
+ if (other.repeatedDouble_.Count != 0) {
+ result.repeatedDouble_.Add(other.repeatedDouble_);
+ }
+ if (other.repeatedBool_.Count != 0) {
+ result.repeatedBool_.Add(other.repeatedBool_);
+ }
+ if (other.repeatedString_.Count != 0) {
+ result.repeatedString_.Add(other.repeatedString_);
+ }
+ if (other.repeatedBytes_.Count != 0) {
+ result.repeatedBytes_.Add(other.repeatedBytes_);
+ }
+ if (other.repeatedGroup_.Count != 0) {
+ result.repeatedGroup_.Add(other.repeatedGroup_);
+ }
+ if (other.repeatedNestedMessage_.Count != 0) {
+ result.repeatedNestedMessage_.Add(other.repeatedNestedMessage_);
+ }
+ if (other.repeatedForeignMessage_.Count != 0) {
+ result.repeatedForeignMessage_.Add(other.repeatedForeignMessage_);
+ }
+ if (other.repeatedImportMessage_.Count != 0) {
+ result.repeatedImportMessage_.Add(other.repeatedImportMessage_);
+ }
+ if (other.repeatedNestedEnum_.Count != 0) {
+ result.repeatedNestedEnum_.Add(other.repeatedNestedEnum_);
+ }
+ if (other.repeatedForeignEnum_.Count != 0) {
+ result.repeatedForeignEnum_.Add(other.repeatedForeignEnum_);
+ }
+ if (other.repeatedImportEnum_.Count != 0) {
+ result.repeatedImportEnum_.Add(other.repeatedImportEnum_);
+ }
+ if (other.repeatedStringPiece_.Count != 0) {
+ result.repeatedStringPiece_.Add(other.repeatedStringPiece_);
+ }
+ if (other.repeatedCord_.Count != 0) {
+ result.repeatedCord_.Add(other.repeatedCord_);
+ }
+ if (other.repeatedLazyMessage_.Count != 0) {
+ result.repeatedLazyMessage_.Add(other.repeatedLazyMessage_);
+ }
+ if (other.HasDefaultInt32) {
+ DefaultInt32 = other.DefaultInt32;
+ }
+ if (other.HasDefaultInt64) {
+ DefaultInt64 = other.DefaultInt64;
+ }
+ if (other.HasDefaultUint32) {
+ DefaultUint32 = other.DefaultUint32;
+ }
+ if (other.HasDefaultUint64) {
+ DefaultUint64 = other.DefaultUint64;
+ }
+ if (other.HasDefaultSint32) {
+ DefaultSint32 = other.DefaultSint32;
+ }
+ if (other.HasDefaultSint64) {
+ DefaultSint64 = other.DefaultSint64;
+ }
+ if (other.HasDefaultFixed32) {
+ DefaultFixed32 = other.DefaultFixed32;
+ }
+ if (other.HasDefaultFixed64) {
+ DefaultFixed64 = other.DefaultFixed64;
+ }
+ if (other.HasDefaultSfixed32) {
+ DefaultSfixed32 = other.DefaultSfixed32;
+ }
+ if (other.HasDefaultSfixed64) {
+ DefaultSfixed64 = other.DefaultSfixed64;
+ }
+ if (other.HasDefaultFloat) {
+ DefaultFloat = other.DefaultFloat;
+ }
+ if (other.HasDefaultDouble) {
+ DefaultDouble = other.DefaultDouble;
+ }
+ if (other.HasDefaultBool) {
+ DefaultBool = other.DefaultBool;
+ }
+ if (other.HasDefaultString) {
+ DefaultString = other.DefaultString;
+ }
+ if (other.HasDefaultBytes) {
+ DefaultBytes = other.DefaultBytes;
+ }
+ if (other.HasDefaultNestedEnum) {
+ DefaultNestedEnum = other.DefaultNestedEnum;
+ }
+ if (other.HasDefaultForeignEnum) {
+ DefaultForeignEnum = other.DefaultForeignEnum;
+ }
+ if (other.HasDefaultImportEnum) {
+ DefaultImportEnum = other.DefaultImportEnum;
+ }
+ if (other.HasDefaultStringPiece) {
+ DefaultStringPiece = other.DefaultStringPiece;
+ }
+ if (other.HasDefaultCord) {
+ DefaultCord = other.DefaultCord;
+ }
+ switch (other.OneofFieldCase) {
+ case OneofFieldOneofCase.OneofUint32: {
+ SetOneofUint32(other.OneofUint32);
+ break;
+ }
+ case OneofFieldOneofCase.OneofNestedMessage: {
+ MergeOneofNestedMessage(other.OneofNestedMessage);
+ break;
+ }
+ case OneofFieldOneofCase.OneofString: {
+ SetOneofString(other.OneofString);
+ break;
+ }
+ case OneofFieldOneofCase.OneofBytes: {
+ SetOneofBytes(other.OneofBytes);
+ break;
+ }
+ case OneofFieldOneofCase.None: { break; }
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testAllTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testAllTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasOptionalInt32 = input.ReadInt32(ref result.optionalInt32_);
+ break;
+ }
+ case 16: {
+ result.hasOptionalInt64 = input.ReadInt64(ref result.optionalInt64_);
+ break;
+ }
+ case 24: {
+ result.hasOptionalUint32 = input.ReadUInt32(ref result.optionalUint32_);
+ break;
+ }
+ case 32: {
+ result.hasOptionalUint64 = input.ReadUInt64(ref result.optionalUint64_);
+ break;
+ }
+ case 40: {
+ result.hasOptionalSint32 = input.ReadSInt32(ref result.optionalSint32_);
+ break;
+ }
+ case 48: {
+ result.hasOptionalSint64 = input.ReadSInt64(ref result.optionalSint64_);
+ break;
+ }
+ case 61: {
+ result.hasOptionalFixed32 = input.ReadFixed32(ref result.optionalFixed32_);
+ break;
+ }
+ case 65: {
+ result.hasOptionalFixed64 = input.ReadFixed64(ref result.optionalFixed64_);
+ break;
+ }
+ case 77: {
+ result.hasOptionalSfixed32 = input.ReadSFixed32(ref result.optionalSfixed32_);
+ break;
+ }
+ case 81: {
+ result.hasOptionalSfixed64 = input.ReadSFixed64(ref result.optionalSfixed64_);
+ break;
+ }
+ case 93: {
+ result.hasOptionalFloat = input.ReadFloat(ref result.optionalFloat_);
+ break;
+ }
+ case 97: {
+ result.hasOptionalDouble = input.ReadDouble(ref result.optionalDouble_);
+ break;
+ }
+ case 104: {
+ result.hasOptionalBool = input.ReadBool(ref result.optionalBool_);
+ break;
+ }
+ case 114: {
+ result.hasOptionalString = input.ReadString(ref result.optionalString_);
+ break;
+ }
+ case 122: {
+ result.hasOptionalBytes = input.ReadBytes(ref result.optionalBytes_);
+ break;
+ }
+ case 131: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder();
+ if (result.hasOptionalGroup) {
+ subBuilder.MergeFrom(OptionalGroup);
+ }
+ input.ReadGroup(16, subBuilder, extensionRegistry);
+ OptionalGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 146: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 154: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (result.hasOptionalForeignMessage) {
+ subBuilder.MergeFrom(OptionalForeignMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalForeignMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 162: {
+ global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder();
+ if (result.hasOptionalImportMessage) {
+ subBuilder.MergeFrom(OptionalImportMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalImportMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 168: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalNestedEnum_, out unknown)) {
+ result.hasOptionalNestedEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(21, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 176: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalForeignEnum_, out unknown)) {
+ result.hasOptionalForeignEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(22, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 184: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalImportEnum_, out unknown)) {
+ result.hasOptionalImportEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(23, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 194: {
+ result.hasOptionalStringPiece = input.ReadString(ref result.optionalStringPiece_);
+ break;
+ }
+ case 202: {
+ result.hasOptionalCord = input.ReadString(ref result.optionalCord_);
+ break;
+ }
+ case 210: {
+ global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.CreateBuilder();
+ if (result.hasOptionalPublicImportMessage) {
+ subBuilder.MergeFrom(OptionalPublicImportMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalPublicImportMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 218: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalLazyMessage) {
+ subBuilder.MergeFrom(OptionalLazyMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalLazyMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 250:
+ case 248: {
+ input.ReadInt32Array(tag, field_name, result.repeatedInt32_);
+ break;
+ }
+ case 258:
+ case 256: {
+ input.ReadInt64Array(tag, field_name, result.repeatedInt64_);
+ break;
+ }
+ case 266:
+ case 264: {
+ input.ReadUInt32Array(tag, field_name, result.repeatedUint32_);
+ break;
+ }
+ case 274:
+ case 272: {
+ input.ReadUInt64Array(tag, field_name, result.repeatedUint64_);
+ break;
+ }
+ case 282:
+ case 280: {
+ input.ReadSInt32Array(tag, field_name, result.repeatedSint32_);
+ break;
+ }
+ case 290:
+ case 288: {
+ input.ReadSInt64Array(tag, field_name, result.repeatedSint64_);
+ break;
+ }
+ case 298:
+ case 301: {
+ input.ReadFixed32Array(tag, field_name, result.repeatedFixed32_);
+ break;
+ }
+ case 306:
+ case 305: {
+ input.ReadFixed64Array(tag, field_name, result.repeatedFixed64_);
+ break;
+ }
+ case 314:
+ case 317: {
+ input.ReadSFixed32Array(tag, field_name, result.repeatedSfixed32_);
+ break;
+ }
+ case 322:
+ case 321: {
+ input.ReadSFixed64Array(tag, field_name, result.repeatedSfixed64_);
+ break;
+ }
+ case 330:
+ case 333: {
+ input.ReadFloatArray(tag, field_name, result.repeatedFloat_);
+ break;
+ }
+ case 338:
+ case 337: {
+ input.ReadDoubleArray(tag, field_name, result.repeatedDouble_);
+ break;
+ }
+ case 346:
+ case 344: {
+ input.ReadBoolArray(tag, field_name, result.repeatedBool_);
+ break;
+ }
+ case 354: {
+ input.ReadStringArray(tag, field_name, result.repeatedString_);
+ break;
+ }
+ case 362: {
+ input.ReadBytesArray(tag, field_name, result.repeatedBytes_);
+ break;
+ }
+ case 371: {
+ input.ReadGroupArray(tag, field_name, result.repeatedGroup_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 386: {
+ input.ReadMessageArray(tag, field_name, result.repeatedNestedMessage_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 394: {
+ input.ReadMessageArray(tag, field_name, result.repeatedForeignMessage_, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 402: {
+ input.ReadMessageArray(tag, field_name, result.repeatedImportMessage_, global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 410:
+ case 408: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>(tag, field_name, result.repeatedNestedEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(51, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 418:
+ case 416: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.repeatedForeignEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(52, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 426:
+ case 424: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ImportEnum>(tag, field_name, result.repeatedImportEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(53, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 434: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringPiece_);
+ break;
+ }
+ case 442: {
+ input.ReadStringArray(tag, field_name, result.repeatedCord_);
+ break;
+ }
+ case 458: {
+ input.ReadMessageArray(tag, field_name, result.repeatedLazyMessage_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 488: {
+ result.hasDefaultInt32 = input.ReadInt32(ref result.defaultInt32_);
+ break;
+ }
+ case 496: {
+ result.hasDefaultInt64 = input.ReadInt64(ref result.defaultInt64_);
+ break;
+ }
+ case 504: {
+ result.hasDefaultUint32 = input.ReadUInt32(ref result.defaultUint32_);
+ break;
+ }
+ case 512: {
+ result.hasDefaultUint64 = input.ReadUInt64(ref result.defaultUint64_);
+ break;
+ }
+ case 520: {
+ result.hasDefaultSint32 = input.ReadSInt32(ref result.defaultSint32_);
+ break;
+ }
+ case 528: {
+ result.hasDefaultSint64 = input.ReadSInt64(ref result.defaultSint64_);
+ break;
+ }
+ case 541: {
+ result.hasDefaultFixed32 = input.ReadFixed32(ref result.defaultFixed32_);
+ break;
+ }
+ case 545: {
+ result.hasDefaultFixed64 = input.ReadFixed64(ref result.defaultFixed64_);
+ break;
+ }
+ case 557: {
+ result.hasDefaultSfixed32 = input.ReadSFixed32(ref result.defaultSfixed32_);
+ break;
+ }
+ case 561: {
+ result.hasDefaultSfixed64 = input.ReadSFixed64(ref result.defaultSfixed64_);
+ break;
+ }
+ case 573: {
+ result.hasDefaultFloat = input.ReadFloat(ref result.defaultFloat_);
+ break;
+ }
+ case 577: {
+ result.hasDefaultDouble = input.ReadDouble(ref result.defaultDouble_);
+ break;
+ }
+ case 584: {
+ result.hasDefaultBool = input.ReadBool(ref result.defaultBool_);
+ break;
+ }
+ case 594: {
+ result.hasDefaultString = input.ReadString(ref result.defaultString_);
+ break;
+ }
+ case 602: {
+ result.hasDefaultBytes = input.ReadBytes(ref result.defaultBytes_);
+ break;
+ }
+ case 648: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultNestedEnum_, out unknown)) {
+ result.hasDefaultNestedEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(81, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 656: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultForeignEnum_, out unknown)) {
+ result.hasDefaultForeignEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(82, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 664: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultImportEnum_, out unknown)) {
+ result.hasDefaultImportEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(83, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 674: {
+ result.hasDefaultStringPiece = input.ReadString(ref result.defaultStringPiece_);
+ break;
+ }
+ case 682: {
+ result.hasDefaultCord = input.ReadString(ref result.defaultCord_);
+ break;
+ }
+ case 888: {
+ uint value = 0;
+ if (input.ReadUInt32(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
+ }
+ break;
+ }
+ case 898: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ subBuilder.MergeFrom(OneofNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.oneofField_ = subBuilder.BuildPartial();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ break;
+ }
+ case 906: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofString;
+ }
+ break;
+ }
+ case 914: {
+ pb::ByteString value = pb::ByteString.Empty;
+ if (input.ReadBytes(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalInt32 {
+ get { return result.hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ PrepareBuilder();
+ result.hasOptionalInt32 = true;
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ PrepareBuilder();
+ result.hasOptionalInt32 = false;
+ result.optionalInt32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalInt64 {
+ get { return result.hasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return result.OptionalInt64; }
+ set { SetOptionalInt64(value); }
+ }
+ public Builder SetOptionalInt64(long value) {
+ PrepareBuilder();
+ result.hasOptionalInt64 = true;
+ result.optionalInt64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt64() {
+ PrepareBuilder();
+ result.hasOptionalInt64 = false;
+ result.optionalInt64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalUint32 {
+ get { return result.hasOptionalUint32; }
+ }
+ public uint OptionalUint32 {
+ get { return result.OptionalUint32; }
+ set { SetOptionalUint32(value); }
+ }
+ public Builder SetOptionalUint32(uint value) {
+ PrepareBuilder();
+ result.hasOptionalUint32 = true;
+ result.optionalUint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint32() {
+ PrepareBuilder();
+ result.hasOptionalUint32 = false;
+ result.optionalUint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalUint64 {
+ get { return result.hasOptionalUint64; }
+ }
+ public ulong OptionalUint64 {
+ get { return result.OptionalUint64; }
+ set { SetOptionalUint64(value); }
+ }
+ public Builder SetOptionalUint64(ulong value) {
+ PrepareBuilder();
+ result.hasOptionalUint64 = true;
+ result.optionalUint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint64() {
+ PrepareBuilder();
+ result.hasOptionalUint64 = false;
+ result.optionalUint64_ = 0UL;
+ return this;
+ }
+
+ public bool HasOptionalSint32 {
+ get { return result.hasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return result.OptionalSint32; }
+ set { SetOptionalSint32(value); }
+ }
+ public Builder SetOptionalSint32(int value) {
+ PrepareBuilder();
+ result.hasOptionalSint32 = true;
+ result.optionalSint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint32() {
+ PrepareBuilder();
+ result.hasOptionalSint32 = false;
+ result.optionalSint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSint64 {
+ get { return result.hasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return result.OptionalSint64; }
+ set { SetOptionalSint64(value); }
+ }
+ public Builder SetOptionalSint64(long value) {
+ PrepareBuilder();
+ result.hasOptionalSint64 = true;
+ result.optionalSint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint64() {
+ PrepareBuilder();
+ result.hasOptionalSint64 = false;
+ result.optionalSint64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalFixed32 {
+ get { return result.hasOptionalFixed32; }
+ }
+ public uint OptionalFixed32 {
+ get { return result.OptionalFixed32; }
+ set { SetOptionalFixed32(value); }
+ }
+ public Builder SetOptionalFixed32(uint value) {
+ PrepareBuilder();
+ result.hasOptionalFixed32 = true;
+ result.optionalFixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed32() {
+ PrepareBuilder();
+ result.hasOptionalFixed32 = false;
+ result.optionalFixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalFixed64 {
+ get { return result.hasOptionalFixed64; }
+ }
+ public ulong OptionalFixed64 {
+ get { return result.OptionalFixed64; }
+ set { SetOptionalFixed64(value); }
+ }
+ public Builder SetOptionalFixed64(ulong value) {
+ PrepareBuilder();
+ result.hasOptionalFixed64 = true;
+ result.optionalFixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed64() {
+ PrepareBuilder();
+ result.hasOptionalFixed64 = false;
+ result.optionalFixed64_ = 0UL;
+ return this;
+ }
+
+ public bool HasOptionalSfixed32 {
+ get { return result.hasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return result.OptionalSfixed32; }
+ set { SetOptionalSfixed32(value); }
+ }
+ public Builder SetOptionalSfixed32(int value) {
+ PrepareBuilder();
+ result.hasOptionalSfixed32 = true;
+ result.optionalSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed32() {
+ PrepareBuilder();
+ result.hasOptionalSfixed32 = false;
+ result.optionalSfixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSfixed64 {
+ get { return result.hasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return result.OptionalSfixed64; }
+ set { SetOptionalSfixed64(value); }
+ }
+ public Builder SetOptionalSfixed64(long value) {
+ PrepareBuilder();
+ result.hasOptionalSfixed64 = true;
+ result.optionalSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed64() {
+ PrepareBuilder();
+ result.hasOptionalSfixed64 = false;
+ result.optionalSfixed64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalFloat {
+ get { return result.hasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return result.OptionalFloat; }
+ set { SetOptionalFloat(value); }
+ }
+ public Builder SetOptionalFloat(float value) {
+ PrepareBuilder();
+ result.hasOptionalFloat = true;
+ result.optionalFloat_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFloat() {
+ PrepareBuilder();
+ result.hasOptionalFloat = false;
+ result.optionalFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOptionalDouble {
+ get { return result.hasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return result.OptionalDouble; }
+ set { SetOptionalDouble(value); }
+ }
+ public Builder SetOptionalDouble(double value) {
+ PrepareBuilder();
+ result.hasOptionalDouble = true;
+ result.optionalDouble_ = value;
+ return this;
+ }
+ public Builder ClearOptionalDouble() {
+ PrepareBuilder();
+ result.hasOptionalDouble = false;
+ result.optionalDouble_ = 0D;
+ return this;
+ }
+
+ public bool HasOptionalBool {
+ get { return result.hasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return result.OptionalBool; }
+ set { SetOptionalBool(value); }
+ }
+ public Builder SetOptionalBool(bool value) {
+ PrepareBuilder();
+ result.hasOptionalBool = true;
+ result.optionalBool_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBool() {
+ PrepareBuilder();
+ result.hasOptionalBool = false;
+ result.optionalBool_ = false;
+ return this;
+ }
+
+ public bool HasOptionalString {
+ get { return result.hasOptionalString; }
+ }
+ public string OptionalString {
+ get { return result.OptionalString; }
+ set { SetOptionalString(value); }
+ }
+ public Builder SetOptionalString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalString = true;
+ result.optionalString_ = value;
+ return this;
+ }
+ public Builder ClearOptionalString() {
+ PrepareBuilder();
+ result.hasOptionalString = false;
+ result.optionalString_ = "";
+ return this;
+ }
+
+ public bool HasOptionalBytes {
+ get { return result.hasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return result.OptionalBytes; }
+ set { SetOptionalBytes(value); }
+ }
+ public Builder SetOptionalBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalBytes = true;
+ result.optionalBytes_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBytes() {
+ PrepareBuilder();
+ result.hasOptionalBytes = false;
+ result.optionalBytes_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasOptionalGroup {
+ get { return result.hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {
+ get { return result.OptionalGroup; }
+ set { SetOptionalGroup(value); }
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroup &&
+ result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance) {
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroup_ = value;
+ }
+ result.hasOptionalGroup = true;
+ return this;
+ }
+ public Builder ClearOptionalGroup() {
+ PrepareBuilder();
+ result.hasOptionalGroup = false;
+ result.optionalGroup_ = null;
+ return this;
+ }
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalForeignMessage {
+ get { return result.hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {
+ get { return result.OptionalForeignMessage; }
+ set { SetOptionalForeignMessage(value); }
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalForeignMessage &&
+ result.optionalForeignMessage_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.optionalForeignMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalForeignMessage_ = value;
+ }
+ result.hasOptionalForeignMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalForeignMessage() {
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = false;
+ result.optionalForeignMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalImportMessage {
+ get { return result.hasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {
+ get { return result.OptionalImportMessage; }
+ set { SetOptionalImportMessage(value); }
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalImportMessage &&
+ result.optionalImportMessage_ != global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) {
+ result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder(result.optionalImportMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalImportMessage_ = value;
+ }
+ result.hasOptionalImportMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalImportMessage() {
+ PrepareBuilder();
+ result.hasOptionalImportMessage = false;
+ result.optionalImportMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalNestedEnum {
+ get { return result.hasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
+ get { return result.OptionalNestedEnum; }
+ set { SetOptionalNestedEnum(value); }
+ }
+ public Builder SetOptionalNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.hasOptionalNestedEnum = true;
+ result.optionalNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalNestedEnum() {
+ PrepareBuilder();
+ result.hasOptionalNestedEnum = false;
+ result.optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.FOO;
+ return this;
+ }
+
+ public bool HasOptionalForeignEnum {
+ get { return result.hasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum OptionalForeignEnum {
+ get { return result.OptionalForeignEnum; }
+ set { SetOptionalForeignEnum(value); }
+ }
+ public Builder SetOptionalForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasOptionalForeignEnum = true;
+ result.optionalForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalForeignEnum() {
+ PrepareBuilder();
+ result.hasOptionalForeignEnum = false;
+ result.optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasOptionalImportEnum {
+ get { return result.hasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum OptionalImportEnum {
+ get { return result.OptionalImportEnum; }
+ set { SetOptionalImportEnum(value); }
+ }
+ public Builder SetOptionalImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.hasOptionalImportEnum = true;
+ result.optionalImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalImportEnum() {
+ PrepareBuilder();
+ result.hasOptionalImportEnum = false;
+ result.optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_FOO;
+ return this;
+ }
+
+ public bool HasOptionalStringPiece {
+ get { return result.hasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return result.OptionalStringPiece; }
+ set { SetOptionalStringPiece(value); }
+ }
+ public Builder SetOptionalStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalStringPiece = true;
+ result.optionalStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearOptionalStringPiece() {
+ PrepareBuilder();
+ result.hasOptionalStringPiece = false;
+ result.optionalStringPiece_ = "";
+ return this;
+ }
+
+ public bool HasOptionalCord {
+ get { return result.hasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return result.OptionalCord; }
+ set { SetOptionalCord(value); }
+ }
+ public Builder SetOptionalCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalCord = true;
+ result.optionalCord_ = value;
+ return this;
+ }
+ public Builder ClearOptionalCord() {
+ PrepareBuilder();
+ result.hasOptionalCord = false;
+ result.optionalCord_ = "";
+ return this;
+ }
+
+ public bool HasOptionalPublicImportMessage {
+ get { return result.hasOptionalPublicImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.PublicImportMessage OptionalPublicImportMessage {
+ get { return result.OptionalPublicImportMessage; }
+ set { SetOptionalPublicImportMessage(value); }
+ }
+ public Builder SetOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = true;
+ result.optionalPublicImportMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = true;
+ result.optionalPublicImportMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalPublicImportMessage &&
+ result.optionalPublicImportMessage_ != global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance) {
+ result.optionalPublicImportMessage_ = global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.CreateBuilder(result.optionalPublicImportMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalPublicImportMessage_ = value;
+ }
+ result.hasOptionalPublicImportMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalPublicImportMessage() {
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = false;
+ result.optionalPublicImportMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalLazyMessage {
+ get { return result.hasOptionalLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalLazyMessage {
+ get { return result.OptionalLazyMessage; }
+ set { SetOptionalLazyMessage(value); }
+ }
+ public Builder SetOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = true;
+ result.optionalLazyMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = true;
+ result.optionalLazyMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalLazyMessage &&
+ result.optionalLazyMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.optionalLazyMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalLazyMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalLazyMessage_ = value;
+ }
+ result.hasOptionalLazyMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalLazyMessage() {
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = false;
+ result.optionalLazyMessage_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return PrepareBuilder().repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ PrepareBuilder();
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return PrepareBuilder().repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ PrepareBuilder();
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> RepeatedUint32List {
+ get { return PrepareBuilder().repeatedUint32_; }
+ }
+ public int RepeatedUint32Count {
+ get { return result.RepeatedUint32Count; }
+ }
+ public uint GetRepeatedUint32(int index) {
+ return result.GetRepeatedUint32(index);
+ }
+ public Builder SetRepeatedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedUint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedUint32(uint value) {
+ PrepareBuilder();
+ result.repeatedUint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint32() {
+ PrepareBuilder();
+ result.repeatedUint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return PrepareBuilder().repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedUint64(ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ PrepareBuilder();
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSint32List {
+ get { return PrepareBuilder().repeatedSint32_; }
+ }
+ public int RepeatedSint32Count {
+ get { return result.RepeatedSint32Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return result.GetRepeatedSint32(index);
+ }
+ public Builder SetRepeatedSint32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint32(int value) {
+ PrepareBuilder();
+ result.repeatedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSint32() {
+ PrepareBuilder();
+ result.repeatedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSint64List {
+ get { return PrepareBuilder().repeatedSint64_; }
+ }
+ public int RepeatedSint64Count {
+ get { return result.RepeatedSint64Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return result.GetRepeatedSint64(index);
+ }
+ public Builder SetRepeatedSint64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint64(long value) {
+ PrepareBuilder();
+ result.repeatedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSint64() {
+ PrepareBuilder();
+ result.repeatedSint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return PrepareBuilder().repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed32(uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ PrepareBuilder();
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return PrepareBuilder().repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed64(ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ PrepareBuilder();
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSfixed32List {
+ get { return PrepareBuilder().repeatedSfixed32_; }
+ }
+ public int RepeatedSfixed32Count {
+ get { return result.RepeatedSfixed32Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return result.GetRepeatedSfixed32(index);
+ }
+ public Builder SetRepeatedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed32(int value) {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed32() {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSfixed64List {
+ get { return PrepareBuilder().repeatedSfixed64_; }
+ }
+ public int RepeatedSfixed64Count {
+ get { return result.RepeatedSfixed64Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return result.GetRepeatedSfixed64(index);
+ }
+ public Builder SetRepeatedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed64(long value) {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed64() {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return PrepareBuilder().repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ PrepareBuilder();
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ PrepareBuilder();
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> RepeatedDoubleList {
+ get { return PrepareBuilder().repeatedDouble_; }
+ }
+ public int RepeatedDoubleCount {
+ get { return result.RepeatedDoubleCount; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return result.GetRepeatedDouble(index);
+ }
+ public Builder SetRepeatedDouble(int index, double value) {
+ PrepareBuilder();
+ result.repeatedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedDouble(double value) {
+ PrepareBuilder();
+ result.repeatedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.repeatedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedDouble() {
+ PrepareBuilder();
+ result.repeatedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> RepeatedBoolList {
+ get { return PrepareBuilder().repeatedBool_; }
+ }
+ public int RepeatedBoolCount {
+ get { return result.RepeatedBoolCount; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return result.GetRepeatedBool(index);
+ }
+ public Builder SetRepeatedBool(int index, bool value) {
+ PrepareBuilder();
+ result.repeatedBool_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBool(bool value) {
+ PrepareBuilder();
+ result.repeatedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.repeatedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedBool() {
+ PrepareBuilder();
+ result.repeatedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringList {
+ get { return PrepareBuilder().repeatedString_; }
+ }
+ public int RepeatedStringCount {
+ get { return result.RepeatedStringCount; }
+ }
+ public string GetRepeatedString(int index) {
+ return result.GetRepeatedString(index);
+ }
+ public Builder SetRepeatedString(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedString_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedString_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedString(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedString_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedString() {
+ PrepareBuilder();
+ result.repeatedString_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<pb::ByteString> RepeatedBytesList {
+ get { return PrepareBuilder().repeatedBytes_; }
+ }
+ public int RepeatedBytesCount {
+ get { return result.RepeatedBytesCount; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return result.GetRepeatedBytes(index);
+ }
+ public Builder SetRepeatedBytes(int index, pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedBytes_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedBytes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBytes(scg::IEnumerable<pb::ByteString> values) {
+ PrepareBuilder();
+ result.repeatedBytes_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedBytes() {
+ PrepareBuilder();
+ result.repeatedBytes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> RepeatedGroupList {
+ get { return PrepareBuilder().repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return result.RepeatedGroupCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return result.GetRepeatedGroup(index);
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedGroup(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> values) {
+ PrepareBuilder();
+ result.repeatedGroup_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedGroup() {
+ PrepareBuilder();
+ result.repeatedGroup_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return PrepareBuilder().repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return result.RepeatedNestedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return result.GetRepeatedNestedMessage(index);
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedNestedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedNestedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> values) {
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedNestedMessage() {
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedForeignMessageList {
+ get { return PrepareBuilder().repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return result.RepeatedForeignMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedForeignMessage(int index) {
+ return result.GetRepeatedForeignMessage(index);
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedForeignMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedForeignMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedForeignMessage() {
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> RepeatedImportMessageList {
+ get { return PrepareBuilder().repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return result.RepeatedImportMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage GetRepeatedImportMessage(int index) {
+ return result.GetRepeatedImportMessage(index);
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedImportMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedImportMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedImportMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportMessage> values) {
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedImportMessage() {
+ PrepareBuilder();
+ result.repeatedImportMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return PrepareBuilder().repeatedNestedEnum_; }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return result.RepeatedNestedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return result.GetRepeatedNestedEnum(index);
+ }
+ public Builder SetRepeatedNestedEnum(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> values) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedNestedEnum() {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedForeignEnumList {
+ get { return PrepareBuilder().repeatedForeignEnum_; }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return result.RepeatedForeignEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedForeignEnum(int index) {
+ return result.GetRepeatedForeignEnum(index);
+ }
+ public Builder SetRepeatedForeignEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedForeignEnum() {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> RepeatedImportEnumList {
+ get { return PrepareBuilder().repeatedImportEnum_; }
+ }
+ public int RepeatedImportEnumCount {
+ get { return result.RepeatedImportEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum GetRepeatedImportEnum(int index) {
+ return result.GetRepeatedImportEnum(index);
+ }
+ public Builder SetRepeatedImportEnum(int index, global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.repeatedImportEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedImportEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportEnum> values) {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedImportEnum() {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceList {
+ get { return PrepareBuilder().repeatedStringPiece_; }
+ }
+ public int RepeatedStringPieceCount {
+ get { return result.RepeatedStringPieceCount; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return result.GetRepeatedStringPiece(index);
+ }
+ public Builder SetRepeatedStringPiece(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPiece_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPiece_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPiece(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringPiece_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringPiece() {
+ PrepareBuilder();
+ result.repeatedStringPiece_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordList {
+ get { return PrepareBuilder().repeatedCord_; }
+ }
+ public int RepeatedCordCount {
+ get { return result.RepeatedCordCount; }
+ }
+ public string GetRepeatedCord(int index) {
+ return result.GetRepeatedCord(index);
+ }
+ public Builder SetRepeatedCord(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCord_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCord_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCord(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedCord_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedCord() {
+ PrepareBuilder();
+ result.repeatedCord_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedLazyMessageList {
+ get { return PrepareBuilder().repeatedLazyMessage_; }
+ }
+ public int RepeatedLazyMessageCount {
+ get { return result.RepeatedLazyMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedLazyMessage(int index) {
+ return result.GetRepeatedLazyMessage(index);
+ }
+ public Builder SetRepeatedLazyMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedLazyMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedLazyMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedLazyMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedLazyMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> values) {
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedLazyMessage() {
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Clear();
+ return this;
+ }
+
+ public bool HasDefaultInt32 {
+ get { return result.hasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return result.DefaultInt32; }
+ set { SetDefaultInt32(value); }
+ }
+ public Builder SetDefaultInt32(int value) {
+ PrepareBuilder();
+ result.hasDefaultInt32 = true;
+ result.defaultInt32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt32() {
+ PrepareBuilder();
+ result.hasDefaultInt32 = false;
+ result.defaultInt32_ = 41;
+ return this;
+ }
+
+ public bool HasDefaultInt64 {
+ get { return result.hasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return result.DefaultInt64; }
+ set { SetDefaultInt64(value); }
+ }
+ public Builder SetDefaultInt64(long value) {
+ PrepareBuilder();
+ result.hasDefaultInt64 = true;
+ result.defaultInt64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt64() {
+ PrepareBuilder();
+ result.hasDefaultInt64 = false;
+ result.defaultInt64_ = 42L;
+ return this;
+ }
+
+ public bool HasDefaultUint32 {
+ get { return result.hasDefaultUint32; }
+ }
+ public uint DefaultUint32 {
+ get { return result.DefaultUint32; }
+ set { SetDefaultUint32(value); }
+ }
+ public Builder SetDefaultUint32(uint value) {
+ PrepareBuilder();
+ result.hasDefaultUint32 = true;
+ result.defaultUint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint32() {
+ PrepareBuilder();
+ result.hasDefaultUint32 = false;
+ result.defaultUint32_ = 43;
+ return this;
+ }
+
+ public bool HasDefaultUint64 {
+ get { return result.hasDefaultUint64; }
+ }
+ public ulong DefaultUint64 {
+ get { return result.DefaultUint64; }
+ set { SetDefaultUint64(value); }
+ }
+ public Builder SetDefaultUint64(ulong value) {
+ PrepareBuilder();
+ result.hasDefaultUint64 = true;
+ result.defaultUint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint64() {
+ PrepareBuilder();
+ result.hasDefaultUint64 = false;
+ result.defaultUint64_ = 44UL;
+ return this;
+ }
+
+ public bool HasDefaultSint32 {
+ get { return result.hasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return result.DefaultSint32; }
+ set { SetDefaultSint32(value); }
+ }
+ public Builder SetDefaultSint32(int value) {
+ PrepareBuilder();
+ result.hasDefaultSint32 = true;
+ result.defaultSint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint32() {
+ PrepareBuilder();
+ result.hasDefaultSint32 = false;
+ result.defaultSint32_ = -45;
+ return this;
+ }
+
+ public bool HasDefaultSint64 {
+ get { return result.hasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return result.DefaultSint64; }
+ set { SetDefaultSint64(value); }
+ }
+ public Builder SetDefaultSint64(long value) {
+ PrepareBuilder();
+ result.hasDefaultSint64 = true;
+ result.defaultSint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint64() {
+ PrepareBuilder();
+ result.hasDefaultSint64 = false;
+ result.defaultSint64_ = 46L;
+ return this;
+ }
+
+ public bool HasDefaultFixed32 {
+ get { return result.hasDefaultFixed32; }
+ }
+ public uint DefaultFixed32 {
+ get { return result.DefaultFixed32; }
+ set { SetDefaultFixed32(value); }
+ }
+ public Builder SetDefaultFixed32(uint value) {
+ PrepareBuilder();
+ result.hasDefaultFixed32 = true;
+ result.defaultFixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed32() {
+ PrepareBuilder();
+ result.hasDefaultFixed32 = false;
+ result.defaultFixed32_ = 47;
+ return this;
+ }
+
+ public bool HasDefaultFixed64 {
+ get { return result.hasDefaultFixed64; }
+ }
+ public ulong DefaultFixed64 {
+ get { return result.DefaultFixed64; }
+ set { SetDefaultFixed64(value); }
+ }
+ public Builder SetDefaultFixed64(ulong value) {
+ PrepareBuilder();
+ result.hasDefaultFixed64 = true;
+ result.defaultFixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed64() {
+ PrepareBuilder();
+ result.hasDefaultFixed64 = false;
+ result.defaultFixed64_ = 48UL;
+ return this;
+ }
+
+ public bool HasDefaultSfixed32 {
+ get { return result.hasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return result.DefaultSfixed32; }
+ set { SetDefaultSfixed32(value); }
+ }
+ public Builder SetDefaultSfixed32(int value) {
+ PrepareBuilder();
+ result.hasDefaultSfixed32 = true;
+ result.defaultSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed32() {
+ PrepareBuilder();
+ result.hasDefaultSfixed32 = false;
+ result.defaultSfixed32_ = 49;
+ return this;
+ }
+
+ public bool HasDefaultSfixed64 {
+ get { return result.hasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return result.DefaultSfixed64; }
+ set { SetDefaultSfixed64(value); }
+ }
+ public Builder SetDefaultSfixed64(long value) {
+ PrepareBuilder();
+ result.hasDefaultSfixed64 = true;
+ result.defaultSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed64() {
+ PrepareBuilder();
+ result.hasDefaultSfixed64 = false;
+ result.defaultSfixed64_ = -50L;
+ return this;
+ }
+
+ public bool HasDefaultFloat {
+ get { return result.hasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return result.DefaultFloat; }
+ set { SetDefaultFloat(value); }
+ }
+ public Builder SetDefaultFloat(float value) {
+ PrepareBuilder();
+ result.hasDefaultFloat = true;
+ result.defaultFloat_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFloat() {
+ PrepareBuilder();
+ result.hasDefaultFloat = false;
+ result.defaultFloat_ = 51.5F;
+ return this;
+ }
+
+ public bool HasDefaultDouble {
+ get { return result.hasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return result.DefaultDouble; }
+ set { SetDefaultDouble(value); }
+ }
+ public Builder SetDefaultDouble(double value) {
+ PrepareBuilder();
+ result.hasDefaultDouble = true;
+ result.defaultDouble_ = value;
+ return this;
+ }
+ public Builder ClearDefaultDouble() {
+ PrepareBuilder();
+ result.hasDefaultDouble = false;
+ result.defaultDouble_ = 52000D;
+ return this;
+ }
+
+ public bool HasDefaultBool {
+ get { return result.hasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return result.DefaultBool; }
+ set { SetDefaultBool(value); }
+ }
+ public Builder SetDefaultBool(bool value) {
+ PrepareBuilder();
+ result.hasDefaultBool = true;
+ result.defaultBool_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBool() {
+ PrepareBuilder();
+ result.hasDefaultBool = false;
+ result.defaultBool_ = true;
+ return this;
+ }
+
+ public bool HasDefaultString {
+ get { return result.hasDefaultString; }
+ }
+ public string DefaultString {
+ get { return result.DefaultString; }
+ set { SetDefaultString(value); }
+ }
+ public Builder SetDefaultString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultString = true;
+ result.defaultString_ = value;
+ return this;
+ }
+ public Builder ClearDefaultString() {
+ PrepareBuilder();
+ result.hasDefaultString = false;
+ result.defaultString_ = "hello";
+ return this;
+ }
+
+ public bool HasDefaultBytes {
+ get { return result.hasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return result.DefaultBytes; }
+ set { SetDefaultBytes(value); }
+ }
+ public Builder SetDefaultBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultBytes = true;
+ result.defaultBytes_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBytes() {
+ PrepareBuilder();
+ result.hasDefaultBytes = false;
+ result.defaultBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor.Fields[65].DefaultValue;
+ return this;
+ }
+
+ public bool HasDefaultNestedEnum {
+ get { return result.hasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum DefaultNestedEnum {
+ get { return result.DefaultNestedEnum; }
+ set { SetDefaultNestedEnum(value); }
+ }
+ public Builder SetDefaultNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.hasDefaultNestedEnum = true;
+ result.defaultNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultNestedEnum() {
+ PrepareBuilder();
+ result.hasDefaultNestedEnum = false;
+ result.defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.BAR;
+ return this;
+ }
+
+ public bool HasDefaultForeignEnum {
+ get { return result.hasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum DefaultForeignEnum {
+ get { return result.DefaultForeignEnum; }
+ set { SetDefaultForeignEnum(value); }
+ }
+ public Builder SetDefaultForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasDefaultForeignEnum = true;
+ result.defaultForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultForeignEnum() {
+ PrepareBuilder();
+ result.hasDefaultForeignEnum = false;
+ result.defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_BAR;
+ return this;
+ }
+
+ public bool HasDefaultImportEnum {
+ get { return result.hasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum DefaultImportEnum {
+ get { return result.DefaultImportEnum; }
+ set { SetDefaultImportEnum(value); }
+ }
+ public Builder SetDefaultImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.hasDefaultImportEnum = true;
+ result.defaultImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultImportEnum() {
+ PrepareBuilder();
+ result.hasDefaultImportEnum = false;
+ result.defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_BAR;
+ return this;
+ }
+
+ public bool HasDefaultStringPiece {
+ get { return result.hasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return result.DefaultStringPiece; }
+ set { SetDefaultStringPiece(value); }
+ }
+ public Builder SetDefaultStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultStringPiece = true;
+ result.defaultStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearDefaultStringPiece() {
+ PrepareBuilder();
+ result.hasDefaultStringPiece = false;
+ result.defaultStringPiece_ = "abc";
+ return this;
+ }
+
+ public bool HasDefaultCord {
+ get { return result.hasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return result.DefaultCord; }
+ set { SetDefaultCord(value); }
+ }
+ public Builder SetDefaultCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultCord = true;
+ result.defaultCord_ = value;
+ return this;
+ }
+ public Builder ClearDefaultCord() {
+ PrepareBuilder();
+ result.hasDefaultCord = false;
+ result.defaultCord_ = "123";
+ return this;
+ }
+
+ public bool HasOneofUint32 {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32; }
+ }
+ public uint OneofUint32 {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) result.oneofField_ : 0; }
+ set { SetOneofUint32(value); }
+ }
+ public Builder SetOneofUint32(uint value) {
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
+ return this;
+ }
+ public Builder ClearOneofUint32() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasOneofNestedMessage {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OneofNestedMessage {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage) result.oneofField_ : global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ set { SetOneofNestedMessage(value); }
+ }
+ public Builder SetOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ result.oneofField_ = value;
+ return this;
+ }
+ public Builder SetOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ result.oneofField_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage &&
+ result.OneofNestedMessage != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.oneofField_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.OneofNestedMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.oneofField_ = value;
+ }
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ return this;
+ }
+ public Builder ClearOneofNestedMessage() {
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ result.oneofField_ = null;
+ }
+ return this;
+ }
+
+ public bool HasOneofString {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofString; }
+ }
+ public string OneofString {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) result.oneofField_ : ""; }
+ set { SetOneofString(value); }
+ }
+ public Builder SetOneofString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofString;
+ return this;
+ }
+ public Builder ClearOneofString() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasOneofBytes {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofBytes; }
+ }
+ public pb::ByteString OneofBytes {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofBytes ? (pb::ByteString) result.oneofField_ : pb::ByteString.Empty; }
+ set { SetOneofBytes(value); }
+ }
+ public Builder SetOneofBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;
+ return this;
+ }
+ public Builder ClearOneofBytes() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public OneofFieldOneofCase OneofFieldCase {
+ get { return result.oneofFieldCase_; }
+ }
+ public Builder ClearOneofField() {
+ PrepareBuilder();
+ result.oneofField_ = null;
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ return this;
+ }
+ }
+ static TestAllTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedTestAllTypes : pb::GeneratedMessage<NestedTestAllTypes, NestedTestAllTypes.Builder> {
+ private NestedTestAllTypes() { }
+ private static readonly NestedTestAllTypes defaultInstance = new NestedTestAllTypes().MakeReadOnly();
+ private static readonly string[] _nestedTestAllTypesFieldNames = new string[] { "child", "payload", "repeated_child" };
+ private static readonly uint[] _nestedTestAllTypesFieldTags = new uint[] { 10, 18, 26 };
+ public static NestedTestAllTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedTestAllTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedTestAllTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedTestAllTypes, NestedTestAllTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable; }
+ }
+
+ public const int ChildFieldNumber = 1;
+ private bool hasChild;
+ private global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes child_;
+ public bool HasChild {
+ get { return hasChild; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes Child {
+ get { return child_ ?? global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance; }
+ }
+
+ public const int PayloadFieldNumber = 2;
+ private bool hasPayload;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes payload_;
+ public bool HasPayload {
+ get { return hasPayload; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Payload {
+ get { return payload_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int RepeatedChildFieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes> repeatedChild_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes> RepeatedChildList {
+ get { return repeatedChild_; }
+ }
+ public int RepeatedChildCount {
+ get { return repeatedChild_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes GetRepeatedChild(int index) {
+ return repeatedChild_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedTestAllTypesFieldNames;
+ if (hasChild) {
+ output.WriteMessage(1, field_names[0], Child);
+ }
+ if (hasPayload) {
+ output.WriteMessage(2, field_names[1], Payload);
+ }
+ if (repeatedChild_.Count > 0) {
+ output.WriteMessageArray(3, field_names[2], repeatedChild_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasChild) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Child);
+ }
+ if (hasPayload) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, Payload);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes element in RepeatedChildList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedTestAllTypes MakeReadOnly() {
+ repeatedChild_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedTestAllTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedTestAllTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedTestAllTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedTestAllTypes result;
+
+ private NestedTestAllTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedTestAllTypes original = result;
+ result = new NestedTestAllTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedTestAllTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Descriptor; }
+ }
+
+ public override NestedTestAllTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance; }
+ }
+
+ public override NestedTestAllTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedTestAllTypes) {
+ return MergeFrom((NestedTestAllTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedTestAllTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasChild) {
+ MergeChild(other.Child);
+ }
+ if (other.HasPayload) {
+ MergePayload(other.Payload);
+ }
+ if (other.repeatedChild_.Count != 0) {
+ result.repeatedChild_.Add(other.repeatedChild_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedTestAllTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedTestAllTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.CreateBuilder();
+ if (result.hasChild) {
+ subBuilder.MergeFrom(Child);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Child = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasPayload) {
+ subBuilder.MergeFrom(Payload);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Payload = subBuilder.BuildPartial();
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.repeatedChild_, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasChild {
+ get { return result.hasChild; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes Child {
+ get { return result.Child; }
+ set { SetChild(value); }
+ }
+ public Builder SetChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasChild = true;
+ result.child_ = value;
+ return this;
+ }
+ public Builder SetChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasChild = true;
+ result.child_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasChild &&
+ result.child_ != global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance) {
+ result.child_ = global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.CreateBuilder(result.child_).MergeFrom(value).BuildPartial();
+ } else {
+ result.child_ = value;
+ }
+ result.hasChild = true;
+ return this;
+ }
+ public Builder ClearChild() {
+ PrepareBuilder();
+ result.hasChild = false;
+ result.child_ = null;
+ return this;
+ }
+
+ public bool HasPayload {
+ get { return result.hasPayload; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Payload {
+ get { return result.Payload; }
+ set { SetPayload(value); }
+ }
+ public Builder SetPayload(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasPayload = true;
+ result.payload_ = value;
+ return this;
+ }
+ public Builder SetPayload(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasPayload = true;
+ result.payload_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergePayload(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasPayload &&
+ result.payload_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.payload_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.payload_).MergeFrom(value).BuildPartial();
+ } else {
+ result.payload_ = value;
+ }
+ result.hasPayload = true;
+ return this;
+ }
+ public Builder ClearPayload() {
+ PrepareBuilder();
+ result.hasPayload = false;
+ result.payload_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes> RepeatedChildList {
+ get { return PrepareBuilder().repeatedChild_; }
+ }
+ public int RepeatedChildCount {
+ get { return result.RepeatedChildCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes GetRepeatedChild(int index) {
+ return result.GetRepeatedChild(index);
+ }
+ public Builder SetRepeatedChild(int index, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedChild_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedChild(int index, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedChild_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedChild_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedChild_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedChild(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes> values) {
+ PrepareBuilder();
+ result.repeatedChild_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedChild() {
+ PrepareBuilder();
+ result.repeatedChild_.Clear();
+ return this;
+ }
+ }
+ static NestedTestAllTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestDeprecatedFields : pb::GeneratedMessage<TestDeprecatedFields, TestDeprecatedFields.Builder> {
+ private TestDeprecatedFields() { }
+ private static readonly TestDeprecatedFields defaultInstance = new TestDeprecatedFields().MakeReadOnly();
+ private static readonly string[] _testDeprecatedFieldsFieldNames = new string[] { "deprecated_int32" };
+ private static readonly uint[] _testDeprecatedFieldsFieldTags = new uint[] { 8 };
+ public static TestDeprecatedFields DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDeprecatedFields DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestDeprecatedFields ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDeprecatedFields, TestDeprecatedFields.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable; }
+ }
+
+ public const int DeprecatedInt32FieldNumber = 1;
+ private bool hasDeprecatedInt32;
+ private int deprecatedInt32_;
+ [global::System.ObsoleteAttribute()]
+ public bool HasDeprecatedInt32 {
+ get { return hasDeprecatedInt32; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int DeprecatedInt32 {
+ get { return deprecatedInt32_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testDeprecatedFieldsFieldNames;
+ if (hasDeprecatedInt32) {
+ output.WriteInt32(1, field_names[0], DeprecatedInt32);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasDeprecatedInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, DeprecatedInt32);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestDeprecatedFields MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDeprecatedFields prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDeprecatedFields, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestDeprecatedFields cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestDeprecatedFields result;
+
+ private TestDeprecatedFields PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestDeprecatedFields original = result;
+ result = new TestDeprecatedFields();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestDeprecatedFields MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Descriptor; }
+ }
+
+ public override TestDeprecatedFields DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.DefaultInstance; }
+ }
+
+ public override TestDeprecatedFields BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDeprecatedFields) {
+ return MergeFrom((TestDeprecatedFields) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDeprecatedFields other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasDeprecatedInt32) {
+ DeprecatedInt32 = other.DeprecatedInt32;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testDeprecatedFieldsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testDeprecatedFieldsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasDeprecatedInt32 = input.ReadInt32(ref result.deprecatedInt32_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ [global::System.ObsoleteAttribute()]
+ public bool HasDeprecatedInt32 {
+ get { return result.hasDeprecatedInt32; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int DeprecatedInt32 {
+ get { return result.DeprecatedInt32; }
+ set { SetDeprecatedInt32(value); }
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetDeprecatedInt32(int value) {
+ PrepareBuilder();
+ result.hasDeprecatedInt32 = true;
+ result.deprecatedInt32_ = value;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder ClearDeprecatedInt32() {
+ PrepareBuilder();
+ result.hasDeprecatedInt32 = false;
+ result.deprecatedInt32_ = 0;
+ return this;
+ }
+ }
+ static TestDeprecatedFields() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ForeignMessage : pb::GeneratedMessage<ForeignMessage, ForeignMessage.Builder> {
+ private ForeignMessage() { }
+ private static readonly ForeignMessage defaultInstance = new ForeignMessage().MakeReadOnly();
+ private static readonly string[] _foreignMessageFieldNames = new string[] { "c" };
+ private static readonly uint[] _foreignMessageFieldTags = new uint[] { 8 };
+ public static ForeignMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ForeignMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ForeignMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_ForeignMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ForeignMessage, ForeignMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable; }
+ }
+
+ public const int CFieldNumber = 1;
+ private bool hasC;
+ private int c_;
+ public bool HasC {
+ get { return hasC; }
+ }
+ public int C {
+ get { return c_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _foreignMessageFieldNames;
+ if (hasC) {
+ output.WriteInt32(1, field_names[0], C);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasC) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, C);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ForeignMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ForeignMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ForeignMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ForeignMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ForeignMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ForeignMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ForeignMessage result;
+
+ private ForeignMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ForeignMessage original = result;
+ result = new ForeignMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ForeignMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Descriptor; }
+ }
+
+ public override ForeignMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public override ForeignMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ForeignMessage) {
+ return MergeFrom((ForeignMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ForeignMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasC) {
+ C = other.C;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_foreignMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _foreignMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasC = input.ReadInt32(ref result.c_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasC {
+ get { return result.hasC; }
+ }
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ PrepareBuilder();
+ result.hasC = true;
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ PrepareBuilder();
+ result.hasC = false;
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static ForeignMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestReservedFields : pb::GeneratedMessage<TestReservedFields, TestReservedFields.Builder> {
+ private TestReservedFields() { }
+ private static readonly TestReservedFields defaultInstance = new TestReservedFields().MakeReadOnly();
+ private static readonly string[] _testReservedFieldsFieldNames = new string[] { };
+ private static readonly uint[] _testReservedFieldsFieldTags = new uint[] { };
+ public static TestReservedFields DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestReservedFields DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestReservedFields ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestReservedFields__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestReservedFields, TestReservedFields.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testReservedFieldsFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestReservedFields ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestReservedFields ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestReservedFields ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestReservedFields MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestReservedFields prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestReservedFields, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestReservedFields cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestReservedFields result;
+
+ private TestReservedFields PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestReservedFields original = result;
+ result = new TestReservedFields();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestReservedFields MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReservedFields.Descriptor; }
+ }
+
+ public override TestReservedFields DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReservedFields.DefaultInstance; }
+ }
+
+ public override TestReservedFields BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestReservedFields) {
+ return MergeFrom((TestReservedFields) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestReservedFields other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestReservedFields.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testReservedFieldsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testReservedFieldsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestReservedFields() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestAllExtensions : pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder> {
+ private TestAllExtensions() { }
+ private static readonly TestAllExtensions defaultInstance = new TestAllExtensions().MakeReadOnly();
+ private static readonly string[] _testAllExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testAllExtensionsFieldTags = new uint[] { };
+ public static TestAllExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestAllExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestAllExtensions, TestAllExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testAllExtensionsFieldNames;
+ pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestAllExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestAllExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestAllExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestAllExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestAllExtensions result;
+
+ private TestAllExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestAllExtensions original = result;
+ result = new TestAllExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestAllExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Descriptor; }
+ }
+
+ public override TestAllExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.DefaultInstance; }
+ }
+
+ public override TestAllExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestAllExtensions) {
+ return MergeFrom((TestAllExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testAllExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testAllExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestAllExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup_extension : pb::GeneratedMessage<OptionalGroup_extension, OptionalGroup_extension.Builder> {
+ private OptionalGroup_extension() { }
+ private static readonly OptionalGroup_extension defaultInstance = new OptionalGroup_extension().MakeReadOnly();
+ private static readonly string[] _optionalGroupExtensionFieldNames = new string[] { "a" };
+ private static readonly uint[] _optionalGroupExtensionFieldTags = new uint[] { 136 };
+ public static OptionalGroup_extension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup_extension DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup_extension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup_extension, OptionalGroup_extension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupExtensionFieldNames;
+ if (hasA) {
+ output.WriteInt32(17, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup_extension MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup_extension prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup_extension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup_extension cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup_extension result;
+
+ private OptionalGroup_extension PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup_extension original = result;
+ result = new OptionalGroup_extension();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup_extension MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Descriptor; }
+ }
+
+ public override OptionalGroup_extension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.DefaultInstance; }
+ }
+
+ public override OptionalGroup_extension BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup_extension) {
+ return MergeFrom((OptionalGroup_extension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup_extension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupExtensionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupExtensionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 136: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup_extension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup_extension : pb::GeneratedMessage<RepeatedGroup_extension, RepeatedGroup_extension.Builder> {
+ private RepeatedGroup_extension() { }
+ private static readonly RepeatedGroup_extension defaultInstance = new RepeatedGroup_extension().MakeReadOnly();
+ private static readonly string[] _repeatedGroupExtensionFieldNames = new string[] { "a" };
+ private static readonly uint[] _repeatedGroupExtensionFieldTags = new uint[] { 376 };
+ public static RepeatedGroup_extension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup_extension DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup_extension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup_extension, RepeatedGroup_extension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupExtensionFieldNames;
+ if (hasA) {
+ output.WriteInt32(47, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup_extension MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup_extension prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup_extension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup_extension cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup_extension result;
+
+ private RepeatedGroup_extension PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup_extension original = result;
+ result = new RepeatedGroup_extension();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup_extension MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Descriptor; }
+ }
+
+ public override RepeatedGroup_extension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.DefaultInstance; }
+ }
+
+ public override RepeatedGroup_extension BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup_extension) {
+ return MergeFrom((RepeatedGroup_extension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup_extension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupExtensionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupExtensionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 376: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup_extension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestNestedExtension : pb::GeneratedMessage<TestNestedExtension, TestNestedExtension.Builder> {
+ private TestNestedExtension() { }
+ private static readonly TestNestedExtension defaultInstance = new TestNestedExtension().MakeReadOnly();
+ private static readonly string[] _testNestedExtensionFieldNames = new string[] { };
+ private static readonly uint[] _testNestedExtensionFieldTags = new uint[] { };
+ public static TestNestedExtension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedExtension DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestNestedExtension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedExtension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestNestedExtension, TestNestedExtension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable; }
+ }
+
+ public const int TestFieldNumber = 1002;
+ public static pb::GeneratedExtensionBase<string> Test;
+ public const int NestedStringExtensionFieldNumber = 1003;
+ public static pb::GeneratedExtensionBase<string> NestedStringExtension;
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testNestedExtensionFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestNestedExtension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedExtension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestNestedExtension MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedExtension prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestNestedExtension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestNestedExtension cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestNestedExtension result;
+
+ private TestNestedExtension PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestNestedExtension original = result;
+ result = new TestNestedExtension();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestNestedExtension MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor; }
+ }
+
+ public override TestNestedExtension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.DefaultInstance; }
+ }
+
+ public override TestNestedExtension BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestNestedExtension) {
+ return MergeFrom((TestNestedExtension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedExtension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testNestedExtensionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testNestedExtensionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestNestedExtension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequired : pb::GeneratedMessage<TestRequired, TestRequired.Builder> {
+ private TestRequired() { }
+ private static readonly TestRequired defaultInstance = new TestRequired().MakeReadOnly();
+ private static readonly string[] _testRequiredFieldNames = new string[] { "a", "b", "c", "dummy10", "dummy11", "dummy12", "dummy13", "dummy14", "dummy15", "dummy16", "dummy17", "dummy18", "dummy19", "dummy2", "dummy20", "dummy21", "dummy22", "dummy23", "dummy24", "dummy25", "dummy26", "dummy27", "dummy28", "dummy29", "dummy30", "dummy31", "dummy32", "dummy4", "dummy5", "dummy6", "dummy7", "dummy8", "dummy9" };
+ private static readonly uint[] _testRequiredFieldTags = new uint[] { 8, 24, 264, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 16, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 256, 32, 40, 48, 56, 64, 72 };
+ public static TestRequired DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequired DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequired ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequired__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequired, TestRequired.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequired__FieldAccessorTable; }
+ }
+
+ public const int SingleFieldNumber = 1000;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestRequired> Single;
+ public const int MultiFieldNumber = 1001;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestRequired>> Multi;
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int Dummy2FieldNumber = 2;
+ private bool hasDummy2;
+ private int dummy2_;
+ public bool HasDummy2 {
+ get { return hasDummy2; }
+ }
+ public int Dummy2 {
+ get { return dummy2_; }
+ }
+
+ public const int BFieldNumber = 3;
+ private bool hasB;
+ private int b_;
+ public bool HasB {
+ get { return hasB; }
+ }
+ public int B {
+ get { return b_; }
+ }
+
+ public const int Dummy4FieldNumber = 4;
+ private bool hasDummy4;
+ private int dummy4_;
+ public bool HasDummy4 {
+ get { return hasDummy4; }
+ }
+ public int Dummy4 {
+ get { return dummy4_; }
+ }
+
+ public const int Dummy5FieldNumber = 5;
+ private bool hasDummy5;
+ private int dummy5_;
+ public bool HasDummy5 {
+ get { return hasDummy5; }
+ }
+ public int Dummy5 {
+ get { return dummy5_; }
+ }
+
+ public const int Dummy6FieldNumber = 6;
+ private bool hasDummy6;
+ private int dummy6_;
+ public bool HasDummy6 {
+ get { return hasDummy6; }
+ }
+ public int Dummy6 {
+ get { return dummy6_; }
+ }
+
+ public const int Dummy7FieldNumber = 7;
+ private bool hasDummy7;
+ private int dummy7_;
+ public bool HasDummy7 {
+ get { return hasDummy7; }
+ }
+ public int Dummy7 {
+ get { return dummy7_; }
+ }
+
+ public const int Dummy8FieldNumber = 8;
+ private bool hasDummy8;
+ private int dummy8_;
+ public bool HasDummy8 {
+ get { return hasDummy8; }
+ }
+ public int Dummy8 {
+ get { return dummy8_; }
+ }
+
+ public const int Dummy9FieldNumber = 9;
+ private bool hasDummy9;
+ private int dummy9_;
+ public bool HasDummy9 {
+ get { return hasDummy9; }
+ }
+ public int Dummy9 {
+ get { return dummy9_; }
+ }
+
+ public const int Dummy10FieldNumber = 10;
+ private bool hasDummy10;
+ private int dummy10_;
+ public bool HasDummy10 {
+ get { return hasDummy10; }
+ }
+ public int Dummy10 {
+ get { return dummy10_; }
+ }
+
+ public const int Dummy11FieldNumber = 11;
+ private bool hasDummy11;
+ private int dummy11_;
+ public bool HasDummy11 {
+ get { return hasDummy11; }
+ }
+ public int Dummy11 {
+ get { return dummy11_; }
+ }
+
+ public const int Dummy12FieldNumber = 12;
+ private bool hasDummy12;
+ private int dummy12_;
+ public bool HasDummy12 {
+ get { return hasDummy12; }
+ }
+ public int Dummy12 {
+ get { return dummy12_; }
+ }
+
+ public const int Dummy13FieldNumber = 13;
+ private bool hasDummy13;
+ private int dummy13_;
+ public bool HasDummy13 {
+ get { return hasDummy13; }
+ }
+ public int Dummy13 {
+ get { return dummy13_; }
+ }
+
+ public const int Dummy14FieldNumber = 14;
+ private bool hasDummy14;
+ private int dummy14_;
+ public bool HasDummy14 {
+ get { return hasDummy14; }
+ }
+ public int Dummy14 {
+ get { return dummy14_; }
+ }
+
+ public const int Dummy15FieldNumber = 15;
+ private bool hasDummy15;
+ private int dummy15_;
+ public bool HasDummy15 {
+ get { return hasDummy15; }
+ }
+ public int Dummy15 {
+ get { return dummy15_; }
+ }
+
+ public const int Dummy16FieldNumber = 16;
+ private bool hasDummy16;
+ private int dummy16_;
+ public bool HasDummy16 {
+ get { return hasDummy16; }
+ }
+ public int Dummy16 {
+ get { return dummy16_; }
+ }
+
+ public const int Dummy17FieldNumber = 17;
+ private bool hasDummy17;
+ private int dummy17_;
+ public bool HasDummy17 {
+ get { return hasDummy17; }
+ }
+ public int Dummy17 {
+ get { return dummy17_; }
+ }
+
+ public const int Dummy18FieldNumber = 18;
+ private bool hasDummy18;
+ private int dummy18_;
+ public bool HasDummy18 {
+ get { return hasDummy18; }
+ }
+ public int Dummy18 {
+ get { return dummy18_; }
+ }
+
+ public const int Dummy19FieldNumber = 19;
+ private bool hasDummy19;
+ private int dummy19_;
+ public bool HasDummy19 {
+ get { return hasDummy19; }
+ }
+ public int Dummy19 {
+ get { return dummy19_; }
+ }
+
+ public const int Dummy20FieldNumber = 20;
+ private bool hasDummy20;
+ private int dummy20_;
+ public bool HasDummy20 {
+ get { return hasDummy20; }
+ }
+ public int Dummy20 {
+ get { return dummy20_; }
+ }
+
+ public const int Dummy21FieldNumber = 21;
+ private bool hasDummy21;
+ private int dummy21_;
+ public bool HasDummy21 {
+ get { return hasDummy21; }
+ }
+ public int Dummy21 {
+ get { return dummy21_; }
+ }
+
+ public const int Dummy22FieldNumber = 22;
+ private bool hasDummy22;
+ private int dummy22_;
+ public bool HasDummy22 {
+ get { return hasDummy22; }
+ }
+ public int Dummy22 {
+ get { return dummy22_; }
+ }
+
+ public const int Dummy23FieldNumber = 23;
+ private bool hasDummy23;
+ private int dummy23_;
+ public bool HasDummy23 {
+ get { return hasDummy23; }
+ }
+ public int Dummy23 {
+ get { return dummy23_; }
+ }
+
+ public const int Dummy24FieldNumber = 24;
+ private bool hasDummy24;
+ private int dummy24_;
+ public bool HasDummy24 {
+ get { return hasDummy24; }
+ }
+ public int Dummy24 {
+ get { return dummy24_; }
+ }
+
+ public const int Dummy25FieldNumber = 25;
+ private bool hasDummy25;
+ private int dummy25_;
+ public bool HasDummy25 {
+ get { return hasDummy25; }
+ }
+ public int Dummy25 {
+ get { return dummy25_; }
+ }
+
+ public const int Dummy26FieldNumber = 26;
+ private bool hasDummy26;
+ private int dummy26_;
+ public bool HasDummy26 {
+ get { return hasDummy26; }
+ }
+ public int Dummy26 {
+ get { return dummy26_; }
+ }
+
+ public const int Dummy27FieldNumber = 27;
+ private bool hasDummy27;
+ private int dummy27_;
+ public bool HasDummy27 {
+ get { return hasDummy27; }
+ }
+ public int Dummy27 {
+ get { return dummy27_; }
+ }
+
+ public const int Dummy28FieldNumber = 28;
+ private bool hasDummy28;
+ private int dummy28_;
+ public bool HasDummy28 {
+ get { return hasDummy28; }
+ }
+ public int Dummy28 {
+ get { return dummy28_; }
+ }
+
+ public const int Dummy29FieldNumber = 29;
+ private bool hasDummy29;
+ private int dummy29_;
+ public bool HasDummy29 {
+ get { return hasDummy29; }
+ }
+ public int Dummy29 {
+ get { return dummy29_; }
+ }
+
+ public const int Dummy30FieldNumber = 30;
+ private bool hasDummy30;
+ private int dummy30_;
+ public bool HasDummy30 {
+ get { return hasDummy30; }
+ }
+ public int Dummy30 {
+ get { return dummy30_; }
+ }
+
+ public const int Dummy31FieldNumber = 31;
+ private bool hasDummy31;
+ private int dummy31_;
+ public bool HasDummy31 {
+ get { return hasDummy31; }
+ }
+ public int Dummy31 {
+ get { return dummy31_; }
+ }
+
+ public const int Dummy32FieldNumber = 32;
+ private bool hasDummy32;
+ private int dummy32_;
+ public bool HasDummy32 {
+ get { return hasDummy32; }
+ }
+ public int Dummy32 {
+ get { return dummy32_; }
+ }
+
+ public const int CFieldNumber = 33;
+ private bool hasC;
+ private int c_;
+ public bool HasC {
+ get { return hasC; }
+ }
+ public int C {
+ get { return c_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasA) return false;
+ if (!hasB) return false;
+ if (!hasC) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRequiredFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ if (hasDummy2) {
+ output.WriteInt32(2, field_names[13], Dummy2);
+ }
+ if (hasB) {
+ output.WriteInt32(3, field_names[1], B);
+ }
+ if (hasDummy4) {
+ output.WriteInt32(4, field_names[27], Dummy4);
+ }
+ if (hasDummy5) {
+ output.WriteInt32(5, field_names[28], Dummy5);
+ }
+ if (hasDummy6) {
+ output.WriteInt32(6, field_names[29], Dummy6);
+ }
+ if (hasDummy7) {
+ output.WriteInt32(7, field_names[30], Dummy7);
+ }
+ if (hasDummy8) {
+ output.WriteInt32(8, field_names[31], Dummy8);
+ }
+ if (hasDummy9) {
+ output.WriteInt32(9, field_names[32], Dummy9);
+ }
+ if (hasDummy10) {
+ output.WriteInt32(10, field_names[3], Dummy10);
+ }
+ if (hasDummy11) {
+ output.WriteInt32(11, field_names[4], Dummy11);
+ }
+ if (hasDummy12) {
+ output.WriteInt32(12, field_names[5], Dummy12);
+ }
+ if (hasDummy13) {
+ output.WriteInt32(13, field_names[6], Dummy13);
+ }
+ if (hasDummy14) {
+ output.WriteInt32(14, field_names[7], Dummy14);
+ }
+ if (hasDummy15) {
+ output.WriteInt32(15, field_names[8], Dummy15);
+ }
+ if (hasDummy16) {
+ output.WriteInt32(16, field_names[9], Dummy16);
+ }
+ if (hasDummy17) {
+ output.WriteInt32(17, field_names[10], Dummy17);
+ }
+ if (hasDummy18) {
+ output.WriteInt32(18, field_names[11], Dummy18);
+ }
+ if (hasDummy19) {
+ output.WriteInt32(19, field_names[12], Dummy19);
+ }
+ if (hasDummy20) {
+ output.WriteInt32(20, field_names[14], Dummy20);
+ }
+ if (hasDummy21) {
+ output.WriteInt32(21, field_names[15], Dummy21);
+ }
+ if (hasDummy22) {
+ output.WriteInt32(22, field_names[16], Dummy22);
+ }
+ if (hasDummy23) {
+ output.WriteInt32(23, field_names[17], Dummy23);
+ }
+ if (hasDummy24) {
+ output.WriteInt32(24, field_names[18], Dummy24);
+ }
+ if (hasDummy25) {
+ output.WriteInt32(25, field_names[19], Dummy25);
+ }
+ if (hasDummy26) {
+ output.WriteInt32(26, field_names[20], Dummy26);
+ }
+ if (hasDummy27) {
+ output.WriteInt32(27, field_names[21], Dummy27);
+ }
+ if (hasDummy28) {
+ output.WriteInt32(28, field_names[22], Dummy28);
+ }
+ if (hasDummy29) {
+ output.WriteInt32(29, field_names[23], Dummy29);
+ }
+ if (hasDummy30) {
+ output.WriteInt32(30, field_names[24], Dummy30);
+ }
+ if (hasDummy31) {
+ output.WriteInt32(31, field_names[25], Dummy31);
+ }
+ if (hasDummy32) {
+ output.WriteInt32(32, field_names[26], Dummy32);
+ }
+ if (hasC) {
+ output.WriteInt32(33, field_names[2], C);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (hasDummy2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Dummy2);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, B);
+ }
+ if (hasDummy4) {
+ size += pb::CodedOutputStream.ComputeInt32Size(4, Dummy4);
+ }
+ if (hasDummy5) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, Dummy5);
+ }
+ if (hasDummy6) {
+ size += pb::CodedOutputStream.ComputeInt32Size(6, Dummy6);
+ }
+ if (hasDummy7) {
+ size += pb::CodedOutputStream.ComputeInt32Size(7, Dummy7);
+ }
+ if (hasDummy8) {
+ size += pb::CodedOutputStream.ComputeInt32Size(8, Dummy8);
+ }
+ if (hasDummy9) {
+ size += pb::CodedOutputStream.ComputeInt32Size(9, Dummy9);
+ }
+ if (hasDummy10) {
+ size += pb::CodedOutputStream.ComputeInt32Size(10, Dummy10);
+ }
+ if (hasDummy11) {
+ size += pb::CodedOutputStream.ComputeInt32Size(11, Dummy11);
+ }
+ if (hasDummy12) {
+ size += pb::CodedOutputStream.ComputeInt32Size(12, Dummy12);
+ }
+ if (hasDummy13) {
+ size += pb::CodedOutputStream.ComputeInt32Size(13, Dummy13);
+ }
+ if (hasDummy14) {
+ size += pb::CodedOutputStream.ComputeInt32Size(14, Dummy14);
+ }
+ if (hasDummy15) {
+ size += pb::CodedOutputStream.ComputeInt32Size(15, Dummy15);
+ }
+ if (hasDummy16) {
+ size += pb::CodedOutputStream.ComputeInt32Size(16, Dummy16);
+ }
+ if (hasDummy17) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, Dummy17);
+ }
+ if (hasDummy18) {
+ size += pb::CodedOutputStream.ComputeInt32Size(18, Dummy18);
+ }
+ if (hasDummy19) {
+ size += pb::CodedOutputStream.ComputeInt32Size(19, Dummy19);
+ }
+ if (hasDummy20) {
+ size += pb::CodedOutputStream.ComputeInt32Size(20, Dummy20);
+ }
+ if (hasDummy21) {
+ size += pb::CodedOutputStream.ComputeInt32Size(21, Dummy21);
+ }
+ if (hasDummy22) {
+ size += pb::CodedOutputStream.ComputeInt32Size(22, Dummy22);
+ }
+ if (hasDummy23) {
+ size += pb::CodedOutputStream.ComputeInt32Size(23, Dummy23);
+ }
+ if (hasDummy24) {
+ size += pb::CodedOutputStream.ComputeInt32Size(24, Dummy24);
+ }
+ if (hasDummy25) {
+ size += pb::CodedOutputStream.ComputeInt32Size(25, Dummy25);
+ }
+ if (hasDummy26) {
+ size += pb::CodedOutputStream.ComputeInt32Size(26, Dummy26);
+ }
+ if (hasDummy27) {
+ size += pb::CodedOutputStream.ComputeInt32Size(27, Dummy27);
+ }
+ if (hasDummy28) {
+ size += pb::CodedOutputStream.ComputeInt32Size(28, Dummy28);
+ }
+ if (hasDummy29) {
+ size += pb::CodedOutputStream.ComputeInt32Size(29, Dummy29);
+ }
+ if (hasDummy30) {
+ size += pb::CodedOutputStream.ComputeInt32Size(30, Dummy30);
+ }
+ if (hasDummy31) {
+ size += pb::CodedOutputStream.ComputeInt32Size(31, Dummy31);
+ }
+ if (hasDummy32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(32, Dummy32);
+ }
+ if (hasC) {
+ size += pb::CodedOutputStream.ComputeInt32Size(33, C);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRequired ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequired ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequired MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequired prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequired, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequired cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequired result;
+
+ private TestRequired PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequired original = result;
+ result = new TestRequired();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequired MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor; }
+ }
+
+ public override TestRequired DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance; }
+ }
+
+ public override TestRequired BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequired) {
+ return MergeFrom((TestRequired) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequired other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasDummy2) {
+ Dummy2 = other.Dummy2;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ if (other.HasDummy4) {
+ Dummy4 = other.Dummy4;
+ }
+ if (other.HasDummy5) {
+ Dummy5 = other.Dummy5;
+ }
+ if (other.HasDummy6) {
+ Dummy6 = other.Dummy6;
+ }
+ if (other.HasDummy7) {
+ Dummy7 = other.Dummy7;
+ }
+ if (other.HasDummy8) {
+ Dummy8 = other.Dummy8;
+ }
+ if (other.HasDummy9) {
+ Dummy9 = other.Dummy9;
+ }
+ if (other.HasDummy10) {
+ Dummy10 = other.Dummy10;
+ }
+ if (other.HasDummy11) {
+ Dummy11 = other.Dummy11;
+ }
+ if (other.HasDummy12) {
+ Dummy12 = other.Dummy12;
+ }
+ if (other.HasDummy13) {
+ Dummy13 = other.Dummy13;
+ }
+ if (other.HasDummy14) {
+ Dummy14 = other.Dummy14;
+ }
+ if (other.HasDummy15) {
+ Dummy15 = other.Dummy15;
+ }
+ if (other.HasDummy16) {
+ Dummy16 = other.Dummy16;
+ }
+ if (other.HasDummy17) {
+ Dummy17 = other.Dummy17;
+ }
+ if (other.HasDummy18) {
+ Dummy18 = other.Dummy18;
+ }
+ if (other.HasDummy19) {
+ Dummy19 = other.Dummy19;
+ }
+ if (other.HasDummy20) {
+ Dummy20 = other.Dummy20;
+ }
+ if (other.HasDummy21) {
+ Dummy21 = other.Dummy21;
+ }
+ if (other.HasDummy22) {
+ Dummy22 = other.Dummy22;
+ }
+ if (other.HasDummy23) {
+ Dummy23 = other.Dummy23;
+ }
+ if (other.HasDummy24) {
+ Dummy24 = other.Dummy24;
+ }
+ if (other.HasDummy25) {
+ Dummy25 = other.Dummy25;
+ }
+ if (other.HasDummy26) {
+ Dummy26 = other.Dummy26;
+ }
+ if (other.HasDummy27) {
+ Dummy27 = other.Dummy27;
+ }
+ if (other.HasDummy28) {
+ Dummy28 = other.Dummy28;
+ }
+ if (other.HasDummy29) {
+ Dummy29 = other.Dummy29;
+ }
+ if (other.HasDummy30) {
+ Dummy30 = other.Dummy30;
+ }
+ if (other.HasDummy31) {
+ Dummy31 = other.Dummy31;
+ }
+ if (other.HasDummy32) {
+ Dummy32 = other.Dummy32;
+ }
+ if (other.HasC) {
+ C = other.C;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRequiredFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRequiredFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 16: {
+ result.hasDummy2 = input.ReadInt32(ref result.dummy2_);
+ break;
+ }
+ case 24: {
+ result.hasB = input.ReadInt32(ref result.b_);
+ break;
+ }
+ case 32: {
+ result.hasDummy4 = input.ReadInt32(ref result.dummy4_);
+ break;
+ }
+ case 40: {
+ result.hasDummy5 = input.ReadInt32(ref result.dummy5_);
+ break;
+ }
+ case 48: {
+ result.hasDummy6 = input.ReadInt32(ref result.dummy6_);
+ break;
+ }
+ case 56: {
+ result.hasDummy7 = input.ReadInt32(ref result.dummy7_);
+ break;
+ }
+ case 64: {
+ result.hasDummy8 = input.ReadInt32(ref result.dummy8_);
+ break;
+ }
+ case 72: {
+ result.hasDummy9 = input.ReadInt32(ref result.dummy9_);
+ break;
+ }
+ case 80: {
+ result.hasDummy10 = input.ReadInt32(ref result.dummy10_);
+ break;
+ }
+ case 88: {
+ result.hasDummy11 = input.ReadInt32(ref result.dummy11_);
+ break;
+ }
+ case 96: {
+ result.hasDummy12 = input.ReadInt32(ref result.dummy12_);
+ break;
+ }
+ case 104: {
+ result.hasDummy13 = input.ReadInt32(ref result.dummy13_);
+ break;
+ }
+ case 112: {
+ result.hasDummy14 = input.ReadInt32(ref result.dummy14_);
+ break;
+ }
+ case 120: {
+ result.hasDummy15 = input.ReadInt32(ref result.dummy15_);
+ break;
+ }
+ case 128: {
+ result.hasDummy16 = input.ReadInt32(ref result.dummy16_);
+ break;
+ }
+ case 136: {
+ result.hasDummy17 = input.ReadInt32(ref result.dummy17_);
+ break;
+ }
+ case 144: {
+ result.hasDummy18 = input.ReadInt32(ref result.dummy18_);
+ break;
+ }
+ case 152: {
+ result.hasDummy19 = input.ReadInt32(ref result.dummy19_);
+ break;
+ }
+ case 160: {
+ result.hasDummy20 = input.ReadInt32(ref result.dummy20_);
+ break;
+ }
+ case 168: {
+ result.hasDummy21 = input.ReadInt32(ref result.dummy21_);
+ break;
+ }
+ case 176: {
+ result.hasDummy22 = input.ReadInt32(ref result.dummy22_);
+ break;
+ }
+ case 184: {
+ result.hasDummy23 = input.ReadInt32(ref result.dummy23_);
+ break;
+ }
+ case 192: {
+ result.hasDummy24 = input.ReadInt32(ref result.dummy24_);
+ break;
+ }
+ case 200: {
+ result.hasDummy25 = input.ReadInt32(ref result.dummy25_);
+ break;
+ }
+ case 208: {
+ result.hasDummy26 = input.ReadInt32(ref result.dummy26_);
+ break;
+ }
+ case 216: {
+ result.hasDummy27 = input.ReadInt32(ref result.dummy27_);
+ break;
+ }
+ case 224: {
+ result.hasDummy28 = input.ReadInt32(ref result.dummy28_);
+ break;
+ }
+ case 232: {
+ result.hasDummy29 = input.ReadInt32(ref result.dummy29_);
+ break;
+ }
+ case 240: {
+ result.hasDummy30 = input.ReadInt32(ref result.dummy30_);
+ break;
+ }
+ case 248: {
+ result.hasDummy31 = input.ReadInt32(ref result.dummy31_);
+ break;
+ }
+ case 256: {
+ result.hasDummy32 = input.ReadInt32(ref result.dummy32_);
+ break;
+ }
+ case 264: {
+ result.hasC = input.ReadInt32(ref result.c_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasDummy2 {
+ get { return result.hasDummy2; }
+ }
+ public int Dummy2 {
+ get { return result.Dummy2; }
+ set { SetDummy2(value); }
+ }
+ public Builder SetDummy2(int value) {
+ PrepareBuilder();
+ result.hasDummy2 = true;
+ result.dummy2_ = value;
+ return this;
+ }
+ public Builder ClearDummy2() {
+ PrepareBuilder();
+ result.hasDummy2 = false;
+ result.dummy2_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public int B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(int value) {
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = 0;
+ return this;
+ }
+
+ public bool HasDummy4 {
+ get { return result.hasDummy4; }
+ }
+ public int Dummy4 {
+ get { return result.Dummy4; }
+ set { SetDummy4(value); }
+ }
+ public Builder SetDummy4(int value) {
+ PrepareBuilder();
+ result.hasDummy4 = true;
+ result.dummy4_ = value;
+ return this;
+ }
+ public Builder ClearDummy4() {
+ PrepareBuilder();
+ result.hasDummy4 = false;
+ result.dummy4_ = 0;
+ return this;
+ }
+
+ public bool HasDummy5 {
+ get { return result.hasDummy5; }
+ }
+ public int Dummy5 {
+ get { return result.Dummy5; }
+ set { SetDummy5(value); }
+ }
+ public Builder SetDummy5(int value) {
+ PrepareBuilder();
+ result.hasDummy5 = true;
+ result.dummy5_ = value;
+ return this;
+ }
+ public Builder ClearDummy5() {
+ PrepareBuilder();
+ result.hasDummy5 = false;
+ result.dummy5_ = 0;
+ return this;
+ }
+
+ public bool HasDummy6 {
+ get { return result.hasDummy6; }
+ }
+ public int Dummy6 {
+ get { return result.Dummy6; }
+ set { SetDummy6(value); }
+ }
+ public Builder SetDummy6(int value) {
+ PrepareBuilder();
+ result.hasDummy6 = true;
+ result.dummy6_ = value;
+ return this;
+ }
+ public Builder ClearDummy6() {
+ PrepareBuilder();
+ result.hasDummy6 = false;
+ result.dummy6_ = 0;
+ return this;
+ }
+
+ public bool HasDummy7 {
+ get { return result.hasDummy7; }
+ }
+ public int Dummy7 {
+ get { return result.Dummy7; }
+ set { SetDummy7(value); }
+ }
+ public Builder SetDummy7(int value) {
+ PrepareBuilder();
+ result.hasDummy7 = true;
+ result.dummy7_ = value;
+ return this;
+ }
+ public Builder ClearDummy7() {
+ PrepareBuilder();
+ result.hasDummy7 = false;
+ result.dummy7_ = 0;
+ return this;
+ }
+
+ public bool HasDummy8 {
+ get { return result.hasDummy8; }
+ }
+ public int Dummy8 {
+ get { return result.Dummy8; }
+ set { SetDummy8(value); }
+ }
+ public Builder SetDummy8(int value) {
+ PrepareBuilder();
+ result.hasDummy8 = true;
+ result.dummy8_ = value;
+ return this;
+ }
+ public Builder ClearDummy8() {
+ PrepareBuilder();
+ result.hasDummy8 = false;
+ result.dummy8_ = 0;
+ return this;
+ }
+
+ public bool HasDummy9 {
+ get { return result.hasDummy9; }
+ }
+ public int Dummy9 {
+ get { return result.Dummy9; }
+ set { SetDummy9(value); }
+ }
+ public Builder SetDummy9(int value) {
+ PrepareBuilder();
+ result.hasDummy9 = true;
+ result.dummy9_ = value;
+ return this;
+ }
+ public Builder ClearDummy9() {
+ PrepareBuilder();
+ result.hasDummy9 = false;
+ result.dummy9_ = 0;
+ return this;
+ }
+
+ public bool HasDummy10 {
+ get { return result.hasDummy10; }
+ }
+ public int Dummy10 {
+ get { return result.Dummy10; }
+ set { SetDummy10(value); }
+ }
+ public Builder SetDummy10(int value) {
+ PrepareBuilder();
+ result.hasDummy10 = true;
+ result.dummy10_ = value;
+ return this;
+ }
+ public Builder ClearDummy10() {
+ PrepareBuilder();
+ result.hasDummy10 = false;
+ result.dummy10_ = 0;
+ return this;
+ }
+
+ public bool HasDummy11 {
+ get { return result.hasDummy11; }
+ }
+ public int Dummy11 {
+ get { return result.Dummy11; }
+ set { SetDummy11(value); }
+ }
+ public Builder SetDummy11(int value) {
+ PrepareBuilder();
+ result.hasDummy11 = true;
+ result.dummy11_ = value;
+ return this;
+ }
+ public Builder ClearDummy11() {
+ PrepareBuilder();
+ result.hasDummy11 = false;
+ result.dummy11_ = 0;
+ return this;
+ }
+
+ public bool HasDummy12 {
+ get { return result.hasDummy12; }
+ }
+ public int Dummy12 {
+ get { return result.Dummy12; }
+ set { SetDummy12(value); }
+ }
+ public Builder SetDummy12(int value) {
+ PrepareBuilder();
+ result.hasDummy12 = true;
+ result.dummy12_ = value;
+ return this;
+ }
+ public Builder ClearDummy12() {
+ PrepareBuilder();
+ result.hasDummy12 = false;
+ result.dummy12_ = 0;
+ return this;
+ }
+
+ public bool HasDummy13 {
+ get { return result.hasDummy13; }
+ }
+ public int Dummy13 {
+ get { return result.Dummy13; }
+ set { SetDummy13(value); }
+ }
+ public Builder SetDummy13(int value) {
+ PrepareBuilder();
+ result.hasDummy13 = true;
+ result.dummy13_ = value;
+ return this;
+ }
+ public Builder ClearDummy13() {
+ PrepareBuilder();
+ result.hasDummy13 = false;
+ result.dummy13_ = 0;
+ return this;
+ }
+
+ public bool HasDummy14 {
+ get { return result.hasDummy14; }
+ }
+ public int Dummy14 {
+ get { return result.Dummy14; }
+ set { SetDummy14(value); }
+ }
+ public Builder SetDummy14(int value) {
+ PrepareBuilder();
+ result.hasDummy14 = true;
+ result.dummy14_ = value;
+ return this;
+ }
+ public Builder ClearDummy14() {
+ PrepareBuilder();
+ result.hasDummy14 = false;
+ result.dummy14_ = 0;
+ return this;
+ }
+
+ public bool HasDummy15 {
+ get { return result.hasDummy15; }
+ }
+ public int Dummy15 {
+ get { return result.Dummy15; }
+ set { SetDummy15(value); }
+ }
+ public Builder SetDummy15(int value) {
+ PrepareBuilder();
+ result.hasDummy15 = true;
+ result.dummy15_ = value;
+ return this;
+ }
+ public Builder ClearDummy15() {
+ PrepareBuilder();
+ result.hasDummy15 = false;
+ result.dummy15_ = 0;
+ return this;
+ }
+
+ public bool HasDummy16 {
+ get { return result.hasDummy16; }
+ }
+ public int Dummy16 {
+ get { return result.Dummy16; }
+ set { SetDummy16(value); }
+ }
+ public Builder SetDummy16(int value) {
+ PrepareBuilder();
+ result.hasDummy16 = true;
+ result.dummy16_ = value;
+ return this;
+ }
+ public Builder ClearDummy16() {
+ PrepareBuilder();
+ result.hasDummy16 = false;
+ result.dummy16_ = 0;
+ return this;
+ }
+
+ public bool HasDummy17 {
+ get { return result.hasDummy17; }
+ }
+ public int Dummy17 {
+ get { return result.Dummy17; }
+ set { SetDummy17(value); }
+ }
+ public Builder SetDummy17(int value) {
+ PrepareBuilder();
+ result.hasDummy17 = true;
+ result.dummy17_ = value;
+ return this;
+ }
+ public Builder ClearDummy17() {
+ PrepareBuilder();
+ result.hasDummy17 = false;
+ result.dummy17_ = 0;
+ return this;
+ }
+
+ public bool HasDummy18 {
+ get { return result.hasDummy18; }
+ }
+ public int Dummy18 {
+ get { return result.Dummy18; }
+ set { SetDummy18(value); }
+ }
+ public Builder SetDummy18(int value) {
+ PrepareBuilder();
+ result.hasDummy18 = true;
+ result.dummy18_ = value;
+ return this;
+ }
+ public Builder ClearDummy18() {
+ PrepareBuilder();
+ result.hasDummy18 = false;
+ result.dummy18_ = 0;
+ return this;
+ }
+
+ public bool HasDummy19 {
+ get { return result.hasDummy19; }
+ }
+ public int Dummy19 {
+ get { return result.Dummy19; }
+ set { SetDummy19(value); }
+ }
+ public Builder SetDummy19(int value) {
+ PrepareBuilder();
+ result.hasDummy19 = true;
+ result.dummy19_ = value;
+ return this;
+ }
+ public Builder ClearDummy19() {
+ PrepareBuilder();
+ result.hasDummy19 = false;
+ result.dummy19_ = 0;
+ return this;
+ }
+
+ public bool HasDummy20 {
+ get { return result.hasDummy20; }
+ }
+ public int Dummy20 {
+ get { return result.Dummy20; }
+ set { SetDummy20(value); }
+ }
+ public Builder SetDummy20(int value) {
+ PrepareBuilder();
+ result.hasDummy20 = true;
+ result.dummy20_ = value;
+ return this;
+ }
+ public Builder ClearDummy20() {
+ PrepareBuilder();
+ result.hasDummy20 = false;
+ result.dummy20_ = 0;
+ return this;
+ }
+
+ public bool HasDummy21 {
+ get { return result.hasDummy21; }
+ }
+ public int Dummy21 {
+ get { return result.Dummy21; }
+ set { SetDummy21(value); }
+ }
+ public Builder SetDummy21(int value) {
+ PrepareBuilder();
+ result.hasDummy21 = true;
+ result.dummy21_ = value;
+ return this;
+ }
+ public Builder ClearDummy21() {
+ PrepareBuilder();
+ result.hasDummy21 = false;
+ result.dummy21_ = 0;
+ return this;
+ }
+
+ public bool HasDummy22 {
+ get { return result.hasDummy22; }
+ }
+ public int Dummy22 {
+ get { return result.Dummy22; }
+ set { SetDummy22(value); }
+ }
+ public Builder SetDummy22(int value) {
+ PrepareBuilder();
+ result.hasDummy22 = true;
+ result.dummy22_ = value;
+ return this;
+ }
+ public Builder ClearDummy22() {
+ PrepareBuilder();
+ result.hasDummy22 = false;
+ result.dummy22_ = 0;
+ return this;
+ }
+
+ public bool HasDummy23 {
+ get { return result.hasDummy23; }
+ }
+ public int Dummy23 {
+ get { return result.Dummy23; }
+ set { SetDummy23(value); }
+ }
+ public Builder SetDummy23(int value) {
+ PrepareBuilder();
+ result.hasDummy23 = true;
+ result.dummy23_ = value;
+ return this;
+ }
+ public Builder ClearDummy23() {
+ PrepareBuilder();
+ result.hasDummy23 = false;
+ result.dummy23_ = 0;
+ return this;
+ }
+
+ public bool HasDummy24 {
+ get { return result.hasDummy24; }
+ }
+ public int Dummy24 {
+ get { return result.Dummy24; }
+ set { SetDummy24(value); }
+ }
+ public Builder SetDummy24(int value) {
+ PrepareBuilder();
+ result.hasDummy24 = true;
+ result.dummy24_ = value;
+ return this;
+ }
+ public Builder ClearDummy24() {
+ PrepareBuilder();
+ result.hasDummy24 = false;
+ result.dummy24_ = 0;
+ return this;
+ }
+
+ public bool HasDummy25 {
+ get { return result.hasDummy25; }
+ }
+ public int Dummy25 {
+ get { return result.Dummy25; }
+ set { SetDummy25(value); }
+ }
+ public Builder SetDummy25(int value) {
+ PrepareBuilder();
+ result.hasDummy25 = true;
+ result.dummy25_ = value;
+ return this;
+ }
+ public Builder ClearDummy25() {
+ PrepareBuilder();
+ result.hasDummy25 = false;
+ result.dummy25_ = 0;
+ return this;
+ }
+
+ public bool HasDummy26 {
+ get { return result.hasDummy26; }
+ }
+ public int Dummy26 {
+ get { return result.Dummy26; }
+ set { SetDummy26(value); }
+ }
+ public Builder SetDummy26(int value) {
+ PrepareBuilder();
+ result.hasDummy26 = true;
+ result.dummy26_ = value;
+ return this;
+ }
+ public Builder ClearDummy26() {
+ PrepareBuilder();
+ result.hasDummy26 = false;
+ result.dummy26_ = 0;
+ return this;
+ }
+
+ public bool HasDummy27 {
+ get { return result.hasDummy27; }
+ }
+ public int Dummy27 {
+ get { return result.Dummy27; }
+ set { SetDummy27(value); }
+ }
+ public Builder SetDummy27(int value) {
+ PrepareBuilder();
+ result.hasDummy27 = true;
+ result.dummy27_ = value;
+ return this;
+ }
+ public Builder ClearDummy27() {
+ PrepareBuilder();
+ result.hasDummy27 = false;
+ result.dummy27_ = 0;
+ return this;
+ }
+
+ public bool HasDummy28 {
+ get { return result.hasDummy28; }
+ }
+ public int Dummy28 {
+ get { return result.Dummy28; }
+ set { SetDummy28(value); }
+ }
+ public Builder SetDummy28(int value) {
+ PrepareBuilder();
+ result.hasDummy28 = true;
+ result.dummy28_ = value;
+ return this;
+ }
+ public Builder ClearDummy28() {
+ PrepareBuilder();
+ result.hasDummy28 = false;
+ result.dummy28_ = 0;
+ return this;
+ }
+
+ public bool HasDummy29 {
+ get { return result.hasDummy29; }
+ }
+ public int Dummy29 {
+ get { return result.Dummy29; }
+ set { SetDummy29(value); }
+ }
+ public Builder SetDummy29(int value) {
+ PrepareBuilder();
+ result.hasDummy29 = true;
+ result.dummy29_ = value;
+ return this;
+ }
+ public Builder ClearDummy29() {
+ PrepareBuilder();
+ result.hasDummy29 = false;
+ result.dummy29_ = 0;
+ return this;
+ }
+
+ public bool HasDummy30 {
+ get { return result.hasDummy30; }
+ }
+ public int Dummy30 {
+ get { return result.Dummy30; }
+ set { SetDummy30(value); }
+ }
+ public Builder SetDummy30(int value) {
+ PrepareBuilder();
+ result.hasDummy30 = true;
+ result.dummy30_ = value;
+ return this;
+ }
+ public Builder ClearDummy30() {
+ PrepareBuilder();
+ result.hasDummy30 = false;
+ result.dummy30_ = 0;
+ return this;
+ }
+
+ public bool HasDummy31 {
+ get { return result.hasDummy31; }
+ }
+ public int Dummy31 {
+ get { return result.Dummy31; }
+ set { SetDummy31(value); }
+ }
+ public Builder SetDummy31(int value) {
+ PrepareBuilder();
+ result.hasDummy31 = true;
+ result.dummy31_ = value;
+ return this;
+ }
+ public Builder ClearDummy31() {
+ PrepareBuilder();
+ result.hasDummy31 = false;
+ result.dummy31_ = 0;
+ return this;
+ }
+
+ public bool HasDummy32 {
+ get { return result.hasDummy32; }
+ }
+ public int Dummy32 {
+ get { return result.Dummy32; }
+ set { SetDummy32(value); }
+ }
+ public Builder SetDummy32(int value) {
+ PrepareBuilder();
+ result.hasDummy32 = true;
+ result.dummy32_ = value;
+ return this;
+ }
+ public Builder ClearDummy32() {
+ PrepareBuilder();
+ result.hasDummy32 = false;
+ result.dummy32_ = 0;
+ return this;
+ }
+
+ public bool HasC {
+ get { return result.hasC; }
+ }
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ PrepareBuilder();
+ result.hasC = true;
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ PrepareBuilder();
+ result.hasC = false;
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static TestRequired() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequiredForeign : pb::GeneratedMessage<TestRequiredForeign, TestRequiredForeign.Builder> {
+ private TestRequiredForeign() { }
+ private static readonly TestRequiredForeign defaultInstance = new TestRequiredForeign().MakeReadOnly();
+ private static readonly string[] _testRequiredForeignFieldNames = new string[] { "dummy", "optional_message", "repeated_message" };
+ private static readonly uint[] _testRequiredForeignFieldTags = new uint[] { 24, 10, 18 };
+ public static TestRequiredForeign DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequiredForeign DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequiredForeign ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredForeign__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequiredForeign, TestRequiredForeign.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable; }
+ }
+
+ public const int OptionalMessageFieldNumber = 1;
+ private bool hasOptionalMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestRequired optionalMessage_;
+ public bool HasOptionalMessage {
+ get { return hasOptionalMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {
+ get { return optionalMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance; }
+ }
+
+ public const int RepeatedMessageFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired> repeatedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestRequired> RepeatedMessageList {
+ get { return repeatedMessage_; }
+ }
+ public int RepeatedMessageCount {
+ get { return repeatedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired GetRepeatedMessage(int index) {
+ return repeatedMessage_[index];
+ }
+
+ public const int DummyFieldNumber = 3;
+ private bool hasDummy;
+ private int dummy_;
+ public bool HasDummy {
+ get { return hasDummy; }
+ }
+ public int Dummy {
+ get { return dummy_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasOptionalMessage) {
+ if (!OptionalMessage.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRequiredForeignFieldNames;
+ if (hasOptionalMessage) {
+ output.WriteMessage(1, field_names[1], OptionalMessage);
+ }
+ if (repeatedMessage_.Count > 0) {
+ output.WriteMessageArray(2, field_names[2], repeatedMessage_);
+ }
+ if (hasDummy) {
+ output.WriteInt32(3, field_names[0], Dummy);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalMessage);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ if (hasDummy) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Dummy);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRequiredForeign ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequiredForeign ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequiredForeign MakeReadOnly() {
+ repeatedMessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequiredForeign prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredForeign, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequiredForeign cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequiredForeign result;
+
+ private TestRequiredForeign PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequiredForeign original = result;
+ result = new TestRequiredForeign();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequiredForeign MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Descriptor; }
+ }
+
+ public override TestRequiredForeign DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.DefaultInstance; }
+ }
+
+ public override TestRequiredForeign BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequiredForeign) {
+ return MergeFrom((TestRequiredForeign) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequiredForeign other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalMessage) {
+ MergeOptionalMessage(other.OptionalMessage);
+ }
+ if (other.repeatedMessage_.Count != 0) {
+ result.repeatedMessage_.Add(other.repeatedMessage_);
+ }
+ if (other.HasDummy) {
+ Dummy = other.Dummy;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRequiredForeignFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRequiredForeignFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder();
+ if (result.hasOptionalMessage) {
+ subBuilder.MergeFrom(OptionalMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.repeatedMessage_, global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 24: {
+ result.hasDummy = input.ReadInt32(ref result.dummy_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalMessage {
+ get { return result.hasOptionalMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {
+ get { return result.OptionalMessage; }
+ set { SetOptionalMessage(value); }
+ }
+ public Builder SetOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalMessage = true;
+ result.optionalMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalMessage = true;
+ result.optionalMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalMessage &&
+ result.optionalMessage_ != global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) {
+ result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder(result.optionalMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalMessage_ = value;
+ }
+ result.hasOptionalMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalMessage() {
+ PrepareBuilder();
+ result.hasOptionalMessage = false;
+ result.optionalMessage_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired> RepeatedMessageList {
+ get { return PrepareBuilder().repeatedMessage_; }
+ }
+ public int RepeatedMessageCount {
+ get { return result.RepeatedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired GetRepeatedMessage(int index) {
+ return result.GetRepeatedMessage(index);
+ }
+ public Builder SetRepeatedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestRequired> values) {
+ PrepareBuilder();
+ result.repeatedMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedMessage() {
+ PrepareBuilder();
+ result.repeatedMessage_.Clear();
+ return this;
+ }
+
+ public bool HasDummy {
+ get { return result.hasDummy; }
+ }
+ public int Dummy {
+ get { return result.Dummy; }
+ set { SetDummy(value); }
+ }
+ public Builder SetDummy(int value) {
+ PrepareBuilder();
+ result.hasDummy = true;
+ result.dummy_ = value;
+ return this;
+ }
+ public Builder ClearDummy() {
+ PrepareBuilder();
+ result.hasDummy = false;
+ result.dummy_ = 0;
+ return this;
+ }
+ }
+ static TestRequiredForeign() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestForeignNested : pb::GeneratedMessage<TestForeignNested, TestForeignNested.Builder> {
+ private TestForeignNested() { }
+ private static readonly TestForeignNested defaultInstance = new TestForeignNested().MakeReadOnly();
+ private static readonly string[] _testForeignNestedFieldNames = new string[] { "foreign_nested" };
+ private static readonly uint[] _testForeignNestedFieldTags = new uint[] { 10 };
+ public static TestForeignNested DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestForeignNested DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestForeignNested ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestForeignNested__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestForeignNested, TestForeignNested.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable; }
+ }
+
+ public const int ForeignNestedFieldNumber = 1;
+ private bool hasForeignNested;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_;
+ public bool HasForeignNested {
+ get { return hasForeignNested; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
+ get { return foreignNested_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testForeignNestedFieldNames;
+ if (hasForeignNested) {
+ output.WriteMessage(1, field_names[0], ForeignNested);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasForeignNested) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, ForeignNested);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestForeignNested ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestForeignNested ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestForeignNested MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestForeignNested prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestForeignNested, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestForeignNested cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestForeignNested result;
+
+ private TestForeignNested PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestForeignNested original = result;
+ result = new TestForeignNested();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestForeignNested MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Descriptor; }
+ }
+
+ public override TestForeignNested DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestForeignNested.DefaultInstance; }
+ }
+
+ public override TestForeignNested BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestForeignNested) {
+ return MergeFrom((TestForeignNested) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestForeignNested other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestForeignNested.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasForeignNested) {
+ MergeForeignNested(other.ForeignNested);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testForeignNestedFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testForeignNestedFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasForeignNested) {
+ subBuilder.MergeFrom(ForeignNested);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ ForeignNested = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasForeignNested {
+ get { return result.hasForeignNested; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
+ get { return result.ForeignNested; }
+ set { SetForeignNested(value); }
+ }
+ public Builder SetForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasForeignNested = true;
+ result.foreignNested_ = value;
+ return this;
+ }
+ public Builder SetForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasForeignNested = true;
+ result.foreignNested_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasForeignNested &&
+ result.foreignNested_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.foreignNested_).MergeFrom(value).BuildPartial();
+ } else {
+ result.foreignNested_ = value;
+ }
+ result.hasForeignNested = true;
+ return this;
+ }
+ public Builder ClearForeignNested() {
+ PrepareBuilder();
+ result.hasForeignNested = false;
+ result.foreignNested_ = null;
+ return this;
+ }
+ }
+ static TestForeignNested() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEmptyMessage : pb::GeneratedMessage<TestEmptyMessage, TestEmptyMessage.Builder> {
+ private TestEmptyMessage() { }
+ private static readonly TestEmptyMessage defaultInstance = new TestEmptyMessage().MakeReadOnly();
+ private static readonly string[] _testEmptyMessageFieldNames = new string[] { };
+ private static readonly uint[] _testEmptyMessageFieldTags = new uint[] { };
+ public static TestEmptyMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEmptyMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEmptyMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEmptyMessage, TestEmptyMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEmptyMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestEmptyMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEmptyMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEmptyMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEmptyMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestEmptyMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEmptyMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEmptyMessage result;
+
+ private TestEmptyMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEmptyMessage original = result;
+ result = new TestEmptyMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEmptyMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Descriptor; }
+ }
+
+ public override TestEmptyMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.DefaultInstance; }
+ }
+
+ public override TestEmptyMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEmptyMessage) {
+ return MergeFrom((TestEmptyMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEmptyMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEmptyMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEmptyMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestEmptyMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEmptyMessageWithExtensions : pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> {
+ private TestEmptyMessageWithExtensions() { }
+ private static readonly TestEmptyMessageWithExtensions defaultInstance = new TestEmptyMessageWithExtensions().MakeReadOnly();
+ private static readonly string[] _testEmptyMessageWithExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testEmptyMessageWithExtensionsFieldTags = new uint[] { };
+ public static TestEmptyMessageWithExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEmptyMessageWithExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEmptyMessageWithExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEmptyMessageWithExtensionsFieldNames;
+ pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEmptyMessageWithExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEmptyMessageWithExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestEmptyMessageWithExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEmptyMessageWithExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEmptyMessageWithExtensions result;
+
+ private TestEmptyMessageWithExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEmptyMessageWithExtensions original = result;
+ result = new TestEmptyMessageWithExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEmptyMessageWithExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Descriptor; }
+ }
+
+ public override TestEmptyMessageWithExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.DefaultInstance; }
+ }
+
+ public override TestEmptyMessageWithExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEmptyMessageWithExtensions) {
+ return MergeFrom((TestEmptyMessageWithExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEmptyMessageWithExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEmptyMessageWithExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEmptyMessageWithExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestEmptyMessageWithExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMultipleExtensionRanges : pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> {
+ private TestMultipleExtensionRanges() { }
+ private static readonly TestMultipleExtensionRanges defaultInstance = new TestMultipleExtensionRanges().MakeReadOnly();
+ private static readonly string[] _testMultipleExtensionRangesFieldNames = new string[] { };
+ private static readonly uint[] _testMultipleExtensionRangesFieldTags = new uint[] { };
+ public static TestMultipleExtensionRanges DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMultipleExtensionRanges DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMultipleExtensionRanges ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMultipleExtensionRangesFieldNames;
+ pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(43, output);
+ extensionWriter.WriteUntil(4244, output);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMultipleExtensionRanges MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMultipleExtensionRanges prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestMultipleExtensionRanges, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMultipleExtensionRanges cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMultipleExtensionRanges result;
+
+ private TestMultipleExtensionRanges PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMultipleExtensionRanges original = result;
+ result = new TestMultipleExtensionRanges();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMultipleExtensionRanges MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Descriptor; }
+ }
+
+ public override TestMultipleExtensionRanges DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.DefaultInstance; }
+ }
+
+ public override TestMultipleExtensionRanges BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMultipleExtensionRanges) {
+ return MergeFrom((TestMultipleExtensionRanges) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMultipleExtensionRanges other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMultipleExtensionRangesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMultipleExtensionRangesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestMultipleExtensionRanges() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestReallyLargeTagNumber : pb::GeneratedMessage<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> {
+ private TestReallyLargeTagNumber() { }
+ private static readonly TestReallyLargeTagNumber defaultInstance = new TestReallyLargeTagNumber().MakeReadOnly();
+ private static readonly string[] _testReallyLargeTagNumberFieldNames = new string[] { "a", "bb" };
+ private static readonly uint[] _testReallyLargeTagNumberFieldTags = new uint[] { 8, 2147483640 };
+ public static TestReallyLargeTagNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestReallyLargeTagNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestReallyLargeTagNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BbFieldNumber = 268435455;
+ private bool hasBb;
+ private int bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testReallyLargeTagNumberFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ if (hasBb) {
+ output.WriteInt32(268435455, field_names[1], Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(268435455, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestReallyLargeTagNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestReallyLargeTagNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestReallyLargeTagNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestReallyLargeTagNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestReallyLargeTagNumber result;
+
+ private TestReallyLargeTagNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestReallyLargeTagNumber original = result;
+ result = new TestReallyLargeTagNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestReallyLargeTagNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Descriptor; }
+ }
+
+ public override TestReallyLargeTagNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.DefaultInstance; }
+ }
+
+ public override TestReallyLargeTagNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestReallyLargeTagNumber) {
+ return MergeFrom((TestReallyLargeTagNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestReallyLargeTagNumber other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testReallyLargeTagNumberFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testReallyLargeTagNumberFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 2147483640: {
+ result.hasBb = input.ReadInt32(ref result.bb_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static TestReallyLargeTagNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRecursiveMessage : pb::GeneratedMessage<TestRecursiveMessage, TestRecursiveMessage.Builder> {
+ private TestRecursiveMessage() { }
+ private static readonly TestRecursiveMessage defaultInstance = new TestRecursiveMessage().MakeReadOnly();
+ private static readonly string[] _testRecursiveMessageFieldNames = new string[] { "a", "i" };
+ private static readonly uint[] _testRecursiveMessageFieldTags = new uint[] { 10, 16 };
+ public static TestRecursiveMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRecursiveMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRecursiveMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRecursiveMessage, TestRecursiveMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {
+ get { return a_ ?? global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance; }
+ }
+
+ public const int IFieldNumber = 2;
+ private bool hasI;
+ private int i_;
+ public bool HasI {
+ get { return hasI; }
+ }
+ public int I {
+ get { return i_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRecursiveMessageFieldNames;
+ if (hasA) {
+ output.WriteMessage(1, field_names[0], A);
+ }
+ if (hasI) {
+ output.WriteInt32(2, field_names[1], I);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, A);
+ }
+ if (hasI) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, I);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRecursiveMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRecursiveMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRecursiveMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRecursiveMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRecursiveMessage result;
+
+ private TestRecursiveMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRecursiveMessage original = result;
+ result = new TestRecursiveMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRecursiveMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Descriptor; }
+ }
+
+ public override TestRecursiveMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance; }
+ }
+
+ public override TestRecursiveMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRecursiveMessage) {
+ return MergeFrom((TestRecursiveMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRecursiveMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ MergeA(other.A);
+ }
+ if (other.HasI) {
+ I = other.I;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRecursiveMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRecursiveMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder();
+ if (result.hasA) {
+ subBuilder.MergeFrom(A);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ A = subBuilder.BuildPartial();
+ break;
+ }
+ case 16: {
+ result.hasI = input.ReadInt32(ref result.i_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasA &&
+ result.a_ != global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance) {
+ result.a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();
+ } else {
+ result.a_ = value;
+ }
+ result.hasA = true;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = null;
+ return this;
+ }
+
+ public bool HasI {
+ get { return result.hasI; }
+ }
+ public int I {
+ get { return result.I; }
+ set { SetI(value); }
+ }
+ public Builder SetI(int value) {
+ PrepareBuilder();
+ result.hasI = true;
+ result.i_ = value;
+ return this;
+ }
+ public Builder ClearI() {
+ PrepareBuilder();
+ result.hasI = false;
+ result.i_ = 0;
+ return this;
+ }
+ }
+ static TestRecursiveMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMutualRecursionA : pb::GeneratedMessage<TestMutualRecursionA, TestMutualRecursionA.Builder> {
+ private TestMutualRecursionA() { }
+ private static readonly TestMutualRecursionA defaultInstance = new TestMutualRecursionA().MakeReadOnly();
+ private static readonly string[] _testMutualRecursionAFieldNames = new string[] { "bb" };
+ private static readonly uint[] _testMutualRecursionAFieldTags = new uint[] { 10 };
+ public static TestMutualRecursionA DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMutualRecursionA DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMutualRecursionA ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMutualRecursionA, TestMutualRecursionA.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {
+ get { return bb_ ?? global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMutualRecursionAFieldNames;
+ if (hasBb) {
+ output.WriteMessage(1, field_names[0], Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMutualRecursionA MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMutualRecursionA prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionA, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMutualRecursionA cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMutualRecursionA result;
+
+ private TestMutualRecursionA PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMutualRecursionA original = result;
+ result = new TestMutualRecursionA();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMutualRecursionA MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Descriptor; }
+ }
+
+ public override TestMutualRecursionA DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance; }
+ }
+
+ public override TestMutualRecursionA BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMutualRecursionA) {
+ return MergeFrom((TestMutualRecursionA) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMutualRecursionA other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasBb) {
+ MergeBb(other.Bb);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMutualRecursionAFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMutualRecursionAFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder();
+ if (result.hasBb) {
+ subBuilder.MergeFrom(Bb);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Bb = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder SetBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasBb &&
+ result.bb_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance) {
+ result.bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder(result.bb_).MergeFrom(value).BuildPartial();
+ } else {
+ result.bb_ = value;
+ }
+ result.hasBb = true;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = null;
+ return this;
+ }
+ }
+ static TestMutualRecursionA() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMutualRecursionB : pb::GeneratedMessage<TestMutualRecursionB, TestMutualRecursionB.Builder> {
+ private TestMutualRecursionB() { }
+ private static readonly TestMutualRecursionB defaultInstance = new TestMutualRecursionB().MakeReadOnly();
+ private static readonly string[] _testMutualRecursionBFieldNames = new string[] { "a", "optional_int32" };
+ private static readonly uint[] _testMutualRecursionBFieldTags = new uint[] { 10, 16 };
+ public static TestMutualRecursionB DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMutualRecursionB DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMutualRecursionB ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMutualRecursionB, TestMutualRecursionB.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {
+ get { return a_ ?? global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance; }
+ }
+
+ public const int OptionalInt32FieldNumber = 2;
+ private bool hasOptionalInt32;
+ private int optionalInt32_;
+ public bool HasOptionalInt32 {
+ get { return hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMutualRecursionBFieldNames;
+ if (hasA) {
+ output.WriteMessage(1, field_names[0], A);
+ }
+ if (hasOptionalInt32) {
+ output.WriteInt32(2, field_names[1], OptionalInt32);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, A);
+ }
+ if (hasOptionalInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, OptionalInt32);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMutualRecursionB MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMutualRecursionB prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionB, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMutualRecursionB cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMutualRecursionB result;
+
+ private TestMutualRecursionB PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMutualRecursionB original = result;
+ result = new TestMutualRecursionB();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMutualRecursionB MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Descriptor; }
+ }
+
+ public override TestMutualRecursionB DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance; }
+ }
+
+ public override TestMutualRecursionB BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMutualRecursionB) {
+ return MergeFrom((TestMutualRecursionB) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMutualRecursionB other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ MergeA(other.A);
+ }
+ if (other.HasOptionalInt32) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMutualRecursionBFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMutualRecursionBFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder();
+ if (result.hasA) {
+ subBuilder.MergeFrom(A);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ A = subBuilder.BuildPartial();
+ break;
+ }
+ case 16: {
+ result.hasOptionalInt32 = input.ReadInt32(ref result.optionalInt32_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasA &&
+ result.a_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance) {
+ result.a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();
+ } else {
+ result.a_ = value;
+ }
+ result.hasA = true;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = null;
+ return this;
+ }
+
+ public bool HasOptionalInt32 {
+ get { return result.hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ PrepareBuilder();
+ result.hasOptionalInt32 = true;
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ PrepareBuilder();
+ result.hasOptionalInt32 = false;
+ result.optionalInt32_ = 0;
+ return this;
+ }
+ }
+ static TestMutualRecursionB() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestDupFieldNumber : pb::GeneratedMessage<TestDupFieldNumber, TestDupFieldNumber.Builder> {
+ private TestDupFieldNumber() { }
+ private static readonly TestDupFieldNumber defaultInstance = new TestDupFieldNumber().MakeReadOnly();
+ private static readonly string[] _testDupFieldNumberFieldNames = new string[] { "a", "bar", "foo" };
+ private static readonly uint[] _testDupFieldNumberFieldTags = new uint[] { 8, 27, 19 };
+ public static TestDupFieldNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDupFieldNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestDupFieldNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDupFieldNumber, TestDupFieldNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Foo : pb::GeneratedMessage<Foo, Foo.Builder> {
+ private Foo() { }
+ private static readonly Foo defaultInstance = new Foo().MakeReadOnly();
+ private static readonly string[] _fooFieldNames = new string[] { "a" };
+ private static readonly uint[] _fooFieldTags = new uint[] { 8 };
+ public static Foo DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Foo DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Foo ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Foo, Foo.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Foo ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Foo ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Foo ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Foo ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Foo MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Foo prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Foo, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Foo cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Foo result;
+
+ private Foo PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Foo original = result;
+ result = new Foo();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Foo MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Descriptor; }
+ }
+
+ public override Foo DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance; }
+ }
+
+ public override Foo BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Foo) {
+ return MergeFrom((Foo) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Foo other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static Foo() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Bar : pb::GeneratedMessage<Bar, Bar.Builder> {
+ private Bar() { }
+ private static readonly Bar defaultInstance = new Bar().MakeReadOnly();
+ private static readonly string[] _barFieldNames = new string[] { "a" };
+ private static readonly uint[] _barFieldTags = new uint[] { 8 };
+ public static Bar DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Bar DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Bar ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Bar, Bar.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _barFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Bar ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Bar ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Bar ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Bar ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Bar MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Bar prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Bar, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Bar cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Bar result;
+
+ private Bar PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Bar original = result;
+ result = new Bar();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Bar MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Descriptor; }
+ }
+
+ public override Bar DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance; }
+ }
+
+ public override Bar BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Bar) {
+ return MergeFrom((Bar) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Bar other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_barFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _barFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static Bar() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int FooFieldNumber = 2;
+ private bool hasFoo;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo foo_;
+ public bool HasFoo {
+ get { return hasFoo; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {
+ get { return foo_ ?? global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance; }
+ }
+
+ public const int BarFieldNumber = 3;
+ private bool hasBar;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar bar_;
+ public bool HasBar {
+ get { return hasBar; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {
+ get { return bar_ ?? global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testDupFieldNumberFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ if (hasFoo) {
+ output.WriteGroup(2, field_names[2], Foo);
+ }
+ if (hasBar) {
+ output.WriteGroup(3, field_names[1], Bar);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (hasFoo) {
+ size += pb::CodedOutputStream.ComputeGroupSize(2, Foo);
+ }
+ if (hasBar) {
+ size += pb::CodedOutputStream.ComputeGroupSize(3, Bar);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestDupFieldNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDupFieldNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDupFieldNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestDupFieldNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestDupFieldNumber result;
+
+ private TestDupFieldNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestDupFieldNumber original = result;
+ result = new TestDupFieldNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestDupFieldNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Descriptor; }
+ }
+
+ public override TestDupFieldNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.DefaultInstance; }
+ }
+
+ public override TestDupFieldNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDupFieldNumber) {
+ return MergeFrom((TestDupFieldNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDupFieldNumber other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasFoo) {
+ MergeFoo(other.Foo);
+ }
+ if (other.HasBar) {
+ MergeBar(other.Bar);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testDupFieldNumberFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testDupFieldNumberFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 19: {
+ global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder();
+ if (result.hasFoo) {
+ subBuilder.MergeFrom(Foo);
+ }
+ input.ReadGroup(2, subBuilder, extensionRegistry);
+ Foo = subBuilder.BuildPartial();
+ break;
+ }
+ case 27: {
+ global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder();
+ if (result.hasBar) {
+ subBuilder.MergeFrom(Bar);
+ }
+ input.ReadGroup(3, subBuilder, extensionRegistry);
+ Bar = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasFoo {
+ get { return result.hasFoo; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {
+ get { return result.Foo; }
+ set { SetFoo(value); }
+ }
+ public Builder SetFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFoo = true;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFoo = true;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFoo &&
+ result.foo_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder(result.foo_).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.hasFoo = true;
+ return this;
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.hasFoo = false;
+ result.foo_ = null;
+ return this;
+ }
+
+ public bool HasBar {
+ get { return result.hasBar; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {
+ get { return result.Bar; }
+ set { SetBar(value); }
+ }
+ public Builder SetBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBar = true;
+ result.bar_ = value;
+ return this;
+ }
+ public Builder SetBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasBar = true;
+ result.bar_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasBar &&
+ result.bar_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance) {
+ result.bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder(result.bar_).MergeFrom(value).BuildPartial();
+ } else {
+ result.bar_ = value;
+ }
+ result.hasBar = true;
+ return this;
+ }
+ public Builder ClearBar() {
+ PrepareBuilder();
+ result.hasBar = false;
+ result.bar_ = null;
+ return this;
+ }
+ }
+ static TestDupFieldNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEagerMessage : pb::GeneratedMessage<TestEagerMessage, TestEagerMessage.Builder> {
+ private TestEagerMessage() { }
+ private static readonly TestEagerMessage defaultInstance = new TestEagerMessage().MakeReadOnly();
+ private static readonly string[] _testEagerMessageFieldNames = new string[] { "sub_message" };
+ private static readonly uint[] _testEagerMessageFieldTags = new uint[] { 10 };
+ public static TestEagerMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEagerMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEagerMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEagerMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEagerMessage, TestEagerMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEagerMessage__FieldAccessorTable; }
+ }
+
+ public const int SubMessageFieldNumber = 1;
+ private bool hasSubMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes subMessage_;
+ public bool HasSubMessage {
+ get { return hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return subMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEagerMessageFieldNames;
+ if (hasSubMessage) {
+ output.WriteMessage(1, field_names[0], SubMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSubMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, SubMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestEagerMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEagerMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEagerMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEagerMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEagerMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestEagerMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEagerMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEagerMessage result;
+
+ private TestEagerMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEagerMessage original = result;
+ result = new TestEagerMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEagerMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.Descriptor; }
+ }
+
+ public override TestEagerMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.DefaultInstance; }
+ }
+
+ public override TestEagerMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEagerMessage) {
+ return MergeFrom((TestEagerMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEagerMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasSubMessage) {
+ MergeSubMessage(other.SubMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEagerMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEagerMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasSubMessage) {
+ subBuilder.MergeFrom(SubMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ SubMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasSubMessage {
+ get { return result.hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return result.SubMessage; }
+ set { SetSubMessage(value); }
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = value;
+ return this;
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasSubMessage &&
+ result.subMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.subMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.subMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.subMessage_ = value;
+ }
+ result.hasSubMessage = true;
+ return this;
+ }
+ public Builder ClearSubMessage() {
+ PrepareBuilder();
+ result.hasSubMessage = false;
+ result.subMessage_ = null;
+ return this;
+ }
+ }
+ static TestEagerMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestLazyMessage : pb::GeneratedMessage<TestLazyMessage, TestLazyMessage.Builder> {
+ private TestLazyMessage() { }
+ private static readonly TestLazyMessage defaultInstance = new TestLazyMessage().MakeReadOnly();
+ private static readonly string[] _testLazyMessageFieldNames = new string[] { "sub_message" };
+ private static readonly uint[] _testLazyMessageFieldTags = new uint[] { 10 };
+ public static TestLazyMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestLazyMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestLazyMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestLazyMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestLazyMessage, TestLazyMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestLazyMessage__FieldAccessorTable; }
+ }
+
+ public const int SubMessageFieldNumber = 1;
+ private bool hasSubMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes subMessage_;
+ public bool HasSubMessage {
+ get { return hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return subMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testLazyMessageFieldNames;
+ if (hasSubMessage) {
+ output.WriteMessage(1, field_names[0], SubMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSubMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, SubMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestLazyMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestLazyMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestLazyMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestLazyMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestLazyMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestLazyMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestLazyMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestLazyMessage result;
+
+ private TestLazyMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestLazyMessage original = result;
+ result = new TestLazyMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestLazyMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.Descriptor; }
+ }
+
+ public override TestLazyMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.DefaultInstance; }
+ }
+
+ public override TestLazyMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestLazyMessage) {
+ return MergeFrom((TestLazyMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestLazyMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasSubMessage) {
+ MergeSubMessage(other.SubMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testLazyMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testLazyMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasSubMessage) {
+ subBuilder.MergeFrom(SubMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ SubMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasSubMessage {
+ get { return result.hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return result.SubMessage; }
+ set { SetSubMessage(value); }
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = value;
+ return this;
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasSubMessage &&
+ result.subMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.subMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.subMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.subMessage_ = value;
+ }
+ result.hasSubMessage = true;
+ return this;
+ }
+ public Builder ClearSubMessage() {
+ PrepareBuilder();
+ result.hasSubMessage = false;
+ result.subMessage_ = null;
+ return this;
+ }
+ }
+ static TestLazyMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestNestedMessageHasBits : pb::GeneratedMessage<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> {
+ private TestNestedMessageHasBits() { }
+ private static readonly TestNestedMessageHasBits defaultInstance = new TestNestedMessageHasBits().MakeReadOnly();
+ private static readonly string[] _testNestedMessageHasBitsFieldNames = new string[] { "optional_nested_message" };
+ private static readonly uint[] _testNestedMessageHasBitsFieldTags = new uint[] { 10 };
+ public static TestNestedMessageHasBits DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedMessageHasBits DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestNestedMessageHasBits ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "nestedmessage_repeated_foreignmessage", "nestedmessage_repeated_int32" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 18, 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int NestedmessageRepeatedInt32FieldNumber = 1;
+ private pbc::PopsicleList<int> nestedmessageRepeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> NestedmessageRepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(nestedmessageRepeatedInt32_); }
+ }
+ public int NestedmessageRepeatedInt32Count {
+ get { return nestedmessageRepeatedInt32_.Count; }
+ }
+ public int GetNestedmessageRepeatedInt32(int index) {
+ return nestedmessageRepeatedInt32_[index];
+ }
+
+ public const int NestedmessageRepeatedForeignmessageFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> nestedmessageRepeatedForeignmessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> NestedmessageRepeatedForeignmessageList {
+ get { return nestedmessageRepeatedForeignmessage_; }
+ }
+ public int NestedmessageRepeatedForeignmessageCount {
+ get { return nestedmessageRepeatedForeignmessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetNestedmessageRepeatedForeignmessage(int index) {
+ return nestedmessageRepeatedForeignmessage_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (nestedmessageRepeatedInt32_.Count > 0) {
+ output.WriteInt32Array(1, field_names[1], nestedmessageRepeatedInt32_);
+ }
+ if (nestedmessageRepeatedForeignmessage_.Count > 0) {
+ output.WriteMessageArray(2, field_names[0], nestedmessageRepeatedForeignmessage_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in NestedmessageRepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * nestedmessageRepeatedInt32_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in NestedmessageRepeatedForeignmessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ nestedmessageRepeatedInt32_.MakeReadOnly();
+ nestedmessageRepeatedForeignmessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.nestedmessageRepeatedInt32_.Count != 0) {
+ result.nestedmessageRepeatedInt32_.Add(other.nestedmessageRepeatedInt32_);
+ }
+ if (other.nestedmessageRepeatedForeignmessage_.Count != 0) {
+ result.nestedmessageRepeatedForeignmessage_.Add(other.nestedmessageRepeatedForeignmessage_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10:
+ case 8: {
+ input.ReadInt32Array(tag, field_name, result.nestedmessageRepeatedInt32_);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.nestedmessageRepeatedForeignmessage_, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> NestedmessageRepeatedInt32List {
+ get { return PrepareBuilder().nestedmessageRepeatedInt32_; }
+ }
+ public int NestedmessageRepeatedInt32Count {
+ get { return result.NestedmessageRepeatedInt32Count; }
+ }
+ public int GetNestedmessageRepeatedInt32(int index) {
+ return result.GetNestedmessageRepeatedInt32(index);
+ }
+ public Builder SetNestedmessageRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeNestedmessageRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearNestedmessageRepeatedInt32() {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> NestedmessageRepeatedForeignmessageList {
+ get { return PrepareBuilder().nestedmessageRepeatedForeignmessage_; }
+ }
+ public int NestedmessageRepeatedForeignmessageCount {
+ get { return result.NestedmessageRepeatedForeignmessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetNestedmessageRepeatedForeignmessage(int index) {
+ return result.GetNestedmessageRepeatedForeignmessage(index);
+ }
+ public Builder SetNestedmessageRepeatedForeignmessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_[index] = value;
+ return this;
+ }
+ public Builder SetNestedmessageRepeatedForeignmessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedForeignmessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Add(value);
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedForeignmessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeNestedmessageRepeatedForeignmessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Add(values);
+ return this;
+ }
+ public Builder ClearNestedmessageRepeatedForeignmessage() {
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Clear();
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int OptionalNestedMessageFieldNumber = 1;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testNestedMessageHasBitsFieldNames;
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(1, field_names[0], OptionalNestedMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalNestedMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestNestedMessageHasBits MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedMessageHasBits prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestNestedMessageHasBits, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestNestedMessageHasBits cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestNestedMessageHasBits result;
+
+ private TestNestedMessageHasBits PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestNestedMessageHasBits original = result;
+ result = new TestNestedMessageHasBits();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestNestedMessageHasBits MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Descriptor; }
+ }
+
+ public override TestNestedMessageHasBits DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.DefaultInstance; }
+ }
+
+ public override TestNestedMessageHasBits BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestNestedMessageHasBits) {
+ return MergeFrom((TestNestedMessageHasBits) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedMessageHasBits other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testNestedMessageHasBitsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testNestedMessageHasBitsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+ }
+ static TestNestedMessageHasBits() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestCamelCaseFieldNames : pb::GeneratedMessage<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> {
+ private TestCamelCaseFieldNames() { }
+ private static readonly TestCamelCaseFieldNames defaultInstance = new TestCamelCaseFieldNames().MakeReadOnly();
+ private static readonly string[] _testCamelCaseFieldNamesFieldNames = new string[] { "CordField", "EnumField", "MessageField", "PrimitiveField", "RepeatedCordField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedStringPieceField", "StringField", "StringPieceField" };
+ private static readonly uint[] _testCamelCaseFieldNamesFieldTags = new uint[] { 50, 24, 34, 8, 98, 72, 82, 56, 66, 90, 18, 42 };
+ public static TestCamelCaseFieldNames DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestCamelCaseFieldNames DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestCamelCaseFieldNames ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable; }
+ }
+
+ public const int PrimitiveFieldFieldNumber = 1;
+ private bool hasPrimitiveField;
+ private int primitiveField_;
+ public bool HasPrimitiveField {
+ get { return hasPrimitiveField; }
+ }
+ public int PrimitiveField {
+ get { return primitiveField_; }
+ }
+
+ public const int StringFieldFieldNumber = 2;
+ private bool hasStringField;
+ private string stringField_ = "";
+ public bool HasStringField {
+ get { return hasStringField; }
+ }
+ public string StringField {
+ get { return stringField_; }
+ }
+
+ public const int EnumFieldFieldNumber = 3;
+ private bool hasEnumField;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum enumField_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasEnumField {
+ get { return hasEnumField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumField {
+ get { return enumField_; }
+ }
+
+ public const int MessageFieldFieldNumber = 4;
+ private bool hasMessageField;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageField_;
+ public bool HasMessageField {
+ get { return hasMessageField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {
+ get { return messageField_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int StringPieceFieldFieldNumber = 5;
+ private bool hasStringPieceField;
+ private string stringPieceField_ = "";
+ public bool HasStringPieceField {
+ get { return hasStringPieceField; }
+ }
+ public string StringPieceField {
+ get { return stringPieceField_; }
+ }
+
+ public const int CordFieldFieldNumber = 6;
+ private bool hasCordField;
+ private string cordField_ = "";
+ public bool HasCordField {
+ get { return hasCordField; }
+ }
+ public string CordField {
+ get { return cordField_; }
+ }
+
+ public const int RepeatedPrimitiveFieldFieldNumber = 7;
+ private pbc::PopsicleList<int> repeatedPrimitiveField_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedPrimitiveFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedPrimitiveField_); }
+ }
+ public int RepeatedPrimitiveFieldCount {
+ get { return repeatedPrimitiveField_.Count; }
+ }
+ public int GetRepeatedPrimitiveField(int index) {
+ return repeatedPrimitiveField_[index];
+ }
+
+ public const int RepeatedStringFieldFieldNumber = 8;
+ private pbc::PopsicleList<string> repeatedStringField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringField_); }
+ }
+ public int RepeatedStringFieldCount {
+ get { return repeatedStringField_.Count; }
+ }
+ public string GetRepeatedStringField(int index) {
+ return repeatedStringField_[index];
+ }
+
+ public const int RepeatedEnumFieldFieldNumber = 9;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> repeatedEnumField_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedEnumFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedEnumField_); }
+ }
+ public int RepeatedEnumFieldCount {
+ get { return repeatedEnumField_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedEnumField(int index) {
+ return repeatedEnumField_[index];
+ }
+
+ public const int RepeatedMessageFieldFieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> repeatedMessageField_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedMessageFieldList {
+ get { return repeatedMessageField_; }
+ }
+ public int RepeatedMessageFieldCount {
+ get { return repeatedMessageField_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedMessageField(int index) {
+ return repeatedMessageField_[index];
+ }
+
+ public const int RepeatedStringPieceFieldFieldNumber = 11;
+ private pbc::PopsicleList<string> repeatedStringPieceField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPieceField_); }
+ }
+ public int RepeatedStringPieceFieldCount {
+ get { return repeatedStringPieceField_.Count; }
+ }
+ public string GetRepeatedStringPieceField(int index) {
+ return repeatedStringPieceField_[index];
+ }
+
+ public const int RepeatedCordFieldFieldNumber = 12;
+ private pbc::PopsicleList<string> repeatedCordField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedCordField_); }
+ }
+ public int RepeatedCordFieldCount {
+ get { return repeatedCordField_.Count; }
+ }
+ public string GetRepeatedCordField(int index) {
+ return repeatedCordField_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testCamelCaseFieldNamesFieldNames;
+ if (hasPrimitiveField) {
+ output.WriteInt32(1, field_names[3], PrimitiveField);
+ }
+ if (hasStringField) {
+ output.WriteString(2, field_names[10], StringField);
+ }
+ if (hasEnumField) {
+ output.WriteEnum(3, field_names[1], (int) EnumField, EnumField);
+ }
+ if (hasMessageField) {
+ output.WriteMessage(4, field_names[2], MessageField);
+ }
+ if (hasStringPieceField) {
+ output.WriteString(5, field_names[11], StringPieceField);
+ }
+ if (hasCordField) {
+ output.WriteString(6, field_names[0], CordField);
+ }
+ if (repeatedPrimitiveField_.Count > 0) {
+ output.WriteInt32Array(7, field_names[7], repeatedPrimitiveField_);
+ }
+ if (repeatedStringField_.Count > 0) {
+ output.WriteStringArray(8, field_names[8], repeatedStringField_);
+ }
+ if (repeatedEnumField_.Count > 0) {
+ output.WriteEnumArray(9, field_names[5], repeatedEnumField_);
+ }
+ if (repeatedMessageField_.Count > 0) {
+ output.WriteMessageArray(10, field_names[6], repeatedMessageField_);
+ }
+ if (repeatedStringPieceField_.Count > 0) {
+ output.WriteStringArray(11, field_names[9], repeatedStringPieceField_);
+ }
+ if (repeatedCordField_.Count > 0) {
+ output.WriteStringArray(12, field_names[4], repeatedCordField_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasPrimitiveField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, PrimitiveField);
+ }
+ if (hasStringField) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, StringField);
+ }
+ if (hasEnumField) {
+ size += pb::CodedOutputStream.ComputeEnumSize(3, (int) EnumField);
+ }
+ if (hasMessageField) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, MessageField);
+ }
+ if (hasStringPieceField) {
+ size += pb::CodedOutputStream.ComputeStringSize(5, StringPieceField);
+ }
+ if (hasCordField) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, CordField);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedPrimitiveFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedPrimitiveField_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedStringField_.Count;
+ }
+ {
+ int dataSize = 0;
+ if (repeatedEnumField_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in repeatedEnumField_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1 * repeatedEnumField_.Count;
+ }
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in RepeatedMessageFieldList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(10, element);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedStringPieceField_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedCordField_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestCamelCaseFieldNames MakeReadOnly() {
+ repeatedPrimitiveField_.MakeReadOnly();
+ repeatedStringField_.MakeReadOnly();
+ repeatedEnumField_.MakeReadOnly();
+ repeatedMessageField_.MakeReadOnly();
+ repeatedStringPieceField_.MakeReadOnly();
+ repeatedCordField_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestCamelCaseFieldNames prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestCamelCaseFieldNames, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestCamelCaseFieldNames cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestCamelCaseFieldNames result;
+
+ private TestCamelCaseFieldNames PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestCamelCaseFieldNames original = result;
+ result = new TestCamelCaseFieldNames();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestCamelCaseFieldNames MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Descriptor; }
+ }
+
+ public override TestCamelCaseFieldNames DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.DefaultInstance; }
+ }
+
+ public override TestCamelCaseFieldNames BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestCamelCaseFieldNames) {
+ return MergeFrom((TestCamelCaseFieldNames) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestCamelCaseFieldNames other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasPrimitiveField) {
+ PrimitiveField = other.PrimitiveField;
+ }
+ if (other.HasStringField) {
+ StringField = other.StringField;
+ }
+ if (other.HasEnumField) {
+ EnumField = other.EnumField;
+ }
+ if (other.HasMessageField) {
+ MergeMessageField(other.MessageField);
+ }
+ if (other.HasStringPieceField) {
+ StringPieceField = other.StringPieceField;
+ }
+ if (other.HasCordField) {
+ CordField = other.CordField;
+ }
+ if (other.repeatedPrimitiveField_.Count != 0) {
+ result.repeatedPrimitiveField_.Add(other.repeatedPrimitiveField_);
+ }
+ if (other.repeatedStringField_.Count != 0) {
+ result.repeatedStringField_.Add(other.repeatedStringField_);
+ }
+ if (other.repeatedEnumField_.Count != 0) {
+ result.repeatedEnumField_.Add(other.repeatedEnumField_);
+ }
+ if (other.repeatedMessageField_.Count != 0) {
+ result.repeatedMessageField_.Add(other.repeatedMessageField_);
+ }
+ if (other.repeatedStringPieceField_.Count != 0) {
+ result.repeatedStringPieceField_.Add(other.repeatedStringPieceField_);
+ }
+ if (other.repeatedCordField_.Count != 0) {
+ result.repeatedCordField_.Add(other.repeatedCordField_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testCamelCaseFieldNamesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testCamelCaseFieldNamesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasPrimitiveField = input.ReadInt32(ref result.primitiveField_);
+ break;
+ }
+ case 18: {
+ result.hasStringField = input.ReadString(ref result.stringField_);
+ break;
+ }
+ case 24: {
+ object unknown;
+ if(input.ReadEnum(ref result.enumField_, out unknown)) {
+ result.hasEnumField = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(3, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 34: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (result.hasMessageField) {
+ subBuilder.MergeFrom(MessageField);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageField = subBuilder.BuildPartial();
+ break;
+ }
+ case 42: {
+ result.hasStringPieceField = input.ReadString(ref result.stringPieceField_);
+ break;
+ }
+ case 50: {
+ result.hasCordField = input.ReadString(ref result.cordField_);
+ break;
+ }
+ case 58:
+ case 56: {
+ input.ReadInt32Array(tag, field_name, result.repeatedPrimitiveField_);
+ break;
+ }
+ case 66: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringField_);
+ break;
+ }
+ case 74:
+ case 72: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.repeatedEnumField_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(9, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 82: {
+ input.ReadMessageArray(tag, field_name, result.repeatedMessageField_, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 90: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringPieceField_);
+ break;
+ }
+ case 98: {
+ input.ReadStringArray(tag, field_name, result.repeatedCordField_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasPrimitiveField {
+ get { return result.hasPrimitiveField; }
+ }
+ public int PrimitiveField {
+ get { return result.PrimitiveField; }
+ set { SetPrimitiveField(value); }
+ }
+ public Builder SetPrimitiveField(int value) {
+ PrepareBuilder();
+ result.hasPrimitiveField = true;
+ result.primitiveField_ = value;
+ return this;
+ }
+ public Builder ClearPrimitiveField() {
+ PrepareBuilder();
+ result.hasPrimitiveField = false;
+ result.primitiveField_ = 0;
+ return this;
+ }
+
+ public bool HasStringField {
+ get { return result.hasStringField; }
+ }
+ public string StringField {
+ get { return result.StringField; }
+ set { SetStringField(value); }
+ }
+ public Builder SetStringField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringField = true;
+ result.stringField_ = value;
+ return this;
+ }
+ public Builder ClearStringField() {
+ PrepareBuilder();
+ result.hasStringField = false;
+ result.stringField_ = "";
+ return this;
+ }
+
+ public bool HasEnumField {
+ get { return result.hasEnumField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumField {
+ get { return result.EnumField; }
+ set { SetEnumField(value); }
+ }
+ public Builder SetEnumField(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasEnumField = true;
+ result.enumField_ = value;
+ return this;
+ }
+ public Builder ClearEnumField() {
+ PrepareBuilder();
+ result.hasEnumField = false;
+ result.enumField_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasMessageField {
+ get { return result.hasMessageField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {
+ get { return result.MessageField; }
+ set { SetMessageField(value); }
+ }
+ public Builder SetMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMessageField = true;
+ result.messageField_ = value;
+ return this;
+ }
+ public Builder SetMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMessageField = true;
+ result.messageField_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMessageField &&
+ result.messageField_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageField_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageField_ = value;
+ }
+ result.hasMessageField = true;
+ return this;
+ }
+ public Builder ClearMessageField() {
+ PrepareBuilder();
+ result.hasMessageField = false;
+ result.messageField_ = null;
+ return this;
+ }
+
+ public bool HasStringPieceField {
+ get { return result.hasStringPieceField; }
+ }
+ public string StringPieceField {
+ get { return result.StringPieceField; }
+ set { SetStringPieceField(value); }
+ }
+ public Builder SetStringPieceField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringPieceField = true;
+ result.stringPieceField_ = value;
+ return this;
+ }
+ public Builder ClearStringPieceField() {
+ PrepareBuilder();
+ result.hasStringPieceField = false;
+ result.stringPieceField_ = "";
+ return this;
+ }
+
+ public bool HasCordField {
+ get { return result.hasCordField; }
+ }
+ public string CordField {
+ get { return result.CordField; }
+ set { SetCordField(value); }
+ }
+ public Builder SetCordField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCordField = true;
+ result.cordField_ = value;
+ return this;
+ }
+ public Builder ClearCordField() {
+ PrepareBuilder();
+ result.hasCordField = false;
+ result.cordField_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedPrimitiveFieldList {
+ get { return PrepareBuilder().repeatedPrimitiveField_; }
+ }
+ public int RepeatedPrimitiveFieldCount {
+ get { return result.RepeatedPrimitiveFieldCount; }
+ }
+ public int GetRepeatedPrimitiveField(int index) {
+ return result.GetRepeatedPrimitiveField(index);
+ }
+ public Builder SetRepeatedPrimitiveField(int index, int value) {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedPrimitiveField(int value) {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedPrimitiveField(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedPrimitiveField() {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringFieldList {
+ get { return PrepareBuilder().repeatedStringField_; }
+ }
+ public int RepeatedStringFieldCount {
+ get { return result.RepeatedStringFieldCount; }
+ }
+ public string GetRepeatedStringField(int index) {
+ return result.GetRepeatedStringField(index);
+ }
+ public Builder SetRepeatedStringField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringField(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringField() {
+ PrepareBuilder();
+ result.repeatedStringField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedEnumFieldList {
+ get { return PrepareBuilder().repeatedEnumField_; }
+ }
+ public int RepeatedEnumFieldCount {
+ get { return result.RepeatedEnumFieldCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedEnumField(int index) {
+ return result.GetRepeatedEnumField(index);
+ }
+ public Builder SetRepeatedEnumField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedEnumField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedEnumField(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedEnumField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedEnumField(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.repeatedEnumField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedEnumField() {
+ PrepareBuilder();
+ result.repeatedEnumField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedMessageFieldList {
+ get { return PrepareBuilder().repeatedMessageField_; }
+ }
+ public int RepeatedMessageFieldCount {
+ get { return result.RepeatedMessageFieldCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedMessageField(int index) {
+ return result.GetRepeatedMessageField(index);
+ }
+ public Builder SetRepeatedMessageField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessageField_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedMessageField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessageField_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessageField_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessageField_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedMessageField(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ PrepareBuilder();
+ result.repeatedMessageField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedMessageField() {
+ PrepareBuilder();
+ result.repeatedMessageField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceFieldList {
+ get { return PrepareBuilder().repeatedStringPieceField_; }
+ }
+ public int RepeatedStringPieceFieldCount {
+ get { return result.RepeatedStringPieceFieldCount; }
+ }
+ public string GetRepeatedStringPieceField(int index) {
+ return result.GetRepeatedStringPieceField(index);
+ }
+ public Builder SetRepeatedStringPieceField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPieceField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPieceField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPieceField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPieceField(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringPieceField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringPieceField() {
+ PrepareBuilder();
+ result.repeatedStringPieceField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordFieldList {
+ get { return PrepareBuilder().repeatedCordField_; }
+ }
+ public int RepeatedCordFieldCount {
+ get { return result.RepeatedCordFieldCount; }
+ }
+ public string GetRepeatedCordField(int index) {
+ return result.GetRepeatedCordField(index);
+ }
+ public Builder SetRepeatedCordField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCordField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCordField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCordField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCordField(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedCordField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedCordField() {
+ PrepareBuilder();
+ result.repeatedCordField_.Clear();
+ return this;
+ }
+ }
+ static TestCamelCaseFieldNames() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestFieldOrderings : pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder> {
+ private TestFieldOrderings() { }
+ private static readonly TestFieldOrderings defaultInstance = new TestFieldOrderings().MakeReadOnly();
+ private static readonly string[] _testFieldOrderingsFieldNames = new string[] { "my_float", "my_int", "my_string", "optional_nested_message" };
+ private static readonly uint[] _testFieldOrderingsFieldTags = new uint[] { 813, 8, 90, 1602 };
+ public static TestFieldOrderings DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestFieldOrderings DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestFieldOrderings ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestFieldOrderings, TestFieldOrderings.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "bb", "oo" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8, 16 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int OoFieldNumber = 2;
+ private bool hasOo;
+ private long oo_;
+ public bool HasOo {
+ get { return hasOo; }
+ }
+ public long Oo {
+ get { return oo_; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private int bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasBb) {
+ output.WriteInt32(1, field_names[0], Bb);
+ }
+ if (hasOo) {
+ output.WriteInt64(2, field_names[1], Oo);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOo) {
+ size += pb::CodedOutputStream.ComputeInt64Size(2, Oo);
+ }
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOo) {
+ Oo = other.Oo;
+ }
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasBb = input.ReadInt32(ref result.bb_);
+ break;
+ }
+ case 16: {
+ result.hasOo = input.ReadInt64(ref result.oo_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOo {
+ get { return result.hasOo; }
+ }
+ public long Oo {
+ get { return result.Oo; }
+ set { SetOo(value); }
+ }
+ public Builder SetOo(long value) {
+ PrepareBuilder();
+ result.hasOo = true;
+ result.oo_ = value;
+ return this;
+ }
+ public Builder ClearOo() {
+ PrepareBuilder();
+ result.hasOo = false;
+ result.oo_ = 0L;
+ return this;
+ }
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int MyStringFieldNumber = 11;
+ private bool hasMyString;
+ private string myString_ = "";
+ public bool HasMyString {
+ get { return hasMyString; }
+ }
+ public string MyString {
+ get { return myString_; }
+ }
+
+ public const int MyIntFieldNumber = 1;
+ private bool hasMyInt;
+ private long myInt_;
+ public bool HasMyInt {
+ get { return hasMyInt; }
+ }
+ public long MyInt {
+ get { return myInt_; }
+ }
+
+ public const int MyFloatFieldNumber = 101;
+ private bool hasMyFloat;
+ private float myFloat_;
+ public bool HasMyFloat {
+ get { return hasMyFloat; }
+ }
+ public float MyFloat {
+ get { return myFloat_; }
+ }
+
+ public const int OptionalNestedMessageFieldNumber = 200;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testFieldOrderingsFieldNames;
+ pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasMyInt) {
+ output.WriteInt64(1, field_names[1], MyInt);
+ }
+ extensionWriter.WriteUntil(11, output);
+ if (hasMyString) {
+ output.WriteString(11, field_names[2], MyString);
+ }
+ extensionWriter.WriteUntil(101, output);
+ if (hasMyFloat) {
+ output.WriteFloat(101, field_names[0], MyFloat);
+ }
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(200, field_names[3], OptionalNestedMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMyString) {
+ size += pb::CodedOutputStream.ComputeStringSize(11, MyString);
+ }
+ if (hasMyInt) {
+ size += pb::CodedOutputStream.ComputeInt64Size(1, MyInt);
+ }
+ if (hasMyFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(101, MyFloat);
+ }
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(200, OptionalNestedMessage);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestFieldOrderings ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestFieldOrderings ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestFieldOrderings MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestFieldOrderings prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestFieldOrderings, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestFieldOrderings cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestFieldOrderings result;
+
+ private TestFieldOrderings PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestFieldOrderings original = result;
+ result = new TestFieldOrderings();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestFieldOrderings MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Descriptor; }
+ }
+
+ public override TestFieldOrderings DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.DefaultInstance; }
+ }
+
+ public override TestFieldOrderings BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestFieldOrderings) {
+ return MergeFrom((TestFieldOrderings) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestFieldOrderings other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasMyString) {
+ MyString = other.MyString;
+ }
+ if (other.HasMyInt) {
+ MyInt = other.MyInt;
+ }
+ if (other.HasMyFloat) {
+ MyFloat = other.MyFloat;
+ }
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testFieldOrderingsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testFieldOrderingsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasMyInt = input.ReadInt64(ref result.myInt_);
+ break;
+ }
+ case 90: {
+ result.hasMyString = input.ReadString(ref result.myString_);
+ break;
+ }
+ case 813: {
+ result.hasMyFloat = input.ReadFloat(ref result.myFloat_);
+ break;
+ }
+ case 1602: {
+ global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasMyString {
+ get { return result.hasMyString; }
+ }
+ public string MyString {
+ get { return result.MyString; }
+ set { SetMyString(value); }
+ }
+ public Builder SetMyString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMyString = true;
+ result.myString_ = value;
+ return this;
+ }
+ public Builder ClearMyString() {
+ PrepareBuilder();
+ result.hasMyString = false;
+ result.myString_ = "";
+ return this;
+ }
+
+ public bool HasMyInt {
+ get { return result.hasMyInt; }
+ }
+ public long MyInt {
+ get { return result.MyInt; }
+ set { SetMyInt(value); }
+ }
+ public Builder SetMyInt(long value) {
+ PrepareBuilder();
+ result.hasMyInt = true;
+ result.myInt_ = value;
+ return this;
+ }
+ public Builder ClearMyInt() {
+ PrepareBuilder();
+ result.hasMyInt = false;
+ result.myInt_ = 0L;
+ return this;
+ }
+
+ public bool HasMyFloat {
+ get { return result.hasMyFloat; }
+ }
+ public float MyFloat {
+ get { return result.MyFloat; }
+ set { SetMyFloat(value); }
+ }
+ public Builder SetMyFloat(float value) {
+ PrepareBuilder();
+ result.hasMyFloat = true;
+ result.myFloat_ = value;
+ return this;
+ }
+ public Builder ClearMyFloat() {
+ PrepareBuilder();
+ result.hasMyFloat = false;
+ result.myFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+ }
+ static TestFieldOrderings() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestExtremeDefaultValues : pb::GeneratedMessage<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> {
+ private TestExtremeDefaultValues() { }
+ private static readonly TestExtremeDefaultValues defaultInstance = new TestExtremeDefaultValues().MakeReadOnly();
+ private static readonly string[] _testExtremeDefaultValuesFieldNames = new string[] { "bytes_with_zero", "cord_with_zero", "cpp_trigraph", "escaped_bytes", "inf_double", "inf_float", "large_float", "large_uint32", "large_uint64", "nan_double", "nan_float", "neg_inf_double", "neg_inf_float", "negative_float", "negative_one_float", "one_float", "really_small_int32", "really_small_int64", "replacement_string", "small_float", "small_int32", "small_int64", "small_negative_float", "string_piece_with_zero", "string_with_zero", "utf8_string", "zero_float" };
+ private static readonly uint[] _testExtremeDefaultValuesFieldTags = new uint[] { 194, 210, 162, 10, 113, 141, 101, 16, 24, 129, 157, 121, 149, 93, 85, 69, 168, 176, 218, 77, 32, 40, 109, 202, 186, 50, 61 };
+ public static TestExtremeDefaultValues DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestExtremeDefaultValues DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestExtremeDefaultValues ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable; }
+ }
+
+ public const int EscapedBytesFieldNumber = 1;
+ private bool hasEscapedBytes;
+ private pb::ByteString escapedBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[0].DefaultValue;
+ public bool HasEscapedBytes {
+ get { return hasEscapedBytes; }
+ }
+ public pb::ByteString EscapedBytes {
+ get { return escapedBytes_; }
+ }
+
+ public const int LargeUint32FieldNumber = 2;
+ private bool hasLargeUint32;
+ private uint largeUint32_ = 4294967295;
+ public bool HasLargeUint32 {
+ get { return hasLargeUint32; }
+ }
+ public uint LargeUint32 {
+ get { return largeUint32_; }
+ }
+
+ public const int LargeUint64FieldNumber = 3;
+ private bool hasLargeUint64;
+ private ulong largeUint64_ = 18446744073709551615UL;
+ public bool HasLargeUint64 {
+ get { return hasLargeUint64; }
+ }
+ public ulong LargeUint64 {
+ get { return largeUint64_; }
+ }
+
+ public const int SmallInt32FieldNumber = 4;
+ private bool hasSmallInt32;
+ private int smallInt32_ = -2147483647;
+ public bool HasSmallInt32 {
+ get { return hasSmallInt32; }
+ }
+ public int SmallInt32 {
+ get { return smallInt32_; }
+ }
+
+ public const int SmallInt64FieldNumber = 5;
+ private bool hasSmallInt64;
+ private long smallInt64_ = -9223372036854775807L;
+ public bool HasSmallInt64 {
+ get { return hasSmallInt64; }
+ }
+ public long SmallInt64 {
+ get { return smallInt64_; }
+ }
+
+ public const int ReallySmallInt32FieldNumber = 21;
+ private bool hasReallySmallInt32;
+ private int reallySmallInt32_ = -2147483648;
+ public bool HasReallySmallInt32 {
+ get { return hasReallySmallInt32; }
+ }
+ public int ReallySmallInt32 {
+ get { return reallySmallInt32_; }
+ }
+
+ public const int ReallySmallInt64FieldNumber = 22;
+ private bool hasReallySmallInt64;
+ private long reallySmallInt64_ = -9223372036854775808L;
+ public bool HasReallySmallInt64 {
+ get { return hasReallySmallInt64; }
+ }
+ public long ReallySmallInt64 {
+ get { return reallySmallInt64_; }
+ }
+
+ public const int Utf8StringFieldNumber = 6;
+ private bool hasUtf8String;
+ private string utf8String_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[7].DefaultValue;
+ public bool HasUtf8String {
+ get { return hasUtf8String; }
+ }
+ public string Utf8String {
+ get { return utf8String_; }
+ }
+
+ public const int ZeroFloatFieldNumber = 7;
+ private bool hasZeroFloat;
+ private float zeroFloat_;
+ public bool HasZeroFloat {
+ get { return hasZeroFloat; }
+ }
+ public float ZeroFloat {
+ get { return zeroFloat_; }
+ }
+
+ public const int OneFloatFieldNumber = 8;
+ private bool hasOneFloat;
+ private float oneFloat_ = 1F;
+ public bool HasOneFloat {
+ get { return hasOneFloat; }
+ }
+ public float OneFloat {
+ get { return oneFloat_; }
+ }
+
+ public const int SmallFloatFieldNumber = 9;
+ private bool hasSmallFloat;
+ private float smallFloat_ = 1.5F;
+ public bool HasSmallFloat {
+ get { return hasSmallFloat; }
+ }
+ public float SmallFloat {
+ get { return smallFloat_; }
+ }
+
+ public const int NegativeOneFloatFieldNumber = 10;
+ private bool hasNegativeOneFloat;
+ private float negativeOneFloat_ = -1F;
+ public bool HasNegativeOneFloat {
+ get { return hasNegativeOneFloat; }
+ }
+ public float NegativeOneFloat {
+ get { return negativeOneFloat_; }
+ }
+
+ public const int NegativeFloatFieldNumber = 11;
+ private bool hasNegativeFloat;
+ private float negativeFloat_ = -1.5F;
+ public bool HasNegativeFloat {
+ get { return hasNegativeFloat; }
+ }
+ public float NegativeFloat {
+ get { return negativeFloat_; }
+ }
+
+ public const int LargeFloatFieldNumber = 12;
+ private bool hasLargeFloat;
+ private float largeFloat_ = 2e+08F;
+ public bool HasLargeFloat {
+ get { return hasLargeFloat; }
+ }
+ public float LargeFloat {
+ get { return largeFloat_; }
+ }
+
+ public const int SmallNegativeFloatFieldNumber = 13;
+ private bool hasSmallNegativeFloat;
+ private float smallNegativeFloat_ = -8e-28F;
+ public bool HasSmallNegativeFloat {
+ get { return hasSmallNegativeFloat; }
+ }
+ public float SmallNegativeFloat {
+ get { return smallNegativeFloat_; }
+ }
+
+ public const int InfDoubleFieldNumber = 14;
+ private bool hasInfDouble;
+ private double infDouble_ = double.PositiveInfinity;
+ public bool HasInfDouble {
+ get { return hasInfDouble; }
+ }
+ public double InfDouble {
+ get { return infDouble_; }
+ }
+
+ public const int NegInfDoubleFieldNumber = 15;
+ private bool hasNegInfDouble;
+ private double negInfDouble_ = double.NegativeInfinity;
+ public bool HasNegInfDouble {
+ get { return hasNegInfDouble; }
+ }
+ public double NegInfDouble {
+ get { return negInfDouble_; }
+ }
+
+ public const int NanDoubleFieldNumber = 16;
+ private bool hasNanDouble;
+ private double nanDouble_ = double.NaN;
+ public bool HasNanDouble {
+ get { return hasNanDouble; }
+ }
+ public double NanDouble {
+ get { return nanDouble_; }
+ }
+
+ public const int InfFloatFieldNumber = 17;
+ private bool hasInfFloat;
+ private float infFloat_ = float.PositiveInfinity;
+ public bool HasInfFloat {
+ get { return hasInfFloat; }
+ }
+ public float InfFloat {
+ get { return infFloat_; }
+ }
+
+ public const int NegInfFloatFieldNumber = 18;
+ private bool hasNegInfFloat;
+ private float negInfFloat_ = float.NegativeInfinity;
+ public bool HasNegInfFloat {
+ get { return hasNegInfFloat; }
+ }
+ public float NegInfFloat {
+ get { return negInfFloat_; }
+ }
+
+ public const int NanFloatFieldNumber = 19;
+ private bool hasNanFloat;
+ private float nanFloat_ = float.NaN;
+ public bool HasNanFloat {
+ get { return hasNanFloat; }
+ }
+ public float NanFloat {
+ get { return nanFloat_; }
+ }
+
+ public const int CppTrigraphFieldNumber = 20;
+ private bool hasCppTrigraph;
+ private string cppTrigraph_ = "? ? ?? ?? ??? ??/ ??-";
+ public bool HasCppTrigraph {
+ get { return hasCppTrigraph; }
+ }
+ public string CppTrigraph {
+ get { return cppTrigraph_; }
+ }
+
+ public const int StringWithZeroFieldNumber = 23;
+ private bool hasStringWithZero;
+ private string stringWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[22].DefaultValue;
+ public bool HasStringWithZero {
+ get { return hasStringWithZero; }
+ }
+ public string StringWithZero {
+ get { return stringWithZero_; }
+ }
+
+ public const int BytesWithZeroFieldNumber = 24;
+ private bool hasBytesWithZero;
+ private pb::ByteString bytesWithZero_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[23].DefaultValue;
+ public bool HasBytesWithZero {
+ get { return hasBytesWithZero; }
+ }
+ public pb::ByteString BytesWithZero {
+ get { return bytesWithZero_; }
+ }
+
+ public const int StringPieceWithZeroFieldNumber = 25;
+ private bool hasStringPieceWithZero;
+ private string stringPieceWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[24].DefaultValue;
+ public bool HasStringPieceWithZero {
+ get { return hasStringPieceWithZero; }
+ }
+ public string StringPieceWithZero {
+ get { return stringPieceWithZero_; }
+ }
+
+ public const int CordWithZeroFieldNumber = 26;
+ private bool hasCordWithZero;
+ private string cordWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[25].DefaultValue;
+ public bool HasCordWithZero {
+ get { return hasCordWithZero; }
+ }
+ public string CordWithZero {
+ get { return cordWithZero_; }
+ }
+
+ public const int ReplacementStringFieldNumber = 27;
+ private bool hasReplacementString;
+ private string replacementString_ = "${unknown}";
+ public bool HasReplacementString {
+ get { return hasReplacementString; }
+ }
+ public string ReplacementString {
+ get { return replacementString_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testExtremeDefaultValuesFieldNames;
+ if (hasEscapedBytes) {
+ output.WriteBytes(1, field_names[3], EscapedBytes);
+ }
+ if (hasLargeUint32) {
+ output.WriteUInt32(2, field_names[7], LargeUint32);
+ }
+ if (hasLargeUint64) {
+ output.WriteUInt64(3, field_names[8], LargeUint64);
+ }
+ if (hasSmallInt32) {
+ output.WriteInt32(4, field_names[20], SmallInt32);
+ }
+ if (hasSmallInt64) {
+ output.WriteInt64(5, field_names[21], SmallInt64);
+ }
+ if (hasUtf8String) {
+ output.WriteString(6, field_names[25], Utf8String);
+ }
+ if (hasZeroFloat) {
+ output.WriteFloat(7, field_names[26], ZeroFloat);
+ }
+ if (hasOneFloat) {
+ output.WriteFloat(8, field_names[15], OneFloat);
+ }
+ if (hasSmallFloat) {
+ output.WriteFloat(9, field_names[19], SmallFloat);
+ }
+ if (hasNegativeOneFloat) {
+ output.WriteFloat(10, field_names[14], NegativeOneFloat);
+ }
+ if (hasNegativeFloat) {
+ output.WriteFloat(11, field_names[13], NegativeFloat);
+ }
+ if (hasLargeFloat) {
+ output.WriteFloat(12, field_names[6], LargeFloat);
+ }
+ if (hasSmallNegativeFloat) {
+ output.WriteFloat(13, field_names[22], SmallNegativeFloat);
+ }
+ if (hasInfDouble) {
+ output.WriteDouble(14, field_names[4], InfDouble);
+ }
+ if (hasNegInfDouble) {
+ output.WriteDouble(15, field_names[11], NegInfDouble);
+ }
+ if (hasNanDouble) {
+ output.WriteDouble(16, field_names[9], NanDouble);
+ }
+ if (hasInfFloat) {
+ output.WriteFloat(17, field_names[5], InfFloat);
+ }
+ if (hasNegInfFloat) {
+ output.WriteFloat(18, field_names[12], NegInfFloat);
+ }
+ if (hasNanFloat) {
+ output.WriteFloat(19, field_names[10], NanFloat);
+ }
+ if (hasCppTrigraph) {
+ output.WriteString(20, field_names[2], CppTrigraph);
+ }
+ if (hasReallySmallInt32) {
+ output.WriteInt32(21, field_names[16], ReallySmallInt32);
+ }
+ if (hasReallySmallInt64) {
+ output.WriteInt64(22, field_names[17], ReallySmallInt64);
+ }
+ if (hasStringWithZero) {
+ output.WriteString(23, field_names[24], StringWithZero);
+ }
+ if (hasBytesWithZero) {
+ output.WriteBytes(24, field_names[0], BytesWithZero);
+ }
+ if (hasStringPieceWithZero) {
+ output.WriteString(25, field_names[23], StringPieceWithZero);
+ }
+ if (hasCordWithZero) {
+ output.WriteString(26, field_names[1], CordWithZero);
+ }
+ if (hasReplacementString) {
+ output.WriteString(27, field_names[18], ReplacementString);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasEscapedBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, EscapedBytes);
+ }
+ if (hasLargeUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(2, LargeUint32);
+ }
+ if (hasLargeUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(3, LargeUint64);
+ }
+ if (hasSmallInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(4, SmallInt32);
+ }
+ if (hasSmallInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(5, SmallInt64);
+ }
+ if (hasReallySmallInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(21, ReallySmallInt32);
+ }
+ if (hasReallySmallInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(22, ReallySmallInt64);
+ }
+ if (hasUtf8String) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, Utf8String);
+ }
+ if (hasZeroFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(7, ZeroFloat);
+ }
+ if (hasOneFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(8, OneFloat);
+ }
+ if (hasSmallFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(9, SmallFloat);
+ }
+ if (hasNegativeOneFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(10, NegativeOneFloat);
+ }
+ if (hasNegativeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, NegativeFloat);
+ }
+ if (hasLargeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(12, LargeFloat);
+ }
+ if (hasSmallNegativeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(13, SmallNegativeFloat);
+ }
+ if (hasInfDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(14, InfDouble);
+ }
+ if (hasNegInfDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(15, NegInfDouble);
+ }
+ if (hasNanDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(16, NanDouble);
+ }
+ if (hasInfFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(17, InfFloat);
+ }
+ if (hasNegInfFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(18, NegInfFloat);
+ }
+ if (hasNanFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(19, NanFloat);
+ }
+ if (hasCppTrigraph) {
+ size += pb::CodedOutputStream.ComputeStringSize(20, CppTrigraph);
+ }
+ if (hasStringWithZero) {
+ size += pb::CodedOutputStream.ComputeStringSize(23, StringWithZero);
+ }
+ if (hasBytesWithZero) {
+ size += pb::CodedOutputStream.ComputeBytesSize(24, BytesWithZero);
+ }
+ if (hasStringPieceWithZero) {
+ size += pb::CodedOutputStream.ComputeStringSize(25, StringPieceWithZero);
+ }
+ if (hasCordWithZero) {
+ size += pb::CodedOutputStream.ComputeStringSize(26, CordWithZero);
+ }
+ if (hasReplacementString) {
+ size += pb::CodedOutputStream.ComputeStringSize(27, ReplacementString);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestExtremeDefaultValues MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestExtremeDefaultValues prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestExtremeDefaultValues, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestExtremeDefaultValues cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestExtremeDefaultValues result;
+
+ private TestExtremeDefaultValues PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestExtremeDefaultValues original = result;
+ result = new TestExtremeDefaultValues();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestExtremeDefaultValues MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor; }
+ }
+
+ public override TestExtremeDefaultValues DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.DefaultInstance; }
+ }
+
+ public override TestExtremeDefaultValues BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestExtremeDefaultValues) {
+ return MergeFrom((TestExtremeDefaultValues) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestExtremeDefaultValues other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasEscapedBytes) {
+ EscapedBytes = other.EscapedBytes;
+ }
+ if (other.HasLargeUint32) {
+ LargeUint32 = other.LargeUint32;
+ }
+ if (other.HasLargeUint64) {
+ LargeUint64 = other.LargeUint64;
+ }
+ if (other.HasSmallInt32) {
+ SmallInt32 = other.SmallInt32;
+ }
+ if (other.HasSmallInt64) {
+ SmallInt64 = other.SmallInt64;
+ }
+ if (other.HasReallySmallInt32) {
+ ReallySmallInt32 = other.ReallySmallInt32;
+ }
+ if (other.HasReallySmallInt64) {
+ ReallySmallInt64 = other.ReallySmallInt64;
+ }
+ if (other.HasUtf8String) {
+ Utf8String = other.Utf8String;
+ }
+ if (other.HasZeroFloat) {
+ ZeroFloat = other.ZeroFloat;
+ }
+ if (other.HasOneFloat) {
+ OneFloat = other.OneFloat;
+ }
+ if (other.HasSmallFloat) {
+ SmallFloat = other.SmallFloat;
+ }
+ if (other.HasNegativeOneFloat) {
+ NegativeOneFloat = other.NegativeOneFloat;
+ }
+ if (other.HasNegativeFloat) {
+ NegativeFloat = other.NegativeFloat;
+ }
+ if (other.HasLargeFloat) {
+ LargeFloat = other.LargeFloat;
+ }
+ if (other.HasSmallNegativeFloat) {
+ SmallNegativeFloat = other.SmallNegativeFloat;
+ }
+ if (other.HasInfDouble) {
+ InfDouble = other.InfDouble;
+ }
+ if (other.HasNegInfDouble) {
+ NegInfDouble = other.NegInfDouble;
+ }
+ if (other.HasNanDouble) {
+ NanDouble = other.NanDouble;
+ }
+ if (other.HasInfFloat) {
+ InfFloat = other.InfFloat;
+ }
+ if (other.HasNegInfFloat) {
+ NegInfFloat = other.NegInfFloat;
+ }
+ if (other.HasNanFloat) {
+ NanFloat = other.NanFloat;
+ }
+ if (other.HasCppTrigraph) {
+ CppTrigraph = other.CppTrigraph;
+ }
+ if (other.HasStringWithZero) {
+ StringWithZero = other.StringWithZero;
+ }
+ if (other.HasBytesWithZero) {
+ BytesWithZero = other.BytesWithZero;
+ }
+ if (other.HasStringPieceWithZero) {
+ StringPieceWithZero = other.StringPieceWithZero;
+ }
+ if (other.HasCordWithZero) {
+ CordWithZero = other.CordWithZero;
+ }
+ if (other.HasReplacementString) {
+ ReplacementString = other.ReplacementString;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testExtremeDefaultValuesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testExtremeDefaultValuesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasEscapedBytes = input.ReadBytes(ref result.escapedBytes_);
+ break;
+ }
+ case 16: {
+ result.hasLargeUint32 = input.ReadUInt32(ref result.largeUint32_);
+ break;
+ }
+ case 24: {
+ result.hasLargeUint64 = input.ReadUInt64(ref result.largeUint64_);
+ break;
+ }
+ case 32: {
+ result.hasSmallInt32 = input.ReadInt32(ref result.smallInt32_);
+ break;
+ }
+ case 40: {
+ result.hasSmallInt64 = input.ReadInt64(ref result.smallInt64_);
+ break;
+ }
+ case 50: {
+ result.hasUtf8String = input.ReadString(ref result.utf8String_);
+ break;
+ }
+ case 61: {
+ result.hasZeroFloat = input.ReadFloat(ref result.zeroFloat_);
+ break;
+ }
+ case 69: {
+ result.hasOneFloat = input.ReadFloat(ref result.oneFloat_);
+ break;
+ }
+ case 77: {
+ result.hasSmallFloat = input.ReadFloat(ref result.smallFloat_);
+ break;
+ }
+ case 85: {
+ result.hasNegativeOneFloat = input.ReadFloat(ref result.negativeOneFloat_);
+ break;
+ }
+ case 93: {
+ result.hasNegativeFloat = input.ReadFloat(ref result.negativeFloat_);
+ break;
+ }
+ case 101: {
+ result.hasLargeFloat = input.ReadFloat(ref result.largeFloat_);
+ break;
+ }
+ case 109: {
+ result.hasSmallNegativeFloat = input.ReadFloat(ref result.smallNegativeFloat_);
+ break;
+ }
+ case 113: {
+ result.hasInfDouble = input.ReadDouble(ref result.infDouble_);
+ break;
+ }
+ case 121: {
+ result.hasNegInfDouble = input.ReadDouble(ref result.negInfDouble_);
+ break;
+ }
+ case 129: {
+ result.hasNanDouble = input.ReadDouble(ref result.nanDouble_);
+ break;
+ }
+ case 141: {
+ result.hasInfFloat = input.ReadFloat(ref result.infFloat_);
+ break;
+ }
+ case 149: {
+ result.hasNegInfFloat = input.ReadFloat(ref result.negInfFloat_);
+ break;
+ }
+ case 157: {
+ result.hasNanFloat = input.ReadFloat(ref result.nanFloat_);
+ break;
+ }
+ case 162: {
+ result.hasCppTrigraph = input.ReadString(ref result.cppTrigraph_);
+ break;
+ }
+ case 168: {
+ result.hasReallySmallInt32 = input.ReadInt32(ref result.reallySmallInt32_);
+ break;
+ }
+ case 176: {
+ result.hasReallySmallInt64 = input.ReadInt64(ref result.reallySmallInt64_);
+ break;
+ }
+ case 186: {
+ result.hasStringWithZero = input.ReadString(ref result.stringWithZero_);
+ break;
+ }
+ case 194: {
+ result.hasBytesWithZero = input.ReadBytes(ref result.bytesWithZero_);
+ break;
+ }
+ case 202: {
+ result.hasStringPieceWithZero = input.ReadString(ref result.stringPieceWithZero_);
+ break;
+ }
+ case 210: {
+ result.hasCordWithZero = input.ReadString(ref result.cordWithZero_);
+ break;
+ }
+ case 218: {
+ result.hasReplacementString = input.ReadString(ref result.replacementString_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasEscapedBytes {
+ get { return result.hasEscapedBytes; }
+ }
+ public pb::ByteString EscapedBytes {
+ get { return result.EscapedBytes; }
+ set { SetEscapedBytes(value); }
+ }
+ public Builder SetEscapedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasEscapedBytes = true;
+ result.escapedBytes_ = value;
+ return this;
+ }
+ public Builder ClearEscapedBytes() {
+ PrepareBuilder();
+ result.hasEscapedBytes = false;
+ result.escapedBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[0].DefaultValue;
+ return this;
+ }
+
+ public bool HasLargeUint32 {
+ get { return result.hasLargeUint32; }
+ }
+ public uint LargeUint32 {
+ get { return result.LargeUint32; }
+ set { SetLargeUint32(value); }
+ }
+ public Builder SetLargeUint32(uint value) {
+ PrepareBuilder();
+ result.hasLargeUint32 = true;
+ result.largeUint32_ = value;
+ return this;
+ }
+ public Builder ClearLargeUint32() {
+ PrepareBuilder();
+ result.hasLargeUint32 = false;
+ result.largeUint32_ = 4294967295;
+ return this;
+ }
+
+ public bool HasLargeUint64 {
+ get { return result.hasLargeUint64; }
+ }
+ public ulong LargeUint64 {
+ get { return result.LargeUint64; }
+ set { SetLargeUint64(value); }
+ }
+ public Builder SetLargeUint64(ulong value) {
+ PrepareBuilder();
+ result.hasLargeUint64 = true;
+ result.largeUint64_ = value;
+ return this;
+ }
+ public Builder ClearLargeUint64() {
+ PrepareBuilder();
+ result.hasLargeUint64 = false;
+ result.largeUint64_ = 18446744073709551615UL;
+ return this;
+ }
+
+ public bool HasSmallInt32 {
+ get { return result.hasSmallInt32; }
+ }
+ public int SmallInt32 {
+ get { return result.SmallInt32; }
+ set { SetSmallInt32(value); }
+ }
+ public Builder SetSmallInt32(int value) {
+ PrepareBuilder();
+ result.hasSmallInt32 = true;
+ result.smallInt32_ = value;
+ return this;
+ }
+ public Builder ClearSmallInt32() {
+ PrepareBuilder();
+ result.hasSmallInt32 = false;
+ result.smallInt32_ = -2147483647;
+ return this;
+ }
+
+ public bool HasSmallInt64 {
+ get { return result.hasSmallInt64; }
+ }
+ public long SmallInt64 {
+ get { return result.SmallInt64; }
+ set { SetSmallInt64(value); }
+ }
+ public Builder SetSmallInt64(long value) {
+ PrepareBuilder();
+ result.hasSmallInt64 = true;
+ result.smallInt64_ = value;
+ return this;
+ }
+ public Builder ClearSmallInt64() {
+ PrepareBuilder();
+ result.hasSmallInt64 = false;
+ result.smallInt64_ = -9223372036854775807L;
+ return this;
+ }
+
+ public bool HasReallySmallInt32 {
+ get { return result.hasReallySmallInt32; }
+ }
+ public int ReallySmallInt32 {
+ get { return result.ReallySmallInt32; }
+ set { SetReallySmallInt32(value); }
+ }
+ public Builder SetReallySmallInt32(int value) {
+ PrepareBuilder();
+ result.hasReallySmallInt32 = true;
+ result.reallySmallInt32_ = value;
+ return this;
+ }
+ public Builder ClearReallySmallInt32() {
+ PrepareBuilder();
+ result.hasReallySmallInt32 = false;
+ result.reallySmallInt32_ = -2147483648;
+ return this;
+ }
+
+ public bool HasReallySmallInt64 {
+ get { return result.hasReallySmallInt64; }
+ }
+ public long ReallySmallInt64 {
+ get { return result.ReallySmallInt64; }
+ set { SetReallySmallInt64(value); }
+ }
+ public Builder SetReallySmallInt64(long value) {
+ PrepareBuilder();
+ result.hasReallySmallInt64 = true;
+ result.reallySmallInt64_ = value;
+ return this;
+ }
+ public Builder ClearReallySmallInt64() {
+ PrepareBuilder();
+ result.hasReallySmallInt64 = false;
+ result.reallySmallInt64_ = -9223372036854775808L;
+ return this;
+ }
+
+ public bool HasUtf8String {
+ get { return result.hasUtf8String; }
+ }
+ public string Utf8String {
+ get { return result.Utf8String; }
+ set { SetUtf8String(value); }
+ }
+ public Builder SetUtf8String(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasUtf8String = true;
+ result.utf8String_ = value;
+ return this;
+ }
+ public Builder ClearUtf8String() {
+ PrepareBuilder();
+ result.hasUtf8String = false;
+ result.utf8String_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[7].DefaultValue;
+ return this;
+ }
+
+ public bool HasZeroFloat {
+ get { return result.hasZeroFloat; }
+ }
+ public float ZeroFloat {
+ get { return result.ZeroFloat; }
+ set { SetZeroFloat(value); }
+ }
+ public Builder SetZeroFloat(float value) {
+ PrepareBuilder();
+ result.hasZeroFloat = true;
+ result.zeroFloat_ = value;
+ return this;
+ }
+ public Builder ClearZeroFloat() {
+ PrepareBuilder();
+ result.hasZeroFloat = false;
+ result.zeroFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOneFloat {
+ get { return result.hasOneFloat; }
+ }
+ public float OneFloat {
+ get { return result.OneFloat; }
+ set { SetOneFloat(value); }
+ }
+ public Builder SetOneFloat(float value) {
+ PrepareBuilder();
+ result.hasOneFloat = true;
+ result.oneFloat_ = value;
+ return this;
+ }
+ public Builder ClearOneFloat() {
+ PrepareBuilder();
+ result.hasOneFloat = false;
+ result.oneFloat_ = 1F;
+ return this;
+ }
+
+ public bool HasSmallFloat {
+ get { return result.hasSmallFloat; }
+ }
+ public float SmallFloat {
+ get { return result.SmallFloat; }
+ set { SetSmallFloat(value); }
+ }
+ public Builder SetSmallFloat(float value) {
+ PrepareBuilder();
+ result.hasSmallFloat = true;
+ result.smallFloat_ = value;
+ return this;
+ }
+ public Builder ClearSmallFloat() {
+ PrepareBuilder();
+ result.hasSmallFloat = false;
+ result.smallFloat_ = 1.5F;
+ return this;
+ }
+
+ public bool HasNegativeOneFloat {
+ get { return result.hasNegativeOneFloat; }
+ }
+ public float NegativeOneFloat {
+ get { return result.NegativeOneFloat; }
+ set { SetNegativeOneFloat(value); }
+ }
+ public Builder SetNegativeOneFloat(float value) {
+ PrepareBuilder();
+ result.hasNegativeOneFloat = true;
+ result.negativeOneFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegativeOneFloat() {
+ PrepareBuilder();
+ result.hasNegativeOneFloat = false;
+ result.negativeOneFloat_ = -1F;
+ return this;
+ }
+
+ public bool HasNegativeFloat {
+ get { return result.hasNegativeFloat; }
+ }
+ public float NegativeFloat {
+ get { return result.NegativeFloat; }
+ set { SetNegativeFloat(value); }
+ }
+ public Builder SetNegativeFloat(float value) {
+ PrepareBuilder();
+ result.hasNegativeFloat = true;
+ result.negativeFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegativeFloat() {
+ PrepareBuilder();
+ result.hasNegativeFloat = false;
+ result.negativeFloat_ = -1.5F;
+ return this;
+ }
+
+ public bool HasLargeFloat {
+ get { return result.hasLargeFloat; }
+ }
+ public float LargeFloat {
+ get { return result.LargeFloat; }
+ set { SetLargeFloat(value); }
+ }
+ public Builder SetLargeFloat(float value) {
+ PrepareBuilder();
+ result.hasLargeFloat = true;
+ result.largeFloat_ = value;
+ return this;
+ }
+ public Builder ClearLargeFloat() {
+ PrepareBuilder();
+ result.hasLargeFloat = false;
+ result.largeFloat_ = 2e+08F;
+ return this;
+ }
+
+ public bool HasSmallNegativeFloat {
+ get { return result.hasSmallNegativeFloat; }
+ }
+ public float SmallNegativeFloat {
+ get { return result.SmallNegativeFloat; }
+ set { SetSmallNegativeFloat(value); }
+ }
+ public Builder SetSmallNegativeFloat(float value) {
+ PrepareBuilder();
+ result.hasSmallNegativeFloat = true;
+ result.smallNegativeFloat_ = value;
+ return this;
+ }
+ public Builder ClearSmallNegativeFloat() {
+ PrepareBuilder();
+ result.hasSmallNegativeFloat = false;
+ result.smallNegativeFloat_ = -8e-28F;
+ return this;
+ }
+
+ public bool HasInfDouble {
+ get { return result.hasInfDouble; }
+ }
+ public double InfDouble {
+ get { return result.InfDouble; }
+ set { SetInfDouble(value); }
+ }
+ public Builder SetInfDouble(double value) {
+ PrepareBuilder();
+ result.hasInfDouble = true;
+ result.infDouble_ = value;
+ return this;
+ }
+ public Builder ClearInfDouble() {
+ PrepareBuilder();
+ result.hasInfDouble = false;
+ result.infDouble_ = double.PositiveInfinity;
+ return this;
+ }
+
+ public bool HasNegInfDouble {
+ get { return result.hasNegInfDouble; }
+ }
+ public double NegInfDouble {
+ get { return result.NegInfDouble; }
+ set { SetNegInfDouble(value); }
+ }
+ public Builder SetNegInfDouble(double value) {
+ PrepareBuilder();
+ result.hasNegInfDouble = true;
+ result.negInfDouble_ = value;
+ return this;
+ }
+ public Builder ClearNegInfDouble() {
+ PrepareBuilder();
+ result.hasNegInfDouble = false;
+ result.negInfDouble_ = double.NegativeInfinity;
+ return this;
+ }
+
+ public bool HasNanDouble {
+ get { return result.hasNanDouble; }
+ }
+ public double NanDouble {
+ get { return result.NanDouble; }
+ set { SetNanDouble(value); }
+ }
+ public Builder SetNanDouble(double value) {
+ PrepareBuilder();
+ result.hasNanDouble = true;
+ result.nanDouble_ = value;
+ return this;
+ }
+ public Builder ClearNanDouble() {
+ PrepareBuilder();
+ result.hasNanDouble = false;
+ result.nanDouble_ = double.NaN;
+ return this;
+ }
+
+ public bool HasInfFloat {
+ get { return result.hasInfFloat; }
+ }
+ public float InfFloat {
+ get { return result.InfFloat; }
+ set { SetInfFloat(value); }
+ }
+ public Builder SetInfFloat(float value) {
+ PrepareBuilder();
+ result.hasInfFloat = true;
+ result.infFloat_ = value;
+ return this;
+ }
+ public Builder ClearInfFloat() {
+ PrepareBuilder();
+ result.hasInfFloat = false;
+ result.infFloat_ = float.PositiveInfinity;
+ return this;
+ }
+
+ public bool HasNegInfFloat {
+ get { return result.hasNegInfFloat; }
+ }
+ public float NegInfFloat {
+ get { return result.NegInfFloat; }
+ set { SetNegInfFloat(value); }
+ }
+ public Builder SetNegInfFloat(float value) {
+ PrepareBuilder();
+ result.hasNegInfFloat = true;
+ result.negInfFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegInfFloat() {
+ PrepareBuilder();
+ result.hasNegInfFloat = false;
+ result.negInfFloat_ = float.NegativeInfinity;
+ return this;
+ }
+
+ public bool HasNanFloat {
+ get { return result.hasNanFloat; }
+ }
+ public float NanFloat {
+ get { return result.NanFloat; }
+ set { SetNanFloat(value); }
+ }
+ public Builder SetNanFloat(float value) {
+ PrepareBuilder();
+ result.hasNanFloat = true;
+ result.nanFloat_ = value;
+ return this;
+ }
+ public Builder ClearNanFloat() {
+ PrepareBuilder();
+ result.hasNanFloat = false;
+ result.nanFloat_ = float.NaN;
+ return this;
+ }
+
+ public bool HasCppTrigraph {
+ get { return result.hasCppTrigraph; }
+ }
+ public string CppTrigraph {
+ get { return result.CppTrigraph; }
+ set { SetCppTrigraph(value); }
+ }
+ public Builder SetCppTrigraph(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCppTrigraph = true;
+ result.cppTrigraph_ = value;
+ return this;
+ }
+ public Builder ClearCppTrigraph() {
+ PrepareBuilder();
+ result.hasCppTrigraph = false;
+ result.cppTrigraph_ = "? ? ?? ?? ??? ??/ ??-";
+ return this;
+ }
+
+ public bool HasStringWithZero {
+ get { return result.hasStringWithZero; }
+ }
+ public string StringWithZero {
+ get { return result.StringWithZero; }
+ set { SetStringWithZero(value); }
+ }
+ public Builder SetStringWithZero(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringWithZero = true;
+ result.stringWithZero_ = value;
+ return this;
+ }
+ public Builder ClearStringWithZero() {
+ PrepareBuilder();
+ result.hasStringWithZero = false;
+ result.stringWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[22].DefaultValue;
+ return this;
+ }
+
+ public bool HasBytesWithZero {
+ get { return result.hasBytesWithZero; }
+ }
+ public pb::ByteString BytesWithZero {
+ get { return result.BytesWithZero; }
+ set { SetBytesWithZero(value); }
+ }
+ public Builder SetBytesWithZero(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBytesWithZero = true;
+ result.bytesWithZero_ = value;
+ return this;
+ }
+ public Builder ClearBytesWithZero() {
+ PrepareBuilder();
+ result.hasBytesWithZero = false;
+ result.bytesWithZero_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[23].DefaultValue;
+ return this;
+ }
+
+ public bool HasStringPieceWithZero {
+ get { return result.hasStringPieceWithZero; }
+ }
+ public string StringPieceWithZero {
+ get { return result.StringPieceWithZero; }
+ set { SetStringPieceWithZero(value); }
+ }
+ public Builder SetStringPieceWithZero(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringPieceWithZero = true;
+ result.stringPieceWithZero_ = value;
+ return this;
+ }
+ public Builder ClearStringPieceWithZero() {
+ PrepareBuilder();
+ result.hasStringPieceWithZero = false;
+ result.stringPieceWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[24].DefaultValue;
+ return this;
+ }
+
+ public bool HasCordWithZero {
+ get { return result.hasCordWithZero; }
+ }
+ public string CordWithZero {
+ get { return result.CordWithZero; }
+ set { SetCordWithZero(value); }
+ }
+ public Builder SetCordWithZero(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCordWithZero = true;
+ result.cordWithZero_ = value;
+ return this;
+ }
+ public Builder ClearCordWithZero() {
+ PrepareBuilder();
+ result.hasCordWithZero = false;
+ result.cordWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[25].DefaultValue;
+ return this;
+ }
+
+ public bool HasReplacementString {
+ get { return result.hasReplacementString; }
+ }
+ public string ReplacementString {
+ get { return result.ReplacementString; }
+ set { SetReplacementString(value); }
+ }
+ public Builder SetReplacementString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasReplacementString = true;
+ result.replacementString_ = value;
+ return this;
+ }
+ public Builder ClearReplacementString() {
+ PrepareBuilder();
+ result.hasReplacementString = false;
+ result.replacementString_ = "${unknown}";
+ return this;
+ }
+ }
+ static TestExtremeDefaultValues() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SparseEnumMessage : pb::GeneratedMessage<SparseEnumMessage, SparseEnumMessage.Builder> {
+ private SparseEnumMessage() { }
+ private static readonly SparseEnumMessage defaultInstance = new SparseEnumMessage().MakeReadOnly();
+ private static readonly string[] _sparseEnumMessageFieldNames = new string[] { "sparse_enum" };
+ private static readonly uint[] _sparseEnumMessageFieldTags = new uint[] { 8 };
+ public static SparseEnumMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SparseEnumMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SparseEnumMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_SparseEnumMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SparseEnumMessage, SparseEnumMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable; }
+ }
+
+ public const int SparseEnumFieldNumber = 1;
+ private bool hasSparseEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestSparseEnum sparseEnum_ = global::Google.ProtocolBuffers.TestProtos.TestSparseEnum.SPARSE_A;
+ public bool HasSparseEnum {
+ get { return hasSparseEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestSparseEnum SparseEnum {
+ get { return sparseEnum_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _sparseEnumMessageFieldNames;
+ if (hasSparseEnum) {
+ output.WriteEnum(1, field_names[0], (int) SparseEnum, SparseEnum);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSparseEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(1, (int) SparseEnum);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SparseEnumMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SparseEnumMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SparseEnumMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SparseEnumMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SparseEnumMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SparseEnumMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SparseEnumMessage result;
+
+ private SparseEnumMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SparseEnumMessage original = result;
+ result = new SparseEnumMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SparseEnumMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.Descriptor; }
+ }
+
+ public override SparseEnumMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.DefaultInstance; }
+ }
+
+ public override SparseEnumMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SparseEnumMessage) {
+ return MergeFrom((SparseEnumMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SparseEnumMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasSparseEnum) {
+ SparseEnum = other.SparseEnum;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_sparseEnumMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _sparseEnumMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ object unknown;
+ if(input.ReadEnum(ref result.sparseEnum_, out unknown)) {
+ result.hasSparseEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(1, (ulong)(int)unknown);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasSparseEnum {
+ get { return result.hasSparseEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestSparseEnum SparseEnum {
+ get { return result.SparseEnum; }
+ set { SetSparseEnum(value); }
+ }
+ public Builder SetSparseEnum(global::Google.ProtocolBuffers.TestProtos.TestSparseEnum value) {
+ PrepareBuilder();
+ result.hasSparseEnum = true;
+ result.sparseEnum_ = value;
+ return this;
+ }
+ public Builder ClearSparseEnum() {
+ PrepareBuilder();
+ result.hasSparseEnum = false;
+ result.sparseEnum_ = global::Google.ProtocolBuffers.TestProtos.TestSparseEnum.SPARSE_A;
+ return this;
+ }
+ }
+ static SparseEnumMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OneString : pb::GeneratedMessage<OneString, OneString.Builder> {
+ private OneString() { }
+ private static readonly OneString defaultInstance = new OneString().MakeReadOnly();
+ private static readonly string[] _oneStringFieldNames = new string[] { "data" };
+ private static readonly uint[] _oneStringFieldTags = new uint[] { 10 };
+ public static OneString DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneString DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OneString ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneString__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneString, OneString.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneString__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private string data_ = "";
+ public bool HasData {
+ get { return hasData; }
+ }
+ public string Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _oneStringFieldNames;
+ if (hasData) {
+ output.WriteString(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OneString ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneString ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneString ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneString ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OneString MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneString prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OneString, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OneString cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OneString result;
+
+ private OneString PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OneString original = result;
+ result = new OneString();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OneString MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneString.Descriptor; }
+ }
+
+ public override OneString DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneString.DefaultInstance; }
+ }
+
+ public override OneString BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneString) {
+ return MergeFrom((OneString) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneString other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OneString.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_oneStringFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _oneStringFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasData = input.ReadString(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public string Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = "";
+ return this;
+ }
+ }
+ static OneString() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MoreString : pb::GeneratedMessage<MoreString, MoreString.Builder> {
+ private MoreString() { }
+ private static readonly MoreString defaultInstance = new MoreString().MakeReadOnly();
+ private static readonly string[] _moreStringFieldNames = new string[] { "data" };
+ private static readonly uint[] _moreStringFieldTags = new uint[] { 10 };
+ public static MoreString DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MoreString DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MoreString ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreString__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MoreString, MoreString.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreString__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private pbc::PopsicleList<string> data_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> DataList {
+ get { return pbc::Lists.AsReadOnly(data_); }
+ }
+ public int DataCount {
+ get { return data_.Count; }
+ }
+ public string GetData(int index) {
+ return data_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _moreStringFieldNames;
+ if (data_.Count > 0) {
+ output.WriteStringArray(1, field_names[0], data_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (string element in DataList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * data_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MoreString ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreString ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreString ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreString ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreString ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreString ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MoreString ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MoreString ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MoreString ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreString ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MoreString MakeReadOnly() {
+ data_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MoreString prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<MoreString, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MoreString cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MoreString result;
+
+ private MoreString PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MoreString original = result;
+ result = new MoreString();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MoreString MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreString.Descriptor; }
+ }
+
+ public override MoreString DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreString.DefaultInstance; }
+ }
+
+ public override MoreString BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MoreString) {
+ return MergeFrom((MoreString) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MoreString other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.MoreString.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.data_.Count != 0) {
+ result.data_.Add(other.data_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_moreStringFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _moreStringFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadStringArray(tag, field_name, result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<string> DataList {
+ get { return PrepareBuilder().data_; }
+ }
+ public int DataCount {
+ get { return result.DataCount; }
+ }
+ public string GetData(int index) {
+ return result.GetData(index);
+ }
+ public Builder SetData(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_[index] = value;
+ return this;
+ }
+ public Builder AddData(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_.Add(value);
+ return this;
+ }
+ public Builder AddRangeData(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.data_.Add(values);
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.data_.Clear();
+ return this;
+ }
+ }
+ static MoreString() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OneBytes : pb::GeneratedMessage<OneBytes, OneBytes.Builder> {
+ private OneBytes() { }
+ private static readonly OneBytes defaultInstance = new OneBytes().MakeReadOnly();
+ private static readonly string[] _oneBytesFieldNames = new string[] { "data" };
+ private static readonly uint[] _oneBytesFieldTags = new uint[] { 10 };
+ public static OneBytes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneBytes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OneBytes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneBytes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneBytes, OneBytes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneBytes__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private pb::ByteString data_ = pb::ByteString.Empty;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public pb::ByteString Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _oneBytesFieldNames;
+ if (hasData) {
+ output.WriteBytes(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OneBytes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneBytes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OneBytes MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneBytes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OneBytes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OneBytes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OneBytes result;
+
+ private OneBytes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OneBytes original = result;
+ result = new OneBytes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OneBytes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneBytes.Descriptor; }
+ }
+
+ public override OneBytes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneBytes.DefaultInstance; }
+ }
+
+ public override OneBytes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneBytes) {
+ return MergeFrom((OneBytes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneBytes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OneBytes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_oneBytesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _oneBytesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasData = input.ReadBytes(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public pb::ByteString Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static OneBytes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MoreBytes : pb::GeneratedMessage<MoreBytes, MoreBytes.Builder> {
+ private MoreBytes() { }
+ private static readonly MoreBytes defaultInstance = new MoreBytes().MakeReadOnly();
+ private static readonly string[] _moreBytesFieldNames = new string[] { "data" };
+ private static readonly uint[] _moreBytesFieldTags = new uint[] { 10 };
+ public static MoreBytes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MoreBytes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MoreBytes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreBytes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MoreBytes, MoreBytes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private pbc::PopsicleList<pb::ByteString> data_ = new pbc::PopsicleList<pb::ByteString>();
+ public scg::IList<pb::ByteString> DataList {
+ get { return pbc::Lists.AsReadOnly(data_); }
+ }
+ public int DataCount {
+ get { return data_.Count; }
+ }
+ public pb::ByteString GetData(int index) {
+ return data_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _moreBytesFieldNames;
+ if (data_.Count > 0) {
+ output.WriteBytesArray(1, field_names[0], data_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (pb::ByteString element in DataList) {
+ dataSize += pb::CodedOutputStream.ComputeBytesSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * data_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MoreBytes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MoreBytes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MoreBytes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MoreBytes MakeReadOnly() {
+ data_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MoreBytes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<MoreBytes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MoreBytes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MoreBytes result;
+
+ private MoreBytes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MoreBytes original = result;
+ result = new MoreBytes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MoreBytes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreBytes.Descriptor; }
+ }
+
+ public override MoreBytes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreBytes.DefaultInstance; }
+ }
+
+ public override MoreBytes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MoreBytes) {
+ return MergeFrom((MoreBytes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MoreBytes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.MoreBytes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.data_.Count != 0) {
+ result.data_.Add(other.data_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_moreBytesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _moreBytesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadBytesArray(tag, field_name, result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<pb::ByteString> DataList {
+ get { return PrepareBuilder().data_; }
+ }
+ public int DataCount {
+ get { return result.DataCount; }
+ }
+ public pb::ByteString GetData(int index) {
+ return result.GetData(index);
+ }
+ public Builder SetData(int index, pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_[index] = value;
+ return this;
+ }
+ public Builder AddData(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_.Add(value);
+ return this;
+ }
+ public Builder AddRangeData(scg::IEnumerable<pb::ByteString> values) {
+ PrepareBuilder();
+ result.data_.Add(values);
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.data_.Clear();
+ return this;
+ }
+ }
+ static MoreBytes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Int32Message : pb::GeneratedMessage<Int32Message, Int32Message.Builder> {
+ private Int32Message() { }
+ private static readonly Int32Message defaultInstance = new Int32Message().MakeReadOnly();
+ private static readonly string[] _int32MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _int32MessageFieldTags = new uint[] { 8 };
+ public static Int32Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Int32Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Int32Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int32Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Int32Message, Int32Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int32Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private int data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public int Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _int32MessageFieldNames;
+ if (hasData) {
+ output.WriteInt32(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Int32Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Int32Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Int32Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Int32Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Int32Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Int32Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Int32Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Int32Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Int32Message result;
+
+ private Int32Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Int32Message original = result;
+ result = new Int32Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Int32Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int32Message.Descriptor; }
+ }
+
+ public override Int32Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int32Message.DefaultInstance; }
+ }
+
+ public override Int32Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Int32Message) {
+ return MergeFrom((Int32Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Int32Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Int32Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_int32MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _int32MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadInt32(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public int Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(int value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0;
+ return this;
+ }
+ }
+ static Int32Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Uint32Message : pb::GeneratedMessage<Uint32Message, Uint32Message.Builder> {
+ private Uint32Message() { }
+ private static readonly Uint32Message defaultInstance = new Uint32Message().MakeReadOnly();
+ private static readonly string[] _uint32MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _uint32MessageFieldTags = new uint[] { 8 };
+ public static Uint32Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Uint32Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Uint32Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint32Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Uint32Message, Uint32Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private uint data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public uint Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _uint32MessageFieldNames;
+ if (hasData) {
+ output.WriteUInt32(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Uint32Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Uint32Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Uint32Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Uint32Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Uint32Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Uint32Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Uint32Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Uint32Message result;
+
+ private Uint32Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Uint32Message original = result;
+ result = new Uint32Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Uint32Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint32Message.Descriptor; }
+ }
+
+ public override Uint32Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint32Message.DefaultInstance; }
+ }
+
+ public override Uint32Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Uint32Message) {
+ return MergeFrom((Uint32Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Uint32Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Uint32Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_uint32MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _uint32MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadUInt32(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public uint Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(uint value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0;
+ return this;
+ }
+ }
+ static Uint32Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Int64Message : pb::GeneratedMessage<Int64Message, Int64Message.Builder> {
+ private Int64Message() { }
+ private static readonly Int64Message defaultInstance = new Int64Message().MakeReadOnly();
+ private static readonly string[] _int64MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _int64MessageFieldTags = new uint[] { 8 };
+ public static Int64Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Int64Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Int64Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int64Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Int64Message, Int64Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int64Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private long data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public long Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _int64MessageFieldNames;
+ if (hasData) {
+ output.WriteInt64(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeInt64Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Int64Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Int64Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Int64Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Int64Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Int64Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Int64Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Int64Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Int64Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Int64Message result;
+
+ private Int64Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Int64Message original = result;
+ result = new Int64Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Int64Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int64Message.Descriptor; }
+ }
+
+ public override Int64Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int64Message.DefaultInstance; }
+ }
+
+ public override Int64Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Int64Message) {
+ return MergeFrom((Int64Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Int64Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Int64Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_int64MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _int64MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadInt64(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public long Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(long value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0L;
+ return this;
+ }
+ }
+ static Int64Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Uint64Message : pb::GeneratedMessage<Uint64Message, Uint64Message.Builder> {
+ private Uint64Message() { }
+ private static readonly Uint64Message defaultInstance = new Uint64Message().MakeReadOnly();
+ private static readonly string[] _uint64MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _uint64MessageFieldTags = new uint[] { 8 };
+ public static Uint64Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Uint64Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Uint64Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint64Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Uint64Message, Uint64Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private ulong data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public ulong Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _uint64MessageFieldNames;
+ if (hasData) {
+ output.WriteUInt64(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Uint64Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Uint64Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Uint64Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Uint64Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Uint64Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Uint64Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Uint64Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Uint64Message result;
+
+ private Uint64Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Uint64Message original = result;
+ result = new Uint64Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Uint64Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint64Message.Descriptor; }
+ }
+
+ public override Uint64Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint64Message.DefaultInstance; }
+ }
+
+ public override Uint64Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Uint64Message) {
+ return MergeFrom((Uint64Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Uint64Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Uint64Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_uint64MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _uint64MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadUInt64(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public ulong Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(ulong value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0UL;
+ return this;
+ }
+ }
+ static Uint64Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BoolMessage : pb::GeneratedMessage<BoolMessage, BoolMessage.Builder> {
+ private BoolMessage() { }
+ private static readonly BoolMessage defaultInstance = new BoolMessage().MakeReadOnly();
+ private static readonly string[] _boolMessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _boolMessageFieldTags = new uint[] { 8 };
+ public static BoolMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BoolMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BoolMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BoolMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BoolMessage, BoolMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private bool data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public bool Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _boolMessageFieldNames;
+ if (hasData) {
+ output.WriteBool(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeBoolSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static BoolMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BoolMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BoolMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BoolMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BoolMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<BoolMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BoolMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BoolMessage result;
+
+ private BoolMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BoolMessage original = result;
+ result = new BoolMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BoolMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BoolMessage.Descriptor; }
+ }
+
+ public override BoolMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BoolMessage.DefaultInstance; }
+ }
+
+ public override BoolMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BoolMessage) {
+ return MergeFrom((BoolMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BoolMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BoolMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_boolMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _boolMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadBool(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public bool Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(bool value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = false;
+ return this;
+ }
+ }
+ static BoolMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOneof : pb::GeneratedMessage<TestOneof, TestOneof.Builder> {
+ private TestOneof() { }
+ private static readonly TestOneof defaultInstance = new TestOneof().MakeReadOnly();
+ private static readonly string[] _testOneofFieldNames = new string[] { "foo_int", "foo_message", "foo_string", "foogroup" };
+ private static readonly uint[] _testOneofFieldTags = new uint[] { 8, 26, 18, 35 };
+ public static TestOneof DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOneof DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOneof ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOneof, TestOneof.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooGroup : pb::GeneratedMessage<FooGroup, FooGroup.Builder> {
+ private FooGroup() { }
+ private static readonly FooGroup defaultInstance = new FooGroup().MakeReadOnly();
+ private static readonly string[] _fooGroupFieldNames = new string[] { "a", "b" };
+ private static readonly uint[] _fooGroupFieldTags = new uint[] { 40, 50 };
+ public static FooGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooGroup, FooGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof_FooGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 5;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BFieldNumber = 6;
+ private bool hasB;
+ private string b_ = "";
+ public bool HasB {
+ get { return hasB; }
+ }
+ public string B {
+ get { return b_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(5, field_names[0], A);
+ }
+ if (hasB) {
+ output.WriteString(6, field_names[1], B);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, A);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, B);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooGroup result;
+
+ private FooGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooGroup original = result;
+ result = new FooGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Descriptor; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override FooGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooGroup) {
+ return MergeFrom((FooGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 40: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 50: {
+ result.hasB = input.ReadString(ref result.b_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public string B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = "";
+ return this;
+ }
+ }
+ static FooGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ private object foo_;
+ public enum FooOneofCase {
+ FooInt = 1,
+ FooString = 2,
+ FooMessage = 3,
+ FooGroup = 4,
+ None = 0,
+ }
+ private FooOneofCase fooCase_ = FooOneofCase.None;
+ public FooOneofCase FooCase {
+ get { return fooCase_; }
+ }
+
+ public const int FooIntFieldNumber = 1;
+ public bool HasFooInt {
+ get { return fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return fooCase_ == FooOneofCase.FooInt ? (int) foo_ : 0; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ public bool HasFooString {
+ get { return fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return fooCase_ == FooOneofCase.FooString ? (string) foo_ : ""; }
+ }
+
+ public const int FooMessageFieldNumber = 3;
+ public bool HasFooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestAllTypes) foo_ : global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int FooGroupFieldNumber = 4;
+ public bool HasFooGroup {
+ get { return fooCase_ == FooOneofCase.FooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup FooGroup {
+ get { return fooCase_ == FooOneofCase.FooGroup ? (global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup) foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testOneofFieldNames;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ output.WriteInt32(1, field_names[0], FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ output.WriteString(2, field_names[2], FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ output.WriteMessage(3, field_names[1], FooMessage);
+ }
+ if (fooCase_ == FooOneofCase.FooGroup) {
+ output.WriteGroup(4, field_names[3], FooGroup);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, FooMessage);
+ }
+ if (fooCase_ == FooOneofCase.FooGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(4, FooGroup);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestOneof ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOneof ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOneof ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOneof MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOneof prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestOneof, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOneof cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOneof result;
+
+ private TestOneof PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOneof original = result;
+ result = new TestOneof();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOneof MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.Descriptor; }
+ }
+
+ public override TestOneof DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.DefaultInstance; }
+ }
+
+ public override TestOneof BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestOneof) {
+ return MergeFrom((TestOneof) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestOneof other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof.DefaultInstance) return this;
+ PrepareBuilder();
+ switch (other.FooCase) {
+ case FooOneofCase.FooInt: {
+ SetFooInt(other.FooInt);
+ break;
+ }
+ case FooOneofCase.FooString: {
+ SetFooString(other.FooString);
+ break;
+ }
+ case FooOneofCase.FooMessage: {
+ MergeFooMessage(other.FooMessage);
+ break;
+ }
+ case FooOneofCase.FooGroup: {
+ MergeFooGroup(other.FooGroup);
+ break;
+ }
+ case FooOneofCase.None: { break; }
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testOneofFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testOneofFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ int value = 0;
+ if (input.ReadInt32(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ }
+ break;
+ }
+ case 18: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ }
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ break;
+ }
+ case 35: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooGroup) {
+ subBuilder.MergeFrom(FooGroup);
+ }
+ input.ReadGroup(4, subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt ? (int) result.foo_ : 0; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooInt) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return result.fooCase_ == FooOneofCase.FooString ? (string) result.foo_ : ""; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooString) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestAllTypes) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage &&
+ result.FooMessage != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.FooMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooMessage;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public bool HasFooGroup {
+ get { return result.fooCase_ == FooOneofCase.FooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup FooGroup {
+ get { return result.fooCase_ == FooOneofCase.FooGroup ? (global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance; }
+ set { SetFooGroup(value); }
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooGroup &&
+ result.FooGroup != global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.CreateBuilder(result.FooGroup).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooGroup;
+ return this;
+ }
+ public Builder ClearFooGroup() {
+ if (result.fooCase_ == FooOneofCase.FooGroup) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public FooOneofCase FooCase {
+ get { return result.fooCase_; }
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.foo_ = null;
+ result.fooCase_ = FooOneofCase.None;
+ return this;
+ }
+ }
+ static TestOneof() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOneofBackwardsCompatible : pb::GeneratedMessage<TestOneofBackwardsCompatible, TestOneofBackwardsCompatible.Builder> {
+ private TestOneofBackwardsCompatible() { }
+ private static readonly TestOneofBackwardsCompatible defaultInstance = new TestOneofBackwardsCompatible().MakeReadOnly();
+ private static readonly string[] _testOneofBackwardsCompatibleFieldNames = new string[] { "foo_int", "foo_message", "foo_string", "foogroup" };
+ private static readonly uint[] _testOneofBackwardsCompatibleFieldTags = new uint[] { 8, 26, 18, 35 };
+ public static TestOneofBackwardsCompatible DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOneofBackwardsCompatible DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOneofBackwardsCompatible ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOneofBackwardsCompatible, TestOneofBackwardsCompatible.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooGroup : pb::GeneratedMessage<FooGroup, FooGroup.Builder> {
+ private FooGroup() { }
+ private static readonly FooGroup defaultInstance = new FooGroup().MakeReadOnly();
+ private static readonly string[] _fooGroupFieldNames = new string[] { "a", "b" };
+ private static readonly uint[] _fooGroupFieldTags = new uint[] { 40, 50 };
+ public static FooGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooGroup, FooGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 5;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BFieldNumber = 6;
+ private bool hasB;
+ private string b_ = "";
+ public bool HasB {
+ get { return hasB; }
+ }
+ public string B {
+ get { return b_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(5, field_names[0], A);
+ }
+ if (hasB) {
+ output.WriteString(6, field_names[1], B);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, A);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, B);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooGroup result;
+
+ private FooGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooGroup original = result;
+ result = new FooGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Descriptor; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override FooGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooGroup) {
+ return MergeFrom((FooGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 40: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 50: {
+ result.hasB = input.ReadString(ref result.b_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public string B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = "";
+ return this;
+ }
+ }
+ static FooGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int FooIntFieldNumber = 1;
+ private bool hasFooInt;
+ private int fooInt_;
+ public bool HasFooInt {
+ get { return hasFooInt; }
+ }
+ public int FooInt {
+ get { return fooInt_; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ private bool hasFooString;
+ private string fooString_ = "";
+ public bool HasFooString {
+ get { return hasFooString; }
+ }
+ public string FooString {
+ get { return fooString_; }
+ }
+
+ public const int FooMessageFieldNumber = 3;
+ private bool hasFooMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes fooMessage_;
+ public bool HasFooMessage {
+ get { return hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return fooMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int FooGroupFieldNumber = 4;
+ private bool hasFooGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup fooGroup_;
+ public bool HasFooGroup {
+ get { return hasFooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup FooGroup {
+ get { return fooGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testOneofBackwardsCompatibleFieldNames;
+ if (hasFooInt) {
+ output.WriteInt32(1, field_names[0], FooInt);
+ }
+ if (hasFooString) {
+ output.WriteString(2, field_names[2], FooString);
+ }
+ if (hasFooMessage) {
+ output.WriteMessage(3, field_names[1], FooMessage);
+ }
+ if (hasFooGroup) {
+ output.WriteGroup(4, field_names[3], FooGroup);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasFooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (hasFooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (hasFooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, FooMessage);
+ }
+ if (hasFooGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(4, FooGroup);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOneofBackwardsCompatible MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOneofBackwardsCompatible prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestOneofBackwardsCompatible, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOneofBackwardsCompatible cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOneofBackwardsCompatible result;
+
+ private TestOneofBackwardsCompatible PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOneofBackwardsCompatible original = result;
+ result = new TestOneofBackwardsCompatible();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOneofBackwardsCompatible MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Descriptor; }
+ }
+
+ public override TestOneofBackwardsCompatible DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.DefaultInstance; }
+ }
+
+ public override TestOneofBackwardsCompatible BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestOneofBackwardsCompatible) {
+ return MergeFrom((TestOneofBackwardsCompatible) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestOneofBackwardsCompatible other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasFooInt) {
+ FooInt = other.FooInt;
+ }
+ if (other.HasFooString) {
+ FooString = other.FooString;
+ }
+ if (other.HasFooMessage) {
+ MergeFooMessage(other.FooMessage);
+ }
+ if (other.HasFooGroup) {
+ MergeFooGroup(other.FooGroup);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testOneofBackwardsCompatibleFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testOneofBackwardsCompatibleFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasFooInt = input.ReadInt32(ref result.fooInt_);
+ break;
+ }
+ case 18: {
+ result.hasFooString = input.ReadString(ref result.fooString_);
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasFooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ FooMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 35: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.CreateBuilder();
+ if (result.hasFooGroup) {
+ subBuilder.MergeFrom(FooGroup);
+ }
+ input.ReadGroup(4, subBuilder, extensionRegistry);
+ FooGroup = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.hasFooInt; }
+ }
+ public int FooInt {
+ get { return result.FooInt; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.hasFooInt = true;
+ result.fooInt_ = value;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ result.hasFooInt = false;
+ result.fooInt_ = 0;
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.hasFooString; }
+ }
+ public string FooString {
+ get { return result.FooString; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooString = true;
+ result.fooString_ = value;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ result.hasFooString = false;
+ result.fooString_ = "";
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return result.FooMessage; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooMessage &&
+ result.fooMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.fooMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.fooMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooMessage_ = value;
+ }
+ result.hasFooMessage = true;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ PrepareBuilder();
+ result.hasFooMessage = false;
+ result.fooMessage_ = null;
+ return this;
+ }
+
+ public bool HasFooGroup {
+ get { return result.hasFooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup FooGroup {
+ get { return result.FooGroup; }
+ set { SetFooGroup(value); }
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooGroup = true;
+ result.fooGroup_ = value;
+ return this;
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooGroup = true;
+ result.fooGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooGroup &&
+ result.fooGroup_ != global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance) {
+ result.fooGroup_ = global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.CreateBuilder(result.fooGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooGroup_ = value;
+ }
+ result.hasFooGroup = true;
+ return this;
+ }
+ public Builder ClearFooGroup() {
+ PrepareBuilder();
+ result.hasFooGroup = false;
+ result.fooGroup_ = null;
+ return this;
+ }
+ }
+ static TestOneofBackwardsCompatible() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOneof2 : pb::GeneratedMessage<TestOneof2, TestOneof2.Builder> {
+ private TestOneof2() { }
+ private static readonly TestOneof2 defaultInstance = new TestOneof2().MakeReadOnly();
+ private static readonly string[] _testOneof2FieldNames = new string[] { "bar_bytes", "bar_cord", "bar_enum", "bar_int", "bar_string", "bar_string_piece", "baz_int", "baz_string", "foo_bytes", "foo_cord", "foo_enum", "foo_int", "foo_lazy_message", "foo_message", "foo_string", "foo_string_piece", "foogroup" };
+ private static readonly uint[] _testOneof2FieldTags = new uint[] { 130, 114, 136, 96, 106, 122, 144, 154, 42, 26, 48, 8, 90, 58, 18, 34, 67 };
+ public static TestOneof2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOneof2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOneof2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOneof2, TestOneof2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ FOO = 1,
+ BAR = 2,
+ BAZ = 3,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooGroup : pb::GeneratedMessage<FooGroup, FooGroup.Builder> {
+ private FooGroup() { }
+ private static readonly FooGroup defaultInstance = new FooGroup().MakeReadOnly();
+ private static readonly string[] _fooGroupFieldNames = new string[] { "a", "b" };
+ private static readonly uint[] _fooGroupFieldTags = new uint[] { 72, 82 };
+ public static FooGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooGroup, FooGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_FooGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 9;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BFieldNumber = 10;
+ private bool hasB;
+ private string b_ = "";
+ public bool HasB {
+ get { return hasB; }
+ }
+ public string B {
+ get { return b_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(9, field_names[0], A);
+ }
+ if (hasB) {
+ output.WriteString(10, field_names[1], B);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(9, A);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeStringSize(10, B);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooGroup result;
+
+ private FooGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooGroup original = result;
+ result = new FooGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Descriptor; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override FooGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooGroup) {
+ return MergeFrom((FooGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 72: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 82: {
+ result.hasB = input.ReadString(ref result.b_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public string B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = "";
+ return this;
+ }
+ }
+ static FooGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "corge_int", "qux_int" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 16, 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int QuxIntFieldNumber = 1;
+ private bool hasQuxInt;
+ private long quxInt_;
+ public bool HasQuxInt {
+ get { return hasQuxInt; }
+ }
+ public long QuxInt {
+ get { return quxInt_; }
+ }
+
+ public const int CorgeIntFieldNumber = 2;
+ private pbc::PopsicleList<int> corgeInt_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> CorgeIntList {
+ get { return pbc::Lists.AsReadOnly(corgeInt_); }
+ }
+ public int CorgeIntCount {
+ get { return corgeInt_.Count; }
+ }
+ public int GetCorgeInt(int index) {
+ return corgeInt_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasQuxInt) {
+ output.WriteInt64(1, field_names[1], QuxInt);
+ }
+ if (corgeInt_.Count > 0) {
+ output.WriteInt32Array(2, field_names[0], corgeInt_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasQuxInt) {
+ size += pb::CodedOutputStream.ComputeInt64Size(1, QuxInt);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in CorgeIntList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * corgeInt_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ corgeInt_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasQuxInt) {
+ QuxInt = other.QuxInt;
+ }
+ if (other.corgeInt_.Count != 0) {
+ result.corgeInt_.Add(other.corgeInt_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasQuxInt = input.ReadInt64(ref result.quxInt_);
+ break;
+ }
+ case 18:
+ case 16: {
+ input.ReadInt32Array(tag, field_name, result.corgeInt_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasQuxInt {
+ get { return result.hasQuxInt; }
+ }
+ public long QuxInt {
+ get { return result.QuxInt; }
+ set { SetQuxInt(value); }
+ }
+ public Builder SetQuxInt(long value) {
+ PrepareBuilder();
+ result.hasQuxInt = true;
+ result.quxInt_ = value;
+ return this;
+ }
+ public Builder ClearQuxInt() {
+ PrepareBuilder();
+ result.hasQuxInt = false;
+ result.quxInt_ = 0L;
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> CorgeIntList {
+ get { return PrepareBuilder().corgeInt_; }
+ }
+ public int CorgeIntCount {
+ get { return result.CorgeIntCount; }
+ }
+ public int GetCorgeInt(int index) {
+ return result.GetCorgeInt(index);
+ }
+ public Builder SetCorgeInt(int index, int value) {
+ PrepareBuilder();
+ result.corgeInt_[index] = value;
+ return this;
+ }
+ public Builder AddCorgeInt(int value) {
+ PrepareBuilder();
+ result.corgeInt_.Add(value);
+ return this;
+ }
+ public Builder AddRangeCorgeInt(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.corgeInt_.Add(values);
+ return this;
+ }
+ public Builder ClearCorgeInt() {
+ PrepareBuilder();
+ result.corgeInt_.Clear();
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ private object foo_;
+ public enum FooOneofCase {
+ FooInt = 1,
+ FooString = 2,
+ FooCord = 3,
+ FooStringPiece = 4,
+ FooBytes = 5,
+ FooEnum = 6,
+ FooMessage = 7,
+ FooGroup = 8,
+ FooLazyMessage = 11,
+ None = 0,
+ }
+ private FooOneofCase fooCase_ = FooOneofCase.None;
+ public FooOneofCase FooCase {
+ get { return fooCase_; }
+ }
+
+ private object bar_;
+ public enum BarOneofCase {
+ BarInt = 12,
+ BarString = 13,
+ BarCord = 14,
+ BarStringPiece = 15,
+ BarBytes = 16,
+ BarEnum = 17,
+ None = 0,
+ }
+ private BarOneofCase barCase_ = BarOneofCase.None;
+ public BarOneofCase BarCase {
+ get { return barCase_; }
+ }
+
+ public const int FooIntFieldNumber = 1;
+ public bool HasFooInt {
+ get { return fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return fooCase_ == FooOneofCase.FooInt ? (int) foo_ : 0; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ public bool HasFooString {
+ get { return fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return fooCase_ == FooOneofCase.FooString ? (string) foo_ : ""; }
+ }
+
+ public const int FooCordFieldNumber = 3;
+ public bool HasFooCord {
+ get { return fooCase_ == FooOneofCase.FooCord; }
+ }
+ public string FooCord {
+ get { return fooCase_ == FooOneofCase.FooCord ? (string) foo_ : ""; }
+ }
+
+ public const int FooStringPieceFieldNumber = 4;
+ public bool HasFooStringPiece {
+ get { return fooCase_ == FooOneofCase.FooStringPiece; }
+ }
+ public string FooStringPiece {
+ get { return fooCase_ == FooOneofCase.FooStringPiece ? (string) foo_ : ""; }
+ }
+
+ public const int FooBytesFieldNumber = 5;
+ public bool HasFooBytes {
+ get { return fooCase_ == FooOneofCase.FooBytes; }
+ }
+ public pb::ByteString FooBytes {
+ get { return fooCase_ == FooOneofCase.FooBytes ? (pb::ByteString) foo_ : pb::ByteString.Empty; }
+ }
+
+ public const int FooEnumFieldNumber = 6;
+ public bool HasFooEnum {
+ get { return fooCase_ == FooOneofCase.FooEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum FooEnum {
+ get { return fooCase_ == FooOneofCase.FooEnum ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum) foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.FOO; }
+ }
+
+ public const int FooMessageFieldNumber = 7;
+ public bool HasFooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage) foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int FooGroupFieldNumber = 8;
+ public bool HasFooGroup {
+ get { return fooCase_ == FooOneofCase.FooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup FooGroup {
+ get { return fooCase_ == FooOneofCase.FooGroup ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup) foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance; }
+ }
+
+ public const int FooLazyMessageFieldNumber = 11;
+ public bool HasFooLazyMessage {
+ get { return fooCase_ == FooOneofCase.FooLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooLazyMessage {
+ get { return fooCase_ == FooOneofCase.FooLazyMessage ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage) foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int BarIntFieldNumber = 12;
+ public bool HasBarInt {
+ get { return barCase_ == BarOneofCase.BarInt; }
+ }
+ public int BarInt {
+ get { return barCase_ == BarOneofCase.BarInt ? (int) bar_ : 5; }
+ }
+
+ public const int BarStringFieldNumber = 13;
+ public bool HasBarString {
+ get { return barCase_ == BarOneofCase.BarString; }
+ }
+ public string BarString {
+ get { return barCase_ == BarOneofCase.BarString ? (string) bar_ : "STRING"; }
+ }
+
+ public const int BarCordFieldNumber = 14;
+ public bool HasBarCord {
+ get { return barCase_ == BarOneofCase.BarCord; }
+ }
+ public string BarCord {
+ get { return barCase_ == BarOneofCase.BarCord ? (string) bar_ : "CORD"; }
+ }
+
+ public const int BarStringPieceFieldNumber = 15;
+ public bool HasBarStringPiece {
+ get { return barCase_ == BarOneofCase.BarStringPiece; }
+ }
+ public string BarStringPiece {
+ get { return barCase_ == BarOneofCase.BarStringPiece ? (string) bar_ : "SPIECE"; }
+ }
+
+ public const int BarBytesFieldNumber = 16;
+ public bool HasBarBytes {
+ get { return barCase_ == BarOneofCase.BarBytes; }
+ }
+ public pb::ByteString BarBytes {
+ get { return barCase_ == BarOneofCase.BarBytes ? (pb::ByteString) bar_ : (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor.Fields[13].DefaultValue; }
+ }
+
+ public const int BarEnumFieldNumber = 17;
+ public bool HasBarEnum {
+ get { return barCase_ == BarOneofCase.BarEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum BarEnum {
+ get { return barCase_ == BarOneofCase.BarEnum ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum) bar_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.BAR; }
+ }
+
+ public const int BazIntFieldNumber = 18;
+ private bool hasBazInt;
+ private int bazInt_;
+ public bool HasBazInt {
+ get { return hasBazInt; }
+ }
+ public int BazInt {
+ get { return bazInt_; }
+ }
+
+ public const int BazStringFieldNumber = 19;
+ private bool hasBazString;
+ private string bazString_ = "BAZ";
+ public bool HasBazString {
+ get { return hasBazString; }
+ }
+ public string BazString {
+ get { return bazString_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testOneof2FieldNames;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ output.WriteInt32(1, field_names[11], FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ output.WriteString(2, field_names[14], FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooCord) {
+ output.WriteString(3, field_names[9], FooCord);
+ }
+ if (fooCase_ == FooOneofCase.FooStringPiece) {
+ output.WriteString(4, field_names[15], FooStringPiece);
+ }
+ if (fooCase_ == FooOneofCase.FooBytes) {
+ output.WriteBytes(5, field_names[8], FooBytes);
+ }
+ if (fooCase_ == FooOneofCase.FooEnum) {
+ output.WriteEnum(6, field_names[10], (int) FooEnum, FooEnum);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ output.WriteMessage(7, field_names[13], FooMessage);
+ }
+ if (fooCase_ == FooOneofCase.FooGroup) {
+ output.WriteGroup(8, field_names[16], FooGroup);
+ }
+ if (fooCase_ == FooOneofCase.FooLazyMessage) {
+ output.WriteMessage(11, field_names[12], FooLazyMessage);
+ }
+ if (barCase_ == BarOneofCase.BarInt) {
+ output.WriteInt32(12, field_names[3], BarInt);
+ }
+ if (barCase_ == BarOneofCase.BarString) {
+ output.WriteString(13, field_names[4], BarString);
+ }
+ if (barCase_ == BarOneofCase.BarCord) {
+ output.WriteString(14, field_names[1], BarCord);
+ }
+ if (barCase_ == BarOneofCase.BarStringPiece) {
+ output.WriteString(15, field_names[5], BarStringPiece);
+ }
+ if (barCase_ == BarOneofCase.BarBytes) {
+ output.WriteBytes(16, field_names[0], BarBytes);
+ }
+ if (barCase_ == BarOneofCase.BarEnum) {
+ output.WriteEnum(17, field_names[2], (int) BarEnum, BarEnum);
+ }
+ if (hasBazInt) {
+ output.WriteInt32(18, field_names[6], BazInt);
+ }
+ if (hasBazString) {
+ output.WriteString(19, field_names[7], BazString);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, FooCord);
+ }
+ if (fooCase_ == FooOneofCase.FooStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(4, FooStringPiece);
+ }
+ if (fooCase_ == FooOneofCase.FooBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(5, FooBytes);
+ }
+ if (fooCase_ == FooOneofCase.FooEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(6, (int) FooEnum);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(7, FooMessage);
+ }
+ if (fooCase_ == FooOneofCase.FooGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(8, FooGroup);
+ }
+ if (fooCase_ == FooOneofCase.FooLazyMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, FooLazyMessage);
+ }
+ if (barCase_ == BarOneofCase.BarInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(12, BarInt);
+ }
+ if (barCase_ == BarOneofCase.BarString) {
+ size += pb::CodedOutputStream.ComputeStringSize(13, BarString);
+ }
+ if (barCase_ == BarOneofCase.BarCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(14, BarCord);
+ }
+ if (barCase_ == BarOneofCase.BarStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(15, BarStringPiece);
+ }
+ if (barCase_ == BarOneofCase.BarBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(16, BarBytes);
+ }
+ if (barCase_ == BarOneofCase.BarEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(17, (int) BarEnum);
+ }
+ if (hasBazInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(18, BazInt);
+ }
+ if (hasBazString) {
+ size += pb::CodedOutputStream.ComputeStringSize(19, BazString);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestOneof2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOneof2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOneof2 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOneof2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestOneof2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOneof2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOneof2 result;
+
+ private TestOneof2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOneof2 original = result;
+ result = new TestOneof2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOneof2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor; }
+ }
+
+ public override TestOneof2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.DefaultInstance; }
+ }
+
+ public override TestOneof2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestOneof2) {
+ return MergeFrom((TestOneof2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestOneof2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasBazInt) {
+ BazInt = other.BazInt;
+ }
+ if (other.HasBazString) {
+ BazString = other.BazString;
+ }
+ switch (other.FooCase) {
+ case FooOneofCase.FooInt: {
+ SetFooInt(other.FooInt);
+ break;
+ }
+ case FooOneofCase.FooString: {
+ SetFooString(other.FooString);
+ break;
+ }
+ case FooOneofCase.FooCord: {
+ SetFooCord(other.FooCord);
+ break;
+ }
+ case FooOneofCase.FooStringPiece: {
+ SetFooStringPiece(other.FooStringPiece);
+ break;
+ }
+ case FooOneofCase.FooBytes: {
+ SetFooBytes(other.FooBytes);
+ break;
+ }
+ case FooOneofCase.FooEnum: {
+ SetFooEnum(other.FooEnum);
+ break;
+ }
+ case FooOneofCase.FooMessage: {
+ MergeFooMessage(other.FooMessage);
+ break;
+ }
+ case FooOneofCase.FooGroup: {
+ MergeFooGroup(other.FooGroup);
+ break;
+ }
+ case FooOneofCase.FooLazyMessage: {
+ MergeFooLazyMessage(other.FooLazyMessage);
+ break;
+ }
+ case FooOneofCase.None: { break; }
+ }
+ switch (other.BarCase) {
+ case BarOneofCase.BarInt: {
+ SetBarInt(other.BarInt);
+ break;
+ }
+ case BarOneofCase.BarString: {
+ SetBarString(other.BarString);
+ break;
+ }
+ case BarOneofCase.BarCord: {
+ SetBarCord(other.BarCord);
+ break;
+ }
+ case BarOneofCase.BarStringPiece: {
+ SetBarStringPiece(other.BarStringPiece);
+ break;
+ }
+ case BarOneofCase.BarBytes: {
+ SetBarBytes(other.BarBytes);
+ break;
+ }
+ case BarOneofCase.BarEnum: {
+ SetBarEnum(other.BarEnum);
+ break;
+ }
+ case BarOneofCase.None: { break; }
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testOneof2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testOneof2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ int value = 0;
+ if (input.ReadInt32(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ }
+ break;
+ }
+ case 18: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ }
+ break;
+ }
+ case 26: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooCord;
+ }
+ break;
+ }
+ case 34: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooStringPiece;
+ }
+ break;
+ }
+ case 42: {
+ pb::ByteString value = pb::ByteString.Empty;
+ if (input.ReadBytes(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooBytes;
+ }
+ break;
+ }
+ case 48: {
+ object unknown;
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum enumValue = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.FOO;
+ if(input.ReadEnum(ref enumValue, out unknown)) {
+ result.foo_ = enumValue;
+ result.fooCase_ = FooOneofCase.FooEnum;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(6, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 58: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ break;
+ }
+ case 67: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooGroup) {
+ subBuilder.MergeFrom(FooGroup);
+ }
+ input.ReadGroup(8, subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooLazyMessage) {
+ subBuilder.MergeFrom(FooLazyMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooLazyMessage;
+ break;
+ }
+ case 96: {
+ int value = 5;
+ if (input.ReadInt32(ref value)) {
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarInt;
+ }
+ break;
+ }
+ case 106: {
+ string value = "STRING";
+ if (input.ReadString(ref value)) {
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarString;
+ }
+ break;
+ }
+ case 114: {
+ string value = "CORD";
+ if (input.ReadString(ref value)) {
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarCord;
+ }
+ break;
+ }
+ case 122: {
+ string value = "SPIECE";
+ if (input.ReadString(ref value)) {
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarStringPiece;
+ }
+ break;
+ }
+ case 130: {
+ pb::ByteString value = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor.Fields[13].DefaultValue;
+ if (input.ReadBytes(ref value)) {
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarBytes;
+ }
+ break;
+ }
+ case 136: {
+ object unknown;
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum enumValue = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.BAR;
+ if(input.ReadEnum(ref enumValue, out unknown)) {
+ result.bar_ = enumValue;
+ result.barCase_ = BarOneofCase.BarEnum;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(17, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 144: {
+ result.hasBazInt = input.ReadInt32(ref result.bazInt_);
+ break;
+ }
+ case 154: {
+ result.hasBazString = input.ReadString(ref result.bazString_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt ? (int) result.foo_ : 0; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooInt) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return result.fooCase_ == FooOneofCase.FooString ? (string) result.foo_ : ""; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooString) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooCord {
+ get { return result.fooCase_ == FooOneofCase.FooCord; }
+ }
+ public string FooCord {
+ get { return result.fooCase_ == FooOneofCase.FooCord ? (string) result.foo_ : ""; }
+ set { SetFooCord(value); }
+ }
+ public Builder SetFooCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooCord;
+ return this;
+ }
+ public Builder ClearFooCord() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooCord) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooStringPiece {
+ get { return result.fooCase_ == FooOneofCase.FooStringPiece; }
+ }
+ public string FooStringPiece {
+ get { return result.fooCase_ == FooOneofCase.FooStringPiece ? (string) result.foo_ : ""; }
+ set { SetFooStringPiece(value); }
+ }
+ public Builder SetFooStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooStringPiece;
+ return this;
+ }
+ public Builder ClearFooStringPiece() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooStringPiece) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooBytes {
+ get { return result.fooCase_ == FooOneofCase.FooBytes; }
+ }
+ public pb::ByteString FooBytes {
+ get { return result.fooCase_ == FooOneofCase.FooBytes ? (pb::ByteString) result.foo_ : pb::ByteString.Empty; }
+ set { SetFooBytes(value); }
+ }
+ public Builder SetFooBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooBytes;
+ return this;
+ }
+ public Builder ClearFooBytes() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooBytes) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooEnum {
+ get { return result.fooCase_ == FooOneofCase.FooEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum FooEnum {
+ get { return result.fooCase_ == FooOneofCase.FooEnum ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.FOO; }
+ set { SetFooEnum(value); }
+ }
+ public Builder SetFooEnum(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooEnum;
+ return this;
+ }
+ public Builder ClearFooEnum() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooEnum) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage &&
+ result.FooMessage != global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder(result.FooMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooMessage;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public bool HasFooGroup {
+ get { return result.fooCase_ == FooOneofCase.FooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup FooGroup {
+ get { return result.fooCase_ == FooOneofCase.FooGroup ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance; }
+ set { SetFooGroup(value); }
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooGroup &&
+ result.FooGroup != global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.CreateBuilder(result.FooGroup).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooGroup;
+ return this;
+ }
+ public Builder ClearFooGroup() {
+ if (result.fooCase_ == FooOneofCase.FooGroup) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public bool HasFooLazyMessage {
+ get { return result.fooCase_ == FooOneofCase.FooLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooLazyMessage {
+ get { return result.fooCase_ == FooOneofCase.FooLazyMessage ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ set { SetFooLazyMessage(value); }
+ }
+ public Builder SetFooLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooLazyMessage;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooLazyMessage;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooLazyMessage &&
+ result.FooLazyMessage != global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder(result.FooLazyMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooLazyMessage;
+ return this;
+ }
+ public Builder ClearFooLazyMessage() {
+ if (result.fooCase_ == FooOneofCase.FooLazyMessage) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public bool HasBarInt {
+ get { return result.barCase_ == BarOneofCase.BarInt; }
+ }
+ public int BarInt {
+ get { return result.barCase_ == BarOneofCase.BarInt ? (int) result.bar_ : 5; }
+ set { SetBarInt(value); }
+ }
+ public Builder SetBarInt(int value) {
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarInt;
+ return this;
+ }
+ public Builder ClearBarInt() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarInt) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBarString {
+ get { return result.barCase_ == BarOneofCase.BarString; }
+ }
+ public string BarString {
+ get { return result.barCase_ == BarOneofCase.BarString ? (string) result.bar_ : "STRING"; }
+ set { SetBarString(value); }
+ }
+ public Builder SetBarString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarString;
+ return this;
+ }
+ public Builder ClearBarString() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarString) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBarCord {
+ get { return result.barCase_ == BarOneofCase.BarCord; }
+ }
+ public string BarCord {
+ get { return result.barCase_ == BarOneofCase.BarCord ? (string) result.bar_ : "CORD"; }
+ set { SetBarCord(value); }
+ }
+ public Builder SetBarCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarCord;
+ return this;
+ }
+ public Builder ClearBarCord() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarCord) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBarStringPiece {
+ get { return result.barCase_ == BarOneofCase.BarStringPiece; }
+ }
+ public string BarStringPiece {
+ get { return result.barCase_ == BarOneofCase.BarStringPiece ? (string) result.bar_ : "SPIECE"; }
+ set { SetBarStringPiece(value); }
+ }
+ public Builder SetBarStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarStringPiece;
+ return this;
+ }
+ public Builder ClearBarStringPiece() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarStringPiece) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBarBytes {
+ get { return result.barCase_ == BarOneofCase.BarBytes; }
+ }
+ public pb::ByteString BarBytes {
+ get { return result.barCase_ == BarOneofCase.BarBytes ? (pb::ByteString) result.bar_ : (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor.Fields[13].DefaultValue; }
+ set { SetBarBytes(value); }
+ }
+ public Builder SetBarBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarBytes;
+ return this;
+ }
+ public Builder ClearBarBytes() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarBytes) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBarEnum {
+ get { return result.barCase_ == BarOneofCase.BarEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum BarEnum {
+ get { return result.barCase_ == BarOneofCase.BarEnum ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum) result.bar_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.BAR; }
+ set { SetBarEnum(value); }
+ }
+ public Builder SetBarEnum(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarEnum;
+ return this;
+ }
+ public Builder ClearBarEnum() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarEnum) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBazInt {
+ get { return result.hasBazInt; }
+ }
+ public int BazInt {
+ get { return result.BazInt; }
+ set { SetBazInt(value); }
+ }
+ public Builder SetBazInt(int value) {
+ PrepareBuilder();
+ result.hasBazInt = true;
+ result.bazInt_ = value;
+ return this;
+ }
+ public Builder ClearBazInt() {
+ PrepareBuilder();
+ result.hasBazInt = false;
+ result.bazInt_ = 0;
+ return this;
+ }
+
+ public bool HasBazString {
+ get { return result.hasBazString; }
+ }
+ public string BazString {
+ get { return result.BazString; }
+ set { SetBazString(value); }
+ }
+ public Builder SetBazString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBazString = true;
+ result.bazString_ = value;
+ return this;
+ }
+ public Builder ClearBazString() {
+ PrepareBuilder();
+ result.hasBazString = false;
+ result.bazString_ = "BAZ";
+ return this;
+ }
+
+ public FooOneofCase FooCase {
+ get { return result.fooCase_; }
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.foo_ = null;
+ result.fooCase_ = FooOneofCase.None;
+ return this;
+ }
+
+ public BarOneofCase BarCase {
+ get { return result.barCase_; }
+ }
+ public Builder ClearBar() {
+ PrepareBuilder();
+ result.bar_ = null;
+ result.barCase_ = BarOneofCase.None;
+ return this;
+ }
+ }
+ static TestOneof2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequiredOneof : pb::GeneratedMessage<TestRequiredOneof, TestRequiredOneof.Builder> {
+ private TestRequiredOneof() { }
+ private static readonly TestRequiredOneof defaultInstance = new TestRequiredOneof().MakeReadOnly();
+ private static readonly string[] _testRequiredOneofFieldNames = new string[] { "foo_int", "foo_message", "foo_string" };
+ private static readonly uint[] _testRequiredOneofFieldTags = new uint[] { 8, 26, 18 };
+ public static TestRequiredOneof DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequiredOneof DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequiredOneof ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequiredOneof, TestRequiredOneof.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "required_double" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 9 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int RequiredDoubleFieldNumber = 1;
+ private bool hasRequiredDouble;
+ private double requiredDouble_;
+ public bool HasRequiredDouble {
+ get { return hasRequiredDouble; }
+ }
+ public double RequiredDouble {
+ get { return requiredDouble_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasRequiredDouble) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasRequiredDouble) {
+ output.WriteDouble(1, field_names[0], RequiredDouble);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRequiredDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(1, RequiredDouble);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRequiredDouble) {
+ RequiredDouble = other.RequiredDouble;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 9: {
+ result.hasRequiredDouble = input.ReadDouble(ref result.requiredDouble_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasRequiredDouble {
+ get { return result.hasRequiredDouble; }
+ }
+ public double RequiredDouble {
+ get { return result.RequiredDouble; }
+ set { SetRequiredDouble(value); }
+ }
+ public Builder SetRequiredDouble(double value) {
+ PrepareBuilder();
+ result.hasRequiredDouble = true;
+ result.requiredDouble_ = value;
+ return this;
+ }
+ public Builder ClearRequiredDouble() {
+ PrepareBuilder();
+ result.hasRequiredDouble = false;
+ result.requiredDouble_ = 0D;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ private object foo_;
+ public enum FooOneofCase {
+ FooInt = 1,
+ FooString = 2,
+ FooMessage = 3,
+ None = 0,
+ }
+ private FooOneofCase fooCase_ = FooOneofCase.None;
+ public FooOneofCase FooCase {
+ get { return fooCase_; }
+ }
+
+ public const int FooIntFieldNumber = 1;
+ public bool HasFooInt {
+ get { return fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return fooCase_ == FooOneofCase.FooInt ? (int) foo_ : 0; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ public bool HasFooString {
+ get { return fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return fooCase_ == FooOneofCase.FooString ? (string) foo_ : ""; }
+ }
+
+ public const int FooMessageFieldNumber = 3;
+ public bool HasFooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage FooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage) foo_ : global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasFooMessage) {
+ if (!FooMessage.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRequiredOneofFieldNames;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ output.WriteInt32(1, field_names[0], FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ output.WriteString(2, field_names[2], FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ output.WriteMessage(3, field_names[1], FooMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, FooMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRequiredOneof ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequiredOneof ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequiredOneof MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequiredOneof prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredOneof, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequiredOneof cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequiredOneof result;
+
+ private TestRequiredOneof PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequiredOneof original = result;
+ result = new TestRequiredOneof();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequiredOneof MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Descriptor; }
+ }
+
+ public override TestRequiredOneof DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.DefaultInstance; }
+ }
+
+ public override TestRequiredOneof BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequiredOneof) {
+ return MergeFrom((TestRequiredOneof) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequiredOneof other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.DefaultInstance) return this;
+ PrepareBuilder();
+ switch (other.FooCase) {
+ case FooOneofCase.FooInt: {
+ SetFooInt(other.FooInt);
+ break;
+ }
+ case FooOneofCase.FooString: {
+ SetFooString(other.FooString);
+ break;
+ }
+ case FooOneofCase.FooMessage: {
+ MergeFooMessage(other.FooMessage);
+ break;
+ }
+ case FooOneofCase.None: { break; }
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRequiredOneofFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRequiredOneofFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ int value = 0;
+ if (input.ReadInt32(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ }
+ break;
+ }
+ case 18: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ }
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt ? (int) result.foo_ : 0; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooInt) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return result.fooCase_ == FooOneofCase.FooString ? (string) result.foo_ : ""; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooString) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage FooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage &&
+ result.FooMessage != global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.CreateBuilder(result.FooMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooMessage;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public FooOneofCase FooCase {
+ get { return result.fooCase_; }
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.foo_ = null;
+ result.fooCase_ = FooOneofCase.None;
+ return this;
+ }
+ }
+ static TestRequiredOneof() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestPackedTypes : pb::GeneratedMessage<TestPackedTypes, TestPackedTypes.Builder> {
+ private TestPackedTypes() { }
+ private static readonly TestPackedTypes defaultInstance = new TestPackedTypes().MakeReadOnly();
+ private static readonly string[] _testPackedTypesFieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
+ private static readonly uint[] _testPackedTypesFieldTags = new uint[] { 818, 810, 826, 770, 778, 802, 722, 730, 786, 794, 754, 762, 738, 746 };
+ public static TestPackedTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestPackedTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestPackedTypes, TestPackedTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable; }
+ }
+
+ public const int PackedInt32FieldNumber = 90;
+ private int packedInt32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedInt32List {
+ get { return pbc::Lists.AsReadOnly(packedInt32_); }
+ }
+ public int PackedInt32Count {
+ get { return packedInt32_.Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return packedInt32_[index];
+ }
+
+ public const int PackedInt64FieldNumber = 91;
+ private int packedInt64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedInt64List {
+ get { return pbc::Lists.AsReadOnly(packedInt64_); }
+ }
+ public int PackedInt64Count {
+ get { return packedInt64_.Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return packedInt64_[index];
+ }
+
+ public const int PackedUint32FieldNumber = 92;
+ private int packedUint32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedUint32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> PackedUint32List {
+ get { return pbc::Lists.AsReadOnly(packedUint32_); }
+ }
+ public int PackedUint32Count {
+ get { return packedUint32_.Count; }
+ }
+ public uint GetPackedUint32(int index) {
+ return packedUint32_[index];
+ }
+
+ public const int PackedUint64FieldNumber = 93;
+ private int packedUint64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> PackedUint64List {
+ get { return pbc::Lists.AsReadOnly(packedUint64_); }
+ }
+ public int PackedUint64Count {
+ get { return packedUint64_.Count; }
+ }
+ public ulong GetPackedUint64(int index) {
+ return packedUint64_[index];
+ }
+
+ public const int PackedSint32FieldNumber = 94;
+ private int packedSint32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSint32List {
+ get { return pbc::Lists.AsReadOnly(packedSint32_); }
+ }
+ public int PackedSint32Count {
+ get { return packedSint32_.Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return packedSint32_[index];
+ }
+
+ public const int PackedSint64FieldNumber = 95;
+ private int packedSint64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSint64List {
+ get { return pbc::Lists.AsReadOnly(packedSint64_); }
+ }
+ public int PackedSint64Count {
+ get { return packedSint64_.Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return packedSint64_[index];
+ }
+
+ public const int PackedFixed32FieldNumber = 96;
+ private int packedFixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> PackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(packedFixed32_); }
+ }
+ public int PackedFixed32Count {
+ get { return packedFixed32_.Count; }
+ }
+ public uint GetPackedFixed32(int index) {
+ return packedFixed32_[index];
+ }
+
+ public const int PackedFixed64FieldNumber = 97;
+ private int packedFixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> PackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(packedFixed64_); }
+ }
+ public int PackedFixed64Count {
+ get { return packedFixed64_.Count; }
+ }
+ public ulong GetPackedFixed64(int index) {
+ return packedFixed64_[index];
+ }
+
+ public const int PackedSfixed32FieldNumber = 98;
+ private int packedSfixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed32_); }
+ }
+ public int PackedSfixed32Count {
+ get { return packedSfixed32_.Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return packedSfixed32_[index];
+ }
+
+ public const int PackedSfixed64FieldNumber = 99;
+ private int packedSfixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed64_); }
+ }
+ public int PackedSfixed64Count {
+ get { return packedSfixed64_.Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return packedSfixed64_[index];
+ }
+
+ public const int PackedFloatFieldNumber = 100;
+ private int packedFloatMemoizedSerializedSize;
+ private pbc::PopsicleList<float> packedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> PackedFloatList {
+ get { return pbc::Lists.AsReadOnly(packedFloat_); }
+ }
+ public int PackedFloatCount {
+ get { return packedFloat_.Count; }
+ }
+ public float GetPackedFloat(int index) {
+ return packedFloat_[index];
+ }
+
+ public const int PackedDoubleFieldNumber = 101;
+ private int packedDoubleMemoizedSerializedSize;
+ private pbc::PopsicleList<double> packedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> PackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(packedDouble_); }
+ }
+ public int PackedDoubleCount {
+ get { return packedDouble_.Count; }
+ }
+ public double GetPackedDouble(int index) {
+ return packedDouble_[index];
+ }
+
+ public const int PackedBoolFieldNumber = 102;
+ private int packedBoolMemoizedSerializedSize;
+ private pbc::PopsicleList<bool> packedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> PackedBoolList {
+ get { return pbc::Lists.AsReadOnly(packedBool_); }
+ }
+ public int PackedBoolCount {
+ get { return packedBool_.Count; }
+ }
+ public bool GetPackedBool(int index) {
+ return packedBool_[index];
+ }
+
+ public const int PackedEnumFieldNumber = 103;
+ private int packedEnumMemoizedSerializedSize;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> packedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> PackedEnumList {
+ get { return pbc::Lists.AsReadOnly(packedEnum_); }
+ }
+ public int PackedEnumCount {
+ get { return packedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetPackedEnum(int index) {
+ return packedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testPackedTypesFieldNames;
+ if (packedInt32_.Count > 0) {
+ output.WritePackedInt32Array(90, field_names[6], packedInt32MemoizedSerializedSize, packedInt32_);
+ }
+ if (packedInt64_.Count > 0) {
+ output.WritePackedInt64Array(91, field_names[7], packedInt64MemoizedSerializedSize, packedInt64_);
+ }
+ if (packedUint32_.Count > 0) {
+ output.WritePackedUInt32Array(92, field_names[12], packedUint32MemoizedSerializedSize, packedUint32_);
+ }
+ if (packedUint64_.Count > 0) {
+ output.WritePackedUInt64Array(93, field_names[13], packedUint64MemoizedSerializedSize, packedUint64_);
+ }
+ if (packedSint32_.Count > 0) {
+ output.WritePackedSInt32Array(94, field_names[10], packedSint32MemoizedSerializedSize, packedSint32_);
+ }
+ if (packedSint64_.Count > 0) {
+ output.WritePackedSInt64Array(95, field_names[11], packedSint64MemoizedSerializedSize, packedSint64_);
+ }
+ if (packedFixed32_.Count > 0) {
+ output.WritePackedFixed32Array(96, field_names[3], packedFixed32MemoizedSerializedSize, packedFixed32_);
+ }
+ if (packedFixed64_.Count > 0) {
+ output.WritePackedFixed64Array(97, field_names[4], packedFixed64MemoizedSerializedSize, packedFixed64_);
+ }
+ if (packedSfixed32_.Count > 0) {
+ output.WritePackedSFixed32Array(98, field_names[8], packedSfixed32MemoizedSerializedSize, packedSfixed32_);
+ }
+ if (packedSfixed64_.Count > 0) {
+ output.WritePackedSFixed64Array(99, field_names[9], packedSfixed64MemoizedSerializedSize, packedSfixed64_);
+ }
+ if (packedFloat_.Count > 0) {
+ output.WritePackedFloatArray(100, field_names[5], packedFloatMemoizedSerializedSize, packedFloat_);
+ }
+ if (packedDouble_.Count > 0) {
+ output.WritePackedDoubleArray(101, field_names[1], packedDoubleMemoizedSerializedSize, packedDouble_);
+ }
+ if (packedBool_.Count > 0) {
+ output.WritePackedBoolArray(102, field_names[0], packedBoolMemoizedSerializedSize, packedBool_);
+ }
+ if (packedEnum_.Count > 0) {
+ output.WritePackedEnumArray(103, field_names[2], packedEnumMemoizedSerializedSize, packedEnum_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in PackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in PackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in PackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFixed32_.Count;
+ size += dataSize;
+ if (packedFixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedFixed64_.Count;
+ size += dataSize;
+ if (packedFixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedSfixed32_.Count;
+ size += dataSize;
+ if (packedSfixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedSfixed64_.Count;
+ size += dataSize;
+ if (packedSfixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFloat_.Count;
+ size += dataSize;
+ if (packedFloat_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFloatMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedDouble_.Count;
+ size += dataSize;
+ if (packedDouble_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedDoubleMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * packedBool_.Count;
+ size += dataSize;
+ if (packedBool_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedBoolMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ if (packedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in packedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2;
+ size += pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ packedEnumMemoizedSerializedSize = dataSize;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestPackedTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestPackedTypes MakeReadOnly() {
+ packedInt32_.MakeReadOnly();
+ packedInt64_.MakeReadOnly();
+ packedUint32_.MakeReadOnly();
+ packedUint64_.MakeReadOnly();
+ packedSint32_.MakeReadOnly();
+ packedSint64_.MakeReadOnly();
+ packedFixed32_.MakeReadOnly();
+ packedFixed64_.MakeReadOnly();
+ packedSfixed32_.MakeReadOnly();
+ packedSfixed64_.MakeReadOnly();
+ packedFloat_.MakeReadOnly();
+ packedDouble_.MakeReadOnly();
+ packedBool_.MakeReadOnly();
+ packedEnum_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestPackedTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestPackedTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestPackedTypes result;
+
+ private TestPackedTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestPackedTypes original = result;
+ result = new TestPackedTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestPackedTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Descriptor; }
+ }
+
+ public override TestPackedTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.DefaultInstance; }
+ }
+
+ public override TestPackedTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestPackedTypes) {
+ return MergeFrom((TestPackedTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.packedInt32_.Count != 0) {
+ result.packedInt32_.Add(other.packedInt32_);
+ }
+ if (other.packedInt64_.Count != 0) {
+ result.packedInt64_.Add(other.packedInt64_);
+ }
+ if (other.packedUint32_.Count != 0) {
+ result.packedUint32_.Add(other.packedUint32_);
+ }
+ if (other.packedUint64_.Count != 0) {
+ result.packedUint64_.Add(other.packedUint64_);
+ }
+ if (other.packedSint32_.Count != 0) {
+ result.packedSint32_.Add(other.packedSint32_);
+ }
+ if (other.packedSint64_.Count != 0) {
+ result.packedSint64_.Add(other.packedSint64_);
+ }
+ if (other.packedFixed32_.Count != 0) {
+ result.packedFixed32_.Add(other.packedFixed32_);
+ }
+ if (other.packedFixed64_.Count != 0) {
+ result.packedFixed64_.Add(other.packedFixed64_);
+ }
+ if (other.packedSfixed32_.Count != 0) {
+ result.packedSfixed32_.Add(other.packedSfixed32_);
+ }
+ if (other.packedSfixed64_.Count != 0) {
+ result.packedSfixed64_.Add(other.packedSfixed64_);
+ }
+ if (other.packedFloat_.Count != 0) {
+ result.packedFloat_.Add(other.packedFloat_);
+ }
+ if (other.packedDouble_.Count != 0) {
+ result.packedDouble_.Add(other.packedDouble_);
+ }
+ if (other.packedBool_.Count != 0) {
+ result.packedBool_.Add(other.packedBool_);
+ }
+ if (other.packedEnum_.Count != 0) {
+ result.packedEnum_.Add(other.packedEnum_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testPackedTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testPackedTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 722:
+ case 720: {
+ input.ReadInt32Array(tag, field_name, result.packedInt32_);
+ break;
+ }
+ case 730:
+ case 728: {
+ input.ReadInt64Array(tag, field_name, result.packedInt64_);
+ break;
+ }
+ case 738:
+ case 736: {
+ input.ReadUInt32Array(tag, field_name, result.packedUint32_);
+ break;
+ }
+ case 746:
+ case 744: {
+ input.ReadUInt64Array(tag, field_name, result.packedUint64_);
+ break;
+ }
+ case 754:
+ case 752: {
+ input.ReadSInt32Array(tag, field_name, result.packedSint32_);
+ break;
+ }
+ case 762:
+ case 760: {
+ input.ReadSInt64Array(tag, field_name, result.packedSint64_);
+ break;
+ }
+ case 770:
+ case 773: {
+ input.ReadFixed32Array(tag, field_name, result.packedFixed32_);
+ break;
+ }
+ case 778:
+ case 777: {
+ input.ReadFixed64Array(tag, field_name, result.packedFixed64_);
+ break;
+ }
+ case 786:
+ case 789: {
+ input.ReadSFixed32Array(tag, field_name, result.packedSfixed32_);
+ break;
+ }
+ case 794:
+ case 793: {
+ input.ReadSFixed64Array(tag, field_name, result.packedSfixed64_);
+ break;
+ }
+ case 802:
+ case 805: {
+ input.ReadFloatArray(tag, field_name, result.packedFloat_);
+ break;
+ }
+ case 810:
+ case 809: {
+ input.ReadDoubleArray(tag, field_name, result.packedDouble_);
+ break;
+ }
+ case 818:
+ case 816: {
+ input.ReadBoolArray(tag, field_name, result.packedBool_);
+ break;
+ }
+ case 826:
+ case 824: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.packedEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(103, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> PackedInt32List {
+ get { return PrepareBuilder().packedInt32_; }
+ }
+ public int PackedInt32Count {
+ get { return result.PackedInt32Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return result.GetPackedInt32(index);
+ }
+ public Builder SetPackedInt32(int index, int value) {
+ PrepareBuilder();
+ result.packedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt32(int value) {
+ PrepareBuilder();
+ result.packedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedInt32() {
+ PrepareBuilder();
+ result.packedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedInt64List {
+ get { return PrepareBuilder().packedInt64_; }
+ }
+ public int PackedInt64Count {
+ get { return result.PackedInt64Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return result.GetPackedInt64(index);
+ }
+ public Builder SetPackedInt64(int index, long value) {
+ PrepareBuilder();
+ result.packedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt64(long value) {
+ PrepareBuilder();
+ result.packedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedInt64() {
+ PrepareBuilder();
+ result.packedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> PackedUint32List {
+ get { return PrepareBuilder().packedUint32_; }
+ }
+ public int PackedUint32Count {
+ get { return result.PackedUint32Count; }
+ }
+ public uint GetPackedUint32(int index) {
+ return result.GetPackedUint32(index);
+ }
+ public Builder SetPackedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.packedUint32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedUint32(uint value) {
+ PrepareBuilder();
+ result.packedUint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.packedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedUint32() {
+ PrepareBuilder();
+ result.packedUint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> PackedUint64List {
+ get { return PrepareBuilder().packedUint64_; }
+ }
+ public int PackedUint64Count {
+ get { return result.PackedUint64Count; }
+ }
+ public ulong GetPackedUint64(int index) {
+ return result.GetPackedUint64(index);
+ }
+ public Builder SetPackedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.packedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedUint64(ulong value) {
+ PrepareBuilder();
+ result.packedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.packedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedUint64() {
+ PrepareBuilder();
+ result.packedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSint32List {
+ get { return PrepareBuilder().packedSint32_; }
+ }
+ public int PackedSint32Count {
+ get { return result.PackedSint32Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return result.GetPackedSint32(index);
+ }
+ public Builder SetPackedSint32(int index, int value) {
+ PrepareBuilder();
+ result.packedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint32(int value) {
+ PrepareBuilder();
+ result.packedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSint32() {
+ PrepareBuilder();
+ result.packedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSint64List {
+ get { return PrepareBuilder().packedSint64_; }
+ }
+ public int PackedSint64Count {
+ get { return result.PackedSint64Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return result.GetPackedSint64(index);
+ }
+ public Builder SetPackedSint64(int index, long value) {
+ PrepareBuilder();
+ result.packedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint64(long value) {
+ PrepareBuilder();
+ result.packedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSint64() {
+ PrepareBuilder();
+ result.packedSint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> PackedFixed32List {
+ get { return PrepareBuilder().packedFixed32_; }
+ }
+ public int PackedFixed32Count {
+ get { return result.PackedFixed32Count; }
+ }
+ public uint GetPackedFixed32(int index) {
+ return result.GetPackedFixed32(index);
+ }
+ public Builder SetPackedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.packedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFixed32(uint value) {
+ PrepareBuilder();
+ result.packedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.packedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFixed32() {
+ PrepareBuilder();
+ result.packedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> PackedFixed64List {
+ get { return PrepareBuilder().packedFixed64_; }
+ }
+ public int PackedFixed64Count {
+ get { return result.PackedFixed64Count; }
+ }
+ public ulong GetPackedFixed64(int index) {
+ return result.GetPackedFixed64(index);
+ }
+ public Builder SetPackedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.packedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFixed64(ulong value) {
+ PrepareBuilder();
+ result.packedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.packedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFixed64() {
+ PrepareBuilder();
+ result.packedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSfixed32List {
+ get { return PrepareBuilder().packedSfixed32_; }
+ }
+ public int PackedSfixed32Count {
+ get { return result.PackedSfixed32Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return result.GetPackedSfixed32(index);
+ }
+ public Builder SetPackedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.packedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed32(int value) {
+ PrepareBuilder();
+ result.packedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSfixed32() {
+ PrepareBuilder();
+ result.packedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSfixed64List {
+ get { return PrepareBuilder().packedSfixed64_; }
+ }
+ public int PackedSfixed64Count {
+ get { return result.PackedSfixed64Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return result.GetPackedSfixed64(index);
+ }
+ public Builder SetPackedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.packedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed64(long value) {
+ PrepareBuilder();
+ result.packedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSfixed64() {
+ PrepareBuilder();
+ result.packedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> PackedFloatList {
+ get { return PrepareBuilder().packedFloat_; }
+ }
+ public int PackedFloatCount {
+ get { return result.PackedFloatCount; }
+ }
+ public float GetPackedFloat(int index) {
+ return result.GetPackedFloat(index);
+ }
+ public Builder SetPackedFloat(int index, float value) {
+ PrepareBuilder();
+ result.packedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFloat(float value) {
+ PrepareBuilder();
+ result.packedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.packedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFloat() {
+ PrepareBuilder();
+ result.packedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> PackedDoubleList {
+ get { return PrepareBuilder().packedDouble_; }
+ }
+ public int PackedDoubleCount {
+ get { return result.PackedDoubleCount; }
+ }
+ public double GetPackedDouble(int index) {
+ return result.GetPackedDouble(index);
+ }
+ public Builder SetPackedDouble(int index, double value) {
+ PrepareBuilder();
+ result.packedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddPackedDouble(double value) {
+ PrepareBuilder();
+ result.packedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.packedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedDouble() {
+ PrepareBuilder();
+ result.packedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> PackedBoolList {
+ get { return PrepareBuilder().packedBool_; }
+ }
+ public int PackedBoolCount {
+ get { return result.PackedBoolCount; }
+ }
+ public bool GetPackedBool(int index) {
+ return result.GetPackedBool(index);
+ }
+ public Builder SetPackedBool(int index, bool value) {
+ PrepareBuilder();
+ result.packedBool_[index] = value;
+ return this;
+ }
+ public Builder AddPackedBool(bool value) {
+ PrepareBuilder();
+ result.packedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.packedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedBool() {
+ PrepareBuilder();
+ result.packedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> PackedEnumList {
+ get { return PrepareBuilder().packedEnum_; }
+ }
+ public int PackedEnumCount {
+ get { return result.PackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetPackedEnum(int index) {
+ return result.GetPackedEnum(index);
+ }
+ public Builder SetPackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.packedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddPackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.packedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.packedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedEnum() {
+ PrepareBuilder();
+ result.packedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestPackedTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestUnpackedTypes : pb::GeneratedMessage<TestUnpackedTypes, TestUnpackedTypes.Builder> {
+ private TestUnpackedTypes() { }
+ private static readonly TestUnpackedTypes defaultInstance = new TestUnpackedTypes().MakeReadOnly();
+ private static readonly string[] _testUnpackedTypesFieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
+ private static readonly uint[] _testUnpackedTypesFieldTags = new uint[] { 816, 809, 824, 773, 777, 805, 720, 728, 789, 793, 752, 760, 736, 744 };
+ public static TestUnpackedTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestUnpackedTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestUnpackedTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestUnpackedTypes, TestUnpackedTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable; }
+ }
+
+ public const int UnpackedInt32FieldNumber = 90;
+ private pbc::PopsicleList<int> unpackedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedInt32List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt32_); }
+ }
+ public int UnpackedInt32Count {
+ get { return unpackedInt32_.Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return unpackedInt32_[index];
+ }
+
+ public const int UnpackedInt64FieldNumber = 91;
+ private pbc::PopsicleList<long> unpackedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedInt64List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt64_); }
+ }
+ public int UnpackedInt64Count {
+ get { return unpackedInt64_.Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return unpackedInt64_[index];
+ }
+
+ public const int UnpackedUint32FieldNumber = 92;
+ private pbc::PopsicleList<uint> unpackedUint32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> UnpackedUint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint32_); }
+ }
+ public int UnpackedUint32Count {
+ get { return unpackedUint32_.Count; }
+ }
+ public uint GetUnpackedUint32(int index) {
+ return unpackedUint32_[index];
+ }
+
+ public const int UnpackedUint64FieldNumber = 93;
+ private pbc::PopsicleList<ulong> unpackedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> UnpackedUint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint64_); }
+ }
+ public int UnpackedUint64Count {
+ get { return unpackedUint64_.Count; }
+ }
+ public ulong GetUnpackedUint64(int index) {
+ return unpackedUint64_[index];
+ }
+
+ public const int UnpackedSint32FieldNumber = 94;
+ private pbc::PopsicleList<int> unpackedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint32_); }
+ }
+ public int UnpackedSint32Count {
+ get { return unpackedSint32_.Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return unpackedSint32_[index];
+ }
+
+ public const int UnpackedSint64FieldNumber = 95;
+ private pbc::PopsicleList<long> unpackedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint64_); }
+ }
+ public int UnpackedSint64Count {
+ get { return unpackedSint64_.Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return unpackedSint64_[index];
+ }
+
+ public const int UnpackedFixed32FieldNumber = 96;
+ private pbc::PopsicleList<uint> unpackedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> UnpackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed32_); }
+ }
+ public int UnpackedFixed32Count {
+ get { return unpackedFixed32_.Count; }
+ }
+ public uint GetUnpackedFixed32(int index) {
+ return unpackedFixed32_[index];
+ }
+
+ public const int UnpackedFixed64FieldNumber = 97;
+ private pbc::PopsicleList<ulong> unpackedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> UnpackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed64_); }
+ }
+ public int UnpackedFixed64Count {
+ get { return unpackedFixed64_.Count; }
+ }
+ public ulong GetUnpackedFixed64(int index) {
+ return unpackedFixed64_[index];
+ }
+
+ public const int UnpackedSfixed32FieldNumber = 98;
+ private pbc::PopsicleList<int> unpackedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed32_); }
+ }
+ public int UnpackedSfixed32Count {
+ get { return unpackedSfixed32_.Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return unpackedSfixed32_[index];
+ }
+
+ public const int UnpackedSfixed64FieldNumber = 99;
+ private pbc::PopsicleList<long> unpackedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed64_); }
+ }
+ public int UnpackedSfixed64Count {
+ get { return unpackedSfixed64_.Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return unpackedSfixed64_[index];
+ }
+
+ public const int UnpackedFloatFieldNumber = 100;
+ private pbc::PopsicleList<float> unpackedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> UnpackedFloatList {
+ get { return pbc::Lists.AsReadOnly(unpackedFloat_); }
+ }
+ public int UnpackedFloatCount {
+ get { return unpackedFloat_.Count; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return unpackedFloat_[index];
+ }
+
+ public const int UnpackedDoubleFieldNumber = 101;
+ private pbc::PopsicleList<double> unpackedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> UnpackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(unpackedDouble_); }
+ }
+ public int UnpackedDoubleCount {
+ get { return unpackedDouble_.Count; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return unpackedDouble_[index];
+ }
+
+ public const int UnpackedBoolFieldNumber = 102;
+ private pbc::PopsicleList<bool> unpackedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> UnpackedBoolList {
+ get { return pbc::Lists.AsReadOnly(unpackedBool_); }
+ }
+ public int UnpackedBoolCount {
+ get { return unpackedBool_.Count; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return unpackedBool_[index];
+ }
+
+ public const int UnpackedEnumFieldNumber = 103;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> unpackedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> UnpackedEnumList {
+ get { return pbc::Lists.AsReadOnly(unpackedEnum_); }
+ }
+ public int UnpackedEnumCount {
+ get { return unpackedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetUnpackedEnum(int index) {
+ return unpackedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testUnpackedTypesFieldNames;
+ if (unpackedInt32_.Count > 0) {
+ output.WriteInt32Array(90, field_names[6], unpackedInt32_);
+ }
+ if (unpackedInt64_.Count > 0) {
+ output.WriteInt64Array(91, field_names[7], unpackedInt64_);
+ }
+ if (unpackedUint32_.Count > 0) {
+ output.WriteUInt32Array(92, field_names[12], unpackedUint32_);
+ }
+ if (unpackedUint64_.Count > 0) {
+ output.WriteUInt64Array(93, field_names[13], unpackedUint64_);
+ }
+ if (unpackedSint32_.Count > 0) {
+ output.WriteSInt32Array(94, field_names[10], unpackedSint32_);
+ }
+ if (unpackedSint64_.Count > 0) {
+ output.WriteSInt64Array(95, field_names[11], unpackedSint64_);
+ }
+ if (unpackedFixed32_.Count > 0) {
+ output.WriteFixed32Array(96, field_names[3], unpackedFixed32_);
+ }
+ if (unpackedFixed64_.Count > 0) {
+ output.WriteFixed64Array(97, field_names[4], unpackedFixed64_);
+ }
+ if (unpackedSfixed32_.Count > 0) {
+ output.WriteSFixed32Array(98, field_names[8], unpackedSfixed32_);
+ }
+ if (unpackedSfixed64_.Count > 0) {
+ output.WriteSFixed64Array(99, field_names[9], unpackedSfixed64_);
+ }
+ if (unpackedFloat_.Count > 0) {
+ output.WriteFloatArray(100, field_names[5], unpackedFloat_);
+ }
+ if (unpackedDouble_.Count > 0) {
+ output.WriteDoubleArray(101, field_names[1], unpackedDouble_);
+ }
+ if (unpackedBool_.Count > 0) {
+ output.WriteBoolArray(102, field_names[0], unpackedBool_);
+ }
+ if (unpackedEnum_.Count > 0) {
+ output.WriteEnumArray(103, field_names[2], unpackedEnum_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in UnpackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in UnpackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedFixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFloat_.Count;
+ size += dataSize;
+ size += 2 * unpackedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedDouble_.Count;
+ size += dataSize;
+ size += 2 * unpackedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * unpackedBool_.Count;
+ size += dataSize;
+ size += 2 * unpackedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ if (unpackedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in unpackedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * unpackedEnum_.Count;
+ }
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestUnpackedTypes MakeReadOnly() {
+ unpackedInt32_.MakeReadOnly();
+ unpackedInt64_.MakeReadOnly();
+ unpackedUint32_.MakeReadOnly();
+ unpackedUint64_.MakeReadOnly();
+ unpackedSint32_.MakeReadOnly();
+ unpackedSint64_.MakeReadOnly();
+ unpackedFixed32_.MakeReadOnly();
+ unpackedFixed64_.MakeReadOnly();
+ unpackedSfixed32_.MakeReadOnly();
+ unpackedSfixed64_.MakeReadOnly();
+ unpackedFloat_.MakeReadOnly();
+ unpackedDouble_.MakeReadOnly();
+ unpackedBool_.MakeReadOnly();
+ unpackedEnum_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestUnpackedTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestUnpackedTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestUnpackedTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestUnpackedTypes result;
+
+ private TestUnpackedTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestUnpackedTypes original = result;
+ result = new TestUnpackedTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestUnpackedTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Descriptor; }
+ }
+
+ public override TestUnpackedTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.DefaultInstance; }
+ }
+
+ public override TestUnpackedTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestUnpackedTypes) {
+ return MergeFrom((TestUnpackedTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestUnpackedTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.unpackedInt32_.Count != 0) {
+ result.unpackedInt32_.Add(other.unpackedInt32_);
+ }
+ if (other.unpackedInt64_.Count != 0) {
+ result.unpackedInt64_.Add(other.unpackedInt64_);
+ }
+ if (other.unpackedUint32_.Count != 0) {
+ result.unpackedUint32_.Add(other.unpackedUint32_);
+ }
+ if (other.unpackedUint64_.Count != 0) {
+ result.unpackedUint64_.Add(other.unpackedUint64_);
+ }
+ if (other.unpackedSint32_.Count != 0) {
+ result.unpackedSint32_.Add(other.unpackedSint32_);
+ }
+ if (other.unpackedSint64_.Count != 0) {
+ result.unpackedSint64_.Add(other.unpackedSint64_);
+ }
+ if (other.unpackedFixed32_.Count != 0) {
+ result.unpackedFixed32_.Add(other.unpackedFixed32_);
+ }
+ if (other.unpackedFixed64_.Count != 0) {
+ result.unpackedFixed64_.Add(other.unpackedFixed64_);
+ }
+ if (other.unpackedSfixed32_.Count != 0) {
+ result.unpackedSfixed32_.Add(other.unpackedSfixed32_);
+ }
+ if (other.unpackedSfixed64_.Count != 0) {
+ result.unpackedSfixed64_.Add(other.unpackedSfixed64_);
+ }
+ if (other.unpackedFloat_.Count != 0) {
+ result.unpackedFloat_.Add(other.unpackedFloat_);
+ }
+ if (other.unpackedDouble_.Count != 0) {
+ result.unpackedDouble_.Add(other.unpackedDouble_);
+ }
+ if (other.unpackedBool_.Count != 0) {
+ result.unpackedBool_.Add(other.unpackedBool_);
+ }
+ if (other.unpackedEnum_.Count != 0) {
+ result.unpackedEnum_.Add(other.unpackedEnum_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testUnpackedTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testUnpackedTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 722:
+ case 720: {
+ input.ReadInt32Array(tag, field_name, result.unpackedInt32_);
+ break;
+ }
+ case 730:
+ case 728: {
+ input.ReadInt64Array(tag, field_name, result.unpackedInt64_);
+ break;
+ }
+ case 738:
+ case 736: {
+ input.ReadUInt32Array(tag, field_name, result.unpackedUint32_);
+ break;
+ }
+ case 746:
+ case 744: {
+ input.ReadUInt64Array(tag, field_name, result.unpackedUint64_);
+ break;
+ }
+ case 754:
+ case 752: {
+ input.ReadSInt32Array(tag, field_name, result.unpackedSint32_);
+ break;
+ }
+ case 762:
+ case 760: {
+ input.ReadSInt64Array(tag, field_name, result.unpackedSint64_);
+ break;
+ }
+ case 770:
+ case 773: {
+ input.ReadFixed32Array(tag, field_name, result.unpackedFixed32_);
+ break;
+ }
+ case 778:
+ case 777: {
+ input.ReadFixed64Array(tag, field_name, result.unpackedFixed64_);
+ break;
+ }
+ case 786:
+ case 789: {
+ input.ReadSFixed32Array(tag, field_name, result.unpackedSfixed32_);
+ break;
+ }
+ case 794:
+ case 793: {
+ input.ReadSFixed64Array(tag, field_name, result.unpackedSfixed64_);
+ break;
+ }
+ case 802:
+ case 805: {
+ input.ReadFloatArray(tag, field_name, result.unpackedFloat_);
+ break;
+ }
+ case 810:
+ case 809: {
+ input.ReadDoubleArray(tag, field_name, result.unpackedDouble_);
+ break;
+ }
+ case 818:
+ case 816: {
+ input.ReadBoolArray(tag, field_name, result.unpackedBool_);
+ break;
+ }
+ case 826:
+ case 824: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.unpackedEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(103, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> UnpackedInt32List {
+ get { return PrepareBuilder().unpackedInt32_; }
+ }
+ public int UnpackedInt32Count {
+ get { return result.UnpackedInt32Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return result.GetUnpackedInt32(index);
+ }
+ public Builder SetUnpackedInt32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt32(int value) {
+ PrepareBuilder();
+ result.unpackedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedInt32() {
+ PrepareBuilder();
+ result.unpackedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedInt64List {
+ get { return PrepareBuilder().unpackedInt64_; }
+ }
+ public int UnpackedInt64Count {
+ get { return result.UnpackedInt64Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return result.GetUnpackedInt64(index);
+ }
+ public Builder SetUnpackedInt64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt64(long value) {
+ PrepareBuilder();
+ result.unpackedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedInt64() {
+ PrepareBuilder();
+ result.unpackedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> UnpackedUint32List {
+ get { return PrepareBuilder().unpackedUint32_; }
+ }
+ public int UnpackedUint32Count {
+ get { return result.UnpackedUint32Count; }
+ }
+ public uint GetUnpackedUint32(int index) {
+ return result.GetUnpackedUint32(index);
+ }
+ public Builder SetUnpackedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.unpackedUint32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedUint32(uint value) {
+ PrepareBuilder();
+ result.unpackedUint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.unpackedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedUint32() {
+ PrepareBuilder();
+ result.unpackedUint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> UnpackedUint64List {
+ get { return PrepareBuilder().unpackedUint64_; }
+ }
+ public int UnpackedUint64Count {
+ get { return result.UnpackedUint64Count; }
+ }
+ public ulong GetUnpackedUint64(int index) {
+ return result.GetUnpackedUint64(index);
+ }
+ public Builder SetUnpackedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.unpackedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedUint64(ulong value) {
+ PrepareBuilder();
+ result.unpackedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.unpackedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedUint64() {
+ PrepareBuilder();
+ result.unpackedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSint32List {
+ get { return PrepareBuilder().unpackedSint32_; }
+ }
+ public int UnpackedSint32Count {
+ get { return result.UnpackedSint32Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return result.GetUnpackedSint32(index);
+ }
+ public Builder SetUnpackedSint32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint32(int value) {
+ PrepareBuilder();
+ result.unpackedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSint32() {
+ PrepareBuilder();
+ result.unpackedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSint64List {
+ get { return PrepareBuilder().unpackedSint64_; }
+ }
+ public int UnpackedSint64Count {
+ get { return result.UnpackedSint64Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return result.GetUnpackedSint64(index);
+ }
+ public Builder SetUnpackedSint64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint64(long value) {
+ PrepareBuilder();
+ result.unpackedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSint64() {
+ PrepareBuilder();
+ result.unpackedSint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> UnpackedFixed32List {
+ get { return PrepareBuilder().unpackedFixed32_; }
+ }
+ public int UnpackedFixed32Count {
+ get { return result.UnpackedFixed32Count; }
+ }
+ public uint GetUnpackedFixed32(int index) {
+ return result.GetUnpackedFixed32(index);
+ }
+ public Builder SetUnpackedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.unpackedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFixed32(uint value) {
+ PrepareBuilder();
+ result.unpackedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.unpackedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFixed32() {
+ PrepareBuilder();
+ result.unpackedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> UnpackedFixed64List {
+ get { return PrepareBuilder().unpackedFixed64_; }
+ }
+ public int UnpackedFixed64Count {
+ get { return result.UnpackedFixed64Count; }
+ }
+ public ulong GetUnpackedFixed64(int index) {
+ return result.GetUnpackedFixed64(index);
+ }
+ public Builder SetUnpackedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.unpackedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFixed64(ulong value) {
+ PrepareBuilder();
+ result.unpackedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.unpackedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFixed64() {
+ PrepareBuilder();
+ result.unpackedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSfixed32List {
+ get { return PrepareBuilder().unpackedSfixed32_; }
+ }
+ public int UnpackedSfixed32Count {
+ get { return result.UnpackedSfixed32Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return result.GetUnpackedSfixed32(index);
+ }
+ public Builder SetUnpackedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed32(int value) {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed32() {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSfixed64List {
+ get { return PrepareBuilder().unpackedSfixed64_; }
+ }
+ public int UnpackedSfixed64Count {
+ get { return result.UnpackedSfixed64Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return result.GetUnpackedSfixed64(index);
+ }
+ public Builder SetUnpackedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed64(long value) {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed64() {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> UnpackedFloatList {
+ get { return PrepareBuilder().unpackedFloat_; }
+ }
+ public int UnpackedFloatCount {
+ get { return result.UnpackedFloatCount; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return result.GetUnpackedFloat(index);
+ }
+ public Builder SetUnpackedFloat(int index, float value) {
+ PrepareBuilder();
+ result.unpackedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFloat(float value) {
+ PrepareBuilder();
+ result.unpackedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.unpackedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFloat() {
+ PrepareBuilder();
+ result.unpackedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> UnpackedDoubleList {
+ get { return PrepareBuilder().unpackedDouble_; }
+ }
+ public int UnpackedDoubleCount {
+ get { return result.UnpackedDoubleCount; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return result.GetUnpackedDouble(index);
+ }
+ public Builder SetUnpackedDouble(int index, double value) {
+ PrepareBuilder();
+ result.unpackedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedDouble(double value) {
+ PrepareBuilder();
+ result.unpackedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.unpackedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedDouble() {
+ PrepareBuilder();
+ result.unpackedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> UnpackedBoolList {
+ get { return PrepareBuilder().unpackedBool_; }
+ }
+ public int UnpackedBoolCount {
+ get { return result.UnpackedBoolCount; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return result.GetUnpackedBool(index);
+ }
+ public Builder SetUnpackedBool(int index, bool value) {
+ PrepareBuilder();
+ result.unpackedBool_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedBool(bool value) {
+ PrepareBuilder();
+ result.unpackedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.unpackedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedBool() {
+ PrepareBuilder();
+ result.unpackedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> UnpackedEnumList {
+ get { return PrepareBuilder().unpackedEnum_; }
+ }
+ public int UnpackedEnumCount {
+ get { return result.UnpackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetUnpackedEnum(int index) {
+ return result.GetUnpackedEnum(index);
+ }
+ public Builder SetUnpackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.unpackedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.unpackedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.unpackedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedEnum() {
+ PrepareBuilder();
+ result.unpackedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestUnpackedTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestPackedExtensions : pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder> {
+ private TestPackedExtensions() { }
+ private static readonly TestPackedExtensions defaultInstance = new TestPackedExtensions().MakeReadOnly();
+ private static readonly string[] _testPackedExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testPackedExtensionsFieldTags = new uint[] { };
+ public static TestPackedExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestPackedExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestPackedExtensions, TestPackedExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testPackedExtensionsFieldNames;
+ pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestPackedExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestPackedExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestPackedExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestPackedExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestPackedExtensions result;
+
+ private TestPackedExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestPackedExtensions original = result;
+ result = new TestPackedExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestPackedExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Descriptor; }
+ }
+
+ public override TestPackedExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.DefaultInstance; }
+ }
+
+ public override TestPackedExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestPackedExtensions) {
+ return MergeFrom((TestPackedExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testPackedExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testPackedExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestPackedExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestUnpackedExtensions : pb::ExtendableMessage<TestUnpackedExtensions, TestUnpackedExtensions.Builder> {
+ private TestUnpackedExtensions() { }
+ private static readonly TestUnpackedExtensions defaultInstance = new TestUnpackedExtensions().MakeReadOnly();
+ private static readonly string[] _testUnpackedExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testUnpackedExtensionsFieldTags = new uint[] { };
+ public static TestUnpackedExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestUnpackedExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestUnpackedExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestUnpackedExtensions, TestUnpackedExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testUnpackedExtensionsFieldNames;
+ pb::ExtendableMessage<TestUnpackedExtensions, TestUnpackedExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestUnpackedExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestUnpackedExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestUnpackedExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestUnpackedExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestUnpackedExtensions result;
+
+ private TestUnpackedExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestUnpackedExtensions original = result;
+ result = new TestUnpackedExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestUnpackedExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.Descriptor; }
+ }
+
+ public override TestUnpackedExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.DefaultInstance; }
+ }
+
+ public override TestUnpackedExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestUnpackedExtensions) {
+ return MergeFrom((TestUnpackedExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestUnpackedExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testUnpackedExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testUnpackedExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestUnpackedExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestDynamicExtensions : pb::GeneratedMessage<TestDynamicExtensions, TestDynamicExtensions.Builder> {
+ private TestDynamicExtensions() { }
+ private static readonly TestDynamicExtensions defaultInstance = new TestDynamicExtensions().MakeReadOnly();
+ private static readonly string[] _testDynamicExtensionsFieldNames = new string[] { "dynamic_enum_extension", "dynamic_message_extension", "enum_extension", "message_extension", "packed_extension", "repeated_extension", "scalar_extension" };
+ private static readonly uint[] _testDynamicExtensionsFieldTags = new uint[] { 16016, 16034, 16008, 16026, 16050, 16042, 16005 };
+ public static TestDynamicExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDynamicExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestDynamicExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDynamicExtensions, TestDynamicExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum DynamicEnumType {
+ DYNAMIC_FOO = 2200,
+ DYNAMIC_BAR = 2201,
+ DYNAMIC_BAZ = 2202,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class DynamicMessageType : pb::GeneratedMessage<DynamicMessageType, DynamicMessageType.Builder> {
+ private DynamicMessageType() { }
+ private static readonly DynamicMessageType defaultInstance = new DynamicMessageType().MakeReadOnly();
+ private static readonly string[] _dynamicMessageTypeFieldNames = new string[] { "dynamic_field" };
+ private static readonly uint[] _dynamicMessageTypeFieldTags = new uint[] { 16800 };
+ public static DynamicMessageType DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DynamicMessageType DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override DynamicMessageType ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DynamicMessageType, DynamicMessageType.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable; }
+ }
+
+ public const int DynamicFieldFieldNumber = 2100;
+ private bool hasDynamicField;
+ private int dynamicField_;
+ public bool HasDynamicField {
+ get { return hasDynamicField; }
+ }
+ public int DynamicField {
+ get { return dynamicField_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _dynamicMessageTypeFieldNames;
+ if (hasDynamicField) {
+ output.WriteInt32(2100, field_names[0], DynamicField);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasDynamicField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2100, DynamicField);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static DynamicMessageType ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DynamicMessageType ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private DynamicMessageType MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DynamicMessageType prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<DynamicMessageType, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(DynamicMessageType cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private DynamicMessageType result;
+
+ private DynamicMessageType PrepareBuilder() {
+ if (resultIsReadOnly) {
+ DynamicMessageType original = result;
+ result = new DynamicMessageType();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override DynamicMessageType MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Descriptor; }
+ }
+
+ public override DynamicMessageType DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance; }
+ }
+
+ public override DynamicMessageType BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DynamicMessageType) {
+ return MergeFrom((DynamicMessageType) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DynamicMessageType other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasDynamicField) {
+ DynamicField = other.DynamicField;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_dynamicMessageTypeFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _dynamicMessageTypeFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 16800: {
+ result.hasDynamicField = input.ReadInt32(ref result.dynamicField_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasDynamicField {
+ get { return result.hasDynamicField; }
+ }
+ public int DynamicField {
+ get { return result.DynamicField; }
+ set { SetDynamicField(value); }
+ }
+ public Builder SetDynamicField(int value) {
+ PrepareBuilder();
+ result.hasDynamicField = true;
+ result.dynamicField_ = value;
+ return this;
+ }
+ public Builder ClearDynamicField() {
+ PrepareBuilder();
+ result.hasDynamicField = false;
+ result.dynamicField_ = 0;
+ return this;
+ }
+ }
+ static DynamicMessageType() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int ScalarExtensionFieldNumber = 2000;
+ private bool hasScalarExtension;
+ private uint scalarExtension_;
+ public bool HasScalarExtension {
+ get { return hasScalarExtension; }
+ }
+ public uint ScalarExtension {
+ get { return scalarExtension_; }
+ }
+
+ public const int EnumExtensionFieldNumber = 2001;
+ private bool hasEnumExtension;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum enumExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasEnumExtension {
+ get { return hasEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {
+ get { return enumExtension_; }
+ }
+
+ public const int DynamicEnumExtensionFieldNumber = 2002;
+ private bool hasDynamicEnumExtension;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType dynamicEnumExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType.DYNAMIC_FOO;
+ public bool HasDynamicEnumExtension {
+ get { return hasDynamicEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
+ get { return dynamicEnumExtension_; }
+ }
+
+ public const int MessageExtensionFieldNumber = 2003;
+ private bool hasMessageExtension;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageExtension_;
+ public bool HasMessageExtension {
+ get { return hasMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
+ get { return messageExtension_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int DynamicMessageExtensionFieldNumber = 2004;
+ private bool hasDynamicMessageExtension;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType dynamicMessageExtension_;
+ public bool HasDynamicMessageExtension {
+ get { return hasDynamicMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
+ get { return dynamicMessageExtension_ ?? global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance; }
+ }
+
+ public const int RepeatedExtensionFieldNumber = 2005;
+ private pbc::PopsicleList<string> repeatedExtension_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedExtensionList {
+ get { return pbc::Lists.AsReadOnly(repeatedExtension_); }
+ }
+ public int RepeatedExtensionCount {
+ get { return repeatedExtension_.Count; }
+ }
+ public string GetRepeatedExtension(int index) {
+ return repeatedExtension_[index];
+ }
+
+ public const int PackedExtensionFieldNumber = 2006;
+ private int packedExtensionMemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedExtension_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedExtensionList {
+ get { return pbc::Lists.AsReadOnly(packedExtension_); }
+ }
+ public int PackedExtensionCount {
+ get { return packedExtension_.Count; }
+ }
+ public int GetPackedExtension(int index) {
+ return packedExtension_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testDynamicExtensionsFieldNames;
+ if (hasScalarExtension) {
+ output.WriteFixed32(2000, field_names[6], ScalarExtension);
+ }
+ if (hasEnumExtension) {
+ output.WriteEnum(2001, field_names[2], (int) EnumExtension, EnumExtension);
+ }
+ if (hasDynamicEnumExtension) {
+ output.WriteEnum(2002, field_names[0], (int) DynamicEnumExtension, DynamicEnumExtension);
+ }
+ if (hasMessageExtension) {
+ output.WriteMessage(2003, field_names[3], MessageExtension);
+ }
+ if (hasDynamicMessageExtension) {
+ output.WriteMessage(2004, field_names[1], DynamicMessageExtension);
+ }
+ if (repeatedExtension_.Count > 0) {
+ output.WriteStringArray(2005, field_names[5], repeatedExtension_);
+ }
+ if (packedExtension_.Count > 0) {
+ output.WritePackedSInt32Array(2006, field_names[4], packedExtensionMemoizedSerializedSize, packedExtension_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasScalarExtension) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(2000, ScalarExtension);
+ }
+ if (hasEnumExtension) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2001, (int) EnumExtension);
+ }
+ if (hasDynamicEnumExtension) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2002, (int) DynamicEnumExtension);
+ }
+ if (hasMessageExtension) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2003, MessageExtension);
+ }
+ if (hasDynamicMessageExtension) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2004, DynamicMessageExtension);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedExtensionList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedExtension_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedExtensionList) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedExtension_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedExtensionMemoizedSerializedSize = dataSize;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestDynamicExtensions MakeReadOnly() {
+ repeatedExtension_.MakeReadOnly();
+ packedExtension_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDynamicExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDynamicExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestDynamicExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestDynamicExtensions result;
+
+ private TestDynamicExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestDynamicExtensions original = result;
+ result = new TestDynamicExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestDynamicExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Descriptor; }
+ }
+
+ public override TestDynamicExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.DefaultInstance; }
+ }
+
+ public override TestDynamicExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDynamicExtensions) {
+ return MergeFrom((TestDynamicExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDynamicExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasScalarExtension) {
+ ScalarExtension = other.ScalarExtension;
+ }
+ if (other.HasEnumExtension) {
+ EnumExtension = other.EnumExtension;
+ }
+ if (other.HasDynamicEnumExtension) {
+ DynamicEnumExtension = other.DynamicEnumExtension;
+ }
+ if (other.HasMessageExtension) {
+ MergeMessageExtension(other.MessageExtension);
+ }
+ if (other.HasDynamicMessageExtension) {
+ MergeDynamicMessageExtension(other.DynamicMessageExtension);
+ }
+ if (other.repeatedExtension_.Count != 0) {
+ result.repeatedExtension_.Add(other.repeatedExtension_);
+ }
+ if (other.packedExtension_.Count != 0) {
+ result.packedExtension_.Add(other.packedExtension_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testDynamicExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testDynamicExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 16005: {
+ result.hasScalarExtension = input.ReadFixed32(ref result.scalarExtension_);
+ break;
+ }
+ case 16008: {
+ object unknown;
+ if(input.ReadEnum(ref result.enumExtension_, out unknown)) {
+ result.hasEnumExtension = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2001, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 16016: {
+ object unknown;
+ if(input.ReadEnum(ref result.dynamicEnumExtension_, out unknown)) {
+ result.hasDynamicEnumExtension = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2002, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 16026: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (result.hasMessageExtension) {
+ subBuilder.MergeFrom(MessageExtension);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageExtension = subBuilder.BuildPartial();
+ break;
+ }
+ case 16034: {
+ global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder();
+ if (result.hasDynamicMessageExtension) {
+ subBuilder.MergeFrom(DynamicMessageExtension);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ DynamicMessageExtension = subBuilder.BuildPartial();
+ break;
+ }
+ case 16042: {
+ input.ReadStringArray(tag, field_name, result.repeatedExtension_);
+ break;
+ }
+ case 16050:
+ case 16048: {
+ input.ReadSInt32Array(tag, field_name, result.packedExtension_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasScalarExtension {
+ get { return result.hasScalarExtension; }
+ }
+ public uint ScalarExtension {
+ get { return result.ScalarExtension; }
+ set { SetScalarExtension(value); }
+ }
+ public Builder SetScalarExtension(uint value) {
+ PrepareBuilder();
+ result.hasScalarExtension = true;
+ result.scalarExtension_ = value;
+ return this;
+ }
+ public Builder ClearScalarExtension() {
+ PrepareBuilder();
+ result.hasScalarExtension = false;
+ result.scalarExtension_ = 0;
+ return this;
+ }
+
+ public bool HasEnumExtension {
+ get { return result.hasEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {
+ get { return result.EnumExtension; }
+ set { SetEnumExtension(value); }
+ }
+ public Builder SetEnumExtension(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasEnumExtension = true;
+ result.enumExtension_ = value;
+ return this;
+ }
+ public Builder ClearEnumExtension() {
+ PrepareBuilder();
+ result.hasEnumExtension = false;
+ result.enumExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasDynamicEnumExtension {
+ get { return result.hasDynamicEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
+ get { return result.DynamicEnumExtension; }
+ set { SetDynamicEnumExtension(value); }
+ }
+ public Builder SetDynamicEnumExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType value) {
+ PrepareBuilder();
+ result.hasDynamicEnumExtension = true;
+ result.dynamicEnumExtension_ = value;
+ return this;
+ }
+ public Builder ClearDynamicEnumExtension() {
+ PrepareBuilder();
+ result.hasDynamicEnumExtension = false;
+ result.dynamicEnumExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType.DYNAMIC_FOO;
+ return this;
+ }
+
+ public bool HasMessageExtension {
+ get { return result.hasMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
+ get { return result.MessageExtension; }
+ set { SetMessageExtension(value); }
+ }
+ public Builder SetMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMessageExtension = true;
+ result.messageExtension_ = value;
+ return this;
+ }
+ public Builder SetMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMessageExtension = true;
+ result.messageExtension_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMessageExtension &&
+ result.messageExtension_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageExtension_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageExtension_ = value;
+ }
+ result.hasMessageExtension = true;
+ return this;
+ }
+ public Builder ClearMessageExtension() {
+ PrepareBuilder();
+ result.hasMessageExtension = false;
+ result.messageExtension_ = null;
+ return this;
+ }
+
+ public bool HasDynamicMessageExtension {
+ get { return result.hasDynamicMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
+ get { return result.DynamicMessageExtension; }
+ set { SetDynamicMessageExtension(value); }
+ }
+ public Builder SetDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDynamicMessageExtension = true;
+ result.dynamicMessageExtension_ = value;
+ return this;
+ }
+ public Builder SetDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasDynamicMessageExtension = true;
+ result.dynamicMessageExtension_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasDynamicMessageExtension &&
+ result.dynamicMessageExtension_ != global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) {
+ result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder(result.dynamicMessageExtension_).MergeFrom(value).BuildPartial();
+ } else {
+ result.dynamicMessageExtension_ = value;
+ }
+ result.hasDynamicMessageExtension = true;
+ return this;
+ }
+ public Builder ClearDynamicMessageExtension() {
+ PrepareBuilder();
+ result.hasDynamicMessageExtension = false;
+ result.dynamicMessageExtension_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedExtensionList {
+ get { return PrepareBuilder().repeatedExtension_; }
+ }
+ public int RepeatedExtensionCount {
+ get { return result.RepeatedExtensionCount; }
+ }
+ public string GetRepeatedExtension(int index) {
+ return result.GetRepeatedExtension(index);
+ }
+ public Builder SetRepeatedExtension(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedExtension_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedExtension(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedExtension_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedExtension(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedExtension_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedExtension() {
+ PrepareBuilder();
+ result.repeatedExtension_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedExtensionList {
+ get { return PrepareBuilder().packedExtension_; }
+ }
+ public int PackedExtensionCount {
+ get { return result.PackedExtensionCount; }
+ }
+ public int GetPackedExtension(int index) {
+ return result.GetPackedExtension(index);
+ }
+ public Builder SetPackedExtension(int index, int value) {
+ PrepareBuilder();
+ result.packedExtension_[index] = value;
+ return this;
+ }
+ public Builder AddPackedExtension(int value) {
+ PrepareBuilder();
+ result.packedExtension_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedExtension(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedExtension_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedExtension() {
+ PrepareBuilder();
+ result.packedExtension_.Clear();
+ return this;
+ }
+ }
+ static TestDynamicExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::GeneratedMessage<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> {
+ private TestRepeatedScalarDifferentTagSizes() { }
+ private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new TestRepeatedScalarDifferentTagSizes().MakeReadOnly();
+ private static readonly string[] _testRepeatedScalarDifferentTagSizesFieldNames = new string[] { "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_int32", "repeated_int64", "repeated_uint64" };
+ private static readonly uint[] _testRepeatedScalarDifferentTagSizesFieldTags = new uint[] { 101, 16369, 2097141, 104, 16376, 2097144 };
+ public static TestRepeatedScalarDifferentTagSizes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRepeatedScalarDifferentTagSizes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable; }
+ }
+
+ public const int RepeatedFixed32FieldNumber = 12;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedInt32FieldNumber = 13;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 2046;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 2047;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 262142;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 262143;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRepeatedScalarDifferentTagSizesFieldNames;
+ if (repeatedFixed32_.Count > 0) {
+ output.WriteFixed32Array(12, field_names[0], repeatedFixed32_);
+ }
+ if (repeatedInt32_.Count > 0) {
+ output.WriteInt32Array(13, field_names[3], repeatedInt32_);
+ }
+ if (repeatedFixed64_.Count > 0) {
+ output.WriteFixed64Array(2046, field_names[1], repeatedFixed64_);
+ }
+ if (repeatedInt64_.Count > 0) {
+ output.WriteInt64Array(2047, field_names[4], repeatedInt64_);
+ }
+ if (repeatedFloat_.Count > 0) {
+ output.WriteFloatArray(262142, field_names[2], repeatedFloat_);
+ }
+ if (repeatedUint64_.Count > 0) {
+ output.WriteUInt64Array(262143, field_names[5], repeatedUint64_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 1 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 3 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 3 * repeatedUint64_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRepeatedScalarDifferentTagSizes MakeReadOnly() {
+ repeatedFixed32_.MakeReadOnly();
+ repeatedInt32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRepeatedScalarDifferentTagSizes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRepeatedScalarDifferentTagSizes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRepeatedScalarDifferentTagSizes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRepeatedScalarDifferentTagSizes result;
+
+ private TestRepeatedScalarDifferentTagSizes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRepeatedScalarDifferentTagSizes original = result;
+ result = new TestRepeatedScalarDifferentTagSizes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRepeatedScalarDifferentTagSizes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Descriptor; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.DefaultInstance; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRepeatedScalarDifferentTagSizes) {
+ return MergeFrom((TestRepeatedScalarDifferentTagSizes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRepeatedScalarDifferentTagSizes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.repeatedFixed32_.Count != 0) {
+ result.repeatedFixed32_.Add(other.repeatedFixed32_);
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ result.repeatedInt32_.Add(other.repeatedInt32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ result.repeatedFixed64_.Add(other.repeatedFixed64_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ result.repeatedInt64_.Add(other.repeatedInt64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ result.repeatedFloat_.Add(other.repeatedFloat_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ result.repeatedUint64_.Add(other.repeatedUint64_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRepeatedScalarDifferentTagSizesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRepeatedScalarDifferentTagSizesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 98:
+ case 101: {
+ input.ReadFixed32Array(tag, field_name, result.repeatedFixed32_);
+ break;
+ }
+ case 106:
+ case 104: {
+ input.ReadInt32Array(tag, field_name, result.repeatedInt32_);
+ break;
+ }
+ case 16370:
+ case 16369: {
+ input.ReadFixed64Array(tag, field_name, result.repeatedFixed64_);
+ break;
+ }
+ case 16378:
+ case 16376: {
+ input.ReadInt64Array(tag, field_name, result.repeatedInt64_);
+ break;
+ }
+ case 2097138:
+ case 2097141: {
+ input.ReadFloatArray(tag, field_name, result.repeatedFloat_);
+ break;
+ }
+ case 2097146:
+ case 2097144: {
+ input.ReadUInt64Array(tag, field_name, result.repeatedUint64_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return PrepareBuilder().repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed32(uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ PrepareBuilder();
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return PrepareBuilder().repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ PrepareBuilder();
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return PrepareBuilder().repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed64(ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ PrepareBuilder();
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return PrepareBuilder().repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ PrepareBuilder();
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return PrepareBuilder().repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ PrepareBuilder();
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ PrepareBuilder();
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return PrepareBuilder().repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedUint64(ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ PrepareBuilder();
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+ }
+ static TestRepeatedScalarDifferentTagSizes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestParsingMerge : pb::ExtendableMessage<TestParsingMerge, TestParsingMerge.Builder> {
+ private TestParsingMerge() { }
+ private static readonly TestParsingMerge defaultInstance = new TestParsingMerge().MakeReadOnly();
+ private static readonly string[] _testParsingMergeFieldNames = new string[] { "optional_all_types", "optionalgroup", "repeated_all_types", "repeatedgroup", "required_all_types" };
+ private static readonly uint[] _testParsingMergeFieldTags = new uint[] { 18, 83, 26, 163, 10 };
+ public static TestParsingMerge DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestParsingMerge DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestParsingMerge ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestParsingMerge, TestParsingMerge.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge__FieldAccessorTable; }
+ }
+
+ public const int OptionalExtFieldNumber = 1000;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> OptionalExt;
+ public const int RepeatedExtFieldNumber = 1001;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>> RepeatedExt;
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedFieldsGenerator : pb::GeneratedMessage<RepeatedFieldsGenerator, RepeatedFieldsGenerator.Builder> {
+ private RepeatedFieldsGenerator() { }
+ private static readonly RepeatedFieldsGenerator defaultInstance = new RepeatedFieldsGenerator().MakeReadOnly();
+ private static readonly string[] _repeatedFieldsGeneratorFieldNames = new string[] { "ext1", "ext2", "field1", "field2", "field3", "group1", "group2" };
+ private static readonly uint[] _repeatedFieldsGeneratorFieldTags = new uint[] { 8002, 8010, 10, 18, 26, 83, 163 };
+ public static RepeatedFieldsGenerator DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedFieldsGenerator DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedFieldsGenerator ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedFieldsGenerator, RepeatedFieldsGenerator.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
+ private Group1() { }
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
+ private static readonly string[] _group1FieldNames = new string[] { "field1" };
+ private static readonly uint[] _group1FieldTags = new uint[] { 90 };
+ public static Group1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Group1, Group1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 11;
+ private bool hasField1;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return field1_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group1FieldNames;
+ if (hasField1) {
+ output.WriteMessage(11, field_names[0], Field1);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, Field1);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Group1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group1 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Group1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group1 result;
+
+ private Group1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group1 original = result;
+ result = new Group1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Descriptor; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance; }
+ }
+
+ public override Group1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Group1) {
+ return MergeFrom((Group1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group1 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ MergeField1(other.Field1);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasField1) {
+ subBuilder.MergeFrom(Field1);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field1 = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField1 &&
+ result.field1_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.field1_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.field1_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field1_ = value;
+ }
+ result.hasField1 = true;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = null;
+ return this;
+ }
+ }
+ static Group1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group2 : pb::GeneratedMessage<Group2, Group2.Builder> {
+ private Group2() { }
+ private static readonly Group2 defaultInstance = new Group2().MakeReadOnly();
+ private static readonly string[] _group2FieldNames = new string[] { "field1" };
+ private static readonly uint[] _group2FieldTags = new uint[] { 170 };
+ public static Group2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Group2, Group2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 21;
+ private bool hasField1;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return field1_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group2FieldNames;
+ if (hasField1) {
+ output.WriteMessage(21, field_names[0], Field1);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeMessageSize(21, Field1);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Group2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group2 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Group2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group2 result;
+
+ private Group2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group2 original = result;
+ result = new Group2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Descriptor; }
+ }
+
+ public override Group2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance; }
+ }
+
+ public override Group2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Group2) {
+ return MergeFrom((Group2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ MergeField1(other.Field1);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 170: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasField1) {
+ subBuilder.MergeFrom(Field1);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field1 = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField1 &&
+ result.field1_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.field1_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.field1_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field1_ = value;
+ }
+ result.hasField1 = true;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = null;
+ return this;
+ }
+ }
+ static Group2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> field1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field1List {
+ get { return field1_; }
+ }
+ public int Field1Count {
+ get { return field1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField1(int index) {
+ return field1_[index];
+ }
+
+ public const int Field2FieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> field2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field2List {
+ get { return field2_; }
+ }
+ public int Field2Count {
+ get { return field2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField2(int index) {
+ return field2_[index];
+ }
+
+ public const int Field3FieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> field3_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field3List {
+ get { return field3_; }
+ }
+ public int Field3Count {
+ get { return field3_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField3(int index) {
+ return field3_[index];
+ }
+
+ public const int Group1FieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> group1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> Group1List {
+ get { return group1_; }
+ }
+ public int Group1Count {
+ get { return group1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 GetGroup1(int index) {
+ return group1_[index];
+ }
+
+ public const int Group2FieldNumber = 20;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> group2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> Group2List {
+ get { return group2_; }
+ }
+ public int Group2Count {
+ get { return group2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 GetGroup2(int index) {
+ return group2_[index];
+ }
+
+ public const int Ext1FieldNumber = 1000;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> ext1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext1List {
+ get { return ext1_; }
+ }
+ public int Ext1Count {
+ get { return ext1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt1(int index) {
+ return ext1_[index];
+ }
+
+ public const int Ext2FieldNumber = 1001;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> ext2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext2List {
+ get { return ext2_; }
+ }
+ public int Ext2Count {
+ get { return ext2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt2(int index) {
+ return ext2_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedFieldsGeneratorFieldNames;
+ if (field1_.Count > 0) {
+ output.WriteMessageArray(1, field_names[2], field1_);
+ }
+ if (field2_.Count > 0) {
+ output.WriteMessageArray(2, field_names[3], field2_);
+ }
+ if (field3_.Count > 0) {
+ output.WriteMessageArray(3, field_names[4], field3_);
+ }
+ if (group1_.Count > 0) {
+ output.WriteGroupArray(10, field_names[5], group1_);
+ }
+ if (group2_.Count > 0) {
+ output.WriteGroupArray(20, field_names[6], group2_);
+ }
+ if (ext1_.Count > 0) {
+ output.WriteMessageArray(1000, field_names[0], ext1_);
+ }
+ if (ext2_.Count > 0) {
+ output.WriteMessageArray(1001, field_names[1], ext2_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Field1List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Field2List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Field3List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 element in Group1List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 element in Group2List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(20, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Ext1List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1000, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Ext2List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1001, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedFieldsGenerator MakeReadOnly() {
+ field1_.MakeReadOnly();
+ field2_.MakeReadOnly();
+ field3_.MakeReadOnly();
+ group1_.MakeReadOnly();
+ group2_.MakeReadOnly();
+ ext1_.MakeReadOnly();
+ ext2_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedFieldsGenerator prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedFieldsGenerator, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedFieldsGenerator cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedFieldsGenerator result;
+
+ private RepeatedFieldsGenerator PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedFieldsGenerator original = result;
+ result = new RepeatedFieldsGenerator();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedFieldsGenerator MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Descriptor; }
+ }
+
+ public override RepeatedFieldsGenerator DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.DefaultInstance; }
+ }
+
+ public override RepeatedFieldsGenerator BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedFieldsGenerator) {
+ return MergeFrom((RepeatedFieldsGenerator) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedFieldsGenerator other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.field1_.Count != 0) {
+ result.field1_.Add(other.field1_);
+ }
+ if (other.field2_.Count != 0) {
+ result.field2_.Add(other.field2_);
+ }
+ if (other.field3_.Count != 0) {
+ result.field3_.Add(other.field3_);
+ }
+ if (other.group1_.Count != 0) {
+ result.group1_.Add(other.group1_);
+ }
+ if (other.group2_.Count != 0) {
+ result.group2_.Add(other.group2_);
+ }
+ if (other.ext1_.Count != 0) {
+ result.ext1_.Add(other.ext1_);
+ }
+ if (other.ext2_.Count != 0) {
+ result.ext2_.Add(other.ext2_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedFieldsGeneratorFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedFieldsGeneratorFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadMessageArray(tag, field_name, result.field1_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.field2_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.field3_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 83: {
+ input.ReadGroupArray(tag, field_name, result.group1_, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 163: {
+ input.ReadGroupArray(tag, field_name, result.group2_, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 8002: {
+ input.ReadMessageArray(tag, field_name, result.ext1_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 8010: {
+ input.ReadMessageArray(tag, field_name, result.ext2_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field1List {
+ get { return PrepareBuilder().field1_; }
+ }
+ public int Field1Count {
+ get { return result.Field1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField1(int index) {
+ return result.GetField1(index);
+ }
+ public Builder SetField1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field1_[index] = value;
+ return this;
+ }
+ public Builder SetField1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field1_.Add(value);
+ return this;
+ }
+ public Builder AddField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.field1_.Add(values);
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.field1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field2List {
+ get { return PrepareBuilder().field2_; }
+ }
+ public int Field2Count {
+ get { return result.Field2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField2(int index) {
+ return result.GetField2(index);
+ }
+ public Builder SetField2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field2_[index] = value;
+ return this;
+ }
+ public Builder SetField2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field2_.Add(value);
+ return this;
+ }
+ public Builder AddField2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.field2_.Add(values);
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.field2_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field3List {
+ get { return PrepareBuilder().field3_; }
+ }
+ public int Field3Count {
+ get { return result.Field3Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField3(int index) {
+ return result.GetField3(index);
+ }
+ public Builder SetField3(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field3_[index] = value;
+ return this;
+ }
+ public Builder SetField3(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field3_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField3(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field3_.Add(value);
+ return this;
+ }
+ public Builder AddField3(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field3_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField3(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.field3_.Add(values);
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.field3_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> Group1List {
+ get { return PrepareBuilder().group1_; }
+ }
+ public int Group1Count {
+ get { return result.Group1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 GetGroup1(int index) {
+ return result.GetGroup1(index);
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_[index] = value;
+ return this;
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_.Add(value);
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> values) {
+ PrepareBuilder();
+ result.group1_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup1() {
+ PrepareBuilder();
+ result.group1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> Group2List {
+ get { return PrepareBuilder().group2_; }
+ }
+ public int Group2Count {
+ get { return result.Group2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 GetGroup2(int index) {
+ return result.GetGroup2(index);
+ }
+ public Builder SetGroup2(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group2_[index] = value;
+ return this;
+ }
+ public Builder SetGroup2(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup2(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group2_.Add(value);
+ return this;
+ }
+ public Builder AddGroup2(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> values) {
+ PrepareBuilder();
+ result.group2_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup2() {
+ PrepareBuilder();
+ result.group2_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext1List {
+ get { return PrepareBuilder().ext1_; }
+ }
+ public int Ext1Count {
+ get { return result.Ext1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt1(int index) {
+ return result.GetExt1(index);
+ }
+ public Builder SetExt1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext1_[index] = value;
+ return this;
+ }
+ public Builder SetExt1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExt1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext1_.Add(value);
+ return this;
+ }
+ public Builder AddExt1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExt1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.ext1_.Add(values);
+ return this;
+ }
+ public Builder ClearExt1() {
+ PrepareBuilder();
+ result.ext1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext2List {
+ get { return PrepareBuilder().ext2_; }
+ }
+ public int Ext2Count {
+ get { return result.Ext2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt2(int index) {
+ return result.GetExt2(index);
+ }
+ public Builder SetExt2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext2_[index] = value;
+ return this;
+ }
+ public Builder SetExt2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExt2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext2_.Add(value);
+ return this;
+ }
+ public Builder AddExt2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExt2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.ext2_.Add(values);
+ return this;
+ }
+ public Builder ClearExt2() {
+ PrepareBuilder();
+ result.ext2_.Clear();
+ return this;
+ }
+ }
+ static RepeatedFieldsGenerator() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
+ private OptionalGroup() { }
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
+ private static readonly string[] _optionalGroupFieldNames = new string[] { "optional_group_all_types" };
+ private static readonly uint[] _optionalGroupFieldTags = new uint[] { 90 };
+ public static OptionalGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup, OptionalGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__FieldAccessorTable; }
+ }
+
+ public const int OptionalGroupAllTypesFieldNumber = 11;
+ private bool hasOptionalGroupAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes optionalGroupAllTypes_;
+ public bool HasOptionalGroupAllTypes {
+ get { return hasOptionalGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalGroupAllTypes {
+ get { return optionalGroupAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupFieldNames;
+ if (hasOptionalGroupAllTypes) {
+ output.WriteMessage(11, field_names[0], OptionalGroupAllTypes);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalGroupAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, OptionalGroupAllTypes);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
+
+ private OptionalGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup original = result;
+ result = new OptionalGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Descriptor; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public override OptionalGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup) {
+ return MergeFrom((OptionalGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalGroupAllTypes) {
+ MergeOptionalGroupAllTypes(other.OptionalGroupAllTypes);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasOptionalGroupAllTypes) {
+ subBuilder.MergeFrom(OptionalGroupAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalGroupAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalGroupAllTypes {
+ get { return result.hasOptionalGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalGroupAllTypes {
+ get { return result.OptionalGroupAllTypes; }
+ set { SetOptionalGroupAllTypes(value); }
+ }
+ public Builder SetOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = true;
+ result.optionalGroupAllTypes_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = true;
+ result.optionalGroupAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroupAllTypes &&
+ result.optionalGroupAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.optionalGroupAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.optionalGroupAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroupAllTypes_ = value;
+ }
+ result.hasOptionalGroupAllTypes = true;
+ return this;
+ }
+ public Builder ClearOptionalGroupAllTypes() {
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = false;
+ result.optionalGroupAllTypes_ = null;
+ return this;
+ }
+ }
+ static OptionalGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
+ private RepeatedGroup() { }
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
+ private static readonly string[] _repeatedGroupFieldNames = new string[] { "repeated_group_all_types" };
+ private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 170 };
+ public static RepeatedGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup, RepeatedGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__FieldAccessorTable; }
+ }
+
+ public const int RepeatedGroupAllTypesFieldNumber = 21;
+ private bool hasRepeatedGroupAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes repeatedGroupAllTypes_;
+ public bool HasRepeatedGroupAllTypes {
+ get { return hasRepeatedGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RepeatedGroupAllTypes {
+ get { return repeatedGroupAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupFieldNames;
+ if (hasRepeatedGroupAllTypes) {
+ output.WriteMessage(21, field_names[0], RepeatedGroupAllTypes);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRepeatedGroupAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(21, RepeatedGroupAllTypes);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
+
+ private RepeatedGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup original = result;
+ result = new RepeatedGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Descriptor; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.DefaultInstance; }
+ }
+
+ public override RepeatedGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup) {
+ return MergeFrom((RepeatedGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRepeatedGroupAllTypes) {
+ MergeRepeatedGroupAllTypes(other.RepeatedGroupAllTypes);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 170: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasRepeatedGroupAllTypes) {
+ subBuilder.MergeFrom(RepeatedGroupAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ RepeatedGroupAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasRepeatedGroupAllTypes {
+ get { return result.hasRepeatedGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RepeatedGroupAllTypes {
+ get { return result.RepeatedGroupAllTypes; }
+ set { SetRepeatedGroupAllTypes(value); }
+ }
+ public Builder SetRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = true;
+ result.repeatedGroupAllTypes_ = value;
+ return this;
+ }
+ public Builder SetRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = true;
+ result.repeatedGroupAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasRepeatedGroupAllTypes &&
+ result.repeatedGroupAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.repeatedGroupAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.repeatedGroupAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.repeatedGroupAllTypes_ = value;
+ }
+ result.hasRepeatedGroupAllTypes = true;
+ return this;
+ }
+ public Builder ClearRepeatedGroupAllTypes() {
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = false;
+ result.repeatedGroupAllTypes_ = null;
+ return this;
+ }
+ }
+ static RepeatedGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int RequiredAllTypesFieldNumber = 1;
+ private bool hasRequiredAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes requiredAllTypes_;
+ public bool HasRequiredAllTypes {
+ get { return hasRequiredAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RequiredAllTypes {
+ get { return requiredAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int OptionalAllTypesFieldNumber = 2;
+ private bool hasOptionalAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes optionalAllTypes_;
+ public bool HasOptionalAllTypes {
+ get { return hasOptionalAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalAllTypes {
+ get { return optionalAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int RepeatedAllTypesFieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> repeatedAllTypes_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> RepeatedAllTypesList {
+ get { return repeatedAllTypes_; }
+ }
+ public int RepeatedAllTypesCount {
+ get { return repeatedAllTypes_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetRepeatedAllTypes(int index) {
+ return repeatedAllTypes_[index];
+ }
+
+ public const int OptionalGroupFieldNumber = 10;
+ private bool hasOptionalGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup optionalGroup_;
+ public bool HasOptionalGroup {
+ get { return hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup OptionalGroup {
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public const int RepeatedGroupFieldNumber = 20;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> repeatedGroup_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> RepeatedGroupList {
+ get { return repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return repeatedGroup_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return repeatedGroup_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasRequiredAllTypes) return false;
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testParsingMergeFieldNames;
+ pb::ExtendableMessage<TestParsingMerge, TestParsingMerge.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasRequiredAllTypes) {
+ output.WriteMessage(1, field_names[4], RequiredAllTypes);
+ }
+ if (hasOptionalAllTypes) {
+ output.WriteMessage(2, field_names[0], OptionalAllTypes);
+ }
+ if (repeatedAllTypes_.Count > 0) {
+ output.WriteMessageArray(3, field_names[2], repeatedAllTypes_);
+ }
+ if (hasOptionalGroup) {
+ output.WriteGroup(10, field_names[1], OptionalGroup);
+ }
+ if (repeatedGroup_.Count > 0) {
+ output.WriteGroupArray(20, field_names[3], repeatedGroup_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRequiredAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, RequiredAllTypes);
+ }
+ if (hasOptionalAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, OptionalAllTypes);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in RepeatedAllTypesList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ if (hasOptionalGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, OptionalGroup);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup element in RepeatedGroupList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(20, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestParsingMerge ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMerge ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestParsingMerge ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestParsingMerge MakeReadOnly() {
+ repeatedAllTypes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestParsingMerge prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestParsingMerge, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestParsingMerge cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestParsingMerge result;
+
+ private TestParsingMerge PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestParsingMerge original = result;
+ result = new TestParsingMerge();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestParsingMerge MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Descriptor; }
+ }
+
+ public override TestParsingMerge DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.DefaultInstance; }
+ }
+
+ public override TestParsingMerge BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestParsingMerge) {
+ return MergeFrom((TestParsingMerge) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestParsingMerge other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRequiredAllTypes) {
+ MergeRequiredAllTypes(other.RequiredAllTypes);
+ }
+ if (other.HasOptionalAllTypes) {
+ MergeOptionalAllTypes(other.OptionalAllTypes);
+ }
+ if (other.repeatedAllTypes_.Count != 0) {
+ result.repeatedAllTypes_.Add(other.repeatedAllTypes_);
+ }
+ if (other.HasOptionalGroup) {
+ MergeOptionalGroup(other.OptionalGroup);
+ }
+ if (other.repeatedGroup_.Count != 0) {
+ result.repeatedGroup_.Add(other.repeatedGroup_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testParsingMergeFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testParsingMergeFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasRequiredAllTypes) {
+ subBuilder.MergeFrom(RequiredAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ RequiredAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasOptionalAllTypes) {
+ subBuilder.MergeFrom(OptionalAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.repeatedAllTypes_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 83: {
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.CreateBuilder();
+ if (result.hasOptionalGroup) {
+ subBuilder.MergeFrom(OptionalGroup);
+ }
+ input.ReadGroup(10, subBuilder, extensionRegistry);
+ OptionalGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 163: {
+ input.ReadGroupArray(tag, field_name, result.repeatedGroup_, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasRequiredAllTypes {
+ get { return result.hasRequiredAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RequiredAllTypes {
+ get { return result.RequiredAllTypes; }
+ set { SetRequiredAllTypes(value); }
+ }
+ public Builder SetRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasRequiredAllTypes = true;
+ result.requiredAllTypes_ = value;
+ return this;
+ }
+ public Builder SetRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasRequiredAllTypes = true;
+ result.requiredAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasRequiredAllTypes &&
+ result.requiredAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.requiredAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.requiredAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.requiredAllTypes_ = value;
+ }
+ result.hasRequiredAllTypes = true;
+ return this;
+ }
+ public Builder ClearRequiredAllTypes() {
+ PrepareBuilder();
+ result.hasRequiredAllTypes = false;
+ result.requiredAllTypes_ = null;
+ return this;
+ }
+
+ public bool HasOptionalAllTypes {
+ get { return result.hasOptionalAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalAllTypes {
+ get { return result.OptionalAllTypes; }
+ set { SetOptionalAllTypes(value); }
+ }
+ public Builder SetOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalAllTypes = true;
+ result.optionalAllTypes_ = value;
+ return this;
+ }
+ public Builder SetOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalAllTypes = true;
+ result.optionalAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalAllTypes &&
+ result.optionalAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.optionalAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.optionalAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalAllTypes_ = value;
+ }
+ result.hasOptionalAllTypes = true;
+ return this;
+ }
+ public Builder ClearOptionalAllTypes() {
+ PrepareBuilder();
+ result.hasOptionalAllTypes = false;
+ result.optionalAllTypes_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> RepeatedAllTypesList {
+ get { return PrepareBuilder().repeatedAllTypes_; }
+ }
+ public int RepeatedAllTypesCount {
+ get { return result.RepeatedAllTypesCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetRepeatedAllTypes(int index) {
+ return result.GetRepeatedAllTypes(index);
+ }
+ public Builder SetRepeatedAllTypes(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedAllTypes_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedAllTypes(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedAllTypes_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedAllTypes(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedAllTypes() {
+ PrepareBuilder();
+ result.repeatedAllTypes_.Clear();
+ return this;
+ }
+
+ public bool HasOptionalGroup {
+ get { return result.hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup OptionalGroup {
+ get { return result.OptionalGroup; }
+ set { SetOptionalGroup(value); }
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroup &&
+ result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance) {
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroup_ = value;
+ }
+ result.hasOptionalGroup = true;
+ return this;
+ }
+ public Builder ClearOptionalGroup() {
+ PrepareBuilder();
+ result.hasOptionalGroup = false;
+ result.optionalGroup_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> RepeatedGroupList {
+ get { return PrepareBuilder().repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return result.RepeatedGroupCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return result.GetRepeatedGroup(index);
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedGroup(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> values) {
+ PrepareBuilder();
+ result.repeatedGroup_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedGroup() {
+ PrepareBuilder();
+ result.repeatedGroup_.Clear();
+ return this;
+ }
+ }
+ static TestParsingMerge() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestCommentInjectionMessage : pb::GeneratedMessage<TestCommentInjectionMessage, TestCommentInjectionMessage.Builder> {
+ private TestCommentInjectionMessage() { }
+ private static readonly TestCommentInjectionMessage defaultInstance = new TestCommentInjectionMessage().MakeReadOnly();
+ private static readonly string[] _testCommentInjectionMessageFieldNames = new string[] { "a" };
+ private static readonly uint[] _testCommentInjectionMessageFieldTags = new uint[] { 10 };
+ public static TestCommentInjectionMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestCommentInjectionMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestCommentInjectionMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestCommentInjectionMessage, TestCommentInjectionMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private string a_ = "*/ <- Neither should this.";
+ public bool HasA {
+ get { return hasA; }
+ }
+ public string A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testCommentInjectionMessageFieldNames;
+ if (hasA) {
+ output.WriteString(1, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestCommentInjectionMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestCommentInjectionMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestCommentInjectionMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestCommentInjectionMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestCommentInjectionMessage result;
+
+ private TestCommentInjectionMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestCommentInjectionMessage original = result;
+ result = new TestCommentInjectionMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestCommentInjectionMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.Descriptor; }
+ }
+
+ public override TestCommentInjectionMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.DefaultInstance; }
+ }
+
+ public override TestCommentInjectionMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestCommentInjectionMessage) {
+ return MergeFrom((TestCommentInjectionMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestCommentInjectionMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testCommentInjectionMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testCommentInjectionMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasA = input.ReadString(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public string A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = "*/ <- Neither should this.";
+ return this;
+ }
+ }
+ static TestCommentInjectionMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooRequest : pb::GeneratedMessage<FooRequest, FooRequest.Builder> {
+ private FooRequest() { }
+ private static readonly FooRequest defaultInstance = new FooRequest().MakeReadOnly();
+ private static readonly string[] _fooRequestFieldNames = new string[] { };
+ private static readonly uint[] _fooRequestFieldTags = new uint[] { };
+ public static FooRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooRequest DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooRequest, FooRequest.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooRequest__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooRequestFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooRequest MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooRequest prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooRequest, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooRequest cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooRequest result;
+
+ private FooRequest PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooRequest original = result;
+ result = new FooRequest();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooRequest MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooRequest.Descriptor; }
+ }
+
+ public override FooRequest DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooRequest.DefaultInstance; }
+ }
+
+ public override FooRequest BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooRequest) {
+ return MergeFrom((FooRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooRequest other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooRequest.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooRequestFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooRequestFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooRequest() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooResponse : pb::GeneratedMessage<FooResponse, FooResponse.Builder> {
+ private FooResponse() { }
+ private static readonly FooResponse defaultInstance = new FooResponse().MakeReadOnly();
+ private static readonly string[] _fooResponseFieldNames = new string[] { };
+ private static readonly uint[] _fooResponseFieldTags = new uint[] { };
+ public static FooResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooResponse DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooResponse, FooResponse.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooResponse__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooResponseFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooResponse MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooResponse prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooResponse, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooResponse cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooResponse result;
+
+ private FooResponse PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooResponse original = result;
+ result = new FooResponse();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooResponse MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooResponse.Descriptor; }
+ }
+
+ public override FooResponse DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance; }
+ }
+
+ public override FooResponse BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooResponse) {
+ return MergeFrom((FooResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooResponse other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooResponseFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooResponseFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooResponse() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooClientMessage : pb::GeneratedMessage<FooClientMessage, FooClientMessage.Builder> {
+ private FooClientMessage() { }
+ private static readonly FooClientMessage defaultInstance = new FooClientMessage().MakeReadOnly();
+ private static readonly string[] _fooClientMessageFieldNames = new string[] { };
+ private static readonly uint[] _fooClientMessageFieldTags = new uint[] { };
+ public static FooClientMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooClientMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooClientMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooClientMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooClientMessage, FooClientMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooClientMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooClientMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooClientMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooClientMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooClientMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooClientMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooClientMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooClientMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooClientMessage result;
+
+ private FooClientMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooClientMessage original = result;
+ result = new FooClientMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooClientMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooClientMessage.Descriptor; }
+ }
+
+ public override FooClientMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooClientMessage.DefaultInstance; }
+ }
+
+ public override FooClientMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooClientMessage) {
+ return MergeFrom((FooClientMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooClientMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooClientMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooClientMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooClientMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooClientMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooServerMessage : pb::GeneratedMessage<FooServerMessage, FooServerMessage.Builder> {
+ private FooServerMessage() { }
+ private static readonly FooServerMessage defaultInstance = new FooServerMessage().MakeReadOnly();
+ private static readonly string[] _fooServerMessageFieldNames = new string[] { };
+ private static readonly uint[] _fooServerMessageFieldTags = new uint[] { };
+ public static FooServerMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooServerMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooServerMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooServerMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooServerMessage, FooServerMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooServerMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooServerMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooServerMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooServerMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooServerMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooServerMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooServerMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooServerMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooServerMessage result;
+
+ private FooServerMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooServerMessage original = result;
+ result = new FooServerMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooServerMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooServerMessage.Descriptor; }
+ }
+
+ public override FooServerMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooServerMessage.DefaultInstance; }
+ }
+
+ public override FooServerMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooServerMessage) {
+ return MergeFrom((FooServerMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooServerMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooServerMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooServerMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooServerMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooServerMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BarRequest : pb::GeneratedMessage<BarRequest, BarRequest.Builder> {
+ private BarRequest() { }
+ private static readonly BarRequest defaultInstance = new BarRequest().MakeReadOnly();
+ private static readonly string[] _barRequestFieldNames = new string[] { };
+ private static readonly uint[] _barRequestFieldTags = new uint[] { };
+ public static BarRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BarRequest DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BarRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BarRequest, BarRequest.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarRequest__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _barRequestFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static BarRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BarRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BarRequest MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BarRequest prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<BarRequest, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BarRequest cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BarRequest result;
+
+ private BarRequest PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BarRequest original = result;
+ result = new BarRequest();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BarRequest MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarRequest.Descriptor; }
+ }
+
+ public override BarRequest DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarRequest.DefaultInstance; }
+ }
+
+ public override BarRequest BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BarRequest) {
+ return MergeFrom((BarRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BarRequest other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BarRequest.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_barRequestFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _barRequestFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static BarRequest() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BarResponse : pb::GeneratedMessage<BarResponse, BarResponse.Builder> {
+ private BarResponse() { }
+ private static readonly BarResponse defaultInstance = new BarResponse().MakeReadOnly();
+ private static readonly string[] _barResponseFieldNames = new string[] { };
+ private static readonly uint[] _barResponseFieldTags = new uint[] { };
+ public static BarResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BarResponse DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BarResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BarResponse, BarResponse.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarResponse__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _barResponseFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static BarResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BarResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BarResponse MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BarResponse prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<BarResponse, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BarResponse cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BarResponse result;
+
+ private BarResponse PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BarResponse original = result;
+ result = new BarResponse();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BarResponse MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarResponse.Descriptor; }
+ }
+
+ public override BarResponse DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance; }
+ }
+
+ public override BarResponse BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BarResponse) {
+ return MergeFrom((BarResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BarResponse other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_barResponseFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _barResponseFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static BarResponse() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestCustomOptions.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestCustomOptions.cs
new file mode 100644
index 00000000..4334bfed
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestCustomOptions.cs
@@ -0,0 +1,7543 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_custom_options.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestCustomOptions {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.FileOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.MessageOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.FieldOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.FieldOpt2);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.EnumOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.EnumValueOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.ServiceOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.MethodOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.BoolOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Int32Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Int64Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Uint32Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Uint64Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Sint32Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Sint64Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Fixed32Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Fixed64Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Sfixed32Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Sfixed64Opt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.FloatOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.DoubleOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.StringOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.BytesOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.EnumOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.MessageTypeOpt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Quux);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Corge);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Grault);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Garply);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.ComplexOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.ComplexOpt2);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.ComplexOpt3);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.ComplexOpt6);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Fileopt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Msgopt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Fieldopt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Enumopt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Enumvalopt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Serviceopt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Methodopt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.ComplexOpt4);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement.MessageSetExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Aggregate.Nested);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.NestedOptionType.NestedExtension);
+ }
+ #endregion
+ #region Extensions
+ public const int FileOpt1FieldNumber = 7736974;
+ public static pb::GeneratedExtensionBase<ulong> FileOpt1;
+ public const int MessageOpt1FieldNumber = 7739036;
+ public static pb::GeneratedExtensionBase<int> MessageOpt1;
+ public const int FieldOpt1FieldNumber = 7740936;
+ public static pb::GeneratedExtensionBase<ulong> FieldOpt1;
+ public const int FieldOpt2FieldNumber = 7753913;
+ public static pb::GeneratedExtensionBase<int> FieldOpt2;
+ public const int EnumOpt1FieldNumber = 7753576;
+ public static pb::GeneratedExtensionBase<int> EnumOpt1;
+ public const int EnumValueOpt1FieldNumber = 1560678;
+ public static pb::GeneratedExtensionBase<int> EnumValueOpt1;
+ public const int ServiceOpt1FieldNumber = 7887650;
+ public static pb::GeneratedExtensionBase<long> ServiceOpt1;
+ public const int MethodOpt1FieldNumber = 7890860;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.MethodOpt1> MethodOpt1;
+ public const int BoolOptFieldNumber = 7706090;
+ public static pb::GeneratedExtensionBase<bool> BoolOpt;
+ public const int Int32OptFieldNumber = 7705709;
+ public static pb::GeneratedExtensionBase<int> Int32Opt;
+ public const int Int64OptFieldNumber = 7705542;
+ public static pb::GeneratedExtensionBase<long> Int64Opt;
+ public const int Uint32OptFieldNumber = 7704880;
+ public static pb::GeneratedExtensionBase<uint> Uint32Opt;
+ public const int Uint64OptFieldNumber = 7702367;
+ public static pb::GeneratedExtensionBase<ulong> Uint64Opt;
+ public const int Sint32OptFieldNumber = 7701568;
+ public static pb::GeneratedExtensionBase<int> Sint32Opt;
+ public const int Sint64OptFieldNumber = 7700863;
+ public static pb::GeneratedExtensionBase<long> Sint64Opt;
+ public const int Fixed32OptFieldNumber = 7700307;
+ public static pb::GeneratedExtensionBase<uint> Fixed32Opt;
+ public const int Fixed64OptFieldNumber = 7700194;
+ public static pb::GeneratedExtensionBase<ulong> Fixed64Opt;
+ public const int Sfixed32OptFieldNumber = 7698645;
+ public static pb::GeneratedExtensionBase<int> Sfixed32Opt;
+ public const int Sfixed64OptFieldNumber = 7685475;
+ public static pb::GeneratedExtensionBase<long> Sfixed64Opt;
+ public const int FloatOptFieldNumber = 7675390;
+ public static pb::GeneratedExtensionBase<float> FloatOpt;
+ public const int DoubleOptFieldNumber = 7673293;
+ public static pb::GeneratedExtensionBase<double> DoubleOpt;
+ public const int StringOptFieldNumber = 7673285;
+ public static pb::GeneratedExtensionBase<string> StringOpt;
+ public const int BytesOptFieldNumber = 7673238;
+ public static pb::GeneratedExtensionBase<pb::ByteString> BytesOpt;
+ public const int EnumOptFieldNumber = 7673233;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.Types.TestEnumType> EnumOpt;
+ public const int MessageTypeOptFieldNumber = 7665967;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType> MessageTypeOpt;
+ public const int QuuxFieldNumber = 7663707;
+ public static pb::GeneratedExtensionBase<int> Quux;
+ public const int CorgeFieldNumber = 7663442;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3> Corge;
+ public const int GraultFieldNumber = 7650927;
+ public static pb::GeneratedExtensionBase<int> Grault;
+ public const int GarplyFieldNumber = 7649992;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1> Garply;
+ public const int ComplexOpt1FieldNumber = 7646756;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1> ComplexOpt1;
+ public const int ComplexOpt2FieldNumber = 7636949;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2> ComplexOpt2;
+ public const int ComplexOpt3FieldNumber = 7636463;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3> ComplexOpt3;
+ public const int ComplexOpt6FieldNumber = 7595468;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOpt6> ComplexOpt6;
+ public const int FileoptFieldNumber = 15478479;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.Aggregate> Fileopt;
+ public const int MsgoptFieldNumber = 15480088;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.Aggregate> Msgopt;
+ public const int FieldoptFieldNumber = 15481374;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.Aggregate> Fieldopt;
+ public const int EnumoptFieldNumber = 15483218;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.Aggregate> Enumopt;
+ public const int EnumvaloptFieldNumber = 15486921;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.Aggregate> Enumvalopt;
+ public const int ServiceoptFieldNumber = 15497145;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.Aggregate> Serviceopt;
+ public const int MethodoptFieldNumber = 15512713;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.Aggregate> Methodopt;
+ #endregion
+
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageWithCustomOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageWithCustomOptions, global::Google.ProtocolBuffers.TestProtos.TestMessageWithCustomOptions.Builder> internal__static_protobuf_unittest_TestMessageWithCustomOptions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionFooRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionFooRequest, global::Google.ProtocolBuffers.TestProtos.CustomOptionFooRequest.Builder> internal__static_protobuf_unittest_CustomOptionFooRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionFooResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionFooResponse, global::Google.ProtocolBuffers.TestProtos.CustomOptionFooResponse.Builder> internal__static_protobuf_unittest_CustomOptionFooResponse__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionFooClientMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionFooClientMessage, global::Google.ProtocolBuffers.TestProtos.CustomOptionFooClientMessage.Builder> internal__static_protobuf_unittest_CustomOptionFooClientMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionFooServerMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionFooServerMessage, global::Google.ProtocolBuffers.TestProtos.CustomOptionFooServerMessage.Builder> internal__static_protobuf_unittest_CustomOptionFooServerMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_DummyMessageContainingEnum__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum, global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.Builder> internal__static_protobuf_unittest_DummyMessageContainingEnum__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType, global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType.Builder> internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionMinIntegerValues__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionMinIntegerValues, global::Google.ProtocolBuffers.TestProtos.CustomOptionMinIntegerValues.Builder> internal__static_protobuf_unittest_CustomOptionMinIntegerValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionMaxIntegerValues, global::Google.ProtocolBuffers.TestProtos.CustomOptionMaxIntegerValues.Builder> internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_CustomOptionOtherValues__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionOtherValues, global::Google.ProtocolBuffers.TestProtos.CustomOptionOtherValues.Builder> internal__static_protobuf_unittest_CustomOptionOtherValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_SettingRealsFromPositiveInts__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SettingRealsFromPositiveInts, global::Google.ProtocolBuffers.TestProtos.SettingRealsFromPositiveInts.Builder> internal__static_protobuf_unittest_SettingRealsFromPositiveInts__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_SettingRealsFromNegativeInts__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SettingRealsFromNegativeInts, global::Google.ProtocolBuffers.TestProtos.SettingRealsFromNegativeInts.Builder> internal__static_protobuf_unittest_SettingRealsFromNegativeInts__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.Builder> internal__static_protobuf_unittest_ComplexOptionType1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Builder> internal__static_protobuf_unittest_ComplexOptionType2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Builder> internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType3__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Builder> internal__static_protobuf_unittest_ComplexOptionType3__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.Builder> internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ComplexOpt6__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOpt6, global::Google.ProtocolBuffers.TestProtos.ComplexOpt6.Builder> internal__static_protobuf_unittest_ComplexOpt6__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_VariousComplexOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.VariousComplexOptions, global::Google.ProtocolBuffers.TestProtos.VariousComplexOptions.Builder> internal__static_protobuf_unittest_VariousComplexOptions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_AggregateMessageSet__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet, global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.Builder> internal__static_protobuf_unittest_AggregateMessageSet__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_AggregateMessageSetElement__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement, global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement.Builder> internal__static_protobuf_unittest_AggregateMessageSetElement__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Aggregate__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Aggregate, global::Google.ProtocolBuffers.TestProtos.Aggregate.Builder> internal__static_protobuf_unittest_Aggregate__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_AggregateMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.AggregateMessage, global::Google.ProtocolBuffers.TestProtos.AggregateMessage.Builder> internal__static_protobuf_unittest_AggregateMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_NestedOptionType__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NestedOptionType, global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Builder> internal__static_protobuf_unittest_NestedOptionType__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_NestedOptionType_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Types.NestedMessage.Builder> internal__static_protobuf_unittest_NestedOptionType_NestedMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestCustomOptions() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Ci1nb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfY3VzdG9tX29wdGlvbnMucHJv",
+ "dG8SEXByb3RvYnVmX3VuaXR0ZXN0GiBnb29nbGUvcHJvdG9idWYvZGVzY3Jp",
+ "cHRvci5wcm90byKNAQocVGVzdE1lc3NhZ2VXaXRoQ3VzdG9tT3B0aW9ucxIe",
+ "CgZmaWVsZDEYASABKAlCDggBweDDHS3hdQoCAAAAIjsKBkFuRW51bRIPCgtB",
+ "TkVOVU1fVkFMMRABEhYKC0FORU5VTV9WQUwyEAIaBbCG+gV7GgjF9skd6/z/",
+ "/zoQCADg6cIdyP//////////ASIYChZDdXN0b21PcHRpb25Gb29SZXF1ZXN0",
+ "IhkKF0N1c3RvbU9wdGlvbkZvb1Jlc3BvbnNlIh4KHEN1c3RvbU9wdGlvbkZv",
+ "b0NsaWVudE1lc3NhZ2UiHgocQ3VzdG9tT3B0aW9uRm9vU2VydmVyTWVzc2Fn",
+ "ZSJtChpEdW1teU1lc3NhZ2VDb250YWluaW5nRW51bSJPCgxUZXN0RW51bVR5",
+ "cGUSGgoWVEVTVF9PUFRJT05fRU5VTV9UWVBFMRAWEiMKFlRFU1RfT1BUSU9O",
+ "X0VOVU1fVFlQRTIQ6f//////////ASIhCh9EdW1teU1lc3NhZ2VJbnZhbGlk",
+ "QXNPcHRpb25UeXBlIooBChxDdXN0b21PcHRpb25NaW5JbnRlZ2VyVmFsdWVz",
+ "OmrQ3rIdAOjGsh2AgICA+P////8BsLyyHYCAgICAgICAgAGAk7IdAPj1sB0A",
+ "gMSwHf////8P+JewHf///////////wGd9a8dAAAAAJHurx0AAAAAAAAAAK2N",
+ "rx0AAACAmdaoHQAAAAAAAACAIpEBChxDdXN0b21PcHRpb25NYXhJbnRlZ2Vy",
+ "VmFsdWVzOnHQ3rIdAejGsh3/////B7C8sh3//////////3+Ak7Id/////w/4",
+ "9bAd////////////AYDEsB3+////D/iXsB3+//////////8BnfWvHf////+R",
+ "7q8d//////////+tja8d////f5nWqB3/////////fyJuChdDdXN0b21PcHRp",
+ "b25PdGhlclZhbHVlczpT6MayHZz//////////wH136Md54dFQencoh37WYxC",
+ "ysDzP6rcoh0OSGVsbG8sICJXb3JsZCKy2aIdC0hlbGxvAFdvcmxkiNmiHen/",
+ "/////////wEiNAocU2V0dGluZ1JlYWxzRnJvbVBvc2l0aXZlSW50czoU9d+j",
+ "HQAAQEHp3KIdAAAAAABAY0AiNAocU2V0dGluZ1JlYWxzRnJvbU5lZ2F0aXZl",
+ "SW50czoU9d+jHQAAQMHp3KIdAAAAAABAY8AiVQoSQ29tcGxleE9wdGlvblR5",
+ "cGUxEgsKA2ZvbxgBIAEoBRIMCgRmb28yGAIgASgFEgwKBGZvbzMYAyABKAUS",
+ "DAoEZm9vNBgEIAMoBSoICGQQgICAgAIiiwMKEkNvbXBsZXhPcHRpb25UeXBl",
+ "MhIyCgNiYXIYASABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0",
+ "aW9uVHlwZTESCwoDYmF6GAIgASgFEkYKBGZyZWQYAyABKAsyOC5wcm90b2J1",
+ "Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5",
+ "cGU0EkgKBmJhcm5leRgEIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBs",
+ "ZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTQalwEKEkNvbXBsZXhP",
+ "cHRpb25UeXBlNBINCgV3YWxkbxgBIAEoBTJyCgxjb21wbGV4X29wdDQSHy5n",
+ "b29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYivXRAyABKAsyOC5wcm90",
+ "b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlv",
+ "blR5cGU0KggIZBCAgICAAiKcAQoSQ29tcGxleE9wdGlvblR5cGUzEgsKA3F1",
+ "eBgBIAEoBRJUChJjb21wbGV4b3B0aW9udHlwZTUYAiABKAoyOC5wcm90b2J1",
+ "Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTMuQ29tcGxleE9wdGlvblR5",
+ "cGU1GiMKEkNvbXBsZXhPcHRpb25UeXBlNRINCgVwbHVnaBgDIAEoBSIfCgtD",
+ "b21wbGV4T3B0NhIQCgV4eXp6eRjfv88DIAEoBSLxAQoVVmFyaW91c0NvbXBs",
+ "ZXhPcHRpb25zOtcBouKVHQIIKqLilR0G2IWeHcQCouKVHQiS9Z0dAwjsBqLi",
+ "lR0CIGOi4pUdAiBYqv2QHQMQ2weq/ZAdBvjmlx2OBar9kB0FCgMI5wWq/ZAd",
+ "CAoG2IWeHc8Pqv2QHQoKCJL1nR0DCNgPqv2QHQjCrJcdAwjlBar9kB0LwqyX",
+ "HQbYhZ4dzg+q/ZAdDcKslx0IkvWdHQMIyRDSqI8dAwizD6r9kB0FGgMIwQKq",
+ "/ZAdBCICCGWq/ZAdBSIDCNQB+t6QHQIICfrekB0EExgWFOPc/Bz4/fscGOTc",
+ "/BwiIwoTQWdncmVnYXRlTWVzc2FnZVNldCoICAQQ/////wc6AggBIqABChpB",
+ "Z2dyZWdhdGVNZXNzYWdlU2V0RWxlbWVudBIJCgFzGAEgASgJMncKFW1lc3Nh",
+ "Z2Vfc2V0X2V4dGVuc2lvbhImLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0",
+ "ZU1lc3NhZ2VTZXQY9uuuByABKAsyLS5wcm90b2J1Zl91bml0dGVzdC5BZ2dy",
+ "ZWdhdGVNZXNzYWdlU2V0RWxlbWVudCL9AQoJQWdncmVnYXRlEgkKAWkYASAB",
+ "KAUSCQoBcxgCIAEoCRIpCgNzdWIYAyABKAsyHC5wcm90b2J1Zl91bml0dGVz",
+ "dC5BZ2dyZWdhdGUSKgoEZmlsZRgEIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5G",
+ "aWxlT3B0aW9ucxI0CgRtc2V0GAUgASgLMiYucHJvdG9idWZfdW5pdHRlc3Qu",
+ "QWdncmVnYXRlTWVzc2FnZVNldDJNCgZuZXN0ZWQSHC5nb29nbGUucHJvdG9i",
+ "dWYuRmlsZU9wdGlvbnMYp9GwByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5B",
+ "Z2dyZWdhdGUiWQoQQWdncmVnYXRlTWVzc2FnZRIpCglmaWVsZG5hbWUYASAB",
+ "KAVCFvKhhzsREg9GaWVsZEFubm90YXRpb246GsLRhjsVCGUSEU1lc3NhZ2VB",
+ "bm5vdGF0aW9uIskBChBOZXN0ZWRPcHRpb25UeXBlGjsKDU5lc3RlZE1lc3Nh",
+ "Z2USIgoMbmVzdGVkX2ZpZWxkGAEgASgFQgzB4MMd6gMAAAAAAAA6BuDpwh3p",
+ "ByI1CgpOZXN0ZWRFbnVtEh0KEU5FU1RFRF9FTlVNX1ZBTFVFEAEaBrCG+gXs",
+ "BxoIxfbJHesDAAAyQQoQbmVzdGVkX2V4dGVuc2lvbhIcLmdvb2dsZS5wcm90",
+ "b2J1Zi5GaWxlT3B0aW9ucxj9+OIDIAEoBUIGyIvKHe0HKjYKCk1ldGhvZE9w",
+ "dDESEwoPTUVUSE9ET1BUMV9WQUwxEAESEwoPTUVUSE9ET1BUMV9WQUwyEAIq",
+ "TQoNQWdncmVnYXRlRW51bRIlCgVWQUxVRRABGhrK/Ik7FRITRW51bVZhbHVl",
+ "QW5ub3RhdGlvbhoVkpWIOxASDkVudW1Bbm5vdGF0aW9uMo4BChxUZXN0U2Vy",
+ "dmljZVdpdGhDdXN0b21PcHRpb25zEmMKA0ZvbxIpLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LkN1c3RvbU9wdGlvbkZvb1JlcXVlc3QaKi5wcm90b2J1Zl91bml0dGVz",
+ "dC5DdXN0b21PcHRpb25Gb29SZXNwb25zZSIF4PqMHgIaCZCyix7T24DLSTKZ",
+ "AQoQQWdncmVnYXRlU2VydmljZRJrCgZNZXRob2QSIy5wcm90b2J1Zl91bml0",
+ "dGVzdC5BZ2dyZWdhdGVNZXNzYWdlGiMucHJvdG9idWZfdW5pdHRlc3QuQWdn",
+ "cmVnYXRlTWVzc2FnZSIXysiWOxISEE1ldGhvZEFubm90YXRpb24aGMr7jjsT",
+ "EhFTZXJ2aWNlQW5ub3RhdGlvbjoyCglmaWxlX29wdDESHC5nb29nbGUucHJv",
+ "dG9idWYuRmlsZU9wdGlvbnMYjp3YAyABKAQ6OAoMbWVzc2FnZV9vcHQxEh8u",
+ "Z29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJyt2AMgASgFOjQKCmZp",
+ "ZWxkX29wdDESHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGIi82AMg",
+ "ASgGOjgKCmZpZWxkX29wdDISHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRp",
+ "b25zGLmh2QMgASgFOgI0MjoyCgllbnVtX29wdDESHC5nb29nbGUucHJvdG9i",
+ "dWYuRW51bU9wdGlvbnMY6J7ZAyABKA86PAoPZW51bV92YWx1ZV9vcHQxEiEu",
+ "Z29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMY5qBfIAEoBTo4Cgxz",
+ "ZXJ2aWNlX29wdDESHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMY",
+ "orbhAyABKBI6VQoLbWV0aG9kX29wdDESHi5nb29nbGUucHJvdG9idWYuTWV0",
+ "aG9kT3B0aW9ucxisz+EDIAEoDjIdLnByb3RvYnVmX3VuaXR0ZXN0Lk1ldGhv",
+ "ZE9wdDE6NAoIYm9vbF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9w",
+ "dGlvbnMY6qvWAyABKAg6NQoJaW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVm",
+ "Lk1lc3NhZ2VPcHRpb25zGO2o1gMgASgFOjUKCWludDY0X29wdBIfLmdvb2ds",
+ "ZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjGp9YDIAEoAzo2Cgp1aW50MzJf",
+ "b3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGLCi1gMgASgN",
+ "OjYKCnVpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlv",
+ "bnMY347WAyABKAQ6NgoKc2ludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5N",
+ "ZXNzYWdlT3B0aW9ucxjAiNYDIAEoETo2CgpzaW50NjRfb3B0Eh8uZ29vZ2xl",
+ "LnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP+C1gMgASgSOjcKC2ZpeGVkMzJf",
+ "b3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNP+1QMgASgH",
+ "OjcKC2ZpeGVkNjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRp",
+ "b25zGOL91QMgASgGOjgKDHNmaXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1",
+ "Zi5NZXNzYWdlT3B0aW9ucxjV8dUDIAEoDzo4CgxzZml4ZWQ2NF9vcHQSHy5n",
+ "b29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY44rVAyABKBA6NQoJZmxv",
+ "YXRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP671AMg",
+ "ASgCOjYKCmRvdWJsZV9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9w",
+ "dGlvbnMYzavUAyABKAE6NgoKc3RyaW5nX29wdBIfLmdvb2dsZS5wcm90b2J1",
+ "Zi5NZXNzYWdlT3B0aW9ucxjFq9QDIAEoCTo1CglieXRlc19vcHQSHy5nb29n",
+ "bGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYlqvUAyABKAw6cAoIZW51bV9v",
+ "cHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYkavUAyABKA4y",
+ "Oi5wcm90b2J1Zl91bml0dGVzdC5EdW1teU1lc3NhZ2VDb250YWluaW5nRW51",
+ "bS5UZXN0RW51bVR5cGU6cAoQbWVzc2FnZV90eXBlX29wdBIfLmdvb2dsZS5w",
+ "cm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiv8tMDIAEoCzIyLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LkR1bW15TWVzc2FnZUludmFsaWRBc09wdGlvblR5cGU6NgoEcXV1",
+ "eBIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMRjb4NMD",
+ "IAEoBTpeCgVjb3JnZRIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRp",
+ "b25UeXBlMRjS3tMDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhP",
+ "cHRpb25UeXBlMzo4CgZncmF1bHQSJS5wcm90b2J1Zl91bml0dGVzdC5Db21w",
+ "bGV4T3B0aW9uVHlwZTIY7/zSAyABKAU6XwoGZ2FycGx5EiUucHJvdG9idWZf",
+ "dW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyGMj10gMgASgLMiUucHJvdG9i",
+ "dWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUxOl8KDGNvbXBsZXhfb3B0",
+ "MRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxik3NIDIAEoCzIl",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMTpfCgxjb21w",
+ "bGV4X29wdDISHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1Y/S",
+ "AyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTI6",
+ "XwoMY29tcGxleF9vcHQzEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRp",
+ "b25zGO+L0gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlv",
+ "blR5cGUzOlcKC2NvbXBsZXhvcHQ2Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3Nh",
+ "Z2VPcHRpb25zGMzLzwMgASgKMh4ucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxl",
+ "eE9wdDY6TgoHZmlsZW9wdBIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9u",
+ "cxjP3bAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZTpQCgZt",
+ "c2dvcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYmOqwByAB",
+ "KAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGU6UAoIZmllbGRvcHQS",
+ "HS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGJ70sAcgASgLMhwucHJv",
+ "dG9idWZfdW5pdHRlc3QuQWdncmVnYXRlOk4KB2VudW1vcHQSHC5nb29nbGUu",
+ "cHJvdG9idWYuRW51bU9wdGlvbnMY0oKxByABKAsyHC5wcm90b2J1Zl91bml0",
+ "dGVzdC5BZ2dyZWdhdGU6VgoKZW51bXZhbG9wdBIhLmdvb2dsZS5wcm90b2J1",
+ "Zi5FbnVtVmFsdWVPcHRpb25zGMmfsQcgASgLMhwucHJvdG9idWZfdW5pdHRl",
+ "c3QuQWdncmVnYXRlOlQKCnNlcnZpY2VvcHQSHy5nb29nbGUucHJvdG9idWYu",
+ "U2VydmljZU9wdGlvbnMYue+xByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5B",
+ "Z2dyZWdhdGU6UgoJbWV0aG9kb3B0Eh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhv",
+ "ZE9wdGlvbnMYiemyByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdh",
+ "dGVCqwGAAQGIAQGQAQGqAiFHb29nbGUuUHJvdG9jb2xCdWZmZXJzLlRlc3RQ",
+ "cm90b3Pw6MEd6q3A5ST67IU7cAhkEg5GaWxlQW5ub3RhdGlvbhoWEhROZXN0",
+ "ZWRGaWxlQW5ub3RhdGlvbiIe+uyFOxkSF0ZpbGVFeHRlbnNpb25Bbm5vdGF0",
+ "aW9uKiQLEPbrrgcaGwoZRW1iZWRkZWRNZXNzYWdlU2V0RWxlbWVudAw="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_TestMessageWithCustomOptions__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_TestMessageWithCustomOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageWithCustomOptions, global::Google.ProtocolBuffers.TestProtos.TestMessageWithCustomOptions.Builder>(internal__static_protobuf_unittest_TestMessageWithCustomOptions__Descriptor,
+ new string[] { "Field1", });
+ internal__static_protobuf_unittest_CustomOptionFooRequest__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_CustomOptionFooRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionFooRequest, global::Google.ProtocolBuffers.TestProtos.CustomOptionFooRequest.Builder>(internal__static_protobuf_unittest_CustomOptionFooRequest__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_CustomOptionFooResponse__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_CustomOptionFooResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionFooResponse, global::Google.ProtocolBuffers.TestProtos.CustomOptionFooResponse.Builder>(internal__static_protobuf_unittest_CustomOptionFooResponse__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_CustomOptionFooClientMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_CustomOptionFooClientMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionFooClientMessage, global::Google.ProtocolBuffers.TestProtos.CustomOptionFooClientMessage.Builder>(internal__static_protobuf_unittest_CustomOptionFooClientMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_CustomOptionFooServerMessage__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_protobuf_unittest_CustomOptionFooServerMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionFooServerMessage, global::Google.ProtocolBuffers.TestProtos.CustomOptionFooServerMessage.Builder>(internal__static_protobuf_unittest_CustomOptionFooServerMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_DummyMessageContainingEnum__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_protobuf_unittest_DummyMessageContainingEnum__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum, global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.Builder>(internal__static_protobuf_unittest_DummyMessageContainingEnum__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType, global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType.Builder>(internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_CustomOptionMinIntegerValues__Descriptor = Descriptor.MessageTypes[7];
+ internal__static_protobuf_unittest_CustomOptionMinIntegerValues__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionMinIntegerValues, global::Google.ProtocolBuffers.TestProtos.CustomOptionMinIntegerValues.Builder>(internal__static_protobuf_unittest_CustomOptionMinIntegerValues__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__Descriptor = Descriptor.MessageTypes[8];
+ internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionMaxIntegerValues, global::Google.ProtocolBuffers.TestProtos.CustomOptionMaxIntegerValues.Builder>(internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_CustomOptionOtherValues__Descriptor = Descriptor.MessageTypes[9];
+ internal__static_protobuf_unittest_CustomOptionOtherValues__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.CustomOptionOtherValues, global::Google.ProtocolBuffers.TestProtos.CustomOptionOtherValues.Builder>(internal__static_protobuf_unittest_CustomOptionOtherValues__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_SettingRealsFromPositiveInts__Descriptor = Descriptor.MessageTypes[10];
+ internal__static_protobuf_unittest_SettingRealsFromPositiveInts__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SettingRealsFromPositiveInts, global::Google.ProtocolBuffers.TestProtos.SettingRealsFromPositiveInts.Builder>(internal__static_protobuf_unittest_SettingRealsFromPositiveInts__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_SettingRealsFromNegativeInts__Descriptor = Descriptor.MessageTypes[11];
+ internal__static_protobuf_unittest_SettingRealsFromNegativeInts__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SettingRealsFromNegativeInts, global::Google.ProtocolBuffers.TestProtos.SettingRealsFromNegativeInts.Builder>(internal__static_protobuf_unittest_SettingRealsFromNegativeInts__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_ComplexOptionType1__Descriptor = Descriptor.MessageTypes[12];
+ internal__static_protobuf_unittest_ComplexOptionType1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.Builder>(internal__static_protobuf_unittest_ComplexOptionType1__Descriptor,
+ new string[] { "Foo", "Foo2", "Foo3", "Foo4", });
+ internal__static_protobuf_unittest_ComplexOptionType2__Descriptor = Descriptor.MessageTypes[13];
+ internal__static_protobuf_unittest_ComplexOptionType2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Builder>(internal__static_protobuf_unittest_ComplexOptionType2__Descriptor,
+ new string[] { "Bar", "Baz", "Fred", "Barney", });
+ internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__Descriptor = internal__static_protobuf_unittest_ComplexOptionType2__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Builder>(internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__Descriptor,
+ new string[] { "Waldo", });
+ global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.ComplexOpt4 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Descriptor.Extensions[0]);
+ internal__static_protobuf_unittest_ComplexOptionType3__Descriptor = Descriptor.MessageTypes[14];
+ internal__static_protobuf_unittest_ComplexOptionType3__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Builder>(internal__static_protobuf_unittest_ComplexOptionType3__Descriptor,
+ new string[] { "Qux", "ComplexOptionType5", });
+ internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__Descriptor = internal__static_protobuf_unittest_ComplexOptionType3__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.Builder>(internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__Descriptor,
+ new string[] { "Plugh", });
+ internal__static_protobuf_unittest_ComplexOpt6__Descriptor = Descriptor.MessageTypes[15];
+ internal__static_protobuf_unittest_ComplexOpt6__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOpt6, global::Google.ProtocolBuffers.TestProtos.ComplexOpt6.Builder>(internal__static_protobuf_unittest_ComplexOpt6__Descriptor,
+ new string[] { "Xyzzy", });
+ internal__static_protobuf_unittest_VariousComplexOptions__Descriptor = Descriptor.MessageTypes[16];
+ internal__static_protobuf_unittest_VariousComplexOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.VariousComplexOptions, global::Google.ProtocolBuffers.TestProtos.VariousComplexOptions.Builder>(internal__static_protobuf_unittest_VariousComplexOptions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_AggregateMessageSet__Descriptor = Descriptor.MessageTypes[17];
+ internal__static_protobuf_unittest_AggregateMessageSet__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet, global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.Builder>(internal__static_protobuf_unittest_AggregateMessageSet__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_AggregateMessageSetElement__Descriptor = Descriptor.MessageTypes[18];
+ internal__static_protobuf_unittest_AggregateMessageSetElement__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement, global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement.Builder>(internal__static_protobuf_unittest_AggregateMessageSetElement__Descriptor,
+ new string[] { "S", });
+ global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement.MessageSetExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement.Descriptor.Extensions[0]);
+ internal__static_protobuf_unittest_Aggregate__Descriptor = Descriptor.MessageTypes[19];
+ internal__static_protobuf_unittest_Aggregate__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Aggregate, global::Google.ProtocolBuffers.TestProtos.Aggregate.Builder>(internal__static_protobuf_unittest_Aggregate__Descriptor,
+ new string[] { "I", "S", "Sub", "File", "Mset", });
+ global::Google.ProtocolBuffers.TestProtos.Aggregate.Nested = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.Aggregate>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Aggregate.Descriptor.Extensions[0]);
+ internal__static_protobuf_unittest_AggregateMessage__Descriptor = Descriptor.MessageTypes[20];
+ internal__static_protobuf_unittest_AggregateMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.AggregateMessage, global::Google.ProtocolBuffers.TestProtos.AggregateMessage.Builder>(internal__static_protobuf_unittest_AggregateMessage__Descriptor,
+ new string[] { "Fieldname", });
+ internal__static_protobuf_unittest_NestedOptionType__Descriptor = Descriptor.MessageTypes[21];
+ internal__static_protobuf_unittest_NestedOptionType__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NestedOptionType, global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Builder>(internal__static_protobuf_unittest_NestedOptionType__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_NestedOptionType_NestedMessage__Descriptor = internal__static_protobuf_unittest_NestedOptionType__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_NestedOptionType_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_NestedOptionType_NestedMessage__Descriptor,
+ new string[] { "NestedField", });
+ global::Google.ProtocolBuffers.TestProtos.NestedOptionType.NestedExtension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.FileOpt1 = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.MessageOpt1 = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[1]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.FieldOpt1 = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[2]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.FieldOpt2 = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[3]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.EnumOpt1 = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[4]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.EnumValueOpt1 = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[5]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.ServiceOpt1 = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[6]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.MethodOpt1 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.MethodOpt1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[7]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.BoolOpt = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[8]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Int32Opt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[9]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Int64Opt = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[10]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Uint32Opt = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[11]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Uint64Opt = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[12]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Sint32Opt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[13]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Sint64Opt = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[14]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Fixed32Opt = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[15]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Fixed64Opt = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[16]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Sfixed32Opt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[17]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Sfixed64Opt = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[18]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.FloatOpt = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[19]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.DoubleOpt = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[20]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.StringOpt = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[21]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.BytesOpt = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[22]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.EnumOpt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.Types.TestEnumType>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[23]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.MessageTypeOpt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[24]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Quux = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[25]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Corge = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[26]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Grault = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[27]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Garply = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[28]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.ComplexOpt1 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[29]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.ComplexOpt2 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[30]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.ComplexOpt3 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[31]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.ComplexOpt6 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOpt6>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[32]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Fileopt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.Aggregate>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[33]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Msgopt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.Aggregate>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[34]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Fieldopt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.Aggregate>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[35]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Enumopt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.Aggregate>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[36]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Enumvalopt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.Aggregate>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[37]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Serviceopt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.Aggregate>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[38]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Methodopt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.Aggregate>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor.Extensions[39]);
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum MethodOpt1 {
+ METHODOPT1_VAL1 = 1,
+ METHODOPT1_VAL2 = 2,
+ }
+
+ public enum AggregateEnum {
+ VALUE = 1,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMessageWithCustomOptions : pb::GeneratedMessage<TestMessageWithCustomOptions, TestMessageWithCustomOptions.Builder> {
+ private TestMessageWithCustomOptions() { }
+ private static readonly TestMessageWithCustomOptions defaultInstance = new TestMessageWithCustomOptions().MakeReadOnly();
+ private static readonly string[] _testMessageWithCustomOptionsFieldNames = new string[] { "field1" };
+ private static readonly uint[] _testMessageWithCustomOptionsFieldTags = new uint[] { 10 };
+ public static TestMessageWithCustomOptions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMessageWithCustomOptions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMessageWithCustomOptions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_TestMessageWithCustomOptions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMessageWithCustomOptions, TestMessageWithCustomOptions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_TestMessageWithCustomOptions__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum AnEnum {
+ ANENUM_VAL1 = 1,
+ ANENUM_VAL2 = 2,
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMessageWithCustomOptionsFieldNames;
+ if (hasField1) {
+ output.WriteString(1, field_names[0], Field1);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Field1);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMessageWithCustomOptions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessageWithCustomOptions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageWithCustomOptions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessageWithCustomOptions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageWithCustomOptions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessageWithCustomOptions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageWithCustomOptions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMessageWithCustomOptions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMessageWithCustomOptions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessageWithCustomOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMessageWithCustomOptions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMessageWithCustomOptions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMessageWithCustomOptions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMessageWithCustomOptions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMessageWithCustomOptions result;
+
+ private TestMessageWithCustomOptions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMessageWithCustomOptions original = result;
+ result = new TestMessageWithCustomOptions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMessageWithCustomOptions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMessageWithCustomOptions.Descriptor; }
+ }
+
+ public override TestMessageWithCustomOptions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMessageWithCustomOptions.DefaultInstance; }
+ }
+
+ public override TestMessageWithCustomOptions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMessageWithCustomOptions) {
+ return MergeFrom((TestMessageWithCustomOptions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMessageWithCustomOptions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageWithCustomOptions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMessageWithCustomOptionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMessageWithCustomOptionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasField1 = input.ReadString(ref result.field1_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+ }
+ static TestMessageWithCustomOptions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class CustomOptionFooRequest : pb::GeneratedMessage<CustomOptionFooRequest, CustomOptionFooRequest.Builder> {
+ private CustomOptionFooRequest() { }
+ private static readonly CustomOptionFooRequest defaultInstance = new CustomOptionFooRequest().MakeReadOnly();
+ private static readonly string[] _customOptionFooRequestFieldNames = new string[] { };
+ private static readonly uint[] _customOptionFooRequestFieldTags = new uint[] { };
+ public static CustomOptionFooRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override CustomOptionFooRequest DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override CustomOptionFooRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionFooRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<CustomOptionFooRequest, CustomOptionFooRequest.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionFooRequest__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _customOptionFooRequestFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static CustomOptionFooRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionFooRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionFooRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionFooRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static CustomOptionFooRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static CustomOptionFooRequest ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionFooRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private CustomOptionFooRequest MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(CustomOptionFooRequest prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionFooRequest, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(CustomOptionFooRequest cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private CustomOptionFooRequest result;
+
+ private CustomOptionFooRequest PrepareBuilder() {
+ if (resultIsReadOnly) {
+ CustomOptionFooRequest original = result;
+ result = new CustomOptionFooRequest();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override CustomOptionFooRequest MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionFooRequest.Descriptor; }
+ }
+
+ public override CustomOptionFooRequest DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionFooRequest.DefaultInstance; }
+ }
+
+ public override CustomOptionFooRequest BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is CustomOptionFooRequest) {
+ return MergeFrom((CustomOptionFooRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(CustomOptionFooRequest other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.CustomOptionFooRequest.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_customOptionFooRequestFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _customOptionFooRequestFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static CustomOptionFooRequest() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class CustomOptionFooResponse : pb::GeneratedMessage<CustomOptionFooResponse, CustomOptionFooResponse.Builder> {
+ private CustomOptionFooResponse() { }
+ private static readonly CustomOptionFooResponse defaultInstance = new CustomOptionFooResponse().MakeReadOnly();
+ private static readonly string[] _customOptionFooResponseFieldNames = new string[] { };
+ private static readonly uint[] _customOptionFooResponseFieldTags = new uint[] { };
+ public static CustomOptionFooResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override CustomOptionFooResponse DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override CustomOptionFooResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionFooResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<CustomOptionFooResponse, CustomOptionFooResponse.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionFooResponse__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _customOptionFooResponseFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static CustomOptionFooResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionFooResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionFooResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionFooResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static CustomOptionFooResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static CustomOptionFooResponse ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionFooResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private CustomOptionFooResponse MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(CustomOptionFooResponse prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionFooResponse, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(CustomOptionFooResponse cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private CustomOptionFooResponse result;
+
+ private CustomOptionFooResponse PrepareBuilder() {
+ if (resultIsReadOnly) {
+ CustomOptionFooResponse original = result;
+ result = new CustomOptionFooResponse();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override CustomOptionFooResponse MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionFooResponse.Descriptor; }
+ }
+
+ public override CustomOptionFooResponse DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionFooResponse.DefaultInstance; }
+ }
+
+ public override CustomOptionFooResponse BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is CustomOptionFooResponse) {
+ return MergeFrom((CustomOptionFooResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(CustomOptionFooResponse other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.CustomOptionFooResponse.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_customOptionFooResponseFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _customOptionFooResponseFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static CustomOptionFooResponse() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class CustomOptionFooClientMessage : pb::GeneratedMessage<CustomOptionFooClientMessage, CustomOptionFooClientMessage.Builder> {
+ private CustomOptionFooClientMessage() { }
+ private static readonly CustomOptionFooClientMessage defaultInstance = new CustomOptionFooClientMessage().MakeReadOnly();
+ private static readonly string[] _customOptionFooClientMessageFieldNames = new string[] { };
+ private static readonly uint[] _customOptionFooClientMessageFieldTags = new uint[] { };
+ public static CustomOptionFooClientMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override CustomOptionFooClientMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override CustomOptionFooClientMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionFooClientMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<CustomOptionFooClientMessage, CustomOptionFooClientMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionFooClientMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _customOptionFooClientMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static CustomOptionFooClientMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionFooClientMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooClientMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionFooClientMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooClientMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionFooClientMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooClientMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static CustomOptionFooClientMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static CustomOptionFooClientMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionFooClientMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private CustomOptionFooClientMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(CustomOptionFooClientMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionFooClientMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(CustomOptionFooClientMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private CustomOptionFooClientMessage result;
+
+ private CustomOptionFooClientMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ CustomOptionFooClientMessage original = result;
+ result = new CustomOptionFooClientMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override CustomOptionFooClientMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionFooClientMessage.Descriptor; }
+ }
+
+ public override CustomOptionFooClientMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionFooClientMessage.DefaultInstance; }
+ }
+
+ public override CustomOptionFooClientMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is CustomOptionFooClientMessage) {
+ return MergeFrom((CustomOptionFooClientMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(CustomOptionFooClientMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.CustomOptionFooClientMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_customOptionFooClientMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _customOptionFooClientMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static CustomOptionFooClientMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class CustomOptionFooServerMessage : pb::GeneratedMessage<CustomOptionFooServerMessage, CustomOptionFooServerMessage.Builder> {
+ private CustomOptionFooServerMessage() { }
+ private static readonly CustomOptionFooServerMessage defaultInstance = new CustomOptionFooServerMessage().MakeReadOnly();
+ private static readonly string[] _customOptionFooServerMessageFieldNames = new string[] { };
+ private static readonly uint[] _customOptionFooServerMessageFieldTags = new uint[] { };
+ public static CustomOptionFooServerMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override CustomOptionFooServerMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override CustomOptionFooServerMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionFooServerMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<CustomOptionFooServerMessage, CustomOptionFooServerMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionFooServerMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _customOptionFooServerMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static CustomOptionFooServerMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionFooServerMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooServerMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionFooServerMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooServerMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionFooServerMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionFooServerMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static CustomOptionFooServerMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static CustomOptionFooServerMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionFooServerMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private CustomOptionFooServerMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(CustomOptionFooServerMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionFooServerMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(CustomOptionFooServerMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private CustomOptionFooServerMessage result;
+
+ private CustomOptionFooServerMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ CustomOptionFooServerMessage original = result;
+ result = new CustomOptionFooServerMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override CustomOptionFooServerMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionFooServerMessage.Descriptor; }
+ }
+
+ public override CustomOptionFooServerMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionFooServerMessage.DefaultInstance; }
+ }
+
+ public override CustomOptionFooServerMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is CustomOptionFooServerMessage) {
+ return MergeFrom((CustomOptionFooServerMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(CustomOptionFooServerMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.CustomOptionFooServerMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_customOptionFooServerMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _customOptionFooServerMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static CustomOptionFooServerMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class DummyMessageContainingEnum : pb::GeneratedMessage<DummyMessageContainingEnum, DummyMessageContainingEnum.Builder> {
+ private DummyMessageContainingEnum() { }
+ private static readonly DummyMessageContainingEnum defaultInstance = new DummyMessageContainingEnum().MakeReadOnly();
+ private static readonly string[] _dummyMessageContainingEnumFieldNames = new string[] { };
+ private static readonly uint[] _dummyMessageContainingEnumFieldTags = new uint[] { };
+ public static DummyMessageContainingEnum DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DummyMessageContainingEnum DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override DummyMessageContainingEnum ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_DummyMessageContainingEnum__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DummyMessageContainingEnum, DummyMessageContainingEnum.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_DummyMessageContainingEnum__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum TestEnumType {
+ TEST_OPTION_ENUM_TYPE1 = 22,
+ TEST_OPTION_ENUM_TYPE2 = -23,
+ }
+
+ }
+ #endregion
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _dummyMessageContainingEnumFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static DummyMessageContainingEnum ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DummyMessageContainingEnum ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DummyMessageContainingEnum ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DummyMessageContainingEnum ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DummyMessageContainingEnum ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DummyMessageContainingEnum ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DummyMessageContainingEnum ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DummyMessageContainingEnum ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DummyMessageContainingEnum ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DummyMessageContainingEnum ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private DummyMessageContainingEnum MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DummyMessageContainingEnum prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<DummyMessageContainingEnum, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(DummyMessageContainingEnum cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private DummyMessageContainingEnum result;
+
+ private DummyMessageContainingEnum PrepareBuilder() {
+ if (resultIsReadOnly) {
+ DummyMessageContainingEnum original = result;
+ result = new DummyMessageContainingEnum();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override DummyMessageContainingEnum MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.Descriptor; }
+ }
+
+ public override DummyMessageContainingEnum DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.DefaultInstance; }
+ }
+
+ public override DummyMessageContainingEnum BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DummyMessageContainingEnum) {
+ return MergeFrom((DummyMessageContainingEnum) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DummyMessageContainingEnum other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_dummyMessageContainingEnumFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _dummyMessageContainingEnumFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static DummyMessageContainingEnum() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class DummyMessageInvalidAsOptionType : pb::GeneratedMessage<DummyMessageInvalidAsOptionType, DummyMessageInvalidAsOptionType.Builder> {
+ private DummyMessageInvalidAsOptionType() { }
+ private static readonly DummyMessageInvalidAsOptionType defaultInstance = new DummyMessageInvalidAsOptionType().MakeReadOnly();
+ private static readonly string[] _dummyMessageInvalidAsOptionTypeFieldNames = new string[] { };
+ private static readonly uint[] _dummyMessageInvalidAsOptionTypeFieldTags = new uint[] { };
+ public static DummyMessageInvalidAsOptionType DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DummyMessageInvalidAsOptionType DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override DummyMessageInvalidAsOptionType ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DummyMessageInvalidAsOptionType, DummyMessageInvalidAsOptionType.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_DummyMessageInvalidAsOptionType__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _dummyMessageInvalidAsOptionTypeFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static DummyMessageInvalidAsOptionType ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DummyMessageInvalidAsOptionType ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DummyMessageInvalidAsOptionType ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DummyMessageInvalidAsOptionType ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DummyMessageInvalidAsOptionType ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DummyMessageInvalidAsOptionType ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DummyMessageInvalidAsOptionType ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DummyMessageInvalidAsOptionType ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DummyMessageInvalidAsOptionType ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DummyMessageInvalidAsOptionType ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private DummyMessageInvalidAsOptionType MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DummyMessageInvalidAsOptionType prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<DummyMessageInvalidAsOptionType, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(DummyMessageInvalidAsOptionType cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private DummyMessageInvalidAsOptionType result;
+
+ private DummyMessageInvalidAsOptionType PrepareBuilder() {
+ if (resultIsReadOnly) {
+ DummyMessageInvalidAsOptionType original = result;
+ result = new DummyMessageInvalidAsOptionType();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override DummyMessageInvalidAsOptionType MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType.Descriptor; }
+ }
+
+ public override DummyMessageInvalidAsOptionType DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType.DefaultInstance; }
+ }
+
+ public override DummyMessageInvalidAsOptionType BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DummyMessageInvalidAsOptionType) {
+ return MergeFrom((DummyMessageInvalidAsOptionType) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DummyMessageInvalidAsOptionType other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_dummyMessageInvalidAsOptionTypeFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _dummyMessageInvalidAsOptionTypeFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static DummyMessageInvalidAsOptionType() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class CustomOptionMinIntegerValues : pb::GeneratedMessage<CustomOptionMinIntegerValues, CustomOptionMinIntegerValues.Builder> {
+ private CustomOptionMinIntegerValues() { }
+ private static readonly CustomOptionMinIntegerValues defaultInstance = new CustomOptionMinIntegerValues().MakeReadOnly();
+ private static readonly string[] _customOptionMinIntegerValuesFieldNames = new string[] { };
+ private static readonly uint[] _customOptionMinIntegerValuesFieldTags = new uint[] { };
+ public static CustomOptionMinIntegerValues DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override CustomOptionMinIntegerValues DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override CustomOptionMinIntegerValues ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionMinIntegerValues__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<CustomOptionMinIntegerValues, CustomOptionMinIntegerValues.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionMinIntegerValues__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _customOptionMinIntegerValuesFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static CustomOptionMinIntegerValues ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionMinIntegerValues ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionMinIntegerValues ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionMinIntegerValues ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionMinIntegerValues ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionMinIntegerValues ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionMinIntegerValues ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static CustomOptionMinIntegerValues ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static CustomOptionMinIntegerValues ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionMinIntegerValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private CustomOptionMinIntegerValues MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(CustomOptionMinIntegerValues prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionMinIntegerValues, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(CustomOptionMinIntegerValues cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private CustomOptionMinIntegerValues result;
+
+ private CustomOptionMinIntegerValues PrepareBuilder() {
+ if (resultIsReadOnly) {
+ CustomOptionMinIntegerValues original = result;
+ result = new CustomOptionMinIntegerValues();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override CustomOptionMinIntegerValues MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionMinIntegerValues.Descriptor; }
+ }
+
+ public override CustomOptionMinIntegerValues DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionMinIntegerValues.DefaultInstance; }
+ }
+
+ public override CustomOptionMinIntegerValues BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is CustomOptionMinIntegerValues) {
+ return MergeFrom((CustomOptionMinIntegerValues) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(CustomOptionMinIntegerValues other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.CustomOptionMinIntegerValues.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_customOptionMinIntegerValuesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _customOptionMinIntegerValuesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static CustomOptionMinIntegerValues() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class CustomOptionMaxIntegerValues : pb::GeneratedMessage<CustomOptionMaxIntegerValues, CustomOptionMaxIntegerValues.Builder> {
+ private CustomOptionMaxIntegerValues() { }
+ private static readonly CustomOptionMaxIntegerValues defaultInstance = new CustomOptionMaxIntegerValues().MakeReadOnly();
+ private static readonly string[] _customOptionMaxIntegerValuesFieldNames = new string[] { };
+ private static readonly uint[] _customOptionMaxIntegerValuesFieldTags = new uint[] { };
+ public static CustomOptionMaxIntegerValues DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override CustomOptionMaxIntegerValues DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override CustomOptionMaxIntegerValues ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<CustomOptionMaxIntegerValues, CustomOptionMaxIntegerValues.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionMaxIntegerValues__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _customOptionMaxIntegerValuesFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static CustomOptionMaxIntegerValues ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionMaxIntegerValues ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionMaxIntegerValues ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionMaxIntegerValues ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionMaxIntegerValues ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionMaxIntegerValues ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionMaxIntegerValues ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static CustomOptionMaxIntegerValues ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static CustomOptionMaxIntegerValues ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionMaxIntegerValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private CustomOptionMaxIntegerValues MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(CustomOptionMaxIntegerValues prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionMaxIntegerValues, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(CustomOptionMaxIntegerValues cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private CustomOptionMaxIntegerValues result;
+
+ private CustomOptionMaxIntegerValues PrepareBuilder() {
+ if (resultIsReadOnly) {
+ CustomOptionMaxIntegerValues original = result;
+ result = new CustomOptionMaxIntegerValues();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override CustomOptionMaxIntegerValues MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionMaxIntegerValues.Descriptor; }
+ }
+
+ public override CustomOptionMaxIntegerValues DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionMaxIntegerValues.DefaultInstance; }
+ }
+
+ public override CustomOptionMaxIntegerValues BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is CustomOptionMaxIntegerValues) {
+ return MergeFrom((CustomOptionMaxIntegerValues) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(CustomOptionMaxIntegerValues other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.CustomOptionMaxIntegerValues.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_customOptionMaxIntegerValuesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _customOptionMaxIntegerValuesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static CustomOptionMaxIntegerValues() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class CustomOptionOtherValues : pb::GeneratedMessage<CustomOptionOtherValues, CustomOptionOtherValues.Builder> {
+ private CustomOptionOtherValues() { }
+ private static readonly CustomOptionOtherValues defaultInstance = new CustomOptionOtherValues().MakeReadOnly();
+ private static readonly string[] _customOptionOtherValuesFieldNames = new string[] { };
+ private static readonly uint[] _customOptionOtherValuesFieldTags = new uint[] { };
+ public static CustomOptionOtherValues DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override CustomOptionOtherValues DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override CustomOptionOtherValues ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionOtherValues__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<CustomOptionOtherValues, CustomOptionOtherValues.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_CustomOptionOtherValues__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _customOptionOtherValuesFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static CustomOptionOtherValues ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionOtherValues ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionOtherValues ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static CustomOptionOtherValues ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionOtherValues ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionOtherValues ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static CustomOptionOtherValues ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static CustomOptionOtherValues ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static CustomOptionOtherValues ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static CustomOptionOtherValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private CustomOptionOtherValues MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(CustomOptionOtherValues prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<CustomOptionOtherValues, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(CustomOptionOtherValues cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private CustomOptionOtherValues result;
+
+ private CustomOptionOtherValues PrepareBuilder() {
+ if (resultIsReadOnly) {
+ CustomOptionOtherValues original = result;
+ result = new CustomOptionOtherValues();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override CustomOptionOtherValues MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionOtherValues.Descriptor; }
+ }
+
+ public override CustomOptionOtherValues DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.CustomOptionOtherValues.DefaultInstance; }
+ }
+
+ public override CustomOptionOtherValues BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is CustomOptionOtherValues) {
+ return MergeFrom((CustomOptionOtherValues) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(CustomOptionOtherValues other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.CustomOptionOtherValues.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_customOptionOtherValuesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _customOptionOtherValuesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static CustomOptionOtherValues() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SettingRealsFromPositiveInts : pb::GeneratedMessage<SettingRealsFromPositiveInts, SettingRealsFromPositiveInts.Builder> {
+ private SettingRealsFromPositiveInts() { }
+ private static readonly SettingRealsFromPositiveInts defaultInstance = new SettingRealsFromPositiveInts().MakeReadOnly();
+ private static readonly string[] _settingRealsFromPositiveIntsFieldNames = new string[] { };
+ private static readonly uint[] _settingRealsFromPositiveIntsFieldTags = new uint[] { };
+ public static SettingRealsFromPositiveInts DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SettingRealsFromPositiveInts DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SettingRealsFromPositiveInts ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_SettingRealsFromPositiveInts__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SettingRealsFromPositiveInts, SettingRealsFromPositiveInts.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_SettingRealsFromPositiveInts__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _settingRealsFromPositiveIntsFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SettingRealsFromPositiveInts ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SettingRealsFromPositiveInts ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SettingRealsFromPositiveInts ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SettingRealsFromPositiveInts ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SettingRealsFromPositiveInts ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SettingRealsFromPositiveInts ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SettingRealsFromPositiveInts ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SettingRealsFromPositiveInts ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SettingRealsFromPositiveInts ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SettingRealsFromPositiveInts ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SettingRealsFromPositiveInts MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SettingRealsFromPositiveInts prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SettingRealsFromPositiveInts, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SettingRealsFromPositiveInts cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SettingRealsFromPositiveInts result;
+
+ private SettingRealsFromPositiveInts PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SettingRealsFromPositiveInts original = result;
+ result = new SettingRealsFromPositiveInts();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SettingRealsFromPositiveInts MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SettingRealsFromPositiveInts.Descriptor; }
+ }
+
+ public override SettingRealsFromPositiveInts DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SettingRealsFromPositiveInts.DefaultInstance; }
+ }
+
+ public override SettingRealsFromPositiveInts BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SettingRealsFromPositiveInts) {
+ return MergeFrom((SettingRealsFromPositiveInts) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SettingRealsFromPositiveInts other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SettingRealsFromPositiveInts.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_settingRealsFromPositiveIntsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _settingRealsFromPositiveIntsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static SettingRealsFromPositiveInts() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SettingRealsFromNegativeInts : pb::GeneratedMessage<SettingRealsFromNegativeInts, SettingRealsFromNegativeInts.Builder> {
+ private SettingRealsFromNegativeInts() { }
+ private static readonly SettingRealsFromNegativeInts defaultInstance = new SettingRealsFromNegativeInts().MakeReadOnly();
+ private static readonly string[] _settingRealsFromNegativeIntsFieldNames = new string[] { };
+ private static readonly uint[] _settingRealsFromNegativeIntsFieldTags = new uint[] { };
+ public static SettingRealsFromNegativeInts DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SettingRealsFromNegativeInts DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SettingRealsFromNegativeInts ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_SettingRealsFromNegativeInts__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SettingRealsFromNegativeInts, SettingRealsFromNegativeInts.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_SettingRealsFromNegativeInts__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _settingRealsFromNegativeIntsFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SettingRealsFromNegativeInts ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SettingRealsFromNegativeInts ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SettingRealsFromNegativeInts ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SettingRealsFromNegativeInts ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SettingRealsFromNegativeInts ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SettingRealsFromNegativeInts ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SettingRealsFromNegativeInts ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SettingRealsFromNegativeInts ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SettingRealsFromNegativeInts ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SettingRealsFromNegativeInts ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SettingRealsFromNegativeInts MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SettingRealsFromNegativeInts prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SettingRealsFromNegativeInts, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SettingRealsFromNegativeInts cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SettingRealsFromNegativeInts result;
+
+ private SettingRealsFromNegativeInts PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SettingRealsFromNegativeInts original = result;
+ result = new SettingRealsFromNegativeInts();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SettingRealsFromNegativeInts MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SettingRealsFromNegativeInts.Descriptor; }
+ }
+
+ public override SettingRealsFromNegativeInts DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SettingRealsFromNegativeInts.DefaultInstance; }
+ }
+
+ public override SettingRealsFromNegativeInts BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SettingRealsFromNegativeInts) {
+ return MergeFrom((SettingRealsFromNegativeInts) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SettingRealsFromNegativeInts other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SettingRealsFromNegativeInts.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_settingRealsFromNegativeIntsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _settingRealsFromNegativeIntsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static SettingRealsFromNegativeInts() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ComplexOptionType1 : pb::ExtendableMessage<ComplexOptionType1, ComplexOptionType1.Builder> {
+ private ComplexOptionType1() { }
+ private static readonly ComplexOptionType1 defaultInstance = new ComplexOptionType1().MakeReadOnly();
+ private static readonly string[] _complexOptionType1FieldNames = new string[] { "foo", "foo2", "foo3", "foo4" };
+ private static readonly uint[] _complexOptionType1FieldTags = new uint[] { 8, 16, 24, 32 };
+ public static ComplexOptionType1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ComplexOptionType1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ComplexOptionType1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOptionType1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ComplexOptionType1, ComplexOptionType1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOptionType1__FieldAccessorTable; }
+ }
+
+ public const int FooFieldNumber = 1;
+ private bool hasFoo;
+ private int foo_;
+ public bool HasFoo {
+ get { return hasFoo; }
+ }
+ public int Foo {
+ get { return foo_; }
+ }
+
+ public const int Foo2FieldNumber = 2;
+ private bool hasFoo2;
+ private int foo2_;
+ public bool HasFoo2 {
+ get { return hasFoo2; }
+ }
+ public int Foo2 {
+ get { return foo2_; }
+ }
+
+ public const int Foo3FieldNumber = 3;
+ private bool hasFoo3;
+ private int foo3_;
+ public bool HasFoo3 {
+ get { return hasFoo3; }
+ }
+ public int Foo3 {
+ get { return foo3_; }
+ }
+
+ public const int Foo4FieldNumber = 4;
+ private pbc::PopsicleList<int> foo4_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> Foo4List {
+ get { return pbc::Lists.AsReadOnly(foo4_); }
+ }
+ public int Foo4Count {
+ get { return foo4_.Count; }
+ }
+ public int GetFoo4(int index) {
+ return foo4_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _complexOptionType1FieldNames;
+ pb::ExtendableMessage<ComplexOptionType1, ComplexOptionType1.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasFoo) {
+ output.WriteInt32(1, field_names[0], Foo);
+ }
+ if (hasFoo2) {
+ output.WriteInt32(2, field_names[1], Foo2);
+ }
+ if (hasFoo3) {
+ output.WriteInt32(3, field_names[2], Foo3);
+ }
+ if (foo4_.Count > 0) {
+ output.WriteInt32Array(4, field_names[3], foo4_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasFoo) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Foo);
+ }
+ if (hasFoo2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Foo2);
+ }
+ if (hasFoo3) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Foo3);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in Foo4List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * foo4_.Count;
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ComplexOptionType1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOptionType1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOptionType1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOptionType1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ComplexOptionType1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ComplexOptionType1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOptionType1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ComplexOptionType1 MakeReadOnly() {
+ foo4_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ComplexOptionType1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<ComplexOptionType1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ComplexOptionType1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ComplexOptionType1 result;
+
+ private ComplexOptionType1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ComplexOptionType1 original = result;
+ result = new ComplexOptionType1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ComplexOptionType1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.Descriptor; }
+ }
+
+ public override ComplexOptionType1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.DefaultInstance; }
+ }
+
+ public override ComplexOptionType1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ComplexOptionType1) {
+ return MergeFrom((ComplexOptionType1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ComplexOptionType1 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasFoo) {
+ Foo = other.Foo;
+ }
+ if (other.HasFoo2) {
+ Foo2 = other.Foo2;
+ }
+ if (other.HasFoo3) {
+ Foo3 = other.Foo3;
+ }
+ if (other.foo4_.Count != 0) {
+ result.foo4_.Add(other.foo4_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_complexOptionType1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _complexOptionType1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasFoo = input.ReadInt32(ref result.foo_);
+ break;
+ }
+ case 16: {
+ result.hasFoo2 = input.ReadInt32(ref result.foo2_);
+ break;
+ }
+ case 24: {
+ result.hasFoo3 = input.ReadInt32(ref result.foo3_);
+ break;
+ }
+ case 34:
+ case 32: {
+ input.ReadInt32Array(tag, field_name, result.foo4_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFoo {
+ get { return result.hasFoo; }
+ }
+ public int Foo {
+ get { return result.Foo; }
+ set { SetFoo(value); }
+ }
+ public Builder SetFoo(int value) {
+ PrepareBuilder();
+ result.hasFoo = true;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.hasFoo = false;
+ result.foo_ = 0;
+ return this;
+ }
+
+ public bool HasFoo2 {
+ get { return result.hasFoo2; }
+ }
+ public int Foo2 {
+ get { return result.Foo2; }
+ set { SetFoo2(value); }
+ }
+ public Builder SetFoo2(int value) {
+ PrepareBuilder();
+ result.hasFoo2 = true;
+ result.foo2_ = value;
+ return this;
+ }
+ public Builder ClearFoo2() {
+ PrepareBuilder();
+ result.hasFoo2 = false;
+ result.foo2_ = 0;
+ return this;
+ }
+
+ public bool HasFoo3 {
+ get { return result.hasFoo3; }
+ }
+ public int Foo3 {
+ get { return result.Foo3; }
+ set { SetFoo3(value); }
+ }
+ public Builder SetFoo3(int value) {
+ PrepareBuilder();
+ result.hasFoo3 = true;
+ result.foo3_ = value;
+ return this;
+ }
+ public Builder ClearFoo3() {
+ PrepareBuilder();
+ result.hasFoo3 = false;
+ result.foo3_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> Foo4List {
+ get { return PrepareBuilder().foo4_; }
+ }
+ public int Foo4Count {
+ get { return result.Foo4Count; }
+ }
+ public int GetFoo4(int index) {
+ return result.GetFoo4(index);
+ }
+ public Builder SetFoo4(int index, int value) {
+ PrepareBuilder();
+ result.foo4_[index] = value;
+ return this;
+ }
+ public Builder AddFoo4(int value) {
+ PrepareBuilder();
+ result.foo4_.Add(value);
+ return this;
+ }
+ public Builder AddRangeFoo4(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.foo4_.Add(values);
+ return this;
+ }
+ public Builder ClearFoo4() {
+ PrepareBuilder();
+ result.foo4_.Clear();
+ return this;
+ }
+ }
+ static ComplexOptionType1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ComplexOptionType2 : pb::ExtendableMessage<ComplexOptionType2, ComplexOptionType2.Builder> {
+ private ComplexOptionType2() { }
+ private static readonly ComplexOptionType2 defaultInstance = new ComplexOptionType2().MakeReadOnly();
+ private static readonly string[] _complexOptionType2FieldNames = new string[] { "bar", "barney", "baz", "fred" };
+ private static readonly uint[] _complexOptionType2FieldTags = new uint[] { 10, 34, 16, 26 };
+ public static ComplexOptionType2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ComplexOptionType2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ComplexOptionType2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOptionType2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ComplexOptionType2, ComplexOptionType2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOptionType2__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ComplexOptionType4 : pb::GeneratedMessage<ComplexOptionType4, ComplexOptionType4.Builder> {
+ private ComplexOptionType4() { }
+ private static readonly ComplexOptionType4 defaultInstance = new ComplexOptionType4().MakeReadOnly();
+ private static readonly string[] _complexOptionType4FieldNames = new string[] { "waldo" };
+ private static readonly uint[] _complexOptionType4FieldTags = new uint[] { 8 };
+ public static ComplexOptionType4 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ComplexOptionType4 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ComplexOptionType4 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ComplexOptionType4, ComplexOptionType4.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOptionType2_ComplexOptionType4__FieldAccessorTable; }
+ }
+
+ public const int ComplexOpt4FieldNumber = 7633546;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4> ComplexOpt4;
+ public const int WaldoFieldNumber = 1;
+ private bool hasWaldo;
+ private int waldo_;
+ public bool HasWaldo {
+ get { return hasWaldo; }
+ }
+ public int Waldo {
+ get { return waldo_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _complexOptionType4FieldNames;
+ if (hasWaldo) {
+ output.WriteInt32(1, field_names[0], Waldo);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasWaldo) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Waldo);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ComplexOptionType4 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOptionType4 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType4 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOptionType4 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType4 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOptionType4 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType4 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ComplexOptionType4 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ComplexOptionType4 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOptionType4 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ComplexOptionType4 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ComplexOptionType4 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ComplexOptionType4, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ComplexOptionType4 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ComplexOptionType4 result;
+
+ private ComplexOptionType4 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ComplexOptionType4 original = result;
+ result = new ComplexOptionType4();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ComplexOptionType4 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Descriptor; }
+ }
+
+ public override ComplexOptionType4 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.DefaultInstance; }
+ }
+
+ public override ComplexOptionType4 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ComplexOptionType4) {
+ return MergeFrom((ComplexOptionType4) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ComplexOptionType4 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasWaldo) {
+ Waldo = other.Waldo;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_complexOptionType4FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _complexOptionType4FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasWaldo = input.ReadInt32(ref result.waldo_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasWaldo {
+ get { return result.hasWaldo; }
+ }
+ public int Waldo {
+ get { return result.Waldo; }
+ set { SetWaldo(value); }
+ }
+ public Builder SetWaldo(int value) {
+ PrepareBuilder();
+ result.hasWaldo = true;
+ result.waldo_ = value;
+ return this;
+ }
+ public Builder ClearWaldo() {
+ PrepareBuilder();
+ result.hasWaldo = false;
+ result.waldo_ = 0;
+ return this;
+ }
+ }
+ static ComplexOptionType4() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int BarFieldNumber = 1;
+ private bool hasBar;
+ private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 bar_;
+ public bool HasBar {
+ get { return hasBar; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 Bar {
+ get { return bar_ ?? global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.DefaultInstance; }
+ }
+
+ public const int BazFieldNumber = 2;
+ private bool hasBaz;
+ private int baz_;
+ public bool HasBaz {
+ get { return hasBaz; }
+ }
+ public int Baz {
+ get { return baz_; }
+ }
+
+ public const int FredFieldNumber = 3;
+ private bool hasFred;
+ private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 fred_;
+ public bool HasFred {
+ get { return hasFred; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 Fred {
+ get { return fred_ ?? global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.DefaultInstance; }
+ }
+
+ public const int BarneyFieldNumber = 4;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4> barney_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4> BarneyList {
+ get { return barney_; }
+ }
+ public int BarneyCount {
+ get { return barney_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 GetBarney(int index) {
+ return barney_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasFred) {
+ if (!Fred.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 element in BarneyList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _complexOptionType2FieldNames;
+ pb::ExtendableMessage<ComplexOptionType2, ComplexOptionType2.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasBar) {
+ output.WriteMessage(1, field_names[0], Bar);
+ }
+ if (hasBaz) {
+ output.WriteInt32(2, field_names[2], Baz);
+ }
+ if (hasFred) {
+ output.WriteMessage(3, field_names[3], Fred);
+ }
+ if (barney_.Count > 0) {
+ output.WriteMessageArray(4, field_names[1], barney_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasBar) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Bar);
+ }
+ if (hasBaz) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Baz);
+ }
+ if (hasFred) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, Fred);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 element in BarneyList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ComplexOptionType2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOptionType2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOptionType2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOptionType2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ComplexOptionType2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ComplexOptionType2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOptionType2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ComplexOptionType2 MakeReadOnly() {
+ barney_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ComplexOptionType2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<ComplexOptionType2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ComplexOptionType2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ComplexOptionType2 result;
+
+ private ComplexOptionType2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ComplexOptionType2 original = result;
+ result = new ComplexOptionType2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ComplexOptionType2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Descriptor; }
+ }
+
+ public override ComplexOptionType2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.DefaultInstance; }
+ }
+
+ public override ComplexOptionType2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ComplexOptionType2) {
+ return MergeFrom((ComplexOptionType2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ComplexOptionType2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasBar) {
+ MergeBar(other.Bar);
+ }
+ if (other.HasBaz) {
+ Baz = other.Baz;
+ }
+ if (other.HasFred) {
+ MergeFred(other.Fred);
+ }
+ if (other.barney_.Count != 0) {
+ result.barney_.Add(other.barney_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_complexOptionType2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _complexOptionType2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.CreateBuilder();
+ if (result.hasBar) {
+ subBuilder.MergeFrom(Bar);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Bar = subBuilder.BuildPartial();
+ break;
+ }
+ case 16: {
+ result.hasBaz = input.ReadInt32(ref result.baz_);
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.CreateBuilder();
+ if (result.hasFred) {
+ subBuilder.MergeFrom(Fred);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Fred = subBuilder.BuildPartial();
+ break;
+ }
+ case 34: {
+ input.ReadMessageArray(tag, field_name, result.barney_, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasBar {
+ get { return result.hasBar; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 Bar {
+ get { return result.Bar; }
+ set { SetBar(value); }
+ }
+ public Builder SetBar(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBar = true;
+ result.bar_ = value;
+ return this;
+ }
+ public Builder SetBar(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasBar = true;
+ result.bar_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeBar(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasBar &&
+ result.bar_ != global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.DefaultInstance) {
+ result.bar_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.CreateBuilder(result.bar_).MergeFrom(value).BuildPartial();
+ } else {
+ result.bar_ = value;
+ }
+ result.hasBar = true;
+ return this;
+ }
+ public Builder ClearBar() {
+ PrepareBuilder();
+ result.hasBar = false;
+ result.bar_ = null;
+ return this;
+ }
+
+ public bool HasBaz {
+ get { return result.hasBaz; }
+ }
+ public int Baz {
+ get { return result.Baz; }
+ set { SetBaz(value); }
+ }
+ public Builder SetBaz(int value) {
+ PrepareBuilder();
+ result.hasBaz = true;
+ result.baz_ = value;
+ return this;
+ }
+ public Builder ClearBaz() {
+ PrepareBuilder();
+ result.hasBaz = false;
+ result.baz_ = 0;
+ return this;
+ }
+
+ public bool HasFred {
+ get { return result.hasFred; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 Fred {
+ get { return result.Fred; }
+ set { SetFred(value); }
+ }
+ public Builder SetFred(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFred = true;
+ result.fred_ = value;
+ return this;
+ }
+ public Builder SetFred(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFred = true;
+ result.fred_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFred(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFred &&
+ result.fred_ != global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.DefaultInstance) {
+ result.fred_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.CreateBuilder(result.fred_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fred_ = value;
+ }
+ result.hasFred = true;
+ return this;
+ }
+ public Builder ClearFred() {
+ PrepareBuilder();
+ result.hasFred = false;
+ result.fred_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4> BarneyList {
+ get { return PrepareBuilder().barney_; }
+ }
+ public int BarneyCount {
+ get { return result.BarneyCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 GetBarney(int index) {
+ return result.GetBarney(index);
+ }
+ public Builder SetBarney(int index, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.barney_[index] = value;
+ return this;
+ }
+ public Builder SetBarney(int index, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.barney_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddBarney(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.barney_.Add(value);
+ return this;
+ }
+ public Builder AddBarney(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.barney_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeBarney(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Types.ComplexOptionType4> values) {
+ PrepareBuilder();
+ result.barney_.Add(values);
+ return this;
+ }
+ public Builder ClearBarney() {
+ PrepareBuilder();
+ result.barney_.Clear();
+ return this;
+ }
+ }
+ static ComplexOptionType2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ComplexOptionType3 : pb::GeneratedMessage<ComplexOptionType3, ComplexOptionType3.Builder> {
+ private ComplexOptionType3() { }
+ private static readonly ComplexOptionType3 defaultInstance = new ComplexOptionType3().MakeReadOnly();
+ private static readonly string[] _complexOptionType3FieldNames = new string[] { "complexoptiontype5", "qux" };
+ private static readonly uint[] _complexOptionType3FieldTags = new uint[] { 19, 8 };
+ public static ComplexOptionType3 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ComplexOptionType3 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ComplexOptionType3 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOptionType3__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ComplexOptionType3, ComplexOptionType3.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOptionType3__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ComplexOptionType5 : pb::GeneratedMessage<ComplexOptionType5, ComplexOptionType5.Builder> {
+ private ComplexOptionType5() { }
+ private static readonly ComplexOptionType5 defaultInstance = new ComplexOptionType5().MakeReadOnly();
+ private static readonly string[] _complexOptionType5FieldNames = new string[] { "plugh" };
+ private static readonly uint[] _complexOptionType5FieldTags = new uint[] { 24 };
+ public static ComplexOptionType5 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ComplexOptionType5 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ComplexOptionType5 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ComplexOptionType5, ComplexOptionType5.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOptionType3_ComplexOptionType5__FieldAccessorTable; }
+ }
+
+ public const int PlughFieldNumber = 3;
+ private bool hasPlugh;
+ private int plugh_;
+ public bool HasPlugh {
+ get { return hasPlugh; }
+ }
+ public int Plugh {
+ get { return plugh_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _complexOptionType5FieldNames;
+ if (hasPlugh) {
+ output.WriteInt32(3, field_names[0], Plugh);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasPlugh) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Plugh);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ComplexOptionType5 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOptionType5 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType5 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOptionType5 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType5 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOptionType5 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType5 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ComplexOptionType5 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ComplexOptionType5 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOptionType5 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ComplexOptionType5 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ComplexOptionType5 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ComplexOptionType5, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ComplexOptionType5 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ComplexOptionType5 result;
+
+ private ComplexOptionType5 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ComplexOptionType5 original = result;
+ result = new ComplexOptionType5();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ComplexOptionType5 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.Descriptor; }
+ }
+
+ public override ComplexOptionType5 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.DefaultInstance; }
+ }
+
+ public override ComplexOptionType5 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ComplexOptionType5) {
+ return MergeFrom((ComplexOptionType5) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ComplexOptionType5 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasPlugh) {
+ Plugh = other.Plugh;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_complexOptionType5FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _complexOptionType5FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 24: {
+ result.hasPlugh = input.ReadInt32(ref result.plugh_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasPlugh {
+ get { return result.hasPlugh; }
+ }
+ public int Plugh {
+ get { return result.Plugh; }
+ set { SetPlugh(value); }
+ }
+ public Builder SetPlugh(int value) {
+ PrepareBuilder();
+ result.hasPlugh = true;
+ result.plugh_ = value;
+ return this;
+ }
+ public Builder ClearPlugh() {
+ PrepareBuilder();
+ result.hasPlugh = false;
+ result.plugh_ = 0;
+ return this;
+ }
+ }
+ static ComplexOptionType5() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int QuxFieldNumber = 1;
+ private bool hasQux;
+ private int qux_;
+ public bool HasQux {
+ get { return hasQux; }
+ }
+ public int Qux {
+ get { return qux_; }
+ }
+
+ public const int ComplexOptionType5FieldNumber = 2;
+ private bool hasComplexOptionType5;
+ private global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 complexOptionType5_;
+ public bool HasComplexOptionType5 {
+ get { return hasComplexOptionType5; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 ComplexOptionType5 {
+ get { return complexOptionType5_ ?? global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _complexOptionType3FieldNames;
+ if (hasQux) {
+ output.WriteInt32(1, field_names[1], Qux);
+ }
+ if (hasComplexOptionType5) {
+ output.WriteGroup(2, field_names[0], ComplexOptionType5);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasQux) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Qux);
+ }
+ if (hasComplexOptionType5) {
+ size += pb::CodedOutputStream.ComputeGroupSize(2, ComplexOptionType5);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ComplexOptionType3 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOptionType3 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType3 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOptionType3 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType3 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOptionType3 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOptionType3 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ComplexOptionType3 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ComplexOptionType3 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOptionType3 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ComplexOptionType3 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ComplexOptionType3 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ComplexOptionType3, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ComplexOptionType3 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ComplexOptionType3 result;
+
+ private ComplexOptionType3 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ComplexOptionType3 original = result;
+ result = new ComplexOptionType3();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ComplexOptionType3 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Descriptor; }
+ }
+
+ public override ComplexOptionType3 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.DefaultInstance; }
+ }
+
+ public override ComplexOptionType3 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ComplexOptionType3) {
+ return MergeFrom((ComplexOptionType3) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ComplexOptionType3 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasQux) {
+ Qux = other.Qux;
+ }
+ if (other.HasComplexOptionType5) {
+ MergeComplexOptionType5(other.ComplexOptionType5);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_complexOptionType3FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _complexOptionType3FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasQux = input.ReadInt32(ref result.qux_);
+ break;
+ }
+ case 19: {
+ global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.CreateBuilder();
+ if (result.hasComplexOptionType5) {
+ subBuilder.MergeFrom(ComplexOptionType5);
+ }
+ input.ReadGroup(2, subBuilder, extensionRegistry);
+ ComplexOptionType5 = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasQux {
+ get { return result.hasQux; }
+ }
+ public int Qux {
+ get { return result.Qux; }
+ set { SetQux(value); }
+ }
+ public Builder SetQux(int value) {
+ PrepareBuilder();
+ result.hasQux = true;
+ result.qux_ = value;
+ return this;
+ }
+ public Builder ClearQux() {
+ PrepareBuilder();
+ result.hasQux = false;
+ result.qux_ = 0;
+ return this;
+ }
+
+ public bool HasComplexOptionType5 {
+ get { return result.hasComplexOptionType5; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 ComplexOptionType5 {
+ get { return result.ComplexOptionType5; }
+ set { SetComplexOptionType5(value); }
+ }
+ public Builder SetComplexOptionType5(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasComplexOptionType5 = true;
+ result.complexOptionType5_ = value;
+ return this;
+ }
+ public Builder SetComplexOptionType5(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasComplexOptionType5 = true;
+ result.complexOptionType5_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeComplexOptionType5(global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasComplexOptionType5 &&
+ result.complexOptionType5_ != global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.DefaultInstance) {
+ result.complexOptionType5_ = global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3.Types.ComplexOptionType5.CreateBuilder(result.complexOptionType5_).MergeFrom(value).BuildPartial();
+ } else {
+ result.complexOptionType5_ = value;
+ }
+ result.hasComplexOptionType5 = true;
+ return this;
+ }
+ public Builder ClearComplexOptionType5() {
+ PrepareBuilder();
+ result.hasComplexOptionType5 = false;
+ result.complexOptionType5_ = null;
+ return this;
+ }
+ }
+ static ComplexOptionType3() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ComplexOpt6 : pb::GeneratedMessage<ComplexOpt6, ComplexOpt6.Builder> {
+ private ComplexOpt6() { }
+ private static readonly ComplexOpt6 defaultInstance = new ComplexOpt6().MakeReadOnly();
+ private static readonly string[] _complexOpt6FieldNames = new string[] { "xyzzy" };
+ private static readonly uint[] _complexOpt6FieldTags = new uint[] { 60751608 };
+ public static ComplexOpt6 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ComplexOpt6 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ComplexOpt6 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOpt6__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ComplexOpt6, ComplexOpt6.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_ComplexOpt6__FieldAccessorTable; }
+ }
+
+ public const int XyzzyFieldNumber = 7593951;
+ private bool hasXyzzy;
+ private int xyzzy_;
+ public bool HasXyzzy {
+ get { return hasXyzzy; }
+ }
+ public int Xyzzy {
+ get { return xyzzy_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _complexOpt6FieldNames;
+ if (hasXyzzy) {
+ output.WriteInt32(7593951, field_names[0], Xyzzy);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasXyzzy) {
+ size += pb::CodedOutputStream.ComputeInt32Size(7593951, Xyzzy);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ComplexOpt6 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOpt6 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOpt6 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ComplexOpt6 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOpt6 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOpt6 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ComplexOpt6 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ComplexOpt6 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ComplexOpt6 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ComplexOpt6 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ComplexOpt6 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ComplexOpt6 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ComplexOpt6, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ComplexOpt6 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ComplexOpt6 result;
+
+ private ComplexOpt6 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ComplexOpt6 original = result;
+ result = new ComplexOpt6();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ComplexOpt6 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOpt6.Descriptor; }
+ }
+
+ public override ComplexOpt6 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ComplexOpt6.DefaultInstance; }
+ }
+
+ public override ComplexOpt6 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ComplexOpt6) {
+ return MergeFrom((ComplexOpt6) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ComplexOpt6 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ComplexOpt6.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasXyzzy) {
+ Xyzzy = other.Xyzzy;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_complexOpt6FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _complexOpt6FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 60751608: {
+ result.hasXyzzy = input.ReadInt32(ref result.xyzzy_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasXyzzy {
+ get { return result.hasXyzzy; }
+ }
+ public int Xyzzy {
+ get { return result.Xyzzy; }
+ set { SetXyzzy(value); }
+ }
+ public Builder SetXyzzy(int value) {
+ PrepareBuilder();
+ result.hasXyzzy = true;
+ result.xyzzy_ = value;
+ return this;
+ }
+ public Builder ClearXyzzy() {
+ PrepareBuilder();
+ result.hasXyzzy = false;
+ result.xyzzy_ = 0;
+ return this;
+ }
+ }
+ static ComplexOpt6() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class VariousComplexOptions : pb::GeneratedMessage<VariousComplexOptions, VariousComplexOptions.Builder> {
+ private VariousComplexOptions() { }
+ private static readonly VariousComplexOptions defaultInstance = new VariousComplexOptions().MakeReadOnly();
+ private static readonly string[] _variousComplexOptionsFieldNames = new string[] { };
+ private static readonly uint[] _variousComplexOptionsFieldTags = new uint[] { };
+ public static VariousComplexOptions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override VariousComplexOptions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override VariousComplexOptions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_VariousComplexOptions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<VariousComplexOptions, VariousComplexOptions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_VariousComplexOptions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _variousComplexOptionsFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static VariousComplexOptions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static VariousComplexOptions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static VariousComplexOptions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static VariousComplexOptions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static VariousComplexOptions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static VariousComplexOptions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static VariousComplexOptions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static VariousComplexOptions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static VariousComplexOptions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static VariousComplexOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private VariousComplexOptions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(VariousComplexOptions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<VariousComplexOptions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(VariousComplexOptions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private VariousComplexOptions result;
+
+ private VariousComplexOptions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ VariousComplexOptions original = result;
+ result = new VariousComplexOptions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override VariousComplexOptions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.VariousComplexOptions.Descriptor; }
+ }
+
+ public override VariousComplexOptions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.VariousComplexOptions.DefaultInstance; }
+ }
+
+ public override VariousComplexOptions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is VariousComplexOptions) {
+ return MergeFrom((VariousComplexOptions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(VariousComplexOptions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.VariousComplexOptions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_variousComplexOptionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _variousComplexOptionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static VariousComplexOptions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class AggregateMessageSet : pb::ExtendableMessage<AggregateMessageSet, AggregateMessageSet.Builder> {
+ private AggregateMessageSet() { }
+ private static readonly AggregateMessageSet defaultInstance = new AggregateMessageSet().MakeReadOnly();
+ private static readonly string[] _aggregateMessageSetFieldNames = new string[] { };
+ private static readonly uint[] _aggregateMessageSetFieldTags = new uint[] { };
+ public static AggregateMessageSet DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override AggregateMessageSet DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override AggregateMessageSet ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_AggregateMessageSet__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<AggregateMessageSet, AggregateMessageSet.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_AggregateMessageSet__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _aggregateMessageSetFieldNames;
+ pb::ExtendableMessage<AggregateMessageSet, AggregateMessageSet.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(2147483647, output);
+ UnknownFields.WriteAsMessageSetTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSizeAsMessageSet;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static AggregateMessageSet ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AggregateMessageSet ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AggregateMessageSet ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AggregateMessageSet ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AggregateMessageSet ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AggregateMessageSet ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static AggregateMessageSet ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static AggregateMessageSet ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static AggregateMessageSet ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AggregateMessageSet ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private AggregateMessageSet MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(AggregateMessageSet prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<AggregateMessageSet, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(AggregateMessageSet cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private AggregateMessageSet result;
+
+ private AggregateMessageSet PrepareBuilder() {
+ if (resultIsReadOnly) {
+ AggregateMessageSet original = result;
+ result = new AggregateMessageSet();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override AggregateMessageSet MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.Descriptor; }
+ }
+
+ public override AggregateMessageSet DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.DefaultInstance; }
+ }
+
+ public override AggregateMessageSet BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is AggregateMessageSet) {
+ return MergeFrom((AggregateMessageSet) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(AggregateMessageSet other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_aggregateMessageSetFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _aggregateMessageSetFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static AggregateMessageSet() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class AggregateMessageSetElement : pb::GeneratedMessage<AggregateMessageSetElement, AggregateMessageSetElement.Builder> {
+ private AggregateMessageSetElement() { }
+ private static readonly AggregateMessageSetElement defaultInstance = new AggregateMessageSetElement().MakeReadOnly();
+ private static readonly string[] _aggregateMessageSetElementFieldNames = new string[] { "s" };
+ private static readonly uint[] _aggregateMessageSetElementFieldTags = new uint[] { 10 };
+ public static AggregateMessageSetElement DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override AggregateMessageSetElement DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override AggregateMessageSetElement ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_AggregateMessageSetElement__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<AggregateMessageSetElement, AggregateMessageSetElement.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_AggregateMessageSetElement__FieldAccessorTable; }
+ }
+
+ public const int MessageSetExtensionFieldNumber = 15447542;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement> MessageSetExtension;
+ public const int SFieldNumber = 1;
+ private bool hasS;
+ private string s_ = "";
+ public bool HasS {
+ get { return hasS; }
+ }
+ public string S {
+ get { return s_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _aggregateMessageSetElementFieldNames;
+ if (hasS) {
+ output.WriteString(1, field_names[0], S);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasS) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, S);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static AggregateMessageSetElement ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AggregateMessageSetElement ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AggregateMessageSetElement ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AggregateMessageSetElement ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AggregateMessageSetElement ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AggregateMessageSetElement ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static AggregateMessageSetElement ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static AggregateMessageSetElement ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static AggregateMessageSetElement ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AggregateMessageSetElement ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private AggregateMessageSetElement MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(AggregateMessageSetElement prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<AggregateMessageSetElement, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(AggregateMessageSetElement cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private AggregateMessageSetElement result;
+
+ private AggregateMessageSetElement PrepareBuilder() {
+ if (resultIsReadOnly) {
+ AggregateMessageSetElement original = result;
+ result = new AggregateMessageSetElement();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override AggregateMessageSetElement MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement.Descriptor; }
+ }
+
+ public override AggregateMessageSetElement DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement.DefaultInstance; }
+ }
+
+ public override AggregateMessageSetElement BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is AggregateMessageSetElement) {
+ return MergeFrom((AggregateMessageSetElement) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(AggregateMessageSetElement other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.AggregateMessageSetElement.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasS) {
+ S = other.S;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_aggregateMessageSetElementFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _aggregateMessageSetElementFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasS = input.ReadString(ref result.s_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasS {
+ get { return result.hasS; }
+ }
+ public string S {
+ get { return result.S; }
+ set { SetS(value); }
+ }
+ public Builder SetS(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasS = true;
+ result.s_ = value;
+ return this;
+ }
+ public Builder ClearS() {
+ PrepareBuilder();
+ result.hasS = false;
+ result.s_ = "";
+ return this;
+ }
+ }
+ static AggregateMessageSetElement() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Aggregate : pb::GeneratedMessage<Aggregate, Aggregate.Builder> {
+ private Aggregate() { }
+ private static readonly Aggregate defaultInstance = new Aggregate().MakeReadOnly();
+ private static readonly string[] _aggregateFieldNames = new string[] { "file", "i", "mset", "s", "sub" };
+ private static readonly uint[] _aggregateFieldTags = new uint[] { 34, 8, 42, 18, 26 };
+ public static Aggregate DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Aggregate DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Aggregate ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_Aggregate__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Aggregate, Aggregate.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_Aggregate__FieldAccessorTable; }
+ }
+
+ public const int NestedFieldNumber = 15476903;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.Aggregate> Nested;
+ public const int IFieldNumber = 1;
+ private bool hasI;
+ private int i_;
+ public bool HasI {
+ get { return hasI; }
+ }
+ public int I {
+ get { return i_; }
+ }
+
+ public const int SFieldNumber = 2;
+ private bool hasS;
+ private string s_ = "";
+ public bool HasS {
+ get { return hasS; }
+ }
+ public string S {
+ get { return s_; }
+ }
+
+ public const int SubFieldNumber = 3;
+ private bool hasSub;
+ private global::Google.ProtocolBuffers.TestProtos.Aggregate sub_;
+ public bool HasSub {
+ get { return hasSub; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Aggregate Sub {
+ get { return sub_ ?? global::Google.ProtocolBuffers.TestProtos.Aggregate.DefaultInstance; }
+ }
+
+ public const int FileFieldNumber = 4;
+ private bool hasFile;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FileOptions file_;
+ public bool HasFile {
+ get { return hasFile; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FileOptions File {
+ get { return file_ ?? global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance; }
+ }
+
+ public const int MsetFieldNumber = 5;
+ private bool hasMset;
+ private global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet mset_;
+ public bool HasMset {
+ get { return hasMset; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet Mset {
+ get { return mset_ ?? global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasSub) {
+ if (!Sub.IsInitialized) return false;
+ }
+ if (HasFile) {
+ if (!File.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _aggregateFieldNames;
+ if (hasI) {
+ output.WriteInt32(1, field_names[1], I);
+ }
+ if (hasS) {
+ output.WriteString(2, field_names[3], S);
+ }
+ if (hasSub) {
+ output.WriteMessage(3, field_names[4], Sub);
+ }
+ if (hasFile) {
+ output.WriteMessage(4, field_names[0], File);
+ }
+ if (hasMset) {
+ output.WriteMessage(5, field_names[2], Mset);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasI) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, I);
+ }
+ if (hasS) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, S);
+ }
+ if (hasSub) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, Sub);
+ }
+ if (hasFile) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, File);
+ }
+ if (hasMset) {
+ size += pb::CodedOutputStream.ComputeMessageSize(5, Mset);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Aggregate ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Aggregate ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Aggregate ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Aggregate ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Aggregate ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Aggregate ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Aggregate ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Aggregate ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Aggregate ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Aggregate ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Aggregate MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Aggregate prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Aggregate, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Aggregate cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Aggregate result;
+
+ private Aggregate PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Aggregate original = result;
+ result = new Aggregate();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Aggregate MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Aggregate.Descriptor; }
+ }
+
+ public override Aggregate DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Aggregate.DefaultInstance; }
+ }
+
+ public override Aggregate BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Aggregate) {
+ return MergeFrom((Aggregate) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Aggregate other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Aggregate.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasI) {
+ I = other.I;
+ }
+ if (other.HasS) {
+ S = other.S;
+ }
+ if (other.HasSub) {
+ MergeSub(other.Sub);
+ }
+ if (other.HasFile) {
+ MergeFile(other.File);
+ }
+ if (other.HasMset) {
+ MergeMset(other.Mset);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_aggregateFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _aggregateFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasI = input.ReadInt32(ref result.i_);
+ break;
+ }
+ case 18: {
+ result.hasS = input.ReadString(ref result.s_);
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.Aggregate.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.Aggregate.CreateBuilder();
+ if (result.hasSub) {
+ subBuilder.MergeFrom(Sub);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Sub = subBuilder.BuildPartial();
+ break;
+ }
+ case 34: {
+ global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.CreateBuilder();
+ if (result.hasFile) {
+ subBuilder.MergeFrom(File);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ File = subBuilder.BuildPartial();
+ break;
+ }
+ case 42: {
+ global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.CreateBuilder();
+ if (result.hasMset) {
+ subBuilder.MergeFrom(Mset);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Mset = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasI {
+ get { return result.hasI; }
+ }
+ public int I {
+ get { return result.I; }
+ set { SetI(value); }
+ }
+ public Builder SetI(int value) {
+ PrepareBuilder();
+ result.hasI = true;
+ result.i_ = value;
+ return this;
+ }
+ public Builder ClearI() {
+ PrepareBuilder();
+ result.hasI = false;
+ result.i_ = 0;
+ return this;
+ }
+
+ public bool HasS {
+ get { return result.hasS; }
+ }
+ public string S {
+ get { return result.S; }
+ set { SetS(value); }
+ }
+ public Builder SetS(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasS = true;
+ result.s_ = value;
+ return this;
+ }
+ public Builder ClearS() {
+ PrepareBuilder();
+ result.hasS = false;
+ result.s_ = "";
+ return this;
+ }
+
+ public bool HasSub {
+ get { return result.hasSub; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Aggregate Sub {
+ get { return result.Sub; }
+ set { SetSub(value); }
+ }
+ public Builder SetSub(global::Google.ProtocolBuffers.TestProtos.Aggregate value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasSub = true;
+ result.sub_ = value;
+ return this;
+ }
+ public Builder SetSub(global::Google.ProtocolBuffers.TestProtos.Aggregate.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasSub = true;
+ result.sub_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeSub(global::Google.ProtocolBuffers.TestProtos.Aggregate value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasSub &&
+ result.sub_ != global::Google.ProtocolBuffers.TestProtos.Aggregate.DefaultInstance) {
+ result.sub_ = global::Google.ProtocolBuffers.TestProtos.Aggregate.CreateBuilder(result.sub_).MergeFrom(value).BuildPartial();
+ } else {
+ result.sub_ = value;
+ }
+ result.hasSub = true;
+ return this;
+ }
+ public Builder ClearSub() {
+ PrepareBuilder();
+ result.hasSub = false;
+ result.sub_ = null;
+ return this;
+ }
+
+ public bool HasFile {
+ get { return result.hasFile; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FileOptions File {
+ get { return result.File; }
+ set { SetFile(value); }
+ }
+ public Builder SetFile(global::Google.ProtocolBuffers.DescriptorProtos.FileOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFile = true;
+ result.file_ = value;
+ return this;
+ }
+ public Builder SetFile(global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFile = true;
+ result.file_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFile(global::Google.ProtocolBuffers.DescriptorProtos.FileOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFile &&
+ result.file_ != global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance) {
+ result.file_ = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.CreateBuilder(result.file_).MergeFrom(value).BuildPartial();
+ } else {
+ result.file_ = value;
+ }
+ result.hasFile = true;
+ return this;
+ }
+ public Builder ClearFile() {
+ PrepareBuilder();
+ result.hasFile = false;
+ result.file_ = null;
+ return this;
+ }
+
+ public bool HasMset {
+ get { return result.hasMset; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet Mset {
+ get { return result.Mset; }
+ set { SetMset(value); }
+ }
+ public Builder SetMset(global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMset = true;
+ result.mset_ = value;
+ return this;
+ }
+ public Builder SetMset(global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMset = true;
+ result.mset_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMset(global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMset &&
+ result.mset_ != global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.DefaultInstance) {
+ result.mset_ = global::Google.ProtocolBuffers.TestProtos.AggregateMessageSet.CreateBuilder(result.mset_).MergeFrom(value).BuildPartial();
+ } else {
+ result.mset_ = value;
+ }
+ result.hasMset = true;
+ return this;
+ }
+ public Builder ClearMset() {
+ PrepareBuilder();
+ result.hasMset = false;
+ result.mset_ = null;
+ return this;
+ }
+ }
+ static Aggregate() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class AggregateMessage : pb::GeneratedMessage<AggregateMessage, AggregateMessage.Builder> {
+ private AggregateMessage() { }
+ private static readonly AggregateMessage defaultInstance = new AggregateMessage().MakeReadOnly();
+ private static readonly string[] _aggregateMessageFieldNames = new string[] { "fieldname" };
+ private static readonly uint[] _aggregateMessageFieldTags = new uint[] { 8 };
+ public static AggregateMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override AggregateMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override AggregateMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_AggregateMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<AggregateMessage, AggregateMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_AggregateMessage__FieldAccessorTable; }
+ }
+
+ public const int FieldnameFieldNumber = 1;
+ private bool hasFieldname;
+ private int fieldname_;
+ public bool HasFieldname {
+ get { return hasFieldname; }
+ }
+ public int Fieldname {
+ get { return fieldname_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _aggregateMessageFieldNames;
+ if (hasFieldname) {
+ output.WriteInt32(1, field_names[0], Fieldname);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasFieldname) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Fieldname);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static AggregateMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AggregateMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AggregateMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AggregateMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AggregateMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AggregateMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static AggregateMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static AggregateMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static AggregateMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AggregateMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private AggregateMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(AggregateMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<AggregateMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(AggregateMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private AggregateMessage result;
+
+ private AggregateMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ AggregateMessage original = result;
+ result = new AggregateMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override AggregateMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.AggregateMessage.Descriptor; }
+ }
+
+ public override AggregateMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.AggregateMessage.DefaultInstance; }
+ }
+
+ public override AggregateMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is AggregateMessage) {
+ return MergeFrom((AggregateMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(AggregateMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.AggregateMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasFieldname) {
+ Fieldname = other.Fieldname;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_aggregateMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _aggregateMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasFieldname = input.ReadInt32(ref result.fieldname_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFieldname {
+ get { return result.hasFieldname; }
+ }
+ public int Fieldname {
+ get { return result.Fieldname; }
+ set { SetFieldname(value); }
+ }
+ public Builder SetFieldname(int value) {
+ PrepareBuilder();
+ result.hasFieldname = true;
+ result.fieldname_ = value;
+ return this;
+ }
+ public Builder ClearFieldname() {
+ PrepareBuilder();
+ result.hasFieldname = false;
+ result.fieldname_ = 0;
+ return this;
+ }
+ }
+ static AggregateMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedOptionType : pb::GeneratedMessage<NestedOptionType, NestedOptionType.Builder> {
+ private NestedOptionType() { }
+ private static readonly NestedOptionType defaultInstance = new NestedOptionType().MakeReadOnly();
+ private static readonly string[] _nestedOptionTypeFieldNames = new string[] { };
+ private static readonly uint[] _nestedOptionTypeFieldTags = new uint[] { };
+ public static NestedOptionType DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedOptionType DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedOptionType ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_NestedOptionType__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedOptionType, NestedOptionType.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_NestedOptionType__FieldAccessorTable; }
+ }
+
+ public const int NestedExtensionFieldNumber = 7912573;
+ public static pb::GeneratedExtensionBase<int> NestedExtension;
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ NESTED_ENUM_VALUE = 1,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "nested_field" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_NestedOptionType_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.internal__static_protobuf_unittest_NestedOptionType_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int NestedFieldFieldNumber = 1;
+ private bool hasNestedField;
+ private int nestedField_;
+ public bool HasNestedField {
+ get { return hasNestedField; }
+ }
+ public int NestedField {
+ get { return nestedField_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasNestedField) {
+ output.WriteInt32(1, field_names[0], NestedField);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasNestedField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, NestedField);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasNestedField) {
+ NestedField = other.NestedField;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasNestedField = input.ReadInt32(ref result.nestedField_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasNestedField {
+ get { return result.hasNestedField; }
+ }
+ public int NestedField {
+ get { return result.NestedField; }
+ set { SetNestedField(value); }
+ }
+ public Builder SetNestedField(int value) {
+ PrepareBuilder();
+ result.hasNestedField = true;
+ result.nestedField_ = value;
+ return this;
+ }
+ public Builder ClearNestedField() {
+ PrepareBuilder();
+ result.hasNestedField = false;
+ result.nestedField_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedOptionTypeFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedOptionType ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedOptionType ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedOptionType ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedOptionType ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedOptionType ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedOptionType ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedOptionType ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedOptionType ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedOptionType ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedOptionType ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedOptionType MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedOptionType prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedOptionType, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedOptionType cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedOptionType result;
+
+ private NestedOptionType PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedOptionType original = result;
+ result = new NestedOptionType();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedOptionType MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NestedOptionType.Descriptor; }
+ }
+
+ public override NestedOptionType DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NestedOptionType.DefaultInstance; }
+ }
+
+ public override NestedOptionType BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedOptionType) {
+ return MergeFrom((NestedOptionType) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedOptionType other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.NestedOptionType.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedOptionTypeFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedOptionTypeFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static NestedOptionType() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestCustomOptions.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestDropUnknownFields.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestDropUnknownFields.cs
new file mode 100644
index 00000000..02af2f50
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestDropUnknownFields.cs
@@ -0,0 +1,732 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_drop_unknown_fields.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestDropUnknownFields {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_unittest_drop_unknown_fields_Foo__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Foo, global::Google.ProtocolBuffers.TestProtos.Foo.Builder> internal__static_unittest_drop_unknown_fields_Foo__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_unittest_drop_unknown_fields_FooWithExtraFields__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields, global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Builder> internal__static_unittest_drop_unknown_fields_FooWithExtraFields__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestDropUnknownFields() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CjJnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfZHJvcF91bmtub3duX2ZpZWxk",
+ "cy5wcm90bxIcdW5pdHRlc3RfZHJvcF91bmtub3duX2ZpZWxkcyKFAQoDRm9v",
+ "EhMKC2ludDMyX3ZhbHVlGAEgASgFEkAKCmVudW1fdmFsdWUYAiABKA4yLC51",
+ "bml0dGVzdF9kcm9wX3Vua25vd25fZmllbGRzLkZvby5OZXN0ZWRFbnVtIicK",
+ "Ck5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAIixwEKEkZv",
+ "b1dpdGhFeHRyYUZpZWxkcxITCgtpbnQzMl92YWx1ZRgBIAEoBRJPCgplbnVt",
+ "X3ZhbHVlGAIgASgOMjsudW5pdHRlc3RfZHJvcF91bmtub3duX2ZpZWxkcy5G",
+ "b29XaXRoRXh0cmFGaWVsZHMuTmVzdGVkRW51bRIZChFleHRyYV9pbnQzMl92",
+ "YWx1ZRgDIAEoBSIwCgpOZXN0ZWRFbnVtEgcKA0ZPTxAAEgcKA0JBUhABEgcK",
+ "A0JBWhACEgcKA1FVWBADQjOiAgxEcm9wVW5rbm93bnOqAiFHb29nbGUuUHJv",
+ "dG9jb2xCdWZmZXJzLlRlc3RQcm90b3NiBnByb3RvMw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_unittest_drop_unknown_fields_Foo__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_unittest_drop_unknown_fields_Foo__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Foo, global::Google.ProtocolBuffers.TestProtos.Foo.Builder>(internal__static_unittest_drop_unknown_fields_Foo__Descriptor,
+ new string[] { "Int32Value", "EnumValue", });
+ internal__static_unittest_drop_unknown_fields_FooWithExtraFields__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_unittest_drop_unknown_fields_FooWithExtraFields__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields, global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Builder>(internal__static_unittest_drop_unknown_fields_FooWithExtraFields__Descriptor,
+ new string[] { "Int32Value", "EnumValue", "ExtraInt32Value", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Foo : pb::GeneratedMessage<Foo, Foo.Builder> {
+ private Foo() { }
+ private static readonly Foo defaultInstance = new Foo().MakeReadOnly();
+ private static readonly string[] _fooFieldNames = new string[] { "enum_value", "int32_value" };
+ private static readonly uint[] _fooFieldTags = new uint[] { 16, 8 };
+ public static Foo DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Foo DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Foo ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestDropUnknownFields.internal__static_unittest_drop_unknown_fields_Foo__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Foo, Foo.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestDropUnknownFields.internal__static_unittest_drop_unknown_fields_Foo__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ FOO = 0,
+ BAR = 1,
+ BAZ = 2,
+ }
+
+ }
+ #endregion
+
+ public const int Int32ValueFieldNumber = 1;
+ private int int32Value_;
+ public int Int32Value {
+ get { return int32Value_; }
+ }
+
+ public const int EnumValueFieldNumber = 2;
+ private global::Google.ProtocolBuffers.TestProtos.Foo.Types.NestedEnum enumValue_ = global::Google.ProtocolBuffers.TestProtos.Foo.Types.NestedEnum.FOO;
+ public global::Google.ProtocolBuffers.TestProtos.Foo.Types.NestedEnum EnumValue {
+ get { return enumValue_; }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooFieldNames;
+ if (Int32Value != 0) {
+ output.WriteInt32(1, field_names[1], Int32Value);
+ }
+ if (EnumValue != global::Google.ProtocolBuffers.TestProtos.Foo.Types.NestedEnum.FOO) {
+ output.WriteEnum(2, field_names[0], (int) EnumValue, EnumValue);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (Int32Value != 0) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Int32Value);
+ }
+ if (EnumValue != global::Google.ProtocolBuffers.TestProtos.Foo.Types.NestedEnum.FOO) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2, (int) EnumValue);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Foo ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Foo ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Foo ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Foo ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Foo MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Foo prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Foo, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Foo cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Foo result;
+
+ private Foo PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Foo original = result;
+ result = new Foo();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Foo MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Foo.Descriptor; }
+ }
+
+ public override Foo DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Foo.DefaultInstance; }
+ }
+
+ public override Foo BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Foo) {
+ return MergeFrom((Foo) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Foo other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Foo.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.Int32Value != 0) {
+ Int32Value = other.Int32Value;
+ }
+ if (other.EnumValue != global::Google.ProtocolBuffers.TestProtos.Foo.Types.NestedEnum.FOO) {
+ EnumValue = other.EnumValue;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ input.ReadInt32(ref result.int32Value_);
+ break;
+ }
+ case 16: {
+ object unknown;
+ if(input.ReadEnum(ref result.enumValue_, out unknown)) {
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2, (ulong)(int)unknown);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public int Int32Value {
+ get { return result.Int32Value; }
+ set { SetInt32Value(value); }
+ }
+ public Builder SetInt32Value(int value) {
+ PrepareBuilder();
+ result.int32Value_ = value;
+ return this;
+ }
+ public Builder ClearInt32Value() {
+ PrepareBuilder();
+ result.int32Value_ = 0;
+ return this;
+ }
+
+ public global::Google.ProtocolBuffers.TestProtos.Foo.Types.NestedEnum EnumValue {
+ get { return result.EnumValue; }
+ set { SetEnumValue(value); }
+ }
+ public Builder SetEnumValue(global::Google.ProtocolBuffers.TestProtos.Foo.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.enumValue_ = value;
+ return this;
+ }
+ public Builder ClearEnumValue() {
+ PrepareBuilder();
+ result.enumValue_ = global::Google.ProtocolBuffers.TestProtos.Foo.Types.NestedEnum.FOO;
+ return this;
+ }
+ }
+ static Foo() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestDropUnknownFields.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooWithExtraFields : pb::GeneratedMessage<FooWithExtraFields, FooWithExtraFields.Builder> {
+ private FooWithExtraFields() { }
+ private static readonly FooWithExtraFields defaultInstance = new FooWithExtraFields().MakeReadOnly();
+ private static readonly string[] _fooWithExtraFieldsFieldNames = new string[] { "enum_value", "extra_int32_value", "int32_value" };
+ private static readonly uint[] _fooWithExtraFieldsFieldTags = new uint[] { 16, 24, 8 };
+ public static FooWithExtraFields DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooWithExtraFields DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooWithExtraFields ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestDropUnknownFields.internal__static_unittest_drop_unknown_fields_FooWithExtraFields__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooWithExtraFields, FooWithExtraFields.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestDropUnknownFields.internal__static_unittest_drop_unknown_fields_FooWithExtraFields__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ FOO = 0,
+ BAR = 1,
+ BAZ = 2,
+ QUX = 3,
+ }
+
+ }
+ #endregion
+
+ public const int Int32ValueFieldNumber = 1;
+ private int int32Value_;
+ public int Int32Value {
+ get { return int32Value_; }
+ }
+
+ public const int EnumValueFieldNumber = 2;
+ private global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Types.NestedEnum enumValue_ = global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Types.NestedEnum.FOO;
+ public global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Types.NestedEnum EnumValue {
+ get { return enumValue_; }
+ }
+
+ public const int ExtraInt32ValueFieldNumber = 3;
+ private int extraInt32Value_;
+ public int ExtraInt32Value {
+ get { return extraInt32Value_; }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooWithExtraFieldsFieldNames;
+ if (Int32Value != 0) {
+ output.WriteInt32(1, field_names[2], Int32Value);
+ }
+ if (EnumValue != global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Types.NestedEnum.FOO) {
+ output.WriteEnum(2, field_names[0], (int) EnumValue, EnumValue);
+ }
+ if (ExtraInt32Value != 0) {
+ output.WriteInt32(3, field_names[1], ExtraInt32Value);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (Int32Value != 0) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Int32Value);
+ }
+ if (EnumValue != global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Types.NestedEnum.FOO) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2, (int) EnumValue);
+ }
+ if (ExtraInt32Value != 0) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, ExtraInt32Value);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooWithExtraFields ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooWithExtraFields ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooWithExtraFields ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooWithExtraFields ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooWithExtraFields ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooWithExtraFields ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooWithExtraFields ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooWithExtraFields ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooWithExtraFields ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooWithExtraFields ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooWithExtraFields MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooWithExtraFields prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooWithExtraFields, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooWithExtraFields cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooWithExtraFields result;
+
+ private FooWithExtraFields PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooWithExtraFields original = result;
+ result = new FooWithExtraFields();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooWithExtraFields MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Descriptor; }
+ }
+
+ public override FooWithExtraFields DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.DefaultInstance; }
+ }
+
+ public override FooWithExtraFields BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooWithExtraFields) {
+ return MergeFrom((FooWithExtraFields) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooWithExtraFields other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.Int32Value != 0) {
+ Int32Value = other.Int32Value;
+ }
+ if (other.EnumValue != global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Types.NestedEnum.FOO) {
+ EnumValue = other.EnumValue;
+ }
+ if (other.ExtraInt32Value != 0) {
+ ExtraInt32Value = other.ExtraInt32Value;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooWithExtraFieldsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooWithExtraFieldsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ input.ReadInt32(ref result.int32Value_);
+ break;
+ }
+ case 16: {
+ object unknown;
+ if(input.ReadEnum(ref result.enumValue_, out unknown)) {
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 24: {
+ input.ReadInt32(ref result.extraInt32Value_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public int Int32Value {
+ get { return result.Int32Value; }
+ set { SetInt32Value(value); }
+ }
+ public Builder SetInt32Value(int value) {
+ PrepareBuilder();
+ result.int32Value_ = value;
+ return this;
+ }
+ public Builder ClearInt32Value() {
+ PrepareBuilder();
+ result.int32Value_ = 0;
+ return this;
+ }
+
+ public global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Types.NestedEnum EnumValue {
+ get { return result.EnumValue; }
+ set { SetEnumValue(value); }
+ }
+ public Builder SetEnumValue(global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.enumValue_ = value;
+ return this;
+ }
+ public Builder ClearEnumValue() {
+ PrepareBuilder();
+ result.enumValue_ = global::Google.ProtocolBuffers.TestProtos.FooWithExtraFields.Types.NestedEnum.FOO;
+ return this;
+ }
+
+ public int ExtraInt32Value {
+ get { return result.ExtraInt32Value; }
+ set { SetExtraInt32Value(value); }
+ }
+ public Builder SetExtraInt32Value(int value) {
+ PrepareBuilder();
+ result.extraInt32Value_ = value;
+ return this;
+ }
+ public Builder ClearExtraInt32Value() {
+ PrepareBuilder();
+ result.extraInt32Value_ = 0;
+ return this;
+ }
+ }
+ static FooWithExtraFields() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestDropUnknownFields.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestEnormousDescriptor.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestEnormousDescriptor.cs
new file mode 100644
index 00000000..b8ed4bef
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestEnormousDescriptor.cs
@@ -0,0 +1,36189 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_enormous_descriptor.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestEnormousDescriptor {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_TestEnormousDescriptor__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEnormousDescriptor, global::Google.ProtocolBuffers.TestProtos.TestEnormousDescriptor.Builder> internal__static_google_protobuf_TestEnormousDescriptor__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestEnormousDescriptor() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CjJnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfZW5vcm1vdXNfZGVzY3JpcHRv",
+ "ci5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIpbcDQoWVGVzdEVub3Jtb3VzRGVz",
+ "Y3JpcHRvchLbAQphbG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vbmdfMRgBIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVl",
+ "IGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29uZxLbAQphbG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vbmdfMhgCIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlz",
+ "IGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29u",
+ "ZxLbAQphbG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vbmdfMxgDIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFs",
+ "c28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLb",
+ "AQphbG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vbmdfNBgEIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28g",
+ "bG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLbAQph",
+ "bG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vbmdfNRgFIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLbAQphbG9u",
+ "Z19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "bmdfNhgGIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLbAQphbG9uZ19m",
+ "aWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdf",
+ "NxgHIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLbAQphbG9uZ19maWVs",
+ "ZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfOBgI",
+ "IAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29uZxLbAQphbG9uZ19maWVsZF9u",
+ "YW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfORgJIAEo",
+ "CTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1l",
+ "X2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfMTAYCiABKAk6",
+ "cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9p",
+ "c19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzExGAsgASgJOnBs",
+ "b25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNf",
+ "bG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ18xMhgMIAEoCTpwbG9u",
+ "ZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xv",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfMTMYDSABKAk6cGxvbmcg",
+ "ZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb25nXzE0GA4gASgJOnBsb25nIGRl",
+ "ZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29uZ18xNRgPIAEoCTpwbG9uZyBkZWZh",
+ "dWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vbmdfMTYYECABKAk6cGxvbmcgZGVmYXVs",
+ "dCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb25nXzE3GBEgASgJOnBsb25nIGRlZmF1bHQg",
+ "dmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29uZ18xOBgSIAEoCTpwbG9uZyBkZWZhdWx0IHZh",
+ "bHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vbmdfMTkYEyABKAk6cGxvbmcgZGVmYXVsdCB2YWx1",
+ "ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb25nXzIwGBQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUg",
+ "aXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29uZ18yMRgVIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlz",
+ "IGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29u",
+ "ZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vbmdfMjIYFiABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBh",
+ "bHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS",
+ "3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb25nXzIzGBcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEtwB",
+ "CmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNBgYIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28g",
+ "bG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpi",
+ "bG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vbmdfMjUYGSABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxv",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxv",
+ "bmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b25nXzI2GBogASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25n",
+ "X2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29u",
+ "Z18yNxgbIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19m",
+ "aWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdf",
+ "MjgYHCABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmll",
+ "bGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzI5",
+ "GB0gASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxk",
+ "X25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ18zMBge",
+ "IAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9u",
+ "YW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfMzEYHyAB",
+ "KAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFt",
+ "ZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzMyGCAgASgJ",
+ "OnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVf",
+ "aXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ18zMxghIAEoCTpw",
+ "bG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lz",
+ "X2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfMzQYIiABKAk6cGxv",
+ "bmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19s",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzM1GCMgASgJOnBsb25n",
+ "IGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29uZ18zNhgkIAEoCTpwbG9uZyBk",
+ "ZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vbmdfMzcYJSABKAk6cGxvbmcgZGVm",
+ "YXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb25nXzM4GCYgASgJOnBsb25nIGRlZmF1",
+ "bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29uZ18zORgnIAEoCTpwbG9uZyBkZWZhdWx0",
+ "IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vbmdfNDAYKCABKAk6cGxvbmcgZGVmYXVsdCB2",
+ "YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb25nXzQxGCkgASgJOnBsb25nIGRlZmF1bHQgdmFs",
+ "dWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29uZ180MhgqIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVl",
+ "IGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vbmdfNDMYKyABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBp",
+ "cyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "bmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb25nXzQ0GCwgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMg",
+ "YWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25n",
+ "EtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29uZ180NRgtIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFs",
+ "c28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLc",
+ "AQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vbmdfNDYYLiABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNv",
+ "IGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEK",
+ "YmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb25nXzQ3GC8gASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBs",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJs",
+ "b25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29uZ180OBgwIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9u",
+ "Z19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "bmdfNDkYMSABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdf",
+ "ZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25n",
+ "XzUwGDIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2Zp",
+ "ZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ181",
+ "MRgzIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVs",
+ "ZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfNTIY",
+ "NCABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRf",
+ "bmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzUzGDUg",
+ "ASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25h",
+ "bWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ181NBg2IAEo",
+ "CTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1l",
+ "X2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfNTUYNyABKAk6",
+ "cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9p",
+ "c19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzU2GDggASgJOnBs",
+ "b25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNf",
+ "bG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ181Nxg5IAEoCTpwbG9u",
+ "ZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xv",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfNTgYOiABKAk6cGxvbmcg",
+ "ZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb25nXzU5GDsgASgJOnBsb25nIGRl",
+ "ZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29uZ182MBg8IAEoCTpwbG9uZyBkZWZh",
+ "dWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vbmdfNjEYPSABKAk6cGxvbmcgZGVmYXVs",
+ "dCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb25nXzYyGD4gASgJOnBsb25nIGRlZmF1bHQg",
+ "dmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29uZ182Mxg/IAEoCTpwbG9uZyBkZWZhdWx0IHZh",
+ "bHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vbmdfNjQYQCABKAk6cGxvbmcgZGVmYXVsdCB2YWx1",
+ "ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb25nXzY1GEEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUg",
+ "aXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29uZ182NhhCIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlz",
+ "IGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29u",
+ "ZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vbmdfNjcYQyABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBh",
+ "bHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS",
+ "3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb25nXzY4GEQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEtwB",
+ "CmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ORhFIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28g",
+ "bG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpi",
+ "bG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vbmdfNzAYRiABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxv",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxv",
+ "bmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b25nXzcxGEcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25n",
+ "X2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29u",
+ "Z183MhhIIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19m",
+ "aWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdf",
+ "NzMYSSABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmll",
+ "bGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzc0",
+ "GEogASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxk",
+ "X25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ183NRhL",
+ "IAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9u",
+ "YW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfNzYYTCAB",
+ "KAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFt",
+ "ZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzc3GE0gASgJ",
+ "OnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVf",
+ "aXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ183OBhOIAEoCTpw",
+ "bG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lz",
+ "X2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfNzkYTyABKAk6cGxv",
+ "bmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19s",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzgwGFAgASgJOnBsb25n",
+ "IGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29uZ184MRhRIAEoCTpwbG9uZyBk",
+ "ZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vbmdfODIYUiABKAk6cGxvbmcgZGVm",
+ "YXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb25nXzgzGFMgASgJOnBsb25nIGRlZmF1",
+ "bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29uZ184NBhUIAEoCTpwbG9uZyBkZWZhdWx0",
+ "IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vbmdfODUYVSABKAk6cGxvbmcgZGVmYXVsdCB2",
+ "YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vbmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb25nXzg2GFYgASgJOnBsb25nIGRlZmF1bHQgdmFs",
+ "dWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb25nEtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29uZ184NxhXIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVl",
+ "IGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29uZxLcAQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vbmdfODgYWCABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBp",
+ "cyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "bmcS3AEKYmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb25nXzg5GFkgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMg",
+ "YWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25n",
+ "EtwBCmJsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29uZ185MBhaIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFs",
+ "c28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLc",
+ "AQpibG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vbmdfOTEYWyABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNv",
+ "IGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEK",
+ "YmxvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb25nXzkyGFwgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBs",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJs",
+ "b25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29uZ185MxhdIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9u",
+ "Z19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "bmdfOTQYXiABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdf",
+ "ZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25n",
+ "Xzk1GF8gASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2Zp",
+ "ZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ185",
+ "NhhgIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLcAQpibG9uZ19maWVs",
+ "ZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfOTcY",
+ "YSABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS3AEKYmxvbmdfZmllbGRf",
+ "bmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzk4GGIg",
+ "ASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb25nEtwBCmJsb25nX2ZpZWxkX25h",
+ "bWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ185ORhjIAEo",
+ "CTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29uZxLdAQpjbG9uZ19maWVsZF9uYW1l",
+ "X2lzX2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfMTAwGGQgASgJ",
+ "OnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb25nEt0BCmNsb25nX2ZpZWxkX25hbWVf",
+ "aXNfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ18xMDEYZSABKAk6",
+ "cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vbmcS3QEKY2xvbmdfZmllbGRfbmFtZV9p",
+ "c19sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzEwMhhmIAEoCTpw",
+ "bG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29uZxLdAQpjbG9uZ19maWVsZF9uYW1lX2lz",
+ "X2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfMTAzGGcgASgJOnBs",
+ "b25nIGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb25nEt0BCmNsb25nX2ZpZWxkX25hbWVfaXNf",
+ "bG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ18xMDQYaCABKAk6cGxv",
+ "bmcgZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vbmcS3QEKY2xvbmdfZmllbGRfbmFtZV9pc19s",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb25nXzEwNRhpIAEoCTpwbG9u",
+ "ZyBkZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29uZxLdAQpjbG9uZ19maWVsZF9uYW1lX2lzX2xv",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfMTA2GGogASgJOnBsb25n",
+ "IGRlZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb25nEt0BCmNsb25nX2ZpZWxkX25hbWVfaXNfbG9v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29uZ18xMDcYayABKAk6cGxvbmcg",
+ "ZGVmYXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vbmcS3QEKY2xvbmdfZmllbGRfbmFtZV9pc19sb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb25nXzEwOBhsIAEoCTpwbG9uZyBk",
+ "ZWZhdWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29uZxLdAQpjbG9uZ19maWVsZF9uYW1lX2lzX2xvb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vbmdfMTA5GG0gASgJOnBsb25nIGRl",
+ "ZmF1bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb25nEt0BCmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29uZ18xMTAYbiABKAk6cGxvbmcgZGVm",
+ "YXVsdCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vbmcS3QEKY2xvbmdfZmllbGRfbmFtZV9pc19sb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb25nXzExMRhvIAEoCTpwbG9uZyBkZWZh",
+ "dWx0IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29uZxLdAQpjbG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vbmdfMTEyGHAgASgJOnBsb25nIGRlZmF1",
+ "bHQgdmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb25nEt0BCmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29uZ18xMTMYcSABKAk6cGxvbmcgZGVmYXVs",
+ "dCB2YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vbmcS3QEKY2xvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb25nXzExNBhyIAEoCTpwbG9uZyBkZWZhdWx0",
+ "IHZhbHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29uZxLdAQpjbG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vbmdfMTE1GHMgASgJOnBsb25nIGRlZmF1bHQg",
+ "dmFsdWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb25nEt0BCmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29uZ18xMTYYdCABKAk6cGxvbmcgZGVmYXVsdCB2",
+ "YWx1ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vbmcS3QEKY2xvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb25nXzExNxh1IAEoCTpwbG9uZyBkZWZhdWx0IHZh",
+ "bHVlIGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZxLdAQpjbG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vbmdfMTE4GHYgASgJOnBsb25nIGRlZmF1bHQgdmFs",
+ "dWUgaXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb25nEt0BCmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29uZ18xMTkYdyABKAk6cGxvbmcgZGVmYXVsdCB2YWx1",
+ "ZSBpcyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vbmcS3QEKY2xvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb25nXzEyMBh4IAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVl",
+ "IGlzIGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29uZxLdAQpjbG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vbmdfMTIxGHkgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUg",
+ "aXMgYWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b25nEt0BCmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29uZ18xMjIYeiABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBp",
+ "cyBhbHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "bmcS3QEKY2xvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb25nXzEyMxh7IAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlz",
+ "IGFsc28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29u",
+ "ZxLdAQpjbG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vbmdfMTI0GHwgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMg",
+ "YWxzbyBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25n",
+ "Et0BCmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29uZ18xMjUYfSABKAk6cGxvbmcgZGVmYXVsdCB2YWx1ZSBpcyBh",
+ "bHNvIGxvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmcS",
+ "3QEKY2xvbmdfZmllbGRfbmFtZV9pc19sb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb25nXzEyNhh+IAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFs",
+ "c28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZxLd",
+ "AQpjbG9uZ19maWVsZF9uYW1lX2lzX2xvb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vbmdfMTI3GH8gASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMjgYgAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMjkYgQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMzAYggEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMzEYgwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMzIYhAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMzMYhQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMzQYhgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMzUYhwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMzYYiAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMzcYiQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMzgYigEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMzkYiwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNDAYjAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNDEYjQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNDIYjgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNDMYjwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNDQYkAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNDUYkQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNDYYkgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNDcYkwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNDgYlAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNDkYlQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNTAYlgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNTEYlwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNTIYmAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNTMYmQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNTQYmgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNTUYmwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNTYYnAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNTcYnQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNTgYngEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNTkYnwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNjAYoAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNjEYoQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNjIYogEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNjMYowEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNjQYpAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNjUYpQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNjYYpgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNjcYpwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNjgYqAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNjkYqQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNzAYqgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNzEYqwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNzIYrAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNzMYrQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNzQYrgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNzUYrwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNzYYsAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNzcYsQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNzgYsgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xNzkYswEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xODAYtAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xODEYtQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xODIYtgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xODMYtwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xODQYuAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xODUYuQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xODYYugEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xODcYuwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xODgYvAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xODkYvQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xOTAYvgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xOTEYvwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xOTIYwAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xOTMYwQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xOTQYwgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xOTUYwwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xOTYYxAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xOTcYxQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xOTgYxgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xOTkYxwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMDAYyAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMDEYyQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMDIYygEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMDMYywEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMDQYzAEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMDUYzQEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMDYYzgEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMDcYzwEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMDgY0AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMDkY0QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMTAY0gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMTEY0wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMTIY1AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMTMY1QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMTQY1gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMTUY1wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMTYY2AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMTcY2QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMTgY2gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMTkY2wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMjAY3AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMjEY3QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMjIY3gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMjMY3wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMjQY4AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMjUY4QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMjYY4gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMjcY4wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMjgY5AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMjkY5QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMzAY5gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMzEY5wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMzIY6AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMzMY6QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMzQY6gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMzUY6wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMzYY7AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMzcY7QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMzgY7gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yMzkY7wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNDAY8AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNDEY8QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNDIY8gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNDMY8wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNDQY9AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNDUY9QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNDYY9gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNDcY9wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNDgY+AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNDkY+QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNTAY+gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNTEY+wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNTIY/AEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNTMY/QEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNTQY/gEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNTUY/wEgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNTYYgAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNTcYgQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNTgYggIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNTkYgwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNjAYhAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNjEYhQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNjIYhgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNjMYhwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNjQYiAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNjUYiQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNjYYigIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNjcYiwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNjgYjAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNjkYjQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNzAYjgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNzEYjwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNzIYkAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNzMYkQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNzQYkgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNzUYkwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNzYYlAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNzcYlQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNzgYlgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yNzkYlwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yODAYmAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yODEYmQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yODIYmgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yODMYmwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yODQYnAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yODUYnQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yODYYngIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yODcYnwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yODgYoAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yODkYoQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yOTAYogIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yOTEYowIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yOTIYpAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yOTMYpQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yOTQYpgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yOTUYpwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yOTYYqAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yOTcYqQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yOTgYqgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18yOTkYqwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMDAYrAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMDEYrQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMDIYrgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMDMYrwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMDQYsAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMDUYsQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMDYYsgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMDcYswIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMDgYtAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMDkYtQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMTAYtgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMTEYtwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMTIYuAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMTMYuQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMTQYugIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMTUYuwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMTYYvAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMTcYvQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMTgYvgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMTkYvwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMjAYwAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMjEYwQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMjIYwgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMjMYwwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMjQYxAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMjUYxQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMjYYxgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMjcYxwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMjgYyAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMjkYyQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMzAYygIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMzEYywIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMzIYzAIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMzMYzQIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMzQYzgIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMzUYzwIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMzYY0AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMzcY0QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMzgY0gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zMzkY0wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNDAY1AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNDEY1QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNDIY1gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNDMY1wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNDQY2AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNDUY2QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNDYY2gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNDcY2wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNDgY3AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNDkY3QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNTAY3gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNTEY3wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNTIY4AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNTMY4QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNTQY4gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNTUY4wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNTYY5AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNTcY5QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNTgY5gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNTkY5wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNjAY6AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNjEY6QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNjIY6gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNjMY6wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNjQY7AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNjUY7QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNjYY7gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNjcY7wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNjgY8AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNjkY8QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNzAY8gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNzEY8wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNzIY9AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNzMY9QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNzQY9gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNzUY9wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNzYY+AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNzcY+QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNzgY+gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zNzkY+wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zODAY/AIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zODEY/QIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zODIY/gIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zODMY/wIgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zODQYgAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zODUYgQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zODYYggMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zODcYgwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zODgYhAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zODkYhQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zOTAYhgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zOTEYhwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zOTIYiAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zOTMYiQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zOTQYigMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zOTUYiwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zOTYYjAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zOTcYjQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zOTgYjgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18zOTkYjwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MDAYkAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MDEYkQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MDIYkgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MDMYkwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MDQYlAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MDUYlQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MDYYlgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MDcYlwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MDgYmAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MDkYmQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MTAYmgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MTEYmwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MTIYnAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MTMYnQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MTQYngMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MTUYnwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MTYYoAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MTcYoQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MTgYogMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MTkYowMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MjAYpAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MjEYpQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MjIYpgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MjMYpwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MjQYqAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MjUYqQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MjYYqgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MjcYqwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MjgYrAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MjkYrQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MzAYrgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MzEYrwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MzIYsAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MzMYsQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MzQYsgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MzUYswMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MzYYtAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MzcYtQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MzgYtgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180MzkYtwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NDAYuAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NDEYuQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NDIYugMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NDMYuwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NDQYvAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NDUYvQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NDYYvgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NDcYvwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NDgYwAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NDkYwQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NTAYwgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NTEYwwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NTIYxAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NTMYxQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NTQYxgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NTUYxwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NTYYyAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NTcYyQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NTgYygMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NTkYywMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NjAYzAMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NjEYzQMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NjIYzgMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NjMYzwMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NjQY0AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NjUY0QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NjYY0gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NjcY0wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NjgY1AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NjkY1QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NzAY1gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NzEY1wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NzIY2AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NzMY2QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NzQY2gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NzUY2wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NzYY3AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NzcY3QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NzgY3gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180NzkY3wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180ODAY4AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180ODEY4QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180ODIY4gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180ODMY4wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180ODQY5AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180ODUY5QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180ODYY5gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180ODcY5wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180ODgY6AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180ODkY6QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180OTAY6gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180OTEY6wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180OTIY7AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180OTMY7QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180OTQY7gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180OTUY7wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180OTYY8AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180OTcY8QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180OTgY8gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ180OTkY8wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MDAY9AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MDEY9QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MDIY9gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MDMY9wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MDQY+AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MDUY+QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MDYY+gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MDcY+wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MDgY/AMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MDkY/QMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MTAY/gMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MTEY/wMgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MTIYgAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MTMYgQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MTQYggQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MTUYgwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MTYYhAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MTcYhQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MTgYhgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MTkYhwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MjAYiAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MjEYiQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MjIYigQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MjMYiwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MjQYjAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MjUYjQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MjYYjgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MjcYjwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MjgYkAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MjkYkQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MzAYkgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MzEYkwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MzIYlAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MzMYlQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MzQYlgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MzUYlwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MzYYmAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MzcYmQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MzgYmgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181MzkYmwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NDAYnAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NDEYnQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NDIYngQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NDMYnwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NDQYoAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NDUYoQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NDYYogQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NDcYowQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NDgYpAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NDkYpQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NTAYpgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NTEYpwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NTIYqAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NTMYqQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NTQYqgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NTUYqwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NTYYrAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NTcYrQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NTgYrgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NTkYrwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NjAYsAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NjEYsQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NjIYsgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NjMYswQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NjQYtAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NjUYtQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NjYYtgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NjcYtwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NjgYuAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NjkYuQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NzAYugQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NzEYuwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NzIYvAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NzMYvQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NzQYvgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NzUYvwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NzYYwAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NzcYwQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NzgYwgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181NzkYwwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181ODAYxAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181ODEYxQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181ODIYxgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181ODMYxwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181ODQYyAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181ODUYyQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181ODYYygQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181ODcYywQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181ODgYzAQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181ODkYzQQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181OTAYzgQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181OTEYzwQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181OTIY0AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181OTMY0QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181OTQY0gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181OTUY0wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181OTYY1AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181OTcY1QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181OTgY1gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ181OTkY1wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MDAY2AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MDEY2QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MDIY2gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MDMY2wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MDQY3AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MDUY3QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MDYY3gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MDcY3wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MDgY4AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MDkY4QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MTAY4gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MTEY4wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MTIY5AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MTMY5QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MTQY5gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MTUY5wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MTYY6AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MTcY6QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MTgY6gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MTkY6wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MjAY7AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MjEY7QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MjIY7gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MjMY7wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MjQY8AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MjUY8QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MjYY8gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MjcY8wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MjgY9AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MjkY9QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MzAY9gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MzEY9wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MzIY+AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MzMY+QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MzQY+gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MzUY+wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MzYY/AQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MzcY/QQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MzgY/gQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182MzkY/wQgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NDAYgAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NDEYgQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NDIYggUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NDMYgwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NDQYhAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NDUYhQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NDYYhgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NDcYhwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NDgYiAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NDkYiQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NTAYigUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NTEYiwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NTIYjAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NTMYjQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NTQYjgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NTUYjwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NTYYkAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NTcYkQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NTgYkgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NTkYkwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NjAYlAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NjEYlQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NjIYlgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NjMYlwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NjQYmAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NjUYmQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NjYYmgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NjcYmwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NjgYnAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NjkYnQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NzAYngUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NzEYnwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NzIYoAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NzMYoQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NzQYogUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NzUYowUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NzYYpAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NzcYpQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NzgYpgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182NzkYpwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ODAYqAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ODEYqQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ODIYqgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ODMYqwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ODQYrAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ODUYrQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ODYYrgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ODcYrwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ODgYsAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182ODkYsQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182OTAYsgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182OTEYswUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182OTIYtAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182OTMYtQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182OTQYtgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182OTUYtwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182OTYYuAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182OTcYuQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182OTgYugUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ182OTkYuwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MDAYvAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MDEYvQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MDIYvgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MDMYvwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MDQYwAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MDUYwQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MDYYwgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MDcYwwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MDgYxAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MDkYxQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MTAYxgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MTEYxwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MTIYyAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MTMYyQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MTQYygUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MTUYywUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MTYYzAUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MTcYzQUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MTgYzgUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MTkYzwUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MjAY0AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MjEY0QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MjIY0gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MjMY0wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MjQY1AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MjUY1QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MjYY1gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MjcY1wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MjgY2AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MjkY2QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MzAY2gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MzEY2wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MzIY3AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MzMY3QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MzQY3gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MzUY3wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MzYY4AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MzcY4QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MzgY4gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183MzkY4wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NDAY5AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NDEY5QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NDIY5gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NDMY5wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NDQY6AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NDUY6QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NDYY6gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NDcY6wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NDgY7AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NDkY7QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NTAY7gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NTEY7wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NTIY8AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NTMY8QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NTQY8gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NTUY8wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NTYY9AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NTcY9QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NTgY9gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NTkY9wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NjAY+AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NjEY+QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NjIY+gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NjMY+wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NjQY/AUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NjUY/QUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NjYY/gUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NjcY/wUgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NjgYgAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NjkYgQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NzAYggYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NzEYgwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NzIYhAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NzMYhQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NzQYhgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NzUYhwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NzYYiAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NzcYiQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NzgYigYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183NzkYiwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183ODAYjAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183ODEYjQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183ODIYjgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183ODMYjwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183ODQYkAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183ODUYkQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183ODYYkgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183ODcYkwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183ODgYlAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183ODkYlQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183OTAYlgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183OTEYlwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183OTIYmAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183OTMYmQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183OTQYmgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183OTUYmwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183OTYYnAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183OTcYnQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183OTgYngYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ183OTkYnwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MDAYoAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MDEYoQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MDIYogYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MDMYowYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MDQYpAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MDUYpQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MDYYpgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MDcYpwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MDgYqAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MDkYqQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MTAYqgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MTEYqwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MTIYrAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MTMYrQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MTQYrgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MTUYrwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MTYYsAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MTcYsQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MTgYsgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MTkYswYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MjAYtAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MjEYtQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MjIYtgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MjMYtwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MjQYuAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MjUYuQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MjYYugYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MjcYuwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MjgYvAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MjkYvQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MzAYvgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MzEYvwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MzIYwAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MzMYwQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MzQYwgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MzUYwwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MzYYxAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MzcYxQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MzgYxgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184MzkYxwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NDAYyAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NDEYyQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NDIYygYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NDMYywYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NDQYzAYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NDUYzQYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NDYYzgYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NDcYzwYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NDgY0AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NDkY0QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NTAY0gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NTEY0wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NTIY1AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NTMY1QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NTQY1gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NTUY1wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NTYY2AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NTcY2QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NTgY2gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NTkY2wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NjAY3AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NjEY3QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NjIY3gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NjMY3wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NjQY4AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NjUY4QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NjYY4gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NjcY4wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NjgY5AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NjkY5QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NzAY5gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NzEY5wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NzIY6AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NzMY6QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NzQY6gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NzUY6wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NzYY7AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NzcY7QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NzgY7gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184NzkY7wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184ODAY8AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184ODEY8QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184ODIY8gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184ODMY8wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184ODQY9AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184ODUY9QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184ODYY9gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184ODcY9wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184ODgY+AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184ODkY+QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184OTAY+gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184OTEY+wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184OTIY/AYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184OTMY/QYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184OTQY/gYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184OTUY/wYgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184OTYYgAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184OTcYgQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184OTgYggcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ184OTkYgwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MDAYhAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MDEYhQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MDIYhgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MDMYhwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MDQYiAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MDUYiQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MDYYigcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MDcYiwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MDgYjAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MDkYjQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MTAYjgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MTEYjwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MTIYkAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MTMYkQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MTQYkgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MTUYkwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MTYYlAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MTcYlQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MTgYlgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MTkYlwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MjAYmAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MjEYmQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MjIYmgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MjMYmwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MjQYnAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MjUYnQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MjYYngcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MjcYnwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MjgYoAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MjkYoQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MzAYogcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MzEYowcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MzIYpAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MzMYpQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MzQYpgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MzUYpwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MzYYqAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MzcYqQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MzgYqgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185MzkYqwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NDAYrAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NDEYrQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NDIYrgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NDMYrwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NDQYsAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NDUYsQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NDYYsgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NDcYswcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NDgYtAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NDkYtQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NTAYtgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NTEYtwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NTIYuAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NTMYuQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NTQYugcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NTUYuwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NTYYvAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NTcYvQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NTgYvgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NTkYvwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NjAYwAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NjEYwQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NjIYwgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NjMYwwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NjQYxAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NjUYxQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NjYYxgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NjcYxwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NjgYyAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NjkYyQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NzAYygcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NzEYywcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NzIYzAcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NzMYzQcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NzQYzgcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NzUYzwcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NzYY0AcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NzcY0QcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NzgY0gcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185NzkY0wcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185ODAY1AcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185ODEY1QcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185ODIY1gcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185ODMY1wcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185ODQY2AcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185ODUY2QcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185ODYY2gcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185ODcY2wcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185ODgY3AcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185ODkY3QcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185OTAY3gcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185OTEY3wcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185OTIY4AcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185OTMY4QcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185OTQY4gcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185OTUY4wcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185OTYY5AcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185OTcY5QcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185OTgY5gcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt4B",
+ "CmNsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ185OTkY5wcgASgJOnBsb25nIGRlZmF1bHQgdmFsdWUgaXMgYWxz",
+ "byBsb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nEt8B",
+ "CmRsb25nX2ZpZWxkX25hbWVfaXNfbG9vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29uZ18xMDAwGOgHIAEoCTpwbG9uZyBkZWZhdWx0IHZhbHVlIGlzIGFs",
+ "c28gbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v",
+ "b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ0I7",
+ "ChNjb20uZ29vZ2xlLnByb3RvYnVmSAKqAiFHb29nbGUuUHJvdG9jb2xCdWZm",
+ "ZXJzLlRlc3RQcm90b3M="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_google_protobuf_TestEnormousDescriptor__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_google_protobuf_TestEnormousDescriptor__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEnormousDescriptor, global::Google.ProtocolBuffers.TestProtos.TestEnormousDescriptor.Builder>(internal__static_google_protobuf_TestEnormousDescriptor__Descriptor,
+ new string[] { "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999", "LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEnormousDescriptor : pb::GeneratedMessage<TestEnormousDescriptor, TestEnormousDescriptor.Builder> {
+ private TestEnormousDescriptor() { }
+ private static readonly TestEnormousDescriptor defaultInstance = new TestEnormousDescriptor().MakeReadOnly();
+ public static TestEnormousDescriptor DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEnormousDescriptor DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEnormousDescriptor ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestEnormousDescriptor.internal__static_google_protobuf_TestEnormousDescriptor__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEnormousDescriptor, TestEnormousDescriptor.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestEnormousDescriptor.internal__static_google_protobuf_TestEnormousDescriptor__FieldAccessorTable; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1FieldNumber = 1;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2FieldNumber = 2;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3FieldNumber = 3;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4FieldNumber = 4;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5FieldNumber = 5;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6FieldNumber = 6;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7FieldNumber = 7;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8FieldNumber = 8;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9FieldNumber = 9;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10FieldNumber = 10;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11FieldNumber = 11;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12FieldNumber = 12;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13FieldNumber = 13;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14FieldNumber = 14;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15FieldNumber = 15;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16FieldNumber = 16;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17FieldNumber = 17;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18FieldNumber = 18;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19FieldNumber = 19;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20FieldNumber = 20;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21FieldNumber = 21;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22FieldNumber = 22;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23FieldNumber = 23;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24FieldNumber = 24;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25FieldNumber = 25;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26FieldNumber = 26;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27FieldNumber = 27;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28FieldNumber = 28;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29FieldNumber = 29;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30FieldNumber = 30;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31FieldNumber = 31;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32FieldNumber = 32;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33FieldNumber = 33;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34FieldNumber = 34;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35FieldNumber = 35;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36FieldNumber = 36;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37FieldNumber = 37;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38FieldNumber = 38;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39FieldNumber = 39;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40FieldNumber = 40;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41FieldNumber = 41;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42FieldNumber = 42;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43FieldNumber = 43;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44FieldNumber = 44;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45FieldNumber = 45;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46FieldNumber = 46;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47FieldNumber = 47;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48FieldNumber = 48;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49FieldNumber = 49;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50FieldNumber = 50;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51FieldNumber = 51;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52FieldNumber = 52;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53FieldNumber = 53;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54FieldNumber = 54;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55FieldNumber = 55;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56FieldNumber = 56;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57FieldNumber = 57;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58FieldNumber = 58;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59FieldNumber = 59;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60FieldNumber = 60;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61FieldNumber = 61;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62FieldNumber = 62;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63FieldNumber = 63;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64FieldNumber = 64;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65FieldNumber = 65;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66FieldNumber = 66;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67FieldNumber = 67;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68FieldNumber = 68;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69FieldNumber = 69;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70FieldNumber = 70;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71FieldNumber = 71;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72FieldNumber = 72;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73FieldNumber = 73;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74FieldNumber = 74;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75FieldNumber = 75;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76FieldNumber = 76;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77FieldNumber = 77;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78FieldNumber = 78;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79FieldNumber = 79;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80FieldNumber = 80;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81FieldNumber = 81;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82FieldNumber = 82;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83FieldNumber = 83;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84FieldNumber = 84;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85FieldNumber = 85;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86FieldNumber = 86;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87FieldNumber = 87;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88FieldNumber = 88;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89FieldNumber = 89;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90FieldNumber = 90;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91FieldNumber = 91;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92FieldNumber = 92;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93FieldNumber = 93;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94FieldNumber = 94;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95FieldNumber = 95;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96FieldNumber = 96;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97FieldNumber = 97;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98FieldNumber = 98;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99FieldNumber = 99;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100FieldNumber = 100;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101FieldNumber = 101;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102FieldNumber = 102;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103FieldNumber = 103;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104FieldNumber = 104;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105FieldNumber = 105;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106FieldNumber = 106;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107FieldNumber = 107;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108FieldNumber = 108;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109FieldNumber = 109;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110FieldNumber = 110;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111FieldNumber = 111;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112FieldNumber = 112;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113FieldNumber = 113;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114FieldNumber = 114;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115FieldNumber = 115;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116FieldNumber = 116;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117FieldNumber = 117;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118FieldNumber = 118;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119FieldNumber = 119;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120FieldNumber = 120;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121FieldNumber = 121;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122FieldNumber = 122;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123FieldNumber = 123;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124FieldNumber = 124;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125FieldNumber = 125;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126FieldNumber = 126;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127FieldNumber = 127;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128FieldNumber = 128;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129FieldNumber = 129;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130FieldNumber = 130;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131FieldNumber = 131;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132FieldNumber = 132;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133FieldNumber = 133;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134FieldNumber = 134;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135FieldNumber = 135;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136FieldNumber = 136;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137FieldNumber = 137;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138FieldNumber = 138;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139FieldNumber = 139;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140FieldNumber = 140;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141FieldNumber = 141;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142FieldNumber = 142;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143FieldNumber = 143;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144FieldNumber = 144;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145FieldNumber = 145;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146FieldNumber = 146;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147FieldNumber = 147;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148FieldNumber = 148;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149FieldNumber = 149;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150FieldNumber = 150;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151FieldNumber = 151;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152FieldNumber = 152;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153FieldNumber = 153;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154FieldNumber = 154;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155FieldNumber = 155;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156FieldNumber = 156;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157FieldNumber = 157;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158FieldNumber = 158;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159FieldNumber = 159;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160FieldNumber = 160;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161FieldNumber = 161;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162FieldNumber = 162;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163FieldNumber = 163;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164FieldNumber = 164;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165FieldNumber = 165;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166FieldNumber = 166;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167FieldNumber = 167;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168FieldNumber = 168;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169FieldNumber = 169;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170FieldNumber = 170;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171FieldNumber = 171;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172FieldNumber = 172;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173FieldNumber = 173;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174FieldNumber = 174;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175FieldNumber = 175;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176FieldNumber = 176;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177FieldNumber = 177;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178FieldNumber = 178;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179FieldNumber = 179;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180FieldNumber = 180;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181FieldNumber = 181;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182FieldNumber = 182;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183FieldNumber = 183;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184FieldNumber = 184;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185FieldNumber = 185;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186FieldNumber = 186;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187FieldNumber = 187;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188FieldNumber = 188;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189FieldNumber = 189;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190FieldNumber = 190;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191FieldNumber = 191;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192FieldNumber = 192;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193FieldNumber = 193;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194FieldNumber = 194;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195FieldNumber = 195;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196FieldNumber = 196;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197FieldNumber = 197;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198FieldNumber = 198;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199FieldNumber = 199;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200FieldNumber = 200;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201FieldNumber = 201;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202FieldNumber = 202;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203FieldNumber = 203;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204FieldNumber = 204;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205FieldNumber = 205;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206FieldNumber = 206;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207FieldNumber = 207;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208FieldNumber = 208;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209FieldNumber = 209;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210FieldNumber = 210;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211FieldNumber = 211;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212FieldNumber = 212;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213FieldNumber = 213;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214FieldNumber = 214;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215FieldNumber = 215;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216FieldNumber = 216;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217FieldNumber = 217;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218FieldNumber = 218;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219FieldNumber = 219;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220FieldNumber = 220;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221FieldNumber = 221;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222FieldNumber = 222;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223FieldNumber = 223;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224FieldNumber = 224;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225FieldNumber = 225;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226FieldNumber = 226;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227FieldNumber = 227;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228FieldNumber = 228;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229FieldNumber = 229;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230FieldNumber = 230;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231FieldNumber = 231;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232FieldNumber = 232;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233FieldNumber = 233;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234FieldNumber = 234;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235FieldNumber = 235;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236FieldNumber = 236;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237FieldNumber = 237;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238FieldNumber = 238;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239FieldNumber = 239;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240FieldNumber = 240;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241FieldNumber = 241;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242FieldNumber = 242;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243FieldNumber = 243;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244FieldNumber = 244;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245FieldNumber = 245;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246FieldNumber = 246;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247FieldNumber = 247;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248FieldNumber = 248;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249FieldNumber = 249;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250FieldNumber = 250;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251FieldNumber = 251;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252FieldNumber = 252;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253FieldNumber = 253;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254FieldNumber = 254;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255FieldNumber = 255;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256FieldNumber = 256;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257FieldNumber = 257;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258FieldNumber = 258;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259FieldNumber = 259;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260FieldNumber = 260;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261FieldNumber = 261;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262FieldNumber = 262;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263FieldNumber = 263;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264FieldNumber = 264;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265FieldNumber = 265;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266FieldNumber = 266;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267FieldNumber = 267;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268FieldNumber = 268;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269FieldNumber = 269;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270FieldNumber = 270;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271FieldNumber = 271;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272FieldNumber = 272;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273FieldNumber = 273;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274FieldNumber = 274;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275FieldNumber = 275;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276FieldNumber = 276;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277FieldNumber = 277;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278FieldNumber = 278;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279FieldNumber = 279;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280FieldNumber = 280;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281FieldNumber = 281;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282FieldNumber = 282;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283FieldNumber = 283;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284FieldNumber = 284;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285FieldNumber = 285;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286FieldNumber = 286;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287FieldNumber = 287;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288FieldNumber = 288;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289FieldNumber = 289;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290FieldNumber = 290;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291FieldNumber = 291;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292FieldNumber = 292;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293FieldNumber = 293;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294FieldNumber = 294;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295FieldNumber = 295;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296FieldNumber = 296;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297FieldNumber = 297;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298FieldNumber = 298;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299FieldNumber = 299;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300FieldNumber = 300;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301FieldNumber = 301;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302FieldNumber = 302;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303FieldNumber = 303;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304FieldNumber = 304;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305FieldNumber = 305;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306FieldNumber = 306;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307FieldNumber = 307;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308FieldNumber = 308;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309FieldNumber = 309;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310FieldNumber = 310;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311FieldNumber = 311;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312FieldNumber = 312;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313FieldNumber = 313;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314FieldNumber = 314;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315FieldNumber = 315;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316FieldNumber = 316;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317FieldNumber = 317;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318FieldNumber = 318;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319FieldNumber = 319;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320FieldNumber = 320;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321FieldNumber = 321;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322FieldNumber = 322;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323FieldNumber = 323;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324FieldNumber = 324;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325FieldNumber = 325;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326FieldNumber = 326;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327FieldNumber = 327;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328FieldNumber = 328;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329FieldNumber = 329;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330FieldNumber = 330;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331FieldNumber = 331;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332FieldNumber = 332;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333FieldNumber = 333;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334FieldNumber = 334;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335FieldNumber = 335;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336FieldNumber = 336;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337FieldNumber = 337;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338FieldNumber = 338;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339FieldNumber = 339;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340FieldNumber = 340;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341FieldNumber = 341;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342FieldNumber = 342;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343FieldNumber = 343;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344FieldNumber = 344;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345FieldNumber = 345;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346FieldNumber = 346;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347FieldNumber = 347;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348FieldNumber = 348;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349FieldNumber = 349;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350FieldNumber = 350;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351FieldNumber = 351;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352FieldNumber = 352;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353FieldNumber = 353;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354FieldNumber = 354;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355FieldNumber = 355;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356FieldNumber = 356;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357FieldNumber = 357;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358FieldNumber = 358;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359FieldNumber = 359;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360FieldNumber = 360;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361FieldNumber = 361;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362FieldNumber = 362;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363FieldNumber = 363;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364FieldNumber = 364;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365FieldNumber = 365;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366FieldNumber = 366;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367FieldNumber = 367;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368FieldNumber = 368;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369FieldNumber = 369;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370FieldNumber = 370;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371FieldNumber = 371;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372FieldNumber = 372;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373FieldNumber = 373;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374FieldNumber = 374;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375FieldNumber = 375;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376FieldNumber = 376;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377FieldNumber = 377;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378FieldNumber = 378;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379FieldNumber = 379;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380FieldNumber = 380;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381FieldNumber = 381;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382FieldNumber = 382;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383FieldNumber = 383;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384FieldNumber = 384;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385FieldNumber = 385;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386FieldNumber = 386;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387FieldNumber = 387;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388FieldNumber = 388;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389FieldNumber = 389;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390FieldNumber = 390;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391FieldNumber = 391;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392FieldNumber = 392;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393FieldNumber = 393;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394FieldNumber = 394;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395FieldNumber = 395;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396FieldNumber = 396;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397FieldNumber = 397;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398FieldNumber = 398;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399FieldNumber = 399;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400FieldNumber = 400;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401FieldNumber = 401;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402FieldNumber = 402;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403FieldNumber = 403;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404FieldNumber = 404;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405FieldNumber = 405;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406FieldNumber = 406;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407FieldNumber = 407;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408FieldNumber = 408;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409FieldNumber = 409;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410FieldNumber = 410;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411FieldNumber = 411;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412FieldNumber = 412;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413FieldNumber = 413;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414FieldNumber = 414;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415FieldNumber = 415;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416FieldNumber = 416;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417FieldNumber = 417;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418FieldNumber = 418;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419FieldNumber = 419;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420FieldNumber = 420;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421FieldNumber = 421;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422FieldNumber = 422;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423FieldNumber = 423;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424FieldNumber = 424;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425FieldNumber = 425;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426FieldNumber = 426;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427FieldNumber = 427;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428FieldNumber = 428;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429FieldNumber = 429;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430FieldNumber = 430;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431FieldNumber = 431;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432FieldNumber = 432;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433FieldNumber = 433;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434FieldNumber = 434;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435FieldNumber = 435;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436FieldNumber = 436;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437FieldNumber = 437;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438FieldNumber = 438;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439FieldNumber = 439;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440FieldNumber = 440;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441FieldNumber = 441;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442FieldNumber = 442;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443FieldNumber = 443;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444FieldNumber = 444;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445FieldNumber = 445;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446FieldNumber = 446;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447FieldNumber = 447;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448FieldNumber = 448;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449FieldNumber = 449;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450FieldNumber = 450;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451FieldNumber = 451;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452FieldNumber = 452;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453FieldNumber = 453;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454FieldNumber = 454;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455FieldNumber = 455;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456FieldNumber = 456;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457FieldNumber = 457;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458FieldNumber = 458;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459FieldNumber = 459;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460FieldNumber = 460;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461FieldNumber = 461;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462FieldNumber = 462;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463FieldNumber = 463;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464FieldNumber = 464;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465FieldNumber = 465;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466FieldNumber = 466;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467FieldNumber = 467;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468FieldNumber = 468;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469FieldNumber = 469;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470FieldNumber = 470;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471FieldNumber = 471;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472FieldNumber = 472;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473FieldNumber = 473;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474FieldNumber = 474;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475FieldNumber = 475;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476FieldNumber = 476;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477FieldNumber = 477;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478FieldNumber = 478;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479FieldNumber = 479;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480FieldNumber = 480;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481FieldNumber = 481;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482FieldNumber = 482;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483FieldNumber = 483;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484FieldNumber = 484;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485FieldNumber = 485;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486FieldNumber = 486;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487FieldNumber = 487;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488FieldNumber = 488;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489FieldNumber = 489;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490FieldNumber = 490;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491FieldNumber = 491;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492FieldNumber = 492;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493FieldNumber = 493;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494FieldNumber = 494;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495FieldNumber = 495;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496FieldNumber = 496;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497FieldNumber = 497;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498FieldNumber = 498;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499FieldNumber = 499;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500FieldNumber = 500;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501FieldNumber = 501;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502FieldNumber = 502;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503FieldNumber = 503;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504FieldNumber = 504;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505FieldNumber = 505;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506FieldNumber = 506;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507FieldNumber = 507;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508FieldNumber = 508;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509FieldNumber = 509;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510FieldNumber = 510;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511FieldNumber = 511;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512FieldNumber = 512;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513FieldNumber = 513;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514FieldNumber = 514;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515FieldNumber = 515;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516FieldNumber = 516;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517FieldNumber = 517;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518FieldNumber = 518;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519FieldNumber = 519;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520FieldNumber = 520;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521FieldNumber = 521;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522FieldNumber = 522;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523FieldNumber = 523;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524FieldNumber = 524;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525FieldNumber = 525;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526FieldNumber = 526;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527FieldNumber = 527;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528FieldNumber = 528;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529FieldNumber = 529;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530FieldNumber = 530;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531FieldNumber = 531;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532FieldNumber = 532;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533FieldNumber = 533;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534FieldNumber = 534;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535FieldNumber = 535;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536FieldNumber = 536;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537FieldNumber = 537;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538FieldNumber = 538;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539FieldNumber = 539;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540FieldNumber = 540;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541FieldNumber = 541;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542FieldNumber = 542;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543FieldNumber = 543;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544FieldNumber = 544;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545FieldNumber = 545;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546FieldNumber = 546;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547FieldNumber = 547;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548FieldNumber = 548;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549FieldNumber = 549;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550FieldNumber = 550;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551FieldNumber = 551;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552FieldNumber = 552;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553FieldNumber = 553;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554FieldNumber = 554;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555FieldNumber = 555;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556FieldNumber = 556;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557FieldNumber = 557;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558FieldNumber = 558;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559FieldNumber = 559;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560FieldNumber = 560;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561FieldNumber = 561;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562FieldNumber = 562;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563FieldNumber = 563;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564FieldNumber = 564;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565FieldNumber = 565;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566FieldNumber = 566;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567FieldNumber = 567;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568FieldNumber = 568;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569FieldNumber = 569;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570FieldNumber = 570;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571FieldNumber = 571;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572FieldNumber = 572;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573FieldNumber = 573;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574FieldNumber = 574;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575FieldNumber = 575;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576FieldNumber = 576;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577FieldNumber = 577;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578FieldNumber = 578;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579FieldNumber = 579;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580FieldNumber = 580;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581FieldNumber = 581;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582FieldNumber = 582;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583FieldNumber = 583;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584FieldNumber = 584;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585FieldNumber = 585;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586FieldNumber = 586;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587FieldNumber = 587;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588FieldNumber = 588;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589FieldNumber = 589;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590FieldNumber = 590;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591FieldNumber = 591;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592FieldNumber = 592;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593FieldNumber = 593;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594FieldNumber = 594;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595FieldNumber = 595;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596FieldNumber = 596;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597FieldNumber = 597;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598FieldNumber = 598;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599FieldNumber = 599;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600FieldNumber = 600;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601FieldNumber = 601;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602FieldNumber = 602;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603FieldNumber = 603;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604FieldNumber = 604;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605FieldNumber = 605;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606FieldNumber = 606;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607FieldNumber = 607;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608FieldNumber = 608;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609FieldNumber = 609;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610FieldNumber = 610;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611FieldNumber = 611;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612FieldNumber = 612;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613FieldNumber = 613;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614FieldNumber = 614;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615FieldNumber = 615;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616FieldNumber = 616;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617FieldNumber = 617;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618FieldNumber = 618;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619FieldNumber = 619;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620FieldNumber = 620;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621FieldNumber = 621;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622FieldNumber = 622;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623FieldNumber = 623;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624FieldNumber = 624;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625FieldNumber = 625;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626FieldNumber = 626;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627FieldNumber = 627;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628FieldNumber = 628;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629FieldNumber = 629;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630FieldNumber = 630;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631FieldNumber = 631;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632FieldNumber = 632;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633FieldNumber = 633;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634FieldNumber = 634;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635FieldNumber = 635;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636FieldNumber = 636;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637FieldNumber = 637;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638FieldNumber = 638;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639FieldNumber = 639;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640FieldNumber = 640;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641FieldNumber = 641;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642FieldNumber = 642;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643FieldNumber = 643;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644FieldNumber = 644;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645FieldNumber = 645;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646FieldNumber = 646;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647FieldNumber = 647;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648FieldNumber = 648;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649FieldNumber = 649;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650FieldNumber = 650;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651FieldNumber = 651;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652FieldNumber = 652;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653FieldNumber = 653;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654FieldNumber = 654;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655FieldNumber = 655;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656FieldNumber = 656;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657FieldNumber = 657;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658FieldNumber = 658;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659FieldNumber = 659;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660FieldNumber = 660;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661FieldNumber = 661;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662FieldNumber = 662;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663FieldNumber = 663;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664FieldNumber = 664;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665FieldNumber = 665;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666FieldNumber = 666;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667FieldNumber = 667;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668FieldNumber = 668;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669FieldNumber = 669;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670FieldNumber = 670;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671FieldNumber = 671;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672FieldNumber = 672;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673FieldNumber = 673;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674FieldNumber = 674;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675FieldNumber = 675;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676FieldNumber = 676;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677FieldNumber = 677;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678FieldNumber = 678;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679FieldNumber = 679;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680FieldNumber = 680;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681FieldNumber = 681;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682FieldNumber = 682;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683FieldNumber = 683;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684FieldNumber = 684;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685FieldNumber = 685;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686FieldNumber = 686;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687FieldNumber = 687;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688FieldNumber = 688;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689FieldNumber = 689;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690FieldNumber = 690;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691FieldNumber = 691;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692FieldNumber = 692;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693FieldNumber = 693;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694FieldNumber = 694;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695FieldNumber = 695;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696FieldNumber = 696;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697FieldNumber = 697;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698FieldNumber = 698;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699FieldNumber = 699;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700FieldNumber = 700;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701FieldNumber = 701;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702FieldNumber = 702;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703FieldNumber = 703;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704FieldNumber = 704;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705FieldNumber = 705;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706FieldNumber = 706;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707FieldNumber = 707;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708FieldNumber = 708;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709FieldNumber = 709;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710FieldNumber = 710;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711FieldNumber = 711;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712FieldNumber = 712;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713FieldNumber = 713;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714FieldNumber = 714;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715FieldNumber = 715;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716FieldNumber = 716;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717FieldNumber = 717;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718FieldNumber = 718;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719FieldNumber = 719;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720FieldNumber = 720;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721FieldNumber = 721;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722FieldNumber = 722;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723FieldNumber = 723;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724FieldNumber = 724;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725FieldNumber = 725;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726FieldNumber = 726;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727FieldNumber = 727;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728FieldNumber = 728;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729FieldNumber = 729;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730FieldNumber = 730;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731FieldNumber = 731;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732FieldNumber = 732;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733FieldNumber = 733;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734FieldNumber = 734;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735FieldNumber = 735;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736FieldNumber = 736;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737FieldNumber = 737;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738FieldNumber = 738;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739FieldNumber = 739;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740FieldNumber = 740;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741FieldNumber = 741;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742FieldNumber = 742;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743FieldNumber = 743;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744FieldNumber = 744;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745FieldNumber = 745;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746FieldNumber = 746;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747FieldNumber = 747;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748FieldNumber = 748;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749FieldNumber = 749;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750FieldNumber = 750;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751FieldNumber = 751;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752FieldNumber = 752;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753FieldNumber = 753;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754FieldNumber = 754;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755FieldNumber = 755;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756FieldNumber = 756;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757FieldNumber = 757;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758FieldNumber = 758;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759FieldNumber = 759;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760FieldNumber = 760;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761FieldNumber = 761;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762FieldNumber = 762;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763FieldNumber = 763;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764FieldNumber = 764;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765FieldNumber = 765;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766FieldNumber = 766;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767FieldNumber = 767;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768FieldNumber = 768;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769FieldNumber = 769;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770FieldNumber = 770;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771FieldNumber = 771;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772FieldNumber = 772;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773FieldNumber = 773;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774FieldNumber = 774;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775FieldNumber = 775;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776FieldNumber = 776;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777FieldNumber = 777;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778FieldNumber = 778;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779FieldNumber = 779;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780FieldNumber = 780;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781FieldNumber = 781;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782FieldNumber = 782;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783FieldNumber = 783;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784FieldNumber = 784;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785FieldNumber = 785;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786FieldNumber = 786;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787FieldNumber = 787;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788FieldNumber = 788;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789FieldNumber = 789;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790FieldNumber = 790;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791FieldNumber = 791;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792FieldNumber = 792;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793FieldNumber = 793;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794FieldNumber = 794;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795FieldNumber = 795;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796FieldNumber = 796;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797FieldNumber = 797;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798FieldNumber = 798;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799FieldNumber = 799;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800FieldNumber = 800;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801FieldNumber = 801;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802FieldNumber = 802;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803FieldNumber = 803;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804FieldNumber = 804;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805FieldNumber = 805;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806FieldNumber = 806;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807FieldNumber = 807;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808FieldNumber = 808;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809FieldNumber = 809;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810FieldNumber = 810;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811FieldNumber = 811;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812FieldNumber = 812;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813FieldNumber = 813;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814FieldNumber = 814;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815FieldNumber = 815;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816FieldNumber = 816;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817FieldNumber = 817;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818FieldNumber = 818;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819FieldNumber = 819;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820FieldNumber = 820;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821FieldNumber = 821;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822FieldNumber = 822;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823FieldNumber = 823;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824FieldNumber = 824;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825FieldNumber = 825;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826FieldNumber = 826;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827FieldNumber = 827;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828FieldNumber = 828;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829FieldNumber = 829;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830FieldNumber = 830;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831FieldNumber = 831;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832FieldNumber = 832;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833FieldNumber = 833;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834FieldNumber = 834;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835FieldNumber = 835;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836FieldNumber = 836;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837FieldNumber = 837;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838FieldNumber = 838;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839FieldNumber = 839;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840FieldNumber = 840;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841FieldNumber = 841;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842FieldNumber = 842;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843FieldNumber = 843;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844FieldNumber = 844;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845FieldNumber = 845;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846FieldNumber = 846;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847FieldNumber = 847;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848FieldNumber = 848;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849FieldNumber = 849;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850FieldNumber = 850;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851FieldNumber = 851;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852FieldNumber = 852;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853FieldNumber = 853;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854FieldNumber = 854;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855FieldNumber = 855;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856FieldNumber = 856;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857FieldNumber = 857;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858FieldNumber = 858;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859FieldNumber = 859;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860FieldNumber = 860;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861FieldNumber = 861;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862FieldNumber = 862;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863FieldNumber = 863;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864FieldNumber = 864;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865FieldNumber = 865;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866FieldNumber = 866;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867FieldNumber = 867;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868FieldNumber = 868;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869FieldNumber = 869;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870FieldNumber = 870;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871FieldNumber = 871;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872FieldNumber = 872;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873FieldNumber = 873;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874FieldNumber = 874;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875FieldNumber = 875;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876FieldNumber = 876;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877FieldNumber = 877;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878FieldNumber = 878;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879FieldNumber = 879;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880FieldNumber = 880;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881FieldNumber = 881;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882FieldNumber = 882;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883FieldNumber = 883;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884FieldNumber = 884;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885FieldNumber = 885;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886FieldNumber = 886;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887FieldNumber = 887;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888FieldNumber = 888;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889FieldNumber = 889;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890FieldNumber = 890;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891FieldNumber = 891;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892FieldNumber = 892;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893FieldNumber = 893;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894FieldNumber = 894;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895FieldNumber = 895;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896FieldNumber = 896;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897FieldNumber = 897;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898FieldNumber = 898;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899FieldNumber = 899;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900FieldNumber = 900;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901FieldNumber = 901;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902FieldNumber = 902;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903FieldNumber = 903;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904FieldNumber = 904;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905FieldNumber = 905;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906FieldNumber = 906;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907FieldNumber = 907;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908FieldNumber = 908;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909FieldNumber = 909;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910FieldNumber = 910;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911FieldNumber = 911;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912FieldNumber = 912;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913FieldNumber = 913;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914FieldNumber = 914;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915FieldNumber = 915;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916FieldNumber = 916;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917FieldNumber = 917;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918FieldNumber = 918;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919FieldNumber = 919;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920FieldNumber = 920;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921FieldNumber = 921;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922FieldNumber = 922;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923FieldNumber = 923;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924FieldNumber = 924;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925FieldNumber = 925;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926FieldNumber = 926;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927FieldNumber = 927;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928FieldNumber = 928;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929FieldNumber = 929;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930FieldNumber = 930;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931FieldNumber = 931;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932FieldNumber = 932;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933FieldNumber = 933;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934FieldNumber = 934;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935FieldNumber = 935;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936FieldNumber = 936;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937FieldNumber = 937;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938FieldNumber = 938;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939FieldNumber = 939;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940FieldNumber = 940;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941FieldNumber = 941;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942FieldNumber = 942;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943FieldNumber = 943;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944FieldNumber = 944;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945FieldNumber = 945;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946FieldNumber = 946;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947FieldNumber = 947;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948FieldNumber = 948;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949FieldNumber = 949;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950FieldNumber = 950;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951FieldNumber = 951;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952FieldNumber = 952;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953FieldNumber = 953;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954FieldNumber = 954;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955FieldNumber = 955;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956FieldNumber = 956;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957FieldNumber = 957;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958FieldNumber = 958;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959FieldNumber = 959;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960FieldNumber = 960;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961FieldNumber = 961;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962FieldNumber = 962;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963FieldNumber = 963;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964FieldNumber = 964;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965FieldNumber = 965;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966FieldNumber = 966;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967FieldNumber = 967;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968FieldNumber = 968;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969FieldNumber = 969;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970FieldNumber = 970;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971FieldNumber = 971;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972FieldNumber = 972;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973FieldNumber = 973;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974FieldNumber = 974;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975FieldNumber = 975;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976FieldNumber = 976;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977FieldNumber = 977;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978FieldNumber = 978;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979FieldNumber = 979;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980FieldNumber = 980;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981FieldNumber = 981;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982FieldNumber = 982;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983FieldNumber = 983;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984FieldNumber = 984;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985FieldNumber = 985;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986FieldNumber = 986;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987FieldNumber = 987;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988FieldNumber = 988;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989FieldNumber = 989;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990FieldNumber = 990;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991FieldNumber = 991;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992FieldNumber = 992;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993FieldNumber = 993;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994FieldNumber = 994;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995FieldNumber = 995;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996FieldNumber = 996;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997FieldNumber = 997;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998FieldNumber = 998;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999FieldNumber = 999;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999_; }
+ }
+
+ public const int LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000FieldNumber = 1000;
+ private bool hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000;
+ private string longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000 {
+ get { return hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000 {
+ get { return longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000_; }
+ }
+
+ public static TestEnormousDescriptor ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEnormousDescriptor ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEnormousDescriptor ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEnormousDescriptor ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEnormousDescriptor ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEnormousDescriptor ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEnormousDescriptor ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEnormousDescriptor ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEnormousDescriptor ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEnormousDescriptor ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEnormousDescriptor MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEnormousDescriptor prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestEnormousDescriptor, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEnormousDescriptor cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEnormousDescriptor result;
+
+ private TestEnormousDescriptor PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEnormousDescriptor original = result;
+ result = new TestEnormousDescriptor();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEnormousDescriptor MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEnormousDescriptor.Descriptor; }
+ }
+
+ public override TestEnormousDescriptor DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEnormousDescriptor.DefaultInstance; }
+ }
+
+ public override TestEnormousDescriptor BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong2_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong3_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong4_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong5_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong6_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong7_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong8_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong9_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong10_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong11_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong12_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong13_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong14_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong15_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong16_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong17_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong18_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong19_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong20_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong21_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong22_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong23_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong24_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong25_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong26_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong27_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong28_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong29_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong30_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong31_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong32_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong33_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong34_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong35_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong36_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong37_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong38_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong39_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong40_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong41_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong42_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong43_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong44_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong45_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong46_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong47_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong48_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong49_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong50_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong51_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong52_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong53_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong54_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong55_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong56_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong57_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong58_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong59_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong60_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong61_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong62_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong63_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong64_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong65_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong66_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong67_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong68_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong69_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong70_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong71_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong72_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong73_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong74_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong75_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong76_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong77_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong78_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong79_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong80_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong81_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong82_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong83_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong84_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong85_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong86_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong87_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong88_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong89_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong90_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong91_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong92_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong93_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong94_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong95_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong96_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong97_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong98_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong99_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong100_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong101_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong102_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong103_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong104_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong105_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong106_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong107_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong108_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong109_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong110_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong111_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong112_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong113_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong114_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong115_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong116_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong117_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong118_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong119_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong120_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong121_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong122_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong123_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong124_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong125_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong126_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong127_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong128_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong129_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong130_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong131_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong132_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong133_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong134_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong135_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong136_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong137_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong138_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong139_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong140_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong141_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong142_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong143_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong144_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong145_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong146_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong147_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong148_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong149_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong150_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong151_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong152_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong153_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong154_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong155_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong156_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong157_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong158_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong159_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong160_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong161_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong162_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong163_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong164_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong165_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong166_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong167_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong168_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong169_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong170_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong171_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong172_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong173_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong174_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong175_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong176_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong177_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong178_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong179_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong180_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong181_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong182_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong183_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong184_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong185_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong186_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong187_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong188_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong189_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong190_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong191_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong192_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong193_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong194_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong195_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong196_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong197_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong198_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong199_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong200_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong201_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong202_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong203_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong204_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong205_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong206_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong207_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong208_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong209_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong210_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong211_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong212_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong213_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong214_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong215_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong216_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong217_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong218_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong219_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong220_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong221_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong222_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong223_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong224_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong225_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong226_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong227_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong228_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong229_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong230_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong231_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong232_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong233_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong234_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong235_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong236_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong237_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong238_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong239_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong240_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong241_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong242_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong243_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong244_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong245_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong246_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong247_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong248_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong249_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong250_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong251_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong252_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong253_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong254_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong255_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong256_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong257_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong258_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong259_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong260_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong261_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong262_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong263_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong264_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong265_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong266_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong267_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong268_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong269_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong270_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong271_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong272_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong273_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong274_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong275_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong276_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong277_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong278_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong279_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong280_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong281_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong282_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong283_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong284_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong285_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong286_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong287_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong288_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong289_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong290_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong291_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong292_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong293_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong294_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong295_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong296_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong297_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong298_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong299_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong300_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong301_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong302_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong303_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong304_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong305_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong306_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong307_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong308_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong309_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong310_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong311_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong312_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong313_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong314_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong315_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong316_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong317_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong318_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong319_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong320_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong321_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong322_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong323_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong324_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong325_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong326_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong327_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong328_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong329_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong330_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong331_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong332_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong333_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong334_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong335_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong336_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong337_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong338_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong339_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong340_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong341_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong342_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong343_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong344_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong345_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong346_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong347_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong348_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong349_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong350_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong351_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong352_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong353_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong354_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong355_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong356_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong357_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong358_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong359_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong360_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong361_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong362_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong363_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong364_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong365_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong366_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong367_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong368_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong369_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong370_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong371_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong372_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong373_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong374_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong375_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong376_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong377_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong378_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong379_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong380_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong381_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong382_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong383_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong384_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong385_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong386_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong387_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong388_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong389_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong390_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong391_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong392_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong393_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong394_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong395_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong396_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong397_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong398_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong399_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong400_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong401_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong402_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong403_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong404_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong405_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong406_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong407_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong408_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong409_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong410_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong411_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong412_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong413_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong414_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong415_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong416_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong417_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong418_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong419_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong420_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong421_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong422_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong423_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong424_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong425_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong426_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong427_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong428_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong429_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong430_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong431_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong432_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong433_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong434_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong435_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong436_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong437_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong438_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong439_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong440_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong441_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong442_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong443_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong444_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong445_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong446_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong447_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong448_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong449_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong450_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong451_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong452_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong453_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong454_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong455_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong456_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong457_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong458_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong459_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong460_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong461_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong462_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong463_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong464_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong465_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong466_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong467_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong468_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong469_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong470_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong471_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong472_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong473_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong474_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong475_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong476_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong477_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong478_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong479_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong480_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong481_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong482_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong483_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong484_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong485_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong486_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong487_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong488_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong489_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong490_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong491_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong492_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong493_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong494_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong495_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong496_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong497_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong498_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong499_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong500_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong501_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong502_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong503_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong504_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong505_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong506_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong507_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong508_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong509_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong510_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong511_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong512_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong513_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong514_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong515_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong516_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong517_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong518_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong519_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong520_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong521_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong522_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong523_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong524_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong525_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong526_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong527_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong528_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong529_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong530_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong531_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong532_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong533_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong534_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong535_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong536_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong537_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong538_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong539_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong540_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong541_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong542_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong543_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong544_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong545_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong546_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong547_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong548_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong549_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong550_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong551_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong552_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong553_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong554_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong555_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong556_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong557_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong558_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong559_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong560_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong561_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong562_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong563_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong564_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong565_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong566_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong567_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong568_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong569_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong570_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong571_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong572_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong573_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong574_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong575_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong576_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong577_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong578_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong579_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong580_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong581_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong582_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong583_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong584_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong585_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong586_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong587_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong588_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong589_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong590_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong591_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong592_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong593_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong594_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong595_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong596_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong597_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong598_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong599_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong600_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong601_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong602_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong603_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong604_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong605_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong606_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong607_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong608_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong609_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong610_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong611_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong612_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong613_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong614_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong615_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong616_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong617_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong618_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong619_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong620_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong621_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong622_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong623_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong624_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong625_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong626_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong627_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong628_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong629_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong630_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong631_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong632_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong633_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong634_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong635_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong636_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong637_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong638_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong639_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong640_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong641_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong642_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong643_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong644_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong645_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong646_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong647_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong648_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong649_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong650_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong651_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong652_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong653_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong654_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong655_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong656_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong657_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong658_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong659_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong660_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong661_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong662_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong663_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong664_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong665_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong666_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong667_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong668_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong669_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong670_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong671_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong672_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong673_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong674_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong675_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong676_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong677_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong678_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong679_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong680_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong681_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong682_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong683_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong684_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong685_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong686_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong687_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong688_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong689_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong690_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong691_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong692_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong693_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong694_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong695_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong696_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong697_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong698_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong699_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong700_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong701_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong702_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong703_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong704_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong705_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong706_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong707_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong708_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong709_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong710_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong711_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong712_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong713_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong714_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong715_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong716_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong717_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong718_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong719_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong720_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong721_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong722_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong723_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong724_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong725_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong726_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong727_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong728_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong729_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong730_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong731_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong732_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong733_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong734_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong735_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong736_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong737_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong738_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong739_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong740_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong741_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong742_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong743_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong744_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong745_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong746_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong747_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong748_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong749_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong750_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong751_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong752_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong753_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong754_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong755_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong756_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong757_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong758_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong759_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong760_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong761_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong762_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong763_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong764_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong765_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong766_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong767_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong768_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong769_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong770_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong771_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong772_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong773_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong774_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong775_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong776_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong777_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong778_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong779_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong780_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong781_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong782_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong783_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong784_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong785_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong786_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong787_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong788_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong789_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong790_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong791_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong792_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong793_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong794_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong795_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong796_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong797_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong798_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong799_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong800_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong801_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong802_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong803_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong804_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong805_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong806_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong807_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong808_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong809_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong810_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong811_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong812_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong813_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong814_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong815_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong816_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong817_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong818_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong819_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong820_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong821_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong822_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong823_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong824_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong825_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong826_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong827_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong828_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong829_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong830_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong831_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong832_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong833_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong834_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong835_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong836_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong837_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong838_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong839_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong840_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong841_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong842_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong843_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong844_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong845_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong846_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong847_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong848_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong849_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong850_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong851_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong852_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong853_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong854_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong855_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong856_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong857_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong858_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong859_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong860_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong861_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong862_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong863_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong864_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong865_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong866_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong867_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong868_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong869_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong870_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong871_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong872_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong873_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong874_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong875_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong876_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong877_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong878_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong879_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong880_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong881_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong882_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong883_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong884_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong885_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong886_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong887_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong888_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong889_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong890_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong891_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong892_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong893_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong894_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong895_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong896_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong897_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong898_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong899_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong900_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong901_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong902_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong903_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong904_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong905_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong906_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong907_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong908_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong909_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong910_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong911_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong912_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong913_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong914_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong915_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong916_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong917_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong918_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong919_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong920_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong921_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong922_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong923_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong924_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong925_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong926_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong927_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong928_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong929_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong930_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong931_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong932_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong933_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong934_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong935_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong936_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong937_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong938_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong939_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong940_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong941_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong942_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong943_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong944_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong945_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong946_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong947_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong948_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong949_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong950_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong951_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong952_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong953_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong954_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong955_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong956_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong957_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong958_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong959_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong960_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong961_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong962_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong963_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong964_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong965_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong966_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong967_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong968_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong969_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong970_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong971_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong972_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong973_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong974_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong975_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong976_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong977_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong978_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong979_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong980_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong981_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong982_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong983_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong984_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong985_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong986_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong987_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong988_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong989_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong990_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong991_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong992_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong993_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong994_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong995_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong996_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong997_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong998_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong999_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+
+ public bool HasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000 {
+ get { return result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000; }
+ }
+ public string LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000 {
+ get { return result.LongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000; }
+ set { SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000(value); }
+ }
+ public Builder SetLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000 = true;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000_ = value;
+ return this;
+ }
+ public Builder ClearLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000() {
+ PrepareBuilder();
+ result.hasLongFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000 = false;
+ result.longFieldNameIsLooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong1000_ = "long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong";
+ return this;
+ }
+ }
+ static TestEnormousDescriptor() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestEnormousDescriptor.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestExtrasXmltest.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestExtrasXmltest.cs
new file mode 100644
index 00000000..70bdbfa9
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestExtrasXmltest.cs
@@ -0,0 +1,2277 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: unittest_extras_xmltest.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestExtrasXmltest {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.ExtensionEnum);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.ExtensionText);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.ExtensionNumber);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.ExtensionMessage);
+ }
+ #endregion
+ #region Extensions
+ public const int ExtensionEnumFieldNumber = 101;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.EnumOptions> ExtensionEnum;
+ public const int ExtensionTextFieldNumber = 102;
+ public static pb::GeneratedExtensionBase<string> ExtensionText;
+ public const int ExtensionNumberFieldNumber = 103;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> ExtensionNumber;
+ public const int ExtensionMessageFieldNumber = 199;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestXmlExtension> ExtensionMessage;
+ #endregion
+
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestXmlChild__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlChild, global::Google.ProtocolBuffers.TestProtos.TestXmlChild.Builder> internal__static_protobuf_unittest_extra_TestXmlChild__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestXmlNoFields__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlNoFields, global::Google.ProtocolBuffers.TestProtos.TestXmlNoFields.Builder> internal__static_protobuf_unittest_extra_TestXmlNoFields__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestXmlRescursive__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive, global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.Builder> internal__static_protobuf_unittest_extra_TestXmlRescursive__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestXmlMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlMessage, global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Builder> internal__static_protobuf_unittest_extra_TestXmlMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestXmlMessage_Children__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children, global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children.Builder> internal__static_protobuf_unittest_extra_TestXmlMessage_Children__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestXmlExtension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlExtension, global::Google.ProtocolBuffers.TestProtos.TestXmlExtension.Builder> internal__static_protobuf_unittest_extra_TestXmlExtension__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestExtrasXmltest() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Ch11bml0dGVzdF9leHRyYXNfeG1sdGVzdC5wcm90bxIXcHJvdG9idWZfdW5p",
+ "dHRlc3RfZXh0cmEiVQoMVGVzdFhtbENoaWxkEjUKB29wdGlvbnMYAyADKA4y",
+ "JC5wcm90b2J1Zl91bml0dGVzdF9leHRyYS5FbnVtT3B0aW9ucxIOCgZiaW5h",
+ "cnkYBCABKAwiEQoPVGVzdFhtbE5vRmllbGRzIk4KEVRlc3RYbWxSZXNjdXJz",
+ "aXZlEjkKBWNoaWxkGAEgASgLMioucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEu",
+ "VGVzdFhtbFJlc2N1cnNpdmUitwIKDlRlc3RYbWxNZXNzYWdlEg4KBm51bWJl",
+ "chgGIAEoAxIPCgdudW1iZXJzGAIgAygFEgwKBHRleHQYAyABKAkSEgoJdGV4",
+ "dGxpbmVzGLwFIAMoCRINCgV2YWxpZBgFIAEoCBI0CgVjaGlsZBgBIAEoCzIl",
+ "LnByb3RvYnVmX3VuaXR0ZXN0X2V4dHJhLlRlc3RYbWxDaGlsZBJDCghjaGls",
+ "ZHJlbhiRAyADKAoyMC5wcm90b2J1Zl91bml0dGVzdF9leHRyYS5UZXN0WG1s",
+ "TWVzc2FnZS5DaGlsZHJlbhpRCghDaGlsZHJlbhI1CgdvcHRpb25zGAMgAygO",
+ "MiQucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuRW51bU9wdGlvbnMSDgoGYmlu",
+ "YXJ5GAQgASgMKgUIZBDIASIiChBUZXN0WG1sRXh0ZW5zaW9uEg4KBm51bWJl",
+ "chgBIAIoBSoqCgtFbnVtT3B0aW9ucxIHCgNPTkUQABIHCgNUV08QARIJCgVU",
+ "SFJFRRACOmUKDmV4dGVuc2lvbl9lbnVtEicucHJvdG9idWZfdW5pdHRlc3Rf",
+ "ZXh0cmEuVGVzdFhtbE1lc3NhZ2UYZSABKA4yJC5wcm90b2J1Zl91bml0dGVz",
+ "dF9leHRyYS5FbnVtT3B0aW9uczo/Cg5leHRlbnNpb25fdGV4dBInLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0X2V4dHJhLlRlc3RYbWxNZXNzYWdlGGYgASgJOkUKEGV4",
+ "dGVuc2lvbl9udW1iZXISJy5wcm90b2J1Zl91bml0dGVzdF9leHRyYS5UZXN0",
+ "WG1sTWVzc2FnZRhnIAMoBUICEAE6bgoRZXh0ZW5zaW9uX21lc3NhZ2USJy5w",
+ "cm90b2J1Zl91bml0dGVzdF9leHRyYS5UZXN0WG1sTWVzc2FnZRjHASABKAsy",
+ "KS5wcm90b2J1Zl91bml0dGVzdF9leHRyYS5UZXN0WG1sRXh0ZW5zaW9uQiZI",
+ "AaoCIUdvb2dsZS5Qcm90b2NvbEJ1ZmZlcnMuVGVzdFByb3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_extra_TestXmlChild__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_extra_TestXmlChild__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlChild, global::Google.ProtocolBuffers.TestProtos.TestXmlChild.Builder>(internal__static_protobuf_unittest_extra_TestXmlChild__Descriptor,
+ new string[] { "Options", "Binary", });
+ internal__static_protobuf_unittest_extra_TestXmlNoFields__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_extra_TestXmlNoFields__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlNoFields, global::Google.ProtocolBuffers.TestProtos.TestXmlNoFields.Builder>(internal__static_protobuf_unittest_extra_TestXmlNoFields__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_extra_TestXmlRescursive__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_extra_TestXmlRescursive__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive, global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.Builder>(internal__static_protobuf_unittest_extra_TestXmlRescursive__Descriptor,
+ new string[] { "Child", });
+ internal__static_protobuf_unittest_extra_TestXmlMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_extra_TestXmlMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlMessage, global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Builder>(internal__static_protobuf_unittest_extra_TestXmlMessage__Descriptor,
+ new string[] { "Number", "Numbers", "Text", "Textlines", "Valid", "Child", "Children", });
+ internal__static_protobuf_unittest_extra_TestXmlMessage_Children__Descriptor = internal__static_protobuf_unittest_extra_TestXmlMessage__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_extra_TestXmlMessage_Children__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children, global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children.Builder>(internal__static_protobuf_unittest_extra_TestXmlMessage_Children__Descriptor,
+ new string[] { "Options", "Binary", });
+ internal__static_protobuf_unittest_extra_TestXmlExtension__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_protobuf_unittest_extra_TestXmlExtension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestXmlExtension, global::Google.ProtocolBuffers.TestProtos.TestXmlExtension.Builder>(internal__static_protobuf_unittest_extra_TestXmlExtension__Descriptor,
+ new string[] { "Number", });
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.ExtensionEnum = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.EnumOptions>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.ExtensionText = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.Descriptor.Extensions[1]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.ExtensionNumber = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.Descriptor.Extensions[2]);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.ExtensionMessage = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestXmlExtension>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.Descriptor.Extensions[3]);
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum EnumOptions {
+ ONE = 0,
+ TWO = 1,
+ THREE = 2,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestXmlChild : pb::GeneratedMessage<TestXmlChild, TestXmlChild.Builder> {
+ private TestXmlChild() { }
+ private static readonly TestXmlChild defaultInstance = new TestXmlChild().MakeReadOnly();
+ private static readonly string[] _testXmlChildFieldNames = new string[] { "binary", "options" };
+ private static readonly uint[] _testXmlChildFieldTags = new uint[] { 34, 24 };
+ public static TestXmlChild DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestXmlChild DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestXmlChild ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlChild__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestXmlChild, TestXmlChild.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlChild__FieldAccessorTable; }
+ }
+
+ public const int OptionsFieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.EnumOptions> options_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.EnumOptions>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.EnumOptions> OptionsList {
+ get { return pbc::Lists.AsReadOnly(options_); }
+ }
+ public int OptionsCount {
+ get { return options_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.EnumOptions GetOptions(int index) {
+ return options_[index];
+ }
+
+ public const int BinaryFieldNumber = 4;
+ private bool hasBinary;
+ private pb::ByteString binary_ = pb::ByteString.Empty;
+ public bool HasBinary {
+ get { return hasBinary; }
+ }
+ public pb::ByteString Binary {
+ get { return binary_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testXmlChildFieldNames;
+ if (options_.Count > 0) {
+ output.WriteEnumArray(3, field_names[1], options_);
+ }
+ if (hasBinary) {
+ output.WriteBytes(4, field_names[0], Binary);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ if (options_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.EnumOptions element in options_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1 * options_.Count;
+ }
+ }
+ if (hasBinary) {
+ size += pb::CodedOutputStream.ComputeBytesSize(4, Binary);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestXmlChild ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestXmlChild ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlChild ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestXmlChild ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlChild ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestXmlChild ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlChild ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestXmlChild ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestXmlChild ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestXmlChild ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestXmlChild MakeReadOnly() {
+ options_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestXmlChild prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestXmlChild, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestXmlChild cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestXmlChild result;
+
+ private TestXmlChild PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestXmlChild original = result;
+ result = new TestXmlChild();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestXmlChild MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlChild.Descriptor; }
+ }
+
+ public override TestXmlChild DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlChild.DefaultInstance; }
+ }
+
+ public override TestXmlChild BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestXmlChild) {
+ return MergeFrom((TestXmlChild) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestXmlChild other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestXmlChild.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.options_.Count != 0) {
+ result.options_.Add(other.options_);
+ }
+ if (other.HasBinary) {
+ Binary = other.Binary;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testXmlChildFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testXmlChildFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 26:
+ case 24: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.EnumOptions>(tag, field_name, result.options_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(3, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 34: {
+ result.hasBinary = input.ReadBytes(ref result.binary_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.EnumOptions> OptionsList {
+ get { return PrepareBuilder().options_; }
+ }
+ public int OptionsCount {
+ get { return result.OptionsCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.EnumOptions GetOptions(int index) {
+ return result.GetOptions(index);
+ }
+ public Builder SetOptions(int index, global::Google.ProtocolBuffers.TestProtos.EnumOptions value) {
+ PrepareBuilder();
+ result.options_[index] = value;
+ return this;
+ }
+ public Builder AddOptions(global::Google.ProtocolBuffers.TestProtos.EnumOptions value) {
+ PrepareBuilder();
+ result.options_.Add(value);
+ return this;
+ }
+ public Builder AddRangeOptions(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.EnumOptions> values) {
+ PrepareBuilder();
+ result.options_.Add(values);
+ return this;
+ }
+ public Builder ClearOptions() {
+ PrepareBuilder();
+ result.options_.Clear();
+ return this;
+ }
+
+ public bool HasBinary {
+ get { return result.hasBinary; }
+ }
+ public pb::ByteString Binary {
+ get { return result.Binary; }
+ set { SetBinary(value); }
+ }
+ public Builder SetBinary(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBinary = true;
+ result.binary_ = value;
+ return this;
+ }
+ public Builder ClearBinary() {
+ PrepareBuilder();
+ result.hasBinary = false;
+ result.binary_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static TestXmlChild() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestXmlNoFields : pb::GeneratedMessage<TestXmlNoFields, TestXmlNoFields.Builder> {
+ private TestXmlNoFields() { }
+ private static readonly TestXmlNoFields defaultInstance = new TestXmlNoFields().MakeReadOnly();
+ private static readonly string[] _testXmlNoFieldsFieldNames = new string[] { };
+ private static readonly uint[] _testXmlNoFieldsFieldTags = new uint[] { };
+ public static TestXmlNoFields DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestXmlNoFields DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestXmlNoFields ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlNoFields__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestXmlNoFields, TestXmlNoFields.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlNoFields__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testXmlNoFieldsFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestXmlNoFields ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestXmlNoFields ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlNoFields ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestXmlNoFields ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlNoFields ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestXmlNoFields ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlNoFields ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestXmlNoFields ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestXmlNoFields ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestXmlNoFields ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestXmlNoFields MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestXmlNoFields prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestXmlNoFields, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestXmlNoFields cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestXmlNoFields result;
+
+ private TestXmlNoFields PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestXmlNoFields original = result;
+ result = new TestXmlNoFields();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestXmlNoFields MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlNoFields.Descriptor; }
+ }
+
+ public override TestXmlNoFields DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlNoFields.DefaultInstance; }
+ }
+
+ public override TestXmlNoFields BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestXmlNoFields) {
+ return MergeFrom((TestXmlNoFields) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestXmlNoFields other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestXmlNoFields.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testXmlNoFieldsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testXmlNoFieldsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestXmlNoFields() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestXmlRescursive : pb::GeneratedMessage<TestXmlRescursive, TestXmlRescursive.Builder> {
+ private TestXmlRescursive() { }
+ private static readonly TestXmlRescursive defaultInstance = new TestXmlRescursive().MakeReadOnly();
+ private static readonly string[] _testXmlRescursiveFieldNames = new string[] { "child" };
+ private static readonly uint[] _testXmlRescursiveFieldTags = new uint[] { 10 };
+ public static TestXmlRescursive DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestXmlRescursive DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestXmlRescursive ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlRescursive__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestXmlRescursive, TestXmlRescursive.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlRescursive__FieldAccessorTable; }
+ }
+
+ public const int ChildFieldNumber = 1;
+ private bool hasChild;
+ private global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive child_;
+ public bool HasChild {
+ get { return hasChild; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive Child {
+ get { return child_ ?? global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testXmlRescursiveFieldNames;
+ if (hasChild) {
+ output.WriteMessage(1, field_names[0], Child);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasChild) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Child);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestXmlRescursive ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestXmlRescursive ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlRescursive ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestXmlRescursive ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlRescursive ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestXmlRescursive ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlRescursive ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestXmlRescursive ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestXmlRescursive ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestXmlRescursive ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestXmlRescursive MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestXmlRescursive prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestXmlRescursive, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestXmlRescursive cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestXmlRescursive result;
+
+ private TestXmlRescursive PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestXmlRescursive original = result;
+ result = new TestXmlRescursive();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestXmlRescursive MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.Descriptor; }
+ }
+
+ public override TestXmlRescursive DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.DefaultInstance; }
+ }
+
+ public override TestXmlRescursive BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestXmlRescursive) {
+ return MergeFrom((TestXmlRescursive) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestXmlRescursive other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasChild) {
+ MergeChild(other.Child);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testXmlRescursiveFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testXmlRescursiveFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.CreateBuilder();
+ if (result.hasChild) {
+ subBuilder.MergeFrom(Child);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Child = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasChild {
+ get { return result.hasChild; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive Child {
+ get { return result.Child; }
+ set { SetChild(value); }
+ }
+ public Builder SetChild(global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasChild = true;
+ result.child_ = value;
+ return this;
+ }
+ public Builder SetChild(global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasChild = true;
+ result.child_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeChild(global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasChild &&
+ result.child_ != global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.DefaultInstance) {
+ result.child_ = global::Google.ProtocolBuffers.TestProtos.TestXmlRescursive.CreateBuilder(result.child_).MergeFrom(value).BuildPartial();
+ } else {
+ result.child_ = value;
+ }
+ result.hasChild = true;
+ return this;
+ }
+ public Builder ClearChild() {
+ PrepareBuilder();
+ result.hasChild = false;
+ result.child_ = null;
+ return this;
+ }
+ }
+ static TestXmlRescursive() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestXmlMessage : pb::ExtendableMessage<TestXmlMessage, TestXmlMessage.Builder> {
+ private TestXmlMessage() { }
+ private static readonly TestXmlMessage defaultInstance = new TestXmlMessage().MakeReadOnly();
+ private static readonly string[] _testXmlMessageFieldNames = new string[] { "child", "children", "number", "numbers", "text", "textlines", "valid" };
+ private static readonly uint[] _testXmlMessageFieldTags = new uint[] { 10, 3211, 48, 16, 26, 5602, 40 };
+ public static TestXmlMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestXmlMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestXmlMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestXmlMessage, TestXmlMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlMessage__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Children : pb::GeneratedMessage<Children, Children.Builder> {
+ private Children() { }
+ private static readonly Children defaultInstance = new Children().MakeReadOnly();
+ private static readonly string[] _childrenFieldNames = new string[] { "binary", "options" };
+ private static readonly uint[] _childrenFieldTags = new uint[] { 34, 24 };
+ public static Children DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Children DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Children ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlMessage_Children__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Children, Children.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlMessage_Children__FieldAccessorTable; }
+ }
+
+ public const int OptionsFieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.EnumOptions> options_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.EnumOptions>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.EnumOptions> OptionsList {
+ get { return pbc::Lists.AsReadOnly(options_); }
+ }
+ public int OptionsCount {
+ get { return options_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.EnumOptions GetOptions(int index) {
+ return options_[index];
+ }
+
+ public const int BinaryFieldNumber = 4;
+ private bool hasBinary;
+ private pb::ByteString binary_ = pb::ByteString.Empty;
+ public bool HasBinary {
+ get { return hasBinary; }
+ }
+ public pb::ByteString Binary {
+ get { return binary_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _childrenFieldNames;
+ if (options_.Count > 0) {
+ output.WriteEnumArray(3, field_names[1], options_);
+ }
+ if (hasBinary) {
+ output.WriteBytes(4, field_names[0], Binary);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ if (options_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.EnumOptions element in options_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1 * options_.Count;
+ }
+ }
+ if (hasBinary) {
+ size += pb::CodedOutputStream.ComputeBytesSize(4, Binary);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Children ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Children ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Children ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Children ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Children ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Children ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Children ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Children ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Children ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Children ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Children MakeReadOnly() {
+ options_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Children prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Children, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Children cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Children result;
+
+ private Children PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Children original = result;
+ result = new Children();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Children MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children.Descriptor; }
+ }
+
+ public override Children DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children.DefaultInstance; }
+ }
+
+ public override Children BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Children) {
+ return MergeFrom((Children) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Children other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.options_.Count != 0) {
+ result.options_.Add(other.options_);
+ }
+ if (other.HasBinary) {
+ Binary = other.Binary;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_childrenFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _childrenFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 26:
+ case 24: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.EnumOptions>(tag, field_name, result.options_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(3, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 34: {
+ result.hasBinary = input.ReadBytes(ref result.binary_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.EnumOptions> OptionsList {
+ get { return PrepareBuilder().options_; }
+ }
+ public int OptionsCount {
+ get { return result.OptionsCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.EnumOptions GetOptions(int index) {
+ return result.GetOptions(index);
+ }
+ public Builder SetOptions(int index, global::Google.ProtocolBuffers.TestProtos.EnumOptions value) {
+ PrepareBuilder();
+ result.options_[index] = value;
+ return this;
+ }
+ public Builder AddOptions(global::Google.ProtocolBuffers.TestProtos.EnumOptions value) {
+ PrepareBuilder();
+ result.options_.Add(value);
+ return this;
+ }
+ public Builder AddRangeOptions(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.EnumOptions> values) {
+ PrepareBuilder();
+ result.options_.Add(values);
+ return this;
+ }
+ public Builder ClearOptions() {
+ PrepareBuilder();
+ result.options_.Clear();
+ return this;
+ }
+
+ public bool HasBinary {
+ get { return result.hasBinary; }
+ }
+ public pb::ByteString Binary {
+ get { return result.Binary; }
+ set { SetBinary(value); }
+ }
+ public Builder SetBinary(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBinary = true;
+ result.binary_ = value;
+ return this;
+ }
+ public Builder ClearBinary() {
+ PrepareBuilder();
+ result.hasBinary = false;
+ result.binary_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static Children() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NumberFieldNumber = 6;
+ private bool hasNumber;
+ private long number_;
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public long Number {
+ get { return number_; }
+ }
+
+ public const int NumbersFieldNumber = 2;
+ private pbc::PopsicleList<int> numbers_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> NumbersList {
+ get { return pbc::Lists.AsReadOnly(numbers_); }
+ }
+ public int NumbersCount {
+ get { return numbers_.Count; }
+ }
+ public int GetNumbers(int index) {
+ return numbers_[index];
+ }
+
+ public const int TextFieldNumber = 3;
+ private bool hasText;
+ private string text_ = "";
+ public bool HasText {
+ get { return hasText; }
+ }
+ public string Text {
+ get { return text_; }
+ }
+
+ public const int TextlinesFieldNumber = 700;
+ private pbc::PopsicleList<string> textlines_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> TextlinesList {
+ get { return pbc::Lists.AsReadOnly(textlines_); }
+ }
+ public int TextlinesCount {
+ get { return textlines_.Count; }
+ }
+ public string GetTextlines(int index) {
+ return textlines_[index];
+ }
+
+ public const int ValidFieldNumber = 5;
+ private bool hasValid;
+ private bool valid_;
+ public bool HasValid {
+ get { return hasValid; }
+ }
+ public bool Valid {
+ get { return valid_; }
+ }
+
+ public const int ChildFieldNumber = 1;
+ private bool hasChild;
+ private global::Google.ProtocolBuffers.TestProtos.TestXmlChild child_;
+ public bool HasChild {
+ get { return hasChild; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestXmlChild Child {
+ get { return child_ ?? global::Google.ProtocolBuffers.TestProtos.TestXmlChild.DefaultInstance; }
+ }
+
+ public const int ChildrenFieldNumber = 401;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children> children_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children> ChildrenList {
+ get { return children_; }
+ }
+ public int ChildrenCount {
+ get { return children_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children GetChildren(int index) {
+ return children_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testXmlMessageFieldNames;
+ pb::ExtendableMessage<TestXmlMessage, TestXmlMessage.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasChild) {
+ output.WriteMessage(1, field_names[0], Child);
+ }
+ if (numbers_.Count > 0) {
+ output.WriteInt32Array(2, field_names[3], numbers_);
+ }
+ if (hasText) {
+ output.WriteString(3, field_names[4], Text);
+ }
+ if (hasValid) {
+ output.WriteBool(5, field_names[6], Valid);
+ }
+ if (hasNumber) {
+ output.WriteInt64(6, field_names[2], Number);
+ }
+ extensionWriter.WriteUntil(200, output);
+ if (children_.Count > 0) {
+ output.WriteGroupArray(401, field_names[1], children_);
+ }
+ if (textlines_.Count > 0) {
+ output.WriteStringArray(700, field_names[5], textlines_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasNumber) {
+ size += pb::CodedOutputStream.ComputeInt64Size(6, Number);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in NumbersList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * numbers_.Count;
+ }
+ if (hasText) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, Text);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in TextlinesList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * textlines_.Count;
+ }
+ if (hasValid) {
+ size += pb::CodedOutputStream.ComputeBoolSize(5, Valid);
+ }
+ if (hasChild) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Child);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children element in ChildrenList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(401, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestXmlMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestXmlMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestXmlMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestXmlMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestXmlMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestXmlMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestXmlMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestXmlMessage MakeReadOnly() {
+ numbers_.MakeReadOnly();
+ textlines_.MakeReadOnly();
+ children_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestXmlMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestXmlMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestXmlMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestXmlMessage result;
+
+ private TestXmlMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestXmlMessage original = result;
+ result = new TestXmlMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestXmlMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Descriptor; }
+ }
+
+ public override TestXmlMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.DefaultInstance; }
+ }
+
+ public override TestXmlMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestXmlMessage) {
+ return MergeFrom((TestXmlMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestXmlMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ if (other.numbers_.Count != 0) {
+ result.numbers_.Add(other.numbers_);
+ }
+ if (other.HasText) {
+ Text = other.Text;
+ }
+ if (other.textlines_.Count != 0) {
+ result.textlines_.Add(other.textlines_);
+ }
+ if (other.HasValid) {
+ Valid = other.Valid;
+ }
+ if (other.HasChild) {
+ MergeChild(other.Child);
+ }
+ if (other.children_.Count != 0) {
+ result.children_.Add(other.children_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testXmlMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testXmlMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestXmlChild.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestXmlChild.CreateBuilder();
+ if (result.hasChild) {
+ subBuilder.MergeFrom(Child);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Child = subBuilder.BuildPartial();
+ break;
+ }
+ case 18:
+ case 16: {
+ input.ReadInt32Array(tag, field_name, result.numbers_);
+ break;
+ }
+ case 26: {
+ result.hasText = input.ReadString(ref result.text_);
+ break;
+ }
+ case 40: {
+ result.hasValid = input.ReadBool(ref result.valid_);
+ break;
+ }
+ case 48: {
+ result.hasNumber = input.ReadInt64(ref result.number_);
+ break;
+ }
+ case 3211: {
+ input.ReadGroupArray(tag, field_name, result.children_, global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 5602: {
+ input.ReadStringArray(tag, field_name, result.textlines_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public long Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(long value) {
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = 0L;
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> NumbersList {
+ get { return PrepareBuilder().numbers_; }
+ }
+ public int NumbersCount {
+ get { return result.NumbersCount; }
+ }
+ public int GetNumbers(int index) {
+ return result.GetNumbers(index);
+ }
+ public Builder SetNumbers(int index, int value) {
+ PrepareBuilder();
+ result.numbers_[index] = value;
+ return this;
+ }
+ public Builder AddNumbers(int value) {
+ PrepareBuilder();
+ result.numbers_.Add(value);
+ return this;
+ }
+ public Builder AddRangeNumbers(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.numbers_.Add(values);
+ return this;
+ }
+ public Builder ClearNumbers() {
+ PrepareBuilder();
+ result.numbers_.Clear();
+ return this;
+ }
+
+ public bool HasText {
+ get { return result.hasText; }
+ }
+ public string Text {
+ get { return result.Text; }
+ set { SetText(value); }
+ }
+ public Builder SetText(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasText = true;
+ result.text_ = value;
+ return this;
+ }
+ public Builder ClearText() {
+ PrepareBuilder();
+ result.hasText = false;
+ result.text_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> TextlinesList {
+ get { return PrepareBuilder().textlines_; }
+ }
+ public int TextlinesCount {
+ get { return result.TextlinesCount; }
+ }
+ public string GetTextlines(int index) {
+ return result.GetTextlines(index);
+ }
+ public Builder SetTextlines(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.textlines_[index] = value;
+ return this;
+ }
+ public Builder AddTextlines(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.textlines_.Add(value);
+ return this;
+ }
+ public Builder AddRangeTextlines(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.textlines_.Add(values);
+ return this;
+ }
+ public Builder ClearTextlines() {
+ PrepareBuilder();
+ result.textlines_.Clear();
+ return this;
+ }
+
+ public bool HasValid {
+ get { return result.hasValid; }
+ }
+ public bool Valid {
+ get { return result.Valid; }
+ set { SetValid(value); }
+ }
+ public Builder SetValid(bool value) {
+ PrepareBuilder();
+ result.hasValid = true;
+ result.valid_ = value;
+ return this;
+ }
+ public Builder ClearValid() {
+ PrepareBuilder();
+ result.hasValid = false;
+ result.valid_ = false;
+ return this;
+ }
+
+ public bool HasChild {
+ get { return result.hasChild; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestXmlChild Child {
+ get { return result.Child; }
+ set { SetChild(value); }
+ }
+ public Builder SetChild(global::Google.ProtocolBuffers.TestProtos.TestXmlChild value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasChild = true;
+ result.child_ = value;
+ return this;
+ }
+ public Builder SetChild(global::Google.ProtocolBuffers.TestProtos.TestXmlChild.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasChild = true;
+ result.child_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeChild(global::Google.ProtocolBuffers.TestProtos.TestXmlChild value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasChild &&
+ result.child_ != global::Google.ProtocolBuffers.TestProtos.TestXmlChild.DefaultInstance) {
+ result.child_ = global::Google.ProtocolBuffers.TestProtos.TestXmlChild.CreateBuilder(result.child_).MergeFrom(value).BuildPartial();
+ } else {
+ result.child_ = value;
+ }
+ result.hasChild = true;
+ return this;
+ }
+ public Builder ClearChild() {
+ PrepareBuilder();
+ result.hasChild = false;
+ result.child_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children> ChildrenList {
+ get { return PrepareBuilder().children_; }
+ }
+ public int ChildrenCount {
+ get { return result.ChildrenCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children GetChildren(int index) {
+ return result.GetChildren(index);
+ }
+ public Builder SetChildren(int index, global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.children_[index] = value;
+ return this;
+ }
+ public Builder SetChildren(int index, global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.children_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddChildren(global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.children_.Add(value);
+ return this;
+ }
+ public Builder AddChildren(global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.children_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeChildren(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestXmlMessage.Types.Children> values) {
+ PrepareBuilder();
+ result.children_.Add(values);
+ return this;
+ }
+ public Builder ClearChildren() {
+ PrepareBuilder();
+ result.children_.Clear();
+ return this;
+ }
+ }
+ static TestXmlMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestXmlExtension : pb::GeneratedMessage<TestXmlExtension, TestXmlExtension.Builder> {
+ private TestXmlExtension() { }
+ private static readonly TestXmlExtension defaultInstance = new TestXmlExtension().MakeReadOnly();
+ private static readonly string[] _testXmlExtensionFieldNames = new string[] { "number" };
+ private static readonly uint[] _testXmlExtensionFieldTags = new uint[] { 8 };
+ public static TestXmlExtension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestXmlExtension DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestXmlExtension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlExtension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestXmlExtension, TestXmlExtension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.internal__static_protobuf_unittest_extra_TestXmlExtension__FieldAccessorTable; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private int number_;
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public int Number {
+ get { return number_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasNumber) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testXmlExtensionFieldNames;
+ if (hasNumber) {
+ output.WriteInt32(1, field_names[0], Number);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasNumber) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Number);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestXmlExtension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestXmlExtension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlExtension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestXmlExtension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlExtension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestXmlExtension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestXmlExtension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestXmlExtension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestXmlExtension ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestXmlExtension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestXmlExtension MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestXmlExtension prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestXmlExtension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestXmlExtension cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestXmlExtension result;
+
+ private TestXmlExtension PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestXmlExtension original = result;
+ result = new TestXmlExtension();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestXmlExtension MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlExtension.Descriptor; }
+ }
+
+ public override TestXmlExtension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestXmlExtension.DefaultInstance; }
+ }
+
+ public override TestXmlExtension BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestXmlExtension) {
+ return MergeFrom((TestXmlExtension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestXmlExtension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestXmlExtension.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testXmlExtensionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testXmlExtensionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasNumber = input.ReadInt32(ref result.number_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public int Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(int value) {
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = 0;
+ return this;
+ }
+ }
+ static TestXmlExtension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasXmltest.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImport.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImport.cs
new file mode 100644
index 00000000..81f9ee53
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImport.cs
@@ -0,0 +1,347 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_import.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestImport {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_import_ImportMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ImportMessage, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder> internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestImport() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0LnByb3RvEhhwcm90",
+ "b2J1Zl91bml0dGVzdF9pbXBvcnQaLGdvb2dsZS9wcm90b2J1Zi91bml0dGVz",
+ "dF9pbXBvcnRfcHVibGljLnByb3RvIhoKDUltcG9ydE1lc3NhZ2USCQoBZBgB",
+ "IAEoBSo8CgpJbXBvcnRFbnVtEg4KCklNUE9SVF9GT08QBxIOCgpJTVBPUlRf",
+ "QkFSEAgSDgoKSU1QT1JUX0JBWhAJQkMKGGNvbS5nb29nbGUucHJvdG9idWYu",
+ "dGVzdEgB+AEBqgIhR29vZ2xlLlByb3RvY29sQnVmZmVycy5UZXN0UHJvdG9z",
+ "UAA="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_import_ImportMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ImportMessage, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder>(internal__static_protobuf_unittest_import_ImportMessage__Descriptor,
+ new string[] { "D", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ImportEnum {
+ IMPORT_FOO = 7,
+ IMPORT_BAR = 8,
+ IMPORT_BAZ = 9,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ImportMessage : pb::GeneratedMessage<ImportMessage, ImportMessage.Builder> {
+ private ImportMessage() { }
+ private static readonly ImportMessage defaultInstance = new ImportMessage().MakeReadOnly();
+ private static readonly string[] _importMessageFieldNames = new string[] { "d" };
+ private static readonly uint[] _importMessageFieldTags = new uint[] { 8 };
+ public static ImportMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ImportMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ImportMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImport.internal__static_protobuf_unittest_import_ImportMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ImportMessage, ImportMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImport.internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable; }
+ }
+
+ public const int DFieldNumber = 1;
+ private bool hasD;
+ private int d_;
+ public bool HasD {
+ get { return hasD; }
+ }
+ public int D {
+ get { return d_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _importMessageFieldNames;
+ if (hasD) {
+ output.WriteInt32(1, field_names[0], D);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasD) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, D);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ImportMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ImportMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ImportMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ImportMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ImportMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ImportMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ImportMessage result;
+
+ private ImportMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ImportMessage original = result;
+ result = new ImportMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ImportMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessage.Descriptor; }
+ }
+
+ public override ImportMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance; }
+ }
+
+ public override ImportMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ImportMessage) {
+ return MergeFrom((ImportMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ImportMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasD) {
+ D = other.D;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_importMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _importMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasD = input.ReadInt32(ref result.d_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasD {
+ get { return result.hasD; }
+ }
+ public int D {
+ get { return result.D; }
+ set { SetD(value); }
+ }
+ public Builder SetD(int value) {
+ PrepareBuilder();
+ result.hasD = true;
+ result.d_ = value;
+ return this;
+ }
+ public Builder ClearD() {
+ PrepareBuilder();
+ result.hasD = false;
+ result.d_ = 0;
+ return this;
+ }
+ }
+ static ImportMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestImport.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportPublic.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportPublic.cs
new file mode 100644
index 00000000..4185cac7
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestImportPublic.cs
@@ -0,0 +1,333 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_import_public.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestImportPublic {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage, global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder> internal__static_protobuf_unittest_import_PublicImportMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestImportPublic() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Cixnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90",
+ "bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0IiAKE1B1YmxpY0ltcG9ydE1l",
+ "c3NhZ2USCQoBZRgBIAEoBUI+Chhjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3Sq",
+ "AiFHb29nbGUuUHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3M="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_import_PublicImportMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage, global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder>(internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor,
+ new string[] { "E", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class PublicImportMessage : pb::GeneratedMessage<PublicImportMessage, PublicImportMessage.Builder> {
+ private PublicImportMessage() { }
+ private static readonly PublicImportMessage defaultInstance = new PublicImportMessage().MakeReadOnly();
+ private static readonly string[] _publicImportMessageFieldNames = new string[] { "e" };
+ private static readonly uint[] _publicImportMessageFieldTags = new uint[] { 8 };
+ public static PublicImportMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PublicImportMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override PublicImportMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<PublicImportMessage, PublicImportMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.internal__static_protobuf_unittest_import_PublicImportMessage__FieldAccessorTable; }
+ }
+
+ public const int EFieldNumber = 1;
+ private bool hasE;
+ private int e_;
+ public bool HasE {
+ get { return hasE; }
+ }
+ public int E {
+ get { return e_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _publicImportMessageFieldNames;
+ if (hasE) {
+ output.WriteInt32(1, field_names[0], E);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasE) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, E);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static PublicImportMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PublicImportMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private PublicImportMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PublicImportMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<PublicImportMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(PublicImportMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private PublicImportMessage result;
+
+ private PublicImportMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ PublicImportMessage original = result;
+ result = new PublicImportMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override PublicImportMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Descriptor; }
+ }
+
+ public override PublicImportMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance; }
+ }
+
+ public override PublicImportMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is PublicImportMessage) {
+ return MergeFrom((PublicImportMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(PublicImportMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasE) {
+ E = other.E;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_publicImportMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _publicImportMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasE = input.ReadInt32(ref result.e_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasE {
+ get { return result.hasE; }
+ }
+ public int E {
+ get { return result.E; }
+ set { SetE(value); }
+ }
+ public Builder SetE(int value) {
+ PrepareBuilder();
+ result.hasE = true;
+ result.e_ = value;
+ return this;
+ }
+ public Builder ClearE() {
+ PrepareBuilder();
+ result.hasE = false;
+ result.e_ = 0;
+ return this;
+ }
+ }
+ static PublicImportMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs
new file mode 100644
index 00000000..4ce086c6
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestIssues.cs
@@ -0,0 +1,2311 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: unittest_issues.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace UnitTest.Issues.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestIssues {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_unittest_issues_MyMessageAReferenceB__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.MyMessageAReferenceB, global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.Builder> internal__static_unittest_issues_MyMessageAReferenceB__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_unittest_issues_MyMessageBReferenceA__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.MyMessageBReferenceA, global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.Builder> internal__static_unittest_issues_MyMessageBReferenceA__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_unittest_issues_NegativeEnumMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.NegativeEnumMessage, global::UnitTest.Issues.TestProtos.NegativeEnumMessage.Builder> internal__static_unittest_issues_NegativeEnumMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_unittest_issues_DeprecatedChild__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.DeprecatedChild, global::UnitTest.Issues.TestProtos.DeprecatedChild.Builder> internal__static_unittest_issues_DeprecatedChild__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_unittest_issues_DeprecatedFieldsMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.DeprecatedFieldsMessage, global::UnitTest.Issues.TestProtos.DeprecatedFieldsMessage.Builder> internal__static_unittest_issues_DeprecatedFieldsMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_unittest_issues_ItemField__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.ItemField, global::UnitTest.Issues.TestProtos.ItemField.Builder> internal__static_unittest_issues_ItemField__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestIssues() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChV1bml0dGVzdF9pc3N1ZXMucHJvdG8SD3VuaXR0ZXN0X2lzc3VlcyJMChRN",
+ "eU1lc3NhZ2VBUmVmZXJlbmNlQhI0CgV2YWx1ZRgBIAIoCzIlLnVuaXR0ZXN0",
+ "X2lzc3Vlcy5NeU1lc3NhZ2VCUmVmZXJlbmNlQSJMChRNeU1lc3NhZ2VCUmVm",
+ "ZXJlbmNlQRI0CgV2YWx1ZRgBIAIoCzIlLnVuaXR0ZXN0X2lzc3Vlcy5NeU1l",
+ "c3NhZ2VBUmVmZXJlbmNlQiKsAQoTTmVnYXRpdmVFbnVtTWVzc2FnZRIsCgV2",
+ "YWx1ZRgBIAEoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW0SLQoG",
+ "dmFsdWVzGAIgAygOMh0udW5pdHRlc3RfaXNzdWVzLk5lZ2F0aXZlRW51bRI4",
+ "Cg1wYWNrZWRfdmFsdWVzGAMgAygOMh0udW5pdHRlc3RfaXNzdWVzLk5lZ2F0",
+ "aXZlRW51bUICEAEiEQoPRGVwcmVjYXRlZENoaWxkIrkCChdEZXByZWNhdGVk",
+ "RmllbGRzTWVzc2FnZRIaCg5QcmltaXRpdmVWYWx1ZRgBIAEoBUICGAESGgoO",
+ "UHJpbWl0aXZlQXJyYXkYAiADKAVCAhgBEjoKDE1lc3NhZ2VWYWx1ZRgDIAEo",
+ "CzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBEjoKDE1l",
+ "c3NhZ2VBcnJheRgEIAMoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVk",
+ "Q2hpbGRCAhgBEjYKCUVudW1WYWx1ZRgFIAEoDjIfLnVuaXR0ZXN0X2lzc3Vl",
+ "cy5EZXByZWNhdGVkRW51bUICGAESNgoJRW51bUFycmF5GAYgAygOMh8udW5p",
+ "dHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRFbnVtQgIYASIZCglJdGVtRmllbGQS",
+ "DAoEaXRlbRgBIAEoBSpHCgxOZWdhdGl2ZUVudW0SFgoJRml2ZUJlbG93EPv/",
+ "/////////wESFQoITWludXNPbmUQ////////////ARIICgRaZXJvEAAqGQoO",
+ "RGVwcmVjYXRlZEVudW0SBwoDb25lEAFCH0gBqgIaVW5pdFRlc3QuSXNzdWVz",
+ "LlRlc3RQcm90b3M="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_unittest_issues_MyMessageAReferenceB__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_unittest_issues_MyMessageAReferenceB__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.MyMessageAReferenceB, global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.Builder>(internal__static_unittest_issues_MyMessageAReferenceB__Descriptor,
+ new string[] { "Value", });
+ internal__static_unittest_issues_MyMessageBReferenceA__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_unittest_issues_MyMessageBReferenceA__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.MyMessageBReferenceA, global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.Builder>(internal__static_unittest_issues_MyMessageBReferenceA__Descriptor,
+ new string[] { "Value", });
+ internal__static_unittest_issues_NegativeEnumMessage__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_unittest_issues_NegativeEnumMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.NegativeEnumMessage, global::UnitTest.Issues.TestProtos.NegativeEnumMessage.Builder>(internal__static_unittest_issues_NegativeEnumMessage__Descriptor,
+ new string[] { "Value", "Values", "PackedValues", });
+ internal__static_unittest_issues_DeprecatedChild__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_unittest_issues_DeprecatedChild__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.DeprecatedChild, global::UnitTest.Issues.TestProtos.DeprecatedChild.Builder>(internal__static_unittest_issues_DeprecatedChild__Descriptor,
+ new string[] { });
+ internal__static_unittest_issues_DeprecatedFieldsMessage__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_unittest_issues_DeprecatedFieldsMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.DeprecatedFieldsMessage, global::UnitTest.Issues.TestProtos.DeprecatedFieldsMessage.Builder>(internal__static_unittest_issues_DeprecatedFieldsMessage__Descriptor,
+ new string[] { "PrimitiveValue", "PrimitiveArray", "MessageValue", "MessageArray", "EnumValue", "EnumArray", });
+ internal__static_unittest_issues_ItemField__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_unittest_issues_ItemField__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::UnitTest.Issues.TestProtos.ItemField, global::UnitTest.Issues.TestProtos.ItemField.Builder>(internal__static_unittest_issues_ItemField__Descriptor,
+ new string[] { "Item", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum NegativeEnum {
+ FiveBelow = -5,
+ MinusOne = -1,
+ Zero = 0,
+ }
+
+ public enum DeprecatedEnum {
+ one = 1,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MyMessageAReferenceB : pb::GeneratedMessage<MyMessageAReferenceB, MyMessageAReferenceB.Builder> {
+ private MyMessageAReferenceB() { }
+ private static readonly MyMessageAReferenceB defaultInstance = new MyMessageAReferenceB().MakeReadOnly();
+ private static readonly string[] _myMessageAReferenceBFieldNames = new string[] { "value" };
+ private static readonly uint[] _myMessageAReferenceBFieldTags = new uint[] { 10 };
+ public static MyMessageAReferenceB DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MyMessageAReferenceB DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MyMessageAReferenceB ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_MyMessageAReferenceB__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MyMessageAReferenceB, MyMessageAReferenceB.Builder> InternalFieldAccessors {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_MyMessageAReferenceB__FieldAccessorTable; }
+ }
+
+ public const int ValueFieldNumber = 1;
+ private bool hasValue;
+ private global::UnitTest.Issues.TestProtos.MyMessageBReferenceA value_;
+ public bool HasValue {
+ get { return hasValue; }
+ }
+ public global::UnitTest.Issues.TestProtos.MyMessageBReferenceA Value {
+ get { return value_ ?? global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasValue) return false;
+ if (!Value.IsInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _myMessageAReferenceBFieldNames;
+ if (hasValue) {
+ output.WriteMessage(1, field_names[0], Value);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasValue) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Value);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MyMessageAReferenceB ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MyMessageAReferenceB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MyMessageAReferenceB MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MyMessageAReferenceB prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<MyMessageAReferenceB, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MyMessageAReferenceB cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MyMessageAReferenceB result;
+
+ private MyMessageAReferenceB PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MyMessageAReferenceB original = result;
+ result = new MyMessageAReferenceB();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MyMessageAReferenceB MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.Descriptor; }
+ }
+
+ public override MyMessageAReferenceB DefaultInstanceForType {
+ get { return global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.DefaultInstance; }
+ }
+
+ public override MyMessageAReferenceB BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MyMessageAReferenceB) {
+ return MergeFrom((MyMessageAReferenceB) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MyMessageAReferenceB other) {
+ if (other == global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasValue) {
+ MergeValue(other.Value);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_myMessageAReferenceBFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _myMessageAReferenceBFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.Builder subBuilder = global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.CreateBuilder();
+ if (result.hasValue) {
+ subBuilder.MergeFrom(Value);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Value = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasValue {
+ get { return result.hasValue; }
+ }
+ public global::UnitTest.Issues.TestProtos.MyMessageBReferenceA Value {
+ get { return result.Value; }
+ set { SetValue(value); }
+ }
+ public Builder SetValue(global::UnitTest.Issues.TestProtos.MyMessageBReferenceA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = value;
+ return this;
+ }
+ public Builder SetValue(global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeValue(global::UnitTest.Issues.TestProtos.MyMessageBReferenceA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasValue &&
+ result.value_ != global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.DefaultInstance) {
+ result.value_ = global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.CreateBuilder(result.value_).MergeFrom(value).BuildPartial();
+ } else {
+ result.value_ = value;
+ }
+ result.hasValue = true;
+ return this;
+ }
+ public Builder ClearValue() {
+ PrepareBuilder();
+ result.hasValue = false;
+ result.value_ = null;
+ return this;
+ }
+ }
+ static MyMessageAReferenceB() {
+ object.ReferenceEquals(global::UnitTest.Issues.TestProtos.UnittestIssues.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MyMessageBReferenceA : pb::GeneratedMessage<MyMessageBReferenceA, MyMessageBReferenceA.Builder> {
+ private MyMessageBReferenceA() { }
+ private static readonly MyMessageBReferenceA defaultInstance = new MyMessageBReferenceA().MakeReadOnly();
+ private static readonly string[] _myMessageBReferenceAFieldNames = new string[] { "value" };
+ private static readonly uint[] _myMessageBReferenceAFieldTags = new uint[] { 10 };
+ public static MyMessageBReferenceA DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MyMessageBReferenceA DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MyMessageBReferenceA ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_MyMessageBReferenceA__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MyMessageBReferenceA, MyMessageBReferenceA.Builder> InternalFieldAccessors {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_MyMessageBReferenceA__FieldAccessorTable; }
+ }
+
+ public const int ValueFieldNumber = 1;
+ private bool hasValue;
+ private global::UnitTest.Issues.TestProtos.MyMessageAReferenceB value_;
+ public bool HasValue {
+ get { return hasValue; }
+ }
+ public global::UnitTest.Issues.TestProtos.MyMessageAReferenceB Value {
+ get { return value_ ?? global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasValue) return false;
+ if (!Value.IsInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _myMessageBReferenceAFieldNames;
+ if (hasValue) {
+ output.WriteMessage(1, field_names[0], Value);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasValue) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Value);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MyMessageBReferenceA ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MyMessageBReferenceA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MyMessageBReferenceA MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MyMessageBReferenceA prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<MyMessageBReferenceA, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MyMessageBReferenceA cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MyMessageBReferenceA result;
+
+ private MyMessageBReferenceA PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MyMessageBReferenceA original = result;
+ result = new MyMessageBReferenceA();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MyMessageBReferenceA MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.Descriptor; }
+ }
+
+ public override MyMessageBReferenceA DefaultInstanceForType {
+ get { return global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.DefaultInstance; }
+ }
+
+ public override MyMessageBReferenceA BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MyMessageBReferenceA) {
+ return MergeFrom((MyMessageBReferenceA) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MyMessageBReferenceA other) {
+ if (other == global::UnitTest.Issues.TestProtos.MyMessageBReferenceA.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasValue) {
+ MergeValue(other.Value);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_myMessageBReferenceAFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _myMessageBReferenceAFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.Builder subBuilder = global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.CreateBuilder();
+ if (result.hasValue) {
+ subBuilder.MergeFrom(Value);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Value = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasValue {
+ get { return result.hasValue; }
+ }
+ public global::UnitTest.Issues.TestProtos.MyMessageAReferenceB Value {
+ get { return result.Value; }
+ set { SetValue(value); }
+ }
+ public Builder SetValue(global::UnitTest.Issues.TestProtos.MyMessageAReferenceB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = value;
+ return this;
+ }
+ public Builder SetValue(global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeValue(global::UnitTest.Issues.TestProtos.MyMessageAReferenceB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasValue &&
+ result.value_ != global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.DefaultInstance) {
+ result.value_ = global::UnitTest.Issues.TestProtos.MyMessageAReferenceB.CreateBuilder(result.value_).MergeFrom(value).BuildPartial();
+ } else {
+ result.value_ = value;
+ }
+ result.hasValue = true;
+ return this;
+ }
+ public Builder ClearValue() {
+ PrepareBuilder();
+ result.hasValue = false;
+ result.value_ = null;
+ return this;
+ }
+ }
+ static MyMessageBReferenceA() {
+ object.ReferenceEquals(global::UnitTest.Issues.TestProtos.UnittestIssues.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NegativeEnumMessage : pb::GeneratedMessage<NegativeEnumMessage, NegativeEnumMessage.Builder> {
+ private NegativeEnumMessage() { }
+ private static readonly NegativeEnumMessage defaultInstance = new NegativeEnumMessage().MakeReadOnly();
+ private static readonly string[] _negativeEnumMessageFieldNames = new string[] { "packed_values", "value", "values" };
+ private static readonly uint[] _negativeEnumMessageFieldTags = new uint[] { 26, 8, 16 };
+ public static NegativeEnumMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NegativeEnumMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NegativeEnumMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_NegativeEnumMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NegativeEnumMessage, NegativeEnumMessage.Builder> InternalFieldAccessors {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_NegativeEnumMessage__FieldAccessorTable; }
+ }
+
+ public const int ValueFieldNumber = 1;
+ private bool hasValue;
+ private global::UnitTest.Issues.TestProtos.NegativeEnum value_ = global::UnitTest.Issues.TestProtos.NegativeEnum.FiveBelow;
+ public bool HasValue {
+ get { return hasValue; }
+ }
+ public global::UnitTest.Issues.TestProtos.NegativeEnum Value {
+ get { return value_; }
+ }
+
+ public const int ValuesFieldNumber = 2;
+ private pbc::PopsicleList<global::UnitTest.Issues.TestProtos.NegativeEnum> values_ = new pbc::PopsicleList<global::UnitTest.Issues.TestProtos.NegativeEnum>();
+ public scg::IList<global::UnitTest.Issues.TestProtos.NegativeEnum> ValuesList {
+ get { return pbc::Lists.AsReadOnly(values_); }
+ }
+ public int ValuesCount {
+ get { return values_.Count; }
+ }
+ public global::UnitTest.Issues.TestProtos.NegativeEnum GetValues(int index) {
+ return values_[index];
+ }
+
+ public const int PackedValuesFieldNumber = 3;
+ private int packedValuesMemoizedSerializedSize;
+ private pbc::PopsicleList<global::UnitTest.Issues.TestProtos.NegativeEnum> packedValues_ = new pbc::PopsicleList<global::UnitTest.Issues.TestProtos.NegativeEnum>();
+ public scg::IList<global::UnitTest.Issues.TestProtos.NegativeEnum> PackedValuesList {
+ get { return pbc::Lists.AsReadOnly(packedValues_); }
+ }
+ public int PackedValuesCount {
+ get { return packedValues_.Count; }
+ }
+ public global::UnitTest.Issues.TestProtos.NegativeEnum GetPackedValues(int index) {
+ return packedValues_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _negativeEnumMessageFieldNames;
+ if (hasValue) {
+ output.WriteEnum(1, field_names[1], (int) Value, Value);
+ }
+ if (values_.Count > 0) {
+ output.WriteEnumArray(2, field_names[2], values_);
+ }
+ if (packedValues_.Count > 0) {
+ output.WritePackedEnumArray(3, field_names[0], packedValuesMemoizedSerializedSize, packedValues_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasValue) {
+ size += pb::CodedOutputStream.ComputeEnumSize(1, (int) Value);
+ }
+ {
+ int dataSize = 0;
+ if (values_.Count > 0) {
+ foreach (global::UnitTest.Issues.TestProtos.NegativeEnum element in values_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1 * values_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (packedValues_.Count > 0) {
+ foreach (global::UnitTest.Issues.TestProtos.NegativeEnum element in packedValues_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1;
+ size += pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ packedValuesMemoizedSerializedSize = dataSize;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NegativeEnumMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NegativeEnumMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NegativeEnumMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NegativeEnumMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NegativeEnumMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NegativeEnumMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NegativeEnumMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NegativeEnumMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NegativeEnumMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NegativeEnumMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NegativeEnumMessage MakeReadOnly() {
+ values_.MakeReadOnly();
+ packedValues_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NegativeEnumMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NegativeEnumMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NegativeEnumMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NegativeEnumMessage result;
+
+ private NegativeEnumMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NegativeEnumMessage original = result;
+ result = new NegativeEnumMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NegativeEnumMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::UnitTest.Issues.TestProtos.NegativeEnumMessage.Descriptor; }
+ }
+
+ public override NegativeEnumMessage DefaultInstanceForType {
+ get { return global::UnitTest.Issues.TestProtos.NegativeEnumMessage.DefaultInstance; }
+ }
+
+ public override NegativeEnumMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NegativeEnumMessage) {
+ return MergeFrom((NegativeEnumMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NegativeEnumMessage other) {
+ if (other == global::UnitTest.Issues.TestProtos.NegativeEnumMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasValue) {
+ Value = other.Value;
+ }
+ if (other.values_.Count != 0) {
+ result.values_.Add(other.values_);
+ }
+ if (other.packedValues_.Count != 0) {
+ result.packedValues_.Add(other.packedValues_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_negativeEnumMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _negativeEnumMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ object unknown;
+ if(input.ReadEnum(ref result.value_, out unknown)) {
+ result.hasValue = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(1, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 18:
+ case 16: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::UnitTest.Issues.TestProtos.NegativeEnum>(tag, field_name, result.values_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(2, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 26:
+ case 24: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::UnitTest.Issues.TestProtos.NegativeEnum>(tag, field_name, result.packedValues_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(3, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasValue {
+ get { return result.hasValue; }
+ }
+ public global::UnitTest.Issues.TestProtos.NegativeEnum Value {
+ get { return result.Value; }
+ set { SetValue(value); }
+ }
+ public Builder SetValue(global::UnitTest.Issues.TestProtos.NegativeEnum value) {
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = value;
+ return this;
+ }
+ public Builder ClearValue() {
+ PrepareBuilder();
+ result.hasValue = false;
+ result.value_ = global::UnitTest.Issues.TestProtos.NegativeEnum.FiveBelow;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::UnitTest.Issues.TestProtos.NegativeEnum> ValuesList {
+ get { return PrepareBuilder().values_; }
+ }
+ public int ValuesCount {
+ get { return result.ValuesCount; }
+ }
+ public global::UnitTest.Issues.TestProtos.NegativeEnum GetValues(int index) {
+ return result.GetValues(index);
+ }
+ public Builder SetValues(int index, global::UnitTest.Issues.TestProtos.NegativeEnum value) {
+ PrepareBuilder();
+ result.values_[index] = value;
+ return this;
+ }
+ public Builder AddValues(global::UnitTest.Issues.TestProtos.NegativeEnum value) {
+ PrepareBuilder();
+ result.values_.Add(value);
+ return this;
+ }
+ public Builder AddRangeValues(scg::IEnumerable<global::UnitTest.Issues.TestProtos.NegativeEnum> values) {
+ PrepareBuilder();
+ result.values_.Add(values);
+ return this;
+ }
+ public Builder ClearValues() {
+ PrepareBuilder();
+ result.values_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::UnitTest.Issues.TestProtos.NegativeEnum> PackedValuesList {
+ get { return PrepareBuilder().packedValues_; }
+ }
+ public int PackedValuesCount {
+ get { return result.PackedValuesCount; }
+ }
+ public global::UnitTest.Issues.TestProtos.NegativeEnum GetPackedValues(int index) {
+ return result.GetPackedValues(index);
+ }
+ public Builder SetPackedValues(int index, global::UnitTest.Issues.TestProtos.NegativeEnum value) {
+ PrepareBuilder();
+ result.packedValues_[index] = value;
+ return this;
+ }
+ public Builder AddPackedValues(global::UnitTest.Issues.TestProtos.NegativeEnum value) {
+ PrepareBuilder();
+ result.packedValues_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedValues(scg::IEnumerable<global::UnitTest.Issues.TestProtos.NegativeEnum> values) {
+ PrepareBuilder();
+ result.packedValues_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedValues() {
+ PrepareBuilder();
+ result.packedValues_.Clear();
+ return this;
+ }
+ }
+ static NegativeEnumMessage() {
+ object.ReferenceEquals(global::UnitTest.Issues.TestProtos.UnittestIssues.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class DeprecatedChild : pb::GeneratedMessage<DeprecatedChild, DeprecatedChild.Builder> {
+ private DeprecatedChild() { }
+ private static readonly DeprecatedChild defaultInstance = new DeprecatedChild().MakeReadOnly();
+ private static readonly string[] _deprecatedChildFieldNames = new string[] { };
+ private static readonly uint[] _deprecatedChildFieldTags = new uint[] { };
+ public static DeprecatedChild DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DeprecatedChild DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override DeprecatedChild ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_DeprecatedChild__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DeprecatedChild, DeprecatedChild.Builder> InternalFieldAccessors {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_DeprecatedChild__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _deprecatedChildFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static DeprecatedChild ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DeprecatedChild ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DeprecatedChild ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DeprecatedChild ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DeprecatedChild ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DeprecatedChild ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DeprecatedChild ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DeprecatedChild ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DeprecatedChild ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DeprecatedChild ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private DeprecatedChild MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DeprecatedChild prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<DeprecatedChild, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(DeprecatedChild cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private DeprecatedChild result;
+
+ private DeprecatedChild PrepareBuilder() {
+ if (resultIsReadOnly) {
+ DeprecatedChild original = result;
+ result = new DeprecatedChild();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override DeprecatedChild MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::UnitTest.Issues.TestProtos.DeprecatedChild.Descriptor; }
+ }
+
+ public override DeprecatedChild DefaultInstanceForType {
+ get { return global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance; }
+ }
+
+ public override DeprecatedChild BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DeprecatedChild) {
+ return MergeFrom((DeprecatedChild) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DeprecatedChild other) {
+ if (other == global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_deprecatedChildFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _deprecatedChildFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static DeprecatedChild() {
+ object.ReferenceEquals(global::UnitTest.Issues.TestProtos.UnittestIssues.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class DeprecatedFieldsMessage : pb::GeneratedMessage<DeprecatedFieldsMessage, DeprecatedFieldsMessage.Builder> {
+ private DeprecatedFieldsMessage() { }
+ private static readonly DeprecatedFieldsMessage defaultInstance = new DeprecatedFieldsMessage().MakeReadOnly();
+ private static readonly string[] _deprecatedFieldsMessageFieldNames = new string[] { "EnumArray", "EnumValue", "MessageArray", "MessageValue", "PrimitiveArray", "PrimitiveValue" };
+ private static readonly uint[] _deprecatedFieldsMessageFieldTags = new uint[] { 48, 40, 34, 26, 16, 8 };
+ public static DeprecatedFieldsMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DeprecatedFieldsMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override DeprecatedFieldsMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_DeprecatedFieldsMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DeprecatedFieldsMessage, DeprecatedFieldsMessage.Builder> InternalFieldAccessors {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_DeprecatedFieldsMessage__FieldAccessorTable; }
+ }
+
+ public const int PrimitiveValueFieldNumber = 1;
+ private bool hasPrimitiveValue;
+ private int primitiveValue_;
+ [global::System.ObsoleteAttribute()]
+ public bool HasPrimitiveValue {
+ get { return hasPrimitiveValue; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int PrimitiveValue {
+ get { return primitiveValue_; }
+ }
+
+ public const int PrimitiveArrayFieldNumber = 2;
+ private pbc::PopsicleList<int> primitiveArray_ = new pbc::PopsicleList<int>();
+ [global::System.ObsoleteAttribute()]
+ public scg::IList<int> PrimitiveArrayList {
+ get { return pbc::Lists.AsReadOnly(primitiveArray_); }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int PrimitiveArrayCount {
+ get { return primitiveArray_.Count; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int GetPrimitiveArray(int index) {
+ return primitiveArray_[index];
+ }
+
+ public const int MessageValueFieldNumber = 3;
+ private bool hasMessageValue;
+ private global::UnitTest.Issues.TestProtos.DeprecatedChild messageValue_;
+ [global::System.ObsoleteAttribute()]
+ public bool HasMessageValue {
+ get { return hasMessageValue; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public global::UnitTest.Issues.TestProtos.DeprecatedChild MessageValue {
+ get { return messageValue_ ?? global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance; }
+ }
+
+ public const int MessageArrayFieldNumber = 4;
+ private pbc::PopsicleList<global::UnitTest.Issues.TestProtos.DeprecatedChild> messageArray_ = new pbc::PopsicleList<global::UnitTest.Issues.TestProtos.DeprecatedChild>();
+ [global::System.ObsoleteAttribute()]
+ public scg::IList<global::UnitTest.Issues.TestProtos.DeprecatedChild> MessageArrayList {
+ get { return messageArray_; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int MessageArrayCount {
+ get { return messageArray_.Count; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public global::UnitTest.Issues.TestProtos.DeprecatedChild GetMessageArray(int index) {
+ return messageArray_[index];
+ }
+
+ public const int EnumValueFieldNumber = 5;
+ private bool hasEnumValue;
+ private global::UnitTest.Issues.TestProtos.DeprecatedEnum enumValue_ = global::UnitTest.Issues.TestProtos.DeprecatedEnum.one;
+ [global::System.ObsoleteAttribute()]
+ public bool HasEnumValue {
+ get { return hasEnumValue; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public global::UnitTest.Issues.TestProtos.DeprecatedEnum EnumValue {
+ get { return enumValue_; }
+ }
+
+ public const int EnumArrayFieldNumber = 6;
+ private pbc::PopsicleList<global::UnitTest.Issues.TestProtos.DeprecatedEnum> enumArray_ = new pbc::PopsicleList<global::UnitTest.Issues.TestProtos.DeprecatedEnum>();
+ [global::System.ObsoleteAttribute()]
+ public scg::IList<global::UnitTest.Issues.TestProtos.DeprecatedEnum> EnumArrayList {
+ get { return pbc::Lists.AsReadOnly(enumArray_); }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int EnumArrayCount {
+ get { return enumArray_.Count; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public global::UnitTest.Issues.TestProtos.DeprecatedEnum GetEnumArray(int index) {
+ return enumArray_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _deprecatedFieldsMessageFieldNames;
+ if (hasPrimitiveValue) {
+ output.WriteInt32(1, field_names[5], PrimitiveValue);
+ }
+ if (primitiveArray_.Count > 0) {
+ output.WriteInt32Array(2, field_names[4], primitiveArray_);
+ }
+ if (hasMessageValue) {
+ output.WriteMessage(3, field_names[3], MessageValue);
+ }
+ if (messageArray_.Count > 0) {
+ output.WriteMessageArray(4, field_names[2], messageArray_);
+ }
+ if (hasEnumValue) {
+ output.WriteEnum(5, field_names[1], (int) EnumValue, EnumValue);
+ }
+ if (enumArray_.Count > 0) {
+ output.WriteEnumArray(6, field_names[0], enumArray_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasPrimitiveValue) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, PrimitiveValue);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PrimitiveArrayList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * primitiveArray_.Count;
+ }
+ if (hasMessageValue) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, MessageValue);
+ }
+ foreach (global::UnitTest.Issues.TestProtos.DeprecatedChild element in MessageArrayList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, element);
+ }
+ if (hasEnumValue) {
+ size += pb::CodedOutputStream.ComputeEnumSize(5, (int) EnumValue);
+ }
+ {
+ int dataSize = 0;
+ if (enumArray_.Count > 0) {
+ foreach (global::UnitTest.Issues.TestProtos.DeprecatedEnum element in enumArray_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1 * enumArray_.Count;
+ }
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static DeprecatedFieldsMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DeprecatedFieldsMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DeprecatedFieldsMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DeprecatedFieldsMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DeprecatedFieldsMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DeprecatedFieldsMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DeprecatedFieldsMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DeprecatedFieldsMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DeprecatedFieldsMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DeprecatedFieldsMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private DeprecatedFieldsMessage MakeReadOnly() {
+ primitiveArray_.MakeReadOnly();
+ messageArray_.MakeReadOnly();
+ enumArray_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DeprecatedFieldsMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<DeprecatedFieldsMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(DeprecatedFieldsMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private DeprecatedFieldsMessage result;
+
+ private DeprecatedFieldsMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ DeprecatedFieldsMessage original = result;
+ result = new DeprecatedFieldsMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override DeprecatedFieldsMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::UnitTest.Issues.TestProtos.DeprecatedFieldsMessage.Descriptor; }
+ }
+
+ public override DeprecatedFieldsMessage DefaultInstanceForType {
+ get { return global::UnitTest.Issues.TestProtos.DeprecatedFieldsMessage.DefaultInstance; }
+ }
+
+ public override DeprecatedFieldsMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DeprecatedFieldsMessage) {
+ return MergeFrom((DeprecatedFieldsMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DeprecatedFieldsMessage other) {
+ if (other == global::UnitTest.Issues.TestProtos.DeprecatedFieldsMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasPrimitiveValue) {
+ PrimitiveValue = other.PrimitiveValue;
+ }
+ if (other.primitiveArray_.Count != 0) {
+ result.primitiveArray_.Add(other.primitiveArray_);
+ }
+ if (other.HasMessageValue) {
+ MergeMessageValue(other.MessageValue);
+ }
+ if (other.messageArray_.Count != 0) {
+ result.messageArray_.Add(other.messageArray_);
+ }
+ if (other.HasEnumValue) {
+ EnumValue = other.EnumValue;
+ }
+ if (other.enumArray_.Count != 0) {
+ result.enumArray_.Add(other.enumArray_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_deprecatedFieldsMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _deprecatedFieldsMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasPrimitiveValue = input.ReadInt32(ref result.primitiveValue_);
+ break;
+ }
+ case 18:
+ case 16: {
+ input.ReadInt32Array(tag, field_name, result.primitiveArray_);
+ break;
+ }
+ case 26: {
+ global::UnitTest.Issues.TestProtos.DeprecatedChild.Builder subBuilder = global::UnitTest.Issues.TestProtos.DeprecatedChild.CreateBuilder();
+ if (result.hasMessageValue) {
+ subBuilder.MergeFrom(MessageValue);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageValue = subBuilder.BuildPartial();
+ break;
+ }
+ case 34: {
+ input.ReadMessageArray(tag, field_name, result.messageArray_, global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 40: {
+ object unknown;
+ if(input.ReadEnum(ref result.enumValue_, out unknown)) {
+ result.hasEnumValue = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(5, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 50:
+ case 48: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::UnitTest.Issues.TestProtos.DeprecatedEnum>(tag, field_name, result.enumArray_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(6, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ [global::System.ObsoleteAttribute()]
+ public bool HasPrimitiveValue {
+ get { return result.hasPrimitiveValue; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int PrimitiveValue {
+ get { return result.PrimitiveValue; }
+ set { SetPrimitiveValue(value); }
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetPrimitiveValue(int value) {
+ PrepareBuilder();
+ result.hasPrimitiveValue = true;
+ result.primitiveValue_ = value;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder ClearPrimitiveValue() {
+ PrepareBuilder();
+ result.hasPrimitiveValue = false;
+ result.primitiveValue_ = 0;
+ return this;
+ }
+
+ [global::System.ObsoleteAttribute()]
+ public pbc::IPopsicleList<int> PrimitiveArrayList {
+ get { return PrepareBuilder().primitiveArray_; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int PrimitiveArrayCount {
+ get { return result.PrimitiveArrayCount; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int GetPrimitiveArray(int index) {
+ return result.GetPrimitiveArray(index);
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetPrimitiveArray(int index, int value) {
+ PrepareBuilder();
+ result.primitiveArray_[index] = value;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder AddPrimitiveArray(int value) {
+ PrepareBuilder();
+ result.primitiveArray_.Add(value);
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder AddRangePrimitiveArray(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.primitiveArray_.Add(values);
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder ClearPrimitiveArray() {
+ PrepareBuilder();
+ result.primitiveArray_.Clear();
+ return this;
+ }
+
+ [global::System.ObsoleteAttribute()]
+ public bool HasMessageValue {
+ get { return result.hasMessageValue; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public global::UnitTest.Issues.TestProtos.DeprecatedChild MessageValue {
+ get { return result.MessageValue; }
+ set { SetMessageValue(value); }
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetMessageValue(global::UnitTest.Issues.TestProtos.DeprecatedChild value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMessageValue = true;
+ result.messageValue_ = value;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetMessageValue(global::UnitTest.Issues.TestProtos.DeprecatedChild.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMessageValue = true;
+ result.messageValue_ = builderForValue.Build();
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder MergeMessageValue(global::UnitTest.Issues.TestProtos.DeprecatedChild value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMessageValue &&
+ result.messageValue_ != global::UnitTest.Issues.TestProtos.DeprecatedChild.DefaultInstance) {
+ result.messageValue_ = global::UnitTest.Issues.TestProtos.DeprecatedChild.CreateBuilder(result.messageValue_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageValue_ = value;
+ }
+ result.hasMessageValue = true;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder ClearMessageValue() {
+ PrepareBuilder();
+ result.hasMessageValue = false;
+ result.messageValue_ = null;
+ return this;
+ }
+
+ [global::System.ObsoleteAttribute()]
+ public pbc::IPopsicleList<global::UnitTest.Issues.TestProtos.DeprecatedChild> MessageArrayList {
+ get { return PrepareBuilder().messageArray_; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int MessageArrayCount {
+ get { return result.MessageArrayCount; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public global::UnitTest.Issues.TestProtos.DeprecatedChild GetMessageArray(int index) {
+ return result.GetMessageArray(index);
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetMessageArray(int index, global::UnitTest.Issues.TestProtos.DeprecatedChild value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.messageArray_[index] = value;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetMessageArray(int index, global::UnitTest.Issues.TestProtos.DeprecatedChild.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.messageArray_[index] = builderForValue.Build();
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder AddMessageArray(global::UnitTest.Issues.TestProtos.DeprecatedChild value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.messageArray_.Add(value);
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder AddMessageArray(global::UnitTest.Issues.TestProtos.DeprecatedChild.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.messageArray_.Add(builderForValue.Build());
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder AddRangeMessageArray(scg::IEnumerable<global::UnitTest.Issues.TestProtos.DeprecatedChild> values) {
+ PrepareBuilder();
+ result.messageArray_.Add(values);
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder ClearMessageArray() {
+ PrepareBuilder();
+ result.messageArray_.Clear();
+ return this;
+ }
+
+ [global::System.ObsoleteAttribute()]
+ public bool HasEnumValue {
+ get { return result.hasEnumValue; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public global::UnitTest.Issues.TestProtos.DeprecatedEnum EnumValue {
+ get { return result.EnumValue; }
+ set { SetEnumValue(value); }
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetEnumValue(global::UnitTest.Issues.TestProtos.DeprecatedEnum value) {
+ PrepareBuilder();
+ result.hasEnumValue = true;
+ result.enumValue_ = value;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder ClearEnumValue() {
+ PrepareBuilder();
+ result.hasEnumValue = false;
+ result.enumValue_ = global::UnitTest.Issues.TestProtos.DeprecatedEnum.one;
+ return this;
+ }
+
+ [global::System.ObsoleteAttribute()]
+ public pbc::IPopsicleList<global::UnitTest.Issues.TestProtos.DeprecatedEnum> EnumArrayList {
+ get { return PrepareBuilder().enumArray_; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int EnumArrayCount {
+ get { return result.EnumArrayCount; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public global::UnitTest.Issues.TestProtos.DeprecatedEnum GetEnumArray(int index) {
+ return result.GetEnumArray(index);
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetEnumArray(int index, global::UnitTest.Issues.TestProtos.DeprecatedEnum value) {
+ PrepareBuilder();
+ result.enumArray_[index] = value;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder AddEnumArray(global::UnitTest.Issues.TestProtos.DeprecatedEnum value) {
+ PrepareBuilder();
+ result.enumArray_.Add(value);
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder AddRangeEnumArray(scg::IEnumerable<global::UnitTest.Issues.TestProtos.DeprecatedEnum> values) {
+ PrepareBuilder();
+ result.enumArray_.Add(values);
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder ClearEnumArray() {
+ PrepareBuilder();
+ result.enumArray_.Clear();
+ return this;
+ }
+ }
+ static DeprecatedFieldsMessage() {
+ object.ReferenceEquals(global::UnitTest.Issues.TestProtos.UnittestIssues.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ItemField : pb::GeneratedMessage<ItemField, ItemField.Builder> {
+ private ItemField() { }
+ private static readonly ItemField defaultInstance = new ItemField().MakeReadOnly();
+ private static readonly string[] _itemFieldFieldNames = new string[] { "item" };
+ private static readonly uint[] _itemFieldFieldTags = new uint[] { 8 };
+ public static ItemField DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ItemField DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ItemField ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_ItemField__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ItemField, ItemField.Builder> InternalFieldAccessors {
+ get { return global::UnitTest.Issues.TestProtos.UnittestIssues.internal__static_unittest_issues_ItemField__FieldAccessorTable; }
+ }
+
+ public const int ItemFieldNumber = 1;
+ private bool hasItem;
+ private int item_;
+ public bool HasItem {
+ get { return hasItem; }
+ }
+ public int Item {
+ get { return item_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _itemFieldFieldNames;
+ if (hasItem) {
+ output.WriteInt32(1, field_names[0], Item);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasItem) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Item);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ItemField ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ItemField ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ItemField ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ItemField ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ItemField ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ItemField ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ItemField ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ItemField ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ItemField ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ItemField ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ItemField MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ItemField prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ItemField, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ItemField cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ItemField result;
+
+ private ItemField PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ItemField original = result;
+ result = new ItemField();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ItemField MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::UnitTest.Issues.TestProtos.ItemField.Descriptor; }
+ }
+
+ public override ItemField DefaultInstanceForType {
+ get { return global::UnitTest.Issues.TestProtos.ItemField.DefaultInstance; }
+ }
+
+ public override ItemField BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ItemField) {
+ return MergeFrom((ItemField) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ItemField other) {
+ if (other == global::UnitTest.Issues.TestProtos.ItemField.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasItem) {
+ Item = other.Item;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_itemFieldFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _itemFieldFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasItem = input.ReadInt32(ref result.item_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasItem {
+ get { return result.hasItem; }
+ }
+ public int Item {
+ get { return result.Item; }
+ set { SetItem(value); }
+ }
+ public Builder SetItem(int value) {
+ PrepareBuilder();
+ result.hasItem = true;
+ result.item_ = value;
+ return this;
+ }
+ public Builder ClearItem() {
+ PrepareBuilder();
+ result.hasItem = false;
+ result.item_ = 0;
+ return this;
+ }
+ }
+ static ItemField() {
+ object.ReferenceEquals(global::UnitTest.Issues.TestProtos.UnittestIssues.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestMset.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestMset.cs
new file mode 100644
index 00000000..c27cfa59
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestMset.cs
@@ -0,0 +1,1824 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_mset.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestMset {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.MessageSetExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.MessageSetExtension);
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSet__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSet, global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder> internal__static_protobuf_unittest_TestMessageSet__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer, global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.Builder> internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Builder> internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Builder> internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RawMessageSet__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Builder> internal__static_protobuf_unittest_RawMessageSet__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder> internal__static_protobuf_unittest_RawMessageSet_Item__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestMset() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiNnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfbXNldC5wcm90bxIRcHJvdG9i",
+ "dWZfdW5pdHRlc3QiHgoOVGVzdE1lc3NhZ2VTZXQqCAgEEP////8HOgIIASJR",
+ "ChdUZXN0TWVzc2FnZVNldENvbnRhaW5lchI2CgttZXNzYWdlX3NldBgBIAEo",
+ "CzIhLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNZXNzYWdlU2V0IpYBChhUZXN0",
+ "TWVzc2FnZVNldEV4dGVuc2lvbjESCQoBaRgPIAEoBTJvChVtZXNzYWdlX3Nl",
+ "dF9leHRlbnNpb24SIS5wcm90b2J1Zl91bml0dGVzdC5UZXN0TWVzc2FnZVNl",
+ "dBiwpl4gASgLMisucHJvdG9idWZfdW5pdHRlc3QuVGVzdE1lc3NhZ2VTZXRF",
+ "eHRlbnNpb24xIpgBChhUZXN0TWVzc2FnZVNldEV4dGVuc2lvbjISCwoDc3Ry",
+ "GBkgASgJMm8KFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhIhLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LlRlc3RNZXNzYWdlU2V0GPm7XiABKAsyKy5wcm90b2J1Zl91bml0",
+ "dGVzdC5UZXN0TWVzc2FnZVNldEV4dGVuc2lvbjIibgoNUmF3TWVzc2FnZVNl",
+ "dBIzCgRpdGVtGAEgAygKMiUucHJvdG9idWZfdW5pdHRlc3QuUmF3TWVzc2Fn",
+ "ZVNldC5JdGVtGigKBEl0ZW0SDwoHdHlwZV9pZBgCIAIoBRIPCgdtZXNzYWdl",
+ "GAMgAigMQilIAfgBAaoCIUdvb2dsZS5Qcm90b2NvbEJ1ZmZlcnMuVGVzdFBy",
+ "b3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_TestMessageSet__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_TestMessageSet__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSet, global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder>(internal__static_protobuf_unittest_TestMessageSet__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer, global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.Builder>(internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor,
+ new string[] { "MessageSet", });
+ internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Builder>(internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor,
+ new string[] { "I", });
+ global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.MessageSetExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Descriptor.Extensions[0]);
+ internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2, global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Builder>(internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor,
+ new string[] { "Str", });
+ global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.MessageSetExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Descriptor.Extensions[0]);
+ internal__static_protobuf_unittest_RawMessageSet__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_protobuf_unittest_RawMessageSet__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Builder>(internal__static_protobuf_unittest_RawMessageSet__Descriptor,
+ new string[] { "Item", });
+ internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor = internal__static_protobuf_unittest_RawMessageSet__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_RawMessageSet_Item__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder>(internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor,
+ new string[] { "TypeId", "Message", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMessageSet : pb::ExtendableMessage<TestMessageSet, TestMessageSet.Builder> {
+ private TestMessageSet() { }
+ private static readonly TestMessageSet defaultInstance = new TestMessageSet().MakeReadOnly();
+ private static readonly string[] _testMessageSetFieldNames = new string[] { };
+ private static readonly uint[] _testMessageSetFieldTags = new uint[] { };
+ public static TestMessageSet DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMessageSet DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMessageSet ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_TestMessageSet__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMessageSet, TestMessageSet.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_TestMessageSet__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMessageSetFieldNames;
+ pb::ExtendableMessage<TestMessageSet, TestMessageSet.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(2147483647, output);
+ UnknownFields.WriteAsMessageSetTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSizeAsMessageSet;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMessageSet ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessageSet ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSet ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessageSet ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSet ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessageSet ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSet ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMessageSet ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMessageSet ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessageSet ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMessageSet MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMessageSet prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestMessageSet, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMessageSet cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMessageSet result;
+
+ private TestMessageSet PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMessageSet original = result;
+ result = new TestMessageSet();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMessageSet MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Descriptor; }
+ }
+
+ public override TestMessageSet DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance; }
+ }
+
+ public override TestMessageSet BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMessageSet) {
+ return MergeFrom((TestMessageSet) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMessageSet other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMessageSetFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMessageSetFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestMessageSet() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestMset.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMessageSetContainer : pb::GeneratedMessage<TestMessageSetContainer, TestMessageSetContainer.Builder> {
+ private TestMessageSetContainer() { }
+ private static readonly TestMessageSetContainer defaultInstance = new TestMessageSetContainer().MakeReadOnly();
+ private static readonly string[] _testMessageSetContainerFieldNames = new string[] { "message_set" };
+ private static readonly uint[] _testMessageSetContainerFieldTags = new uint[] { 10 };
+ public static TestMessageSetContainer DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMessageSetContainer DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMessageSetContainer ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_TestMessageSetContainer__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMessageSetContainer, TestMessageSetContainer.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_TestMessageSetContainer__FieldAccessorTable; }
+ }
+
+ public const int MessageSetFieldNumber = 1;
+ private bool hasMessageSet;
+ private global::Google.ProtocolBuffers.TestProtos.TestMessageSet messageSet_;
+ public bool HasMessageSet {
+ get { return hasMessageSet; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMessageSet MessageSet {
+ get { return messageSet_ ?? global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMessageSetContainerFieldNames;
+ if (hasMessageSet) {
+ output.WriteMessage(1, field_names[0], MessageSet);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMessageSet) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, MessageSet);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMessageSetContainer ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessageSetContainer ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSetContainer ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessageSetContainer ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSetContainer ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessageSetContainer ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSetContainer ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMessageSetContainer ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMessageSetContainer ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessageSetContainer ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMessageSetContainer MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMessageSetContainer prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetContainer, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMessageSetContainer cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMessageSetContainer result;
+
+ private TestMessageSetContainer PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMessageSetContainer original = result;
+ result = new TestMessageSetContainer();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMessageSetContainer MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.Descriptor; }
+ }
+
+ public override TestMessageSetContainer DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.DefaultInstance; }
+ }
+
+ public override TestMessageSetContainer BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMessageSetContainer) {
+ return MergeFrom((TestMessageSetContainer) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMessageSetContainer other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSetContainer.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasMessageSet) {
+ MergeMessageSet(other.MessageSet);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMessageSetContainerFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMessageSetContainerFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.CreateBuilder();
+ if (result.hasMessageSet) {
+ subBuilder.MergeFrom(MessageSet);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageSet = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasMessageSet {
+ get { return result.hasMessageSet; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMessageSet MessageSet {
+ get { return result.MessageSet; }
+ set { SetMessageSet(value); }
+ }
+ public Builder SetMessageSet(global::Google.ProtocolBuffers.TestProtos.TestMessageSet value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMessageSet = true;
+ result.messageSet_ = value;
+ return this;
+ }
+ public Builder SetMessageSet(global::Google.ProtocolBuffers.TestProtos.TestMessageSet.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMessageSet = true;
+ result.messageSet_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessageSet(global::Google.ProtocolBuffers.TestProtos.TestMessageSet value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMessageSet &&
+ result.messageSet_ != global::Google.ProtocolBuffers.TestProtos.TestMessageSet.DefaultInstance) {
+ result.messageSet_ = global::Google.ProtocolBuffers.TestProtos.TestMessageSet.CreateBuilder(result.messageSet_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageSet_ = value;
+ }
+ result.hasMessageSet = true;
+ return this;
+ }
+ public Builder ClearMessageSet() {
+ PrepareBuilder();
+ result.hasMessageSet = false;
+ result.messageSet_ = null;
+ return this;
+ }
+ }
+ static TestMessageSetContainer() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestMset.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMessageSetExtension1 : pb::GeneratedMessage<TestMessageSetExtension1, TestMessageSetExtension1.Builder> {
+ private TestMessageSetExtension1() { }
+ private static readonly TestMessageSetExtension1 defaultInstance = new TestMessageSetExtension1().MakeReadOnly();
+ private static readonly string[] _testMessageSetExtension1FieldNames = new string[] { "i" };
+ private static readonly uint[] _testMessageSetExtension1FieldTags = new uint[] { 120 };
+ public static TestMessageSetExtension1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMessageSetExtension1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMessageSetExtension1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_TestMessageSetExtension1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMessageSetExtension1, TestMessageSetExtension1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_TestMessageSetExtension1__FieldAccessorTable; }
+ }
+
+ public const int MessageSetExtensionFieldNumber = 1545008;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1> MessageSetExtension;
+ public const int IFieldNumber = 15;
+ private bool hasI;
+ private int i_;
+ public bool HasI {
+ get { return hasI; }
+ }
+ public int I {
+ get { return i_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMessageSetExtension1FieldNames;
+ if (hasI) {
+ output.WriteInt32(15, field_names[0], I);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasI) {
+ size += pb::CodedOutputStream.ComputeInt32Size(15, I);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMessageSetExtension1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessageSetExtension1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSetExtension1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessageSetExtension1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSetExtension1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessageSetExtension1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSetExtension1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMessageSetExtension1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMessageSetExtension1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessageSetExtension1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMessageSetExtension1 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMessageSetExtension1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetExtension1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMessageSetExtension1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMessageSetExtension1 result;
+
+ private TestMessageSetExtension1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMessageSetExtension1 original = result;
+ result = new TestMessageSetExtension1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMessageSetExtension1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.Descriptor; }
+ }
+
+ public override TestMessageSetExtension1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.DefaultInstance; }
+ }
+
+ public override TestMessageSetExtension1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMessageSetExtension1) {
+ return MergeFrom((TestMessageSetExtension1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMessageSetExtension1 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasI) {
+ I = other.I;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMessageSetExtension1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMessageSetExtension1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 120: {
+ result.hasI = input.ReadInt32(ref result.i_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasI {
+ get { return result.hasI; }
+ }
+ public int I {
+ get { return result.I; }
+ set { SetI(value); }
+ }
+ public Builder SetI(int value) {
+ PrepareBuilder();
+ result.hasI = true;
+ result.i_ = value;
+ return this;
+ }
+ public Builder ClearI() {
+ PrepareBuilder();
+ result.hasI = false;
+ result.i_ = 0;
+ return this;
+ }
+ }
+ static TestMessageSetExtension1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestMset.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMessageSetExtension2 : pb::GeneratedMessage<TestMessageSetExtension2, TestMessageSetExtension2.Builder> {
+ private TestMessageSetExtension2() { }
+ private static readonly TestMessageSetExtension2 defaultInstance = new TestMessageSetExtension2().MakeReadOnly();
+ private static readonly string[] _testMessageSetExtension2FieldNames = new string[] { "str" };
+ private static readonly uint[] _testMessageSetExtension2FieldTags = new uint[] { 202 };
+ public static TestMessageSetExtension2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMessageSetExtension2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMessageSetExtension2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_TestMessageSetExtension2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMessageSetExtension2, TestMessageSetExtension2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_TestMessageSetExtension2__FieldAccessorTable; }
+ }
+
+ public const int MessageSetExtensionFieldNumber = 1547769;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2> MessageSetExtension;
+ public const int StrFieldNumber = 25;
+ private bool hasStr;
+ private string str_ = "";
+ public bool HasStr {
+ get { return hasStr; }
+ }
+ public string Str {
+ get { return str_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMessageSetExtension2FieldNames;
+ if (hasStr) {
+ output.WriteString(25, field_names[0], Str);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasStr) {
+ size += pb::CodedOutputStream.ComputeStringSize(25, Str);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMessageSetExtension2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessageSetExtension2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSetExtension2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessageSetExtension2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSetExtension2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessageSetExtension2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessageSetExtension2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMessageSetExtension2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMessageSetExtension2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessageSetExtension2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMessageSetExtension2 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMessageSetExtension2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMessageSetExtension2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMessageSetExtension2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMessageSetExtension2 result;
+
+ private TestMessageSetExtension2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMessageSetExtension2 original = result;
+ result = new TestMessageSetExtension2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMessageSetExtension2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.Descriptor; }
+ }
+
+ public override TestMessageSetExtension2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.DefaultInstance; }
+ }
+
+ public override TestMessageSetExtension2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMessageSetExtension2) {
+ return MergeFrom((TestMessageSetExtension2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMessageSetExtension2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMessageSetExtension2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasStr) {
+ Str = other.Str;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMessageSetExtension2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMessageSetExtension2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 202: {
+ result.hasStr = input.ReadString(ref result.str_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasStr {
+ get { return result.hasStr; }
+ }
+ public string Str {
+ get { return result.Str; }
+ set { SetStr(value); }
+ }
+ public Builder SetStr(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStr = true;
+ result.str_ = value;
+ return this;
+ }
+ public Builder ClearStr() {
+ PrepareBuilder();
+ result.hasStr = false;
+ result.str_ = "";
+ return this;
+ }
+ }
+ static TestMessageSetExtension2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestMset.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RawMessageSet : pb::GeneratedMessage<RawMessageSet, RawMessageSet.Builder> {
+ private RawMessageSet() { }
+ private static readonly RawMessageSet defaultInstance = new RawMessageSet().MakeReadOnly();
+ private static readonly string[] _rawMessageSetFieldNames = new string[] { "item" };
+ private static readonly uint[] _rawMessageSetFieldTags = new uint[] { 11 };
+ public static RawMessageSet DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RawMessageSet DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RawMessageSet ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_RawMessageSet__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RawMessageSet, RawMessageSet.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_RawMessageSet__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Item : pb::GeneratedMessage<Item, Item.Builder> {
+ private Item() { }
+ private static readonly Item defaultInstance = new Item().MakeReadOnly();
+ private static readonly string[] _itemFieldNames = new string[] { "message", "type_id" };
+ private static readonly uint[] _itemFieldTags = new uint[] { 26, 16 };
+ public static Item DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Item DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Item ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_RawMessageSet_Item__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Item, Item.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestMset.internal__static_protobuf_unittest_RawMessageSet_Item__FieldAccessorTable; }
+ }
+
+ public const int TypeIdFieldNumber = 2;
+ private bool hasTypeId;
+ private int typeId_;
+ public bool HasTypeId {
+ get { return hasTypeId; }
+ }
+ public int TypeId {
+ get { return typeId_; }
+ }
+
+ public const int MessageFieldNumber = 3;
+ private bool hasMessage;
+ private pb::ByteString message_ = pb::ByteString.Empty;
+ public bool HasMessage {
+ get { return hasMessage; }
+ }
+ public pb::ByteString Message {
+ get { return message_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasTypeId) return false;
+ if (!hasMessage) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _itemFieldNames;
+ if (hasTypeId) {
+ output.WriteInt32(2, field_names[1], TypeId);
+ }
+ if (hasMessage) {
+ output.WriteBytes(3, field_names[0], Message);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasTypeId) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, TypeId);
+ }
+ if (hasMessage) {
+ size += pb::CodedOutputStream.ComputeBytesSize(3, Message);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Item ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Item ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Item ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Item ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Item ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Item ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Item ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Item ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Item ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Item ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Item MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Item prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Item, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Item cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Item result;
+
+ private Item PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Item original = result;
+ result = new Item();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Item MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Descriptor; }
+ }
+
+ public override Item DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.DefaultInstance; }
+ }
+
+ public override Item BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Item) {
+ return MergeFrom((Item) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Item other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasTypeId) {
+ TypeId = other.TypeId;
+ }
+ if (other.HasMessage) {
+ Message = other.Message;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_itemFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _itemFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 16: {
+ result.hasTypeId = input.ReadInt32(ref result.typeId_);
+ break;
+ }
+ case 26: {
+ result.hasMessage = input.ReadBytes(ref result.message_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasTypeId {
+ get { return result.hasTypeId; }
+ }
+ public int TypeId {
+ get { return result.TypeId; }
+ set { SetTypeId(value); }
+ }
+ public Builder SetTypeId(int value) {
+ PrepareBuilder();
+ result.hasTypeId = true;
+ result.typeId_ = value;
+ return this;
+ }
+ public Builder ClearTypeId() {
+ PrepareBuilder();
+ result.hasTypeId = false;
+ result.typeId_ = 0;
+ return this;
+ }
+
+ public bool HasMessage {
+ get { return result.hasMessage; }
+ }
+ public pb::ByteString Message {
+ get { return result.Message; }
+ set { SetMessage(value); }
+ }
+ public Builder SetMessage(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMessage = true;
+ result.message_ = value;
+ return this;
+ }
+ public Builder ClearMessage() {
+ PrepareBuilder();
+ result.hasMessage = false;
+ result.message_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static Item() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestMset.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int ItemFieldNumber = 1;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> item_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> ItemList {
+ get { return item_; }
+ }
+ public int ItemCount {
+ get { return item_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item GetItem(int index) {
+ return item_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _rawMessageSetFieldNames;
+ if (item_.Count > 0) {
+ output.WriteGroupArray(1, field_names[0], item_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item element in ItemList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(1, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RawMessageSet ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RawMessageSet ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RawMessageSet ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RawMessageSet ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RawMessageSet ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RawMessageSet ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RawMessageSet ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RawMessageSet ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RawMessageSet ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RawMessageSet ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RawMessageSet MakeReadOnly() {
+ item_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RawMessageSet prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RawMessageSet, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RawMessageSet cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RawMessageSet result;
+
+ private RawMessageSet PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RawMessageSet original = result;
+ result = new RawMessageSet();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RawMessageSet MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Descriptor; }
+ }
+
+ public override RawMessageSet DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RawMessageSet.DefaultInstance; }
+ }
+
+ public override RawMessageSet BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RawMessageSet) {
+ return MergeFrom((RawMessageSet) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RawMessageSet other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.RawMessageSet.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.item_.Count != 0) {
+ result.item_.Add(other.item_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_rawMessageSetFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _rawMessageSetFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 11: {
+ input.ReadGroupArray(tag, field_name, result.item_, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> ItemList {
+ get { return PrepareBuilder().item_; }
+ }
+ public int ItemCount {
+ get { return result.ItemCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item GetItem(int index) {
+ return result.GetItem(index);
+ }
+ public Builder SetItem(int index, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.item_[index] = value;
+ return this;
+ }
+ public Builder SetItem(int index, global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.item_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddItem(global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.item_.Add(value);
+ return this;
+ }
+ public Builder AddItem(global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.item_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeItem(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.RawMessageSet.Types.Item> values) {
+ PrepareBuilder();
+ result.item_.Add(values);
+ return this;
+ }
+ public Builder ClearItem() {
+ PrepareBuilder();
+ result.item_.Clear();
+ return this;
+ }
+ }
+ static RawMessageSet() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestMset.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestNoFieldPresence.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestNoFieldPresence.cs
new file mode 100644
index 00000000..52d7a69b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestNoFieldPresence.cs
@@ -0,0 +1,3876 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_no_field_presence.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos.Proto3 {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestNoFieldPresence {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_proto2_nofieldpresence_unittest_TestAllTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Builder> internal__static_proto2_nofieldpresence_unittest_TestAllTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_proto2_nofieldpresence_unittest_TestAllTypes_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder> internal__static_proto2_nofieldpresence_unittest_TestAllTypes_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_proto2_nofieldpresence_unittest_TestProto2Required__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Proto3.TestProto2Required, global::Google.ProtocolBuffers.TestProtos.Proto3.TestProto2Required.Builder> internal__static_proto2_nofieldpresence_unittest_TestProto2Required__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_proto2_nofieldpresence_unittest_ForeignMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.Builder> internal__static_proto2_nofieldpresence_unittest_ForeignMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestNoFieldPresence() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CjBnb29nbGUvcHJvdG9idWYvdW5pdHRlc3Rfbm9fZmllbGRfcHJlc2VuY2Uu",
+ "cHJvdG8SH3Byb3RvMl9ub2ZpZWxkcHJlc2VuY2VfdW5pdHRlc3QaHmdvb2ds",
+ "ZS9wcm90b2J1Zi91bml0dGVzdC5wcm90byKaEQoMVGVzdEFsbFR5cGVzEhYK",
+ "Dm9wdGlvbmFsX2ludDMyGAEgASgFEhYKDm9wdGlvbmFsX2ludDY0GAIgASgD",
+ "EhcKD29wdGlvbmFsX3VpbnQzMhgDIAEoDRIXCg9vcHRpb25hbF91aW50NjQY",
+ "BCABKAQSFwoPb3B0aW9uYWxfc2ludDMyGAUgASgREhcKD29wdGlvbmFsX3Np",
+ "bnQ2NBgGIAEoEhIYChBvcHRpb25hbF9maXhlZDMyGAcgASgHEhgKEG9wdGlv",
+ "bmFsX2ZpeGVkNjQYCCABKAYSGQoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA8S",
+ "GQoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBASFgoOb3B0aW9uYWxfZmxvYXQY",
+ "CyABKAISFwoPb3B0aW9uYWxfZG91YmxlGAwgASgBEhUKDW9wdGlvbmFsX2Jv",
+ "b2wYDSABKAgSFwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJEhYKDm9wdGlvbmFs",
+ "X2J5dGVzGA8gASgMElwKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgL",
+ "MjsucHJvdG8yX25vZmllbGRwcmVzZW5jZV91bml0dGVzdC5UZXN0QWxsVHlw",
+ "ZXMuTmVzdGVkTWVzc2FnZRJRChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UY",
+ "EyABKAsyLy5wcm90bzJfbm9maWVsZHByZXNlbmNlX3VuaXR0ZXN0LkZvcmVp",
+ "Z25NZXNzYWdlEkAKF29wdGlvbmFsX3Byb3RvMl9tZXNzYWdlGBQgASgLMh8u",
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzElYKFG9wdGlvbmFsX25l",
+ "c3RlZF9lbnVtGBUgASgOMjgucHJvdG8yX25vZmllbGRwcmVzZW5jZV91bml0",
+ "dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bRJLChVvcHRpb25hbF9mb3Jl",
+ "aWduX2VudW0YFiABKA4yLC5wcm90bzJfbm9maWVsZHByZXNlbmNlX3VuaXR0",
+ "ZXN0LkZvcmVpZ25FbnVtEiEKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEo",
+ "CUICCAISGQoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAESXgoVb3B0aW9uYWxf",
+ "bGF6eV9tZXNzYWdlGB4gASgLMjsucHJvdG8yX25vZmllbGRwcmVzZW5jZV91",
+ "bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoOcmVw",
+ "ZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMSFwoP",
+ "cmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgiIAMo",
+ "BBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2ludDY0",
+ "GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0ZWRf",
+ "Zml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZChFy",
+ "ZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgpIAMo",
+ "AhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9vbBgr",
+ "IAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRfYnl0",
+ "ZXMYLSADKAwSXAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyOy5w",
+ "cm90bzJfbm9maWVsZHByZXNlbmNlX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5O",
+ "ZXN0ZWRNZXNzYWdlElEKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMo",
+ "CzIvLnByb3RvMl9ub2ZpZWxkcHJlc2VuY2VfdW5pdHRlc3QuRm9yZWlnbk1l",
+ "c3NhZ2USQAoXcmVwZWF0ZWRfcHJvdG8yX21lc3NhZ2UYMiADKAsyHy5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSVgoUcmVwZWF0ZWRfbmVzdGVk",
+ "X2VudW0YMyADKA4yOC5wcm90bzJfbm9maWVsZHByZXNlbmNlX3VuaXR0ZXN0",
+ "LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEksKFXJlcGVhdGVkX2ZvcmVpZ25f",
+ "ZW51bRg0IAMoDjIsLnByb3RvMl9ub2ZpZWxkcHJlc2VuY2VfdW5pdHRlc3Qu",
+ "Rm9yZWlnbkVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgII",
+ "AhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJeChVyZXBlYXRlZF9sYXp5",
+ "X21lc3NhZ2UYOSADKAsyOy5wcm90bzJfbm9maWVsZHByZXNlbmNlX3VuaXR0",
+ "ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoARIWCgxvbmVvZl91",
+ "aW50MzIYbyABKA1IABJbChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzI7",
+ "LnByb3RvMl9ub2ZpZWxkcHJlc2VuY2VfdW5pdHRlc3QuVGVzdEFsbFR5cGVz",
+ "Lk5lc3RlZE1lc3NhZ2VIABIWCgxvbmVvZl9zdHJpbmcYcSABKAlIABJOCgpv",
+ "bmVvZl9lbnVtGHIgASgOMjgucHJvdG8yX25vZmllbGRwcmVzZW5jZV91bml0",
+ "dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bUgAGhsKDU5lc3RlZE1lc3Nh",
+ "Z2USCgoCYmIYASABKAUiJwoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQ",
+ "ARIHCgNCQVoQAkINCgtvbmVvZl9maWVsZCJFChJUZXN0UHJvdG8yUmVxdWly",
+ "ZWQSLwoGcHJvdG8yGAEgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJl",
+ "cXVpcmVkIhsKDkZvcmVpZ25NZXNzYWdlEgkKAWMYASABKAUqQAoLRm9yZWln",
+ "bkVudW0SDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZP",
+ "UkVJR05fQkFaEAJCK6oCKEdvb2dsZS5Qcm90b2NvbEJ1ZmZlcnMuVGVzdFBy",
+ "b3Rvcy5Qcm90bzNiBnByb3RvMw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_proto2_nofieldpresence_unittest_TestAllTypes__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_proto2_nofieldpresence_unittest_TestAllTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Builder>(internal__static_proto2_nofieldpresence_unittest_TestAllTypes__Descriptor,
+ new string[] { "OptionalInt32", "OptionalInt64", "OptionalUint32", "OptionalUint64", "OptionalSint32", "OptionalSint64", "OptionalFixed32", "OptionalFixed64", "OptionalSfixed32", "OptionalSfixed64", "OptionalFloat", "OptionalDouble", "OptionalBool", "OptionalString", "OptionalBytes", "OptionalNestedMessage", "OptionalForeignMessage", "OptionalProto2Message", "OptionalNestedEnum", "OptionalForeignEnum", "OptionalStringPiece", "OptionalCord", "OptionalLazyMessage", "RepeatedInt32", "RepeatedInt64", "RepeatedUint32", "RepeatedUint64", "RepeatedSint32", "RepeatedSint64", "RepeatedFixed32", "RepeatedFixed64", "RepeatedSfixed32", "RepeatedSfixed64", "RepeatedFloat", "RepeatedDouble", "RepeatedBool", "RepeatedString", "RepeatedBytes", "RepeatedNestedMessage", "RepeatedForeignMessage", "RepeatedProto2Message", "RepeatedNestedEnum", "RepeatedForeignEnum", "RepeatedStringPiece", "RepeatedCord", "RepeatedLazyMessage", "OneofUint32", "OneofNestedMessage", "OneofString", "OneofEnum", "OneofField", });
+ internal__static_proto2_nofieldpresence_unittest_TestAllTypes_NestedMessage__Descriptor = internal__static_proto2_nofieldpresence_unittest_TestAllTypes__Descriptor.NestedTypes[0];
+ internal__static_proto2_nofieldpresence_unittest_TestAllTypes_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder>(internal__static_proto2_nofieldpresence_unittest_TestAllTypes_NestedMessage__Descriptor,
+ new string[] { "Bb", });
+ internal__static_proto2_nofieldpresence_unittest_TestProto2Required__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_proto2_nofieldpresence_unittest_TestProto2Required__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Proto3.TestProto2Required, global::Google.ProtocolBuffers.TestProtos.Proto3.TestProto2Required.Builder>(internal__static_proto2_nofieldpresence_unittest_TestProto2Required__Descriptor,
+ new string[] { "Proto2", });
+ internal__static_proto2_nofieldpresence_unittest_ForeignMessage__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_proto2_nofieldpresence_unittest_ForeignMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.Builder>(internal__static_proto2_nofieldpresence_unittest_ForeignMessage__Descriptor,
+ new string[] { "C", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ForeignEnum {
+ FOREIGN_FOO = 0,
+ FOREIGN_BAR = 1,
+ FOREIGN_BAZ = 2,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestAllTypes : pb::GeneratedMessage<TestAllTypes, TestAllTypes.Builder> {
+ private TestAllTypes() { }
+ private static readonly TestAllTypes defaultInstance = new TestAllTypes().MakeReadOnly();
+ private static readonly string[] _testAllTypesFieldNames = new string[] { "oneof_enum", "oneof_nested_message", "oneof_string", "oneof_uint32", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_int32", "optional_int64", "optional_lazy_message", "optional_nested_enum", "optional_nested_message", "optional_proto2_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_int32", "repeated_int64", "repeated_lazy_message", "repeated_nested_enum", "repeated_nested_message", "repeated_proto2_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64" };
+ private static readonly uint[] _testAllTypesFieldTags = new uint[] { 912, 898, 906, 888, 104, 122, 202, 97, 61, 65, 93, 176, 154, 8, 16, 242, 168, 146, 162, 77, 81, 40, 48, 114, 194, 24, 32, 344, 362, 442, 337, 301, 305, 333, 416, 394, 248, 256, 458, 408, 386, 402, 317, 321, 280, 288, 354, 434, 264, 272 };
+ public static TestAllTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestAllTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.internal__static_proto2_nofieldpresence_unittest_TestAllTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestAllTypes, TestAllTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.internal__static_proto2_nofieldpresence_unittest_TestAllTypes__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ FOO = 0,
+ BAR = 1,
+ BAZ = 2,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.internal__static_proto2_nofieldpresence_unittest_TestAllTypes_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.internal__static_proto2_nofieldpresence_unittest_TestAllTypes_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private int bb_;
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (Bb != 0) {
+ output.WriteInt32(1, field_names[0], Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (Bb != 0) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.Bb != 0) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ input.ReadInt32(ref result.bb_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ private object oneofField_;
+ public enum OneofFieldOneofCase {
+ OneofUint32 = 111,
+ OneofNestedMessage = 112,
+ OneofString = 113,
+ OneofEnum = 114,
+ None = 0,
+ }
+ private OneofFieldOneofCase oneofFieldCase_ = OneofFieldOneofCase.None;
+ public OneofFieldOneofCase OneofFieldCase {
+ get { return oneofFieldCase_; }
+ }
+
+ public const int OptionalInt32FieldNumber = 1;
+ private int optionalInt32_;
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public const int OptionalInt64FieldNumber = 2;
+ private long optionalInt64_;
+ public long OptionalInt64 {
+ get { return optionalInt64_; }
+ }
+
+ public const int OptionalUint32FieldNumber = 3;
+ private uint optionalUint32_;
+ public uint OptionalUint32 {
+ get { return optionalUint32_; }
+ }
+
+ public const int OptionalUint64FieldNumber = 4;
+ private ulong optionalUint64_;
+ public ulong OptionalUint64 {
+ get { return optionalUint64_; }
+ }
+
+ public const int OptionalSint32FieldNumber = 5;
+ private int optionalSint32_;
+ public int OptionalSint32 {
+ get { return optionalSint32_; }
+ }
+
+ public const int OptionalSint64FieldNumber = 6;
+ private long optionalSint64_;
+ public long OptionalSint64 {
+ get { return optionalSint64_; }
+ }
+
+ public const int OptionalFixed32FieldNumber = 7;
+ private uint optionalFixed32_;
+ public uint OptionalFixed32 {
+ get { return optionalFixed32_; }
+ }
+
+ public const int OptionalFixed64FieldNumber = 8;
+ private ulong optionalFixed64_;
+ public ulong OptionalFixed64 {
+ get { return optionalFixed64_; }
+ }
+
+ public const int OptionalSfixed32FieldNumber = 9;
+ private int optionalSfixed32_;
+ public int OptionalSfixed32 {
+ get { return optionalSfixed32_; }
+ }
+
+ public const int OptionalSfixed64FieldNumber = 10;
+ private long optionalSfixed64_;
+ public long OptionalSfixed64 {
+ get { return optionalSfixed64_; }
+ }
+
+ public const int OptionalFloatFieldNumber = 11;
+ private float optionalFloat_;
+ public float OptionalFloat {
+ get { return optionalFloat_; }
+ }
+
+ public const int OptionalDoubleFieldNumber = 12;
+ private double optionalDouble_;
+ public double OptionalDouble {
+ get { return optionalDouble_; }
+ }
+
+ public const int OptionalBoolFieldNumber = 13;
+ private bool optionalBool_;
+ public bool OptionalBool {
+ get { return optionalBool_; }
+ }
+
+ public const int OptionalStringFieldNumber = 14;
+ private string optionalString_ = "";
+ public string OptionalString {
+ get { return optionalString_; }
+ }
+
+ public const int OptionalBytesFieldNumber = 15;
+ private pb::ByteString optionalBytes_ = pb::ByteString.Empty;
+ public pb::ByteString OptionalBytes {
+ get { return optionalBytes_; }
+ }
+
+ public const int OptionalNestedMessageFieldNumber = 18;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int OptionalForeignMessageFieldNumber = 19;
+ private bool hasOptionalForeignMessage;
+ private global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage optionalForeignMessage_;
+ public bool HasOptionalForeignMessage {
+ get { return hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage OptionalForeignMessage {
+ get { return optionalForeignMessage_ ?? global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int OptionalProto2MessageFieldNumber = 20;
+ private bool hasOptionalProto2Message;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes optionalProto2Message_;
+ public bool HasOptionalProto2Message {
+ get { return hasOptionalProto2Message; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalProto2Message {
+ get { return optionalProto2Message_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int OptionalNestedEnumFieldNumber = 21;
+ private global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum.FOO;
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
+ get { return optionalNestedEnum_; }
+ }
+
+ public const int OptionalForeignEnumFieldNumber = 22;
+ private global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum.FOREIGN_FOO;
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum OptionalForeignEnum {
+ get { return optionalForeignEnum_; }
+ }
+
+ public const int OptionalStringPieceFieldNumber = 24;
+ private string optionalStringPiece_ = "";
+ public string OptionalStringPiece {
+ get { return optionalStringPiece_; }
+ }
+
+ public const int OptionalCordFieldNumber = 25;
+ private string optionalCord_ = "";
+ public string OptionalCord {
+ get { return optionalCord_; }
+ }
+
+ public const int OptionalLazyMessageFieldNumber = 30;
+ private bool hasOptionalLazyMessage;
+ private global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage optionalLazyMessage_;
+ public bool HasOptionalLazyMessage {
+ get { return hasOptionalLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage OptionalLazyMessage {
+ get { return optionalLazyMessage_ ?? global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int RepeatedInt32FieldNumber = 31;
+ private int repeatedInt32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 32;
+ private int repeatedInt64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedUint32FieldNumber = 33;
+ private int repeatedUint32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> repeatedUint32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> RepeatedUint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint32_); }
+ }
+ public int RepeatedUint32Count {
+ get { return repeatedUint32_.Count; }
+ }
+ public uint GetRepeatedUint32(int index) {
+ return repeatedUint32_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 34;
+ private int repeatedUint64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public const int RepeatedSint32FieldNumber = 35;
+ private int repeatedSint32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> repeatedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint32_); }
+ }
+ public int RepeatedSint32Count {
+ get { return repeatedSint32_.Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return repeatedSint32_[index];
+ }
+
+ public const int RepeatedSint64FieldNumber = 36;
+ private int repeatedSint64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> repeatedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint64_); }
+ }
+ public int RepeatedSint64Count {
+ get { return repeatedSint64_.Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return repeatedSint64_[index];
+ }
+
+ public const int RepeatedFixed32FieldNumber = 37;
+ private int repeatedFixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 38;
+ private int repeatedFixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedSfixed32FieldNumber = 39;
+ private int repeatedSfixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> repeatedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed32_); }
+ }
+ public int RepeatedSfixed32Count {
+ get { return repeatedSfixed32_.Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return repeatedSfixed32_[index];
+ }
+
+ public const int RepeatedSfixed64FieldNumber = 40;
+ private int repeatedSfixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> repeatedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed64_); }
+ }
+ public int RepeatedSfixed64Count {
+ get { return repeatedSfixed64_.Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return repeatedSfixed64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 41;
+ private int repeatedFloatMemoizedSerializedSize;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedDoubleFieldNumber = 42;
+ private int repeatedDoubleMemoizedSerializedSize;
+ private pbc::PopsicleList<double> repeatedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> RepeatedDoubleList {
+ get { return pbc::Lists.AsReadOnly(repeatedDouble_); }
+ }
+ public int RepeatedDoubleCount {
+ get { return repeatedDouble_.Count; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return repeatedDouble_[index];
+ }
+
+ public const int RepeatedBoolFieldNumber = 43;
+ private int repeatedBoolMemoizedSerializedSize;
+ private pbc::PopsicleList<bool> repeatedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> RepeatedBoolList {
+ get { return pbc::Lists.AsReadOnly(repeatedBool_); }
+ }
+ public int RepeatedBoolCount {
+ get { return repeatedBool_.Count; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return repeatedBool_[index];
+ }
+
+ public const int RepeatedStringFieldNumber = 44;
+ private pbc::PopsicleList<string> repeatedString_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringList {
+ get { return pbc::Lists.AsReadOnly(repeatedString_); }
+ }
+ public int RepeatedStringCount {
+ get { return repeatedString_.Count; }
+ }
+ public string GetRepeatedString(int index) {
+ return repeatedString_[index];
+ }
+
+ public const int RepeatedBytesFieldNumber = 45;
+ private pbc::PopsicleList<pb::ByteString> repeatedBytes_ = new pbc::PopsicleList<pb::ByteString>();
+ public scg::IList<pb::ByteString> RepeatedBytesList {
+ get { return pbc::Lists.AsReadOnly(repeatedBytes_); }
+ }
+ public int RepeatedBytesCount {
+ get { return repeatedBytes_.Count; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return repeatedBytes_[index];
+ }
+
+ public const int RepeatedNestedMessageFieldNumber = 48;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage> repeatedNestedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return repeatedNestedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return repeatedNestedMessage_[index];
+ }
+
+ public const int RepeatedForeignMessageFieldNumber = 49;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage> repeatedForeignMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage> RepeatedForeignMessageList {
+ get { return repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return repeatedForeignMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage GetRepeatedForeignMessage(int index) {
+ return repeatedForeignMessage_[index];
+ }
+
+ public const int RepeatedProto2MessageFieldNumber = 50;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> repeatedProto2Message_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> RepeatedProto2MessageList {
+ get { return repeatedProto2Message_; }
+ }
+ public int RepeatedProto2MessageCount {
+ get { return repeatedProto2Message_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetRepeatedProto2Message(int index) {
+ return repeatedProto2Message_[index];
+ }
+
+ public const int RepeatedNestedEnumFieldNumber = 51;
+ private int repeatedNestedEnumMemoizedSerializedSize;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum> repeatedNestedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedNestedEnum_); }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return repeatedNestedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return repeatedNestedEnum_[index];
+ }
+
+ public const int RepeatedForeignEnumFieldNumber = 52;
+ private int repeatedForeignEnumMemoizedSerializedSize;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum> repeatedForeignEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum> RepeatedForeignEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedForeignEnum_); }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return repeatedForeignEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum GetRepeatedForeignEnum(int index) {
+ return repeatedForeignEnum_[index];
+ }
+
+ public const int RepeatedStringPieceFieldNumber = 54;
+ private pbc::PopsicleList<string> repeatedStringPiece_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPiece_); }
+ }
+ public int RepeatedStringPieceCount {
+ get { return repeatedStringPiece_.Count; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return repeatedStringPiece_[index];
+ }
+
+ public const int RepeatedCordFieldNumber = 55;
+ private pbc::PopsicleList<string> repeatedCord_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordList {
+ get { return pbc::Lists.AsReadOnly(repeatedCord_); }
+ }
+ public int RepeatedCordCount {
+ get { return repeatedCord_.Count; }
+ }
+ public string GetRepeatedCord(int index) {
+ return repeatedCord_[index];
+ }
+
+ public const int RepeatedLazyMessageFieldNumber = 57;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage> repeatedLazyMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage> RepeatedLazyMessageList {
+ get { return repeatedLazyMessage_; }
+ }
+ public int RepeatedLazyMessageCount {
+ get { return repeatedLazyMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage GetRepeatedLazyMessage(int index) {
+ return repeatedLazyMessage_[index];
+ }
+
+ public const int OneofUint32FieldNumber = 111;
+ public uint OneofUint32 {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) oneofField_ : 0; }
+ }
+
+ public const int OneofNestedMessageFieldNumber = 112;
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage OneofNestedMessage {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage) oneofField_ : global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int OneofStringFieldNumber = 113;
+ public string OneofString {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) oneofField_ : ""; }
+ }
+
+ public const int OneofEnumFieldNumber = 114;
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum OneofEnum {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofEnum ? (global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum) oneofField_ : global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum.FOO; }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testAllTypesFieldNames;
+ if (OptionalInt32 != 0) {
+ output.WriteInt32(1, field_names[13], OptionalInt32);
+ }
+ if (OptionalInt64 != 0L) {
+ output.WriteInt64(2, field_names[14], OptionalInt64);
+ }
+ if (OptionalUint32 != 0) {
+ output.WriteUInt32(3, field_names[25], OptionalUint32);
+ }
+ if (OptionalUint64 != 0UL) {
+ output.WriteUInt64(4, field_names[26], OptionalUint64);
+ }
+ if (OptionalSint32 != 0) {
+ output.WriteSInt32(5, field_names[21], OptionalSint32);
+ }
+ if (OptionalSint64 != 0L) {
+ output.WriteSInt64(6, field_names[22], OptionalSint64);
+ }
+ if (OptionalFixed32 != 0) {
+ output.WriteFixed32(7, field_names[8], OptionalFixed32);
+ }
+ if (OptionalFixed64 != 0UL) {
+ output.WriteFixed64(8, field_names[9], OptionalFixed64);
+ }
+ if (OptionalSfixed32 != 0) {
+ output.WriteSFixed32(9, field_names[19], OptionalSfixed32);
+ }
+ if (OptionalSfixed64 != 0L) {
+ output.WriteSFixed64(10, field_names[20], OptionalSfixed64);
+ }
+ if (OptionalFloat != 0F) {
+ output.WriteFloat(11, field_names[10], OptionalFloat);
+ }
+ if (OptionalDouble != 0D) {
+ output.WriteDouble(12, field_names[7], OptionalDouble);
+ }
+ if (OptionalBool != false) {
+ output.WriteBool(13, field_names[4], OptionalBool);
+ }
+ if (OptionalString != "") {
+ output.WriteString(14, field_names[23], OptionalString);
+ }
+ if (OptionalBytes != pb::ByteString.Empty) {
+ output.WriteBytes(15, field_names[5], OptionalBytes);
+ }
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(18, field_names[17], OptionalNestedMessage);
+ }
+ if (hasOptionalForeignMessage) {
+ output.WriteMessage(19, field_names[12], OptionalForeignMessage);
+ }
+ if (hasOptionalProto2Message) {
+ output.WriteMessage(20, field_names[18], OptionalProto2Message);
+ }
+ if (OptionalNestedEnum != global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum.FOO) {
+ output.WriteEnum(21, field_names[16], (int) OptionalNestedEnum, OptionalNestedEnum);
+ }
+ if (OptionalForeignEnum != global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum.FOREIGN_FOO) {
+ output.WriteEnum(22, field_names[11], (int) OptionalForeignEnum, OptionalForeignEnum);
+ }
+ if (OptionalStringPiece != "") {
+ output.WriteString(24, field_names[24], OptionalStringPiece);
+ }
+ if (OptionalCord != "") {
+ output.WriteString(25, field_names[6], OptionalCord);
+ }
+ if (hasOptionalLazyMessage) {
+ output.WriteMessage(30, field_names[15], OptionalLazyMessage);
+ }
+ if (repeatedInt32_.Count > 0) {
+ output.WritePackedInt32Array(31, field_names[36], repeatedInt32MemoizedSerializedSize, repeatedInt32_);
+ }
+ if (repeatedInt64_.Count > 0) {
+ output.WritePackedInt64Array(32, field_names[37], repeatedInt64MemoizedSerializedSize, repeatedInt64_);
+ }
+ if (repeatedUint32_.Count > 0) {
+ output.WritePackedUInt32Array(33, field_names[48], repeatedUint32MemoizedSerializedSize, repeatedUint32_);
+ }
+ if (repeatedUint64_.Count > 0) {
+ output.WritePackedUInt64Array(34, field_names[49], repeatedUint64MemoizedSerializedSize, repeatedUint64_);
+ }
+ if (repeatedSint32_.Count > 0) {
+ output.WritePackedSInt32Array(35, field_names[44], repeatedSint32MemoizedSerializedSize, repeatedSint32_);
+ }
+ if (repeatedSint64_.Count > 0) {
+ output.WritePackedSInt64Array(36, field_names[45], repeatedSint64MemoizedSerializedSize, repeatedSint64_);
+ }
+ if (repeatedFixed32_.Count > 0) {
+ output.WritePackedFixed32Array(37, field_names[31], repeatedFixed32MemoizedSerializedSize, repeatedFixed32_);
+ }
+ if (repeatedFixed64_.Count > 0) {
+ output.WritePackedFixed64Array(38, field_names[32], repeatedFixed64MemoizedSerializedSize, repeatedFixed64_);
+ }
+ if (repeatedSfixed32_.Count > 0) {
+ output.WritePackedSFixed32Array(39, field_names[42], repeatedSfixed32MemoizedSerializedSize, repeatedSfixed32_);
+ }
+ if (repeatedSfixed64_.Count > 0) {
+ output.WritePackedSFixed64Array(40, field_names[43], repeatedSfixed64MemoizedSerializedSize, repeatedSfixed64_);
+ }
+ if (repeatedFloat_.Count > 0) {
+ output.WritePackedFloatArray(41, field_names[33], repeatedFloatMemoizedSerializedSize, repeatedFloat_);
+ }
+ if (repeatedDouble_.Count > 0) {
+ output.WritePackedDoubleArray(42, field_names[30], repeatedDoubleMemoizedSerializedSize, repeatedDouble_);
+ }
+ if (repeatedBool_.Count > 0) {
+ output.WritePackedBoolArray(43, field_names[27], repeatedBoolMemoizedSerializedSize, repeatedBool_);
+ }
+ if (repeatedString_.Count > 0) {
+ output.WriteStringArray(44, field_names[46], repeatedString_);
+ }
+ if (repeatedBytes_.Count > 0) {
+ output.WriteBytesArray(45, field_names[28], repeatedBytes_);
+ }
+ if (repeatedNestedMessage_.Count > 0) {
+ output.WriteMessageArray(48, field_names[40], repeatedNestedMessage_);
+ }
+ if (repeatedForeignMessage_.Count > 0) {
+ output.WriteMessageArray(49, field_names[35], repeatedForeignMessage_);
+ }
+ if (repeatedProto2Message_.Count > 0) {
+ output.WriteMessageArray(50, field_names[41], repeatedProto2Message_);
+ }
+ if (repeatedNestedEnum_.Count > 0) {
+ output.WritePackedEnumArray(51, field_names[39], repeatedNestedEnumMemoizedSerializedSize, repeatedNestedEnum_);
+ }
+ if (repeatedForeignEnum_.Count > 0) {
+ output.WritePackedEnumArray(52, field_names[34], repeatedForeignEnumMemoizedSerializedSize, repeatedForeignEnum_);
+ }
+ if (repeatedStringPiece_.Count > 0) {
+ output.WriteStringArray(54, field_names[47], repeatedStringPiece_);
+ }
+ if (repeatedCord_.Count > 0) {
+ output.WriteStringArray(55, field_names[29], repeatedCord_);
+ }
+ if (repeatedLazyMessage_.Count > 0) {
+ output.WriteMessageArray(57, field_names[38], repeatedLazyMessage_);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ output.WriteUInt32(111, field_names[3], OneofUint32);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ output.WriteMessage(112, field_names[1], OneofNestedMessage);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ output.WriteString(113, field_names[2], OneofString);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofEnum) {
+ output.WriteEnum(114, field_names[0], (int) OneofEnum, OneofEnum);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (OptionalInt32 != 0) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, OptionalInt32);
+ }
+ if (OptionalInt64 != 0L) {
+ size += pb::CodedOutputStream.ComputeInt64Size(2, OptionalInt64);
+ }
+ if (OptionalUint32 != 0) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(3, OptionalUint32);
+ }
+ if (OptionalUint64 != 0UL) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(4, OptionalUint64);
+ }
+ if (OptionalSint32 != 0) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(5, OptionalSint32);
+ }
+ if (OptionalSint64 != 0L) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(6, OptionalSint64);
+ }
+ if (OptionalFixed32 != 0) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(7, OptionalFixed32);
+ }
+ if (OptionalFixed64 != 0UL) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(8, OptionalFixed64);
+ }
+ if (OptionalSfixed32 != 0) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(9, OptionalSfixed32);
+ }
+ if (OptionalSfixed64 != 0L) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(10, OptionalSfixed64);
+ }
+ if (OptionalFloat != 0F) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, OptionalFloat);
+ }
+ if (OptionalDouble != 0D) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(12, OptionalDouble);
+ }
+ if (OptionalBool != false) {
+ size += pb::CodedOutputStream.ComputeBoolSize(13, OptionalBool);
+ }
+ if (OptionalString != "") {
+ size += pb::CodedOutputStream.ComputeStringSize(14, OptionalString);
+ }
+ if (OptionalBytes != pb::ByteString.Empty) {
+ size += pb::CodedOutputStream.ComputeBytesSize(15, OptionalBytes);
+ }
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(18, OptionalNestedMessage);
+ }
+ if (hasOptionalForeignMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(19, OptionalForeignMessage);
+ }
+ if (hasOptionalProto2Message) {
+ size += pb::CodedOutputStream.ComputeMessageSize(20, OptionalProto2Message);
+ }
+ if (OptionalNestedEnum != global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum.FOO) {
+ size += pb::CodedOutputStream.ComputeEnumSize(21, (int) OptionalNestedEnum);
+ }
+ if (OptionalForeignEnum != global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum.FOREIGN_FOO) {
+ size += pb::CodedOutputStream.ComputeEnumSize(22, (int) OptionalForeignEnum);
+ }
+ if (OptionalStringPiece != "") {
+ size += pb::CodedOutputStream.ComputeStringSize(24, OptionalStringPiece);
+ }
+ if (OptionalCord != "") {
+ size += pb::CodedOutputStream.ComputeStringSize(25, OptionalCord);
+ }
+ if (hasOptionalLazyMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(30, OptionalLazyMessage);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (repeatedInt32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedInt32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (repeatedInt64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedInt64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in RepeatedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (repeatedUint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedUint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (repeatedUint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedUint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (repeatedSint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedSint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (repeatedSint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedSint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ if (repeatedFixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedFixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ if (repeatedFixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedFixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedSfixed32_.Count;
+ size += dataSize;
+ if (repeatedSfixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedSfixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedSfixed64_.Count;
+ size += dataSize;
+ if (repeatedSfixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedSfixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ if (repeatedFloat_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedFloatMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedDouble_.Count;
+ size += dataSize;
+ if (repeatedDouble_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedDoubleMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * repeatedBool_.Count;
+ size += dataSize;
+ if (repeatedBool_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ repeatedBoolMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedString_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (pb::ByteString element in RepeatedBytesList) {
+ dataSize += pb::CodedOutputStream.ComputeBytesSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedBytes_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage element in RepeatedNestedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(48, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage element in RepeatedForeignMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(49, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in RepeatedProto2MessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(50, element);
+ }
+ {
+ int dataSize = 0;
+ if (repeatedNestedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum element in repeatedNestedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2;
+ size += pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ repeatedNestedEnumMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ if (repeatedForeignEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum element in repeatedForeignEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2;
+ size += pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ repeatedForeignEnumMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedStringPiece_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedCord_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage element in RepeatedLazyMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(57, element);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(111, OneofUint32);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(112, OneofNestedMessage);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ size += pb::CodedOutputStream.ComputeStringSize(113, OneofString);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(114, (int) OneofEnum);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestAllTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestAllTypes MakeReadOnly() {
+ repeatedInt32_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedUint32_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ repeatedSint32_.MakeReadOnly();
+ repeatedSint64_.MakeReadOnly();
+ repeatedFixed32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedSfixed32_.MakeReadOnly();
+ repeatedSfixed64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedDouble_.MakeReadOnly();
+ repeatedBool_.MakeReadOnly();
+ repeatedString_.MakeReadOnly();
+ repeatedBytes_.MakeReadOnly();
+ repeatedNestedMessage_.MakeReadOnly();
+ repeatedForeignMessage_.MakeReadOnly();
+ repeatedProto2Message_.MakeReadOnly();
+ repeatedNestedEnum_.MakeReadOnly();
+ repeatedForeignEnum_.MakeReadOnly();
+ repeatedStringPiece_.MakeReadOnly();
+ repeatedCord_.MakeReadOnly();
+ repeatedLazyMessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestAllTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestAllTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestAllTypes result;
+
+ private TestAllTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestAllTypes original = result;
+ result = new TestAllTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestAllTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Descriptor; }
+ }
+
+ public override TestAllTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.DefaultInstance; }
+ }
+
+ public override TestAllTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestAllTypes) {
+ return MergeFrom((TestAllTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.OptionalInt32 != 0) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ if (other.OptionalInt64 != 0L) {
+ OptionalInt64 = other.OptionalInt64;
+ }
+ if (other.OptionalUint32 != 0) {
+ OptionalUint32 = other.OptionalUint32;
+ }
+ if (other.OptionalUint64 != 0UL) {
+ OptionalUint64 = other.OptionalUint64;
+ }
+ if (other.OptionalSint32 != 0) {
+ OptionalSint32 = other.OptionalSint32;
+ }
+ if (other.OptionalSint64 != 0L) {
+ OptionalSint64 = other.OptionalSint64;
+ }
+ if (other.OptionalFixed32 != 0) {
+ OptionalFixed32 = other.OptionalFixed32;
+ }
+ if (other.OptionalFixed64 != 0UL) {
+ OptionalFixed64 = other.OptionalFixed64;
+ }
+ if (other.OptionalSfixed32 != 0) {
+ OptionalSfixed32 = other.OptionalSfixed32;
+ }
+ if (other.OptionalSfixed64 != 0L) {
+ OptionalSfixed64 = other.OptionalSfixed64;
+ }
+ if (other.OptionalFloat != 0F) {
+ OptionalFloat = other.OptionalFloat;
+ }
+ if (other.OptionalDouble != 0D) {
+ OptionalDouble = other.OptionalDouble;
+ }
+ if (other.OptionalBool != false) {
+ OptionalBool = other.OptionalBool;
+ }
+ if (other.OptionalString != "") {
+ OptionalString = other.OptionalString;
+ }
+ if (other.OptionalBytes != pb::ByteString.Empty) {
+ OptionalBytes = other.OptionalBytes;
+ }
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ if (other.HasOptionalForeignMessage) {
+ MergeOptionalForeignMessage(other.OptionalForeignMessage);
+ }
+ if (other.HasOptionalProto2Message) {
+ MergeOptionalProto2Message(other.OptionalProto2Message);
+ }
+ if (other.OptionalNestedEnum != global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum.FOO) {
+ OptionalNestedEnum = other.OptionalNestedEnum;
+ }
+ if (other.OptionalForeignEnum != global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum.FOREIGN_FOO) {
+ OptionalForeignEnum = other.OptionalForeignEnum;
+ }
+ if (other.OptionalStringPiece != "") {
+ OptionalStringPiece = other.OptionalStringPiece;
+ }
+ if (other.OptionalCord != "") {
+ OptionalCord = other.OptionalCord;
+ }
+ if (other.HasOptionalLazyMessage) {
+ MergeOptionalLazyMessage(other.OptionalLazyMessage);
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ result.repeatedInt32_.Add(other.repeatedInt32_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ result.repeatedInt64_.Add(other.repeatedInt64_);
+ }
+ if (other.repeatedUint32_.Count != 0) {
+ result.repeatedUint32_.Add(other.repeatedUint32_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ result.repeatedUint64_.Add(other.repeatedUint64_);
+ }
+ if (other.repeatedSint32_.Count != 0) {
+ result.repeatedSint32_.Add(other.repeatedSint32_);
+ }
+ if (other.repeatedSint64_.Count != 0) {
+ result.repeatedSint64_.Add(other.repeatedSint64_);
+ }
+ if (other.repeatedFixed32_.Count != 0) {
+ result.repeatedFixed32_.Add(other.repeatedFixed32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ result.repeatedFixed64_.Add(other.repeatedFixed64_);
+ }
+ if (other.repeatedSfixed32_.Count != 0) {
+ result.repeatedSfixed32_.Add(other.repeatedSfixed32_);
+ }
+ if (other.repeatedSfixed64_.Count != 0) {
+ result.repeatedSfixed64_.Add(other.repeatedSfixed64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ result.repeatedFloat_.Add(other.repeatedFloat_);
+ }
+ if (other.repeatedDouble_.Count != 0) {
+ result.repeatedDouble_.Add(other.repeatedDouble_);
+ }
+ if (other.repeatedBool_.Count != 0) {
+ result.repeatedBool_.Add(other.repeatedBool_);
+ }
+ if (other.repeatedString_.Count != 0) {
+ result.repeatedString_.Add(other.repeatedString_);
+ }
+ if (other.repeatedBytes_.Count != 0) {
+ result.repeatedBytes_.Add(other.repeatedBytes_);
+ }
+ if (other.repeatedNestedMessage_.Count != 0) {
+ result.repeatedNestedMessage_.Add(other.repeatedNestedMessage_);
+ }
+ if (other.repeatedForeignMessage_.Count != 0) {
+ result.repeatedForeignMessage_.Add(other.repeatedForeignMessage_);
+ }
+ if (other.repeatedProto2Message_.Count != 0) {
+ result.repeatedProto2Message_.Add(other.repeatedProto2Message_);
+ }
+ if (other.repeatedNestedEnum_.Count != 0) {
+ result.repeatedNestedEnum_.Add(other.repeatedNestedEnum_);
+ }
+ if (other.repeatedForeignEnum_.Count != 0) {
+ result.repeatedForeignEnum_.Add(other.repeatedForeignEnum_);
+ }
+ if (other.repeatedStringPiece_.Count != 0) {
+ result.repeatedStringPiece_.Add(other.repeatedStringPiece_);
+ }
+ if (other.repeatedCord_.Count != 0) {
+ result.repeatedCord_.Add(other.repeatedCord_);
+ }
+ if (other.repeatedLazyMessage_.Count != 0) {
+ result.repeatedLazyMessage_.Add(other.repeatedLazyMessage_);
+ }
+ switch (other.OneofFieldCase) {
+ case OneofFieldOneofCase.OneofUint32: {
+ SetOneofUint32(other.OneofUint32);
+ break;
+ }
+ case OneofFieldOneofCase.OneofNestedMessage: {
+ MergeOneofNestedMessage(other.OneofNestedMessage);
+ break;
+ }
+ case OneofFieldOneofCase.OneofString: {
+ SetOneofString(other.OneofString);
+ break;
+ }
+ case OneofFieldOneofCase.OneofEnum: {
+ SetOneofEnum(other.OneofEnum);
+ break;
+ }
+ case OneofFieldOneofCase.None: { break; }
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testAllTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testAllTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ input.ReadInt32(ref result.optionalInt32_);
+ break;
+ }
+ case 16: {
+ input.ReadInt64(ref result.optionalInt64_);
+ break;
+ }
+ case 24: {
+ input.ReadUInt32(ref result.optionalUint32_);
+ break;
+ }
+ case 32: {
+ input.ReadUInt64(ref result.optionalUint64_);
+ break;
+ }
+ case 40: {
+ input.ReadSInt32(ref result.optionalSint32_);
+ break;
+ }
+ case 48: {
+ input.ReadSInt64(ref result.optionalSint64_);
+ break;
+ }
+ case 61: {
+ input.ReadFixed32(ref result.optionalFixed32_);
+ break;
+ }
+ case 65: {
+ input.ReadFixed64(ref result.optionalFixed64_);
+ break;
+ }
+ case 77: {
+ input.ReadSFixed32(ref result.optionalSfixed32_);
+ break;
+ }
+ case 81: {
+ input.ReadSFixed64(ref result.optionalSfixed64_);
+ break;
+ }
+ case 93: {
+ input.ReadFloat(ref result.optionalFloat_);
+ break;
+ }
+ case 97: {
+ input.ReadDouble(ref result.optionalDouble_);
+ break;
+ }
+ case 104: {
+ input.ReadBool(ref result.optionalBool_);
+ break;
+ }
+ case 114: {
+ input.ReadString(ref result.optionalString_);
+ break;
+ }
+ case 122: {
+ input.ReadBytes(ref result.optionalBytes_);
+ break;
+ }
+ case 146: {
+ global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 154: {
+ global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.CreateBuilder();
+ if (result.hasOptionalForeignMessage) {
+ subBuilder.MergeFrom(OptionalForeignMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalForeignMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 162: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasOptionalProto2Message) {
+ subBuilder.MergeFrom(OptionalProto2Message);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalProto2Message = subBuilder.BuildPartial();
+ break;
+ }
+ case 168: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalNestedEnum_, out unknown)) {
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(21, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 176: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalForeignEnum_, out unknown)) {
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(22, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 194: {
+ input.ReadString(ref result.optionalStringPiece_);
+ break;
+ }
+ case 202: {
+ input.ReadString(ref result.optionalCord_);
+ break;
+ }
+ case 242: {
+ global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalLazyMessage) {
+ subBuilder.MergeFrom(OptionalLazyMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalLazyMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 250:
+ case 248: {
+ input.ReadInt32Array(tag, field_name, result.repeatedInt32_);
+ break;
+ }
+ case 258:
+ case 256: {
+ input.ReadInt64Array(tag, field_name, result.repeatedInt64_);
+ break;
+ }
+ case 266:
+ case 264: {
+ input.ReadUInt32Array(tag, field_name, result.repeatedUint32_);
+ break;
+ }
+ case 274:
+ case 272: {
+ input.ReadUInt64Array(tag, field_name, result.repeatedUint64_);
+ break;
+ }
+ case 282:
+ case 280: {
+ input.ReadSInt32Array(tag, field_name, result.repeatedSint32_);
+ break;
+ }
+ case 290:
+ case 288: {
+ input.ReadSInt64Array(tag, field_name, result.repeatedSint64_);
+ break;
+ }
+ case 298:
+ case 301: {
+ input.ReadFixed32Array(tag, field_name, result.repeatedFixed32_);
+ break;
+ }
+ case 306:
+ case 305: {
+ input.ReadFixed64Array(tag, field_name, result.repeatedFixed64_);
+ break;
+ }
+ case 314:
+ case 317: {
+ input.ReadSFixed32Array(tag, field_name, result.repeatedSfixed32_);
+ break;
+ }
+ case 322:
+ case 321: {
+ input.ReadSFixed64Array(tag, field_name, result.repeatedSfixed64_);
+ break;
+ }
+ case 330:
+ case 333: {
+ input.ReadFloatArray(tag, field_name, result.repeatedFloat_);
+ break;
+ }
+ case 338:
+ case 337: {
+ input.ReadDoubleArray(tag, field_name, result.repeatedDouble_);
+ break;
+ }
+ case 346:
+ case 344: {
+ input.ReadBoolArray(tag, field_name, result.repeatedBool_);
+ break;
+ }
+ case 354: {
+ input.ReadStringArray(tag, field_name, result.repeatedString_);
+ break;
+ }
+ case 362: {
+ input.ReadBytesArray(tag, field_name, result.repeatedBytes_);
+ break;
+ }
+ case 386: {
+ input.ReadMessageArray(tag, field_name, result.repeatedNestedMessage_, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 394: {
+ input.ReadMessageArray(tag, field_name, result.repeatedForeignMessage_, global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 402: {
+ input.ReadMessageArray(tag, field_name, result.repeatedProto2Message_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 410:
+ case 408: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum>(tag, field_name, result.repeatedNestedEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(51, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 418:
+ case 416: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum>(tag, field_name, result.repeatedForeignEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(52, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 434: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringPiece_);
+ break;
+ }
+ case 442: {
+ input.ReadStringArray(tag, field_name, result.repeatedCord_);
+ break;
+ }
+ case 458: {
+ input.ReadMessageArray(tag, field_name, result.repeatedLazyMessage_, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 888: {
+ uint value = 0;
+ if (input.ReadUInt32(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
+ }
+ break;
+ }
+ case 898: {
+ global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ subBuilder.MergeFrom(OneofNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.oneofField_ = subBuilder.BuildPartial();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ break;
+ }
+ case 906: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofString;
+ }
+ break;
+ }
+ case 912: {
+ object unknown;
+ global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum enumValue = global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum.FOO;
+ if(input.ReadEnum(ref enumValue, out unknown)) {
+ result.oneofField_ = enumValue;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofEnum;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(114, (ulong)(int)unknown);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ PrepareBuilder();
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ PrepareBuilder();
+ result.optionalInt32_ = 0;
+ return this;
+ }
+
+ public long OptionalInt64 {
+ get { return result.OptionalInt64; }
+ set { SetOptionalInt64(value); }
+ }
+ public Builder SetOptionalInt64(long value) {
+ PrepareBuilder();
+ result.optionalInt64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt64() {
+ PrepareBuilder();
+ result.optionalInt64_ = 0L;
+ return this;
+ }
+
+ public uint OptionalUint32 {
+ get { return result.OptionalUint32; }
+ set { SetOptionalUint32(value); }
+ }
+ public Builder SetOptionalUint32(uint value) {
+ PrepareBuilder();
+ result.optionalUint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint32() {
+ PrepareBuilder();
+ result.optionalUint32_ = 0;
+ return this;
+ }
+
+ public ulong OptionalUint64 {
+ get { return result.OptionalUint64; }
+ set { SetOptionalUint64(value); }
+ }
+ public Builder SetOptionalUint64(ulong value) {
+ PrepareBuilder();
+ result.optionalUint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint64() {
+ PrepareBuilder();
+ result.optionalUint64_ = 0UL;
+ return this;
+ }
+
+ public int OptionalSint32 {
+ get { return result.OptionalSint32; }
+ set { SetOptionalSint32(value); }
+ }
+ public Builder SetOptionalSint32(int value) {
+ PrepareBuilder();
+ result.optionalSint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint32() {
+ PrepareBuilder();
+ result.optionalSint32_ = 0;
+ return this;
+ }
+
+ public long OptionalSint64 {
+ get { return result.OptionalSint64; }
+ set { SetOptionalSint64(value); }
+ }
+ public Builder SetOptionalSint64(long value) {
+ PrepareBuilder();
+ result.optionalSint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint64() {
+ PrepareBuilder();
+ result.optionalSint64_ = 0L;
+ return this;
+ }
+
+ public uint OptionalFixed32 {
+ get { return result.OptionalFixed32; }
+ set { SetOptionalFixed32(value); }
+ }
+ public Builder SetOptionalFixed32(uint value) {
+ PrepareBuilder();
+ result.optionalFixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed32() {
+ PrepareBuilder();
+ result.optionalFixed32_ = 0;
+ return this;
+ }
+
+ public ulong OptionalFixed64 {
+ get { return result.OptionalFixed64; }
+ set { SetOptionalFixed64(value); }
+ }
+ public Builder SetOptionalFixed64(ulong value) {
+ PrepareBuilder();
+ result.optionalFixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed64() {
+ PrepareBuilder();
+ result.optionalFixed64_ = 0UL;
+ return this;
+ }
+
+ public int OptionalSfixed32 {
+ get { return result.OptionalSfixed32; }
+ set { SetOptionalSfixed32(value); }
+ }
+ public Builder SetOptionalSfixed32(int value) {
+ PrepareBuilder();
+ result.optionalSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed32() {
+ PrepareBuilder();
+ result.optionalSfixed32_ = 0;
+ return this;
+ }
+
+ public long OptionalSfixed64 {
+ get { return result.OptionalSfixed64; }
+ set { SetOptionalSfixed64(value); }
+ }
+ public Builder SetOptionalSfixed64(long value) {
+ PrepareBuilder();
+ result.optionalSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed64() {
+ PrepareBuilder();
+ result.optionalSfixed64_ = 0L;
+ return this;
+ }
+
+ public float OptionalFloat {
+ get { return result.OptionalFloat; }
+ set { SetOptionalFloat(value); }
+ }
+ public Builder SetOptionalFloat(float value) {
+ PrepareBuilder();
+ result.optionalFloat_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFloat() {
+ PrepareBuilder();
+ result.optionalFloat_ = 0F;
+ return this;
+ }
+
+ public double OptionalDouble {
+ get { return result.OptionalDouble; }
+ set { SetOptionalDouble(value); }
+ }
+ public Builder SetOptionalDouble(double value) {
+ PrepareBuilder();
+ result.optionalDouble_ = value;
+ return this;
+ }
+ public Builder ClearOptionalDouble() {
+ PrepareBuilder();
+ result.optionalDouble_ = 0D;
+ return this;
+ }
+
+ public bool OptionalBool {
+ get { return result.OptionalBool; }
+ set { SetOptionalBool(value); }
+ }
+ public Builder SetOptionalBool(bool value) {
+ PrepareBuilder();
+ result.optionalBool_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBool() {
+ PrepareBuilder();
+ result.optionalBool_ = false;
+ return this;
+ }
+
+ public string OptionalString {
+ get { return result.OptionalString; }
+ set { SetOptionalString(value); }
+ }
+ public Builder SetOptionalString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.optionalString_ = value;
+ return this;
+ }
+ public Builder ClearOptionalString() {
+ PrepareBuilder();
+ result.optionalString_ = "";
+ return this;
+ }
+
+ public pb::ByteString OptionalBytes {
+ get { return result.OptionalBytes; }
+ set { SetOptionalBytes(value); }
+ }
+ public Builder SetOptionalBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.optionalBytes_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBytes() {
+ PrepareBuilder();
+ result.optionalBytes_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalForeignMessage {
+ get { return result.hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage OptionalForeignMessage {
+ get { return result.OptionalForeignMessage; }
+ set { SetOptionalForeignMessage(value); }
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalForeignMessage &&
+ result.optionalForeignMessage_ != global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.DefaultInstance) {
+ result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.CreateBuilder(result.optionalForeignMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalForeignMessage_ = value;
+ }
+ result.hasOptionalForeignMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalForeignMessage() {
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = false;
+ result.optionalForeignMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalProto2Message {
+ get { return result.hasOptionalProto2Message; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalProto2Message {
+ get { return result.OptionalProto2Message; }
+ set { SetOptionalProto2Message(value); }
+ }
+ public Builder SetOptionalProto2Message(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalProto2Message = true;
+ result.optionalProto2Message_ = value;
+ return this;
+ }
+ public Builder SetOptionalProto2Message(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalProto2Message = true;
+ result.optionalProto2Message_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalProto2Message(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalProto2Message &&
+ result.optionalProto2Message_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.optionalProto2Message_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.optionalProto2Message_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalProto2Message_ = value;
+ }
+ result.hasOptionalProto2Message = true;
+ return this;
+ }
+ public Builder ClearOptionalProto2Message() {
+ PrepareBuilder();
+ result.hasOptionalProto2Message = false;
+ result.optionalProto2Message_ = null;
+ return this;
+ }
+
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
+ get { return result.OptionalNestedEnum; }
+ set { SetOptionalNestedEnum(value); }
+ }
+ public Builder SetOptionalNestedEnum(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.optionalNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalNestedEnum() {
+ PrepareBuilder();
+ result.optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum.FOO;
+ return this;
+ }
+
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum OptionalForeignEnum {
+ get { return result.OptionalForeignEnum; }
+ set { SetOptionalForeignEnum(value); }
+ }
+ public Builder SetOptionalForeignEnum(global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum value) {
+ PrepareBuilder();
+ result.optionalForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalForeignEnum() {
+ PrepareBuilder();
+ result.optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public string OptionalStringPiece {
+ get { return result.OptionalStringPiece; }
+ set { SetOptionalStringPiece(value); }
+ }
+ public Builder SetOptionalStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.optionalStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearOptionalStringPiece() {
+ PrepareBuilder();
+ result.optionalStringPiece_ = "";
+ return this;
+ }
+
+ public string OptionalCord {
+ get { return result.OptionalCord; }
+ set { SetOptionalCord(value); }
+ }
+ public Builder SetOptionalCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.optionalCord_ = value;
+ return this;
+ }
+ public Builder ClearOptionalCord() {
+ PrepareBuilder();
+ result.optionalCord_ = "";
+ return this;
+ }
+
+ public bool HasOptionalLazyMessage {
+ get { return result.hasOptionalLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage OptionalLazyMessage {
+ get { return result.OptionalLazyMessage; }
+ set { SetOptionalLazyMessage(value); }
+ }
+ public Builder SetOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = true;
+ result.optionalLazyMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = true;
+ result.optionalLazyMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalLazyMessage &&
+ result.optionalLazyMessage_ != global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.optionalLazyMessage_ = global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalLazyMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalLazyMessage_ = value;
+ }
+ result.hasOptionalLazyMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalLazyMessage() {
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = false;
+ result.optionalLazyMessage_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return PrepareBuilder().repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ PrepareBuilder();
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return PrepareBuilder().repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ PrepareBuilder();
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> RepeatedUint32List {
+ get { return PrepareBuilder().repeatedUint32_; }
+ }
+ public int RepeatedUint32Count {
+ get { return result.RepeatedUint32Count; }
+ }
+ public uint GetRepeatedUint32(int index) {
+ return result.GetRepeatedUint32(index);
+ }
+ public Builder SetRepeatedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedUint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedUint32(uint value) {
+ PrepareBuilder();
+ result.repeatedUint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint32() {
+ PrepareBuilder();
+ result.repeatedUint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return PrepareBuilder().repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedUint64(ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ PrepareBuilder();
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSint32List {
+ get { return PrepareBuilder().repeatedSint32_; }
+ }
+ public int RepeatedSint32Count {
+ get { return result.RepeatedSint32Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return result.GetRepeatedSint32(index);
+ }
+ public Builder SetRepeatedSint32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint32(int value) {
+ PrepareBuilder();
+ result.repeatedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSint32() {
+ PrepareBuilder();
+ result.repeatedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSint64List {
+ get { return PrepareBuilder().repeatedSint64_; }
+ }
+ public int RepeatedSint64Count {
+ get { return result.RepeatedSint64Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return result.GetRepeatedSint64(index);
+ }
+ public Builder SetRepeatedSint64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint64(long value) {
+ PrepareBuilder();
+ result.repeatedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSint64() {
+ PrepareBuilder();
+ result.repeatedSint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return PrepareBuilder().repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed32(uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ PrepareBuilder();
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return PrepareBuilder().repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed64(ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ PrepareBuilder();
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSfixed32List {
+ get { return PrepareBuilder().repeatedSfixed32_; }
+ }
+ public int RepeatedSfixed32Count {
+ get { return result.RepeatedSfixed32Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return result.GetRepeatedSfixed32(index);
+ }
+ public Builder SetRepeatedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed32(int value) {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed32() {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSfixed64List {
+ get { return PrepareBuilder().repeatedSfixed64_; }
+ }
+ public int RepeatedSfixed64Count {
+ get { return result.RepeatedSfixed64Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return result.GetRepeatedSfixed64(index);
+ }
+ public Builder SetRepeatedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed64(long value) {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed64() {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return PrepareBuilder().repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ PrepareBuilder();
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ PrepareBuilder();
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> RepeatedDoubleList {
+ get { return PrepareBuilder().repeatedDouble_; }
+ }
+ public int RepeatedDoubleCount {
+ get { return result.RepeatedDoubleCount; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return result.GetRepeatedDouble(index);
+ }
+ public Builder SetRepeatedDouble(int index, double value) {
+ PrepareBuilder();
+ result.repeatedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedDouble(double value) {
+ PrepareBuilder();
+ result.repeatedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.repeatedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedDouble() {
+ PrepareBuilder();
+ result.repeatedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> RepeatedBoolList {
+ get { return PrepareBuilder().repeatedBool_; }
+ }
+ public int RepeatedBoolCount {
+ get { return result.RepeatedBoolCount; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return result.GetRepeatedBool(index);
+ }
+ public Builder SetRepeatedBool(int index, bool value) {
+ PrepareBuilder();
+ result.repeatedBool_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBool(bool value) {
+ PrepareBuilder();
+ result.repeatedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.repeatedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedBool() {
+ PrepareBuilder();
+ result.repeatedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringList {
+ get { return PrepareBuilder().repeatedString_; }
+ }
+ public int RepeatedStringCount {
+ get { return result.RepeatedStringCount; }
+ }
+ public string GetRepeatedString(int index) {
+ return result.GetRepeatedString(index);
+ }
+ public Builder SetRepeatedString(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedString_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedString_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedString(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedString_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedString() {
+ PrepareBuilder();
+ result.repeatedString_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<pb::ByteString> RepeatedBytesList {
+ get { return PrepareBuilder().repeatedBytes_; }
+ }
+ public int RepeatedBytesCount {
+ get { return result.RepeatedBytesCount; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return result.GetRepeatedBytes(index);
+ }
+ public Builder SetRepeatedBytes(int index, pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedBytes_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedBytes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBytes(scg::IEnumerable<pb::ByteString> values) {
+ PrepareBuilder();
+ result.repeatedBytes_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedBytes() {
+ PrepareBuilder();
+ result.repeatedBytes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return PrepareBuilder().repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return result.RepeatedNestedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return result.GetRepeatedNestedMessage(index);
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedNestedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedNestedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage> values) {
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedNestedMessage() {
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage> RepeatedForeignMessageList {
+ get { return PrepareBuilder().repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return result.RepeatedForeignMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage GetRepeatedForeignMessage(int index) {
+ return result.GetRepeatedForeignMessage(index);
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedForeignMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedForeignMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage> values) {
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedForeignMessage() {
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> RepeatedProto2MessageList {
+ get { return PrepareBuilder().repeatedProto2Message_; }
+ }
+ public int RepeatedProto2MessageCount {
+ get { return result.RepeatedProto2MessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetRepeatedProto2Message(int index) {
+ return result.GetRepeatedProto2Message(index);
+ }
+ public Builder SetRepeatedProto2Message(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedProto2Message_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedProto2Message(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedProto2Message_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedProto2Message(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedProto2Message_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedProto2Message(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedProto2Message_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedProto2Message(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.repeatedProto2Message_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedProto2Message() {
+ PrepareBuilder();
+ result.repeatedProto2Message_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return PrepareBuilder().repeatedNestedEnum_; }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return result.RepeatedNestedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return result.GetRepeatedNestedEnum(index);
+ }
+ public Builder SetRepeatedNestedEnum(int index, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedNestedEnum(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum> values) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedNestedEnum() {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum> RepeatedForeignEnumList {
+ get { return PrepareBuilder().repeatedForeignEnum_; }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return result.RepeatedForeignEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum GetRepeatedForeignEnum(int index) {
+ return result.GetRepeatedForeignEnum(index);
+ }
+ public Builder SetRepeatedForeignEnum(int index, global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedForeignEnum(global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignEnum> values) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedForeignEnum() {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceList {
+ get { return PrepareBuilder().repeatedStringPiece_; }
+ }
+ public int RepeatedStringPieceCount {
+ get { return result.RepeatedStringPieceCount; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return result.GetRepeatedStringPiece(index);
+ }
+ public Builder SetRepeatedStringPiece(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPiece_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPiece_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPiece(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringPiece_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringPiece() {
+ PrepareBuilder();
+ result.repeatedStringPiece_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordList {
+ get { return PrepareBuilder().repeatedCord_; }
+ }
+ public int RepeatedCordCount {
+ get { return result.RepeatedCordCount; }
+ }
+ public string GetRepeatedCord(int index) {
+ return result.GetRepeatedCord(index);
+ }
+ public Builder SetRepeatedCord(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCord_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCord_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCord(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedCord_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedCord() {
+ PrepareBuilder();
+ result.repeatedCord_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage> RepeatedLazyMessageList {
+ get { return PrepareBuilder().repeatedLazyMessage_; }
+ }
+ public int RepeatedLazyMessageCount {
+ get { return result.RepeatedLazyMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage GetRepeatedLazyMessage(int index) {
+ return result.GetRepeatedLazyMessage(index);
+ }
+ public Builder SetRepeatedLazyMessage(int index, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedLazyMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedLazyMessage(int index, global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedLazyMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedLazyMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedLazyMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedLazyMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage> values) {
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedLazyMessage() {
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Clear();
+ return this;
+ }
+
+ public uint OneofUint32 {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) result.oneofField_ : 0; }
+ set { SetOneofUint32(value); }
+ }
+ public Builder SetOneofUint32(uint value) {
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
+ return this;
+ }
+ public Builder ClearOneofUint32() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage OneofNestedMessage {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage) result.oneofField_ : global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ set { SetOneofNestedMessage(value); }
+ }
+ public Builder SetOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ result.oneofField_ = value;
+ return this;
+ }
+ public Builder SetOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ result.oneofField_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage &&
+ result.OneofNestedMessage != global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.oneofField_ = global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedMessage.CreateBuilder(result.OneofNestedMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.oneofField_ = value;
+ }
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ return this;
+ }
+ public Builder ClearOneofNestedMessage() {
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ result.oneofField_ = null;
+ }
+ return this;
+ }
+
+ public string OneofString {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) result.oneofField_ : ""; }
+ set { SetOneofString(value); }
+ }
+ public Builder SetOneofString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofString;
+ return this;
+ }
+ public Builder ClearOneofString() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum OneofEnum {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofEnum ? (global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum) result.oneofField_ : global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum.FOO; }
+ set { SetOneofEnum(value); }
+ }
+ public Builder SetOneofEnum(global::Google.ProtocolBuffers.TestProtos.Proto3.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofEnum;
+ return this;
+ }
+ public Builder ClearOneofEnum() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofEnum) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public OneofFieldOneofCase OneofFieldCase {
+ get { return result.oneofFieldCase_; }
+ }
+ public Builder ClearOneofField() {
+ PrepareBuilder();
+ result.oneofField_ = null;
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ return this;
+ }
+ }
+ static TestAllTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestProto2Required : pb::GeneratedMessage<TestProto2Required, TestProto2Required.Builder> {
+ private TestProto2Required() { }
+ private static readonly TestProto2Required defaultInstance = new TestProto2Required().MakeReadOnly();
+ private static readonly string[] _testProto2RequiredFieldNames = new string[] { "proto2" };
+ private static readonly uint[] _testProto2RequiredFieldTags = new uint[] { 10 };
+ public static TestProto2Required DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestProto2Required DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestProto2Required ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.internal__static_proto2_nofieldpresence_unittest_TestProto2Required__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestProto2Required, TestProto2Required.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.internal__static_proto2_nofieldpresence_unittest_TestProto2Required__FieldAccessorTable; }
+ }
+
+ public const int Proto2FieldNumber = 1;
+ private bool hasProto2;
+ private global::Google.ProtocolBuffers.TestProtos.TestRequired proto2_;
+ public bool HasProto2 {
+ get { return hasProto2; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired Proto2 {
+ get { return proto2_ ?? global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance; }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testProto2RequiredFieldNames;
+ if (hasProto2) {
+ output.WriteMessage(1, field_names[0], Proto2);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasProto2) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Proto2);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestProto2Required ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestProto2Required ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestProto2Required ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestProto2Required ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestProto2Required ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestProto2Required ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestProto2Required ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestProto2Required ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestProto2Required ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestProto2Required ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestProto2Required MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestProto2Required prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestProto2Required, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestProto2Required cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestProto2Required result;
+
+ private TestProto2Required PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestProto2Required original = result;
+ result = new TestProto2Required();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestProto2Required MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.TestProto2Required.Descriptor; }
+ }
+
+ public override TestProto2Required DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.TestProto2Required.DefaultInstance; }
+ }
+
+ public override TestProto2Required BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestProto2Required) {
+ return MergeFrom((TestProto2Required) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestProto2Required other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Proto3.TestProto2Required.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasProto2) {
+ MergeProto2(other.Proto2);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testProto2RequiredFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testProto2RequiredFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder();
+ if (result.hasProto2) {
+ subBuilder.MergeFrom(Proto2);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Proto2 = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasProto2 {
+ get { return result.hasProto2; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired Proto2 {
+ get { return result.Proto2; }
+ set { SetProto2(value); }
+ }
+ public Builder SetProto2(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasProto2 = true;
+ result.proto2_ = value;
+ return this;
+ }
+ public Builder SetProto2(global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasProto2 = true;
+ result.proto2_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeProto2(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasProto2 &&
+ result.proto2_ != global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) {
+ result.proto2_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder(result.proto2_).MergeFrom(value).BuildPartial();
+ } else {
+ result.proto2_ = value;
+ }
+ result.hasProto2 = true;
+ return this;
+ }
+ public Builder ClearProto2() {
+ PrepareBuilder();
+ result.hasProto2 = false;
+ result.proto2_ = null;
+ return this;
+ }
+ }
+ static TestProto2Required() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ForeignMessage : pb::GeneratedMessage<ForeignMessage, ForeignMessage.Builder> {
+ private ForeignMessage() { }
+ private static readonly ForeignMessage defaultInstance = new ForeignMessage().MakeReadOnly();
+ private static readonly string[] _foreignMessageFieldNames = new string[] { "c" };
+ private static readonly uint[] _foreignMessageFieldTags = new uint[] { 8 };
+ public static ForeignMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ForeignMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ForeignMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.internal__static_proto2_nofieldpresence_unittest_ForeignMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ForeignMessage, ForeignMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.internal__static_proto2_nofieldpresence_unittest_ForeignMessage__FieldAccessorTable; }
+ }
+
+ public const int CFieldNumber = 1;
+ private int c_;
+ public int C {
+ get { return c_; }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _foreignMessageFieldNames;
+ if (C != 0) {
+ output.WriteInt32(1, field_names[0], C);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (C != 0) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, C);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ForeignMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ForeignMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ForeignMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ForeignMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ForeignMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ForeignMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ForeignMessage result;
+
+ private ForeignMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ForeignMessage original = result;
+ result = new ForeignMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ForeignMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.Descriptor; }
+ }
+
+ public override ForeignMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.DefaultInstance; }
+ }
+
+ public override ForeignMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ForeignMessage) {
+ return MergeFrom((ForeignMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ForeignMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Proto3.ForeignMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.C != 0) {
+ C = other.C;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_foreignMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _foreignMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ input.ReadInt32(ref result.c_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ PrepareBuilder();
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ PrepareBuilder();
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static ForeignMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Proto3.UnittestNoFieldPresence.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestOptimizeFor.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestOptimizeFor.cs
new file mode 100644
index 00000000..d07df059
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnittestOptimizeFor.cs
@@ -0,0 +1,738 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_optimize_for.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestOptimizeFor {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.TestExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.TestExtension2);
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOptimizedForSize__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize, global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.Builder> internal__static_protobuf_unittest_TestOptimizedForSize__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredOptimizedForSize__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize, global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.Builder> internal__static_protobuf_unittest_TestRequiredOptimizedForSize__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOptionalOptimizedForSize__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOptionalOptimizedForSize, global::Google.ProtocolBuffers.TestProtos.TestOptionalOptimizedForSize.Builder> internal__static_protobuf_unittest_TestOptionalOptimizedForSize__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestOptimizeFor() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Citnb29nbGUvcHJvdG9idWYvdW5pdHRlc3Rfb3B0aW1pemVfZm9yLnByb3Rv",
+ "EhFwcm90b2J1Zl91bml0dGVzdBoeZ29vZ2xlL3Byb3RvYnVmL3VuaXR0ZXN0",
+ "LnByb3RvIsoCChRUZXN0T3B0aW1pemVkRm9yU2l6ZRIJCgFpGAEgASgFEi4K",
+ "A21zZxgTIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdl",
+ "EhcKDWludGVnZXJfZmllbGQYAiABKAVIABIWCgxzdHJpbmdfZmllbGQYAyAB",
+ "KAlIACoJCOgHEICAgIACMkAKDnRlc3RfZXh0ZW5zaW9uEicucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdE9wdGltaXplZEZvclNpemUY0gkgASgFMnIKD3Rlc3Rf",
+ "ZXh0ZW5zaW9uMhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RPcHRpbWl6ZWRG",
+ "b3JTaXplGNMJIAEoCzIvLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJl",
+ "ZE9wdGltaXplZEZvclNpemVCBQoDZm9vIikKHFRlc3RSZXF1aXJlZE9wdGlt",
+ "aXplZEZvclNpemUSCQoBeBgBIAIoBSJaChxUZXN0T3B0aW9uYWxPcHRpbWl6",
+ "ZWRGb3JTaXplEjoKAW8YASABKAsyLy5wcm90b2J1Zl91bml0dGVzdC5UZXN0",
+ "UmVxdWlyZWRPcHRpbWl6ZWRGb3JTaXplQiZIAqoCIUdvb2dsZS5Qcm90b2Nv",
+ "bEJ1ZmZlcnMuVGVzdFByb3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_TestOptimizedForSize__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_TestOptimizedForSize__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize, global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.Builder>(internal__static_protobuf_unittest_TestOptimizedForSize__Descriptor,
+ new string[] { "I", "Msg", "IntegerField", "StringField", "Foo", });
+ global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.TestExtension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.TestExtension2 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestRequiredOptimizedForSize__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_TestRequiredOptimizedForSize__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize, global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.Builder>(internal__static_protobuf_unittest_TestRequiredOptimizedForSize__Descriptor,
+ new string[] { "X", });
+ internal__static_protobuf_unittest_TestOptionalOptimizedForSize__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_TestOptionalOptimizedForSize__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOptionalOptimizedForSize, global::Google.ProtocolBuffers.TestProtos.TestOptionalOptimizedForSize.Builder>(internal__static_protobuf_unittest_TestOptionalOptimizedForSize__Descriptor,
+ new string[] { "O", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOptimizedForSize : pb::ExtendableMessage<TestOptimizedForSize, TestOptimizedForSize.Builder> {
+ private TestOptimizedForSize() { }
+ private static readonly TestOptimizedForSize defaultInstance = new TestOptimizedForSize().MakeReadOnly();
+ public static TestOptimizedForSize DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOptimizedForSize DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOptimizedForSize ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestOptimizeFor.internal__static_protobuf_unittest_TestOptimizedForSize__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOptimizedForSize, TestOptimizedForSize.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestOptimizeFor.internal__static_protobuf_unittest_TestOptimizedForSize__FieldAccessorTable; }
+ }
+
+ public const int TestExtensionFieldNumber = 1234;
+ public static pb::GeneratedExtensionBase<int> TestExtension;
+ public const int TestExtension2FieldNumber = 1235;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize> TestExtension2;
+ private object foo_;
+ public enum FooOneofCase {
+ IntegerField = 2,
+ StringField = 3,
+ None = 0,
+ }
+ private FooOneofCase fooCase_ = FooOneofCase.None;
+ public FooOneofCase FooCase {
+ get { return fooCase_; }
+ }
+
+ public const int IFieldNumber = 1;
+ private bool hasI;
+ private int i_;
+ public bool HasI {
+ get { return hasI; }
+ }
+ public int I {
+ get { return i_; }
+ }
+
+ public const int MsgFieldNumber = 19;
+ private bool hasMsg;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage msg_;
+ public bool HasMsg {
+ get { return hasMsg; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage Msg {
+ get { return msg_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int IntegerFieldFieldNumber = 2;
+ public bool HasIntegerField {
+ get { return fooCase_ == FooOneofCase.IntegerField; }
+ }
+ public int IntegerField {
+ get { return fooCase_ == FooOneofCase.IntegerField ? (int) foo_ : 0; }
+ }
+
+ public const int StringFieldFieldNumber = 3;
+ public bool HasStringField {
+ get { return fooCase_ == FooOneofCase.StringField; }
+ }
+ public string StringField {
+ get { return fooCase_ == FooOneofCase.StringField ? (string) foo_ : ""; }
+ }
+
+ public static TestOptimizedForSize ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOptimizedForSize ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOptimizedForSize ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOptimizedForSize ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOptimizedForSize ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOptimizedForSize ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOptimizedForSize ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOptimizedForSize ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOptimizedForSize ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOptimizedForSize ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOptimizedForSize MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOptimizedForSize prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestOptimizedForSize, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOptimizedForSize cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOptimizedForSize result;
+
+ private TestOptimizedForSize PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOptimizedForSize original = result;
+ result = new TestOptimizedForSize();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOptimizedForSize MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.Descriptor; }
+ }
+
+ public override TestOptimizedForSize DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOptimizedForSize.DefaultInstance; }
+ }
+
+ public override TestOptimizedForSize BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasI {
+ get { return result.hasI; }
+ }
+ public int I {
+ get { return result.I; }
+ set { SetI(value); }
+ }
+ public Builder SetI(int value) {
+ PrepareBuilder();
+ result.hasI = true;
+ result.i_ = value;
+ return this;
+ }
+ public Builder ClearI() {
+ PrepareBuilder();
+ result.hasI = false;
+ result.i_ = 0;
+ return this;
+ }
+
+ public bool HasMsg {
+ get { return result.hasMsg; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage Msg {
+ get { return result.Msg; }
+ set { SetMsg(value); }
+ }
+ public Builder SetMsg(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMsg = true;
+ result.msg_ = value;
+ return this;
+ }
+ public Builder SetMsg(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMsg = true;
+ result.msg_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMsg(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMsg &&
+ result.msg_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.msg_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.msg_).MergeFrom(value).BuildPartial();
+ } else {
+ result.msg_ = value;
+ }
+ result.hasMsg = true;
+ return this;
+ }
+ public Builder ClearMsg() {
+ PrepareBuilder();
+ result.hasMsg = false;
+ result.msg_ = null;
+ return this;
+ }
+
+ public bool HasIntegerField {
+ get { return result.fooCase_ == FooOneofCase.IntegerField; }
+ }
+ public int IntegerField {
+ get { return result.fooCase_ == FooOneofCase.IntegerField ? (int) result.foo_ : 0; }
+ set { SetIntegerField(value); }
+ }
+ public Builder SetIntegerField(int value) {
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.IntegerField;
+ return this;
+ }
+ public Builder ClearIntegerField() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.IntegerField) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasStringField {
+ get { return result.fooCase_ == FooOneofCase.StringField; }
+ }
+ public string StringField {
+ get { return result.fooCase_ == FooOneofCase.StringField ? (string) result.foo_ : ""; }
+ set { SetStringField(value); }
+ }
+ public Builder SetStringField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.StringField;
+ return this;
+ }
+ public Builder ClearStringField() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.StringField) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public FooOneofCase FooCase {
+ get { return result.fooCase_; }
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.foo_ = null;
+ result.fooCase_ = FooOneofCase.None;
+ return this;
+ }
+ }
+ static TestOptimizedForSize() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestOptimizeFor.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequiredOptimizedForSize : pb::GeneratedMessage<TestRequiredOptimizedForSize, TestRequiredOptimizedForSize.Builder> {
+ private TestRequiredOptimizedForSize() { }
+ private static readonly TestRequiredOptimizedForSize defaultInstance = new TestRequiredOptimizedForSize().MakeReadOnly();
+ public static TestRequiredOptimizedForSize DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequiredOptimizedForSize DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequiredOptimizedForSize ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestOptimizeFor.internal__static_protobuf_unittest_TestRequiredOptimizedForSize__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequiredOptimizedForSize, TestRequiredOptimizedForSize.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestOptimizeFor.internal__static_protobuf_unittest_TestRequiredOptimizedForSize__FieldAccessorTable; }
+ }
+
+ public const int XFieldNumber = 1;
+ private bool hasX;
+ private int x_;
+ public bool HasX {
+ get { return hasX; }
+ }
+ public int X {
+ get { return x_; }
+ }
+
+ public static TestRequiredOptimizedForSize ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredOptimizedForSize ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOptimizedForSize ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredOptimizedForSize ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOptimizedForSize ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredOptimizedForSize ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOptimizedForSize ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequiredOptimizedForSize ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequiredOptimizedForSize ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredOptimizedForSize ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequiredOptimizedForSize MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequiredOptimizedForSize prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredOptimizedForSize, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequiredOptimizedForSize cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequiredOptimizedForSize result;
+
+ private TestRequiredOptimizedForSize PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequiredOptimizedForSize original = result;
+ result = new TestRequiredOptimizedForSize();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequiredOptimizedForSize MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.Descriptor; }
+ }
+
+ public override TestRequiredOptimizedForSize DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.DefaultInstance; }
+ }
+
+ public override TestRequiredOptimizedForSize BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasX {
+ get { return result.hasX; }
+ }
+ public int X {
+ get { return result.X; }
+ set { SetX(value); }
+ }
+ public Builder SetX(int value) {
+ PrepareBuilder();
+ result.hasX = true;
+ result.x_ = value;
+ return this;
+ }
+ public Builder ClearX() {
+ PrepareBuilder();
+ result.hasX = false;
+ result.x_ = 0;
+ return this;
+ }
+ }
+ static TestRequiredOptimizedForSize() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestOptimizeFor.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOptionalOptimizedForSize : pb::GeneratedMessage<TestOptionalOptimizedForSize, TestOptionalOptimizedForSize.Builder> {
+ private TestOptionalOptimizedForSize() { }
+ private static readonly TestOptionalOptimizedForSize defaultInstance = new TestOptionalOptimizedForSize().MakeReadOnly();
+ public static TestOptionalOptimizedForSize DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOptionalOptimizedForSize DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOptionalOptimizedForSize ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestOptimizeFor.internal__static_protobuf_unittest_TestOptionalOptimizedForSize__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOptionalOptimizedForSize, TestOptionalOptimizedForSize.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestOptimizeFor.internal__static_protobuf_unittest_TestOptionalOptimizedForSize__FieldAccessorTable; }
+ }
+
+ public const int OFieldNumber = 1;
+ private bool hasO;
+ private global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize o_;
+ public bool HasO {
+ get { return hasO; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize O {
+ get { return o_ ?? global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.DefaultInstance; }
+ }
+
+ public static TestOptionalOptimizedForSize ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOptionalOptimizedForSize ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOptionalOptimizedForSize ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOptionalOptimizedForSize ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOptionalOptimizedForSize ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOptionalOptimizedForSize ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOptionalOptimizedForSize ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOptionalOptimizedForSize ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOptionalOptimizedForSize ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOptionalOptimizedForSize ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOptionalOptimizedForSize MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOptionalOptimizedForSize prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestOptionalOptimizedForSize, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOptionalOptimizedForSize cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOptionalOptimizedForSize result;
+
+ private TestOptionalOptimizedForSize PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOptionalOptimizedForSize original = result;
+ result = new TestOptionalOptimizedForSize();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOptionalOptimizedForSize MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOptionalOptimizedForSize.Descriptor; }
+ }
+
+ public override TestOptionalOptimizedForSize DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOptionalOptimizedForSize.DefaultInstance; }
+ }
+
+ public override TestOptionalOptimizedForSize BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasO {
+ get { return result.hasO; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize O {
+ get { return result.O; }
+ set { SetO(value); }
+ }
+ public Builder SetO(global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasO = true;
+ result.o_ = value;
+ return this;
+ }
+ public Builder SetO(global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasO = true;
+ result.o_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeO(global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasO &&
+ result.o_ != global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.DefaultInstance) {
+ result.o_ = global::Google.ProtocolBuffers.TestProtos.TestRequiredOptimizedForSize.CreateBuilder(result.o_).MergeFrom(value).BuildPartial();
+ } else {
+ result.o_ = value;
+ }
+ result.hasO = true;
+ return this;
+ }
+ public Builder ClearO() {
+ PrepareBuilder();
+ result.hasO = false;
+ result.o_ = null;
+ return this;
+ }
+ }
+ static TestOptionalOptimizedForSize() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestOptimizeFor.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestProtos/UnknownEnumTest.cs b/csharp/src/ProtocolBuffers.Test/TestProtos/UnknownEnumTest.cs
new file mode 100644
index 00000000..0b7ead79
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestProtos/UnknownEnumTest.cs
@@ -0,0 +1,809 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unknown_enum_test.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnknownEnumTest {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_util_DownRevision__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.DownRevision, global::Google.ProtocolBuffers.TestProtos.DownRevision.Builder> internal__static_google_protobuf_util_DownRevision__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_util_UpRevision__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.UpRevision, global::Google.ProtocolBuffers.TestProtos.UpRevision.Builder> internal__static_google_protobuf_util_UpRevision__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnknownEnumTest() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Cidnb29nbGUvcHJvdG9idWYvdW5rbm93bl9lbnVtX3Rlc3QucHJvdG8SFGdv",
+ "b2dsZS5wcm90b2J1Zi51dGlsIr8BCgxEb3duUmV2aXNpb24SRQoFdmFsdWUY",
+ "ASABKA4yJy5nb29nbGUucHJvdG9idWYudXRpbC5Eb3duUmV2aXNpb24uRW51",
+ "bToNREVGQVVMVF9WQUxVRRI3CgZ2YWx1ZXMYAiADKA4yJy5nb29nbGUucHJv",
+ "dG9idWYudXRpbC5Eb3duUmV2aXNpb24uRW51bSIvCgRFbnVtEhEKDURFRkFV",
+ "TFRfVkFMVUUQAhIUChBOT05ERUZBVUxUX1ZBTFVFEAMi6gEKClVwUmV2aXNp",
+ "b24SQwoFdmFsdWUYASABKA4yJS5nb29nbGUucHJvdG9idWYudXRpbC5VcFJl",
+ "dmlzaW9uLkVudW06DURFRkFVTFRfVkFMVUUSNQoGdmFsdWVzGAIgAygOMiUu",
+ "Z29vZ2xlLnByb3RvYnVmLnV0aWwuVXBSZXZpc2lvbi5FbnVtImAKBEVudW0S",
+ "EQoNREVGQVVMVF9WQUxVRRACEhQKEE5PTkRFRkFVTFRfVkFMVUUQAxINCglO",
+ "RVdfVkFMVUUQBBIPCgtORVdfVkFMVUVfMhAFEg8KC05FV19WQUxVRV8zEAZC",
+ "JKoCIUdvb2dsZS5Qcm90b2NvbEJ1ZmZlcnMuVGVzdFByb3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_google_protobuf_util_DownRevision__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_google_protobuf_util_DownRevision__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.DownRevision, global::Google.ProtocolBuffers.TestProtos.DownRevision.Builder>(internal__static_google_protobuf_util_DownRevision__Descriptor,
+ new string[] { "Value", "Values", });
+ internal__static_google_protobuf_util_UpRevision__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_google_protobuf_util_UpRevision__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.UpRevision, global::Google.ProtocolBuffers.TestProtos.UpRevision.Builder>(internal__static_google_protobuf_util_UpRevision__Descriptor,
+ new string[] { "Value", "Values", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class DownRevision : pb::GeneratedMessage<DownRevision, DownRevision.Builder> {
+ private DownRevision() { }
+ private static readonly DownRevision defaultInstance = new DownRevision().MakeReadOnly();
+ private static readonly string[] _downRevisionFieldNames = new string[] { "value", "values" };
+ private static readonly uint[] _downRevisionFieldTags = new uint[] { 8, 16 };
+ public static DownRevision DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DownRevision DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override DownRevision ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnknownEnumTest.internal__static_google_protobuf_util_DownRevision__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DownRevision, DownRevision.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnknownEnumTest.internal__static_google_protobuf_util_DownRevision__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum Enum {
+ DEFAULT_VALUE = 2,
+ NONDEFAULT_VALUE = 3,
+ }
+
+ }
+ #endregion
+
+ public const int ValueFieldNumber = 1;
+ private bool hasValue;
+ private global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum value_ = global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum.DEFAULT_VALUE;
+ public bool HasValue {
+ get { return hasValue; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum Value {
+ get { return value_; }
+ }
+
+ public const int ValuesFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum> values_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum> ValuesList {
+ get { return pbc::Lists.AsReadOnly(values_); }
+ }
+ public int ValuesCount {
+ get { return values_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum GetValues(int index) {
+ return values_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _downRevisionFieldNames;
+ if (hasValue) {
+ output.WriteEnum(1, field_names[0], (int) Value, Value);
+ }
+ if (values_.Count > 0) {
+ output.WriteEnumArray(2, field_names[1], values_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasValue) {
+ size += pb::CodedOutputStream.ComputeEnumSize(1, (int) Value);
+ }
+ {
+ int dataSize = 0;
+ if (values_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum element in values_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1 * values_.Count;
+ }
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static DownRevision ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DownRevision ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DownRevision ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DownRevision ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DownRevision ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DownRevision ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DownRevision ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DownRevision ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DownRevision ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DownRevision ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private DownRevision MakeReadOnly() {
+ values_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DownRevision prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<DownRevision, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(DownRevision cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private DownRevision result;
+
+ private DownRevision PrepareBuilder() {
+ if (resultIsReadOnly) {
+ DownRevision original = result;
+ result = new DownRevision();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override DownRevision MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.DownRevision.Descriptor; }
+ }
+
+ public override DownRevision DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.DownRevision.DefaultInstance; }
+ }
+
+ public override DownRevision BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DownRevision) {
+ return MergeFrom((DownRevision) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DownRevision other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.DownRevision.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasValue) {
+ Value = other.Value;
+ }
+ if (other.values_.Count != 0) {
+ result.values_.Add(other.values_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_downRevisionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _downRevisionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ object unknown;
+ if(input.ReadEnum(ref result.value_, out unknown)) {
+ result.hasValue = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(1, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 18:
+ case 16: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum>(tag, field_name, result.values_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(2, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasValue {
+ get { return result.hasValue; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum Value {
+ get { return result.Value; }
+ set { SetValue(value); }
+ }
+ public Builder SetValue(global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum value) {
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = value;
+ return this;
+ }
+ public Builder ClearValue() {
+ PrepareBuilder();
+ result.hasValue = false;
+ result.value_ = global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum.DEFAULT_VALUE;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum> ValuesList {
+ get { return PrepareBuilder().values_; }
+ }
+ public int ValuesCount {
+ get { return result.ValuesCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum GetValues(int index) {
+ return result.GetValues(index);
+ }
+ public Builder SetValues(int index, global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum value) {
+ PrepareBuilder();
+ result.values_[index] = value;
+ return this;
+ }
+ public Builder AddValues(global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum value) {
+ PrepareBuilder();
+ result.values_.Add(value);
+ return this;
+ }
+ public Builder AddRangeValues(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.DownRevision.Types.Enum> values) {
+ PrepareBuilder();
+ result.values_.Add(values);
+ return this;
+ }
+ public Builder ClearValues() {
+ PrepareBuilder();
+ result.values_.Clear();
+ return this;
+ }
+ }
+ static DownRevision() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnknownEnumTest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class UpRevision : pb::GeneratedMessage<UpRevision, UpRevision.Builder> {
+ private UpRevision() { }
+ private static readonly UpRevision defaultInstance = new UpRevision().MakeReadOnly();
+ private static readonly string[] _upRevisionFieldNames = new string[] { "value", "values" };
+ private static readonly uint[] _upRevisionFieldTags = new uint[] { 8, 16 };
+ public static UpRevision DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override UpRevision DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override UpRevision ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnknownEnumTest.internal__static_google_protobuf_util_UpRevision__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<UpRevision, UpRevision.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnknownEnumTest.internal__static_google_protobuf_util_UpRevision__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum Enum {
+ DEFAULT_VALUE = 2,
+ NONDEFAULT_VALUE = 3,
+ NEW_VALUE = 4,
+ NEW_VALUE_2 = 5,
+ NEW_VALUE_3 = 6,
+ }
+
+ }
+ #endregion
+
+ public const int ValueFieldNumber = 1;
+ private bool hasValue;
+ private global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum value_ = global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum.DEFAULT_VALUE;
+ public bool HasValue {
+ get { return hasValue; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum Value {
+ get { return value_; }
+ }
+
+ public const int ValuesFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum> values_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum> ValuesList {
+ get { return pbc::Lists.AsReadOnly(values_); }
+ }
+ public int ValuesCount {
+ get { return values_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum GetValues(int index) {
+ return values_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _upRevisionFieldNames;
+ if (hasValue) {
+ output.WriteEnum(1, field_names[0], (int) Value, Value);
+ }
+ if (values_.Count > 0) {
+ output.WriteEnumArray(2, field_names[1], values_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasValue) {
+ size += pb::CodedOutputStream.ComputeEnumSize(1, (int) Value);
+ }
+ {
+ int dataSize = 0;
+ if (values_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum element in values_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1 * values_.Count;
+ }
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static UpRevision ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static UpRevision ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static UpRevision ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static UpRevision ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static UpRevision ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static UpRevision ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static UpRevision ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static UpRevision ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static UpRevision ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static UpRevision ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private UpRevision MakeReadOnly() {
+ values_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(UpRevision prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<UpRevision, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(UpRevision cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private UpRevision result;
+
+ private UpRevision PrepareBuilder() {
+ if (resultIsReadOnly) {
+ UpRevision original = result;
+ result = new UpRevision();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override UpRevision MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.UpRevision.Descriptor; }
+ }
+
+ public override UpRevision DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.UpRevision.DefaultInstance; }
+ }
+
+ public override UpRevision BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is UpRevision) {
+ return MergeFrom((UpRevision) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(UpRevision other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.UpRevision.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasValue) {
+ Value = other.Value;
+ }
+ if (other.values_.Count != 0) {
+ result.values_.Add(other.values_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_upRevisionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _upRevisionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ object unknown;
+ if(input.ReadEnum(ref result.value_, out unknown)) {
+ result.hasValue = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(1, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 18:
+ case 16: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum>(tag, field_name, result.values_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(2, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasValue {
+ get { return result.hasValue; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum Value {
+ get { return result.Value; }
+ set { SetValue(value); }
+ }
+ public Builder SetValue(global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum value) {
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = value;
+ return this;
+ }
+ public Builder ClearValue() {
+ PrepareBuilder();
+ result.hasValue = false;
+ result.value_ = global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum.DEFAULT_VALUE;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum> ValuesList {
+ get { return PrepareBuilder().values_; }
+ }
+ public int ValuesCount {
+ get { return result.ValuesCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum GetValues(int index) {
+ return result.GetValues(index);
+ }
+ public Builder SetValues(int index, global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum value) {
+ PrepareBuilder();
+ result.values_[index] = value;
+ return this;
+ }
+ public Builder AddValues(global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum value) {
+ PrepareBuilder();
+ result.values_.Add(value);
+ return this;
+ }
+ public Builder AddRangeValues(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.UpRevision.Types.Enum> values) {
+ PrepareBuilder();
+ result.values_.Add(values);
+ return this;
+ }
+ public Builder ClearValues() {
+ PrepareBuilder();
+ result.values_.Clear();
+ return this;
+ }
+ }
+ static UpRevision() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnknownEnumTest.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers.Test/TestReaderForUrlEncoded.cs b/csharp/src/ProtocolBuffers.Test/TestReaderForUrlEncoded.cs
new file mode 100644
index 00000000..f1d2bfad
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestReaderForUrlEncoded.cs
@@ -0,0 +1,83 @@
+using System;
+using System.IO;
+using System.Text;
+using Google.ProtocolBuffers.TestProtos;
+using Google.ProtocolBuffers.Serialization.Http;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class TestReaderForUrlEncoded
+ {
+ [Test]
+ public void Example_FromQueryString()
+ {
+ Uri sampleUri = new Uri("http://sample.com/Path/File.ext?text=two+three%20four&valid=true&numbers=1&numbers=2", UriKind.Absolute);
+
+ ICodedInputStream input = FormUrlEncodedReader.CreateInstance(sampleUri.Query);
+
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ builder.MergeFrom(input);
+
+ TestXmlMessage message = builder.Build();
+ Assert.AreEqual(true, message.Valid);
+ Assert.AreEqual("two three four", message.Text);
+ Assert.AreEqual(2, message.NumbersCount);
+ Assert.AreEqual(1, message.NumbersList[0]);
+ Assert.AreEqual(2, message.NumbersList[1]);
+ }
+
+ [Test]
+ public void Example_FromFormData()
+ {
+ Stream rawPost = new MemoryStream(Encoding.UTF8.GetBytes("text=two+three%20four&valid=true&numbers=1&numbers=2"), false);
+
+ ICodedInputStream input = FormUrlEncodedReader.CreateInstance(rawPost);
+
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ builder.MergeFrom(input);
+
+ TestXmlMessage message = builder.Build();
+ Assert.AreEqual(true, message.Valid);
+ Assert.AreEqual("two three four", message.Text);
+ Assert.AreEqual(2, message.NumbersCount);
+ Assert.AreEqual(1, message.NumbersList[0]);
+ Assert.AreEqual(2, message.NumbersList[1]);
+ }
+
+ [Test]
+ public void TestEmptyValues()
+ {
+ ICodedInputStream input = FormUrlEncodedReader.CreateInstance("valid=true&text=&numbers=1");
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ builder.MergeFrom(input);
+
+ Assert.IsTrue(builder.Valid);
+ Assert.IsTrue(builder.HasText);
+ Assert.AreEqual("", builder.Text);
+ Assert.AreEqual(1, builder.NumbersCount);
+ Assert.AreEqual(1, builder.NumbersList[0]);
+ }
+
+ [Test]
+ public void TestNoValue()
+ {
+ ICodedInputStream input = FormUrlEncodedReader.CreateInstance("valid=true&text&numbers=1");
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ builder.MergeFrom(input);
+
+ Assert.IsTrue(builder.Valid);
+ Assert.IsTrue(builder.HasText);
+ Assert.AreEqual("", builder.Text);
+ Assert.AreEqual(1, builder.NumbersCount);
+ Assert.AreEqual(1, builder.NumbersList[0]);
+ }
+
+ [Test]
+ public void FormUrlEncodedReaderDoesNotSupportChildren()
+ {
+ ICodedInputStream input = FormUrlEncodedReader.CreateInstance("child=uh0");
+ Assert.Throws<NotSupportedException>(() => TestXmlMessage.CreateBuilder().MergeFrom(input));
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/TestResources.cs b/csharp/src/ProtocolBuffers.Test/TestResources.cs
new file mode 100644
index 00000000..602874f7
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestResources.cs
@@ -0,0 +1,301 @@
+namespace Google.ProtocolBuffers
+{
+ internal class TestResources
+ {
+ #region golden_message
+ internal static byte[] golden_message
+ {
+ get
+ {
+ return System.Convert.FromBase64String(@"
+CGUQZhhnIGgo0gEw1AE9awAAAEFsAAAAAAAAAE1tAAAAUW4AAAAAAAAAXQAA3kJhAAAAAAAAXEBo
+AXIDMTE1egMxMTaDAYgBdYQBkgECCHaaAQIId6IBAgh4qAEDsAEGuAEJwgEDMTI0ygEDMTI1+AHJ
+AfgBrQKAAsoBgAKuAogCywGIAq8CkALMAZACsAKYApoDmALiBKACnAOgAuQErQLPAAAArQIzAQAA
+sQLQAAAAAAAAALECNAEAAAAAAAC9AtEAAAC9AjUBAADBAtIAAAAAAAAAwQI2AQAAAAAAAM0CAABT
+Q80CAICbQ9ECAAAAAACAakDRAgAAAAAAgHNA2AIB2AIA4gIDMjE14gIDMzE16gIDMjE26gIDMzE2
+8wL4AtkB9ALzAvgCvQL0AoIDAwjaAYIDAwi+AooDAwjbAYoDAwi/ApIDAwjcAZIDAwjAApgDApgD
+A6ADBaADBqgDCKgDCbIDAzIyNLIDAzMyNLoDAzIyNboDAzMyNegDkQPwA5ID+AOTA4AElAOIBKoG
+kASsBp0ElwEAAKEEmAEAAAAAAACtBJkBAACxBJoBAAAAAAAAvQQAgM1DwQQAAAAAAMB5QMgEANIE
+AzQxNdoEAzQxNogFAZAFBJgFB6IFAzQyNKoFAzQyNZIHAzYwNA==
+");
+ }
+ }
+ #endregion
+
+ #region golden_packed_fields_message
+ internal static byte[] golden_packed_fields_message
+ {
+ get
+ {
+ return System.Convert.FromBase64String(@"
+0gUE2QS9BdoFBNoEvgXiBQTbBL8F6gUE3ATABfIFBLoJggv6BQS8CYQLggYIXwIAAMMCAACKBhBg
+AgAAAAAAAMQCAAAAAAAAkgYIYQIAAMUCAACaBhBiAgAAAAAAAMYCAAAAAAAAogYIAMAYRADAMUSq
+BhAAAAAAACCDQAAAAAAAQIZAsgYCAQC6BgIFBg==
+");
+ }
+ }
+ #endregion
+
+ #region text_format_unittest_data
+ internal static string text_format_unittest_data
+ {
+ get
+ {
+ return @"
+optional_int32: 101
+optional_int64: 102
+optional_uint32: 103
+optional_uint64: 104
+optional_sint32: 105
+optional_sint64: 106
+optional_fixed32: 107
+optional_fixed64: 108
+optional_sfixed32: 109
+optional_sfixed64: 110
+optional_float: 111
+optional_double: 112
+optional_bool: true
+optional_string: ""115""
+optional_bytes: ""116""
+OptionalGroup {
+ a: 117
+}
+optional_nested_message {
+ bb: 118
+}
+optional_foreign_message {
+ c: 119
+}
+optional_import_message {
+ d: 120
+}
+optional_nested_enum: BAZ
+optional_foreign_enum: FOREIGN_BAZ
+optional_import_enum: IMPORT_BAZ
+optional_string_piece: ""124""
+optional_cord: ""125""
+repeated_int32: 201
+repeated_int32: 301
+repeated_int64: 202
+repeated_int64: 302
+repeated_uint32: 203
+repeated_uint32: 303
+repeated_uint64: 204
+repeated_uint64: 304
+repeated_sint32: 205
+repeated_sint32: 305
+repeated_sint64: 206
+repeated_sint64: 306
+repeated_fixed32: 207
+repeated_fixed32: 307
+repeated_fixed64: 208
+repeated_fixed64: 308
+repeated_sfixed32: 209
+repeated_sfixed32: 309
+repeated_sfixed64: 210
+repeated_sfixed64: 310
+repeated_float: 211
+repeated_float: 311
+repeated_double: 212
+repeated_double: 312
+repeated_bool: true
+repeated_bool: false
+repeated_string: ""215""
+repeated_string: ""315""
+repeated_bytes: ""216""
+repeated_bytes: ""316""
+RepeatedGroup {
+ a: 217
+}
+RepeatedGroup {
+ a: 317
+}
+repeated_nested_message {
+ bb: 218
+}
+repeated_nested_message {
+ bb: 318
+}
+repeated_foreign_message {
+ c: 219
+}
+repeated_foreign_message {
+ c: 319
+}
+repeated_import_message {
+ d: 220
+}
+repeated_import_message {
+ d: 320
+}
+repeated_nested_enum: BAR
+repeated_nested_enum: BAZ
+repeated_foreign_enum: FOREIGN_BAR
+repeated_foreign_enum: FOREIGN_BAZ
+repeated_import_enum: IMPORT_BAR
+repeated_import_enum: IMPORT_BAZ
+repeated_string_piece: ""224""
+repeated_string_piece: ""324""
+repeated_cord: ""225""
+repeated_cord: ""325""
+default_int32: 401
+default_int64: 402
+default_uint32: 403
+default_uint64: 404
+default_sint32: 405
+default_sint64: 406
+default_fixed32: 407
+default_fixed64: 408
+default_sfixed32: 409
+default_sfixed64: 410
+default_float: 411
+default_double: 412
+default_bool: false
+default_string: ""415""
+default_bytes: ""416""
+default_nested_enum: FOO
+default_foreign_enum: FOREIGN_FOO
+default_import_enum: IMPORT_FOO
+default_string_piece: ""424""
+default_cord: ""425""
+oneof_bytes: ""604""
+
+";
+ }
+ }
+ #endregion
+
+ #region text_format_unittest_extensions_data
+ internal static string text_format_unittest_extensions_data
+ {
+ get
+ {
+ return @"
+[protobuf_unittest.optional_int32_extension]: 101
+[protobuf_unittest.optional_int64_extension]: 102
+[protobuf_unittest.optional_uint32_extension]: 103
+[protobuf_unittest.optional_uint64_extension]: 104
+[protobuf_unittest.optional_sint32_extension]: 105
+[protobuf_unittest.optional_sint64_extension]: 106
+[protobuf_unittest.optional_fixed32_extension]: 107
+[protobuf_unittest.optional_fixed64_extension]: 108
+[protobuf_unittest.optional_sfixed32_extension]: 109
+[protobuf_unittest.optional_sfixed64_extension]: 110
+[protobuf_unittest.optional_float_extension]: 111
+[protobuf_unittest.optional_double_extension]: 112
+[protobuf_unittest.optional_bool_extension]: true
+[protobuf_unittest.optional_string_extension]: ""115""
+[protobuf_unittest.optional_bytes_extension]: ""116""
+[protobuf_unittest.optionalgroup_extension] {
+ a: 117
+}
+[protobuf_unittest.optional_nested_message_extension] {
+ bb: 118
+}
+[protobuf_unittest.optional_foreign_message_extension] {
+ c: 119
+}
+[protobuf_unittest.optional_import_message_extension] {
+ d: 120
+}
+[protobuf_unittest.optional_nested_enum_extension]: BAZ
+[protobuf_unittest.optional_foreign_enum_extension]: FOREIGN_BAZ
+[protobuf_unittest.optional_import_enum_extension]: IMPORT_BAZ
+[protobuf_unittest.optional_string_piece_extension]: ""124""
+[protobuf_unittest.optional_cord_extension]: ""125""
+[protobuf_unittest.repeated_int32_extension]: 201
+[protobuf_unittest.repeated_int32_extension]: 301
+[protobuf_unittest.repeated_int64_extension]: 202
+[protobuf_unittest.repeated_int64_extension]: 302
+[protobuf_unittest.repeated_uint32_extension]: 203
+[protobuf_unittest.repeated_uint32_extension]: 303
+[protobuf_unittest.repeated_uint64_extension]: 204
+[protobuf_unittest.repeated_uint64_extension]: 304
+[protobuf_unittest.repeated_sint32_extension]: 205
+[protobuf_unittest.repeated_sint32_extension]: 305
+[protobuf_unittest.repeated_sint64_extension]: 206
+[protobuf_unittest.repeated_sint64_extension]: 306
+[protobuf_unittest.repeated_fixed32_extension]: 207
+[protobuf_unittest.repeated_fixed32_extension]: 307
+[protobuf_unittest.repeated_fixed64_extension]: 208
+[protobuf_unittest.repeated_fixed64_extension]: 308
+[protobuf_unittest.repeated_sfixed32_extension]: 209
+[protobuf_unittest.repeated_sfixed32_extension]: 309
+[protobuf_unittest.repeated_sfixed64_extension]: 210
+[protobuf_unittest.repeated_sfixed64_extension]: 310
+[protobuf_unittest.repeated_float_extension]: 211
+[protobuf_unittest.repeated_float_extension]: 311
+[protobuf_unittest.repeated_double_extension]: 212
+[protobuf_unittest.repeated_double_extension]: 312
+[protobuf_unittest.repeated_bool_extension]: true
+[protobuf_unittest.repeated_bool_extension]: false
+[protobuf_unittest.repeated_string_extension]: ""215""
+[protobuf_unittest.repeated_string_extension]: ""315""
+[protobuf_unittest.repeated_bytes_extension]: ""216""
+[protobuf_unittest.repeated_bytes_extension]: ""316""
+[protobuf_unittest.repeatedgroup_extension] {
+ a: 217
+}
+[protobuf_unittest.repeatedgroup_extension] {
+ a: 317
+}
+[protobuf_unittest.repeated_nested_message_extension] {
+ bb: 218
+}
+[protobuf_unittest.repeated_nested_message_extension] {
+ bb: 318
+}
+[protobuf_unittest.repeated_foreign_message_extension] {
+ c: 219
+}
+[protobuf_unittest.repeated_foreign_message_extension] {
+ c: 319
+}
+[protobuf_unittest.repeated_import_message_extension] {
+ d: 220
+}
+[protobuf_unittest.repeated_import_message_extension] {
+ d: 320
+}
+[protobuf_unittest.repeated_nested_enum_extension]: BAR
+[protobuf_unittest.repeated_nested_enum_extension]: BAZ
+[protobuf_unittest.repeated_foreign_enum_extension]: FOREIGN_BAR
+[protobuf_unittest.repeated_foreign_enum_extension]: FOREIGN_BAZ
+[protobuf_unittest.repeated_import_enum_extension]: IMPORT_BAR
+[protobuf_unittest.repeated_import_enum_extension]: IMPORT_BAZ
+[protobuf_unittest.repeated_string_piece_extension]: ""224""
+[protobuf_unittest.repeated_string_piece_extension]: ""324""
+[protobuf_unittest.repeated_cord_extension]: ""225""
+[protobuf_unittest.repeated_cord_extension]: ""325""
+[protobuf_unittest.default_int32_extension]: 401
+[protobuf_unittest.default_int64_extension]: 402
+[protobuf_unittest.default_uint32_extension]: 403
+[protobuf_unittest.default_uint64_extension]: 404
+[protobuf_unittest.default_sint32_extension]: 405
+[protobuf_unittest.default_sint64_extension]: 406
+[protobuf_unittest.default_fixed32_extension]: 407
+[protobuf_unittest.default_fixed64_extension]: 408
+[protobuf_unittest.default_sfixed32_extension]: 409
+[protobuf_unittest.default_sfixed64_extension]: 410
+[protobuf_unittest.default_float_extension]: 411
+[protobuf_unittest.default_double_extension]: 412
+[protobuf_unittest.default_bool_extension]: false
+[protobuf_unittest.default_string_extension]: ""415""
+[protobuf_unittest.default_bytes_extension]: ""416""
+[protobuf_unittest.default_nested_enum_extension]: FOO
+[protobuf_unittest.default_foreign_enum_extension]: FOREIGN_FOO
+[protobuf_unittest.default_import_enum_extension]: IMPORT_FOO
+[protobuf_unittest.default_string_piece_extension]: ""424""
+[protobuf_unittest.default_cord_extension]: ""425""
+[protobuf_unittest.oneof_uint32_extension]: 601
+[protobuf_unittest.oneof_nested_message_extension] {
+ bb: 602
+}
+[protobuf_unittest.oneof_string_extension]: ""603""
+[protobuf_unittest.oneof_bytes_extension]: ""604""
+";
+ }
+ }
+ #endregion
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/TestUtil.cs b/csharp/src/ProtocolBuffers.Test/TestUtil.cs
new file mode 100644
index 00000000..c23c43f6
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestUtil.cs
@@ -0,0 +1,1862 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using System.Threading;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ internal static class TestUtil
+ {
+ private static ByteString goldenMessage = null;
+
+ internal static ByteString GoldenMessage
+ {
+ get
+ {
+ if (goldenMessage == null)
+ {
+ goldenMessage = ByteString.CopyFrom(TestResources.golden_message);
+ }
+ return goldenMessage;
+ }
+ }
+
+ private static ByteString goldenPackedFieldsMessage = null;
+
+ /// <summary>
+ /// Get the bytes of the "golden packed fields message". This is a serialized
+ /// TestPackedTypes with all fields set as they would be by SetPackedFields,
+ /// but it is loaded from a file on disk rather than generated dynamically.
+ /// The file is actually generated by C++ code, so testing against it verifies compatibility
+ /// with C++.
+ /// </summary>
+ public static ByteString GetGoldenPackedFieldsMessage()
+ {
+ if (goldenPackedFieldsMessage == null)
+ {
+ goldenPackedFieldsMessage = ByteString.CopyFrom(TestResources.golden_packed_fields_message);
+ }
+ return goldenPackedFieldsMessage;
+ }
+
+ /// <summary>
+ /// Creates an unmodifiable ExtensionRegistry containing all the extensions
+ /// of TestAllExtensions.
+ /// </summary>
+ /// <returns></returns>
+ internal static ExtensionRegistry CreateExtensionRegistry()
+ {
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry.AsReadOnly();
+ }
+
+ /// <summary>
+ /// Registers all of the extensions in TestAllExtensions with the given
+ /// ExtensionRegistry.
+ /// </summary>
+ internal static void RegisterAllExtensions(ExtensionRegistry registry)
+ {
+ registry.Add(Unittest.OptionalInt32Extension);
+ registry.Add(Unittest.OptionalInt64Extension);
+ registry.Add(Unittest.OptionalUint32Extension);
+ registry.Add(Unittest.OptionalUint64Extension);
+ registry.Add(Unittest.OptionalSint32Extension);
+ registry.Add(Unittest.OptionalSint64Extension);
+ registry.Add(Unittest.OptionalFixed32Extension);
+ registry.Add(Unittest.OptionalFixed64Extension);
+ registry.Add(Unittest.OptionalSfixed32Extension);
+ registry.Add(Unittest.OptionalSfixed64Extension);
+ registry.Add(Unittest.OptionalFloatExtension);
+ registry.Add(Unittest.OptionalDoubleExtension);
+ registry.Add(Unittest.OptionalBoolExtension);
+ registry.Add(Unittest.OptionalStringExtension);
+ registry.Add(Unittest.OptionalBytesExtension);
+ registry.Add(Unittest.OptionalGroupExtension);
+ registry.Add(Unittest.OptionalNestedMessageExtension);
+ registry.Add(Unittest.OptionalForeignMessageExtension);
+ registry.Add(Unittest.OptionalImportMessageExtension);
+ registry.Add(Unittest.OptionalNestedEnumExtension);
+ registry.Add(Unittest.OptionalForeignEnumExtension);
+ registry.Add(Unittest.OptionalImportEnumExtension);
+ registry.Add(Unittest.OptionalStringPieceExtension);
+ registry.Add(Unittest.OptionalCordExtension);
+
+ registry.Add(Unittest.RepeatedInt32Extension);
+ registry.Add(Unittest.RepeatedInt64Extension);
+ registry.Add(Unittest.RepeatedUint32Extension);
+ registry.Add(Unittest.RepeatedUint64Extension);
+ registry.Add(Unittest.RepeatedSint32Extension);
+ registry.Add(Unittest.RepeatedSint64Extension);
+ registry.Add(Unittest.RepeatedFixed32Extension);
+ registry.Add(Unittest.RepeatedFixed64Extension);
+ registry.Add(Unittest.RepeatedSfixed32Extension);
+ registry.Add(Unittest.RepeatedSfixed64Extension);
+ registry.Add(Unittest.RepeatedFloatExtension);
+ registry.Add(Unittest.RepeatedDoubleExtension);
+ registry.Add(Unittest.RepeatedBoolExtension);
+ registry.Add(Unittest.RepeatedStringExtension);
+ registry.Add(Unittest.RepeatedBytesExtension);
+ registry.Add(Unittest.RepeatedGroupExtension);
+ registry.Add(Unittest.RepeatedNestedMessageExtension);
+ registry.Add(Unittest.RepeatedForeignMessageExtension);
+ registry.Add(Unittest.RepeatedImportMessageExtension);
+ registry.Add(Unittest.RepeatedNestedEnumExtension);
+ registry.Add(Unittest.RepeatedForeignEnumExtension);
+ registry.Add(Unittest.RepeatedImportEnumExtension);
+ registry.Add(Unittest.RepeatedStringPieceExtension);
+ registry.Add(Unittest.RepeatedCordExtension);
+
+ registry.Add(Unittest.DefaultInt32Extension);
+ registry.Add(Unittest.DefaultInt64Extension);
+ registry.Add(Unittest.DefaultUint32Extension);
+ registry.Add(Unittest.DefaultUint64Extension);
+ registry.Add(Unittest.DefaultSint32Extension);
+ registry.Add(Unittest.DefaultSint64Extension);
+ registry.Add(Unittest.DefaultFixed32Extension);
+ registry.Add(Unittest.DefaultFixed64Extension);
+ registry.Add(Unittest.DefaultSfixed32Extension);
+ registry.Add(Unittest.DefaultSfixed64Extension);
+ registry.Add(Unittest.DefaultFloatExtension);
+ registry.Add(Unittest.DefaultDoubleExtension);
+ registry.Add(Unittest.DefaultBoolExtension);
+ registry.Add(Unittest.DefaultStringExtension);
+ registry.Add(Unittest.DefaultBytesExtension);
+ registry.Add(Unittest.DefaultNestedEnumExtension);
+ registry.Add(Unittest.DefaultForeignEnumExtension);
+ registry.Add(Unittest.DefaultImportEnumExtension);
+ registry.Add(Unittest.DefaultStringPieceExtension);
+ registry.Add(Unittest.DefaultCordExtension);
+
+ registry.Add(Unittest.PackedInt32Extension);
+ registry.Add(Unittest.PackedInt64Extension);
+ registry.Add(Unittest.PackedUint32Extension);
+ registry.Add(Unittest.PackedUint64Extension);
+ registry.Add(Unittest.PackedSint32Extension);
+ registry.Add(Unittest.PackedSint64Extension);
+ registry.Add(Unittest.PackedFixed32Extension);
+ registry.Add(Unittest.PackedFixed64Extension);
+ registry.Add(Unittest.PackedSfixed32Extension);
+ registry.Add(Unittest.PackedSfixed64Extension);
+ registry.Add(Unittest.PackedFloatExtension);
+ registry.Add(Unittest.PackedDoubleExtension);
+ registry.Add(Unittest.PackedBoolExtension);
+ registry.Add(Unittest.PackedEnumExtension);
+
+ registry.Add(Unittest.OneofUint32Extension);
+ registry.Add(Unittest.OneofNestedMessageExtension);
+ registry.Add(Unittest.OneofStringExtension);
+ registry.Add(Unittest.OneofBytesExtension);
+ }
+
+ /// <summary>
+ /// Helper to convert a String to ByteString.
+ /// </summary>
+ internal static ByteString ToBytes(String str)
+ {
+ return ByteString.CopyFrom(Encoding.UTF8.GetBytes(str));
+ }
+
+ internal static TestAllTypes GetAllSet()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ SetAllFields(builder);
+ return builder.Build();
+ }
+
+ /// <summary>
+ /// Sets every field of the specified message to the values expected by
+ /// AssertAllFieldsSet.
+ /// </summary>
+ internal static void SetAllFields(TestAllTypes.Builder message)
+ {
+ message.SetOptionalInt32(101);
+ message.SetOptionalInt64(102);
+ message.SetOptionalUint32(103);
+ message.SetOptionalUint64(104);
+ message.SetOptionalSint32(105);
+ message.SetOptionalSint64(106);
+ message.SetOptionalFixed32(107);
+ message.SetOptionalFixed64(108);
+ message.SetOptionalSfixed32(109);
+ message.SetOptionalSfixed64(110);
+ message.SetOptionalFloat(111);
+ message.SetOptionalDouble(112);
+ message.SetOptionalBool(true);
+ message.SetOptionalString("115");
+ message.SetOptionalBytes(ToBytes("116"));
+
+ message.SetOptionalGroup(TestAllTypes.Types.OptionalGroup.CreateBuilder().SetA(117).Build());
+ message.SetOptionalNestedMessage(TestAllTypes.Types.NestedMessage.CreateBuilder().SetBb(118).Build());
+ message.SetOptionalForeignMessage(ForeignMessage.CreateBuilder().SetC(119).Build());
+ message.SetOptionalImportMessage(ImportMessage.CreateBuilder().SetD(120).Build());
+
+ message.SetOptionalNestedEnum(TestAllTypes.Types.NestedEnum.BAZ);
+ message.SetOptionalForeignEnum(ForeignEnum.FOREIGN_BAZ);
+ message.SetOptionalImportEnum(ImportEnum.IMPORT_BAZ);
+
+ message.SetOptionalStringPiece("124");
+ message.SetOptionalCord("125");
+
+ // -----------------------------------------------------------------
+
+ message.AddRepeatedInt32(201);
+ message.AddRepeatedInt64(202);
+ message.AddRepeatedUint32(203);
+ message.AddRepeatedUint64(204);
+ message.AddRepeatedSint32(205);
+ message.AddRepeatedSint64(206);
+ message.AddRepeatedFixed32(207);
+ message.AddRepeatedFixed64(208);
+ message.AddRepeatedSfixed32(209);
+ message.AddRepeatedSfixed64(210);
+ message.AddRepeatedFloat(211);
+ message.AddRepeatedDouble(212);
+ message.AddRepeatedBool(true);
+ message.AddRepeatedString("215");
+ message.AddRepeatedBytes(ToBytes("216"));
+
+ message.AddRepeatedGroup(TestAllTypes.Types.RepeatedGroup.CreateBuilder().SetA(217).Build());
+ message.AddRepeatedNestedMessage(TestAllTypes.Types.NestedMessage.CreateBuilder().SetBb(218).Build());
+ message.AddRepeatedForeignMessage(ForeignMessage.CreateBuilder().SetC(219).Build());
+ message.AddRepeatedImportMessage(ImportMessage.CreateBuilder().SetD(220).Build());
+
+ message.AddRepeatedNestedEnum(TestAllTypes.Types.NestedEnum.BAR);
+ message.AddRepeatedForeignEnum(ForeignEnum.FOREIGN_BAR);
+ message.AddRepeatedImportEnum(ImportEnum.IMPORT_BAR);
+
+ message.AddRepeatedStringPiece("224");
+ message.AddRepeatedCord("225");
+
+ // Add a second one of each field.
+ message.AddRepeatedInt32(301);
+ message.AddRepeatedInt64(302);
+ message.AddRepeatedUint32(303);
+ message.AddRepeatedUint64(304);
+ message.AddRepeatedSint32(305);
+ message.AddRepeatedSint64(306);
+ message.AddRepeatedFixed32(307);
+ message.AddRepeatedFixed64(308);
+ message.AddRepeatedSfixed32(309);
+ message.AddRepeatedSfixed64(310);
+ message.AddRepeatedFloat(311);
+ message.AddRepeatedDouble(312);
+ message.AddRepeatedBool(false);
+ message.AddRepeatedString("315");
+ message.AddRepeatedBytes(ToBytes("316"));
+
+ message.AddRepeatedGroup(TestAllTypes.Types.RepeatedGroup.CreateBuilder().SetA(317).Build());
+ message.AddRepeatedNestedMessage(TestAllTypes.Types.NestedMessage.CreateBuilder().SetBb(318).Build());
+ message.AddRepeatedForeignMessage(ForeignMessage.CreateBuilder().SetC(319).Build());
+ message.AddRepeatedImportMessage(ImportMessage.CreateBuilder().SetD(320).Build());
+
+ message.AddRepeatedNestedEnum(TestAllTypes.Types.NestedEnum.BAZ);
+ message.AddRepeatedForeignEnum(ForeignEnum.FOREIGN_BAZ);
+ message.AddRepeatedImportEnum(ImportEnum.IMPORT_BAZ);
+
+ message.AddRepeatedStringPiece("324");
+ message.AddRepeatedCord("325");
+
+ // -----------------------------------------------------------------
+
+ message.SetDefaultInt32(401);
+ message.SetDefaultInt64(402);
+ message.SetDefaultUint32(403);
+ message.SetDefaultUint64(404);
+ message.SetDefaultSint32(405);
+ message.SetDefaultSint64(406);
+ message.SetDefaultFixed32(407);
+ message.SetDefaultFixed64(408);
+ message.SetDefaultSfixed32(409);
+ message.SetDefaultSfixed64(410);
+ message.SetDefaultFloat(411);
+ message.SetDefaultDouble(412);
+ message.SetDefaultBool(false);
+ message.SetDefaultString("415");
+ message.SetDefaultBytes(ToBytes("416"));
+
+ message.SetDefaultNestedEnum(TestAllTypes.Types.NestedEnum.FOO);
+ message.SetDefaultForeignEnum(ForeignEnum.FOREIGN_FOO);
+ message.SetDefaultImportEnum(ImportEnum.IMPORT_FOO);
+
+ message.SetDefaultStringPiece("424");
+ message.SetDefaultCord("425");
+
+ message.SetOneofUint32(601);
+ message.SetOneofNestedMessage(
+ TestAllTypes.Types.NestedMessage.CreateBuilder().SetBb(602).Build());
+ message.SetOneofString("603");
+ message.SetOneofBytes(ToBytes("604"));
+
+ }
+
+ /// <summary>
+ /// Asserts that all fields of the specified message are set to the values
+ /// assigned by SetAllFields.
+ /// </summary>
+ internal static void AssertAllFieldsSet(TestAllTypes message)
+ {
+ Assert.IsTrue(message.HasOptionalInt32);
+ Assert.IsTrue(message.HasOptionalInt64);
+ Assert.IsTrue(message.HasOptionalUint32);
+ Assert.IsTrue(message.HasOptionalUint64);
+ Assert.IsTrue(message.HasOptionalSint32);
+ Assert.IsTrue(message.HasOptionalSint64);
+ Assert.IsTrue(message.HasOptionalFixed32);
+ Assert.IsTrue(message.HasOptionalFixed64);
+ Assert.IsTrue(message.HasOptionalSfixed32);
+ Assert.IsTrue(message.HasOptionalSfixed64);
+ Assert.IsTrue(message.HasOptionalFloat);
+ Assert.IsTrue(message.HasOptionalDouble);
+ Assert.IsTrue(message.HasOptionalBool);
+ Assert.IsTrue(message.HasOptionalString);
+ Assert.IsTrue(message.HasOptionalBytes);
+
+ Assert.IsTrue(message.HasOptionalGroup);
+ Assert.IsTrue(message.HasOptionalNestedMessage);
+ Assert.IsTrue(message.HasOptionalForeignMessage);
+ Assert.IsTrue(message.HasOptionalImportMessage);
+
+ Assert.IsTrue(message.OptionalGroup.HasA);
+ Assert.IsTrue(message.OptionalNestedMessage.HasBb);
+ Assert.IsTrue(message.OptionalForeignMessage.HasC);
+ Assert.IsTrue(message.OptionalImportMessage.HasD);
+
+ Assert.IsTrue(message.HasOptionalNestedEnum);
+ Assert.IsTrue(message.HasOptionalForeignEnum);
+ Assert.IsTrue(message.HasOptionalImportEnum);
+
+ Assert.IsTrue(message.HasOptionalStringPiece);
+ Assert.IsTrue(message.HasOptionalCord);
+
+ Assert.AreEqual(101, message.OptionalInt32);
+ Assert.AreEqual(102, message.OptionalInt64);
+ Assert.AreEqual(103u, message.OptionalUint32);
+ Assert.AreEqual(104u, message.OptionalUint64);
+ Assert.AreEqual(105, message.OptionalSint32);
+ Assert.AreEqual(106, message.OptionalSint64);
+ Assert.AreEqual(107u, message.OptionalFixed32);
+ Assert.AreEqual(108u, message.OptionalFixed64);
+ Assert.AreEqual(109, message.OptionalSfixed32);
+ Assert.AreEqual(110, message.OptionalSfixed64);
+ Assert.AreEqual(111, message.OptionalFloat);
+ Assert.AreEqual(112, message.OptionalDouble);
+ Assert.AreEqual(true, message.OptionalBool);
+ Assert.AreEqual("115", message.OptionalString);
+ Assert.AreEqual(ToBytes("116"), message.OptionalBytes);
+
+ Assert.AreEqual(117, message.OptionalGroup.A);
+ Assert.AreEqual(118, message.OptionalNestedMessage.Bb);
+ Assert.AreEqual(119, message.OptionalForeignMessage.C);
+ Assert.AreEqual(120, message.OptionalImportMessage.D);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAZ, message.OptionalNestedEnum);
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, message.OptionalForeignEnum);
+ Assert.AreEqual(ImportEnum.IMPORT_BAZ, message.OptionalImportEnum);
+
+ Assert.AreEqual("124", message.OptionalStringPiece);
+ Assert.AreEqual("125", message.OptionalCord);
+
+ // -----------------------------------------------------------------
+
+ Assert.AreEqual(2, message.RepeatedInt32Count);
+ Assert.AreEqual(2, message.RepeatedInt64Count);
+ Assert.AreEqual(2, message.RepeatedUint32Count);
+ Assert.AreEqual(2, message.RepeatedUint64Count);
+ Assert.AreEqual(2, message.RepeatedSint32Count);
+ Assert.AreEqual(2, message.RepeatedSint64Count);
+ Assert.AreEqual(2, message.RepeatedFixed32Count);
+ Assert.AreEqual(2, message.RepeatedFixed64Count);
+ Assert.AreEqual(2, message.RepeatedSfixed32Count);
+ Assert.AreEqual(2, message.RepeatedSfixed64Count);
+ Assert.AreEqual(2, message.RepeatedFloatCount);
+ Assert.AreEqual(2, message.RepeatedDoubleCount);
+ Assert.AreEqual(2, message.RepeatedBoolCount);
+ Assert.AreEqual(2, message.RepeatedStringCount);
+ Assert.AreEqual(2, message.RepeatedBytesCount);
+
+ Assert.AreEqual(2, message.RepeatedGroupCount);
+ Assert.AreEqual(2, message.RepeatedNestedMessageCount);
+ Assert.AreEqual(2, message.RepeatedForeignMessageCount);
+ Assert.AreEqual(2, message.RepeatedImportMessageCount);
+ Assert.AreEqual(2, message.RepeatedNestedEnumCount);
+ Assert.AreEqual(2, message.RepeatedForeignEnumCount);
+ Assert.AreEqual(2, message.RepeatedImportEnumCount);
+
+ Assert.AreEqual(2, message.RepeatedStringPieceCount);
+ Assert.AreEqual(2, message.RepeatedCordCount);
+
+ Assert.AreEqual(201, message.GetRepeatedInt32(0));
+ Assert.AreEqual(202, message.GetRepeatedInt64(0));
+ Assert.AreEqual(203u, message.GetRepeatedUint32(0));
+ Assert.AreEqual(204u, message.GetRepeatedUint64(0));
+ Assert.AreEqual(205, message.GetRepeatedSint32(0));
+ Assert.AreEqual(206, message.GetRepeatedSint64(0));
+ Assert.AreEqual(207u, message.GetRepeatedFixed32(0));
+ Assert.AreEqual(208u, message.GetRepeatedFixed64(0));
+ Assert.AreEqual(209, message.GetRepeatedSfixed32(0));
+ Assert.AreEqual(210, message.GetRepeatedSfixed64(0));
+ Assert.AreEqual(211, message.GetRepeatedFloat(0));
+ Assert.AreEqual(212, message.GetRepeatedDouble(0));
+ Assert.AreEqual(true, message.GetRepeatedBool(0));
+ Assert.AreEqual("215", message.GetRepeatedString(0));
+ Assert.AreEqual(ToBytes("216"), message.GetRepeatedBytes(0));
+
+ Assert.AreEqual(217, message.GetRepeatedGroup(0).A);
+ Assert.AreEqual(218, message.GetRepeatedNestedMessage(0).Bb);
+ Assert.AreEqual(219, message.GetRepeatedForeignMessage(0).C);
+ Assert.AreEqual(220, message.GetRepeatedImportMessage(0).D);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR, message.GetRepeatedNestedEnum(0));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAR, message.GetRepeatedForeignEnum(0));
+ Assert.AreEqual(ImportEnum.IMPORT_BAR, message.GetRepeatedImportEnum(0));
+
+ Assert.AreEqual("224", message.GetRepeatedStringPiece(0));
+ Assert.AreEqual("225", message.GetRepeatedCord(0));
+
+ Assert.AreEqual(301, message.GetRepeatedInt32(1));
+ Assert.AreEqual(302, message.GetRepeatedInt64(1));
+ Assert.AreEqual(303u, message.GetRepeatedUint32(1));
+ Assert.AreEqual(304u, message.GetRepeatedUint64(1));
+ Assert.AreEqual(305, message.GetRepeatedSint32(1));
+ Assert.AreEqual(306, message.GetRepeatedSint64(1));
+ Assert.AreEqual(307u, message.GetRepeatedFixed32(1));
+ Assert.AreEqual(308u, message.GetRepeatedFixed64(1));
+ Assert.AreEqual(309, message.GetRepeatedSfixed32(1));
+ Assert.AreEqual(310, message.GetRepeatedSfixed64(1));
+ Assert.AreEqual(311f, message.GetRepeatedFloat(1));
+ Assert.AreEqual(312d, message.GetRepeatedDouble(1));
+ Assert.AreEqual(false, message.GetRepeatedBool(1));
+ Assert.AreEqual("315", message.GetRepeatedString(1));
+ Assert.AreEqual(ToBytes("316"), message.GetRepeatedBytes(1));
+
+ Assert.AreEqual(317, message.GetRepeatedGroup(1).A);
+ Assert.AreEqual(318, message.GetRepeatedNestedMessage(1).Bb);
+ Assert.AreEqual(319, message.GetRepeatedForeignMessage(1).C);
+ Assert.AreEqual(320, message.GetRepeatedImportMessage(1).D);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAZ, message.GetRepeatedNestedEnum(1));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, message.GetRepeatedForeignEnum(1));
+ Assert.AreEqual(ImportEnum.IMPORT_BAZ, message.GetRepeatedImportEnum(1));
+
+ Assert.AreEqual("324", message.GetRepeatedStringPiece(1));
+ Assert.AreEqual("325", message.GetRepeatedCord(1));
+
+ // -----------------------------------------------------------------
+
+ Assert.IsTrue(message.HasDefaultInt32);
+ Assert.IsTrue(message.HasDefaultInt64);
+ Assert.IsTrue(message.HasDefaultUint32);
+ Assert.IsTrue(message.HasDefaultUint64);
+ Assert.IsTrue(message.HasDefaultSint32);
+ Assert.IsTrue(message.HasDefaultSint64);
+ Assert.IsTrue(message.HasDefaultFixed32);
+ Assert.IsTrue(message.HasDefaultFixed64);
+ Assert.IsTrue(message.HasDefaultSfixed32);
+ Assert.IsTrue(message.HasDefaultSfixed64);
+ Assert.IsTrue(message.HasDefaultFloat);
+ Assert.IsTrue(message.HasDefaultDouble);
+ Assert.IsTrue(message.HasDefaultBool);
+ Assert.IsTrue(message.HasDefaultString);
+ Assert.IsTrue(message.HasDefaultBytes);
+
+ Assert.IsTrue(message.HasDefaultNestedEnum);
+ Assert.IsTrue(message.HasDefaultForeignEnum);
+ Assert.IsTrue(message.HasDefaultImportEnum);
+
+ Assert.IsTrue(message.HasDefaultStringPiece);
+ Assert.IsTrue(message.HasDefaultCord);
+
+ Assert.AreEqual(401, message.DefaultInt32);
+ Assert.AreEqual(402, message.DefaultInt64);
+ Assert.AreEqual(403u, message.DefaultUint32);
+ Assert.AreEqual(404u, message.DefaultUint64);
+ Assert.AreEqual(405, message.DefaultSint32);
+ Assert.AreEqual(406, message.DefaultSint64);
+ Assert.AreEqual(407u, message.DefaultFixed32);
+ Assert.AreEqual(408u, message.DefaultFixed64);
+ Assert.AreEqual(409, message.DefaultSfixed32);
+ Assert.AreEqual(410, message.DefaultSfixed64);
+ Assert.AreEqual(411, message.DefaultFloat);
+ Assert.AreEqual(412, message.DefaultDouble);
+ Assert.AreEqual(false, message.DefaultBool);
+ Assert.AreEqual("415", message.DefaultString);
+ Assert.AreEqual(ToBytes("416"), message.DefaultBytes);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, message.DefaultNestedEnum);
+ Assert.AreEqual(ForeignEnum.FOREIGN_FOO, message.DefaultForeignEnum);
+ Assert.AreEqual(ImportEnum.IMPORT_FOO, message.DefaultImportEnum);
+
+ Assert.AreEqual("424", message.DefaultStringPiece);
+ Assert.AreEqual("425", message.DefaultCord);
+
+ Assert.IsFalse(message.HasOneofUint32);
+ Assert.IsFalse(message.HasOneofNestedMessage);
+ Assert.IsFalse(message.HasOneofString);
+ Assert.IsTrue(message.HasOneofBytes);
+
+ Assert.AreEqual(ToBytes("604"), message.OneofBytes);
+ }
+
+ internal static void AssertClear(TestAllTypes message)
+ {
+ // HasBlah() should initially be false for all optional fields.
+ Assert.IsFalse(message.HasOptionalInt32);
+ Assert.IsFalse(message.HasOptionalInt64);
+ Assert.IsFalse(message.HasOptionalUint32);
+ Assert.IsFalse(message.HasOptionalUint64);
+ Assert.IsFalse(message.HasOptionalSint32);
+ Assert.IsFalse(message.HasOptionalSint64);
+ Assert.IsFalse(message.HasOptionalFixed32);
+ Assert.IsFalse(message.HasOptionalFixed64);
+ Assert.IsFalse(message.HasOptionalSfixed32);
+ Assert.IsFalse(message.HasOptionalSfixed64);
+ Assert.IsFalse(message.HasOptionalFloat);
+ Assert.IsFalse(message.HasOptionalDouble);
+ Assert.IsFalse(message.HasOptionalBool);
+ Assert.IsFalse(message.HasOptionalString);
+ Assert.IsFalse(message.HasOptionalBytes);
+
+ Assert.IsFalse(message.HasOptionalGroup);
+ Assert.IsFalse(message.HasOptionalNestedMessage);
+ Assert.IsFalse(message.HasOptionalForeignMessage);
+ Assert.IsFalse(message.HasOptionalImportMessage);
+
+ Assert.IsFalse(message.HasOptionalNestedEnum);
+ Assert.IsFalse(message.HasOptionalForeignEnum);
+ Assert.IsFalse(message.HasOptionalImportEnum);
+
+ Assert.IsFalse(message.HasOptionalStringPiece);
+ Assert.IsFalse(message.HasOptionalCord);
+
+ // Optional fields without defaults are set to zero or something like it.
+ Assert.AreEqual(0, message.OptionalInt32);
+ Assert.AreEqual(0, message.OptionalInt64);
+ Assert.AreEqual(0u, message.OptionalUint32);
+ Assert.AreEqual(0u, message.OptionalUint64);
+ Assert.AreEqual(0, message.OptionalSint32);
+ Assert.AreEqual(0, message.OptionalSint64);
+ Assert.AreEqual(0u, message.OptionalFixed32);
+ Assert.AreEqual(0u, message.OptionalFixed64);
+ Assert.AreEqual(0, message.OptionalSfixed32);
+ Assert.AreEqual(0, message.OptionalSfixed64);
+ Assert.AreEqual(0, message.OptionalFloat);
+ Assert.AreEqual(0, message.OptionalDouble);
+ Assert.AreEqual(false, message.OptionalBool);
+ Assert.AreEqual("", message.OptionalString);
+ Assert.AreEqual(ByteString.Empty, message.OptionalBytes);
+
+ // Embedded messages should also be clear.
+ Assert.IsFalse(message.OptionalGroup.HasA);
+ Assert.IsFalse(message.OptionalNestedMessage.HasBb);
+ Assert.IsFalse(message.OptionalForeignMessage.HasC);
+ Assert.IsFalse(message.OptionalImportMessage.HasD);
+
+ Assert.AreEqual(0, message.OptionalGroup.A);
+ Assert.AreEqual(0, message.OptionalNestedMessage.Bb);
+ Assert.AreEqual(0, message.OptionalForeignMessage.C);
+ Assert.AreEqual(0, message.OptionalImportMessage.D);
+
+ // Enums without defaults are set to the first value in the enum.
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, message.OptionalNestedEnum);
+ Assert.AreEqual(ForeignEnum.FOREIGN_FOO, message.OptionalForeignEnum);
+ Assert.AreEqual(ImportEnum.IMPORT_FOO, message.OptionalImportEnum);
+
+ Assert.AreEqual("", message.OptionalStringPiece);
+ Assert.AreEqual("", message.OptionalCord);
+
+ // Repeated fields are empty.
+ Assert.AreEqual(0, message.RepeatedInt32Count);
+ Assert.AreEqual(0, message.RepeatedInt64Count);
+ Assert.AreEqual(0, message.RepeatedUint32Count);
+ Assert.AreEqual(0, message.RepeatedUint64Count);
+ Assert.AreEqual(0, message.RepeatedSint32Count);
+ Assert.AreEqual(0, message.RepeatedSint64Count);
+ Assert.AreEqual(0, message.RepeatedFixed32Count);
+ Assert.AreEqual(0, message.RepeatedFixed64Count);
+ Assert.AreEqual(0, message.RepeatedSfixed32Count);
+ Assert.AreEqual(0, message.RepeatedSfixed64Count);
+ Assert.AreEqual(0, message.RepeatedFloatCount);
+ Assert.AreEqual(0, message.RepeatedDoubleCount);
+ Assert.AreEqual(0, message.RepeatedBoolCount);
+ Assert.AreEqual(0, message.RepeatedStringCount);
+ Assert.AreEqual(0, message.RepeatedBytesCount);
+
+ Assert.AreEqual(0, message.RepeatedGroupCount);
+ Assert.AreEqual(0, message.RepeatedNestedMessageCount);
+ Assert.AreEqual(0, message.RepeatedForeignMessageCount);
+ Assert.AreEqual(0, message.RepeatedImportMessageCount);
+ Assert.AreEqual(0, message.RepeatedNestedEnumCount);
+ Assert.AreEqual(0, message.RepeatedForeignEnumCount);
+ Assert.AreEqual(0, message.RepeatedImportEnumCount);
+
+ Assert.AreEqual(0, message.RepeatedStringPieceCount);
+ Assert.AreEqual(0, message.RepeatedCordCount);
+
+ // HasBlah() should also be false for all default fields.
+ Assert.IsFalse(message.HasDefaultInt32);
+ Assert.IsFalse(message.HasDefaultInt64);
+ Assert.IsFalse(message.HasDefaultUint32);
+ Assert.IsFalse(message.HasDefaultUint64);
+ Assert.IsFalse(message.HasDefaultSint32);
+ Assert.IsFalse(message.HasDefaultSint64);
+ Assert.IsFalse(message.HasDefaultFixed32);
+ Assert.IsFalse(message.HasDefaultFixed64);
+ Assert.IsFalse(message.HasDefaultSfixed32);
+ Assert.IsFalse(message.HasDefaultSfixed64);
+ Assert.IsFalse(message.HasDefaultFloat);
+ Assert.IsFalse(message.HasDefaultDouble);
+ Assert.IsFalse(message.HasDefaultBool);
+ Assert.IsFalse(message.HasDefaultString);
+ Assert.IsFalse(message.HasDefaultBytes);
+
+ Assert.IsFalse(message.HasDefaultNestedEnum);
+ Assert.IsFalse(message.HasDefaultForeignEnum);
+ Assert.IsFalse(message.HasDefaultImportEnum);
+
+ Assert.IsFalse(message.HasDefaultStringPiece);
+ Assert.IsFalse(message.HasDefaultCord);
+
+ // Fields with defaults have their default values (duh).
+ Assert.AreEqual(41, message.DefaultInt32);
+ Assert.AreEqual(42, message.DefaultInt64);
+ Assert.AreEqual(43u, message.DefaultUint32);
+ Assert.AreEqual(44u, message.DefaultUint64);
+ Assert.AreEqual(-45, message.DefaultSint32);
+ Assert.AreEqual(46, message.DefaultSint64);
+ Assert.AreEqual(47u, message.DefaultFixed32);
+ Assert.AreEqual(48u, message.DefaultFixed64);
+ Assert.AreEqual(49, message.DefaultSfixed32);
+ Assert.AreEqual(-50, message.DefaultSfixed64);
+ Assert.AreEqual(51.5f, message.DefaultFloat);
+ Assert.AreEqual(52e3d, message.DefaultDouble);
+ Assert.AreEqual(true, message.DefaultBool);
+ Assert.AreEqual("hello", message.DefaultString);
+ Assert.AreEqual(ToBytes("world"), message.DefaultBytes);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR, message.DefaultNestedEnum);
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAR, message.DefaultForeignEnum);
+ Assert.AreEqual(ImportEnum.IMPORT_BAR, message.DefaultImportEnum);
+
+ Assert.AreEqual("abc", message.DefaultStringPiece);
+ Assert.AreEqual("123", message.DefaultCord);
+
+ Assert.IsFalse(message.HasOneofUint32);
+ Assert.IsFalse(message.HasOneofNestedMessage);
+ Assert.IsFalse(message.HasOneofString);
+ Assert.IsFalse(message.HasOneofBytes);
+ }
+
+ /// <summary>
+ /// Get a TestAllExtensions with all fields set as they would be by
+ /// SetAllExtensions(TestAllExtensions.Builder).
+ /// </summary>
+ internal static TestAllExtensions GetAllExtensionsSet()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ SetAllExtensions(builder);
+ return builder.Build();
+ }
+
+ public static TestPackedTypes GetPackedSet()
+ {
+ TestPackedTypes.Builder builder = TestPackedTypes.CreateBuilder();
+ SetPackedFields(builder);
+ return builder.Build();
+ }
+
+ public static TestPackedExtensions GetPackedExtensionsSet()
+ {
+ TestPackedExtensions.Builder builder = TestPackedExtensions.CreateBuilder();
+ SetPackedExtensions(builder);
+ return builder.Build();
+ }
+
+ /// <summary>
+ /// Sets every field of the specified builder to the values expected by
+ /// AssertAllExtensionsSet.
+ /// </summary>
+ internal static void SetAllExtensions(TestAllExtensions.Builder message)
+ {
+ message.SetExtension(Unittest.OptionalInt32Extension, 101);
+ message.SetExtension(Unittest.OptionalInt64Extension, 102L);
+ message.SetExtension(Unittest.OptionalUint32Extension, 103U);
+ message.SetExtension(Unittest.OptionalUint64Extension, 104UL);
+ message.SetExtension(Unittest.OptionalSint32Extension, 105);
+ message.SetExtension(Unittest.OptionalSint64Extension, 106L);
+ message.SetExtension(Unittest.OptionalFixed32Extension, 107U);
+ message.SetExtension(Unittest.OptionalFixed64Extension, 108UL);
+ message.SetExtension(Unittest.OptionalSfixed32Extension, 109);
+ message.SetExtension(Unittest.OptionalSfixed64Extension, 110L);
+ message.SetExtension(Unittest.OptionalFloatExtension, 111F);
+ message.SetExtension(Unittest.OptionalDoubleExtension, 112D);
+ message.SetExtension(Unittest.OptionalBoolExtension, true);
+ message.SetExtension(Unittest.OptionalStringExtension, "115");
+ message.SetExtension(Unittest.OptionalBytesExtension, ToBytes("116"));
+
+ message.SetExtension(Unittest.OptionalGroupExtension,
+ OptionalGroup_extension.CreateBuilder().SetA(117).Build());
+ message.SetExtension(Unittest.OptionalNestedMessageExtension,
+ TestAllTypes.Types.NestedMessage.CreateBuilder().SetBb(118).Build());
+ message.SetExtension(Unittest.OptionalForeignMessageExtension,
+ ForeignMessage.CreateBuilder().SetC(119).Build());
+ message.SetExtension(Unittest.OptionalImportMessageExtension,
+ ImportMessage.CreateBuilder().SetD(120).Build());
+
+ message.SetExtension(Unittest.OptionalNestedEnumExtension, TestAllTypes.Types.NestedEnum.BAZ);
+ message.SetExtension(Unittest.OptionalForeignEnumExtension, ForeignEnum.FOREIGN_BAZ);
+ message.SetExtension(Unittest.OptionalImportEnumExtension, ImportEnum.IMPORT_BAZ);
+
+ message.SetExtension(Unittest.OptionalStringPieceExtension, "124");
+ message.SetExtension(Unittest.OptionalCordExtension, "125");
+
+ // -----------------------------------------------------------------
+
+ message.AddExtension(Unittest.RepeatedInt32Extension, 201);
+ message.AddExtension(Unittest.RepeatedInt64Extension, 202L);
+ message.AddExtension(Unittest.RepeatedUint32Extension, 203U);
+ message.AddExtension(Unittest.RepeatedUint64Extension, 204UL);
+ message.AddExtension(Unittest.RepeatedSint32Extension, 205);
+ message.AddExtension(Unittest.RepeatedSint64Extension, 206L);
+ message.AddExtension(Unittest.RepeatedFixed32Extension, 207U);
+ message.AddExtension(Unittest.RepeatedFixed64Extension, 208UL);
+ message.AddExtension(Unittest.RepeatedSfixed32Extension, 209);
+ message.AddExtension(Unittest.RepeatedSfixed64Extension, 210L);
+ message.AddExtension(Unittest.RepeatedFloatExtension, 211F);
+ message.AddExtension(Unittest.RepeatedDoubleExtension, 212D);
+ message.AddExtension(Unittest.RepeatedBoolExtension, true);
+ message.AddExtension(Unittest.RepeatedStringExtension, "215");
+ message.AddExtension(Unittest.RepeatedBytesExtension, ToBytes("216"));
+
+ message.AddExtension(Unittest.RepeatedGroupExtension,
+ RepeatedGroup_extension.CreateBuilder().SetA(217).Build());
+ message.AddExtension(Unittest.RepeatedNestedMessageExtension,
+ TestAllTypes.Types.NestedMessage.CreateBuilder().SetBb(218).Build());
+ message.AddExtension(Unittest.RepeatedForeignMessageExtension,
+ ForeignMessage.CreateBuilder().SetC(219).Build());
+ message.AddExtension(Unittest.RepeatedImportMessageExtension,
+ ImportMessage.CreateBuilder().SetD(220).Build());
+
+ message.AddExtension(Unittest.RepeatedNestedEnumExtension, TestAllTypes.Types.NestedEnum.BAR);
+ message.AddExtension(Unittest.RepeatedForeignEnumExtension, ForeignEnum.FOREIGN_BAR);
+ message.AddExtension(Unittest.RepeatedImportEnumExtension, ImportEnum.IMPORT_BAR);
+
+ message.AddExtension(Unittest.RepeatedStringPieceExtension, "224");
+ message.AddExtension(Unittest.RepeatedCordExtension, "225");
+
+ // Add a second one of each field.
+ message.AddExtension(Unittest.RepeatedInt32Extension, 301);
+ message.AddExtension(Unittest.RepeatedInt64Extension, 302L);
+ message.AddExtension(Unittest.RepeatedUint32Extension, 303U);
+ message.AddExtension(Unittest.RepeatedUint64Extension, 304UL);
+ message.AddExtension(Unittest.RepeatedSint32Extension, 305);
+ message.AddExtension(Unittest.RepeatedSint64Extension, 306L);
+ message.AddExtension(Unittest.RepeatedFixed32Extension, 307U);
+ message.AddExtension(Unittest.RepeatedFixed64Extension, 308UL);
+ message.AddExtension(Unittest.RepeatedSfixed32Extension, 309);
+ message.AddExtension(Unittest.RepeatedSfixed64Extension, 310L);
+ message.AddExtension(Unittest.RepeatedFloatExtension, 311F);
+ message.AddExtension(Unittest.RepeatedDoubleExtension, 312D);
+ message.AddExtension(Unittest.RepeatedBoolExtension, false);
+ message.AddExtension(Unittest.RepeatedStringExtension, "315");
+ message.AddExtension(Unittest.RepeatedBytesExtension, ToBytes("316"));
+
+ message.AddExtension(Unittest.RepeatedGroupExtension,
+ RepeatedGroup_extension.CreateBuilder().SetA(317).Build());
+ message.AddExtension(Unittest.RepeatedNestedMessageExtension,
+ TestAllTypes.Types.NestedMessage.CreateBuilder().SetBb(318).Build());
+ message.AddExtension(Unittest.RepeatedForeignMessageExtension,
+ ForeignMessage.CreateBuilder().SetC(319).Build());
+ message.AddExtension(Unittest.RepeatedImportMessageExtension,
+ ImportMessage.CreateBuilder().SetD(320).Build());
+
+ message.AddExtension(Unittest.RepeatedNestedEnumExtension, TestAllTypes.Types.NestedEnum.BAZ);
+ message.AddExtension(Unittest.RepeatedForeignEnumExtension, ForeignEnum.FOREIGN_BAZ);
+ message.AddExtension(Unittest.RepeatedImportEnumExtension, ImportEnum.IMPORT_BAZ);
+
+ message.AddExtension(Unittest.RepeatedStringPieceExtension, "324");
+ message.AddExtension(Unittest.RepeatedCordExtension, "325");
+
+ // -----------------------------------------------------------------
+
+ message.SetExtension(Unittest.DefaultInt32Extension, 401);
+ message.SetExtension(Unittest.DefaultInt64Extension, 402L);
+ message.SetExtension(Unittest.DefaultUint32Extension, 403U);
+ message.SetExtension(Unittest.DefaultUint64Extension, 404UL);
+ message.SetExtension(Unittest.DefaultSint32Extension, 405);
+ message.SetExtension(Unittest.DefaultSint64Extension, 406L);
+ message.SetExtension(Unittest.DefaultFixed32Extension, 407U);
+ message.SetExtension(Unittest.DefaultFixed64Extension, 408UL);
+ message.SetExtension(Unittest.DefaultSfixed32Extension, 409);
+ message.SetExtension(Unittest.DefaultSfixed64Extension, 410L);
+ message.SetExtension(Unittest.DefaultFloatExtension, 411F);
+ message.SetExtension(Unittest.DefaultDoubleExtension, 412D);
+ message.SetExtension(Unittest.DefaultBoolExtension, false);
+ message.SetExtension(Unittest.DefaultStringExtension, "415");
+ message.SetExtension(Unittest.DefaultBytesExtension, ToBytes("416"));
+
+ message.SetExtension(Unittest.DefaultNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO);
+ message.SetExtension(Unittest.DefaultForeignEnumExtension, ForeignEnum.FOREIGN_FOO);
+ message.SetExtension(Unittest.DefaultImportEnumExtension, ImportEnum.IMPORT_FOO);
+
+ message.SetExtension(Unittest.DefaultStringPieceExtension, "424");
+ message.SetExtension(Unittest.DefaultCordExtension, "425");
+
+ message.SetExtension(Unittest.OneofUint32Extension, 601U);
+ message.SetExtension(Unittest.OneofNestedMessageExtension,
+ TestAllTypes.Types.NestedMessage.CreateBuilder().SetBb(602).Build());
+ message.SetExtension(Unittest.OneofStringExtension, "603");
+ message.SetExtension(Unittest.OneofBytesExtension, ToBytes("604"));
+ }
+
+ internal static void ModifyRepeatedFields(TestAllTypes.Builder message)
+ {
+ message.SetRepeatedInt32(1, 501);
+ message.SetRepeatedInt64(1, 502);
+ message.SetRepeatedUint32(1, 503);
+ message.SetRepeatedUint64(1, 504);
+ message.SetRepeatedSint32(1, 505);
+ message.SetRepeatedSint64(1, 506);
+ message.SetRepeatedFixed32(1, 507);
+ message.SetRepeatedFixed64(1, 508);
+ message.SetRepeatedSfixed32(1, 509);
+ message.SetRepeatedSfixed64(1, 510);
+ message.SetRepeatedFloat(1, 511);
+ message.SetRepeatedDouble(1, 512);
+ message.SetRepeatedBool(1, true);
+ message.SetRepeatedString(1, "515");
+ message.SetRepeatedBytes(1, ToBytes("516"));
+
+ message.SetRepeatedGroup(1, TestAllTypes.Types.RepeatedGroup.CreateBuilder().SetA(517).Build());
+ message.SetRepeatedNestedMessage(1, TestAllTypes.Types.NestedMessage.CreateBuilder().SetBb(518).Build());
+ message.SetRepeatedForeignMessage(1, ForeignMessage.CreateBuilder().SetC(519).Build());
+ message.SetRepeatedImportMessage(1, ImportMessage.CreateBuilder().SetD(520).Build());
+
+ message.SetRepeatedNestedEnum(1, TestAllTypes.Types.NestedEnum.FOO);
+ message.SetRepeatedForeignEnum(1, ForeignEnum.FOREIGN_FOO);
+ message.SetRepeatedImportEnum(1, ImportEnum.IMPORT_FOO);
+
+ message.SetRepeatedStringPiece(1, "524");
+ message.SetRepeatedCord(1, "525");
+ }
+
+ internal static void AssertRepeatedFieldsModified(TestAllTypes message)
+ {
+ // ModifyRepeatedFields only sets the second repeated element of each
+ // field. In addition to verifying this, we also verify that the first
+ // element and size were *not* modified.
+ Assert.AreEqual(2, message.RepeatedInt32Count);
+ Assert.AreEqual(2, message.RepeatedInt64Count);
+ Assert.AreEqual(2, message.RepeatedUint32Count);
+ Assert.AreEqual(2, message.RepeatedUint64Count);
+ Assert.AreEqual(2, message.RepeatedSint32Count);
+ Assert.AreEqual(2, message.RepeatedSint64Count);
+ Assert.AreEqual(2, message.RepeatedFixed32Count);
+ Assert.AreEqual(2, message.RepeatedFixed64Count);
+ Assert.AreEqual(2, message.RepeatedSfixed32Count);
+ Assert.AreEqual(2, message.RepeatedSfixed64Count);
+ Assert.AreEqual(2, message.RepeatedFloatCount);
+ Assert.AreEqual(2, message.RepeatedDoubleCount);
+ Assert.AreEqual(2, message.RepeatedBoolCount);
+ Assert.AreEqual(2, message.RepeatedStringCount);
+ Assert.AreEqual(2, message.RepeatedBytesCount);
+
+ Assert.AreEqual(2, message.RepeatedGroupCount);
+ Assert.AreEqual(2, message.RepeatedNestedMessageCount);
+ Assert.AreEqual(2, message.RepeatedForeignMessageCount);
+ Assert.AreEqual(2, message.RepeatedImportMessageCount);
+ Assert.AreEqual(2, message.RepeatedNestedEnumCount);
+ Assert.AreEqual(2, message.RepeatedForeignEnumCount);
+ Assert.AreEqual(2, message.RepeatedImportEnumCount);
+
+ Assert.AreEqual(2, message.RepeatedStringPieceCount);
+ Assert.AreEqual(2, message.RepeatedCordCount);
+
+ Assert.AreEqual(201, message.GetRepeatedInt32(0));
+ Assert.AreEqual(202L, message.GetRepeatedInt64(0));
+ Assert.AreEqual(203U, message.GetRepeatedUint32(0));
+ Assert.AreEqual(204UL, message.GetRepeatedUint64(0));
+ Assert.AreEqual(205, message.GetRepeatedSint32(0));
+ Assert.AreEqual(206L, message.GetRepeatedSint64(0));
+ Assert.AreEqual(207U, message.GetRepeatedFixed32(0));
+ Assert.AreEqual(208UL, message.GetRepeatedFixed64(0));
+ Assert.AreEqual(209, message.GetRepeatedSfixed32(0));
+ Assert.AreEqual(210L, message.GetRepeatedSfixed64(0));
+ Assert.AreEqual(211F, message.GetRepeatedFloat(0));
+ Assert.AreEqual(212D, message.GetRepeatedDouble(0));
+ Assert.AreEqual(true, message.GetRepeatedBool(0));
+ Assert.AreEqual("215", message.GetRepeatedString(0));
+ Assert.AreEqual(ToBytes("216"), message.GetRepeatedBytes(0));
+
+ Assert.AreEqual(217, message.GetRepeatedGroup(0).A);
+ Assert.AreEqual(218, message.GetRepeatedNestedMessage(0).Bb);
+ Assert.AreEqual(219, message.GetRepeatedForeignMessage(0).C);
+ Assert.AreEqual(220, message.GetRepeatedImportMessage(0).D);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR, message.GetRepeatedNestedEnum(0));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAR, message.GetRepeatedForeignEnum(0));
+ Assert.AreEqual(ImportEnum.IMPORT_BAR, message.GetRepeatedImportEnum(0));
+
+ Assert.AreEqual("224", message.GetRepeatedStringPiece(0));
+ Assert.AreEqual("225", message.GetRepeatedCord(0));
+
+ // Actually verify the second (modified) elements now.
+ Assert.AreEqual(501, message.GetRepeatedInt32(1));
+ Assert.AreEqual(502L, message.GetRepeatedInt64(1));
+ Assert.AreEqual(503U, message.GetRepeatedUint32(1));
+ Assert.AreEqual(504UL, message.GetRepeatedUint64(1));
+ Assert.AreEqual(505, message.GetRepeatedSint32(1));
+ Assert.AreEqual(506L, message.GetRepeatedSint64(1));
+ Assert.AreEqual(507U, message.GetRepeatedFixed32(1));
+ Assert.AreEqual(508UL, message.GetRepeatedFixed64(1));
+ Assert.AreEqual(509, message.GetRepeatedSfixed32(1));
+ Assert.AreEqual(510L, message.GetRepeatedSfixed64(1));
+ Assert.AreEqual(511F, message.GetRepeatedFloat(1));
+ Assert.AreEqual(512D, message.GetRepeatedDouble(1));
+ Assert.AreEqual(true, message.GetRepeatedBool(1));
+ Assert.AreEqual("515", message.GetRepeatedString(1));
+ Assert.AreEqual(ToBytes("516"), message.GetRepeatedBytes(1));
+
+ Assert.AreEqual(517, message.GetRepeatedGroup(1).A);
+ Assert.AreEqual(518, message.GetRepeatedNestedMessage(1).Bb);
+ Assert.AreEqual(519, message.GetRepeatedForeignMessage(1).C);
+ Assert.AreEqual(520, message.GetRepeatedImportMessage(1).D);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, message.GetRepeatedNestedEnum(1));
+ Assert.AreEqual(ForeignEnum.FOREIGN_FOO, message.GetRepeatedForeignEnum(1));
+ Assert.AreEqual(ImportEnum.IMPORT_FOO, message.GetRepeatedImportEnum(1));
+
+ Assert.AreEqual("524", message.GetRepeatedStringPiece(1));
+ Assert.AreEqual("525", message.GetRepeatedCord(1));
+ }
+
+ /// <summary>
+ /// Helper to assert that sequences are equal.
+ /// </summary>
+ internal static void AssertEqual<T>(IEnumerable<T> first, IEnumerable<T> second)
+ {
+ using (IEnumerator<T> firstEnumerator = first.GetEnumerator())
+ {
+ foreach (T secondElement in second)
+ {
+ Assert.IsTrue(firstEnumerator.MoveNext(), "First enumerator ran out of elements too early.");
+ Assert.AreEqual(firstEnumerator.Current, secondElement);
+ }
+ Assert.IsFalse(firstEnumerator.MoveNext(), "Second enumerator ran out of elements too early.");
+ }
+ }
+
+ internal static void AssertEqualBytes(byte[] expected, byte[] actual)
+ {
+ Assert.AreEqual(ByteString.CopyFrom(expected), ByteString.CopyFrom(actual));
+ }
+
+ internal static void AssertAllExtensionsSet(TestAllExtensions message)
+ {
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalInt32Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalInt64Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalUint32Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalUint64Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalSint32Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalSint64Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalFixed32Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalFixed64Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalSfixed32Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalSfixed64Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalFloatExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalDoubleExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalBoolExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalStringExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalBytesExtension));
+
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalGroupExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalNestedMessageExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalForeignMessageExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalImportMessageExtension));
+
+ Assert.IsTrue(message.GetExtension(Unittest.OptionalGroupExtension).HasA);
+ Assert.IsTrue(message.GetExtension(Unittest.OptionalNestedMessageExtension).HasBb);
+ Assert.IsTrue(message.GetExtension(Unittest.OptionalForeignMessageExtension).HasC);
+ Assert.IsTrue(message.GetExtension(Unittest.OptionalImportMessageExtension).HasD);
+
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalNestedEnumExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalForeignEnumExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalImportEnumExtension));
+
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalStringPieceExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.OptionalCordExtension));
+
+ Assert.AreEqual(101, message.GetExtension(Unittest.OptionalInt32Extension));
+ Assert.AreEqual(102L, message.GetExtension(Unittest.OptionalInt64Extension));
+ Assert.AreEqual(103U, message.GetExtension(Unittest.OptionalUint32Extension));
+ Assert.AreEqual(104UL, message.GetExtension(Unittest.OptionalUint64Extension));
+ Assert.AreEqual(105, message.GetExtension(Unittest.OptionalSint32Extension));
+ Assert.AreEqual(106L, message.GetExtension(Unittest.OptionalSint64Extension));
+ Assert.AreEqual(107U, message.GetExtension(Unittest.OptionalFixed32Extension));
+ Assert.AreEqual(108UL, message.GetExtension(Unittest.OptionalFixed64Extension));
+ Assert.AreEqual(109, message.GetExtension(Unittest.OptionalSfixed32Extension));
+ Assert.AreEqual(110L, message.GetExtension(Unittest.OptionalSfixed64Extension));
+ Assert.AreEqual(111F, message.GetExtension(Unittest.OptionalFloatExtension));
+ Assert.AreEqual(112D, message.GetExtension(Unittest.OptionalDoubleExtension));
+ Assert.AreEqual(true, message.GetExtension(Unittest.OptionalBoolExtension));
+ Assert.AreEqual("115", message.GetExtension(Unittest.OptionalStringExtension));
+ Assert.AreEqual(ToBytes("116"), message.GetExtension(Unittest.OptionalBytesExtension));
+
+ Assert.AreEqual(117, message.GetExtension(Unittest.OptionalGroupExtension).A);
+ Assert.AreEqual(118, message.GetExtension(Unittest.OptionalNestedMessageExtension).Bb);
+ Assert.AreEqual(119, message.GetExtension(Unittest.OptionalForeignMessageExtension).C);
+ Assert.AreEqual(120, message.GetExtension(Unittest.OptionalImportMessageExtension).D);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAZ,
+ message.GetExtension(Unittest.OptionalNestedEnumExtension));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ,
+ message.GetExtension(Unittest.OptionalForeignEnumExtension));
+ Assert.AreEqual(ImportEnum.IMPORT_BAZ, message.GetExtension(Unittest.OptionalImportEnumExtension));
+
+ Assert.AreEqual("124", message.GetExtension(Unittest.OptionalStringPieceExtension));
+ Assert.AreEqual("125", message.GetExtension(Unittest.OptionalCordExtension));
+
+ // -----------------------------------------------------------------
+
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedInt32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedInt64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedUint32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedUint64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedSint32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedSint64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedFixed32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedFixed64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedSfixed32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedSfixed64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedFloatExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedDoubleExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedBoolExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedStringExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedBytesExtension));
+
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedGroupExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedNestedMessageExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedForeignMessageExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedImportMessageExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedNestedEnumExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedForeignEnumExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedImportEnumExtension));
+
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedStringPieceExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedCordExtension));
+
+ Assert.AreEqual(201, message.GetExtension(Unittest.RepeatedInt32Extension, 0));
+ Assert.AreEqual(202L, message.GetExtension(Unittest.RepeatedInt64Extension, 0));
+ Assert.AreEqual(203U, message.GetExtension(Unittest.RepeatedUint32Extension, 0));
+ Assert.AreEqual(204UL, message.GetExtension(Unittest.RepeatedUint64Extension, 0));
+ Assert.AreEqual(205, message.GetExtension(Unittest.RepeatedSint32Extension, 0));
+ Assert.AreEqual(206L, message.GetExtension(Unittest.RepeatedSint64Extension, 0));
+ Assert.AreEqual(207U, message.GetExtension(Unittest.RepeatedFixed32Extension, 0));
+ Assert.AreEqual(208UL, message.GetExtension(Unittest.RepeatedFixed64Extension, 0));
+ Assert.AreEqual(209, message.GetExtension(Unittest.RepeatedSfixed32Extension, 0));
+ Assert.AreEqual(210L, message.GetExtension(Unittest.RepeatedSfixed64Extension, 0));
+ Assert.AreEqual(211F, message.GetExtension(Unittest.RepeatedFloatExtension, 0));
+ Assert.AreEqual(212D, message.GetExtension(Unittest.RepeatedDoubleExtension, 0));
+ Assert.AreEqual(true, message.GetExtension(Unittest.RepeatedBoolExtension, 0));
+ Assert.AreEqual("215", message.GetExtension(Unittest.RepeatedStringExtension, 0));
+ Assert.AreEqual(ToBytes("216"), message.GetExtension(Unittest.RepeatedBytesExtension, 0));
+
+ Assert.AreEqual(217, message.GetExtension(Unittest.RepeatedGroupExtension, 0).A);
+ Assert.AreEqual(218, message.GetExtension(Unittest.RepeatedNestedMessageExtension, 0).Bb);
+ Assert.AreEqual(219, message.GetExtension(Unittest.RepeatedForeignMessageExtension, 0).C);
+ Assert.AreEqual(220, message.GetExtension(Unittest.RepeatedImportMessageExtension, 0).D);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR,
+ message.GetExtension(Unittest.RepeatedNestedEnumExtension, 0));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAR,
+ message.GetExtension(Unittest.RepeatedForeignEnumExtension, 0));
+ Assert.AreEqual(ImportEnum.IMPORT_BAR,
+ message.GetExtension(Unittest.RepeatedImportEnumExtension, 0));
+
+ Assert.AreEqual("224", message.GetExtension(Unittest.RepeatedStringPieceExtension, 0));
+ Assert.AreEqual("225", message.GetExtension(Unittest.RepeatedCordExtension, 0));
+
+ Assert.AreEqual(301, message.GetExtension(Unittest.RepeatedInt32Extension, 1));
+ Assert.AreEqual(302L, message.GetExtension(Unittest.RepeatedInt64Extension, 1));
+ Assert.AreEqual(303U, message.GetExtension(Unittest.RepeatedUint32Extension, 1));
+ Assert.AreEqual(304UL, message.GetExtension(Unittest.RepeatedUint64Extension, 1));
+ Assert.AreEqual(305, message.GetExtension(Unittest.RepeatedSint32Extension, 1));
+ Assert.AreEqual(306L, message.GetExtension(Unittest.RepeatedSint64Extension, 1));
+ Assert.AreEqual(307U, message.GetExtension(Unittest.RepeatedFixed32Extension, 1));
+ Assert.AreEqual(308UL, message.GetExtension(Unittest.RepeatedFixed64Extension, 1));
+ Assert.AreEqual(309, message.GetExtension(Unittest.RepeatedSfixed32Extension, 1));
+ Assert.AreEqual(310L, message.GetExtension(Unittest.RepeatedSfixed64Extension, 1));
+ Assert.AreEqual(311F, message.GetExtension(Unittest.RepeatedFloatExtension, 1));
+ Assert.AreEqual(312D, message.GetExtension(Unittest.RepeatedDoubleExtension, 1));
+ Assert.AreEqual(false, message.GetExtension(Unittest.RepeatedBoolExtension, 1));
+ Assert.AreEqual("315", message.GetExtension(Unittest.RepeatedStringExtension, 1));
+ Assert.AreEqual(ToBytes("316"), message.GetExtension(Unittest.RepeatedBytesExtension, 1));
+
+ Assert.AreEqual(317, message.GetExtension(Unittest.RepeatedGroupExtension, 1).A);
+ Assert.AreEqual(318, message.GetExtension(Unittest.RepeatedNestedMessageExtension, 1).Bb);
+ Assert.AreEqual(319, message.GetExtension(Unittest.RepeatedForeignMessageExtension, 1).C);
+ Assert.AreEqual(320, message.GetExtension(Unittest.RepeatedImportMessageExtension, 1).D);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAZ,
+ message.GetExtension(Unittest.RepeatedNestedEnumExtension, 1));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ,
+ message.GetExtension(Unittest.RepeatedForeignEnumExtension, 1));
+ Assert.AreEqual(ImportEnum.IMPORT_BAZ,
+ message.GetExtension(Unittest.RepeatedImportEnumExtension, 1));
+
+ Assert.AreEqual("324", message.GetExtension(Unittest.RepeatedStringPieceExtension, 1));
+ Assert.AreEqual("325", message.GetExtension(Unittest.RepeatedCordExtension, 1));
+
+ // -----------------------------------------------------------------
+
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultInt32Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultInt64Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultUint32Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultUint64Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultSint32Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultSint64Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultFixed32Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultFixed64Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultSfixed32Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultSfixed64Extension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultFloatExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultDoubleExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultBoolExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultStringExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultBytesExtension));
+
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultNestedEnumExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultForeignEnumExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultImportEnumExtension));
+
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultStringPieceExtension));
+ Assert.IsTrue(message.HasExtension(Unittest.DefaultCordExtension));
+
+ Assert.AreEqual(401, message.GetExtension(Unittest.DefaultInt32Extension));
+ Assert.AreEqual(402L, message.GetExtension(Unittest.DefaultInt64Extension));
+ Assert.AreEqual(403U, message.GetExtension(Unittest.DefaultUint32Extension));
+ Assert.AreEqual(404UL, message.GetExtension(Unittest.DefaultUint64Extension));
+ Assert.AreEqual(405, message.GetExtension(Unittest.DefaultSint32Extension));
+ Assert.AreEqual(406L, message.GetExtension(Unittest.DefaultSint64Extension));
+ Assert.AreEqual(407U, message.GetExtension(Unittest.DefaultFixed32Extension));
+ Assert.AreEqual(408UL, message.GetExtension(Unittest.DefaultFixed64Extension));
+ Assert.AreEqual(409, message.GetExtension(Unittest.DefaultSfixed32Extension));
+ Assert.AreEqual(410L, message.GetExtension(Unittest.DefaultSfixed64Extension));
+ Assert.AreEqual(411F, message.GetExtension(Unittest.DefaultFloatExtension));
+ Assert.AreEqual(412D, message.GetExtension(Unittest.DefaultDoubleExtension));
+ Assert.AreEqual(false, message.GetExtension(Unittest.DefaultBoolExtension));
+ Assert.AreEqual("415", message.GetExtension(Unittest.DefaultStringExtension));
+ Assert.AreEqual(ToBytes("416"), message.GetExtension(Unittest.DefaultBytesExtension));
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO,
+ message.GetExtension(Unittest.DefaultNestedEnumExtension));
+ Assert.AreEqual(ForeignEnum.FOREIGN_FOO, message.GetExtension(Unittest.DefaultForeignEnumExtension));
+ Assert.AreEqual(ImportEnum.IMPORT_FOO, message.GetExtension(Unittest.DefaultImportEnumExtension));
+
+ Assert.AreEqual("424", message.GetExtension(Unittest.DefaultStringPieceExtension));
+ Assert.AreEqual("425", message.GetExtension(Unittest.DefaultCordExtension));
+
+ Assert.IsTrue(message.HasExtension(Unittest.OneofBytesExtension));
+ Assert.AreEqual(ToBytes("604"), message.GetExtension(Unittest.OneofBytesExtension));
+ }
+
+ /// <summary>
+ /// Modifies the repeated extensions of the given message to contain the values
+ /// expected by AssertRepeatedExtensionsModified.
+ /// </summary>
+ internal static void ModifyRepeatedExtensions(TestAllExtensions.Builder message)
+ {
+ message.SetExtension(Unittest.RepeatedInt32Extension, 1, 501);
+ message.SetExtension(Unittest.RepeatedInt64Extension, 1, 502L);
+ message.SetExtension(Unittest.RepeatedUint32Extension, 1, 503U);
+ message.SetExtension(Unittest.RepeatedUint64Extension, 1, 504UL);
+ message.SetExtension(Unittest.RepeatedSint32Extension, 1, 505);
+ message.SetExtension(Unittest.RepeatedSint64Extension, 1, 506L);
+ message.SetExtension(Unittest.RepeatedFixed32Extension, 1, 507U);
+ message.SetExtension(Unittest.RepeatedFixed64Extension, 1, 508UL);
+ message.SetExtension(Unittest.RepeatedSfixed32Extension, 1, 509);
+ message.SetExtension(Unittest.RepeatedSfixed64Extension, 1, 510L);
+ message.SetExtension(Unittest.RepeatedFloatExtension, 1, 511F);
+ message.SetExtension(Unittest.RepeatedDoubleExtension, 1, 512D);
+ message.SetExtension(Unittest.RepeatedBoolExtension, 1, true);
+ message.SetExtension(Unittest.RepeatedStringExtension, 1, "515");
+ message.SetExtension(Unittest.RepeatedBytesExtension, 1, ToBytes("516"));
+
+ message.SetExtension(Unittest.RepeatedGroupExtension, 1,
+ RepeatedGroup_extension.CreateBuilder().SetA(517).Build());
+ message.SetExtension(Unittest.RepeatedNestedMessageExtension, 1,
+ TestAllTypes.Types.NestedMessage.CreateBuilder().SetBb(518).Build());
+ message.SetExtension(Unittest.RepeatedForeignMessageExtension, 1,
+ ForeignMessage.CreateBuilder().SetC(519).Build());
+ message.SetExtension(Unittest.RepeatedImportMessageExtension, 1,
+ ImportMessage.CreateBuilder().SetD(520).Build());
+
+ message.SetExtension(Unittest.RepeatedNestedEnumExtension, 1, TestAllTypes.Types.NestedEnum.FOO);
+ message.SetExtension(Unittest.RepeatedForeignEnumExtension, 1, ForeignEnum.FOREIGN_FOO);
+ message.SetExtension(Unittest.RepeatedImportEnumExtension, 1, ImportEnum.IMPORT_FOO);
+
+ message.SetExtension(Unittest.RepeatedStringPieceExtension, 1, "524");
+ message.SetExtension(Unittest.RepeatedCordExtension, 1, "525");
+ }
+
+ /// <summary>
+ /// Asserts that all repeated extensions are set to the values assigned by
+ /// SetAllExtensions follwed by ModifyRepeatedExtensions.
+ /// </summary>
+ internal static void AssertRepeatedExtensionsModified(TestAllExtensions message)
+ {
+ // ModifyRepeatedFields only sets the second repeated element of each
+ // field. In addition to verifying this, we also verify that the first
+ // element and size were *not* modified.
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedInt32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedInt64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedUint32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedUint64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedSint32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedSint64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedFixed32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedFixed64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedSfixed32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedSfixed64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedFloatExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedDoubleExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedBoolExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedStringExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedBytesExtension));
+
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedGroupExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedNestedMessageExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedForeignMessageExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedImportMessageExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedNestedEnumExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedForeignEnumExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedImportEnumExtension));
+
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedStringPieceExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.RepeatedCordExtension));
+
+ Assert.AreEqual(201, message.GetExtension(Unittest.RepeatedInt32Extension, 0));
+ Assert.AreEqual(202L, message.GetExtension(Unittest.RepeatedInt64Extension, 0));
+ Assert.AreEqual(203U, message.GetExtension(Unittest.RepeatedUint32Extension, 0));
+ Assert.AreEqual(204UL, message.GetExtension(Unittest.RepeatedUint64Extension, 0));
+ Assert.AreEqual(205, message.GetExtension(Unittest.RepeatedSint32Extension, 0));
+ Assert.AreEqual(206L, message.GetExtension(Unittest.RepeatedSint64Extension, 0));
+ Assert.AreEqual(207U, message.GetExtension(Unittest.RepeatedFixed32Extension, 0));
+ Assert.AreEqual(208UL, message.GetExtension(Unittest.RepeatedFixed64Extension, 0));
+ Assert.AreEqual(209, message.GetExtension(Unittest.RepeatedSfixed32Extension, 0));
+ Assert.AreEqual(210L, message.GetExtension(Unittest.RepeatedSfixed64Extension, 0));
+ Assert.AreEqual(211F, message.GetExtension(Unittest.RepeatedFloatExtension, 0));
+ Assert.AreEqual(212D, message.GetExtension(Unittest.RepeatedDoubleExtension, 0));
+ Assert.AreEqual(true, message.GetExtension(Unittest.RepeatedBoolExtension, 0));
+ Assert.AreEqual("215", message.GetExtension(Unittest.RepeatedStringExtension, 0));
+ Assert.AreEqual(ToBytes("216"), message.GetExtension(Unittest.RepeatedBytesExtension, 0));
+
+ Assert.AreEqual(217, message.GetExtension(Unittest.RepeatedGroupExtension, 0).A);
+ Assert.AreEqual(218, message.GetExtension(Unittest.RepeatedNestedMessageExtension, 0).Bb);
+ Assert.AreEqual(219, message.GetExtension(Unittest.RepeatedForeignMessageExtension, 0).C);
+ Assert.AreEqual(220, message.GetExtension(Unittest.RepeatedImportMessageExtension, 0).D);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR,
+ message.GetExtension(Unittest.RepeatedNestedEnumExtension, 0));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAR,
+ message.GetExtension(Unittest.RepeatedForeignEnumExtension, 0));
+ Assert.AreEqual(ImportEnum.IMPORT_BAR,
+ message.GetExtension(Unittest.RepeatedImportEnumExtension, 0));
+
+ Assert.AreEqual("224", message.GetExtension(Unittest.RepeatedStringPieceExtension, 0));
+ Assert.AreEqual("225", message.GetExtension(Unittest.RepeatedCordExtension, 0));
+
+ // Actually verify the second (modified) elements now.
+ Assert.AreEqual(501, message.GetExtension(Unittest.RepeatedInt32Extension, 1));
+ Assert.AreEqual(502L, message.GetExtension(Unittest.RepeatedInt64Extension, 1));
+ Assert.AreEqual(503U, message.GetExtension(Unittest.RepeatedUint32Extension, 1));
+ Assert.AreEqual(504UL, message.GetExtension(Unittest.RepeatedUint64Extension, 1));
+ Assert.AreEqual(505, message.GetExtension(Unittest.RepeatedSint32Extension, 1));
+ Assert.AreEqual(506L, message.GetExtension(Unittest.RepeatedSint64Extension, 1));
+ Assert.AreEqual(507U, message.GetExtension(Unittest.RepeatedFixed32Extension, 1));
+ Assert.AreEqual(508UL, message.GetExtension(Unittest.RepeatedFixed64Extension, 1));
+ Assert.AreEqual(509, message.GetExtension(Unittest.RepeatedSfixed32Extension, 1));
+ Assert.AreEqual(510L, message.GetExtension(Unittest.RepeatedSfixed64Extension, 1));
+ Assert.AreEqual(511F, message.GetExtension(Unittest.RepeatedFloatExtension, 1));
+ Assert.AreEqual(512D, message.GetExtension(Unittest.RepeatedDoubleExtension, 1));
+ Assert.AreEqual(true, message.GetExtension(Unittest.RepeatedBoolExtension, 1));
+ Assert.AreEqual("515", message.GetExtension(Unittest.RepeatedStringExtension, 1));
+ Assert.AreEqual(ToBytes("516"), message.GetExtension(Unittest.RepeatedBytesExtension, 1));
+
+ Assert.AreEqual(517, message.GetExtension(Unittest.RepeatedGroupExtension, 1).A);
+ Assert.AreEqual(518, message.GetExtension(Unittest.RepeatedNestedMessageExtension, 1).Bb);
+ Assert.AreEqual(519, message.GetExtension(Unittest.RepeatedForeignMessageExtension, 1).C);
+ Assert.AreEqual(520, message.GetExtension(Unittest.RepeatedImportMessageExtension, 1).D);
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO,
+ message.GetExtension(Unittest.RepeatedNestedEnumExtension, 1));
+ Assert.AreEqual(ForeignEnum.FOREIGN_FOO,
+ message.GetExtension(Unittest.RepeatedForeignEnumExtension, 1));
+ Assert.AreEqual(ImportEnum.IMPORT_FOO,
+ message.GetExtension(Unittest.RepeatedImportEnumExtension, 1));
+
+ Assert.AreEqual("524", message.GetExtension(Unittest.RepeatedStringPieceExtension, 1));
+ Assert.AreEqual("525", message.GetExtension(Unittest.RepeatedCordExtension, 1));
+ }
+
+ internal static void AssertExtensionsClear(TestAllExtensions message)
+ {
+ // HasBlah() should initially be false for all optional fields.
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalInt32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalInt64Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalUint32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalUint64Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalSint32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalSint64Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalFixed32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalFixed64Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalSfixed32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalSfixed64Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalFloatExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalDoubleExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalBoolExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalStringExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalBytesExtension));
+
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalGroupExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalNestedMessageExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalForeignMessageExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalImportMessageExtension));
+
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalNestedEnumExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalForeignEnumExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalImportEnumExtension));
+
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalStringPieceExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OptionalCordExtension));
+
+ // Optional fields without defaults are set to zero or something like it.
+ Assert.AreEqual(0, message.GetExtension(Unittest.OptionalInt32Extension));
+ Assert.AreEqual(0L, message.GetExtension(Unittest.OptionalInt64Extension));
+ Assert.AreEqual(0U, message.GetExtension(Unittest.OptionalUint32Extension));
+ Assert.AreEqual(0UL, message.GetExtension(Unittest.OptionalUint64Extension));
+ Assert.AreEqual(0, message.GetExtension(Unittest.OptionalSint32Extension));
+ Assert.AreEqual(0L, message.GetExtension(Unittest.OptionalSint64Extension));
+ Assert.AreEqual(0U, message.GetExtension(Unittest.OptionalFixed32Extension));
+ Assert.AreEqual(0UL, message.GetExtension(Unittest.OptionalFixed64Extension));
+ Assert.AreEqual(0, message.GetExtension(Unittest.OptionalSfixed32Extension));
+ Assert.AreEqual(0L, message.GetExtension(Unittest.OptionalSfixed64Extension));
+ Assert.AreEqual(0F, message.GetExtension(Unittest.OptionalFloatExtension));
+ Assert.AreEqual(0D, message.GetExtension(Unittest.OptionalDoubleExtension));
+ Assert.AreEqual(false, message.GetExtension(Unittest.OptionalBoolExtension));
+ Assert.AreEqual("", message.GetExtension(Unittest.OptionalStringExtension));
+ Assert.AreEqual(ByteString.Empty, message.GetExtension(Unittest.OptionalBytesExtension));
+
+ // Embedded messages should also be clear.
+ Assert.IsFalse(message.GetExtension(Unittest.OptionalGroupExtension).HasA);
+ Assert.IsFalse(message.GetExtension(Unittest.OptionalNestedMessageExtension).HasBb);
+ Assert.IsFalse(message.GetExtension(Unittest.OptionalForeignMessageExtension).HasC);
+ Assert.IsFalse(message.GetExtension(Unittest.OptionalImportMessageExtension).HasD);
+
+ Assert.AreEqual(0, message.GetExtension(Unittest.OptionalGroupExtension).A);
+ Assert.AreEqual(0, message.GetExtension(Unittest.OptionalNestedMessageExtension).Bb);
+ Assert.AreEqual(0, message.GetExtension(Unittest.OptionalForeignMessageExtension).C);
+ Assert.AreEqual(0, message.GetExtension(Unittest.OptionalImportMessageExtension).D);
+
+ // Enums without defaults are set to the first value in the enum.
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO,
+ message.GetExtension(Unittest.OptionalNestedEnumExtension));
+ Assert.AreEqual(ForeignEnum.FOREIGN_FOO,
+ message.GetExtension(Unittest.OptionalForeignEnumExtension));
+ Assert.AreEqual(ImportEnum.IMPORT_FOO, message.GetExtension(Unittest.OptionalImportEnumExtension));
+
+ Assert.AreEqual("", message.GetExtension(Unittest.OptionalStringPieceExtension));
+ Assert.AreEqual("", message.GetExtension(Unittest.OptionalCordExtension));
+
+ // Repeated fields are empty.
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedInt32Extension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedInt64Extension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedUint32Extension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedUint64Extension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedSint32Extension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedSint64Extension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedFixed32Extension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedFixed64Extension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedSfixed32Extension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedSfixed64Extension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedFloatExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedDoubleExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedBoolExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedStringExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedBytesExtension));
+
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedGroupExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedNestedMessageExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedForeignMessageExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedImportMessageExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedNestedEnumExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedForeignEnumExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedImportEnumExtension));
+
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedStringPieceExtension));
+ Assert.AreEqual(0, message.GetExtensionCount(Unittest.RepeatedCordExtension));
+
+ // HasBlah() should also be false for all default fields.
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultInt32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultInt64Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultUint32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultUint64Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultSint32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultSint64Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultFixed32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultFixed64Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultSfixed32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultSfixed64Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultFloatExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultDoubleExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultBoolExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultStringExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultBytesExtension));
+
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultNestedEnumExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultForeignEnumExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultImportEnumExtension));
+
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultStringPieceExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.DefaultCordExtension));
+
+ // Fields with defaults have their default values (duh).
+ Assert.AreEqual(41, message.GetExtension(Unittest.DefaultInt32Extension));
+ Assert.AreEqual(42L, message.GetExtension(Unittest.DefaultInt64Extension));
+ Assert.AreEqual(43U, message.GetExtension(Unittest.DefaultUint32Extension));
+ Assert.AreEqual(44UL, message.GetExtension(Unittest.DefaultUint64Extension));
+ Assert.AreEqual(-45, message.GetExtension(Unittest.DefaultSint32Extension));
+ Assert.AreEqual(46L, message.GetExtension(Unittest.DefaultSint64Extension));
+ Assert.AreEqual(47U, message.GetExtension(Unittest.DefaultFixed32Extension));
+ Assert.AreEqual(48UL, message.GetExtension(Unittest.DefaultFixed64Extension));
+ Assert.AreEqual(49, message.GetExtension(Unittest.DefaultSfixed32Extension));
+ Assert.AreEqual(-50L, message.GetExtension(Unittest.DefaultSfixed64Extension));
+ Assert.AreEqual(51.5F, message.GetExtension(Unittest.DefaultFloatExtension));
+ Assert.AreEqual(52e3D, message.GetExtension(Unittest.DefaultDoubleExtension));
+ Assert.AreEqual(true, message.GetExtension(Unittest.DefaultBoolExtension));
+ Assert.AreEqual("hello", message.GetExtension(Unittest.DefaultStringExtension));
+ Assert.AreEqual(ToBytes("world"), message.GetExtension(Unittest.DefaultBytesExtension));
+
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR,
+ message.GetExtension(Unittest.DefaultNestedEnumExtension));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAR, message.GetExtension(Unittest.DefaultForeignEnumExtension));
+ Assert.AreEqual(ImportEnum.IMPORT_BAR, message.GetExtension(Unittest.DefaultImportEnumExtension));
+
+ Assert.AreEqual("abc", message.GetExtension(Unittest.DefaultStringPieceExtension));
+ Assert.AreEqual("123", message.GetExtension(Unittest.DefaultCordExtension));
+
+ Assert.IsFalse(message.HasExtension(Unittest.OneofUint32Extension));
+ Assert.IsFalse(message.HasExtension(Unittest.OneofNestedMessageExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OneofStringExtension));
+ Assert.IsFalse(message.HasExtension(Unittest.OneofBytesExtension));
+ }
+
+ /// <summary>
+ /// Set every field of the specified message to a unique value.
+ /// </summary>
+ public static void SetPackedFields(TestPackedTypes.Builder message)
+ {
+ message.AddPackedInt32(601);
+ message.AddPackedInt64(602);
+ message.AddPackedUint32(603);
+ message.AddPackedUint64(604);
+ message.AddPackedSint32(605);
+ message.AddPackedSint64(606);
+ message.AddPackedFixed32(607);
+ message.AddPackedFixed64(608);
+ message.AddPackedSfixed32(609);
+ message.AddPackedSfixed64(610);
+ message.AddPackedFloat(611);
+ message.AddPackedDouble(612);
+ message.AddPackedBool(true);
+ message.AddPackedEnum(ForeignEnum.FOREIGN_BAR);
+ // Add a second one of each field.
+ message.AddPackedInt32(701);
+ message.AddPackedInt64(702);
+ message.AddPackedUint32(703);
+ message.AddPackedUint64(704);
+ message.AddPackedSint32(705);
+ message.AddPackedSint64(706);
+ message.AddPackedFixed32(707);
+ message.AddPackedFixed64(708);
+ message.AddPackedSfixed32(709);
+ message.AddPackedSfixed64(710);
+ message.AddPackedFloat(711);
+ message.AddPackedDouble(712);
+ message.AddPackedBool(false);
+ message.AddPackedEnum(ForeignEnum.FOREIGN_BAZ);
+ }
+
+ /// <summary>
+ /// Asserts that all the fields of the specified message are set to the values assigned
+ /// in SetPackedFields.
+ /// </summary>
+ public static void AssertPackedFieldsSet(TestPackedTypes message)
+ {
+ Assert.AreEqual(2, message.PackedInt32Count);
+ Assert.AreEqual(2, message.PackedInt64Count);
+ Assert.AreEqual(2, message.PackedUint32Count);
+ Assert.AreEqual(2, message.PackedUint64Count);
+ Assert.AreEqual(2, message.PackedSint32Count);
+ Assert.AreEqual(2, message.PackedSint64Count);
+ Assert.AreEqual(2, message.PackedFixed32Count);
+ Assert.AreEqual(2, message.PackedFixed64Count);
+ Assert.AreEqual(2, message.PackedSfixed32Count);
+ Assert.AreEqual(2, message.PackedSfixed64Count);
+ Assert.AreEqual(2, message.PackedFloatCount);
+ Assert.AreEqual(2, message.PackedDoubleCount);
+ Assert.AreEqual(2, message.PackedBoolCount);
+ Assert.AreEqual(2, message.PackedEnumCount);
+ Assert.AreEqual(601, message.GetPackedInt32(0));
+ Assert.AreEqual(602, message.GetPackedInt64(0));
+ Assert.AreEqual(603u, message.GetPackedUint32(0));
+ Assert.AreEqual(604u, message.GetPackedUint64(0));
+ Assert.AreEqual(605, message.GetPackedSint32(0));
+ Assert.AreEqual(606, message.GetPackedSint64(0));
+ Assert.AreEqual(607u, message.GetPackedFixed32(0));
+ Assert.AreEqual(608u, message.GetPackedFixed64(0));
+ Assert.AreEqual(609, message.GetPackedSfixed32(0));
+ Assert.AreEqual(610, message.GetPackedSfixed64(0));
+ Assert.AreEqual(611f, message.GetPackedFloat(0));
+ Assert.AreEqual(612d, message.GetPackedDouble(0));
+ Assert.AreEqual(true, message.GetPackedBool(0));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAR, message.GetPackedEnum(0));
+ Assert.AreEqual(701, message.GetPackedInt32(1));
+ Assert.AreEqual(702, message.GetPackedInt64(1));
+ Assert.AreEqual(703u, message.GetPackedUint32(1));
+ Assert.AreEqual(704u, message.GetPackedUint64(1));
+ Assert.AreEqual(705, message.GetPackedSint32(1));
+ Assert.AreEqual(706, message.GetPackedSint64(1));
+ Assert.AreEqual(707u, message.GetPackedFixed32(1));
+ Assert.AreEqual(708u, message.GetPackedFixed64(1));
+ Assert.AreEqual(709, message.GetPackedSfixed32(1));
+ Assert.AreEqual(710, message.GetPackedSfixed64(1));
+ Assert.AreEqual(711f, message.GetPackedFloat(1));
+ Assert.AreEqual(712d, message.GetPackedDouble(1));
+ Assert.AreEqual(false, message.GetPackedBool(1));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, message.GetPackedEnum(1));
+ }
+ /// <summary>
+ /// Asserts that all the fields of the specified message are set to the values assigned
+ /// in SetPackedFields.
+ /// </summary>
+ public static void AssertUnpackedFieldsSet(TestUnpackedTypes message)
+ {
+ Assert.AreEqual(2, message.UnpackedInt32Count);
+ Assert.AreEqual(2, message.UnpackedInt64Count);
+ Assert.AreEqual(2, message.UnpackedUint32Count);
+ Assert.AreEqual(2, message.UnpackedUint64Count);
+ Assert.AreEqual(2, message.UnpackedSint32Count);
+ Assert.AreEqual(2, message.UnpackedSint64Count);
+ Assert.AreEqual(2, message.UnpackedFixed32Count);
+ Assert.AreEqual(2, message.UnpackedFixed64Count);
+ Assert.AreEqual(2, message.UnpackedSfixed32Count);
+ Assert.AreEqual(2, message.UnpackedSfixed64Count);
+ Assert.AreEqual(2, message.UnpackedFloatCount);
+ Assert.AreEqual(2, message.UnpackedDoubleCount);
+ Assert.AreEqual(2, message.UnpackedBoolCount);
+ Assert.AreEqual(2, message.UnpackedEnumCount);
+ Assert.AreEqual(601, message.GetUnpackedInt32(0));
+ Assert.AreEqual(602, message.GetUnpackedInt64(0));
+ Assert.AreEqual(603u, message.GetUnpackedUint32(0));
+ Assert.AreEqual(604u, message.GetUnpackedUint64(0));
+ Assert.AreEqual(605, message.GetUnpackedSint32(0));
+ Assert.AreEqual(606, message.GetUnpackedSint64(0));
+ Assert.AreEqual(607u, message.GetUnpackedFixed32(0));
+ Assert.AreEqual(608u, message.GetUnpackedFixed64(0));
+ Assert.AreEqual(609, message.GetUnpackedSfixed32(0));
+ Assert.AreEqual(610, message.GetUnpackedSfixed64(0));
+ Assert.AreEqual(611f, message.GetUnpackedFloat(0));
+ Assert.AreEqual(612d, message.GetUnpackedDouble(0));
+ Assert.AreEqual(true, message.GetUnpackedBool(0));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAR, message.GetUnpackedEnum(0));
+ Assert.AreEqual(701, message.GetUnpackedInt32(1));
+ Assert.AreEqual(702, message.GetUnpackedInt64(1));
+ Assert.AreEqual(703u, message.GetUnpackedUint32(1));
+ Assert.AreEqual(704u, message.GetUnpackedUint64(1));
+ Assert.AreEqual(705, message.GetUnpackedSint32(1));
+ Assert.AreEqual(706, message.GetUnpackedSint64(1));
+ Assert.AreEqual(707u, message.GetUnpackedFixed32(1));
+ Assert.AreEqual(708u, message.GetUnpackedFixed64(1));
+ Assert.AreEqual(709, message.GetUnpackedSfixed32(1));
+ Assert.AreEqual(710, message.GetUnpackedSfixed64(1));
+ Assert.AreEqual(711f, message.GetUnpackedFloat(1));
+ Assert.AreEqual(712d, message.GetUnpackedDouble(1));
+ Assert.AreEqual(false, message.GetUnpackedBool(1));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, message.GetUnpackedEnum(1));
+ }
+
+ public static void SetPackedExtensions(TestPackedExtensions.Builder message)
+ {
+ message.AddExtension(Unittest.PackedInt32Extension, 601);
+ message.AddExtension(Unittest.PackedInt64Extension, 602L);
+ message.AddExtension(Unittest.PackedUint32Extension, 603U);
+ message.AddExtension(Unittest.PackedUint64Extension, 604UL);
+ message.AddExtension(Unittest.PackedSint32Extension, 605);
+ message.AddExtension(Unittest.PackedSint64Extension, 606L);
+ message.AddExtension(Unittest.PackedFixed32Extension, 607U);
+ message.AddExtension(Unittest.PackedFixed64Extension, 608UL);
+ message.AddExtension(Unittest.PackedSfixed32Extension, 609);
+ message.AddExtension(Unittest.PackedSfixed64Extension, 610L);
+ message.AddExtension(Unittest.PackedFloatExtension, 611F);
+ message.AddExtension(Unittest.PackedDoubleExtension, 612D);
+ message.AddExtension(Unittest.PackedBoolExtension, true);
+ message.AddExtension(Unittest.PackedEnumExtension, ForeignEnum.FOREIGN_BAR);
+ // Add a second one of each field.
+ message.AddExtension(Unittest.PackedInt32Extension, 701);
+ message.AddExtension(Unittest.PackedInt64Extension, 702L);
+ message.AddExtension(Unittest.PackedUint32Extension, 703U);
+ message.AddExtension(Unittest.PackedUint64Extension, 704UL);
+ message.AddExtension(Unittest.PackedSint32Extension, 705);
+ message.AddExtension(Unittest.PackedSint64Extension, 706L);
+ message.AddExtension(Unittest.PackedFixed32Extension, 707U);
+ message.AddExtension(Unittest.PackedFixed64Extension, 708UL);
+ message.AddExtension(Unittest.PackedSfixed32Extension, 709);
+ message.AddExtension(Unittest.PackedSfixed64Extension, 710L);
+ message.AddExtension(Unittest.PackedFloatExtension, 711F);
+ message.AddExtension(Unittest.PackedDoubleExtension, 712D);
+ message.AddExtension(Unittest.PackedBoolExtension, false);
+ message.AddExtension(Unittest.PackedEnumExtension, ForeignEnum.FOREIGN_BAZ);
+ }
+
+ public static void AssertPackedExtensionsSet(TestPackedExtensions message)
+ {
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedInt32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedInt64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedUint32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedUint64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedSint32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedSint64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedFixed32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedFixed64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedSfixed32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedSfixed64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedFloatExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedDoubleExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedBoolExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.PackedEnumExtension));
+ Assert.AreEqual(601, message.GetExtension(Unittest.PackedInt32Extension, 0));
+ Assert.AreEqual(602L, message.GetExtension(Unittest.PackedInt64Extension, 0));
+ Assert.AreEqual(603u, message.GetExtension(Unittest.PackedUint32Extension, 0));
+ Assert.AreEqual(604uL, message.GetExtension(Unittest.PackedUint64Extension, 0));
+ Assert.AreEqual(605, message.GetExtension(Unittest.PackedSint32Extension, 0));
+ Assert.AreEqual(606L, message.GetExtension(Unittest.PackedSint64Extension, 0));
+ Assert.AreEqual(607u, message.GetExtension(Unittest.PackedFixed32Extension, 0));
+ Assert.AreEqual(608uL, message.GetExtension(Unittest.PackedFixed64Extension, 0));
+ Assert.AreEqual(609, message.GetExtension(Unittest.PackedSfixed32Extension, 0));
+ Assert.AreEqual(610L, message.GetExtension(Unittest.PackedSfixed64Extension, 0));
+ Assert.AreEqual(611F, message.GetExtension(Unittest.PackedFloatExtension, 0));
+ Assert.AreEqual(612D, message.GetExtension(Unittest.PackedDoubleExtension, 0));
+ Assert.AreEqual(true, message.GetExtension(Unittest.PackedBoolExtension, 0));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAR,
+ message.GetExtension(Unittest.PackedEnumExtension, 0));
+ Assert.AreEqual(701, message.GetExtension(Unittest.PackedInt32Extension, 1));
+ Assert.AreEqual(702L, message.GetExtension(Unittest.PackedInt64Extension, 1));
+ Assert.AreEqual(703u, message.GetExtension(Unittest.PackedUint32Extension, 1));
+ Assert.AreEqual(704uL, message.GetExtension(Unittest.PackedUint64Extension, 1));
+ Assert.AreEqual(705, message.GetExtension(Unittest.PackedSint32Extension, 1));
+ Assert.AreEqual(706L, message.GetExtension(Unittest.PackedSint64Extension, 1));
+ Assert.AreEqual(707u, message.GetExtension(Unittest.PackedFixed32Extension, 1));
+ Assert.AreEqual(708uL, message.GetExtension(Unittest.PackedFixed64Extension, 1));
+ Assert.AreEqual(709, message.GetExtension(Unittest.PackedSfixed32Extension, 1));
+ Assert.AreEqual(710L, message.GetExtension(Unittest.PackedSfixed64Extension, 1));
+ Assert.AreEqual(711F, message.GetExtension(Unittest.PackedFloatExtension, 1));
+ Assert.AreEqual(712D, message.GetExtension(Unittest.PackedDoubleExtension, 1));
+ Assert.AreEqual(false, message.GetExtension(Unittest.PackedBoolExtension, 1));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, message.GetExtension(Unittest.PackedEnumExtension, 1));
+ }
+
+ public static void AssertUnpackedExtensionsSet(TestUnpackedExtensions message)
+ {
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedInt32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedInt64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedUint32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedUint64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedSint32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedSint64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedFixed32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedFixed64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedSfixed32Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedSfixed64Extension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedFloatExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedDoubleExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedBoolExtension));
+ Assert.AreEqual(2, message.GetExtensionCount(Unittest.UnpackedEnumExtension));
+ Assert.AreEqual(601, message.GetExtension(Unittest.UnpackedInt32Extension, 0));
+ Assert.AreEqual(602L, message.GetExtension(Unittest.UnpackedInt64Extension, 0));
+ Assert.AreEqual(603u, message.GetExtension(Unittest.UnpackedUint32Extension, 0));
+ Assert.AreEqual(604uL, message.GetExtension(Unittest.UnpackedUint64Extension, 0));
+ Assert.AreEqual(605, message.GetExtension(Unittest.UnpackedSint32Extension, 0));
+ Assert.AreEqual(606L, message.GetExtension(Unittest.UnpackedSint64Extension, 0));
+ Assert.AreEqual(607u, message.GetExtension(Unittest.UnpackedFixed32Extension, 0));
+ Assert.AreEqual(608uL, message.GetExtension(Unittest.UnpackedFixed64Extension, 0));
+ Assert.AreEqual(609, message.GetExtension(Unittest.UnpackedSfixed32Extension, 0));
+ Assert.AreEqual(610L, message.GetExtension(Unittest.UnpackedSfixed64Extension, 0));
+ Assert.AreEqual(611F, message.GetExtension(Unittest.UnpackedFloatExtension, 0));
+ Assert.AreEqual(612D, message.GetExtension(Unittest.UnpackedDoubleExtension, 0));
+ Assert.AreEqual(true, message.GetExtension(Unittest.UnpackedBoolExtension, 0));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAR, message.GetExtension(Unittest.UnpackedEnumExtension, 0));
+ Assert.AreEqual(701, message.GetExtension(Unittest.UnpackedInt32Extension, 1));
+ Assert.AreEqual(702L, message.GetExtension(Unittest.UnpackedInt64Extension, 1));
+ Assert.AreEqual(703u, message.GetExtension(Unittest.UnpackedUint32Extension, 1));
+ Assert.AreEqual(704uL, message.GetExtension(Unittest.UnpackedUint64Extension, 1));
+ Assert.AreEqual(705, message.GetExtension(Unittest.UnpackedSint32Extension, 1));
+ Assert.AreEqual(706L, message.GetExtension(Unittest.UnpackedSint64Extension, 1));
+ Assert.AreEqual(707u, message.GetExtension(Unittest.UnpackedFixed32Extension, 1));
+ Assert.AreEqual(708uL, message.GetExtension(Unittest.UnpackedFixed64Extension, 1));
+ Assert.AreEqual(709, message.GetExtension(Unittest.UnpackedSfixed32Extension, 1));
+ Assert.AreEqual(710L, message.GetExtension(Unittest.UnpackedSfixed64Extension, 1));
+ Assert.AreEqual(711F, message.GetExtension(Unittest.UnpackedFloatExtension, 1));
+ Assert.AreEqual(712D, message.GetExtension(Unittest.UnpackedDoubleExtension, 1));
+ Assert.AreEqual(false, message.GetExtension(Unittest.UnpackedBoolExtension, 1));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, message.GetExtension(Unittest.UnpackedEnumExtension, 1));
+ }
+
+ public static void AssertAtMostOneFieldSetOneof(TestOneof2 message)
+ {
+ int count = 0;
+ if (message.HasFooInt) { ++count; }
+ if (message.HasFooString) { ++count; }
+ if (message.HasFooCord) { ++count; }
+ if (message.HasFooStringPiece) { ++count; }
+ if (message.HasFooBytes) { ++count; }
+ if (message.HasFooEnum) { ++count; }
+ if (message.HasFooMessage) { ++count; }
+ if (message.HasFooGroup) { ++count; }
+ if (message.HasFooLazyMessage) { ++count; }
+ Assert.True(count <= 1);
+
+ count = 0;
+ if (message.HasBarInt) { ++count; }
+ if (message.HasBarString) { ++count; }
+ if (message.HasBarCord) { ++count; }
+ if (message.HasBarStringPiece) { ++count; }
+ if (message.HasBarBytes) { ++count; }
+ if (message.HasBarEnum) { ++count; }
+ Assert.True(count <= 1);
+
+ switch (message.FooCase)
+ {
+ case TestOneof2.FooOneofCase.FooInt:
+ {
+ Assert.True(message.HasFooInt);
+ break;
+ }
+ case TestOneof2.FooOneofCase.FooString:
+ {
+ Assert.True(message.HasFooString);
+ break;
+ }
+ case TestOneof2.FooOneofCase.FooCord:
+ {
+ Assert.True(message.HasFooCord);
+ break;
+ }
+ case TestOneof2.FooOneofCase.FooBytes:
+ {
+ Assert.True(message.HasFooBytes);
+ break;
+ }
+ case TestOneof2.FooOneofCase.FooEnum:
+ {
+ Assert.True(message.HasFooEnum);
+ break;
+ }
+ case TestOneof2.FooOneofCase.FooMessage:
+ {
+ Assert.True(message.HasFooMessage);
+ break;
+ }
+ case TestOneof2.FooOneofCase.FooGroup:
+ {
+ Assert.True(message.HasFooGroup);
+ break;
+ }
+ case TestOneof2.FooOneofCase.FooLazyMessage:
+ {
+ Assert.True(message.HasFooLazyMessage);
+ break;
+ }
+ case TestOneof2.FooOneofCase.None: { break; }
+ }
+ }
+
+ private static readonly string[] TestCultures = {"en-US", "en-GB", "fr-FR", "de-DE"};
+
+ public delegate void CultureAction();
+
+ public static void TestInMultipleCultures(CultureAction test)
+ {
+#if COMPACT_FRAMEWORK
+ test();
+#else
+ CultureInfo originalCulture = Thread.CurrentThread.CurrentCulture;
+ foreach (string culture in TestCultures)
+ {
+ try
+ {
+ Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
+ test();
+ }
+ finally
+ {
+ Thread.CurrentThread.CurrentCulture = originalCulture;
+ }
+ }
+#endif
+ }
+
+ /// <summary>
+ /// Helper to construct a byte array from a bunch of bytes.
+ /// </summary>
+ internal static byte[] Bytes(params byte[] bytesAsInts)
+ {
+ byte[] bytes = new byte[bytesAsInts.Length];
+ for (int i = 0; i < bytesAsInts.Length; i++)
+ {
+ bytes[i] = (byte) bytesAsInts[i];
+ }
+ return bytes;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/TestWriterFormatJson.cs b/csharp/src/ProtocolBuffers.Test/TestWriterFormatJson.cs
new file mode 100644
index 00000000..c218deed
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestWriterFormatJson.cs
@@ -0,0 +1,498 @@
+using System;
+using System.IO;
+using System.Runtime.InteropServices;
+using System.Text;
+using EnumOptions = Google.ProtocolBuffers.TestProtos.EnumOptions;
+using Google.ProtocolBuffers.DescriptorProtos;
+using Google.ProtocolBuffers.Serialization;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class TestWriterFormatJson
+ {
+ [Test]
+ public void Example_FromJson()
+ {
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+
+ //3.5: builder.MergeFromJson(@"{""valid"":true}");
+ Extensions.MergeFromJson(builder, @"{""valid"":true}");
+
+ TestXmlMessage message = builder.Build();
+ Assert.AreEqual(true, message.Valid);
+ }
+
+ [Test]
+ public void Example_ToJson()
+ {
+ TestXmlMessage message =
+ TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .Build();
+
+ //3.5: string json = message.ToJson();
+ string json = Extensions.ToJson(message);
+
+ Assert.AreEqual(@"{""valid"":true}", json);
+ }
+
+ [Test]
+ public void Example_WriteJsonUsingICodedOutputStream()
+ {
+ TestXmlMessage message =
+ TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .Build();
+
+ using (TextWriter output = new StringWriter())
+ {
+ ICodedOutputStream writer = JsonFormatWriter.CreateInstance(output);
+ writer.WriteMessageStart(); //manually begin the message, output is '{'
+
+ writer.Flush();
+ Assert.AreEqual("{", output.ToString());
+
+ ICodedOutputStream stream = writer;
+ message.WriteTo(stream); //write the message normally
+
+ writer.Flush();
+ Assert.AreEqual(@"{""valid"":true", output.ToString());
+
+ writer.WriteMessageEnd(); //manually write the end message '}'
+ Assert.AreEqual(@"{""valid"":true}", output.ToString());
+ }
+ }
+
+ [Test]
+ public void Example_ReadJsonUsingICodedInputStream()
+ {
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ ICodedInputStream reader = JsonFormatReader.CreateInstance(@"{""valid"":true}");
+
+ reader.ReadMessageStart(); //manually read the begin the message '{'
+
+ builder.MergeFrom(reader); //write the message normally
+
+ reader.ReadMessageEnd(); //manually read the end message '}'
+ }
+
+ protected string Content;
+ [System.Diagnostics.DebuggerNonUserCode]
+ protected void FormatterAssert<TMessage>(TMessage message, params string[] expecting) where TMessage : IMessageLite
+ {
+ StringWriter sw = new StringWriter();
+ JsonFormatWriter.CreateInstance(sw).WriteMessage(message);
+
+ Content = sw.ToString();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestExtrasXmltest.RegisterAllExtensions(registry);
+
+ IMessageLite copy =
+ JsonFormatReader.CreateInstance(Content)
+ .Merge(message.WeakCreateBuilderForType(), registry).WeakBuild();
+
+ Assert.AreEqual(typeof(TMessage), copy.GetType());
+ Assert.AreEqual(message, copy);
+ foreach (string expect in expecting)
+ {
+ Assert.IsTrue(Content.IndexOf(expect) >= 0);
+ }
+ }
+
+ [Test]
+ public void TestToJsonParseFromJson()
+ {
+ TestAllTypes msg = new TestAllTypes.Builder().SetDefaultBool(true).Build();
+ string json = Extensions.ToJson(msg);
+ Assert.AreEqual("{\"default_bool\":true}", json);
+ TestAllTypes copy = Extensions.MergeFromJson(new TestAllTypes.Builder(), json).Build();
+ Assert.IsTrue(copy.HasDefaultBool && copy.DefaultBool);
+ Assert.AreEqual(msg, copy);
+ }
+
+ [Test]
+ public void TestToJsonParseFromJsonReader()
+ {
+ TestAllTypes msg = new TestAllTypes.Builder().SetDefaultBool(true).Build();
+ string json = Extensions.ToJson(msg);
+ Assert.AreEqual("{\"default_bool\":true}", json);
+ TestAllTypes copy = Extensions.MergeFromJson(new TestAllTypes.Builder(), new StringReader(json)).Build();
+ Assert.IsTrue(copy.HasDefaultBool && copy.DefaultBool);
+ Assert.AreEqual(msg, copy);
+ }
+
+ [Test]
+ public void TestJsonFormatted()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .SetNumber(0x1010)
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder())
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.ONE))
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.ONE).AddOptions(EnumOptions.TWO))
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().SetBinary(ByteString.CopyFromUtf8("abc")))
+ .Build();
+
+ StringWriter sw = new StringWriter();
+ JsonFormatWriter.CreateInstance(sw).Formatted()
+ .WriteMessage(message);
+
+ string json = sw.ToString();
+
+ TestXmlMessage copy = JsonFormatReader.CreateInstance(json)
+ .Merge(TestXmlMessage.CreateBuilder()).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestEmptyMessage()
+ {
+ FormatterAssert(
+ TestXmlChild.CreateBuilder()
+ .Build(),
+ @"{}"
+ );
+ }
+
+ [Test]
+ public void TestRepeatedField()
+ {
+ FormatterAssert(
+ TestXmlChild.CreateBuilder()
+ .AddOptions(EnumOptions.ONE)
+ .AddOptions(EnumOptions.TWO)
+ .Build(),
+ @"{""options"":[""ONE"",""TWO""]}"
+ );
+ }
+
+ [Test]
+ public void TestNestedEmptyMessage()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .SetChild(TestXmlChild.CreateBuilder().Build())
+ .Build(),
+ @"{""child"":{}}"
+ );
+ }
+
+ [Test]
+ public void TestNestedMessage()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .SetChild(TestXmlChild.CreateBuilder().AddOptions(EnumOptions.TWO).Build())
+ .Build(),
+ @"{""child"":{""options"":[""TWO""]}}"
+ );
+ }
+
+ [Test]
+ public void TestBooleanTypes()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .Build(),
+ @"{""valid"":true}"
+ );
+ }
+
+ [Test]
+ public void TestFullMessage()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .SetText("text")
+ .AddTextlines("a")
+ .AddTextlines("b")
+ .AddTextlines("c")
+ .SetNumber(0x1010101010)
+ .AddNumbers(1)
+ .AddNumbers(2)
+ .AddNumbers(3)
+ .SetChild(TestXmlChild.CreateBuilder().AddOptions(EnumOptions.ONE).SetBinary(ByteString.CopyFrom(new byte[1])))
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.TWO).SetBinary(ByteString.CopyFrom(new byte[2])))
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.THREE).SetBinary(ByteString.CopyFrom(new byte[3])))
+ .Build(),
+ @"""text"":""text""",
+ @"[""a"",""b"",""c""]",
+ @"[1,2,3]",
+ @"""child"":{",
+ @"""children"":[{",
+ @"AA==",
+ @"AAA=",
+ @"AAAA",
+ 0x1010101010L.ToString()
+ );
+ }
+
+ [Test]
+ public void TestMessageWithXmlText()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .SetText("<text></text>")
+ .Build(),
+ @"{""text"":""<text><\/text>""}"
+ );
+ }
+
+ [Test]
+ public void TestWithEscapeChars()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .SetText(" \t <- \"leading space and trailing\" -> \\ \xef54 \x0000 \xFF \xFFFF \b \f \r \n \t ")
+ .Build(),
+ "{\"text\":\" \\t <- \\\"leading space and trailing\\\" -> \\\\ \\uef54 \\u0000 \\u00ff \\uffff \\b \\f \\r \\n \\t \"}"
+ );
+ }
+
+ [Test]
+ public void TestWithExtensionText()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .SetValid(false)
+ .SetExtension(UnittestExtrasXmltest.ExtensionText, " extension text value ! ")
+ .Build(),
+ @"{""valid"":false,""extension_text"":"" extension text value ! ""}"
+ );
+ }
+
+ [Test]
+ public void TestWithExtensionNumber()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .SetExtension(UnittestExtrasXmltest.ExtensionMessage,
+ new TestXmlExtension.Builder().SetNumber(42).Build())
+ .Build(),
+ @"{""number"":42}"
+ );
+ }
+
+ [Test]
+ public void TestWithExtensionArray()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 100)
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 101)
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 102)
+ .Build(),
+ @"{""extension_number"":[100,101,102]}"
+ );
+ }
+
+ [Test]
+ public void TestWithExtensionEnum()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .SetExtension(UnittestExtrasXmltest.ExtensionEnum, EnumOptions.ONE)
+ .Build(),
+ @"{""extension_enum"":""ONE""}"
+ );
+ }
+
+ [Test]
+ public void TestMessageWithExtensions()
+ {
+ FormatterAssert(
+ TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .SetText("text")
+ .SetExtension(UnittestExtrasXmltest.ExtensionText, "extension text")
+ .SetExtension(UnittestExtrasXmltest.ExtensionMessage, new TestXmlExtension.Builder().SetNumber(42).Build())
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 100)
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 101)
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 102)
+ .SetExtension(UnittestExtrasXmltest.ExtensionEnum, EnumOptions.ONE)
+ .Build(),
+ @"""text"":""text""",
+ @"""valid"":true",
+ @"""extension_enum"":""ONE""",
+ @"""extension_text"":""extension text""",
+ @"""extension_number"":[100,101,102]",
+ @"""extension_message"":{""number"":42}"
+ );
+ }
+
+ [Test]
+ public void TestMessageMissingExtensions()
+ {
+ TestXmlMessage original = TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .SetText("text")
+ .SetExtension(UnittestExtrasXmltest.ExtensionText, " extension text value ! ")
+ .SetExtension(UnittestExtrasXmltest.ExtensionMessage, new TestXmlExtension.Builder().SetNumber(42).Build())
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 100)
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 101)
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 102)
+ .SetExtension(UnittestExtrasXmltest.ExtensionEnum, EnumOptions.ONE)
+ .Build();
+
+ TestXmlMessage message = original.ToBuilder()
+ .ClearExtension(UnittestExtrasXmltest.ExtensionText)
+ .ClearExtension(UnittestExtrasXmltest.ExtensionMessage)
+ .ClearExtension(UnittestExtrasXmltest.ExtensionNumber)
+ .ClearExtension(UnittestExtrasXmltest.ExtensionEnum)
+ .Build();
+
+ JsonFormatWriter writer = JsonFormatWriter.CreateInstance();
+ writer.WriteMessage(original);
+ Content = writer.ToString();
+
+ IMessageLite copy = JsonFormatReader.CreateInstance(Content)
+ .Merge(message.CreateBuilderForType()).Build();
+
+ Assert.AreNotEqual(original, message);
+ Assert.AreNotEqual(original, copy);
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestMergeFields()
+ {
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ builder.MergeFrom(JsonFormatReader.CreateInstance("\"valid\": true"));
+ builder.MergeFrom(JsonFormatReader.CreateInstance("\"text\": \"text\", \"number\": \"411\""));
+ Assert.AreEqual(true, builder.Valid);
+ Assert.AreEqual("text", builder.Text);
+ Assert.AreEqual(411, builder.Number);
+ }
+
+ [Test]
+ public void TestMessageArray()
+ {
+ JsonFormatWriter writer = JsonFormatWriter.CreateInstance().Formatted();
+ using (writer.StartArray())
+ {
+ writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(1).AddTextlines("a").Build());
+ writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(2).AddTextlines("b").Build());
+ writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(3).AddTextlines("c").Build());
+ }
+ string json = writer.ToString();
+ JsonFormatReader reader = JsonFormatReader.CreateInstance(json);
+
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ int ordinal = 0;
+
+ foreach (JsonFormatReader r in reader.EnumerateArray())
+ {
+ r.Merge(builder);
+ Assert.AreEqual(++ordinal, builder.Number);
+ }
+ Assert.AreEqual(3, ordinal);
+ Assert.AreEqual(3, builder.TextlinesCount);
+ }
+
+ [Test]
+ public void TestNestedMessageArray()
+ {
+ JsonFormatWriter writer = JsonFormatWriter.CreateInstance();
+ using (writer.StartArray())
+ {
+ using (writer.StartArray())
+ {
+ writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(1).AddTextlines("a").Build());
+ writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(2).AddTextlines("b").Build());
+ }
+ using (writer.StartArray())
+ writer.WriteMessage(TestXmlMessage.CreateBuilder().SetNumber(3).AddTextlines("c").Build());
+ }
+ string json = writer.ToString();
+ JsonFormatReader reader = JsonFormatReader.CreateInstance(json);
+
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ int ordinal = 0;
+
+ foreach (JsonFormatReader r in reader.EnumerateArray())
+ foreach (JsonFormatReader r2 in r.EnumerateArray())
+ {
+ r2.Merge(builder);
+ Assert.AreEqual(++ordinal, builder.Number);
+ }
+ Assert.AreEqual(3, ordinal);
+ Assert.AreEqual(3, builder.TextlinesCount);
+ }
+
+ [Test]
+ public void TestReadWriteJsonWithoutRoot()
+ {
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ TestXmlMessage message = builder.SetText("abc").SetNumber(123).Build();
+
+ string Json;
+ using (StringWriter sw = new StringWriter())
+ {
+ ICodedOutputStream output = JsonFormatWriter.CreateInstance(sw);
+
+ message.WriteTo(output);
+ output.Flush();
+ Json = sw.ToString();
+ }
+ Assert.AreEqual(@"""text"":""abc"",""number"":123", Json);
+
+ ICodedInputStream input = JsonFormatReader.CreateInstance(Json);
+ TestXmlMessage copy = TestXmlMessage.CreateBuilder().MergeFrom(input).Build();
+
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestRecursiveLimit()
+ {
+ StringBuilder sb = new StringBuilder(8192);
+ for (int i = 0; i < 80; i++)
+ {
+ sb.Append("{\"child\":");
+ }
+ Assert.Throws<RecursionLimitExceededException>(() => Extensions.MergeFromJson(new TestXmlRescursive.Builder(), sb.ToString()).Build());
+ }
+
+ [Test]
+ public void FailWithEmptyText()
+ {
+ Assert.Throws<FormatException>(() => JsonFormatReader.CreateInstance("").Merge(TestXmlMessage.CreateBuilder()));
+ }
+
+ [Test]
+ public void FailWithUnexpectedValue()
+ {
+ Assert.Throws<FormatException>(() => JsonFormatReader.CreateInstance("{{}}").Merge(TestXmlMessage.CreateBuilder()));
+ }
+
+ [Test]
+ public void FailWithUnQuotedName()
+ {
+ Assert.Throws<FormatException>(() => JsonFormatReader.CreateInstance("{name:{}}").Merge(TestXmlMessage.CreateBuilder()));
+ }
+
+ [Test]
+ public void FailWithUnexpectedType()
+ {
+ Assert.Throws<FormatException>(() => JsonFormatReader.CreateInstance("{\"valid\":{}}").Merge(TestXmlMessage.CreateBuilder()));
+ }
+
+ // See issue 64 for background.
+ [Test]
+ public void ToJsonRequiringBufferExpansion()
+ {
+ string s = new string('.', 4086);
+ var opts = FileDescriptorProto.CreateBuilder()
+ .SetName(s)
+ .SetPackage("package")
+ .BuildPartial();
+
+ Assert.NotNull(Extensions.ToJson(opts));
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/TestWriterFormatXml.cs b/csharp/src/ProtocolBuffers.Test/TestWriterFormatXml.cs
new file mode 100644
index 00000000..38d7ad18
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TestWriterFormatXml.cs
@@ -0,0 +1,468 @@
+using System;
+using System.IO;
+using System.Text;
+using System.Xml;
+using Google.ProtocolBuffers.Serialization;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class TestWriterFormatXml
+ {
+ [Test]
+ public void Example_FromXml()
+ {
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+
+ XmlReader rdr = XmlReader.Create(new StringReader(@"<root><valid>true</valid></root>"));
+ //3.5: builder.MergeFromXml(rdr);
+ Extensions.MergeFromXml(builder, rdr);
+
+ TestXmlMessage message = builder.Build();
+ Assert.AreEqual(true, message.Valid);
+ }
+
+ [Test]
+ public void Example_ToXml()
+ {
+ TestXmlMessage message =
+ TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .Build();
+
+ //3.5: string Xml = message.ToXml();
+ string Xml = Extensions.ToXml(message);
+
+ Assert.AreEqual(@"<root><valid>true</valid></root>", Xml);
+ }
+
+ [Test]
+ public void Example_WriteXmlUsingICodedOutputStream()
+ {
+ TestXmlMessage message =
+ TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .Build();
+
+ using (TextWriter output = new StringWriter())
+ {
+ ICodedOutputStream writer = XmlFormatWriter.CreateInstance(output);
+ writer.WriteMessageStart(); //manually begin the message, output is '{'
+
+ ICodedOutputStream stream = writer;
+ message.WriteTo(stream); //write the message normally
+
+ writer.WriteMessageEnd(); //manually write the end message '}'
+ Assert.AreEqual(@"<root><valid>true</valid></root>", output.ToString());
+ }
+ }
+
+ [Test]
+ public void Example_ReadXmlUsingICodedInputStream()
+ {
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ ICodedInputStream reader = XmlFormatReader.CreateInstance(@"<root><valid>true</valid></root>");
+
+ reader.ReadMessageStart(); //manually read the begin the message '{'
+
+ builder.MergeFrom(reader); //read the message normally
+
+ reader.ReadMessageEnd(); //manually read the end message '}'
+ }
+
+ [Test]
+ public void TestToXmlParseFromXml()
+ {
+ TestAllTypes msg = new TestAllTypes.Builder().SetDefaultBool(true).Build();
+ string xml = Extensions.ToXml(msg);
+ Assert.AreEqual("<root><default_bool>true</default_bool></root>", xml);
+ TestAllTypes copy = Extensions.MergeFromXml(new TestAllTypes.Builder(), XmlReader.Create(new StringReader(xml))).Build();
+ Assert.IsTrue(copy.HasDefaultBool && copy.DefaultBool);
+ Assert.AreEqual(msg, copy);
+ }
+
+ [Test]
+ public void TestToXmlParseFromXmlWithRootName()
+ {
+ TestAllTypes msg = new TestAllTypes.Builder().SetDefaultBool(true).Build();
+ string xml = Extensions.ToXml(msg, "message");
+ Assert.AreEqual("<message><default_bool>true</default_bool></message>", xml);
+ TestAllTypes copy = Extensions.MergeFromXml(new TestAllTypes.Builder(), "message", XmlReader.Create(new StringReader(xml))).Build();
+ Assert.IsTrue(copy.HasDefaultBool && copy.DefaultBool);
+ Assert.AreEqual(msg, copy);
+ }
+
+ [Test]
+ public void TestEmptyMessage()
+ {
+ TestXmlChild message = TestXmlChild.CreateBuilder()
+ .Build();
+
+ StringWriter sw = new StringWriter();
+ XmlWriter xw = XmlWriter.Create(sw);
+
+ //When we call message.WriteTo, we are responsible for the root element
+ xw.WriteStartElement("root");
+ message.WriteTo(XmlFormatWriter.CreateInstance(xw));
+ xw.WriteEndElement();
+ xw.Flush();
+
+ string xml = sw.ToString();
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlChild copy = rdr.Merge(TestXmlChild.CreateBuilder()).Build();
+ Assert.AreEqual(message, copy);
+ }
+ [Test]
+ public void TestRepeatedField()
+ {
+ TestXmlChild message = TestXmlChild.CreateBuilder()
+ .AddOptions(EnumOptions.ONE)
+ .AddOptions(EnumOptions.TWO)
+ .Build();
+
+ //Allow the writer to write the root element
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlChild copy = rdr.Merge(TestXmlChild.CreateBuilder()).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestNestedEmptyMessage()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetChild(TestXmlChild.CreateBuilder().Build())
+ .Build();
+
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder()).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestNestedMessage()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetChild(TestXmlChild.CreateBuilder().AddOptions(EnumOptions.TWO).Build())
+ .Build();
+
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder()).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestBooleanTypes()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .Build();
+
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder()).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestFullMessage()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .SetText("text")
+ .AddTextlines("a")
+ .AddTextlines("b")
+ .AddTextlines("c")
+ .SetNumber(0x1010101010)
+ .AddNumbers(1)
+ .AddNumbers(2)
+ .AddNumbers(3)
+ .SetChild(TestXmlChild.CreateBuilder().AddOptions(EnumOptions.ONE).SetBinary(ByteString.CopyFrom(new byte[1])))
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.TWO).SetBinary(ByteString.CopyFrom(new byte[2])))
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.THREE).SetBinary(ByteString.CopyFrom(new byte[3])))
+ .Build();
+
+ StringWriter sw = new StringWriter();
+ XmlWriter xwtr = XmlWriter.Create(sw, new XmlWriterSettings {Indent = true, IndentChars = " "});
+
+ XmlFormatWriter.CreateInstance(xwtr).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder()).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestFullMessageWithRichTypes()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .SetText("text")
+ .AddTextlines("a")
+ .AddTextlines("b")
+ .AddTextlines("c")
+ .SetNumber(0x1010101010)
+ .AddNumbers(1)
+ .AddNumbers(2)
+ .AddNumbers(3)
+ .SetChild(TestXmlChild.CreateBuilder().AddOptions(EnumOptions.ONE).SetBinary(ByteString.CopyFrom(new byte[1])))
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.TWO).SetBinary(ByteString.CopyFrom(new byte[2])))
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.THREE).SetBinary(ByteString.CopyFrom(new byte[3])))
+ .Build();
+
+ StringWriter sw = new StringWriter();
+ XmlWriter xwtr = XmlWriter.Create(sw, new XmlWriterSettings { Indent = true, IndentChars = " " });
+
+ XmlFormatWriter.CreateInstance(xwtr)
+ .SetOptions(XmlWriterOptions.OutputNestedArrays | XmlWriterOptions.OutputEnumValues)
+ .WriteMessage("root", message);
+
+ string xml = sw.ToString();
+
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ rdr.Options = XmlReaderOptions.ReadNestedArrays;
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder()).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestFullMessageWithUnknownFields()
+ {
+ TestXmlMessage origial = TestXmlMessage.CreateBuilder()
+ .SetValid(true)
+ .SetText("text")
+ .AddTextlines("a")
+ .AddTextlines("b")
+ .AddTextlines("c")
+ .SetNumber(0x1010101010)
+ .AddNumbers(1)
+ .AddNumbers(2)
+ .AddNumbers(3)
+ .SetChild(TestXmlChild.CreateBuilder().AddOptions(EnumOptions.ONE).SetBinary(ByteString.CopyFrom(new byte[1])))
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.TWO).SetBinary(ByteString.CopyFrom(new byte[2])))
+ .AddChildren(TestXmlMessage.Types.Children.CreateBuilder().AddOptions(EnumOptions.THREE).SetBinary(ByteString.CopyFrom(new byte[3])))
+ .Build();
+ TestXmlNoFields message = TestXmlNoFields.CreateBuilder().MergeFrom(origial.ToByteArray()).Build();
+
+ Assert.AreEqual(0, message.AllFields.Count);
+
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw)
+ .SetOptions(XmlWriterOptions.OutputNestedArrays | XmlWriterOptions.OutputEnumValues)
+ .WriteMessage("root", message);
+
+ string xml = sw.ToString();
+
+ using (XmlReader x = XmlReader.Create(new StringReader(xml)))
+ {
+ x.MoveToContent();
+ Assert.AreEqual(XmlNodeType.Element, x.NodeType);
+ //should always be empty
+ Assert.IsTrue(x.IsEmptyElement ||
+ (x.Read() && x.NodeType == XmlNodeType.EndElement)
+ );
+ }
+
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ rdr.Options = XmlReaderOptions.ReadNestedArrays;
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder()).Build();
+ Assert.AreEqual(TestXmlMessage.DefaultInstance, copy);
+ }
+
+ [Test]
+ public void TestMessageWithXmlText()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetText("<text>").Build();
+
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder()).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestXmlWithWhitespace()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetText(" \t <- leading space and trailing -> \r\n\t").Build();
+
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder()).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestXmlWithExtensionText()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetExtension(UnittestExtrasXmltest.ExtensionText, " extension text value ! ")
+ .Build();
+
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestExtrasXmltest.RegisterAllExtensions(registry);
+
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder(), registry).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestXmlWithExtensionMessage()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetExtension(UnittestExtrasXmltest.ExtensionMessage,
+ new TestXmlExtension.Builder().SetNumber(42).Build()).Build();
+
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestExtrasXmltest.RegisterAllExtensions(registry);
+
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder(), registry).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestXmlWithExtensionArray()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 100)
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 101)
+ .AddExtension(UnittestExtrasXmltest.ExtensionNumber, 102)
+ .Build();
+
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestExtrasXmltest.RegisterAllExtensions(registry);
+
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder(), registry).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestXmlWithExtensionEnum()
+ {
+ TestXmlMessage message = TestXmlMessage.CreateBuilder()
+ .SetExtension(UnittestExtrasXmltest.ExtensionEnum, EnumOptions.ONE)
+ .Build();
+
+ StringWriter sw = new StringWriter();
+ XmlFormatWriter.CreateInstance(sw).WriteMessage("root", message);
+
+ string xml = sw.ToString();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestExtrasXmltest.RegisterAllExtensions(registry);
+
+ XmlFormatReader rdr = XmlFormatReader.CreateInstance(xml);
+ TestXmlMessage copy = rdr.Merge(TestXmlMessage.CreateBuilder(), registry).Build();
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestXmlReadEmptyRoot()
+ {
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ ICodedInputStream reader = XmlFormatReader.CreateInstance(@"<root/>");
+
+ reader.ReadMessageStart(); //manually read the begin the message '{'
+
+ builder.MergeFrom(reader); //write the message normally
+
+ reader.ReadMessageEnd(); //manually read the end message '}'
+ }
+
+ [Test]
+ public void TestXmlReadEmptyChild()
+ {
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ ICodedInputStream reader = XmlFormatReader.CreateInstance(@"<root><text /></root>");
+
+ reader.ReadMessageStart(); //manually read the begin the message '{'
+
+ builder.MergeFrom(reader); //write the message normally
+ Assert.IsTrue(builder.HasText);
+ Assert.AreEqual(String.Empty, builder.Text);
+ }
+
+ [Test]
+ public void TestXmlReadWriteWithoutRoot()
+ {
+ TestXmlMessage.Builder builder = TestXmlMessage.CreateBuilder();
+ TestXmlMessage message = builder.SetText("abc").SetNumber(123).Build();
+
+ string xml;
+ using (StringWriter sw = new StringWriter())
+ {
+ ICodedOutputStream output = XmlFormatWriter.CreateInstance(
+ XmlWriter.Create(sw, new XmlWriterSettings() { ConformanceLevel = ConformanceLevel.Fragment }));
+
+ message.WriteTo(output);
+ output.Flush();
+ xml = sw.ToString();
+ }
+ Assert.AreEqual("<text>abc</text><number>123</number>", xml);
+
+ TestXmlMessage copy;
+ using (XmlReader xr = XmlReader.Create(new StringReader(xml), new XmlReaderSettings() { ConformanceLevel = ConformanceLevel.Fragment }))
+ {
+ ICodedInputStream input = XmlFormatReader.CreateInstance(xr);
+ copy = TestXmlMessage.CreateBuilder().MergeFrom(input).Build();
+ }
+
+ Assert.AreEqual(message, copy);
+ }
+
+ [Test]
+ public void TestRecursiveLimit()
+ {
+ StringBuilder sb = new StringBuilder(8192);
+ for (int i = 0; i < 80; i++)
+ {
+ sb.Append("<child>");
+ }
+ Assert.Throws<RecursionLimitExceededException>(() => Extensions.MergeFromXml(new TestXmlRescursive.Builder(), "child", XmlReader.Create(new StringReader(sb.ToString()))).Build());
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers.Test/TextFormatTest.cs b/csharp/src/ProtocolBuffers.Test/TextFormatTest.cs
new file mode 100644
index 00000000..5af71787
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/TextFormatTest.cs
@@ -0,0 +1,560 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.IO;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class TextFormatTest
+ {
+ private static readonly string AllFieldsSetText = TestResources.text_format_unittest_data;
+ private static readonly string AllExtensionsSetText = TestResources.text_format_unittest_extensions_data;
+
+ /// <summary>
+ /// Note that this is slightly different to the Java - 123.0 becomes 123, and 1.23E17 becomes 1.23E+17.
+ /// Both of these differences can be parsed by the Java and the C++, and we can parse their output too.
+ /// </summary>
+ private const string ExoticText =
+ "repeated_int32: -1\n" +
+ "repeated_int32: -2147483648\n" +
+ "repeated_int64: -1\n" +
+ "repeated_int64: -9223372036854775808\n" +
+ "repeated_uint32: 4294967295\n" +
+ "repeated_uint32: 2147483648\n" +
+ "repeated_uint64: 18446744073709551615\n" +
+ "repeated_uint64: 9223372036854775808\n" +
+ "repeated_double: 123\n" +
+ "repeated_double: 123.5\n" +
+ "repeated_double: 0.125\n" +
+ "repeated_double: 1.23E+17\n" +
+ "repeated_double: 1.235E+22\n" +
+ "repeated_double: 1.235E-18\n" +
+ "repeated_double: 123.456789\n" +
+ "repeated_double: Infinity\n" +
+ "repeated_double: -Infinity\n" +
+ "repeated_double: NaN\n" +
+ "repeated_string: \"\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\"" +
+ "\\341\\210\\264\"\n" +
+ "repeated_bytes: \"\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\"\\376\"\n";
+
+ private const string MessageSetText =
+ "[protobuf_unittest.TestMessageSetExtension1] {\n" +
+ " i: 123\n" +
+ "}\n" +
+ "[protobuf_unittest.TestMessageSetExtension2] {\n" +
+ " str: \"foo\"\n" +
+ "}\n";
+
+ /// <summary>
+ /// Print TestAllTypes and compare with golden file.
+ /// </summary>
+ [Test]
+ public void PrintMessage()
+ {
+ TestUtil.TestInMultipleCultures(() =>
+ {
+ string text = TextFormat.PrintToString(TestUtil.GetAllSet());
+ Assert.AreEqual(AllFieldsSetText.Replace("\r\n", "\n").Trim(),
+ text.Replace("\r\n", "\n").Trim());
+ });
+ }
+
+ /// <summary>
+ /// Tests that a builder prints the same way as a message.
+ /// </summary>
+ [Test]
+ public void PrintBuilder()
+ {
+ TestUtil.TestInMultipleCultures(() =>
+ {
+ string messageText = TextFormat.PrintToString(TestUtil.GetAllSet());
+ string builderText = TextFormat.PrintToString(TestUtil.GetAllSet().ToBuilder());
+ Assert.AreEqual(messageText, builderText);
+ });
+ }
+
+ /// <summary>
+ /// Print TestAllExtensions and compare with golden file.
+ /// </summary>
+ [Test]
+ public void PrintExtensions()
+ {
+ string text = TextFormat.PrintToString(TestUtil.GetAllExtensionsSet());
+
+ Assert.AreEqual(AllExtensionsSetText.Replace("\r\n", "\n").Trim(), text.Replace("\r\n", "\n").Trim());
+ }
+
+ /// <summary>
+ /// Test printing of unknown fields in a message.
+ /// </summary>
+ [Test]
+ public void PrintUnknownFields()
+ {
+ TestEmptyMessage message =
+ TestEmptyMessage.CreateBuilder()
+ .SetUnknownFields(
+ UnknownFieldSet.CreateBuilder()
+ .AddField(5,
+ UnknownField.CreateBuilder()
+ .AddVarint(1)
+ .AddFixed32(2)
+ .AddFixed64(3)
+ .AddLengthDelimited(ByteString.CopyFromUtf8("4"))
+ .AddGroup(
+ UnknownFieldSet.CreateBuilder()
+ .AddField(10,
+ UnknownField.CreateBuilder()
+ .AddVarint(5)
+ .Build())
+ .Build())
+ .Build())
+ .AddField(8,
+ UnknownField.CreateBuilder()
+ .AddVarint(1)
+ .AddVarint(2)
+ .AddVarint(3)
+ .Build())
+ .AddField(15,
+ UnknownField.CreateBuilder()
+ .AddVarint(0xABCDEF1234567890L)
+ .AddFixed32(0xABCD1234)
+ .AddFixed64(0xABCDEF1234567890L)
+ .Build())
+ .Build())
+ .Build();
+
+ Assert.AreEqual(
+ "5: 1\n" +
+ "5: 0x00000002\n" +
+ "5: 0x0000000000000003\n" +
+ "5: \"4\"\n" +
+ "5 {\n" +
+ " 10: 5\n" +
+ "}\n" +
+ "8: 1\n" +
+ "8: 2\n" +
+ "8: 3\n" +
+ "15: 12379813812177893520\n" +
+ "15: 0xabcd1234\n" +
+ "15: 0xabcdef1234567890\n",
+ TextFormat.PrintToString(message));
+ }
+
+ /// <summary>
+ /// Helper to construct a ByteString from a string containing only 8-bit
+ /// characters. The characters are converted directly to bytes, *not*
+ /// encoded using UTF-8.
+ /// </summary>
+ private static ByteString Bytes(string str)
+ {
+ byte[] bytes = new byte[str.Length];
+ for (int i = 0; i < bytes.Length; i++)
+ bytes[i] = (byte)str[i];
+ return ByteString.CopyFrom(bytes);
+ }
+
+ [Test]
+ public void PrintExotic()
+ {
+ IMessage message = TestAllTypes.CreateBuilder()
+ // Signed vs. unsigned numbers.
+ .AddRepeatedInt32(-1)
+ .AddRepeatedUint32(uint.MaxValue)
+ .AddRepeatedInt64(-1)
+ .AddRepeatedUint64(ulong.MaxValue)
+ .AddRepeatedInt32(1 << 31)
+ .AddRepeatedUint32(1U << 31)
+ .AddRepeatedInt64(1L << 63)
+ .AddRepeatedUint64(1UL << 63)
+
+ // Floats of various precisions and exponents.
+ .AddRepeatedDouble(123)
+ .AddRepeatedDouble(123.5)
+ .AddRepeatedDouble(0.125)
+ .AddRepeatedDouble(123e15)
+ .AddRepeatedDouble(123.5e20)
+ .AddRepeatedDouble(123.5e-20)
+ .AddRepeatedDouble(123.456789)
+ .AddRepeatedDouble(Double.PositiveInfinity)
+ .AddRepeatedDouble(Double.NegativeInfinity)
+ .AddRepeatedDouble(Double.NaN)
+
+ // Strings and bytes that needing escaping.
+ .AddRepeatedString("\0\u0001\u0007\b\f\n\r\t\v\\\'\"\u1234")
+ .AddRepeatedBytes(Bytes("\0\u0001\u0007\b\f\n\r\t\v\\\'\"\u00fe"))
+ .Build();
+
+ Assert.AreEqual(ExoticText, message.ToString());
+ }
+
+ [Test]
+ public void PrintMessageSet()
+ {
+ TestMessageSet messageSet =
+ TestMessageSet.CreateBuilder()
+ .SetExtension(
+ TestMessageSetExtension1.MessageSetExtension,
+ TestMessageSetExtension1.CreateBuilder().SetI(123).Build())
+ .SetExtension(
+ TestMessageSetExtension2.MessageSetExtension,
+ TestMessageSetExtension2.CreateBuilder().SetStr("foo").Build())
+ .Build();
+
+ Assert.AreEqual(MessageSetText, messageSet.ToString());
+ }
+
+ // =================================================================
+
+ [Test]
+ public void Parse()
+ {
+ TestUtil.TestInMultipleCultures(() =>
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TextFormat.Merge(AllFieldsSetText, builder);
+ TestUtil.AssertAllFieldsSet(builder.Build());
+ });
+ }
+
+ [Test]
+ public void ParseReader()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TextFormat.Merge(new StringReader(AllFieldsSetText), builder);
+ TestUtil.AssertAllFieldsSet(builder.Build());
+ }
+
+ [Test]
+ public void ParseExtensions()
+ {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ TextFormat.Merge(AllExtensionsSetText,
+ TestUtil.CreateExtensionRegistry(),
+ builder);
+ TestUtil.AssertAllExtensionsSet(builder.Build());
+ }
+
+ [Test]
+ public void ParseCompatibility()
+ {
+ string original = "repeated_float: inf\n" +
+ "repeated_float: -inf\n" +
+ "repeated_float: nan\n" +
+ "repeated_float: inff\n" +
+ "repeated_float: -inff\n" +
+ "repeated_float: nanf\n" +
+ "repeated_float: 1.0f\n" +
+ "repeated_float: infinityf\n" +
+ "repeated_float: -Infinityf\n" +
+ "repeated_double: infinity\n" +
+ "repeated_double: -infinity\n" +
+ "repeated_double: nan\n";
+ string canonical = "repeated_float: Infinity\n" +
+ "repeated_float: -Infinity\n" +
+ "repeated_float: NaN\n" +
+ "repeated_float: Infinity\n" +
+ "repeated_float: -Infinity\n" +
+ "repeated_float: NaN\n" +
+ "repeated_float: 1\n" + // Java has 1.0; this is fine
+ "repeated_float: Infinity\n" +
+ "repeated_float: -Infinity\n" +
+ "repeated_double: Infinity\n" +
+ "repeated_double: -Infinity\n" +
+ "repeated_double: NaN\n";
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TextFormat.Merge(original, builder);
+ Assert.AreEqual(canonical, builder.Build().ToString());
+ }
+
+ [Test]
+ public void ParseExotic()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TextFormat.Merge(ExoticText, builder);
+
+ // Too lazy to check things individually. Don't try to debug this
+ // if testPrintExotic() is Assert.Failing.
+ Assert.AreEqual(ExoticText, builder.Build().ToString());
+ }
+
+ [Test]
+ public void ParseMessageSet()
+ {
+ ExtensionRegistry extensionRegistry = ExtensionRegistry.CreateInstance();
+ extensionRegistry.Add(TestMessageSetExtension1.MessageSetExtension);
+ extensionRegistry.Add(TestMessageSetExtension2.MessageSetExtension);
+
+ TestMessageSet.Builder builder = TestMessageSet.CreateBuilder();
+ TextFormat.Merge(MessageSetText, extensionRegistry, builder);
+ TestMessageSet messageSet = builder.Build();
+
+ Assert.IsTrue(messageSet.HasExtension(TestMessageSetExtension1.MessageSetExtension));
+ Assert.AreEqual(123, messageSet.GetExtension(TestMessageSetExtension1.MessageSetExtension).I);
+ Assert.IsTrue(messageSet.HasExtension(TestMessageSetExtension2.MessageSetExtension));
+ Assert.AreEqual("foo", messageSet.GetExtension(TestMessageSetExtension2.MessageSetExtension).Str);
+ }
+
+ [Test]
+ public void ParseNumericEnum()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TextFormat.Merge("optional_nested_enum: 2", builder);
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR, builder.OptionalNestedEnum);
+ }
+
+ [Test]
+ public void ParseAngleBrackets()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TextFormat.Merge("OptionalGroup: < a: 1 >", builder);
+ Assert.IsTrue(builder.HasOptionalGroup);
+ Assert.AreEqual(1, builder.OptionalGroup.A);
+ }
+
+ [Test]
+ public void ParseComment()
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TextFormat.Merge(
+ "# this is a comment\n" +
+ "optional_int32: 1 # another comment\n" +
+ "optional_int64: 2\n" +
+ "# EOF comment", builder);
+ Assert.AreEqual(1, builder.OptionalInt32);
+ Assert.AreEqual(2, builder.OptionalInt64);
+ }
+
+
+ private static void AssertParseError(string error, string text)
+ {
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ Exception exception = Assert.Throws<FormatException>(() => TextFormat.Merge(text, TestUtil.CreateExtensionRegistry(), builder));
+ Assert.AreEqual(error, exception.Message);
+ }
+
+ [Test]
+ public void ParseErrors()
+ {
+ AssertParseError(
+ "1:16: Expected \":\".",
+ "optional_int32 123");
+ AssertParseError(
+ "1:23: Expected identifier.",
+ "optional_nested_enum: ?");
+ AssertParseError(
+ "1:18: Couldn't parse integer: Number must be positive: -1",
+ "optional_uint32: -1");
+ AssertParseError(
+ "1:17: Couldn't parse integer: Number out of range for 32-bit signed " +
+ "integer: 82301481290849012385230157",
+ "optional_int32: 82301481290849012385230157");
+ AssertParseError(
+ "1:16: Expected \"true\" or \"false\".",
+ "optional_bool: maybe");
+ AssertParseError(
+ "1:18: Expected string.",
+ "optional_string: 123");
+ AssertParseError(
+ "1:18: String missing ending quote.",
+ "optional_string: \"ueoauaoe");
+ AssertParseError(
+ "1:18: String missing ending quote.",
+ "optional_string: \"ueoauaoe\n" +
+ "optional_int32: 123");
+ AssertParseError(
+ "1:18: Invalid escape sequence: '\\z'",
+ "optional_string: \"\\z\"");
+ AssertParseError(
+ "1:18: String missing ending quote.",
+ "optional_string: \"ueoauaoe\n" +
+ "optional_int32: 123");
+ AssertParseError(
+ "1:2: Extension \"nosuchext\" not found in the ExtensionRegistry.",
+ "[nosuchext]: 123");
+ AssertParseError(
+ "1:20: Extension \"protobuf_unittest.optional_int32_extension\" " +
+ "not found in the ExtensionRegistry.",
+ "[protobuf_unittest.optional_int32_extension]: 123");
+ AssertParseError(
+ "1:1: Message type \"protobuf_unittest.TestAllTypes\" has no field " +
+ "named \"nosuchfield\".",
+ "nosuchfield: 123");
+ AssertParseError(
+ "1:21: Expected \">\".",
+ "OptionalGroup < a: 1");
+ AssertParseError(
+ "1:23: Enum type \"protobuf_unittest.TestAllTypes.NestedEnum\" has no " +
+ "value named \"NO_SUCH_VALUE\".",
+ "optional_nested_enum: NO_SUCH_VALUE");
+ AssertParseError(
+ "1:23: Enum type \"protobuf_unittest.TestAllTypes.NestedEnum\" has no " +
+ "value with number 123.",
+ "optional_nested_enum: 123");
+
+ // Delimiters must match.
+ AssertParseError(
+ "1:22: Expected identifier.",
+ "OptionalGroup < a: 1 }");
+ AssertParseError(
+ "1:22: Expected identifier.",
+ "OptionalGroup { a: 1 >");
+ }
+
+ // =================================================================
+
+ private static ByteString Bytes(params byte[] bytes)
+ {
+ return ByteString.CopyFrom(bytes);
+ }
+
+ [Test]
+ public void Escape()
+ {
+ // Escape sequences.
+ Assert.AreEqual("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\"",
+ TextFormat.EscapeBytes(Bytes("\0\u0001\u0007\b\f\n\r\t\v\\\'\"")));
+ Assert.AreEqual("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\"",
+ TextFormat.EscapeText("\0\u0001\u0007\b\f\n\r\t\v\\\'\""));
+ Assert.AreEqual(Bytes("\0\u0001\u0007\b\f\n\r\t\v\\\'\""),
+ TextFormat.UnescapeBytes("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\""));
+ Assert.AreEqual("\0\u0001\u0007\b\f\n\r\t\v\\\'\"",
+ TextFormat.UnescapeText("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\""));
+
+ // Unicode handling.
+ Assert.AreEqual("\\341\\210\\264", TextFormat.EscapeText("\u1234"));
+ Assert.AreEqual("\\341\\210\\264", TextFormat.EscapeBytes(Bytes(0xe1, 0x88, 0xb4)));
+ Assert.AreEqual("\u1234", TextFormat.UnescapeText("\\341\\210\\264"));
+ Assert.AreEqual(Bytes(0xe1, 0x88, 0xb4), TextFormat.UnescapeBytes("\\341\\210\\264"));
+ Assert.AreEqual("\u1234", TextFormat.UnescapeText("\\xe1\\x88\\xb4"));
+ Assert.AreEqual(Bytes(0xe1, 0x88, 0xb4), TextFormat.UnescapeBytes("\\xe1\\x88\\xb4"));
+
+ // Errors.
+ Assert.Throws<FormatException>(() => TextFormat.UnescapeText("\\x"));
+ Assert.Throws<FormatException>(() => TextFormat.UnescapeText("\\z"));
+ Assert.Throws<FormatException>(() => TextFormat.UnescapeText("\\"));
+ }
+
+ [Test]
+ public void ParseInteger()
+ {
+ Assert.AreEqual(0, TextFormat.ParseInt32("0"));
+ Assert.AreEqual(1, TextFormat.ParseInt32("1"));
+ Assert.AreEqual(-1, TextFormat.ParseInt32("-1"));
+ Assert.AreEqual(12345, TextFormat.ParseInt32("12345"));
+ Assert.AreEqual(-12345, TextFormat.ParseInt32("-12345"));
+ Assert.AreEqual(2147483647, TextFormat.ParseInt32("2147483647"));
+ Assert.AreEqual(-2147483648, TextFormat.ParseInt32("-2147483648"));
+
+ Assert.AreEqual(0u, TextFormat.ParseUInt32("0"));
+ Assert.AreEqual(1u, TextFormat.ParseUInt32("1"));
+ Assert.AreEqual(12345u, TextFormat.ParseUInt32("12345"));
+ Assert.AreEqual(2147483647u, TextFormat.ParseUInt32("2147483647"));
+ Assert.AreEqual(2147483648U, TextFormat.ParseUInt32("2147483648"));
+ Assert.AreEqual(4294967295U, TextFormat.ParseUInt32("4294967295"));
+
+ Assert.AreEqual(0L, TextFormat.ParseInt64("0"));
+ Assert.AreEqual(1L, TextFormat.ParseInt64("1"));
+ Assert.AreEqual(-1L, TextFormat.ParseInt64("-1"));
+ Assert.AreEqual(12345L, TextFormat.ParseInt64("12345"));
+ Assert.AreEqual(-12345L, TextFormat.ParseInt64("-12345"));
+ Assert.AreEqual(2147483647L, TextFormat.ParseInt64("2147483647"));
+ Assert.AreEqual(-2147483648L, TextFormat.ParseInt64("-2147483648"));
+ Assert.AreEqual(4294967295L, TextFormat.ParseInt64("4294967295"));
+ Assert.AreEqual(4294967296L, TextFormat.ParseInt64("4294967296"));
+ Assert.AreEqual(9223372036854775807L, TextFormat.ParseInt64("9223372036854775807"));
+ Assert.AreEqual(-9223372036854775808L, TextFormat.ParseInt64("-9223372036854775808"));
+
+ Assert.AreEqual(0uL, TextFormat.ParseUInt64("0"));
+ Assert.AreEqual(1uL, TextFormat.ParseUInt64("1"));
+ Assert.AreEqual(12345uL, TextFormat.ParseUInt64("12345"));
+ Assert.AreEqual(2147483647uL, TextFormat.ParseUInt64("2147483647"));
+ Assert.AreEqual(4294967295uL, TextFormat.ParseUInt64("4294967295"));
+ Assert.AreEqual(4294967296uL, TextFormat.ParseUInt64("4294967296"));
+ Assert.AreEqual(9223372036854775807UL, TextFormat.ParseUInt64("9223372036854775807"));
+ Assert.AreEqual(9223372036854775808UL, TextFormat.ParseUInt64("9223372036854775808"));
+ Assert.AreEqual(18446744073709551615UL, TextFormat.ParseUInt64("18446744073709551615"));
+
+ // Hex
+ Assert.AreEqual(0x1234abcd, TextFormat.ParseInt32("0x1234abcd"));
+ Assert.AreEqual(-0x1234abcd, TextFormat.ParseInt32("-0x1234abcd"));
+ Assert.AreEqual(0xffffffffffffffffUL, TextFormat.ParseUInt64("0xffffffffffffffff"));
+ Assert.AreEqual(0x7fffffffffffffffL,
+ TextFormat.ParseInt64("0x7fffffffffffffff"));
+
+ // Octal
+ Assert.AreEqual(342391, TextFormat.ParseInt32("01234567"));
+
+ // Out-of-range
+ Assert.Throws<FormatException>(() => TextFormat.ParseInt32("2147483648"));
+ Assert.Throws<FormatException>(() => TextFormat.ParseInt32("-2147483649"));
+ Assert.Throws<FormatException>(() => TextFormat.ParseUInt32("4294967296"));
+ Assert.Throws<FormatException>(() => TextFormat.ParseUInt32("-1"));
+ Assert.Throws<FormatException>(() => TextFormat.ParseInt64("9223372036854775808"));
+ Assert.Throws<FormatException>(() => TextFormat.ParseInt64("-9223372036854775809"));
+ Assert.Throws<FormatException>(() => TextFormat.ParseUInt64("18446744073709551616"));
+ Assert.Throws<FormatException>(() => TextFormat.ParseUInt64("-1"));
+ Assert.Throws<FormatException>(() => TextFormat.ParseInt32("abcd"));
+ }
+
+ [Test]
+ public void ParseLongString()
+ {
+ string longText =
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890" +
+ "123456789012345678901234567890123456789012345678901234567890";
+ TestAllTypes.Builder builder = TestAllTypes.CreateBuilder();
+ TextFormat.Merge("optional_string: \"" + longText + "\"", builder);
+ Assert.AreEqual(longText, builder.OptionalString);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/UnknownFieldSetTest.cs b/csharp/src/ProtocolBuffers.Test/UnknownFieldSetTest.cs
new file mode 100644
index 00000000..97f48ead
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/UnknownFieldSetTest.cs
@@ -0,0 +1,431 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class UnknownFieldSetTest
+ {
+ private readonly MessageDescriptor descriptor;
+ private readonly TestAllTypes allFields;
+ private readonly ByteString allFieldsData;
+
+ /// <summary>
+ /// An empty message that has been parsed from allFieldsData. So, it has
+ /// unknown fields of every type.
+ /// </summary>
+ private readonly TestEmptyMessage emptyMessage;
+
+ private readonly UnknownFieldSet unknownFields;
+
+ public UnknownFieldSetTest()
+ {
+ descriptor = TestAllTypes.Descriptor;
+ allFields = TestUtil.GetAllSet();
+ allFieldsData = allFields.ToByteString();
+ emptyMessage = TestEmptyMessage.ParseFrom(allFieldsData);
+ unknownFields = emptyMessage.UnknownFields;
+ }
+
+ private UnknownField GetField(String name)
+ {
+ FieldDescriptor field = descriptor.FindDescriptor<FieldDescriptor>(name);
+ Assert.NotNull(field);
+ return unknownFields.FieldDictionary[field.FieldNumber];
+ }
+
+ /// <summary>
+ /// Constructs a protocol buffer which contains fields with all the same
+ /// numbers as allFieldsData except that each field is some other wire
+ /// type.
+ /// </summary>
+ private ByteString GetBizarroData()
+ {
+ UnknownFieldSet.Builder bizarroFields = UnknownFieldSet.CreateBuilder();
+
+ UnknownField varintField = UnknownField.CreateBuilder().AddVarint(1).Build();
+ UnknownField fixed32Field = UnknownField.CreateBuilder().AddFixed32(1).Build();
+
+ foreach (KeyValuePair<int, UnknownField> entry in unknownFields.FieldDictionary)
+ {
+ if (entry.Value.VarintList.Count == 0)
+ {
+ // Original field is not a varint, so use a varint.
+ bizarroFields.AddField(entry.Key, varintField);
+ }
+ else
+ {
+ // Original field *is* a varint, so use something else.
+ bizarroFields.AddField(entry.Key, fixed32Field);
+ }
+ }
+
+ return bizarroFields.Build().ToByteString();
+ }
+
+ // =================================================================
+
+ [Test]
+ public void Varint()
+ {
+ UnknownField field = GetField("optional_int32");
+ Assert.AreEqual(1, field.VarintList.Count);
+ Assert.AreEqual(allFields.OptionalInt32, (long) field.VarintList[0]);
+ }
+
+ [Test]
+ public void Fixed32()
+ {
+ UnknownField field = GetField("optional_fixed32");
+ Assert.AreEqual(1, field.Fixed32List.Count);
+ Assert.AreEqual(allFields.OptionalFixed32, (int) field.Fixed32List[0]);
+ }
+
+ [Test]
+ public void Fixed64()
+ {
+ UnknownField field = GetField("optional_fixed64");
+ Assert.AreEqual(1, field.Fixed64List.Count);
+ Assert.AreEqual((long)allFields.OptionalFixed64, (long)field.Fixed64List[0]);
+ }
+
+ [Test]
+ public void LengthDelimited()
+ {
+ UnknownField field = GetField("optional_bytes");
+ Assert.AreEqual(1, field.LengthDelimitedList.Count);
+ Assert.AreEqual(allFields.OptionalBytes, field.LengthDelimitedList[0]);
+ }
+
+ [Test]
+ public void Group()
+ {
+ FieldDescriptor nestedFieldDescriptor =
+ TestAllTypes.Types.OptionalGroup.Descriptor.FindDescriptor<FieldDescriptor>("a");
+ Assert.NotNull(nestedFieldDescriptor);
+
+ UnknownField field = GetField("optionalgroup");
+ Assert.AreEqual(1, field.GroupList.Count);
+
+ UnknownFieldSet group = field.GroupList[0];
+ Assert.AreEqual(1, group.FieldDictionary.Count);
+ Assert.IsTrue(group.HasField(nestedFieldDescriptor.FieldNumber));
+
+ UnknownField nestedField = group[nestedFieldDescriptor.FieldNumber];
+ Assert.AreEqual(1, nestedField.VarintList.Count);
+ Assert.AreEqual(allFields.OptionalGroup.A, (long) nestedField.VarintList[0]);
+ }
+
+ [Test]
+ public void Serialize()
+ {
+ // Check that serializing the UnknownFieldSet produces the original data again.
+ ByteString data = emptyMessage.ToByteString();
+ Assert.AreEqual(allFieldsData, data);
+ }
+
+ [Test]
+ public void CopyFrom()
+ {
+ TestEmptyMessage message =
+ TestEmptyMessage.CreateBuilder().MergeFrom(emptyMessage).Build();
+
+ Assert.AreEqual(emptyMessage.ToString(), message.ToString());
+ }
+
+ [Test]
+ public void MergeFrom()
+ {
+ TestEmptyMessage source =
+ TestEmptyMessage.CreateBuilder()
+ .SetUnknownFields(
+ UnknownFieldSet.CreateBuilder()
+ .AddField(2,
+ UnknownField.CreateBuilder()
+ .AddVarint(2).Build())
+ .AddField(3,
+ UnknownField.CreateBuilder()
+ .AddVarint(4).Build())
+ .Build())
+ .Build();
+ TestEmptyMessage destination =
+ TestEmptyMessage.CreateBuilder()
+ .SetUnknownFields(
+ UnknownFieldSet.CreateBuilder()
+ .AddField(1,
+ UnknownField.CreateBuilder()
+ .AddVarint(1).Build())
+ .AddField(3,
+ UnknownField.CreateBuilder()
+ .AddVarint(3).Build())
+ .Build())
+ .MergeFrom(source)
+ .Build();
+
+ Assert.AreEqual(
+ "1: 1\n" +
+ "2: 2\n" +
+ "3: 3\n" +
+ "3: 4\n",
+ destination.ToString());
+ }
+
+ [Test]
+ public void Clear()
+ {
+ UnknownFieldSet fields =
+ UnknownFieldSet.CreateBuilder().MergeFrom(unknownFields).Clear().Build();
+ Assert.AreEqual(0, fields.FieldDictionary.Count);
+ }
+
+ [Test]
+ public void ClearMessage()
+ {
+ TestEmptyMessage message =
+ TestEmptyMessage.CreateBuilder().MergeFrom(emptyMessage).Clear().Build();
+ Assert.AreEqual(0, message.SerializedSize);
+ }
+
+ [Test]
+ public void ParseKnownAndUnknown()
+ {
+ // Test mixing known and unknown fields when parsing.
+
+ UnknownFieldSet fields =
+ UnknownFieldSet.CreateBuilder(unknownFields)
+ .AddField(123456,
+ UnknownField.CreateBuilder().AddVarint(654321).Build())
+ .Build();
+
+ ByteString data = fields.ToByteString();
+ TestAllTypes destination = TestAllTypes.ParseFrom(data);
+
+ TestUtil.AssertAllFieldsSet(destination);
+ Assert.AreEqual(1, destination.UnknownFields.FieldDictionary.Count);
+
+ UnknownField field = destination.UnknownFields[123456];
+ Assert.AreEqual(1, field.VarintList.Count);
+ Assert.AreEqual(654321, (long) field.VarintList[0]);
+ }
+
+ [Test]
+ public void WrongTypeTreatedAsUnknown()
+ {
+ // Test that fields of the wrong wire type are treated like unknown fields
+ // when parsing.
+
+ ByteString bizarroData = GetBizarroData();
+ TestAllTypes allTypesMessage = TestAllTypes.ParseFrom(bizarroData);
+ TestEmptyMessage emptyMessage = TestEmptyMessage.ParseFrom(bizarroData);
+
+ // All fields should have been interpreted as unknown, so the debug strings
+ // should be the same.
+ Assert.AreEqual(emptyMessage.ToString(), allTypesMessage.ToString());
+ }
+
+ [Test]
+ public void UnknownExtensions()
+ {
+ // Make sure fields are properly parsed to the UnknownFieldSet even when
+ // they are declared as extension numbers.
+
+ TestEmptyMessageWithExtensions message =
+ TestEmptyMessageWithExtensions.ParseFrom(allFieldsData);
+
+ Assert.AreEqual(unknownFields.FieldDictionary.Count,
+ message.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual(allFieldsData, message.ToByteString());
+ }
+
+ [Test]
+ public void WrongExtensionTypeTreatedAsUnknown()
+ {
+ // Test that fields of the wrong wire type are treated like unknown fields
+ // when parsing extensions.
+
+ ByteString bizarroData = GetBizarroData();
+ TestAllExtensions allExtensionsMessage = TestAllExtensions.ParseFrom(bizarroData);
+ TestEmptyMessage emptyMessage = TestEmptyMessage.ParseFrom(bizarroData);
+
+ // All fields should have been interpreted as unknown, so the debug strings
+ // should be the same.
+ Assert.AreEqual(emptyMessage.ToString(),
+ allExtensionsMessage.ToString());
+ }
+
+ [Test]
+ public void ParseUnknownEnumValue()
+ {
+ FieldDescriptor singularField =
+ TestAllTypes.Descriptor.FindDescriptor<FieldDescriptor>("optional_nested_enum");
+ FieldDescriptor repeatedField =
+ TestAllTypes.Descriptor.FindDescriptor<FieldDescriptor>("repeated_nested_enum");
+ Assert.NotNull(singularField);
+ Assert.NotNull(repeatedField);
+
+ ByteString data =
+ UnknownFieldSet.CreateBuilder()
+ .AddField(singularField.FieldNumber,
+ UnknownField.CreateBuilder()
+ .AddVarint((int) TestAllTypes.Types.NestedEnum.BAR)
+ .AddVarint(5) // not valid
+ .Build())
+ .AddField(repeatedField.FieldNumber,
+ UnknownField.CreateBuilder()
+ .AddVarint((int) TestAllTypes.Types.NestedEnum.FOO)
+ .AddVarint(4) // not valid
+ .AddVarint((int) TestAllTypes.Types.NestedEnum.BAZ)
+ .AddVarint(6) // not valid
+ .Build())
+ .Build()
+ .ToByteString();
+
+ {
+ TestAllTypes message = TestAllTypes.ParseFrom(data);
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR,
+ message.OptionalNestedEnum);
+ TestUtil.AssertEqual(new[] {TestAllTypes.Types.NestedEnum.FOO, TestAllTypes.Types.NestedEnum.BAZ},
+ message.RepeatedNestedEnumList);
+ TestUtil.AssertEqual(new[] {5UL}, message.UnknownFields[singularField.FieldNumber].VarintList);
+ TestUtil.AssertEqual(new[] {4UL, 6UL}, message.UnknownFields[repeatedField.FieldNumber].VarintList);
+ }
+
+ {
+ TestAllExtensions message =
+ TestAllExtensions.ParseFrom(data, TestUtil.CreateExtensionRegistry());
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.BAR,
+ message.GetExtension(Unittest.OptionalNestedEnumExtension));
+ TestUtil.AssertEqual(new[] {TestAllTypes.Types.NestedEnum.FOO, TestAllTypes.Types.NestedEnum.BAZ},
+ message.GetExtension(Unittest.RepeatedNestedEnumExtension));
+ TestUtil.AssertEqual(new[] {5UL}, message.UnknownFields[singularField.FieldNumber].VarintList);
+ TestUtil.AssertEqual(new[] {4UL, 6UL}, message.UnknownFields[repeatedField.FieldNumber].VarintList);
+ }
+ }
+
+ [Test]
+ public void LargeVarint()
+ {
+ ByteString data =
+ UnknownFieldSet.CreateBuilder()
+ .AddField(1,
+ UnknownField.CreateBuilder()
+ .AddVarint(0x7FFFFFFFFFFFFFFFL)
+ .Build())
+ .Build()
+ .ToByteString();
+ UnknownFieldSet parsed = UnknownFieldSet.ParseFrom(data);
+ UnknownField field = parsed[1];
+ Assert.AreEqual(1, field.VarintList.Count);
+ Assert.AreEqual(0x7FFFFFFFFFFFFFFFUL, field.VarintList[0]);
+ }
+
+ [Test]
+ public void EqualsAndHashCode()
+ {
+ UnknownField fixed32Field = UnknownField.CreateBuilder().AddFixed32(1).Build();
+ UnknownField fixed64Field = UnknownField.CreateBuilder().AddFixed64(1).Build();
+ UnknownField varIntField = UnknownField.CreateBuilder().AddVarint(1).Build();
+ UnknownField lengthDelimitedField =
+ UnknownField.CreateBuilder().AddLengthDelimited(ByteString.Empty).Build();
+ UnknownField groupField = UnknownField.CreateBuilder().AddGroup(unknownFields).Build();
+
+ UnknownFieldSet a = UnknownFieldSet.CreateBuilder().AddField(1, fixed32Field).Build();
+ UnknownFieldSet b = UnknownFieldSet.CreateBuilder().AddField(1, fixed64Field).Build();
+ UnknownFieldSet c = UnknownFieldSet.CreateBuilder().AddField(1, varIntField).Build();
+ UnknownFieldSet d = UnknownFieldSet.CreateBuilder().AddField(1, lengthDelimitedField).Build();
+ UnknownFieldSet e = UnknownFieldSet.CreateBuilder().AddField(1, groupField).Build();
+
+ CheckEqualsIsConsistent(a);
+ CheckEqualsIsConsistent(b);
+ CheckEqualsIsConsistent(c);
+ CheckEqualsIsConsistent(d);
+ CheckEqualsIsConsistent(e);
+
+ CheckNotEqual(a, b);
+ CheckNotEqual(a, c);
+ CheckNotEqual(a, d);
+ CheckNotEqual(a, e);
+ CheckNotEqual(b, c);
+ CheckNotEqual(b, d);
+ CheckNotEqual(b, e);
+ CheckNotEqual(c, d);
+ CheckNotEqual(c, e);
+ CheckNotEqual(d, e);
+ }
+
+ /// <summary>
+ /// Asserts that the given field sets are not equal and have different
+ /// hash codes.
+ /// </summary>
+ /// <remarks>
+ /// It's valid for non-equal objects to have the same hash code, so
+ /// this test is stricter than it needs to be. However, this should happen
+ /// relatively rarely.
+ /// </remarks>
+ /// <param name="s1"></param>
+ /// <param name="s2"></param>
+ private static void CheckNotEqual(UnknownFieldSet s1, UnknownFieldSet s2)
+ {
+ String equalsError = string.Format("{0} should not be equal to {1}", s1, s2);
+ Assert.IsFalse(s1.Equals(s2), equalsError);
+ Assert.IsFalse(s2.Equals(s1), equalsError);
+
+ Assert.IsFalse(s1.GetHashCode() == s2.GetHashCode(),
+ string.Format("{0} should have a different hash code from {1}", s1, s2));
+ }
+
+ /**
+ * Asserts that the given field sets are equal and have identical hash codes.
+ */
+
+ private static void CheckEqualsIsConsistent(UnknownFieldSet set)
+ {
+ // Object should be equal to itself.
+ Assert.AreEqual(set, set);
+
+ // Object should be equal to a copy of itself.
+ UnknownFieldSet copy = UnknownFieldSet.CreateBuilder(set).Build();
+ Assert.AreEqual(set, copy);
+ Assert.AreEqual(copy, set);
+ Assert.AreEqual(set.GetHashCode(), copy.GetHashCode());
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/WireFormatTest.cs b/csharp/src/ProtocolBuffers.Test/WireFormatTest.cs
new file mode 100644
index 00000000..e728a176
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/WireFormatTest.cs
@@ -0,0 +1,311 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+using System.Reflection;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class WireFormatTest
+ {
+ /// <summary>
+ /// Keeps the attributes on FieldType and the switch statement in WireFormat in sync.
+ /// </summary>
+ [Test]
+ public void FieldTypeToWireTypeMapping()
+ {
+ foreach (FieldInfo field in typeof(FieldType).GetFields(BindingFlags.Static | BindingFlags.Public))
+ {
+ FieldType fieldType = (FieldType) field.GetValue(null);
+ FieldMappingAttribute mapping =
+ (FieldMappingAttribute) field.GetCustomAttributes(typeof(FieldMappingAttribute), false)[0];
+ Assert.AreEqual(mapping.WireType, WireFormat.GetWireType(fieldType));
+ }
+ }
+
+ [Test]
+ public void Serialization()
+ {
+ TestAllTypes message = TestUtil.GetAllSet();
+
+ ByteString rawBytes = message.ToByteString();
+ Assert.AreEqual(rawBytes.Length, message.SerializedSize);
+
+ TestAllTypes message2 = TestAllTypes.ParseFrom(rawBytes);
+
+ TestUtil.AssertAllFieldsSet(message2);
+ }
+
+ [Test]
+ public void SerializationPacked()
+ {
+ TestPackedTypes message = TestUtil.GetPackedSet();
+ ByteString rawBytes = message.ToByteString();
+ Assert.AreEqual(rawBytes.Length, message.SerializedSize);
+ TestPackedTypes message2 = TestPackedTypes.ParseFrom(rawBytes);
+ TestUtil.AssertPackedFieldsSet(message2);
+ }
+
+ [Test]
+ public void SerializeExtensions()
+ {
+ // TestAllTypes and TestAllExtensions should have compatible wire formats,
+ // so if we serialize a TestAllExtensions then parse it as TestAllTypes
+ // it should work.
+ TestAllExtensions message = TestUtil.GetAllExtensionsSet();
+ ByteString rawBytes = message.ToByteString();
+ Assert.AreEqual(rawBytes.Length, message.SerializedSize);
+
+ TestAllTypes message2 = TestAllTypes.ParseFrom(rawBytes);
+
+ TestUtil.AssertAllFieldsSet(message2);
+ }
+
+ [Test]
+ public void SerializePackedExtensions()
+ {
+ // TestPackedTypes and TestPackedExtensions should have compatible wire
+ // formats; check that they serialize to the same string.
+ TestPackedExtensions message = TestUtil.GetPackedExtensionsSet();
+ ByteString rawBytes = message.ToByteString();
+
+ TestPackedTypes message2 = TestUtil.GetPackedSet();
+ ByteString rawBytes2 = message2.ToByteString();
+
+ Assert.AreEqual(rawBytes, rawBytes2);
+ }
+
+ [Test]
+ public void SerializeDelimited()
+ {
+ MemoryStream stream = new MemoryStream();
+ TestUtil.GetAllSet().WriteDelimitedTo(stream);
+ stream.WriteByte(12);
+ TestUtil.GetPackedSet().WriteDelimitedTo(stream);
+ stream.WriteByte(34);
+
+ stream.Position = 0;
+
+ TestUtil.AssertAllFieldsSet(TestAllTypes.ParseDelimitedFrom(stream));
+ Assert.AreEqual(12, stream.ReadByte());
+ TestUtil.AssertPackedFieldsSet(TestPackedTypes.ParseDelimitedFrom(stream));
+ Assert.AreEqual(34, stream.ReadByte());
+ Assert.AreEqual(-1, stream.ReadByte());
+ }
+
+ [Test]
+ public void ParseExtensions()
+ {
+ // TestAllTypes and TestAllExtensions should have compatible wire formats,
+ // so if we serealize a TestAllTypes then parse it as TestAllExtensions
+ // it should work.
+
+ TestAllTypes message = TestUtil.GetAllSet();
+ ByteString rawBytes = message.ToByteString();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ TestUtil.RegisterAllExtensions(registry);
+ registry = registry.AsReadOnly();
+
+ TestAllExtensions message2 = TestAllExtensions.ParseFrom(rawBytes, registry);
+
+ TestUtil.AssertAllExtensionsSet(message2);
+ }
+
+ [Test]
+ public void ParsePackedExtensions()
+ {
+ // Ensure that packed extensions can be properly parsed.
+ TestPackedExtensions message = TestUtil.GetPackedExtensionsSet();
+ ByteString rawBytes = message.ToByteString();
+
+ ExtensionRegistry registry = TestUtil.CreateExtensionRegistry();
+
+ TestPackedExtensions message2 = TestPackedExtensions.ParseFrom(rawBytes, registry);
+ TestUtil.AssertPackedExtensionsSet(message2);
+ }
+
+ [Test]
+ public void ExtensionsSerializedSize()
+ {
+ Assert.IsTrue(TestUtil.GetAllSet().SerializedSize < TestUtil.GetAllExtensionsSet().SerializedSize);
+ }
+
+ private static void AssertFieldsInOrder(ByteString data)
+ {
+ CodedInputStream input = data.CreateCodedInput();
+ uint previousTag = 0;
+
+ uint tag;
+ string name;
+ while (input.ReadTag(out tag, out name))
+ {
+ Assert.IsTrue(tag > previousTag);
+ previousTag = tag;
+ input.SkipField();
+ }
+ }
+
+ [Test]
+ public void InterleavedFieldsAndExtensions()
+ {
+ // Tests that fields are written in order even when extension ranges
+ // are interleaved with field numbers.
+ ByteString data =
+ TestFieldOrderings.CreateBuilder()
+ .SetMyInt(1)
+ .SetMyString("foo")
+ .SetMyFloat(1.0F)
+ .SetExtension(Unittest.MyExtensionInt, 23)
+ .SetExtension(Unittest.MyExtensionString, "bar")
+ .Build().ToByteString();
+ AssertFieldsInOrder(data);
+
+ MessageDescriptor descriptor = TestFieldOrderings.Descriptor;
+ ByteString dynamic_data =
+ DynamicMessage.CreateBuilder(TestFieldOrderings.Descriptor)
+ .SetField(descriptor.FindDescriptor<FieldDescriptor>("my_int"), 1L)
+ .SetField(descriptor.FindDescriptor<FieldDescriptor>("my_string"), "foo")
+ .SetField(descriptor.FindDescriptor<FieldDescriptor>("my_float"), 1.0F)
+ .SetField(Unittest.MyExtensionInt.Descriptor, 23)
+ .SetField(Unittest.MyExtensionString.Descriptor, "bar")
+ .WeakBuild().ToByteString();
+ AssertFieldsInOrder(dynamic_data);
+ }
+
+ private const int UnknownTypeId = 1550055;
+ private static readonly int TypeId1 = TestMessageSetExtension1.Descriptor.Extensions[0].FieldNumber;
+ private static readonly int TypeId2 = TestMessageSetExtension2.Descriptor.Extensions[0].FieldNumber;
+
+ [Test]
+ public void SerializeMessageSet()
+ {
+ // Set up a TestMessageSet with two known messages and an unknown one.
+ TestMessageSet messageSet =
+ TestMessageSet.CreateBuilder()
+ .SetExtension(
+ TestMessageSetExtension1.MessageSetExtension,
+ TestMessageSetExtension1.CreateBuilder().SetI(123).Build())
+ .SetExtension(
+ TestMessageSetExtension2.MessageSetExtension,
+ TestMessageSetExtension2.CreateBuilder().SetStr("foo").Build())
+ .SetUnknownFields(
+ UnknownFieldSet.CreateBuilder()
+ .AddField(UnknownTypeId,
+ UnknownField.CreateBuilder()
+ .AddLengthDelimited(ByteString.CopyFromUtf8("bar"))
+ .Build())
+ .Build())
+ .Build();
+
+ ByteString data = messageSet.ToByteString();
+
+ // Parse back using RawMessageSet and check the contents.
+ RawMessageSet raw = RawMessageSet.ParseFrom(data);
+
+ Assert.AreEqual(0, raw.UnknownFields.FieldDictionary.Count);
+
+ Assert.AreEqual(3, raw.ItemCount);
+ Assert.AreEqual(TypeId1, raw.ItemList[0].TypeId);
+ Assert.AreEqual(TypeId2, raw.ItemList[1].TypeId);
+ Assert.AreEqual(UnknownTypeId, raw.ItemList[2].TypeId);
+
+ TestMessageSetExtension1 message1 = TestMessageSetExtension1.ParseFrom(raw.GetItem(0).Message.ToByteArray());
+ Assert.AreEqual(123, message1.I);
+
+ TestMessageSetExtension2 message2 = TestMessageSetExtension2.ParseFrom(raw.GetItem(1).Message.ToByteArray());
+ Assert.AreEqual("foo", message2.Str);
+
+ Assert.AreEqual("bar", raw.GetItem(2).Message.ToStringUtf8());
+ }
+
+ [Test]
+ public void ParseMessageSet()
+ {
+ ExtensionRegistry extensionRegistry = ExtensionRegistry.CreateInstance();
+ extensionRegistry.Add(TestMessageSetExtension1.MessageSetExtension);
+ extensionRegistry.Add(TestMessageSetExtension2.MessageSetExtension);
+
+ // Set up a RawMessageSet with two known messages and an unknown one.
+ RawMessageSet raw =
+ RawMessageSet.CreateBuilder()
+ .AddItem(
+ RawMessageSet.Types.Item.CreateBuilder()
+ .SetTypeId(TypeId1)
+ .SetMessage(
+ TestMessageSetExtension1.CreateBuilder()
+ .SetI(123)
+ .Build().ToByteString())
+ .Build())
+ .AddItem(
+ RawMessageSet.Types.Item.CreateBuilder()
+ .SetTypeId(TypeId2)
+ .SetMessage(
+ TestMessageSetExtension2.CreateBuilder()
+ .SetStr("foo")
+ .Build().ToByteString())
+ .Build())
+ .AddItem(
+ RawMessageSet.Types.Item.CreateBuilder()
+ .SetTypeId(UnknownTypeId)
+ .SetMessage(ByteString.CopyFromUtf8("bar"))
+ .Build())
+ .Build();
+
+ ByteString data = raw.ToByteString();
+
+ // Parse as a TestMessageSet and check the contents.
+ TestMessageSet messageSet =
+ TestMessageSet.ParseFrom(data, extensionRegistry);
+
+ Assert.AreEqual(123, messageSet.GetExtension(TestMessageSetExtension1.MessageSetExtension).I);
+ Assert.AreEqual("foo", messageSet.GetExtension(TestMessageSetExtension2.MessageSetExtension).Str);
+
+ // Check for unknown field with type LENGTH_DELIMITED,
+ // number UNKNOWN_TYPE_ID, and contents "bar".
+ UnknownFieldSet unknownFields = messageSet.UnknownFields;
+ Assert.AreEqual(1, unknownFields.FieldDictionary.Count);
+ Assert.IsTrue(unknownFields.HasField(UnknownTypeId));
+
+ UnknownField field = unknownFields[UnknownTypeId];
+ Assert.AreEqual(1, field.LengthDelimitedList.Count);
+ Assert.AreEqual("bar", field.LengthDelimitedList[0].ToStringUtf8());
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.Test/packages.config b/csharp/src/ProtocolBuffers.Test/packages.config
new file mode 100644
index 00000000..c7653992
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.Test/packages.config
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="NUnit" version="2.6.4" targetFramework="net45" userInstalled="true" />
+ <package id="NUnitTestAdapter" version="2.0.0" targetFramework="net45" userInstalled="true" />
+</packages> \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers.sln b/csharp/src/ProtocolBuffers.sln
new file mode 100644
index 00000000..6d609dc9
--- /dev/null
+++ b/csharp/src/ProtocolBuffers.sln
@@ -0,0 +1,81 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.22609.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers", "ProtocolBuffers\ProtocolBuffers.csproj", "{6908BDCE-D925-43F3-94AC-A531E6DF2591}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLite", "ProtocolBuffers\ProtocolBuffersLite.csproj", "{6969BDCE-D925-43F3-94AC-A531E6DF2591}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Serialization", "ProtocolBuffers.Serialization\ProtocolBuffers.Serialization.csproj", "{231391AF-449C-4A39-986C-AD7F270F4750}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLite.Serialization", "ProtocolBuffers.Serialization\ProtocolBuffersLite.Serialization.csproj", "{E067A59D-9D0A-4A1F-92B1-38E4457241D1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Test", "ProtocolBuffers.Test\ProtocolBuffers.Test.csproj", "{DD01ED24-3750-4567-9A23-1DB676A15610}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLite.Test", "ProtocolBuffersLite.Test\ProtocolBuffersLite.Test.csproj", "{EE01ED24-3750-4567-9A23-1DB676A15610}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLiteMixed.Test", "ProtocolBuffersLite.Test\ProtocolBuffersLiteMixed.Test.csproj", "{EEFFED24-3750-4567-9A23-1DB676A15610}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddressBook", "AddressBook\AddressBook.csproj", "{A31F5FB2-4FF3-432A-B35B-5CD203606311}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoDump", "ProtoDump\ProtoDump.csproj", "{D7282E99-2DC3-405B-946F-177DB2FD2AE2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoMunge", "ProtoMunge\ProtoMunge.csproj", "{8F09AF72-3327-4FA7-BC09-070B80221AB9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoBench", "ProtoBench\ProtoBench.csproj", "{C7A4A435-2813-41C8-AA87-BD914BA5223D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.Build.0 = Release|Any CPU
+ {231391AF-449C-4A39-986C-AD7F270F4750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {231391AF-449C-4A39-986C-AD7F270F4750}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {231391AF-449C-4A39-986C-AD7F270F4750}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {231391AF-449C-4A39-986C-AD7F270F4750}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A31F5FB2-4FF3-432A-B35B-5CD203606311}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A31F5FB2-4FF3-432A-B35B-5CD203606311}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A31F5FB2-4FF3-432A-B35B-5CD203606311}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A31F5FB2-4FF3-432A-B35B-5CD203606311}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D7282E99-2DC3-405B-946F-177DB2FD2AE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D7282E99-2DC3-405B-946F-177DB2FD2AE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D7282E99-2DC3-405B-946F-177DB2FD2AE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D7282E99-2DC3-405B-946F-177DB2FD2AE2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8F09AF72-3327-4FA7-BC09-070B80221AB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8F09AF72-3327-4FA7-BC09-070B80221AB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8F09AF72-3327-4FA7-BC09-070B80221AB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8F09AF72-3327-4FA7-BC09-070B80221AB9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C7A4A435-2813-41C8-AA87-BD914BA5223D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C7A4A435-2813-41C8-AA87-BD914BA5223D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C7A4A435-2813-41C8-AA87-BD914BA5223D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C7A4A435-2813-41C8-AA87-BD914BA5223D}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/csharp/src/ProtocolBuffers/AbstractBuilder.cs b/csharp/src/ProtocolBuffers/AbstractBuilder.cs
new file mode 100644
index 00000000..8e33e931
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/AbstractBuilder.cs
@@ -0,0 +1,274 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Implementation of the non-generic IMessage interface as far as possible.
+ /// </summary>
+ public abstract partial class AbstractBuilder<TMessage, TBuilder> : AbstractBuilderLite<TMessage, TBuilder>,
+ IBuilder<TMessage, TBuilder>
+ where TMessage : AbstractMessage<TMessage, TBuilder>
+ where TBuilder : AbstractBuilder<TMessage, TBuilder>
+ {
+ #region Unimplemented members of IBuilder
+
+ public abstract UnknownFieldSet UnknownFields { get; set; }
+ public abstract IDictionary<FieldDescriptor, object> AllFields { get; }
+ public abstract object this[FieldDescriptor field] { get; set; }
+ public abstract MessageDescriptor DescriptorForType { get; }
+ public abstract int GetRepeatedFieldCount(FieldDescriptor field);
+ public abstract object this[FieldDescriptor field, int index] { get; set; }
+ public abstract bool HasField(FieldDescriptor field);
+ public abstract bool HasOneof(OneofDescriptor oneof);
+ public abstract FieldDescriptor OneofFieldDescriptor(OneofDescriptor oneof);
+ public abstract IBuilder CreateBuilderForField(FieldDescriptor field);
+ public abstract TBuilder ClearField(FieldDescriptor field);
+ public abstract TBuilder ClearOneof(OneofDescriptor oneof);
+ public abstract TBuilder AddRepeatedField(FieldDescriptor field, object value);
+
+ #endregion
+
+ public TBuilder SetUnknownFields(UnknownFieldSet fields)
+ {
+ UnknownFields = fields;
+ return ThisBuilder;
+ }
+
+ public override TBuilder Clear()
+ {
+ foreach (FieldDescriptor field in AllFields.Keys)
+ {
+ ClearField(field);
+ }
+ return ThisBuilder;
+ }
+
+ public override sealed TBuilder MergeFrom(IMessageLite other)
+ {
+ if (other is IMessage)
+ {
+ return MergeFrom((IMessage) other);
+ }
+ throw new ArgumentException("MergeFrom(Message) can only merge messages of the same type.");
+ }
+
+ /// <summary>
+ /// Merge the specified other message into the message being
+ /// built. Merging occurs as follows. For each field:
+ /// For singular primitive fields, if the field is set in <paramref name="other"/>,
+ /// then <paramref name="other"/>'s value overwrites the value in this message.
+ /// For singular message fields, if the field is set in <paramref name="other"/>,
+ /// it is merged into the corresponding sub-message of this message using the same
+ /// merging rules.
+ /// For repeated fields, the elements in <paramref name="other"/> are concatenated
+ /// with the elements in this message.
+ /// </summary>
+ /// <param name="other"></param>
+ /// <returns></returns>
+ public abstract TBuilder MergeFrom(TMessage other);
+
+ public virtual TBuilder MergeFrom(IMessage other)
+ {
+ if (other.DescriptorForType != DescriptorForType)
+ {
+ throw new ArgumentException("MergeFrom(IMessage) can only merge messages of the same type.");
+ }
+
+ // Note: We don't attempt to verify that other's fields have valid
+ // types. Doing so would be a losing battle. We'd have to verify
+ // all sub-messages as well, and we'd have to make copies of all of
+ // them to insure that they don't change after verification (since
+ // the Message interface itself cannot enforce immutability of
+ // implementations).
+ // TODO(jonskeet): Provide a function somewhere called MakeDeepCopy()
+ // which allows people to make secure deep copies of messages.
+ foreach (KeyValuePair<FieldDescriptor, object> entry in other.AllFields)
+ {
+ FieldDescriptor field = entry.Key;
+ if (field.IsRepeated)
+ {
+ // Concatenate repeated fields
+ foreach (object element in (IEnumerable) entry.Value)
+ {
+ AddRepeatedField(field, element);
+ }
+ }
+ else if (field.MappedType == MappedType.Message)
+ {
+ // Merge singular messages
+ IMessageLite existingValue = (IMessageLite) this[field];
+ if (existingValue == existingValue.WeakDefaultInstanceForType)
+ {
+ this[field] = entry.Value;
+ }
+ else
+ {
+ this[field] = existingValue.WeakCreateBuilderForType()
+ .WeakMergeFrom(existingValue)
+ .WeakMergeFrom((IMessageLite) entry.Value)
+ .WeakBuild();
+ }
+ }
+ else
+ {
+ // Overwrite simple values
+ this[field] = entry.Value;
+ }
+ }
+
+ //Fix for unknown fields not merging, see java's AbstractMessage.Builder<T> line 236
+ MergeUnknownFields(other.UnknownFields);
+
+ return ThisBuilder;
+ }
+
+ public override TBuilder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
+ {
+ UnknownFieldSet.Builder unknownFields = UnknownFieldSet.CreateBuilder(UnknownFields);
+ unknownFields.MergeFrom(input, extensionRegistry, this);
+ UnknownFields = unknownFields.Build();
+ return ThisBuilder;
+ }
+
+ public virtual TBuilder MergeUnknownFields(UnknownFieldSet unknownFields)
+ {
+ UnknownFields = UnknownFieldSet.CreateBuilder(UnknownFields)
+ .MergeFrom(unknownFields)
+ .Build();
+ return ThisBuilder;
+ }
+
+ public virtual IBuilder SetField(FieldDescriptor field, object value)
+ {
+ this[field] = value;
+ return ThisBuilder;
+ }
+
+ public virtual IBuilder SetRepeatedField(FieldDescriptor field, int index, object value)
+ {
+ this[field, index] = value;
+ return ThisBuilder;
+ }
+
+ #region Explicit Implementations
+
+ IMessage IBuilder.WeakBuild()
+ {
+ return Build();
+ }
+
+ IBuilder IBuilder.WeakAddRepeatedField(FieldDescriptor field, object value)
+ {
+ return AddRepeatedField(field, value);
+ }
+
+ IBuilder IBuilder.WeakClear()
+ {
+ return Clear();
+ }
+
+ IBuilder IBuilder.WeakMergeFrom(IMessage message)
+ {
+ return MergeFrom(message);
+ }
+
+ IBuilder IBuilder.WeakMergeFrom(ICodedInputStream input)
+ {
+ return MergeFrom(input);
+ }
+
+ IBuilder IBuilder.WeakMergeFrom(ICodedInputStream input, ExtensionRegistry registry)
+ {
+ return MergeFrom(input, registry);
+ }
+
+ IBuilder IBuilder.WeakMergeFrom(ByteString data)
+ {
+ return MergeFrom(data);
+ }
+
+ IBuilder IBuilder.WeakMergeFrom(ByteString data, ExtensionRegistry registry)
+ {
+ return MergeFrom(data, registry);
+ }
+
+ IMessage IBuilder.WeakBuildPartial()
+ {
+ return BuildPartial();
+ }
+
+ IBuilder IBuilder.WeakClone()
+ {
+ return Clone();
+ }
+
+ IMessage IBuilder.WeakDefaultInstanceForType
+ {
+ get { return DefaultInstanceForType; }
+ }
+
+ IBuilder IBuilder.WeakClearField(FieldDescriptor field)
+ {
+ return ClearField(field);
+ }
+
+ IBuilder IBuilder.WeakClearOneof(OneofDescriptor oneof)
+ {
+ return ClearOneof(oneof);
+ }
+
+ #endregion
+
+ /// <summary>
+ /// Converts this builder to a string using <see cref="TextFormat" />.
+ /// </summary>
+ /// <remarks>
+ /// This method is not sealed (in the way that it is in <see cref="AbstractMessage{TMessage, TBuilder}" />
+ /// as it was added after earlier releases; some other implementations may already be overriding the
+ /// method.
+ /// </remarks>
+ public override string ToString()
+ {
+ return TextFormat.PrintToString(this);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/AbstractBuilderLite.cs b/csharp/src/ProtocolBuffers/AbstractBuilderLite.cs
new file mode 100644
index 00000000..a7fedeae
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/AbstractBuilderLite.cs
@@ -0,0 +1,264 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.IO;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Implementation of the non-generic IMessage interface as far as possible.
+ /// </summary>
+ public abstract partial class AbstractBuilderLite<TMessage, TBuilder> : IBuilderLite<TMessage, TBuilder>
+ where TMessage : AbstractMessageLite<TMessage, TBuilder>
+ where TBuilder : AbstractBuilderLite<TMessage, TBuilder>
+ {
+ protected abstract TBuilder ThisBuilder { get; }
+
+ public abstract bool IsInitialized { get; }
+
+ public abstract TBuilder Clear();
+
+ public abstract TBuilder Clone();
+
+ public abstract TMessage Build();
+
+ public abstract TMessage BuildPartial();
+
+ public abstract TBuilder MergeFrom(IMessageLite other);
+
+ public abstract TBuilder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry);
+
+ public abstract TMessage DefaultInstanceForType { get; }
+
+ #region IBuilderLite<TMessage,TBuilder> Members
+
+ public virtual TBuilder MergeFrom(ICodedInputStream input)
+ {
+ return MergeFrom(input, ExtensionRegistry.CreateInstance());
+ }
+
+ public TBuilder MergeDelimitedFrom(Stream input)
+ {
+ return MergeDelimitedFrom(input, ExtensionRegistry.CreateInstance());
+ }
+
+ public TBuilder MergeDelimitedFrom(Stream input, ExtensionRegistry extensionRegistry)
+ {
+ int size = (int) CodedInputStream.ReadRawVarint32(input);
+ Stream limitedStream = new LimitedInputStream(input, size);
+ return MergeFrom(limitedStream, extensionRegistry);
+ }
+
+ public TBuilder MergeFrom(ByteString data)
+ {
+ return MergeFrom(data, ExtensionRegistry.CreateInstance());
+ }
+
+ public TBuilder MergeFrom(ByteString data, ExtensionRegistry extensionRegistry)
+ {
+ CodedInputStream input = data.CreateCodedInput();
+ MergeFrom(input, extensionRegistry);
+ input.CheckLastTagWas(0);
+ return ThisBuilder;
+ }
+
+ public TBuilder MergeFrom(byte[] data)
+ {
+ CodedInputStream input = CodedInputStream.CreateInstance(data);
+ MergeFrom(input);
+ input.CheckLastTagWas(0);
+ return ThisBuilder;
+ }
+
+ public TBuilder MergeFrom(byte[] data, ExtensionRegistry extensionRegistry)
+ {
+ CodedInputStream input = CodedInputStream.CreateInstance(data);
+ MergeFrom(input, extensionRegistry);
+ input.CheckLastTagWas(0);
+ return ThisBuilder;
+ }
+
+ public TBuilder MergeFrom(Stream input)
+ {
+ CodedInputStream codedInput = CodedInputStream.CreateInstance(input);
+ MergeFrom(codedInput);
+ codedInput.CheckLastTagWas(0);
+ return ThisBuilder;
+ }
+
+ public TBuilder MergeFrom(Stream input, ExtensionRegistry extensionRegistry)
+ {
+ CodedInputStream codedInput = CodedInputStream.CreateInstance(input);
+ MergeFrom(codedInput, extensionRegistry);
+ codedInput.CheckLastTagWas(0);
+ return ThisBuilder;
+ }
+
+ #endregion
+
+ #region Explicit definitions
+
+ IBuilderLite IBuilderLite.WeakClear()
+ {
+ return Clear();
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(IMessageLite message)
+ {
+ return MergeFrom(message);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ByteString data)
+ {
+ return MergeFrom(data);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ByteString data, ExtensionRegistry registry)
+ {
+ return MergeFrom(data, registry);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ICodedInputStream input)
+ {
+ return MergeFrom(input);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ICodedInputStream input, ExtensionRegistry registry)
+ {
+ return MergeFrom(input, registry);
+ }
+
+ IMessageLite IBuilderLite.WeakBuild()
+ {
+ return Build();
+ }
+
+ IMessageLite IBuilderLite.WeakBuildPartial()
+ {
+ return BuildPartial();
+ }
+
+ IBuilderLite IBuilderLite.WeakClone()
+ {
+ return Clone();
+ }
+
+ IMessageLite IBuilderLite.WeakDefaultInstanceForType
+ {
+ get { return DefaultInstanceForType; }
+ }
+
+ #endregion
+
+ #region LimitedInputStream
+
+ /// <summary>
+ /// Stream implementation which proxies another stream, only allowing a certain amount
+ /// of data to be read. Note that this is only used to read delimited streams, so it
+ /// doesn't attempt to implement everything.
+ /// </summary>
+ private class LimitedInputStream : Stream
+ {
+ private readonly Stream proxied;
+ private int bytesLeft;
+
+ internal LimitedInputStream(Stream proxied, int size)
+ {
+ this.proxied = proxied;
+ bytesLeft = size;
+ }
+
+ public override bool CanRead
+ {
+ get { return true; }
+ }
+
+ public override bool CanSeek
+ {
+ get { return false; }
+ }
+
+ public override bool CanWrite
+ {
+ get { return false; }
+ }
+
+ public override void Flush()
+ {
+ }
+
+ public override long Length
+ {
+ get { throw new NotSupportedException(); }
+ }
+
+ public override long Position
+ {
+ get { throw new NotSupportedException(); }
+ set { throw new NotSupportedException(); }
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ if (bytesLeft > 0)
+ {
+ int bytesRead = proxied.Read(buffer, offset, Math.Min(bytesLeft, count));
+ bytesLeft -= bytesRead;
+ return bytesRead;
+ }
+ return 0;
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ throw new NotSupportedException();
+ }
+
+ public override void SetLength(long value)
+ {
+ throw new NotSupportedException();
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ throw new NotSupportedException();
+ }
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/AbstractMessage.cs b/csharp/src/ProtocolBuffers/AbstractMessage.cs
new file mode 100644
index 00000000..ef057e6f
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/AbstractMessage.cs
@@ -0,0 +1,293 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Implementation of the non-generic IMessage interface as far as possible.
+ /// </summary>
+ public abstract partial class AbstractMessage<TMessage, TBuilder> : AbstractMessageLite<TMessage, TBuilder>,
+ IMessage<TMessage, TBuilder>
+ where TMessage : AbstractMessage<TMessage, TBuilder>
+ where TBuilder : AbstractBuilder<TMessage, TBuilder>
+ {
+ /// <summary>
+ /// The serialized size if it's already been computed, or null
+ /// if we haven't computed it yet.
+ /// </summary>
+ private int? memoizedSize = null;
+
+ #region Unimplemented members of IMessage
+
+ public abstract MessageDescriptor DescriptorForType { get; }
+ public abstract IDictionary<FieldDescriptor, object> AllFields { get; }
+ public abstract bool HasField(FieldDescriptor field);
+ public abstract bool HasOneof(OneofDescriptor oneof);
+ public abstract FieldDescriptor OneofFieldDescriptor(OneofDescriptor oneof);
+ public abstract object this[FieldDescriptor field] { get; }
+ public abstract int GetRepeatedFieldCount(FieldDescriptor field);
+ public abstract object this[FieldDescriptor field, int index] { get; }
+ public abstract UnknownFieldSet UnknownFields { get; }
+
+ #endregion
+
+ /// <summary>
+ /// Returns true iff all required fields in the message and all embedded
+ /// messages are set.
+ /// </summary>
+ public override bool IsInitialized
+ {
+ get
+ {
+ // Check that all required fields are present.
+ foreach (FieldDescriptor field in DescriptorForType.Fields)
+ {
+ if (field.IsRequired && !HasField(field))
+ {
+ return false;
+ }
+ }
+
+ // Check that embedded messages are initialized.
+ foreach (KeyValuePair<FieldDescriptor, object> entry in AllFields)
+ {
+ FieldDescriptor field = entry.Key;
+ if (field.MappedType == MappedType.Message)
+ {
+ if (field.IsRepeated)
+ {
+ // We know it's an IList<T>, but not the exact type - so
+ // IEnumerable is the best we can do. (C# generics aren't covariant yet.)
+ foreach (IMessageLite element in (IEnumerable) entry.Value)
+ {
+ if (!element.IsInitialized)
+ {
+ return false;
+ }
+ }
+ }
+ else
+ {
+ if (!((IMessageLite) entry.Value).IsInitialized)
+ {
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+ }
+ }
+
+ public override sealed string ToString()
+ {
+ return TextFormat.PrintToString(this);
+ }
+
+ public override sealed void PrintTo(TextWriter writer)
+ {
+ TextFormat.Print(this, writer);
+ }
+
+ /// <summary>
+ /// Serializes the message and writes it to the given output stream.
+ /// This does not flush or close the stream.
+ /// </summary>
+ /// <remarks>
+ /// Protocol Buffers are not self-delimiting. Therefore, if you write
+ /// any more data to the stream after the message, you must somehow ensure
+ /// that the parser on the receiving end does not interpret this as being
+ /// part of the protocol message. One way of doing this is by writing the size
+ /// of the message before the data, then making sure you limit the input to
+ /// that size when receiving the data. Alternatively, use WriteDelimitedTo(Stream).
+ /// </remarks>
+ public override void WriteTo(ICodedOutputStream output)
+ {
+ foreach (KeyValuePair<FieldDescriptor, object> entry in AllFields)
+ {
+ FieldDescriptor field = entry.Key;
+ if (field.IsRepeated)
+ {
+ // We know it's an IList<T>, but not the exact type - so
+ // IEnumerable is the best we can do. (C# generics aren't covariant yet.)
+ IEnumerable valueList = (IEnumerable) entry.Value;
+ if (field.IsPacked)
+ {
+ output.WritePackedArray(field.FieldType, field.FieldNumber, field.Name, valueList);
+ }
+ else
+ {
+ output.WriteArray(field.FieldType, field.FieldNumber, field.Name, valueList);
+ }
+ }
+ else
+ {
+ output.WriteField(field.FieldType, field.FieldNumber, field.Name, entry.Value);
+ }
+ }
+
+ UnknownFieldSet unknownFields = UnknownFields;
+ if (DescriptorForType.Options.MessageSetWireFormat)
+ {
+ unknownFields.WriteAsMessageSetTo(output);
+ }
+ else
+ {
+ unknownFields.WriteTo(output);
+ }
+ }
+
+ /// <summary>
+ /// Returns the number of bytes required to encode this message.
+ /// The result is only computed on the first call and memoized after that.
+ /// </summary>
+ public override int SerializedSize
+ {
+ get
+ {
+ if (memoizedSize != null)
+ {
+ return memoizedSize.Value;
+ }
+
+ int size = 0;
+ foreach (KeyValuePair<FieldDescriptor, object> entry in AllFields)
+ {
+ FieldDescriptor field = entry.Key;
+ if (field.IsRepeated)
+ {
+ IEnumerable valueList = (IEnumerable) entry.Value;
+ if (field.IsPacked)
+ {
+ int dataSize = 0;
+ foreach (object element in valueList)
+ {
+ dataSize += CodedOutputStream.ComputeFieldSizeNoTag(field.FieldType, element);
+ }
+ size += dataSize;
+ size += CodedOutputStream.ComputeTagSize(field.FieldNumber);
+ size += CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ else
+ {
+ foreach (object element in valueList)
+ {
+ size += CodedOutputStream.ComputeFieldSize(field.FieldType, field.FieldNumber, element);
+ }
+ }
+ }
+ else
+ {
+ size += CodedOutputStream.ComputeFieldSize(field.FieldType, field.FieldNumber, entry.Value);
+ }
+ }
+
+ UnknownFieldSet unknownFields = UnknownFields;
+ if (DescriptorForType.Options.MessageSetWireFormat)
+ {
+ size += unknownFields.SerializedSizeAsMessageSet;
+ }
+ else
+ {
+ size += unknownFields.SerializedSize;
+ }
+
+ memoizedSize = size;
+ return size;
+ }
+ }
+
+ /// <summary>
+ /// Compares the specified object with this message for equality.
+ /// Returns true iff the given object is a message of the same type
+ /// (as defined by DescriptorForType) and has identical values
+ /// for all its fields.
+ /// </summary>
+ public override bool Equals(object other)
+ {
+ if (other == this)
+ {
+ return true;
+ }
+ IMessage otherMessage = other as IMessage;
+ if (otherMessage == null || otherMessage.DescriptorForType != DescriptorForType)
+ {
+ return false;
+ }
+ return Dictionaries.Equals(AllFields, otherMessage.AllFields) &&
+ UnknownFields.Equals(otherMessage.UnknownFields);
+ }
+
+ /// <summary>
+ /// Returns the hash code value for this message.
+ /// TODO(jonskeet): Specify the hash algorithm, but better than the Java one!
+ /// </summary>
+ public override int GetHashCode()
+ {
+ int hash = 41;
+ hash = (19*hash) + DescriptorForType.GetHashCode();
+ hash = (53*hash) + Dictionaries.GetHashCode(AllFields);
+ hash = (29*hash) + UnknownFields.GetHashCode();
+ return hash;
+ }
+
+ #region Explicit Members
+
+ IBuilder IMessage.WeakCreateBuilderForType()
+ {
+ return CreateBuilderForType();
+ }
+
+ IBuilder IMessage.WeakToBuilder()
+ {
+ return ToBuilder();
+ }
+
+ IMessage IMessage.WeakDefaultInstanceForType
+ {
+ get { return DefaultInstanceForType; }
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/AbstractMessageLite.cs b/csharp/src/ProtocolBuffers/AbstractMessageLite.cs
new file mode 100644
index 00000000..1cdead2e
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/AbstractMessageLite.cs
@@ -0,0 +1,140 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Implementation of the non-generic IMessage interface as far as possible.
+ /// </summary>
+ public abstract partial class AbstractMessageLite<TMessage, TBuilder> : IMessageLite<TMessage, TBuilder>
+ where TMessage : AbstractMessageLite<TMessage, TBuilder>
+ where TBuilder : AbstractBuilderLite<TMessage, TBuilder>
+ {
+ public abstract TBuilder CreateBuilderForType();
+
+ public abstract TBuilder ToBuilder();
+
+ public abstract TMessage DefaultInstanceForType { get; }
+
+ public abstract bool IsInitialized { get; }
+
+ public abstract void WriteTo(ICodedOutputStream output);
+
+ public abstract int SerializedSize { get; }
+
+ //public override bool Equals(object other) {
+ //}
+
+ //public override int GetHashCode() {
+ //}
+
+ public abstract void PrintTo(TextWriter writer);
+
+ #region IMessageLite<TMessage,TBuilder> Members
+
+ /// <summary>
+ /// Serializes the message to a ByteString. This is a trivial wrapper
+ /// around WriteTo(ICodedOutputStream).
+ /// </summary>
+ public ByteString ToByteString()
+ {
+ ByteString.CodedBuilder output = new ByteString.CodedBuilder(SerializedSize);
+ WriteTo(output.CodedOutput);
+ return output.Build();
+ }
+
+ /// <summary>
+ /// Serializes the message to a byte array. This is a trivial wrapper
+ /// around WriteTo(ICodedOutputStream).
+ /// </summary>
+ public byte[] ToByteArray()
+ {
+ byte[] result = new byte[SerializedSize];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(result);
+ WriteTo(output);
+ output.CheckNoSpaceLeft();
+ return result;
+ }
+
+ /// <summary>
+ /// Serializes the message and writes it to the given stream.
+ /// This is just a wrapper around WriteTo(CodedOutputStream). This
+ /// does not flush or close the stream.
+ /// </summary>
+ /// <param name="output"></param>
+ public void WriteTo(Stream output)
+ {
+ CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
+ WriteTo(codedOutput);
+ codedOutput.Flush();
+ }
+
+ /// <summary>
+ /// Like WriteTo(Stream) but writes the size of the message as a varint before
+ /// writing the data. This allows more data to be written to the stream after the
+ /// message without the need to delimit the message data yourself. Use
+ /// IBuilder.MergeDelimitedFrom(Stream) or the static method
+ /// YourMessageType.ParseDelimitedFrom(Stream) to parse messages written by this method.
+ /// </summary>
+ /// <param name="output"></param>
+ public void WriteDelimitedTo(Stream output)
+ {
+ CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
+ codedOutput.WriteRawVarint32((uint) SerializedSize);
+ WriteTo(codedOutput);
+ codedOutput.Flush();
+ }
+
+ IBuilderLite IMessageLite.WeakCreateBuilderForType()
+ {
+ return CreateBuilderForType();
+ }
+
+ IBuilderLite IMessageLite.WeakToBuilder()
+ {
+ return ToBuilder();
+ }
+
+ IMessageLite IMessageLite.WeakDefaultInstanceForType
+ {
+ get { return DefaultInstanceForType; }
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ByteArray.cs b/csharp/src/ProtocolBuffers/ByteArray.cs
new file mode 100644
index 00000000..3c51b7b0
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ByteArray.cs
@@ -0,0 +1,92 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy
+ /// </summary>
+ internal static class ByteArray
+ {
+ /// <summary>
+ /// The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy
+ /// </summary>
+ private const int CopyThreshold = 12;
+
+ /// <summary>
+ /// Determines which copy routine to use based on the number of bytes to be copied.
+ /// </summary>
+ public static void Copy(byte[] src, int srcOffset, byte[] dst, int dstOffset, int count)
+ {
+ if (count > CopyThreshold)
+ {
+ Buffer.BlockCopy(src, srcOffset, dst, dstOffset, count);
+ }
+ else
+ {
+ ByteCopy(src, srcOffset, dst, dstOffset, count);
+ }
+ }
+
+ /// <summary>
+ /// Copy the bytes provided with a for loop, faster when there are only a few bytes to copy
+ /// </summary>
+ public static void ByteCopy(byte[] src, int srcOffset, byte[] dst, int dstOffset, int count)
+ {
+ int stop = srcOffset + count;
+ for (int i = srcOffset; i < stop; i++)
+ {
+ dst[dstOffset++] = src[i];
+ }
+ }
+
+ /// <summary>
+ /// Reverses the order of bytes in the array
+ /// </summary>
+ public static void Reverse(byte[] bytes)
+ {
+ byte temp;
+ for (int first = 0, last = bytes.Length - 1; first < last; first++, last--)
+ {
+ temp = bytes[first];
+ bytes[first] = bytes[last];
+ bytes[last] = temp;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ByteString.cs b/csharp/src/ProtocolBuffers/ByteString.cs
new file mode 100644
index 00000000..434865b7
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ByteString.cs
@@ -0,0 +1,305 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Immutable array of bytes.
+ /// TODO(jonskeet): Implement the common collection interfaces?
+ /// </summary>
+ public sealed class ByteString : IEnumerable<byte>, IEquatable<ByteString>
+ {
+ private static readonly ByteString empty = new ByteString(new byte[0]);
+
+ private readonly byte[] bytes;
+
+ /// <summary>
+ /// Unsafe operations that can cause IO Failure and/or other catestrophic side-effects.
+ /// </summary>
+ public static class Unsafe
+ {
+ /// <summary>
+ /// Constructs a new ByteString from the given byte array. The array is
+ /// *not* copied, and must not be modified after this constructor is called.
+ /// </summary>
+ public static ByteString FromBytes(byte[] bytes)
+ {
+ return new ByteString(bytes);
+ }
+
+ /// <summary>
+ /// Provides direct, unrestricted access to the bytes contained in this instance.
+ /// You must not modify or resize the byte array returned by this method.
+ /// </summary>
+ public static byte[] GetBuffer(ByteString bytes)
+ {
+ return bytes.bytes;
+ }
+ }
+
+ /// <summary>
+ /// Internal use only. Ensure that the provided array is not mutated and belongs to this instance.
+ /// </summary>
+ internal static ByteString AttachBytes(byte[] bytes)
+ {
+ return new ByteString(bytes);
+ }
+
+ /// <summary>
+ /// Constructs a new ByteString from the given byte array. The array is
+ /// *not* copied, and must not be modified after this constructor is called.
+ /// </summary>
+ private ByteString(byte[] bytes)
+ {
+ this.bytes = bytes;
+ }
+
+ /// <summary>
+ /// Returns an empty ByteString.
+ /// </summary>
+ public static ByteString Empty
+ {
+ get { return empty; }
+ }
+
+ /// <summary>
+ /// Returns the length of this ByteString in bytes.
+ /// </summary>
+ public int Length
+ {
+ get { return bytes.Length; }
+ }
+
+ public bool IsEmpty
+ {
+ get { return Length == 0; }
+ }
+
+ public byte[] ToByteArray()
+ {
+ return (byte[]) bytes.Clone();
+ }
+
+ public string ToBase64()
+ {
+ return Convert.ToBase64String(bytes);
+ }
+
+ /// <summary>
+ /// Constructs a ByteString from the Base64 Encoded String.
+ /// </summary>
+ public static ByteString FromBase64(string bytes)
+ {
+ // By handling the empty string explicitly, we not only optimize but we fix a
+ // problem on CF 2.0. See issue 61 for details.
+ return bytes == "" ? Empty : new ByteString(Convert.FromBase64String(bytes));
+ }
+
+ /// <summary>
+ /// Constructs a ByteString from the given array. The contents
+ /// are copied, so further modifications to the array will not
+ /// be reflected in the returned ByteString.
+ /// </summary>
+ public static ByteString CopyFrom(byte[] bytes)
+ {
+ return new ByteString((byte[]) bytes.Clone());
+ }
+
+ /// <summary>
+ /// Constructs a ByteString from a portion of a byte array.
+ /// </summary>
+ public static ByteString CopyFrom(byte[] bytes, int offset, int count)
+ {
+ byte[] portion = new byte[count];
+ ByteArray.Copy(bytes, offset, portion, 0, count);
+ return new ByteString(portion);
+ }
+
+ /// <summary>
+ /// Creates a new ByteString by encoding the specified text with
+ /// the given encoding.
+ /// </summary>
+ public static ByteString CopyFrom(string text, Encoding encoding)
+ {
+ return new ByteString(encoding.GetBytes(text));
+ }
+
+ /// <summary>
+ /// Creates a new ByteString by encoding the specified text in UTF-8.
+ /// </summary>
+ public static ByteString CopyFromUtf8(string text)
+ {
+ return CopyFrom(text, Encoding.UTF8);
+ }
+
+ /// <summary>
+ /// Retuns the byte at the given index.
+ /// </summary>
+ public byte this[int index]
+ {
+ get { return bytes[index]; }
+ }
+
+ public string ToString(Encoding encoding)
+ {
+ return encoding.GetString(bytes, 0, bytes.Length);
+ }
+
+ public string ToStringUtf8()
+ {
+ return ToString(Encoding.UTF8);
+ }
+
+ public IEnumerator<byte> GetEnumerator()
+ {
+ return ((IEnumerable<byte>) bytes).GetEnumerator();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ /// <summary>
+ /// Creates a CodedInputStream from this ByteString's data.
+ /// </summary>
+ public CodedInputStream CreateCodedInput()
+ {
+ // We trust CodedInputStream not to reveal the provided byte array or modify it
+ return CodedInputStream.CreateInstance(bytes);
+ }
+
+ // TODO(jonskeet): CopyTo if it turns out to be required
+
+ public override bool Equals(object obj)
+ {
+ ByteString other = obj as ByteString;
+ if (obj == null)
+ {
+ return false;
+ }
+ return Equals(other);
+ }
+
+ public override int GetHashCode()
+ {
+ int ret = 23;
+ foreach (byte b in bytes)
+ {
+ ret = (ret << 8) | b;
+ }
+ return ret;
+ }
+
+ public bool Equals(ByteString other)
+ {
+ if (other.bytes.Length != bytes.Length)
+ {
+ return false;
+ }
+ for (int i = 0; i < bytes.Length; i++)
+ {
+ if (other.bytes[i] != bytes[i])
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /// <summary>
+ /// Builder for ByteStrings which allows them to be created without extra
+ /// copying being involved. This has to be a nested type in order to have access
+ /// to the private ByteString constructor.
+ /// </summary>
+ internal sealed class CodedBuilder
+ {
+ private readonly CodedOutputStream output;
+ private readonly byte[] buffer;
+
+ internal CodedBuilder(int size)
+ {
+ buffer = new byte[size];
+ output = CodedOutputStream.CreateInstance(buffer);
+ }
+
+ internal ByteString Build()
+ {
+ output.CheckNoSpaceLeft();
+
+ // We can be confident that the CodedOutputStream will not modify the
+ // underlying bytes anymore because it already wrote all of them. So,
+ // no need to make a copy.
+ return new ByteString(buffer);
+ }
+
+ internal CodedOutputStream CodedOutput
+ {
+ get { return output; }
+ }
+ }
+
+ /// <summary>
+ /// Used internally by CodedOutputStream to avoid creating a copy for the write
+ /// </summary>
+ internal void WriteRawBytesTo(CodedOutputStream outputStream)
+ {
+ outputStream.WriteRawBytes(bytes, 0, bytes.Length);
+ }
+
+ /// <summary>
+ /// Copies the entire byte array to the destination array provided at the offset specified.
+ /// </summary>
+ public void CopyTo(byte[] array, int position)
+ {
+ ByteArray.Copy(bytes, 0, array, position, bytes.Length);
+ }
+
+ /// <summary>
+ /// Writes the entire byte array to the provided stream
+ /// </summary>
+ public void WriteTo(Stream outputStream)
+ {
+ outputStream.Write(bytes, 0, bytes.Length);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/CodedInputStream.cs b/csharp/src/ProtocolBuffers/CodedInputStream.cs
new file mode 100644
index 00000000..37774d01
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/CodedInputStream.cs
@@ -0,0 +1,1828 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Readings and decodes protocol message fields.
+ /// </summary>
+ /// <remarks>
+ /// This class contains two kinds of methods: methods that read specific
+ /// protocol message constructs and field types (e.g. ReadTag and
+ /// ReadInt32) and methods that read low-level values (e.g.
+ /// ReadRawVarint32 and ReadRawBytes). If you are reading encoded protocol
+ /// messages, you should use the former methods, but if you are reading some
+ /// other format of your own design, use the latter. The names of the former
+ /// methods are taken from the protocol buffer type names, not .NET types.
+ /// (Hence ReadFloat instead of ReadSingle, and ReadBool instead of ReadBoolean.)
+ ///
+ /// TODO(jonskeet): Consider whether recursion and size limits shouldn't be readonly,
+ /// set at construction time.
+ /// </remarks>
+ public sealed class CodedInputStream : ICodedInputStream
+ {
+ private readonly byte[] buffer;
+ private int bufferSize;
+ private int bufferSizeAfterLimit = 0;
+ private int bufferPos = 0;
+ private readonly Stream input;
+ private uint lastTag = 0;
+
+ private uint nextTag = 0;
+ private bool hasNextTag = false;
+
+ internal const int DefaultRecursionLimit = 64;
+ internal const int DefaultSizeLimit = 64 << 20; // 64MB
+ public const int BufferSize = 4096;
+
+ /// <summary>
+ /// The total number of bytes read before the current buffer. The
+ /// total bytes read up to the current position can be computed as
+ /// totalBytesRetired + bufferPos.
+ /// </summary>
+ private int totalBytesRetired = 0;
+
+ /// <summary>
+ /// The absolute position of the end of the current message.
+ /// </summary>
+ private int currentLimit = int.MaxValue;
+
+ /// <summary>
+ /// <see cref="SetRecursionLimit"/>
+ /// </summary>
+ private int recursionDepth = 0;
+
+ private int recursionLimit = DefaultRecursionLimit;
+
+ /// <summary>
+ /// <see cref="SetSizeLimit"/>
+ /// </summary>
+ private int sizeLimit = DefaultSizeLimit;
+
+ #region Construction
+
+ /// <summary>
+ /// Creates a new CodedInputStream reading data from the given
+ /// stream.
+ /// </summary>
+ public static CodedInputStream CreateInstance(Stream input)
+ {
+ return new CodedInputStream(input);
+ }
+ /// <summary>
+ /// Creates a new CodedInputStream reading data from the given
+ /// stream and a pre-allocated memory buffer.
+ /// </summary>
+ public static CodedInputStream CreateInstance(Stream input, byte[] buffer)
+ {
+ return new CodedInputStream(input, buffer);
+ }
+
+ /// <summary>
+ /// Creates a new CodedInputStream reading data from the given
+ /// byte array.
+ /// </summary>
+ public static CodedInputStream CreateInstance(byte[] buf)
+ {
+ return new CodedInputStream(buf, 0, buf.Length);
+ }
+
+ /// <summary>
+ /// Creates a new CodedInputStream that reads from the given
+ /// byte array slice.
+ /// </summary>
+ public static CodedInputStream CreateInstance(byte[] buf, int offset, int length)
+ {
+ return new CodedInputStream(buf, offset, length);
+ }
+
+ private CodedInputStream(byte[] buffer, int offset, int length)
+ {
+ this.buffer = buffer;
+ this.bufferPos = offset;
+ this.bufferSize = offset + length;
+ this.input = null;
+ }
+
+ private CodedInputStream(Stream input)
+ {
+ this.buffer = new byte[BufferSize];
+ this.bufferSize = 0;
+ this.input = input;
+ }
+
+ private CodedInputStream(Stream input, byte[] buffer)
+ {
+ this.buffer = buffer;
+ this.bufferSize = 0;
+ this.input = input;
+ }
+ #endregion
+
+ /// <summary>
+ /// Returns the current position in the input stream, or the position in the input buffer
+ /// </summary>
+ public long Position
+ {
+ get
+ {
+ if (input != null)
+ {
+ return input.Position - ((bufferSize + bufferSizeAfterLimit) - bufferPos);
+ }
+ return bufferPos;
+ }
+ }
+
+
+ void ICodedInputStream.ReadMessageStart() { }
+ void ICodedInputStream.ReadMessageEnd() { }
+
+ #region Validation
+
+ /// <summary>
+ /// Verifies that the last call to ReadTag() returned the given tag value.
+ /// This is used to verify that a nested group ended with the correct
+ /// end tag.
+ /// </summary>
+ /// <exception cref="InvalidProtocolBufferException">The last
+ /// tag read was not the one specified</exception>
+ public void CheckLastTagWas(uint value)
+ {
+ if (lastTag != value)
+ {
+ throw InvalidProtocolBufferException.InvalidEndTag();
+ }
+ }
+
+ #endregion
+
+ #region Reading of tags etc
+
+ /// <summary>
+ /// Attempt to peek at the next field tag.
+ /// </summary>
+ public bool PeekNextTag(out uint fieldTag, out string fieldName)
+ {
+ if (hasNextTag)
+ {
+ fieldName = null;
+ fieldTag = nextTag;
+ return true;
+ }
+
+ uint savedLast = lastTag;
+ hasNextTag = ReadTag(out nextTag, out fieldName);
+ lastTag = savedLast;
+ fieldTag = nextTag;
+ return hasNextTag;
+ }
+
+ /// <summary>
+ /// Attempt to read a field tag, returning false if we have reached the end
+ /// of the input data.
+ /// </summary>
+ /// <param name="fieldTag">The 'tag' of the field (id * 8 + wire-format)</param>
+ /// <param name="fieldName">Not Supported - For protobuffer streams, this parameter is always null</param>
+ /// <returns>true if the next fieldTag was read</returns>
+ public bool ReadTag(out uint fieldTag, out string fieldName)
+ {
+ fieldName = null;
+
+ if (hasNextTag)
+ {
+ fieldTag = nextTag;
+ lastTag = fieldTag;
+ hasNextTag = false;
+ return true;
+ }
+
+ if (IsAtEnd)
+ {
+ fieldTag = 0;
+ lastTag = fieldTag;
+ return false;
+ }
+
+ fieldTag = ReadRawVarint32();
+ lastTag = fieldTag;
+ if (lastTag == 0)
+ {
+ // If we actually read zero, that's not a valid tag.
+ throw InvalidProtocolBufferException.InvalidTag();
+ }
+ return true;
+ }
+
+ /// <summary>
+ /// Read a double field from the stream.
+ /// </summary>
+ public bool ReadDouble(ref double value)
+ {
+ value = FrameworkPortability.Int64ToDouble((long) ReadRawLittleEndian64());
+ return true;
+ }
+
+ /// <summary>
+ /// Read a float field from the stream.
+ /// </summary>
+ public bool ReadFloat(ref float value)
+ {
+ if (BitConverter.IsLittleEndian && 4 <= bufferSize - bufferPos)
+ {
+ value = BitConverter.ToSingle(buffer, bufferPos);
+ bufferPos += 4;
+ }
+ else
+ {
+ byte[] rawBytes = ReadRawBytes(4);
+ if (!BitConverter.IsLittleEndian)
+ {
+ ByteArray.Reverse(rawBytes);
+ }
+ value = BitConverter.ToSingle(rawBytes, 0);
+ }
+ return true;
+ }
+
+ /// <summary>
+ /// Read a uint64 field from the stream.
+ /// </summary>
+ public bool ReadUInt64(ref ulong value)
+ {
+ value = ReadRawVarint64();
+ return true;
+ }
+
+ /// <summary>
+ /// Read an int64 field from the stream.
+ /// </summary>
+ public bool ReadInt64(ref long value)
+ {
+ value = (long) ReadRawVarint64();
+ return true;
+ }
+
+ /// <summary>
+ /// Read an int32 field from the stream.
+ /// </summary>
+ public bool ReadInt32(ref int value)
+ {
+ value = (int) ReadRawVarint32();
+ return true;
+ }
+
+ /// <summary>
+ /// Read a fixed64 field from the stream.
+ /// </summary>
+ public bool ReadFixed64(ref ulong value)
+ {
+ value = ReadRawLittleEndian64();
+ return true;
+ }
+
+ /// <summary>
+ /// Read a fixed32 field from the stream.
+ /// </summary>
+ public bool ReadFixed32(ref uint value)
+ {
+ value = ReadRawLittleEndian32();
+ return true;
+ }
+
+ /// <summary>
+ /// Read a bool field from the stream.
+ /// </summary>
+ public bool ReadBool(ref bool value)
+ {
+ value = ReadRawVarint32() != 0;
+ return true;
+ }
+
+ /// <summary>
+ /// Reads a string field from the stream.
+ /// </summary>
+ public bool ReadString(ref string value)
+ {
+ int size = (int) ReadRawVarint32();
+ // No need to read any data for an empty string.
+ if (size == 0)
+ {
+ value = "";
+ return true;
+ }
+ if (size <= bufferSize - bufferPos)
+ {
+ // Fast path: We already have the bytes in a contiguous buffer, so
+ // just copy directly from it.
+ String result = Encoding.UTF8.GetString(buffer, bufferPos, size);
+ bufferPos += size;
+ value = result;
+ return true;
+ }
+ // Slow path: Build a byte array first then copy it.
+ value = Encoding.UTF8.GetString(ReadRawBytes(size), 0, size);
+ return true;
+ }
+
+ /// <summary>
+ /// Reads a group field value from the stream.
+ /// </summary>
+ public void ReadGroup(int fieldNumber, IBuilderLite builder,
+ ExtensionRegistry extensionRegistry)
+ {
+ if (recursionDepth >= recursionLimit)
+ {
+ throw InvalidProtocolBufferException.RecursionLimitExceeded();
+ }
+ ++recursionDepth;
+ builder.WeakMergeFrom(this, extensionRegistry);
+ CheckLastTagWas(WireFormat.MakeTag(fieldNumber, WireFormat.WireType.EndGroup));
+ --recursionDepth;
+ }
+
+ /// <summary>
+ /// Reads a group field value from the stream and merges it into the given
+ /// UnknownFieldSet.
+ /// </summary>
+ [Obsolete]
+ public void ReadUnknownGroup(int fieldNumber, IBuilderLite builder)
+ {
+ if (recursionDepth >= recursionLimit)
+ {
+ throw InvalidProtocolBufferException.RecursionLimitExceeded();
+ }
+ ++recursionDepth;
+ builder.WeakMergeFrom(this);
+ CheckLastTagWas(WireFormat.MakeTag(fieldNumber, WireFormat.WireType.EndGroup));
+ --recursionDepth;
+ }
+
+ /// <summary>
+ /// Reads an embedded message field value from the stream.
+ /// </summary>
+ public void ReadMessage(IBuilderLite builder, ExtensionRegistry extensionRegistry)
+ {
+ int length = (int) ReadRawVarint32();
+ if (recursionDepth >= recursionLimit)
+ {
+ throw InvalidProtocolBufferException.RecursionLimitExceeded();
+ }
+ int oldLimit = PushLimit(length);
+ ++recursionDepth;
+ builder.WeakMergeFrom(this, extensionRegistry);
+ CheckLastTagWas(0);
+ --recursionDepth;
+ PopLimit(oldLimit);
+ }
+
+ /// <summary>
+ /// Reads a bytes field value from the stream.
+ /// </summary>
+ public bool ReadBytes(ref ByteString value)
+ {
+ int size = (int) ReadRawVarint32();
+ if (size <= bufferSize - bufferPos && size > 0)
+ {
+ // Fast path: We already have the bytes in a contiguous buffer, so
+ // just copy directly from it.
+ ByteString result = ByteString.CopyFrom(buffer, bufferPos, size);
+ bufferPos += size;
+ value = result;
+ return true;
+ }
+ else
+ {
+ // Slow path: Build a byte array and attach it to a new ByteString.
+ value = ByteString.AttachBytes(ReadRawBytes(size));
+ return true;
+ }
+ }
+
+ /// <summary>
+ /// Reads a uint32 field value from the stream.
+ /// </summary>
+ public bool ReadUInt32(ref uint value)
+ {
+ value = ReadRawVarint32();
+ return true;
+ }
+
+ /// <summary>
+ /// Reads an enum field value from the stream. The caller is responsible
+ /// for converting the numeric value to an actual enum.
+ /// </summary>
+ public bool ReadEnum(ref IEnumLite value, out object unknown, IEnumLiteMap mapping)
+ {
+ int rawValue = (int) ReadRawVarint32();
+
+ value = mapping.FindValueByNumber(rawValue);
+ if (value != null)
+ {
+ unknown = null;
+ return true;
+ }
+ unknown = rawValue;
+ return false;
+ }
+
+ /// <summary>
+ /// Reads an enum field value from the stream. If the enum is valid for type T,
+ /// then the ref value is set and it returns true. Otherwise the unknown output
+ /// value is set and this method returns false.
+ /// </summary>
+ public bool ReadEnum<T>(ref T value, out object unknown)
+ where T : struct, IComparable, IFormattable
+ {
+ int number = (int) ReadRawVarint32();
+ if (EnumParser<T>.TryConvert(number, ref value))
+ {
+ unknown = null;
+ return true;
+ }
+ unknown = number;
+ return false;
+ }
+
+ /// <summary>
+ /// Reads an sfixed32 field value from the stream.
+ /// </summary>
+ public bool ReadSFixed32(ref int value)
+ {
+ value = (int) ReadRawLittleEndian32();
+ return true;
+ }
+
+ /// <summary>
+ /// Reads an sfixed64 field value from the stream.
+ /// </summary>
+ public bool ReadSFixed64(ref long value)
+ {
+ value = (long) ReadRawLittleEndian64();
+ return true;
+ }
+
+ /// <summary>
+ /// Reads an sint32 field value from the stream.
+ /// </summary>
+ public bool ReadSInt32(ref int value)
+ {
+ value = DecodeZigZag32(ReadRawVarint32());
+ return true;
+ }
+
+ /// <summary>
+ /// Reads an sint64 field value from the stream.
+ /// </summary>
+ public bool ReadSInt64(ref long value)
+ {
+ value = DecodeZigZag64(ReadRawVarint64());
+ return true;
+ }
+
+ private bool BeginArray(uint fieldTag, out bool isPacked, out int oldLimit)
+ {
+ isPacked = WireFormat.GetTagWireType(fieldTag) == WireFormat.WireType.LengthDelimited;
+
+ if (isPacked)
+ {
+ int length = (int) (ReadRawVarint32() & int.MaxValue);
+ if (length > 0)
+ {
+ oldLimit = PushLimit(length);
+ return true;
+ }
+ oldLimit = -1;
+ return false; //packed but empty
+ }
+
+ oldLimit = -1;
+ return true;
+ }
+
+ /// <summary>
+ /// Returns true if the next tag is also part of the same unpacked array.
+ /// </summary>
+ private bool ContinueArray(uint currentTag)
+ {
+ string ignore;
+ uint next;
+ if (PeekNextTag(out next, out ignore))
+ {
+ if (next == currentTag)
+ {
+ hasNextTag = false;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Returns true if the next tag is also part of the same array, which may or may not be packed.
+ /// </summary>
+ private bool ContinueArray(uint currentTag, bool packed, int oldLimit)
+ {
+ if (packed)
+ {
+ if (ReachedLimit)
+ {
+ PopLimit(oldLimit);
+ return false;
+ }
+ return true;
+ }
+
+ string ignore;
+ uint next;
+ if (PeekNextTag(out next, out ignore))
+ {
+ if (next == currentTag)
+ {
+ hasNextTag = false;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void ReadPrimitiveArray(FieldType fieldType, uint fieldTag, string fieldName, ICollection<object> list)
+ {
+ WireFormat.WireType normal = WireFormat.GetWireType(fieldType);
+ WireFormat.WireType wformat = WireFormat.GetTagWireType(fieldTag);
+
+ // 2.3 allows packed form even if the field is not declared packed.
+ if (normal != wformat && wformat == WireFormat.WireType.LengthDelimited)
+ {
+ int length = (int) (ReadRawVarint32() & int.MaxValue);
+ int limit = PushLimit(length);
+ while (!ReachedLimit)
+ {
+ Object value = null;
+ if (ReadPrimitiveField(fieldType, ref value))
+ {
+ list.Add(value);
+ }
+ }
+ PopLimit(limit);
+ }
+ else
+ {
+ Object value = null;
+ do
+ {
+ if (ReadPrimitiveField(fieldType, ref value))
+ {
+ list.Add(value);
+ }
+ } while (ContinueArray(fieldTag));
+ }
+ }
+
+ public void ReadStringArray(uint fieldTag, string fieldName, ICollection<string> list)
+ {
+ string tmp = null;
+ do
+ {
+ ReadString(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag));
+ }
+
+ public void ReadBytesArray(uint fieldTag, string fieldName, ICollection<ByteString> list)
+ {
+ ByteString tmp = null;
+ do
+ {
+ ReadBytes(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag));
+ }
+
+ public void ReadBoolArray(uint fieldTag, string fieldName, ICollection<bool> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ bool tmp = false;
+ do
+ {
+ ReadBool(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadInt32Array(uint fieldTag, string fieldName, ICollection<int> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ int tmp = 0;
+ do
+ {
+ ReadInt32(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadSInt32Array(uint fieldTag, string fieldName, ICollection<int> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ int tmp = 0;
+ do
+ {
+ ReadSInt32(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadUInt32Array(uint fieldTag, string fieldName, ICollection<uint> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ uint tmp = 0;
+ do
+ {
+ ReadUInt32(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadFixed32Array(uint fieldTag, string fieldName, ICollection<uint> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ uint tmp = 0;
+ do
+ {
+ ReadFixed32(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadSFixed32Array(uint fieldTag, string fieldName, ICollection<int> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ int tmp = 0;
+ do
+ {
+ ReadSFixed32(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadInt64Array(uint fieldTag, string fieldName, ICollection<long> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ long tmp = 0;
+ do
+ {
+ ReadInt64(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadSInt64Array(uint fieldTag, string fieldName, ICollection<long> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ long tmp = 0;
+ do
+ {
+ ReadSInt64(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadUInt64Array(uint fieldTag, string fieldName, ICollection<ulong> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ ulong tmp = 0;
+ do
+ {
+ ReadUInt64(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadFixed64Array(uint fieldTag, string fieldName, ICollection<ulong> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ ulong tmp = 0;
+ do
+ {
+ ReadFixed64(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadSFixed64Array(uint fieldTag, string fieldName, ICollection<long> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ long tmp = 0;
+ do
+ {
+ ReadSFixed64(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadDoubleArray(uint fieldTag, string fieldName, ICollection<double> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ double tmp = 0;
+ do
+ {
+ ReadDouble(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadFloatArray(uint fieldTag, string fieldName, ICollection<float> list)
+ {
+ bool isPacked;
+ int holdLimit;
+ if (BeginArray(fieldTag, out isPacked, out holdLimit))
+ {
+ float tmp = 0;
+ do
+ {
+ ReadFloat(ref tmp);
+ list.Add(tmp);
+ } while (ContinueArray(fieldTag, isPacked, holdLimit));
+ }
+ }
+
+ public void ReadEnumArray(uint fieldTag, string fieldName, ICollection<IEnumLite> list,
+ out ICollection<object> unknown, IEnumLiteMap mapping)
+ {
+ unknown = null;
+ object unkval;
+ IEnumLite value = null;
+ WireFormat.WireType wformat = WireFormat.GetTagWireType(fieldTag);
+
+ // 2.3 allows packed form even if the field is not declared packed.
+ if (wformat == WireFormat.WireType.LengthDelimited)
+ {
+ int length = (int) (ReadRawVarint32() & int.MaxValue);
+ int limit = PushLimit(length);
+ while (!ReachedLimit)
+ {
+ if (ReadEnum(ref value, out unkval, mapping))
+ {
+ list.Add(value);
+ }
+ else
+ {
+ if (unknown == null)
+ {
+ unknown = new List<object>();
+ }
+ unknown.Add(unkval);
+ }
+ }
+ PopLimit(limit);
+ }
+ else
+ {
+ do
+ {
+ if (ReadEnum(ref value, out unkval, mapping))
+ {
+ list.Add(value);
+ }
+ else
+ {
+ if (unknown == null)
+ {
+ unknown = new List<object>();
+ }
+ unknown.Add(unkval);
+ }
+ } while (ContinueArray(fieldTag));
+ }
+ }
+
+ public void ReadEnumArray<T>(uint fieldTag, string fieldName, ICollection<T> list,
+ out ICollection<object> unknown)
+ where T : struct, IComparable, IFormattable
+ {
+ unknown = null;
+ object unkval;
+ T value = default(T);
+ WireFormat.WireType wformat = WireFormat.GetTagWireType(fieldTag);
+
+ // 2.3 allows packed form even if the field is not declared packed.
+ if (wformat == WireFormat.WireType.LengthDelimited)
+ {
+ int length = (int) (ReadRawVarint32() & int.MaxValue);
+ int limit = PushLimit(length);
+ while (!ReachedLimit)
+ {
+ if (ReadEnum<T>(ref value, out unkval))
+ {
+ list.Add(value);
+ }
+ else
+ {
+ if (unknown == null)
+ {
+ unknown = new List<object>();
+ }
+ unknown.Add(unkval);
+ }
+ }
+ PopLimit(limit);
+ }
+ else
+ {
+ do
+ {
+ if (ReadEnum(ref value, out unkval))
+ {
+ list.Add(value);
+ }
+ else
+ {
+ if (unknown == null)
+ {
+ unknown = new List<object>();
+ }
+ unknown.Add(unkval);
+ }
+ } while (ContinueArray(fieldTag));
+ }
+ }
+
+ public void ReadMessageArray<T>(uint fieldTag, string fieldName, ICollection<T> list, T messageType,
+ ExtensionRegistry registry) where T : IMessageLite
+ {
+ do
+ {
+ IBuilderLite builder = messageType.WeakCreateBuilderForType();
+ ReadMessage(builder, registry);
+ list.Add((T) builder.WeakBuildPartial());
+ } while (ContinueArray(fieldTag));
+ }
+
+ public void ReadGroupArray<T>(uint fieldTag, string fieldName, ICollection<T> list, T messageType,
+ ExtensionRegistry registry) where T : IMessageLite
+ {
+ do
+ {
+ IBuilderLite builder = messageType.WeakCreateBuilderForType();
+ ReadGroup(WireFormat.GetTagFieldNumber(fieldTag), builder, registry);
+ list.Add((T) builder.WeakBuildPartial());
+ } while (ContinueArray(fieldTag));
+ }
+
+ /// <summary>
+ /// Reads a field of any primitive type. Enums, groups and embedded
+ /// messages are not handled by this method.
+ /// </summary>
+ public bool ReadPrimitiveField(FieldType fieldType, ref object value)
+ {
+ switch (fieldType)
+ {
+ case FieldType.Double:
+ {
+ double tmp = 0;
+ if (ReadDouble(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.Float:
+ {
+ float tmp = 0;
+ if (ReadFloat(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.Int64:
+ {
+ long tmp = 0;
+ if (ReadInt64(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.UInt64:
+ {
+ ulong tmp = 0;
+ if (ReadUInt64(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.Int32:
+ {
+ int tmp = 0;
+ if (ReadInt32(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.Fixed64:
+ {
+ ulong tmp = 0;
+ if (ReadFixed64(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.Fixed32:
+ {
+ uint tmp = 0;
+ if (ReadFixed32(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.Bool:
+ {
+ bool tmp = false;
+ if (ReadBool(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.String:
+ {
+ string tmp = null;
+ if (ReadString(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.Bytes:
+ {
+ ByteString tmp = null;
+ if (ReadBytes(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.UInt32:
+ {
+ uint tmp = 0;
+ if (ReadUInt32(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.SFixed32:
+ {
+ int tmp = 0;
+ if (ReadSFixed32(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.SFixed64:
+ {
+ long tmp = 0;
+ if (ReadSFixed64(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.SInt32:
+ {
+ int tmp = 0;
+ if (ReadSInt32(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.SInt64:
+ {
+ long tmp = 0;
+ if (ReadSInt64(ref tmp))
+ {
+ value = tmp;
+ return true;
+ }
+ return false;
+ }
+ case FieldType.Group:
+ throw new ArgumentException("ReadPrimitiveField() cannot handle nested groups.");
+ case FieldType.Message:
+ throw new ArgumentException("ReadPrimitiveField() cannot handle embedded messages.");
+ // We don't handle enums because we don't know what to do if the
+ // value is not recognized.
+ case FieldType.Enum:
+ throw new ArgumentException("ReadPrimitiveField() cannot handle enums.");
+ default:
+ throw new ArgumentOutOfRangeException("Invalid field type " + fieldType);
+ }
+ }
+
+ #endregion
+
+ #region Underlying reading primitives
+
+ /// <summary>
+ /// Same code as ReadRawVarint32, but read each byte individually, checking for
+ /// buffer overflow.
+ /// </summary>
+ private uint SlowReadRawVarint32()
+ {
+ int tmp = ReadRawByte();
+ if (tmp < 128)
+ {
+ return (uint) tmp;
+ }
+ int result = tmp & 0x7f;
+ if ((tmp = ReadRawByte()) < 128)
+ {
+ result |= tmp << 7;
+ }
+ else
+ {
+ result |= (tmp & 0x7f) << 7;
+ if ((tmp = ReadRawByte()) < 128)
+ {
+ result |= tmp << 14;
+ }
+ else
+ {
+ result |= (tmp & 0x7f) << 14;
+ if ((tmp = ReadRawByte()) < 128)
+ {
+ result |= tmp << 21;
+ }
+ else
+ {
+ result |= (tmp & 0x7f) << 21;
+ result |= (tmp = ReadRawByte()) << 28;
+ if (tmp >= 128)
+ {
+ // Discard upper 32 bits.
+ for (int i = 0; i < 5; i++)
+ {
+ if (ReadRawByte() < 128)
+ {
+ return (uint) result;
+ }
+ }
+ throw InvalidProtocolBufferException.MalformedVarint();
+ }
+ }
+ }
+ }
+ return (uint) result;
+ }
+
+ /// <summary>
+ /// Read a raw Varint from the stream. If larger than 32 bits, discard the upper bits.
+ /// This method is optimised for the case where we've got lots of data in the buffer.
+ /// That means we can check the size just once, then just read directly from the buffer
+ /// without constant rechecking of the buffer length.
+ /// </summary>
+ public uint ReadRawVarint32()
+ {
+ if (bufferPos + 5 > bufferSize)
+ {
+ return SlowReadRawVarint32();
+ }
+
+ int tmp = buffer[bufferPos++];
+ if (tmp < 128)
+ {
+ return (uint) tmp;
+ }
+ int result = tmp & 0x7f;
+ if ((tmp = buffer[bufferPos++]) < 128)
+ {
+ result |= tmp << 7;
+ }
+ else
+ {
+ result |= (tmp & 0x7f) << 7;
+ if ((tmp = buffer[bufferPos++]) < 128)
+ {
+ result |= tmp << 14;
+ }
+ else
+ {
+ result |= (tmp & 0x7f) << 14;
+ if ((tmp = buffer[bufferPos++]) < 128)
+ {
+ result |= tmp << 21;
+ }
+ else
+ {
+ result |= (tmp & 0x7f) << 21;
+ result |= (tmp = buffer[bufferPos++]) << 28;
+ if (tmp >= 128)
+ {
+ // Discard upper 32 bits.
+ // Note that this has to use ReadRawByte() as we only ensure we've
+ // got at least 5 bytes at the start of the method. This lets us
+ // use the fast path in more cases, and we rarely hit this section of code.
+ for (int i = 0; i < 5; i++)
+ {
+ if (ReadRawByte() < 128)
+ {
+ return (uint) result;
+ }
+ }
+ throw InvalidProtocolBufferException.MalformedVarint();
+ }
+ }
+ }
+ }
+ return (uint) result;
+ }
+
+ /// <summary>
+ /// Reads a varint from the input one byte at a time, so that it does not
+ /// read any bytes after the end of the varint. If you simply wrapped the
+ /// stream in a CodedInputStream and used ReadRawVarint32(Stream)}
+ /// then you would probably end up reading past the end of the varint since
+ /// CodedInputStream buffers its input.
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public static uint ReadRawVarint32(Stream input)
+ {
+ int result = 0;
+ int offset = 0;
+ for (; offset < 32; offset += 7)
+ {
+ int b = input.ReadByte();
+ if (b == -1)
+ {
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+ result |= (b & 0x7f) << offset;
+ if ((b & 0x80) == 0)
+ {
+ return (uint) result;
+ }
+ }
+ // Keep reading up to 64 bits.
+ for (; offset < 64; offset += 7)
+ {
+ int b = input.ReadByte();
+ if (b == -1)
+ {
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+ if ((b & 0x80) == 0)
+ {
+ return (uint) result;
+ }
+ }
+ throw InvalidProtocolBufferException.MalformedVarint();
+ }
+
+ /// <summary>
+ /// Read a raw varint from the stream.
+ /// </summary>
+ public ulong ReadRawVarint64()
+ {
+ int shift = 0;
+ ulong result = 0;
+ while (shift < 64)
+ {
+ byte b = ReadRawByte();
+ result |= (ulong) (b & 0x7F) << shift;
+ if ((b & 0x80) == 0)
+ {
+ return result;
+ }
+ shift += 7;
+ }
+ throw InvalidProtocolBufferException.MalformedVarint();
+ }
+
+ /// <summary>
+ /// Read a 32-bit little-endian integer from the stream.
+ /// </summary>
+ public uint ReadRawLittleEndian32()
+ {
+ uint b1 = ReadRawByte();
+ uint b2 = ReadRawByte();
+ uint b3 = ReadRawByte();
+ uint b4 = ReadRawByte();
+ return b1 | (b2 << 8) | (b3 << 16) | (b4 << 24);
+ }
+
+ /// <summary>
+ /// Read a 64-bit little-endian integer from the stream.
+ /// </summary>
+ public ulong ReadRawLittleEndian64()
+ {
+ ulong b1 = ReadRawByte();
+ ulong b2 = ReadRawByte();
+ ulong b3 = ReadRawByte();
+ ulong b4 = ReadRawByte();
+ ulong b5 = ReadRawByte();
+ ulong b6 = ReadRawByte();
+ ulong b7 = ReadRawByte();
+ ulong b8 = ReadRawByte();
+ return b1 | (b2 << 8) | (b3 << 16) | (b4 << 24)
+ | (b5 << 32) | (b6 << 40) | (b7 << 48) | (b8 << 56);
+ }
+
+ #endregion
+
+ /// <summary>
+ /// Decode a 32-bit value with ZigZag encoding.
+ /// </summary>
+ /// <remarks>
+ /// ZigZag encodes signed integers into values that can be efficiently
+ /// encoded with varint. (Otherwise, negative values must be
+ /// sign-extended to 64 bits to be varint encoded, thus always taking
+ /// 10 bytes on the wire.)
+ /// </remarks>
+ public static int DecodeZigZag32(uint n)
+ {
+ return (int) (n >> 1) ^ -(int) (n & 1);
+ }
+
+ /// <summary>
+ /// Decode a 32-bit value with ZigZag encoding.
+ /// </summary>
+ /// <remarks>
+ /// ZigZag encodes signed integers into values that can be efficiently
+ /// encoded with varint. (Otherwise, negative values must be
+ /// sign-extended to 64 bits to be varint encoded, thus always taking
+ /// 10 bytes on the wire.)
+ /// </remarks>
+ public static long DecodeZigZag64(ulong n)
+ {
+ return (long) (n >> 1) ^ -(long) (n & 1);
+ }
+
+ /// <summary>
+ /// Set the maximum message recursion depth.
+ /// </summary>
+ /// <remarks>
+ /// In order to prevent malicious
+ /// messages from causing stack overflows, CodedInputStream limits
+ /// how deeply messages may be nested. The default limit is 64.
+ /// </remarks>
+ public int SetRecursionLimit(int limit)
+ {
+ if (limit < 0)
+ {
+ throw new ArgumentOutOfRangeException("Recursion limit cannot be negative: " + limit);
+ }
+ int oldLimit = recursionLimit;
+ recursionLimit = limit;
+ return oldLimit;
+ }
+
+ /// <summary>
+ /// Set the maximum message size.
+ /// </summary>
+ /// <remarks>
+ /// In order to prevent malicious messages from exhausting memory or
+ /// causing integer overflows, CodedInputStream limits how large a message may be.
+ /// The default limit is 64MB. You should set this limit as small
+ /// as you can without harming your app's functionality. Note that
+ /// size limits only apply when reading from an InputStream, not
+ /// when constructed around a raw byte array (nor with ByteString.NewCodedInput).
+ /// If you want to read several messages from a single CodedInputStream, you
+ /// can call ResetSizeCounter() after each message to avoid hitting the
+ /// size limit.
+ /// </remarks>
+ public int SetSizeLimit(int limit)
+ {
+ if (limit < 0)
+ {
+ throw new ArgumentOutOfRangeException("Size limit cannot be negative: " + limit);
+ }
+ int oldLimit = sizeLimit;
+ sizeLimit = limit;
+ return oldLimit;
+ }
+
+ #region Internal reading and buffer management
+
+ /// <summary>
+ /// Resets the current size counter to zero (see SetSizeLimit).
+ /// </summary>
+ public void ResetSizeCounter()
+ {
+ totalBytesRetired = 0;
+ }
+
+ /// <summary>
+ /// Sets currentLimit to (current position) + byteLimit. This is called
+ /// when descending into a length-delimited embedded message. The previous
+ /// limit is returned.
+ /// </summary>
+ /// <returns>The old limit.</returns>
+ public int PushLimit(int byteLimit)
+ {
+ if (byteLimit < 0)
+ {
+ throw InvalidProtocolBufferException.NegativeSize();
+ }
+ byteLimit += totalBytesRetired + bufferPos;
+ int oldLimit = currentLimit;
+ if (byteLimit > oldLimit)
+ {
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+ currentLimit = byteLimit;
+
+ RecomputeBufferSizeAfterLimit();
+
+ return oldLimit;
+ }
+
+ private void RecomputeBufferSizeAfterLimit()
+ {
+ bufferSize += bufferSizeAfterLimit;
+ int bufferEnd = totalBytesRetired + bufferSize;
+ if (bufferEnd > currentLimit)
+ {
+ // Limit is in current buffer.
+ bufferSizeAfterLimit = bufferEnd - currentLimit;
+ bufferSize -= bufferSizeAfterLimit;
+ }
+ else
+ {
+ bufferSizeAfterLimit = 0;
+ }
+ }
+
+ /// <summary>
+ /// Discards the current limit, returning the previous limit.
+ /// </summary>
+ public void PopLimit(int oldLimit)
+ {
+ currentLimit = oldLimit;
+ RecomputeBufferSizeAfterLimit();
+ }
+
+ /// <summary>
+ /// Returns whether or not all the data before the limit has been read.
+ /// </summary>
+ /// <returns></returns>
+ public bool ReachedLimit
+ {
+ get
+ {
+ if (currentLimit == int.MaxValue)
+ {
+ return false;
+ }
+ int currentAbsolutePosition = totalBytesRetired + bufferPos;
+ return currentAbsolutePosition >= currentLimit;
+ }
+ }
+
+ /// <summary>
+ /// Returns true if the stream has reached the end of the input. This is the
+ /// case if either the end of the underlying input source has been reached or
+ /// the stream has reached a limit created using PushLimit.
+ /// </summary>
+ public bool IsAtEnd
+ {
+ get { return bufferPos == bufferSize && !RefillBuffer(false); }
+ }
+
+ /// <summary>
+ /// Called when buffer is empty to read more bytes from the
+ /// input. If <paramref name="mustSucceed"/> is true, RefillBuffer() gurantees that
+ /// either there will be at least one byte in the buffer when it returns
+ /// or it will throw an exception. If <paramref name="mustSucceed"/> is false,
+ /// RefillBuffer() returns false if no more bytes were available.
+ /// </summary>
+ /// <param name="mustSucceed"></param>
+ /// <returns></returns>
+ private bool RefillBuffer(bool mustSucceed)
+ {
+ if (bufferPos < bufferSize)
+ {
+ throw new InvalidOperationException("RefillBuffer() called when buffer wasn't empty.");
+ }
+
+ if (totalBytesRetired + bufferSize == currentLimit)
+ {
+ // Oops, we hit a limit.
+ if (mustSucceed)
+ {
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ totalBytesRetired += bufferSize;
+
+ bufferPos = 0;
+ bufferSize = (input == null) ? 0 : input.Read(buffer, 0, buffer.Length);
+ if (bufferSize < 0)
+ {
+ throw new InvalidOperationException("Stream.Read returned a negative count");
+ }
+ if (bufferSize == 0)
+ {
+ if (mustSucceed)
+ {
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ RecomputeBufferSizeAfterLimit();
+ int totalBytesRead =
+ totalBytesRetired + bufferSize + bufferSizeAfterLimit;
+ if (totalBytesRead > sizeLimit || totalBytesRead < 0)
+ {
+ throw InvalidProtocolBufferException.SizeLimitExceeded();
+ }
+ return true;
+ }
+ }
+
+ /// <summary>
+ /// Read one byte from the input.
+ /// </summary>
+ /// <exception cref="InvalidProtocolBufferException">
+ /// the end of the stream or the current limit was reached
+ /// </exception>
+ public byte ReadRawByte()
+ {
+ if (bufferPos == bufferSize)
+ {
+ RefillBuffer(true);
+ }
+ return buffer[bufferPos++];
+ }
+
+ /// <summary>
+ /// Read a fixed size of bytes from the input.
+ /// </summary>
+ /// <exception cref="InvalidProtocolBufferException">
+ /// the end of the stream or the current limit was reached
+ /// </exception>
+ public byte[] ReadRawBytes(int size)
+ {
+ if (size < 0)
+ {
+ throw InvalidProtocolBufferException.NegativeSize();
+ }
+
+ if (totalBytesRetired + bufferPos + size > currentLimit)
+ {
+ // Read to the end of the stream anyway.
+ SkipRawBytes(currentLimit - totalBytesRetired - bufferPos);
+ // Then fail.
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+
+ if (size <= bufferSize - bufferPos)
+ {
+ // We have all the bytes we need already.
+ byte[] bytes = new byte[size];
+ ByteArray.Copy(buffer, bufferPos, bytes, 0, size);
+ bufferPos += size;
+ return bytes;
+ }
+ else if (size < buffer.Length)
+ {
+ // Reading more bytes than are in the buffer, but not an excessive number
+ // of bytes. We can safely allocate the resulting array ahead of time.
+
+ // First copy what we have.
+ byte[] bytes = new byte[size];
+ int pos = bufferSize - bufferPos;
+ ByteArray.Copy(buffer, bufferPos, bytes, 0, pos);
+ bufferPos = bufferSize;
+
+ // We want to use RefillBuffer() and then copy from the buffer into our
+ // byte array rather than reading directly into our byte array because
+ // the input may be unbuffered.
+ RefillBuffer(true);
+
+ while (size - pos > bufferSize)
+ {
+ Buffer.BlockCopy(buffer, 0, bytes, pos, bufferSize);
+ pos += bufferSize;
+ bufferPos = bufferSize;
+ RefillBuffer(true);
+ }
+
+ ByteArray.Copy(buffer, 0, bytes, pos, size - pos);
+ bufferPos = size - pos;
+
+ return bytes;
+ }
+ else
+ {
+ // The size is very large. For security reasons, we can't allocate the
+ // entire byte array yet. The size comes directly from the input, so a
+ // maliciously-crafted message could provide a bogus very large size in
+ // order to trick the app into allocating a lot of memory. We avoid this
+ // by allocating and reading only a small chunk at a time, so that the
+ // malicious message must actually *be* extremely large to cause
+ // problems. Meanwhile, we limit the allowed size of a message elsewhere.
+
+ // Remember the buffer markers since we'll have to copy the bytes out of
+ // it later.
+ int originalBufferPos = bufferPos;
+ int originalBufferSize = bufferSize;
+
+ // Mark the current buffer consumed.
+ totalBytesRetired += bufferSize;
+ bufferPos = 0;
+ bufferSize = 0;
+
+ // Read all the rest of the bytes we need.
+ int sizeLeft = size - (originalBufferSize - originalBufferPos);
+ List<byte[]> chunks = new List<byte[]>();
+
+ while (sizeLeft > 0)
+ {
+ byte[] chunk = new byte[Math.Min(sizeLeft, buffer.Length)];
+ int pos = 0;
+ while (pos < chunk.Length)
+ {
+ int n = (input == null) ? -1 : input.Read(chunk, pos, chunk.Length - pos);
+ if (n <= 0)
+ {
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+ totalBytesRetired += n;
+ pos += n;
+ }
+ sizeLeft -= chunk.Length;
+ chunks.Add(chunk);
+ }
+
+ // OK, got everything. Now concatenate it all into one buffer.
+ byte[] bytes = new byte[size];
+
+ // Start by copying the leftover bytes from this.buffer.
+ int newPos = originalBufferSize - originalBufferPos;
+ ByteArray.Copy(buffer, originalBufferPos, bytes, 0, newPos);
+
+ // And now all the chunks.
+ foreach (byte[] chunk in chunks)
+ {
+ Buffer.BlockCopy(chunk, 0, bytes, newPos, chunk.Length);
+ newPos += chunk.Length;
+ }
+
+ // Done.
+ return bytes;
+ }
+ }
+
+ /// <summary>
+ /// Reads and discards a single field, given its tag value.
+ /// </summary>
+ /// <returns>false if the tag is an end-group tag, in which case
+ /// nothing is skipped. Otherwise, returns true.</returns>
+ public bool SkipField()
+ {
+ uint tag = lastTag;
+ switch (WireFormat.GetTagWireType(tag))
+ {
+ case WireFormat.WireType.Varint:
+ ReadRawVarint64();
+ return true;
+ case WireFormat.WireType.Fixed64:
+ ReadRawLittleEndian64();
+ return true;
+ case WireFormat.WireType.LengthDelimited:
+ SkipRawBytes((int) ReadRawVarint32());
+ return true;
+ case WireFormat.WireType.StartGroup:
+ SkipMessage();
+ CheckLastTagWas(
+ WireFormat.MakeTag(WireFormat.GetTagFieldNumber(tag),
+ WireFormat.WireType.EndGroup));
+ return true;
+ case WireFormat.WireType.EndGroup:
+ return false;
+ case WireFormat.WireType.Fixed32:
+ ReadRawLittleEndian32();
+ return true;
+ default:
+ throw InvalidProtocolBufferException.InvalidWireType();
+ }
+ }
+
+ /// <summary>
+ /// Reads and discards an entire message. This will read either until EOF
+ /// or until an endgroup tag, whichever comes first.
+ /// </summary>
+ public void SkipMessage()
+ {
+ uint tag;
+ string name;
+ while (ReadTag(out tag, out name))
+ {
+ if (!SkipField())
+ {
+ return;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Reads and discards <paramref name="size"/> bytes.
+ /// </summary>
+ /// <exception cref="InvalidProtocolBufferException">the end of the stream
+ /// or the current limit was reached</exception>
+ public void SkipRawBytes(int size)
+ {
+ if (size < 0)
+ {
+ throw InvalidProtocolBufferException.NegativeSize();
+ }
+
+ if (totalBytesRetired + bufferPos + size > currentLimit)
+ {
+ // Read to the end of the stream anyway.
+ SkipRawBytes(currentLimit - totalBytesRetired - bufferPos);
+ // Then fail.
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+
+ if (size <= bufferSize - bufferPos)
+ {
+ // We have all the bytes we need already.
+ bufferPos += size;
+ }
+ else
+ {
+ // Skipping more bytes than are in the buffer. First skip what we have.
+ int pos = bufferSize - bufferPos;
+
+ // ROK 5/7/2013 Issue #54: should retire all bytes in buffer (bufferSize)
+ // totalBytesRetired += pos;
+ totalBytesRetired += bufferSize;
+
+ bufferPos = 0;
+ bufferSize = 0;
+
+ // Then skip directly from the InputStream for the rest.
+ if (pos < size)
+ {
+ if (input == null)
+ {
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+ SkipImpl(size - pos);
+ totalBytesRetired += size - pos;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Abstraction of skipping to cope with streams which can't really skip.
+ /// </summary>
+ private void SkipImpl(int amountToSkip)
+ {
+ if (input.CanSeek)
+ {
+ long previousPosition = input.Position;
+ input.Position += amountToSkip;
+ if (input.Position != previousPosition + amountToSkip)
+ {
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+ }
+ else
+ {
+ byte[] skipBuffer = new byte[1024];
+ while (amountToSkip > 0)
+ {
+ int bytesRead = input.Read(skipBuffer, 0, skipBuffer.Length);
+ if (bytesRead <= 0)
+ {
+ throw InvalidProtocolBufferException.TruncatedMessage();
+ }
+ amountToSkip -= bytesRead;
+ }
+ }
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs b/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs
new file mode 100644
index 00000000..99d82fce
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/CodedOutputStream.ComputeSize.cs
@@ -0,0 +1,643 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Globalization;
+using System.Text;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ // This part of CodedOutputStream provides all the static entry points that are used
+ // by generated code and internally to compute the size of messages prior to being
+ // written to an instance of CodedOutputStream.
+ public sealed partial class CodedOutputStream
+ {
+ private const int LittleEndian64Size = 8;
+ private const int LittleEndian32Size = 4;
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// double field, including the tag.
+ /// </summary>
+ public static int ComputeDoubleSize(int fieldNumber, double value)
+ {
+ return ComputeTagSize(fieldNumber) + LittleEndian64Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// float field, including the tag.
+ /// </summary>
+ public static int ComputeFloatSize(int fieldNumber, float value)
+ {
+ return ComputeTagSize(fieldNumber) + LittleEndian32Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// uint64 field, including the tag.
+ /// </summary>
+ public static int ComputeUInt64Size(int fieldNumber, ulong value)
+ {
+ return ComputeTagSize(fieldNumber) + ComputeRawVarint64Size(value);
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// int64 field, including the tag.
+ /// </summary>
+ public static int ComputeInt64Size(int fieldNumber, long value)
+ {
+ return ComputeTagSize(fieldNumber) + ComputeRawVarint64Size((ulong) value);
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// int32 field, including the tag.
+ /// </summary>
+ public static int ComputeInt32Size(int fieldNumber, int value)
+ {
+ if (value >= 0)
+ {
+ return ComputeTagSize(fieldNumber) + ComputeRawVarint32Size((uint) value);
+ }
+ else
+ {
+ // Must sign-extend.
+ return ComputeTagSize(fieldNumber) + 10;
+ }
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// fixed64 field, including the tag.
+ /// </summary>
+ public static int ComputeFixed64Size(int fieldNumber, ulong value)
+ {
+ return ComputeTagSize(fieldNumber) + LittleEndian64Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// fixed32 field, including the tag.
+ /// </summary>
+ public static int ComputeFixed32Size(int fieldNumber, uint value)
+ {
+ return ComputeTagSize(fieldNumber) + LittleEndian32Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// bool field, including the tag.
+ /// </summary>
+ public static int ComputeBoolSize(int fieldNumber, bool value)
+ {
+ return ComputeTagSize(fieldNumber) + 1;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// string field, including the tag.
+ /// </summary>
+ public static int ComputeStringSize(int fieldNumber, String value)
+ {
+ int byteArraySize = Encoding.UTF8.GetByteCount(value);
+ return ComputeTagSize(fieldNumber) +
+ ComputeRawVarint32Size((uint) byteArraySize) +
+ byteArraySize;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// group field, including the tag.
+ /// </summary>
+ public static int ComputeGroupSize(int fieldNumber, IMessageLite value)
+ {
+ return ComputeTagSize(fieldNumber)*2 + value.SerializedSize;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// group field represented by an UnknownFieldSet, including the tag.
+ /// </summary>
+ [Obsolete]
+ public static int ComputeUnknownGroupSize(int fieldNumber,
+ IMessageLite value)
+ {
+ return ComputeTagSize(fieldNumber)*2 + value.SerializedSize;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// embedded message field, including the tag.
+ /// </summary>
+ public static int ComputeMessageSize(int fieldNumber, IMessageLite value)
+ {
+ int size = value.SerializedSize;
+ return ComputeTagSize(fieldNumber) + ComputeRawVarint32Size((uint) size) + size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// bytes field, including the tag.
+ /// </summary>
+ public static int ComputeBytesSize(int fieldNumber, ByteString value)
+ {
+ return ComputeTagSize(fieldNumber) +
+ ComputeRawVarint32Size((uint) value.Length) +
+ value.Length;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// uint32 field, including the tag.
+ /// </summary>
+ public static int ComputeUInt32Size(int fieldNumber, uint value)
+ {
+ return ComputeTagSize(fieldNumber) + ComputeRawVarint32Size(value);
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// enum field, including the tag. The caller is responsible for
+ /// converting the enum value to its numeric value.
+ /// </summary>
+ public static int ComputeEnumSize(int fieldNumber, int value)
+ {
+ return ComputeTagSize(fieldNumber) + ComputeEnumSizeNoTag(value);
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// sfixed32 field, including the tag.
+ /// </summary>
+ public static int ComputeSFixed32Size(int fieldNumber, int value)
+ {
+ return ComputeTagSize(fieldNumber) + LittleEndian32Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// sfixed64 field, including the tag.
+ /// </summary>
+ public static int ComputeSFixed64Size(int fieldNumber, long value)
+ {
+ return ComputeTagSize(fieldNumber) + LittleEndian64Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// sint32 field, including the tag.
+ /// </summary>
+ public static int ComputeSInt32Size(int fieldNumber, int value)
+ {
+ return ComputeTagSize(fieldNumber) + ComputeRawVarint32Size(EncodeZigZag32(value));
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// sint64 field, including the tag.
+ /// </summary>
+ public static int ComputeSInt64Size(int fieldNumber, long value)
+ {
+ return ComputeTagSize(fieldNumber) + ComputeRawVarint64Size(EncodeZigZag64(value));
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// double field, including the tag.
+ /// </summary>
+ public static int ComputeDoubleSizeNoTag(double value)
+ {
+ return LittleEndian64Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// float field, including the tag.
+ /// </summary>
+ public static int ComputeFloatSizeNoTag(float value)
+ {
+ return LittleEndian32Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// uint64 field, including the tag.
+ /// </summary>
+ public static int ComputeUInt64SizeNoTag(ulong value)
+ {
+ return ComputeRawVarint64Size(value);
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// int64 field, including the tag.
+ /// </summary>
+ public static int ComputeInt64SizeNoTag(long value)
+ {
+ return ComputeRawVarint64Size((ulong) value);
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// int32 field, including the tag.
+ /// </summary>
+ public static int ComputeInt32SizeNoTag(int value)
+ {
+ if (value >= 0)
+ {
+ return ComputeRawVarint32Size((uint) value);
+ }
+ else
+ {
+ // Must sign-extend.
+ return 10;
+ }
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// fixed64 field, including the tag.
+ /// </summary>
+ public static int ComputeFixed64SizeNoTag(ulong value)
+ {
+ return LittleEndian64Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// fixed32 field, including the tag.
+ /// </summary>
+ public static int ComputeFixed32SizeNoTag(uint value)
+ {
+ return LittleEndian32Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// bool field, including the tag.
+ /// </summary>
+ public static int ComputeBoolSizeNoTag(bool value)
+ {
+ return 1;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// string field, including the tag.
+ /// </summary>
+ public static int ComputeStringSizeNoTag(String value)
+ {
+ int byteArraySize = Encoding.UTF8.GetByteCount(value);
+ return ComputeRawVarint32Size((uint) byteArraySize) +
+ byteArraySize;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// group field, including the tag.
+ /// </summary>
+ public static int ComputeGroupSizeNoTag(IMessageLite value)
+ {
+ return value.SerializedSize;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// group field represented by an UnknownFieldSet, including the tag.
+ /// </summary>
+ [Obsolete]
+ public static int ComputeUnknownGroupSizeNoTag(IMessageLite value)
+ {
+ return value.SerializedSize;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// embedded message field, including the tag.
+ /// </summary>
+ public static int ComputeMessageSizeNoTag(IMessageLite value)
+ {
+ int size = value.SerializedSize;
+ return ComputeRawVarint32Size((uint) size) + size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// bytes field, including the tag.
+ /// </summary>
+ public static int ComputeBytesSizeNoTag(ByteString value)
+ {
+ return ComputeRawVarint32Size((uint) value.Length) +
+ value.Length;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// uint32 field, including the tag.
+ /// </summary>
+ public static int ComputeUInt32SizeNoTag(uint value)
+ {
+ return ComputeRawVarint32Size(value);
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// enum field, including the tag. The caller is responsible for
+ /// converting the enum value to its numeric value.
+ /// </summary>
+ public static int ComputeEnumSizeNoTag(int value)
+ {
+ return ComputeInt32SizeNoTag(value);
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// sfixed32 field, including the tag.
+ /// </summary>
+ public static int ComputeSFixed32SizeNoTag(int value)
+ {
+ return LittleEndian32Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// sfixed64 field, including the tag.
+ /// </summary>
+ public static int ComputeSFixed64SizeNoTag(long value)
+ {
+ return LittleEndian64Size;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// sint32 field, including the tag.
+ /// </summary>
+ public static int ComputeSInt32SizeNoTag(int value)
+ {
+ return ComputeRawVarint32Size(EncodeZigZag32(value));
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// sint64 field, including the tag.
+ /// </summary>
+ public static int ComputeSInt64SizeNoTag(long value)
+ {
+ return ComputeRawVarint64Size(EncodeZigZag64(value));
+ }
+
+ /*
+ * Compute the number of bytes that would be needed to encode a
+ * MessageSet extension to the stream. For historical reasons,
+ * the wire format differs from normal fields.
+ */
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// MessageSet extension to the stream. For historical reasons,
+ /// the wire format differs from normal fields.
+ /// </summary>
+ public static int ComputeMessageSetExtensionSize(int fieldNumber, IMessageLite value)
+ {
+ return ComputeTagSize(WireFormat.MessageSetField.Item)*2 +
+ ComputeUInt32Size(WireFormat.MessageSetField.TypeID, (uint) fieldNumber) +
+ ComputeMessageSize(WireFormat.MessageSetField.Message, value);
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode an
+ /// unparsed MessageSet extension field to the stream. For
+ /// historical reasons, the wire format differs from normal fields.
+ /// </summary>
+ public static int ComputeRawMessageSetExtensionSize(int fieldNumber, ByteString value)
+ {
+ return ComputeTagSize(WireFormat.MessageSetField.Item)*2 +
+ ComputeUInt32Size(WireFormat.MessageSetField.TypeID, (uint) fieldNumber) +
+ ComputeBytesSize(WireFormat.MessageSetField.Message, value);
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a varint.
+ /// </summary>
+ public static int ComputeRawVarint32Size(uint value)
+ {
+ if ((value & (0xffffffff << 7)) == 0)
+ {
+ return 1;
+ }
+ if ((value & (0xffffffff << 14)) == 0)
+ {
+ return 2;
+ }
+ if ((value & (0xffffffff << 21)) == 0)
+ {
+ return 3;
+ }
+ if ((value & (0xffffffff << 28)) == 0)
+ {
+ return 4;
+ }
+ return 5;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a varint.
+ /// </summary>
+ public static int ComputeRawVarint64Size(ulong value)
+ {
+ if ((value & (0xffffffffffffffffL << 7)) == 0)
+ {
+ return 1;
+ }
+ if ((value & (0xffffffffffffffffL << 14)) == 0)
+ {
+ return 2;
+ }
+ if ((value & (0xffffffffffffffffL << 21)) == 0)
+ {
+ return 3;
+ }
+ if ((value & (0xffffffffffffffffL << 28)) == 0)
+ {
+ return 4;
+ }
+ if ((value & (0xffffffffffffffffL << 35)) == 0)
+ {
+ return 5;
+ }
+ if ((value & (0xffffffffffffffffL << 42)) == 0)
+ {
+ return 6;
+ }
+ if ((value & (0xffffffffffffffffL << 49)) == 0)
+ {
+ return 7;
+ }
+ if ((value & (0xffffffffffffffffL << 56)) == 0)
+ {
+ return 8;
+ }
+ if ((value & (0xffffffffffffffffL << 63)) == 0)
+ {
+ return 9;
+ }
+ return 10;
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// field of arbitrary type, including the tag, to the stream.
+ /// </summary>
+ public static int ComputeFieldSize(FieldType fieldType, int fieldNumber, Object value)
+ {
+ switch (fieldType)
+ {
+ case FieldType.Double:
+ return ComputeDoubleSize(fieldNumber, (double) value);
+ case FieldType.Float:
+ return ComputeFloatSize(fieldNumber, (float) value);
+ case FieldType.Int64:
+ return ComputeInt64Size(fieldNumber, (long) value);
+ case FieldType.UInt64:
+ return ComputeUInt64Size(fieldNumber, (ulong) value);
+ case FieldType.Int32:
+ return ComputeInt32Size(fieldNumber, (int) value);
+ case FieldType.Fixed64:
+ return ComputeFixed64Size(fieldNumber, (ulong) value);
+ case FieldType.Fixed32:
+ return ComputeFixed32Size(fieldNumber, (uint) value);
+ case FieldType.Bool:
+ return ComputeBoolSize(fieldNumber, (bool) value);
+ case FieldType.String:
+ return ComputeStringSize(fieldNumber, (string) value);
+ case FieldType.Group:
+ return ComputeGroupSize(fieldNumber, (IMessageLite) value);
+ case FieldType.Message:
+ return ComputeMessageSize(fieldNumber, (IMessageLite) value);
+ case FieldType.Bytes:
+ return ComputeBytesSize(fieldNumber, (ByteString) value);
+ case FieldType.UInt32:
+ return ComputeUInt32Size(fieldNumber, (uint) value);
+ case FieldType.SFixed32:
+ return ComputeSFixed32Size(fieldNumber, (int) value);
+ case FieldType.SFixed64:
+ return ComputeSFixed64Size(fieldNumber, (long) value);
+ case FieldType.SInt32:
+ return ComputeSInt32Size(fieldNumber, (int) value);
+ case FieldType.SInt64:
+ return ComputeSInt64Size(fieldNumber, (long) value);
+ case FieldType.Enum:
+ if (value is Enum)
+ {
+ return ComputeEnumSize(fieldNumber, Convert.ToInt32(value));
+ }
+ else
+ {
+ return ComputeEnumSize(fieldNumber, ((IEnumLite) value).Number);
+ }
+ default:
+ throw new ArgumentOutOfRangeException("Invalid field type " + fieldType);
+ }
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a
+ /// field of arbitrary type, excluding the tag, to the stream.
+ /// </summary>
+ public static int ComputeFieldSizeNoTag(FieldType fieldType, Object value)
+ {
+ switch (fieldType)
+ {
+ case FieldType.Double:
+ return ComputeDoubleSizeNoTag((double) value);
+ case FieldType.Float:
+ return ComputeFloatSizeNoTag((float) value);
+ case FieldType.Int64:
+ return ComputeInt64SizeNoTag((long) value);
+ case FieldType.UInt64:
+ return ComputeUInt64SizeNoTag((ulong) value);
+ case FieldType.Int32:
+ return ComputeInt32SizeNoTag((int) value);
+ case FieldType.Fixed64:
+ return ComputeFixed64SizeNoTag((ulong) value);
+ case FieldType.Fixed32:
+ return ComputeFixed32SizeNoTag((uint) value);
+ case FieldType.Bool:
+ return ComputeBoolSizeNoTag((bool) value);
+ case FieldType.String:
+ return ComputeStringSizeNoTag((string) value);
+ case FieldType.Group:
+ return ComputeGroupSizeNoTag((IMessageLite) value);
+ case FieldType.Message:
+ return ComputeMessageSizeNoTag((IMessageLite) value);
+ case FieldType.Bytes:
+ return ComputeBytesSizeNoTag((ByteString) value);
+ case FieldType.UInt32:
+ return ComputeUInt32SizeNoTag((uint) value);
+ case FieldType.SFixed32:
+ return ComputeSFixed32SizeNoTag((int) value);
+ case FieldType.SFixed64:
+ return ComputeSFixed64SizeNoTag((long) value);
+ case FieldType.SInt32:
+ return ComputeSInt32SizeNoTag((int) value);
+ case FieldType.SInt64:
+ return ComputeSInt64SizeNoTag((long) value);
+ case FieldType.Enum:
+ if (value is Enum)
+ {
+ return ComputeEnumSizeNoTag(Convert.ToInt32(value));
+ }
+ else
+ {
+ return ComputeEnumSizeNoTag(((IEnumLite) value).Number);
+ }
+ default:
+ throw new ArgumentOutOfRangeException("Invalid field type " + fieldType);
+ }
+ }
+
+ /// <summary>
+ /// Compute the number of bytes that would be needed to encode a tag.
+ /// </summary>
+ public static int ComputeTagSize(int fieldNumber)
+ {
+ return ComputeRawVarint32Size(WireFormat.MakeTag(fieldNumber, 0));
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/CodedOutputStream.cs b/csharp/src/ProtocolBuffers/CodedOutputStream.cs
new file mode 100644
index 00000000..c37fcc18
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/CodedOutputStream.cs
@@ -0,0 +1,1322 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Encodes and writes protocol message fields.
+ /// </summary>
+ /// <remarks>
+ /// This class contains two kinds of methods: methods that write specific
+ /// protocol message constructs and field types (e.g. WriteTag and
+ /// WriteInt32) and methods that write low-level values (e.g.
+ /// WriteRawVarint32 and WriteRawBytes). If you are writing encoded protocol
+ /// messages, you should use the former methods, but if you are writing some
+ /// other format of your own design, use the latter. The names of the former
+ /// methods are taken from the protocol buffer type names, not .NET types.
+ /// (Hence WriteFloat instead of WriteSingle, and WriteBool instead of WriteBoolean.)
+ /// </remarks>
+ public sealed partial class CodedOutputStream : ICodedOutputStream
+ {
+ /// <summary>
+ /// The buffer size used by CreateInstance(Stream).
+ /// </summary>
+ public static readonly int DefaultBufferSize = 4096;
+
+ private readonly byte[] buffer;
+ private readonly int limit;
+ private int position;
+ private readonly Stream output;
+
+ #region Construction
+
+ private CodedOutputStream(byte[] buffer, int offset, int length)
+ {
+ this.output = null;
+ this.buffer = buffer;
+ this.position = offset;
+ this.limit = offset + length;
+ }
+
+ private CodedOutputStream(Stream output, byte[] buffer)
+ {
+ this.output = output;
+ this.buffer = buffer;
+ this.position = 0;
+ this.limit = buffer.Length;
+ }
+
+ /// <summary>
+ /// Creates a new CodedOutputStream which write to the given stream.
+ /// </summary>
+ public static CodedOutputStream CreateInstance(Stream output)
+ {
+ return CreateInstance(output, DefaultBufferSize);
+ }
+
+ /// <summary>
+ /// Creates a new CodedOutputStream which write to the given stream and uses
+ /// the specified buffer size.
+ /// </summary>
+ public static CodedOutputStream CreateInstance(Stream output, int bufferSize)
+ {
+ return new CodedOutputStream(output, new byte[bufferSize]);
+ }
+
+ /// <summary>
+ /// Creates a new CodedOutputStream that writes directly to the given
+ /// byte array. If more bytes are written than fit in the array,
+ /// OutOfSpaceException will be thrown.
+ /// </summary>
+ public static CodedOutputStream CreateInstance(byte[] flatArray)
+ {
+ return CreateInstance(flatArray, 0, flatArray.Length);
+ }
+
+ /// <summary>
+ /// Creates a new CodedOutputStream that writes directly to the given
+ /// byte array slice. If more bytes are written than fit in the array,
+ /// OutOfSpaceException will be thrown.
+ /// </summary>
+ public static CodedOutputStream CreateInstance(byte[] flatArray, int offset, int length)
+ {
+ return new CodedOutputStream(flatArray, offset, length);
+ }
+
+ #endregion
+
+ /// <summary>
+ /// Returns the current position in the stream, or the position in the output buffer
+ /// </summary>
+ public long Position
+ {
+ get
+ {
+ if (output != null)
+ {
+ return output.Position + position;
+ }
+ return position;
+ }
+ }
+
+ void ICodedOutputStream.WriteMessageStart() { }
+ void ICodedOutputStream.WriteMessageEnd() { Flush(); }
+
+ #region Writing of unknown fields
+
+ [Obsolete]
+ public void WriteUnknownGroup(int fieldNumber, IMessageLite value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.StartGroup);
+ value.WriteTo(this);
+ WriteTag(fieldNumber, WireFormat.WireType.EndGroup);
+ }
+
+ public void WriteUnknownBytes(int fieldNumber, ByteString value)
+ {
+ WriteBytes(fieldNumber, null /*not used*/, value);
+ }
+
+ public void WriteUnknownField(int fieldNumber, WireFormat.WireType wireType, ulong value)
+ {
+ if (wireType == WireFormat.WireType.Varint)
+ {
+ WriteUInt64(fieldNumber, null /*not used*/, value);
+ }
+ else if (wireType == WireFormat.WireType.Fixed32)
+ {
+ WriteFixed32(fieldNumber, null /*not used*/, (uint) value);
+ }
+ else if (wireType == WireFormat.WireType.Fixed64)
+ {
+ WriteFixed64(fieldNumber, null /*not used*/, value);
+ }
+ else
+ {
+ throw InvalidProtocolBufferException.InvalidWireType();
+ }
+ }
+
+ #endregion
+
+ #region Writing of tags and fields
+
+ public void WriteField(FieldType fieldType, int fieldNumber, string fieldName, object value)
+ {
+ switch (fieldType)
+ {
+ case FieldType.String:
+ WriteString(fieldNumber, fieldName, (string) value);
+ break;
+ case FieldType.Message:
+ WriteMessage(fieldNumber, fieldName, (IMessageLite) value);
+ break;
+ case FieldType.Group:
+ WriteGroup(fieldNumber, fieldName, (IMessageLite) value);
+ break;
+ case FieldType.Bytes:
+ WriteBytes(fieldNumber, fieldName, (ByteString) value);
+ break;
+ case FieldType.Bool:
+ WriteBool(fieldNumber, fieldName, (bool) value);
+ break;
+ case FieldType.Enum:
+ if (value is Enum)
+ {
+ WriteEnum(fieldNumber, fieldName, (int) value, null /*not used*/);
+ }
+ else
+ {
+ WriteEnum(fieldNumber, fieldName, ((IEnumLite) value).Number, null /*not used*/);
+ }
+ break;
+ case FieldType.Int32:
+ WriteInt32(fieldNumber, fieldName, (int) value);
+ break;
+ case FieldType.Int64:
+ WriteInt64(fieldNumber, fieldName, (long) value);
+ break;
+ case FieldType.UInt32:
+ WriteUInt32(fieldNumber, fieldName, (uint) value);
+ break;
+ case FieldType.UInt64:
+ WriteUInt64(fieldNumber, fieldName, (ulong) value);
+ break;
+ case FieldType.SInt32:
+ WriteSInt32(fieldNumber, fieldName, (int) value);
+ break;
+ case FieldType.SInt64:
+ WriteSInt64(fieldNumber, fieldName, (long) value);
+ break;
+ case FieldType.Fixed32:
+ WriteFixed32(fieldNumber, fieldName, (uint) value);
+ break;
+ case FieldType.Fixed64:
+ WriteFixed64(fieldNumber, fieldName, (ulong) value);
+ break;
+ case FieldType.SFixed32:
+ WriteSFixed32(fieldNumber, fieldName, (int) value);
+ break;
+ case FieldType.SFixed64:
+ WriteSFixed64(fieldNumber, fieldName, (long) value);
+ break;
+ case FieldType.Double:
+ WriteDouble(fieldNumber, fieldName, (double) value);
+ break;
+ case FieldType.Float:
+ WriteFloat(fieldNumber, fieldName, (float) value);
+ break;
+ }
+ }
+
+ /// <summary>
+ /// Writes a double field value, including tag, to the stream.
+ /// </summary>
+ public void WriteDouble(int fieldNumber, string fieldName, double value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Fixed64);
+ WriteDoubleNoTag(value);
+ }
+
+ /// <summary>
+ /// Writes a float field value, including tag, to the stream.
+ /// </summary>
+ public void WriteFloat(int fieldNumber, string fieldName, float value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Fixed32);
+ WriteFloatNoTag(value);
+ }
+
+ /// <summary>
+ /// Writes a uint64 field value, including tag, to the stream.
+ /// </summary>
+ public void WriteUInt64(int fieldNumber, string fieldName, ulong value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Varint);
+ WriteRawVarint64(value);
+ }
+
+ /// <summary>
+ /// Writes an int64 field value, including tag, to the stream.
+ /// </summary>
+ public void WriteInt64(int fieldNumber, string fieldName, long value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Varint);
+ WriteRawVarint64((ulong) value);
+ }
+
+ /// <summary>
+ /// Writes an int32 field value, including tag, to the stream.
+ /// </summary>
+ public void WriteInt32(int fieldNumber, string fieldName, int value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Varint);
+ if (value >= 0)
+ {
+ WriteRawVarint32((uint) value);
+ }
+ else
+ {
+ // Must sign-extend.
+ WriteRawVarint64((ulong) value);
+ }
+ }
+
+ /// <summary>
+ /// Writes a fixed64 field value, including tag, to the stream.
+ /// </summary>
+ public void WriteFixed64(int fieldNumber, string fieldName, ulong value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Fixed64);
+ WriteRawLittleEndian64(value);
+ }
+
+ /// <summary>
+ /// Writes a fixed32 field value, including tag, to the stream.
+ /// </summary>
+ public void WriteFixed32(int fieldNumber, string fieldName, uint value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Fixed32);
+ WriteRawLittleEndian32(value);
+ }
+
+ /// <summary>
+ /// Writes a bool field value, including tag, to the stream.
+ /// </summary>
+ public void WriteBool(int fieldNumber, string fieldName, bool value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Varint);
+ WriteRawByte(value ? (byte) 1 : (byte) 0);
+ }
+
+ /// <summary>
+ /// Writes a string field value, including tag, to the stream.
+ /// </summary>
+ public void WriteString(int fieldNumber, string fieldName, string value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ // Optimise the case where we have enough space to write
+ // the string directly to the buffer, which should be common.
+ int length = Encoding.UTF8.GetByteCount(value);
+ WriteRawVarint32((uint) length);
+ if (limit - position >= length)
+ {
+ Encoding.UTF8.GetBytes(value, 0, value.Length, buffer, position);
+ position += length;
+ }
+ else
+ {
+ byte[] bytes = Encoding.UTF8.GetBytes(value);
+ WriteRawBytes(bytes);
+ }
+ }
+
+ /// <summary>
+ /// Writes a group field value, including tag, to the stream.
+ /// </summary>
+ public void WriteGroup(int fieldNumber, string fieldName, IMessageLite value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.StartGroup);
+ value.WriteTo(this);
+ WriteTag(fieldNumber, WireFormat.WireType.EndGroup);
+ }
+
+ public void WriteMessage(int fieldNumber, string fieldName, IMessageLite value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) value.SerializedSize);
+ value.WriteTo(this);
+ }
+
+ public void WriteBytes(int fieldNumber, string fieldName, ByteString value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) value.Length);
+ value.WriteRawBytesTo(this);
+ }
+
+ public void WriteUInt32(int fieldNumber, string fieldName, uint value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Varint);
+ WriteRawVarint32(value);
+ }
+
+ public void WriteEnum(int fieldNumber, string fieldName, int value, object rawValue)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Varint);
+ WriteInt32NoTag(value);
+ }
+
+ public void WriteSFixed32(int fieldNumber, string fieldName, int value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Fixed32);
+ WriteRawLittleEndian32((uint) value);
+ }
+
+ public void WriteSFixed64(int fieldNumber, string fieldName, long value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Fixed64);
+ WriteRawLittleEndian64((ulong) value);
+ }
+
+ public void WriteSInt32(int fieldNumber, string fieldName, int value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Varint);
+ WriteRawVarint32(EncodeZigZag32(value));
+ }
+
+ public void WriteSInt64(int fieldNumber, string fieldName, long value)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.Varint);
+ WriteRawVarint64(EncodeZigZag64(value));
+ }
+
+ public void WriteMessageSetExtension(int fieldNumber, string fieldName, IMessageLite value)
+ {
+ WriteTag(WireFormat.MessageSetField.Item, WireFormat.WireType.StartGroup);
+ WriteUInt32(WireFormat.MessageSetField.TypeID, "type_id", (uint) fieldNumber);
+ WriteMessage(WireFormat.MessageSetField.Message, "message", value);
+ WriteTag(WireFormat.MessageSetField.Item, WireFormat.WireType.EndGroup);
+ }
+
+ public void WriteMessageSetExtension(int fieldNumber, string fieldName, ByteString value)
+ {
+ WriteTag(WireFormat.MessageSetField.Item, WireFormat.WireType.StartGroup);
+ WriteUInt32(WireFormat.MessageSetField.TypeID, "type_id", (uint) fieldNumber);
+ WriteBytes(WireFormat.MessageSetField.Message, "message", value);
+ WriteTag(WireFormat.MessageSetField.Item, WireFormat.WireType.EndGroup);
+ }
+
+ #endregion
+
+ #region Writing of values without tags
+
+ public void WriteFieldNoTag(FieldType fieldType, object value)
+ {
+ switch (fieldType)
+ {
+ case FieldType.String:
+ WriteStringNoTag((string) value);
+ break;
+ case FieldType.Message:
+ WriteMessageNoTag((IMessageLite) value);
+ break;
+ case FieldType.Group:
+ WriteGroupNoTag((IMessageLite) value);
+ break;
+ case FieldType.Bytes:
+ WriteBytesNoTag((ByteString) value);
+ break;
+ case FieldType.Bool:
+ WriteBoolNoTag((bool) value);
+ break;
+ case FieldType.Enum:
+ if (value is Enum)
+ {
+ WriteEnumNoTag((int) value);
+ }
+ else
+ {
+ WriteEnumNoTag(((IEnumLite) value).Number);
+ }
+ break;
+ case FieldType.Int32:
+ WriteInt32NoTag((int) value);
+ break;
+ case FieldType.Int64:
+ WriteInt64NoTag((long) value);
+ break;
+ case FieldType.UInt32:
+ WriteUInt32NoTag((uint) value);
+ break;
+ case FieldType.UInt64:
+ WriteUInt64NoTag((ulong) value);
+ break;
+ case FieldType.SInt32:
+ WriteSInt32NoTag((int) value);
+ break;
+ case FieldType.SInt64:
+ WriteSInt64NoTag((long) value);
+ break;
+ case FieldType.Fixed32:
+ WriteFixed32NoTag((uint) value);
+ break;
+ case FieldType.Fixed64:
+ WriteFixed64NoTag((ulong) value);
+ break;
+ case FieldType.SFixed32:
+ WriteSFixed32NoTag((int) value);
+ break;
+ case FieldType.SFixed64:
+ WriteSFixed64NoTag((long) value);
+ break;
+ case FieldType.Double:
+ WriteDoubleNoTag((double) value);
+ break;
+ case FieldType.Float:
+ WriteFloatNoTag((float) value);
+ break;
+ }
+ }
+
+ /// <summary>
+ /// Writes a double field value, including tag, to the stream.
+ /// </summary>
+ public void WriteDoubleNoTag(double value)
+ {
+ WriteRawLittleEndian64((ulong)FrameworkPortability.DoubleToInt64(value));
+ }
+
+ /// <summary>
+ /// Writes a float field value, without a tag, to the stream.
+ /// </summary>
+ public void WriteFloatNoTag(float value)
+ {
+ byte[] rawBytes = BitConverter.GetBytes(value);
+ if (!BitConverter.IsLittleEndian)
+ {
+ ByteArray.Reverse(rawBytes);
+ }
+
+ if (limit - position >= 4)
+ {
+ buffer[position++] = rawBytes[0];
+ buffer[position++] = rawBytes[1];
+ buffer[position++] = rawBytes[2];
+ buffer[position++] = rawBytes[3];
+ }
+ else
+ {
+ WriteRawBytes(rawBytes, 0, 4);
+ }
+ }
+
+ /// <summary>
+ /// Writes a uint64 field value, without a tag, to the stream.
+ /// </summary>
+ public void WriteUInt64NoTag(ulong value)
+ {
+ WriteRawVarint64(value);
+ }
+
+ /// <summary>
+ /// Writes an int64 field value, without a tag, to the stream.
+ /// </summary>
+ public void WriteInt64NoTag(long value)
+ {
+ WriteRawVarint64((ulong) value);
+ }
+
+ /// <summary>
+ /// Writes an int32 field value, without a tag, to the stream.
+ /// </summary>
+ public void WriteInt32NoTag(int value)
+ {
+ if (value >= 0)
+ {
+ WriteRawVarint32((uint) value);
+ }
+ else
+ {
+ // Must sign-extend.
+ WriteRawVarint64((ulong) value);
+ }
+ }
+
+ /// <summary>
+ /// Writes a fixed64 field value, without a tag, to the stream.
+ /// </summary>
+ public void WriteFixed64NoTag(ulong value)
+ {
+ WriteRawLittleEndian64(value);
+ }
+
+ /// <summary>
+ /// Writes a fixed32 field value, without a tag, to the stream.
+ /// </summary>
+ public void WriteFixed32NoTag(uint value)
+ {
+ WriteRawLittleEndian32(value);
+ }
+
+ /// <summary>
+ /// Writes a bool field value, without a tag, to the stream.
+ /// </summary>
+ public void WriteBoolNoTag(bool value)
+ {
+ WriteRawByte(value ? (byte) 1 : (byte) 0);
+ }
+
+ /// <summary>
+ /// Writes a string field value, without a tag, to the stream.
+ /// </summary>
+ public void WriteStringNoTag(string value)
+ {
+ // Optimise the case where we have enough space to write
+ // the string directly to the buffer, which should be common.
+ int length = Encoding.UTF8.GetByteCount(value);
+ WriteRawVarint32((uint) length);
+ if (limit - position >= length)
+ {
+ Encoding.UTF8.GetBytes(value, 0, value.Length, buffer, position);
+ position += length;
+ }
+ else
+ {
+ byte[] bytes = Encoding.UTF8.GetBytes(value);
+ WriteRawBytes(bytes);
+ }
+ }
+
+ /// <summary>
+ /// Writes a group field value, without a tag, to the stream.
+ /// </summary>
+ public void WriteGroupNoTag(IMessageLite value)
+ {
+ value.WriteTo(this);
+ }
+
+ public void WriteMessageNoTag(IMessageLite value)
+ {
+ WriteRawVarint32((uint) value.SerializedSize);
+ value.WriteTo(this);
+ }
+
+ public void WriteBytesNoTag(ByteString value)
+ {
+ WriteRawVarint32((uint) value.Length);
+ value.WriteRawBytesTo(this);
+ }
+
+ public void WriteUInt32NoTag(uint value)
+ {
+ WriteRawVarint32(value);
+ }
+
+ public void WriteEnumNoTag(int value)
+ {
+ WriteInt32NoTag(value);
+ }
+
+ public void WriteSFixed32NoTag(int value)
+ {
+ WriteRawLittleEndian32((uint) value);
+ }
+
+ public void WriteSFixed64NoTag(long value)
+ {
+ WriteRawLittleEndian64((ulong) value);
+ }
+
+ public void WriteSInt32NoTag(int value)
+ {
+ WriteRawVarint32(EncodeZigZag32(value));
+ }
+
+ public void WriteSInt64NoTag(long value)
+ {
+ WriteRawVarint64(EncodeZigZag64(value));
+ }
+
+ #endregion
+
+ #region Write array members
+
+ public void WriteArray(FieldType fieldType, int fieldNumber, string fieldName, IEnumerable list)
+ {
+ foreach (object element in list)
+ {
+ WriteField(fieldType, fieldNumber, fieldName, element);
+ }
+ }
+
+ public void WriteGroupArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
+ where T : IMessageLite
+ {
+ foreach (IMessageLite value in list)
+ {
+ WriteGroup(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteMessageArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
+ where T : IMessageLite
+ {
+ foreach (IMessageLite value in list)
+ {
+ WriteMessage(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteStringArray(int fieldNumber, string fieldName, IEnumerable<string> list)
+ {
+ foreach (var value in list)
+ {
+ WriteString(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteBytesArray(int fieldNumber, string fieldName, IEnumerable<ByteString> list)
+ {
+ foreach (var value in list)
+ {
+ WriteBytes(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteBoolArray(int fieldNumber, string fieldName, IEnumerable<bool> list)
+ {
+ foreach (var value in list)
+ {
+ WriteBool(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteInt32Array(int fieldNumber, string fieldName, IEnumerable<int> list)
+ {
+ foreach (var value in list)
+ {
+ WriteInt32(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteSInt32Array(int fieldNumber, string fieldName, IEnumerable<int> list)
+ {
+ foreach (var value in list)
+ {
+ WriteSInt32(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteUInt32Array(int fieldNumber, string fieldName, IEnumerable<uint> list)
+ {
+ foreach (var value in list)
+ {
+ WriteUInt32(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteFixed32Array(int fieldNumber, string fieldName, IEnumerable<uint> list)
+ {
+ foreach (var value in list)
+ {
+ WriteFixed32(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteSFixed32Array(int fieldNumber, string fieldName, IEnumerable<int> list)
+ {
+ foreach (var value in list)
+ {
+ WriteSFixed32(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteInt64Array(int fieldNumber, string fieldName, IEnumerable<long> list)
+ {
+ foreach (var value in list)
+ {
+ WriteInt64(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteSInt64Array(int fieldNumber, string fieldName, IEnumerable<long> list)
+ {
+ foreach (var value in list)
+ {
+ WriteSInt64(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteUInt64Array(int fieldNumber, string fieldName, IEnumerable<ulong> list)
+ {
+ foreach (var value in list)
+ {
+ WriteUInt64(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteFixed64Array(int fieldNumber, string fieldName, IEnumerable<ulong> list)
+ {
+ foreach (var value in list)
+ {
+ WriteFixed64(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteSFixed64Array(int fieldNumber, string fieldName, IEnumerable<long> list)
+ {
+ foreach (var value in list)
+ {
+ WriteSFixed64(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteDoubleArray(int fieldNumber, string fieldName, IEnumerable<double> list)
+ {
+ foreach (var value in list)
+ {
+ WriteDouble(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteFloatArray(int fieldNumber, string fieldName, IEnumerable<float> list)
+ {
+ foreach (var value in list)
+ {
+ WriteFloat(fieldNumber, fieldName, value);
+ }
+ }
+
+ public void WriteEnumArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
+ where T : struct, IComparable, IFormattable
+ {
+ if (list is ICastArray)
+ {
+ foreach (int value in ((ICastArray) list).CastArray<int>())
+ {
+ WriteEnum(fieldNumber, fieldName, value, null /*unused*/);
+ }
+ }
+ else
+ {
+ foreach (object value in list)
+ {
+ WriteEnum(fieldNumber, fieldName, (int) value, null /*unused*/);
+ }
+ }
+ }
+
+ #endregion
+
+ #region Write packed array members
+
+ public void WritePackedArray(FieldType fieldType, int fieldNumber, string fieldName, IEnumerable list)
+ {
+ int calculatedSize = 0;
+ foreach (object element in list)
+ {
+ calculatedSize += ComputeFieldSizeNoTag(fieldType, element);
+ }
+
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+
+ foreach (object element in list)
+ {
+ WriteFieldNoTag(fieldType, element);
+ }
+ }
+
+ public void WritePackedGroupArray<T>(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<T> list)
+ where T : IMessageLite
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (IMessageLite value in list)
+ {
+ WriteGroupNoTag(value);
+ }
+ }
+
+ public void WritePackedMessageArray<T>(int fieldNumber, string fieldName, int calculatedSize,
+ IEnumerable<T> list)
+ where T : IMessageLite
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (IMessageLite value in list)
+ {
+ WriteMessageNoTag(value);
+ }
+ }
+
+ public void WritePackedStringArray(int fieldNumber, string fieldName, int calculatedSize,
+ IEnumerable<string> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteStringNoTag(value);
+ }
+ }
+
+ public void WritePackedBytesArray(int fieldNumber, string fieldName, int calculatedSize,
+ IEnumerable<ByteString> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteBytesNoTag(value);
+ }
+ }
+
+ public void WritePackedBoolArray(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<bool> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteBoolNoTag(value);
+ }
+ }
+
+ public void WritePackedInt32Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<int> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteInt32NoTag(value);
+ }
+ }
+
+ public void WritePackedSInt32Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<int> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteSInt32NoTag(value);
+ }
+ }
+
+ public void WritePackedUInt32Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<uint> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteUInt32NoTag(value);
+ }
+ }
+
+ public void WritePackedFixed32Array(int fieldNumber, string fieldName, int calculatedSize,
+ IEnumerable<uint> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteFixed32NoTag(value);
+ }
+ }
+
+ public void WritePackedSFixed32Array(int fieldNumber, string fieldName, int calculatedSize,
+ IEnumerable<int> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteSFixed32NoTag(value);
+ }
+ }
+
+ public void WritePackedInt64Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<long> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteInt64NoTag(value);
+ }
+ }
+
+ public void WritePackedSInt64Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<long> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteSInt64NoTag(value);
+ }
+ }
+
+ public void WritePackedUInt64Array(int fieldNumber, string fieldName, int calculatedSize,
+ IEnumerable<ulong> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteUInt64NoTag(value);
+ }
+ }
+
+ public void WritePackedFixed64Array(int fieldNumber, string fieldName, int calculatedSize,
+ IEnumerable<ulong> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteFixed64NoTag(value);
+ }
+ }
+
+ public void WritePackedSFixed64Array(int fieldNumber, string fieldName, int calculatedSize,
+ IEnumerable<long> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteSFixed64NoTag(value);
+ }
+ }
+
+ public void WritePackedDoubleArray(int fieldNumber, string fieldName, int calculatedSize,
+ IEnumerable<double> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteDoubleNoTag(value);
+ }
+ }
+
+ public void WritePackedFloatArray(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<float> list)
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ foreach (var value in list)
+ {
+ WriteFloatNoTag(value);
+ }
+ }
+
+ public void WritePackedEnumArray<T>(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<T> list)
+ where T : struct, IComparable, IFormattable
+ {
+ WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
+ WriteRawVarint32((uint) calculatedSize);
+ if (list is ICastArray)
+ {
+ foreach (int value in ((ICastArray) list).CastArray<int>())
+ {
+ WriteEnumNoTag(value);
+ }
+ }
+ else
+ {
+ foreach (object value in list)
+ {
+ WriteEnumNoTag((int) value);
+ }
+ }
+ }
+
+ #endregion
+
+ #region Underlying writing primitives
+
+ /// <summary>
+ /// Encodes and writes a tag.
+ /// </summary>
+ public void WriteTag(int fieldNumber, WireFormat.WireType type)
+ {
+ WriteRawVarint32(WireFormat.MakeTag(fieldNumber, type));
+ }
+
+ /// <summary>
+ /// Writes a 32 bit value as a varint. The fast route is taken when
+ /// there's enough buffer space left to whizz through without checking
+ /// for each byte; otherwise, we resort to calling WriteRawByte each time.
+ /// </summary>
+ public void WriteRawVarint32(uint value)
+ {
+ while (value > 127 && position < limit)
+ {
+ buffer[position++] = (byte) ((value & 0x7F) | 0x80);
+ value >>= 7;
+ }
+ while (value > 127)
+ {
+ WriteRawByte((byte) ((value & 0x7F) | 0x80));
+ value >>= 7;
+ }
+ if (position < limit)
+ {
+ buffer[position++] = (byte) value;
+ }
+ else
+ {
+ WriteRawByte((byte) value);
+ }
+ }
+
+ public void WriteRawVarint64(ulong value)
+ {
+ while (value > 127 && position < limit)
+ {
+ buffer[position++] = (byte) ((value & 0x7F) | 0x80);
+ value >>= 7;
+ }
+ while (value > 127)
+ {
+ WriteRawByte((byte) ((value & 0x7F) | 0x80));
+ value >>= 7;
+ }
+ if (position < limit)
+ {
+ buffer[position++] = (byte) value;
+ }
+ else
+ {
+ WriteRawByte((byte) value);
+ }
+ }
+
+ public void WriteRawLittleEndian32(uint value)
+ {
+ if (position + 4 > limit)
+ {
+ WriteRawByte((byte) value);
+ WriteRawByte((byte) (value >> 8));
+ WriteRawByte((byte) (value >> 16));
+ WriteRawByte((byte) (value >> 24));
+ }
+ else
+ {
+ buffer[position++] = ((byte) value);
+ buffer[position++] = ((byte) (value >> 8));
+ buffer[position++] = ((byte) (value >> 16));
+ buffer[position++] = ((byte) (value >> 24));
+ }
+ }
+
+ public void WriteRawLittleEndian64(ulong value)
+ {
+ if (position + 8 > limit)
+ {
+ WriteRawByte((byte) value);
+ WriteRawByte((byte) (value >> 8));
+ WriteRawByte((byte) (value >> 16));
+ WriteRawByte((byte) (value >> 24));
+ WriteRawByte((byte) (value >> 32));
+ WriteRawByte((byte) (value >> 40));
+ WriteRawByte((byte) (value >> 48));
+ WriteRawByte((byte) (value >> 56));
+ }
+ else
+ {
+ buffer[position++] = ((byte) value);
+ buffer[position++] = ((byte) (value >> 8));
+ buffer[position++] = ((byte) (value >> 16));
+ buffer[position++] = ((byte) (value >> 24));
+ buffer[position++] = ((byte) (value >> 32));
+ buffer[position++] = ((byte) (value >> 40));
+ buffer[position++] = ((byte) (value >> 48));
+ buffer[position++] = ((byte) (value >> 56));
+ }
+ }
+
+ public void WriteRawByte(byte value)
+ {
+ if (position == limit)
+ {
+ RefreshBuffer();
+ }
+
+ buffer[position++] = value;
+ }
+
+ public void WriteRawByte(uint value)
+ {
+ WriteRawByte((byte) value);
+ }
+
+ /// <summary>
+ /// Writes out an array of bytes.
+ /// </summary>
+ public void WriteRawBytes(byte[] value)
+ {
+ WriteRawBytes(value, 0, value.Length);
+ }
+
+ /// <summary>
+ /// Writes out part of an array of bytes.
+ /// </summary>
+ public void WriteRawBytes(byte[] value, int offset, int length)
+ {
+ if (limit - position >= length)
+ {
+ ByteArray.Copy(value, offset, buffer, position, length);
+ // We have room in the current buffer.
+ position += length;
+ }
+ else
+ {
+ // Write extends past current buffer. Fill the rest of this buffer and
+ // flush.
+ int bytesWritten = limit - position;
+ ByteArray.Copy(value, offset, buffer, position, bytesWritten);
+ offset += bytesWritten;
+ length -= bytesWritten;
+ position = limit;
+ RefreshBuffer();
+
+ // Now deal with the rest.
+ // Since we have an output stream, this is our buffer
+ // and buffer offset == 0
+ if (length <= limit)
+ {
+ // Fits in new buffer.
+ ByteArray.Copy(value, offset, buffer, 0, length);
+ position = length;
+ }
+ else
+ {
+ // Write is very big. Let's do it all at once.
+ output.Write(value, offset, length);
+ }
+ }
+ }
+
+ #endregion
+
+ /// <summary>
+ /// Encode a 32-bit value with ZigZag encoding.
+ /// </summary>
+ /// <remarks>
+ /// ZigZag encodes signed integers into values that can be efficiently
+ /// encoded with varint. (Otherwise, negative values must be
+ /// sign-extended to 64 bits to be varint encoded, thus always taking
+ /// 10 bytes on the wire.)
+ /// </remarks>
+ public static uint EncodeZigZag32(int n)
+ {
+ // Note: the right-shift must be arithmetic
+ return (uint) ((n << 1) ^ (n >> 31));
+ }
+
+ /// <summary>
+ /// Encode a 64-bit value with ZigZag encoding.
+ /// </summary>
+ /// <remarks>
+ /// ZigZag encodes signed integers into values that can be efficiently
+ /// encoded with varint. (Otherwise, negative values must be
+ /// sign-extended to 64 bits to be varint encoded, thus always taking
+ /// 10 bytes on the wire.)
+ /// </remarks>
+ public static ulong EncodeZigZag64(long n)
+ {
+ return (ulong) ((n << 1) ^ (n >> 63));
+ }
+
+ private void RefreshBuffer()
+ {
+ if (output == null)
+ {
+ // We're writing to a single buffer.
+ throw new OutOfSpaceException();
+ }
+
+ // Since we have an output stream, this is our buffer
+ // and buffer offset == 0
+ output.Write(buffer, 0, position);
+ position = 0;
+ }
+
+ /// <summary>
+ /// Indicates that a CodedOutputStream wrapping a flat byte array
+ /// ran out of space.
+ /// </summary>
+ public sealed class OutOfSpaceException : IOException
+ {
+ internal OutOfSpaceException()
+ : base("CodedOutputStream was writing to a flat byte array and ran out of space.")
+ {
+ }
+ }
+
+ public void Flush()
+ {
+ if (output != null)
+ {
+ RefreshBuffer();
+ }
+ }
+
+ /// <summary>
+ /// Verifies that SpaceLeft returns zero. It's common to create a byte array
+ /// that is exactly big enough to hold a message, then write to it with
+ /// a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that
+ /// the message was actually as big as expected, which can help bugs.
+ /// </summary>
+ public void CheckNoSpaceLeft()
+ {
+ if (SpaceLeft != 0)
+ {
+ throw new InvalidOperationException("Did not write as much data as expected.");
+ }
+ }
+
+ /// <summary>
+ /// If writing to a flat array, returns the space left in the array. Otherwise,
+ /// throws an InvalidOperationException.
+ /// </summary>
+ public int SpaceLeft
+ {
+ get
+ {
+ if (output == null)
+ {
+ return limit - position;
+ }
+ else
+ {
+ throw new InvalidOperationException(
+ "SpaceLeft can only be called on CodedOutputStreams that are " +
+ "writing to a flat array.");
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Collections/Dictionaries.cs b/csharp/src/ProtocolBuffers/Collections/Dictionaries.cs
new file mode 100644
index 00000000..1f3791b1
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Collections/Dictionaries.cs
@@ -0,0 +1,122 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace Google.ProtocolBuffers.Collections
+{
+ /// <summary>
+ /// Utility class for dictionaries.
+ /// </summary>
+ public static class Dictionaries
+ {
+ /// <summary>
+ /// Compares two dictionaries for equality. Each value is compared with equality using Equals
+ /// for non-IEnumerable implementations, and using EnumerableEquals otherwise.
+ /// TODO(jonskeet): This is clearly pretty slow, and involves lots of boxing/unboxing...
+ /// </summary>
+ public static bool Equals<TKey, TValue>(IDictionary<TKey, TValue> left, IDictionary<TKey, TValue> right)
+ {
+ if (left.Count != right.Count)
+ {
+ return false;
+ }
+ foreach (KeyValuePair<TKey, TValue> leftEntry in left)
+ {
+ TValue rightValue;
+ if (!right.TryGetValue(leftEntry.Key, out rightValue))
+ {
+ return false;
+ }
+
+ IEnumerable leftEnumerable = leftEntry.Value as IEnumerable;
+ IEnumerable rightEnumerable = rightValue as IEnumerable;
+ if (leftEnumerable == null || rightEnumerable == null)
+ {
+ if (!Equals(leftEntry.Value, rightValue))
+ {
+ return false;
+ }
+ }
+ else
+ {
+ if (!Enumerables.Equals(leftEnumerable, rightEnumerable))
+ {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ public static IDictionary<TKey, TValue> AsReadOnly<TKey, TValue>(IDictionary<TKey, TValue> dictionary)
+ {
+ return dictionary.IsReadOnly ? dictionary : new ReadOnlyDictionary<TKey, TValue>(dictionary);
+ }
+
+ /// <summary>
+ /// Creates a hashcode for a dictionary by XORing the hashcodes of all the fields
+ /// and values. (By XORing, we avoid ordering issues.)
+ /// TODO(jonskeet): Currently XORs other stuff too, and assumes non-null values.
+ /// </summary>
+ public static int GetHashCode<TKey, TValue>(IDictionary<TKey, TValue> dictionary)
+ {
+ int ret = 31;
+ foreach (KeyValuePair<TKey, TValue> entry in dictionary)
+ {
+ int hash = entry.Key.GetHashCode() ^ GetDeepHashCode(entry.Value);
+ ret ^= hash;
+ }
+ return ret;
+ }
+
+ /// <summary>
+ /// Determines the hash of a value by either taking it directly or hashing all the elements
+ /// for IEnumerable implementations.
+ /// </summary>
+ private static int GetDeepHashCode(object value)
+ {
+ IEnumerable iterable = value as IEnumerable;
+ if (iterable == null)
+ {
+ return value.GetHashCode();
+ }
+ int hash = 29;
+ foreach (object element in iterable)
+ {
+ hash = hash*37 + element.GetHashCode();
+ }
+ return hash;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Collections/Enumerables.cs b/csharp/src/ProtocolBuffers/Collections/Enumerables.cs
new file mode 100644
index 00000000..7ad9a832
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Collections/Enumerables.cs
@@ -0,0 +1,74 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections;
+
+namespace Google.ProtocolBuffers.Collections
+{
+ /// <summary>
+ /// Utility class for IEnumerable (and potentially the generic version in the future).
+ /// </summary>
+ public static class Enumerables
+ {
+ public static bool Equals(IEnumerable left, IEnumerable right)
+ {
+ IEnumerator leftEnumerator = left.GetEnumerator();
+ try
+ {
+ foreach (object rightObject in right)
+ {
+ if (!leftEnumerator.MoveNext())
+ {
+ return false;
+ }
+ if (!Equals(leftEnumerator.Current, rightObject))
+ {
+ return false;
+ }
+ }
+ if (leftEnumerator.MoveNext())
+ {
+ return false;
+ }
+ }
+ finally
+ {
+ IDisposable leftEnumeratorDisposable = leftEnumerator as IDisposable;
+ if (leftEnumeratorDisposable != null)
+ {
+ leftEnumeratorDisposable.Dispose();
+ }
+ }
+ return true;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Collections/IPopsicleList.cs b/csharp/src/ProtocolBuffers/Collections/IPopsicleList.cs
new file mode 100644
index 00000000..a1a75815
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Collections/IPopsicleList.cs
@@ -0,0 +1,58 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System.Collections.Generic;
+
+namespace Google.ProtocolBuffers.Collections
+{
+ /// <summary>
+ /// A list which has an Add method which accepts an IEnumerable[T].
+ /// This allows whole collections to be added easily using collection initializers.
+ /// It causes a potential overload confusion if T : IEnumerable[T], but in
+ /// practice that won't happen in protocol buffers.
+ /// </summary>
+ /// <remarks>This is only currently implemented by PopsicleList, and it's likely
+ /// to stay that way - hence the name. More genuinely descriptive names are
+ /// horribly ugly. (At least, the ones the author could think of...)</remarks>
+ /// <typeparam name="T">The element type of the list</typeparam>
+ public interface IPopsicleList<T> : IList<T>
+ {
+ void Add(IEnumerable<T> collection);
+ }
+
+ /// <summary>
+ /// Used to efficiently cast the elements of enumerations
+ /// </summary>
+ internal interface ICastArray
+ {
+ IEnumerable<TItemType> CastArray<TItemType>();
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Collections/Lists.cs b/csharp/src/ProtocolBuffers/Collections/Lists.cs
new file mode 100644
index 00000000..a24e1d9b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Collections/Lists.cs
@@ -0,0 +1,110 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+
+namespace Google.ProtocolBuffers.Collections
+{
+ /// <summary>
+ /// Utility non-generic class for calling into Lists{T} using type inference.
+ /// </summary>
+ public static class Lists
+ {
+ /// <summary>
+ /// Returns a read-only view of the specified list.
+ /// </summary>
+ public static IList<T> AsReadOnly<T>(IList<T> list)
+ {
+ return Lists<T>.AsReadOnly(list);
+ }
+
+ public static bool Equals<T>(IList<T> left, IList<T> right)
+ {
+ if (left == right)
+ {
+ return true;
+ }
+ if (left == null || right == null)
+ {
+ return false;
+ }
+ if (left.Count != right.Count)
+ {
+ return false;
+ }
+ IEqualityComparer<T> comparer = EqualityComparer<T>.Default;
+ for (int i = 0; i < left.Count; i++)
+ {
+ if (!comparer.Equals(left[i], right[i]))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public static int GetHashCode<T>(IList<T> list)
+ {
+ int hash = 31;
+ foreach (T element in list)
+ {
+ hash = hash*29 + element.GetHashCode();
+ }
+ return hash;
+ }
+ }
+
+ /// <summary>
+ /// Utility class for dealing with lists.
+ /// </summary>
+ public static class Lists<T>
+ {
+ private static readonly ReadOnlyCollection<T> empty = new ReadOnlyCollection<T>(new T[0]);
+
+ /// <summary>
+ /// Returns an immutable empty list.
+ /// </summary>
+ public static ReadOnlyCollection<T> Empty
+ {
+ get { return empty; }
+ }
+
+ /// <summary>
+ /// Returns either the original reference if it's already read-only,
+ /// or a new ReadOnlyCollection wrapping the original list.
+ /// </summary>
+ public static IList<T> AsReadOnly(IList<T> list)
+ {
+ return list.IsReadOnly ? list : new ReadOnlyCollection<T>(list);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Collections/PopsicleList.cs b/csharp/src/ProtocolBuffers/Collections/PopsicleList.cs
new file mode 100644
index 00000000..3de97f89
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Collections/PopsicleList.cs
@@ -0,0 +1,208 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace Google.ProtocolBuffers.Collections
+{
+ /// <summary>
+ /// Proxies calls to a <see cref="List{T}" />, but allows the list
+ /// to be made read-only (with the <see cref="MakeReadOnly" /> method),
+ /// after which any modifying methods throw <see cref="NotSupportedException" />.
+ /// </summary>
+ public sealed class PopsicleList<T> : IPopsicleList<T>, ICastArray
+ {
+ private static readonly bool CheckForNull = default(T) == null;
+ private static readonly T[] EmptySet = new T[0];
+
+ private List<T> items;
+ private bool readOnly;
+
+ /// <summary>
+ /// Makes this list read-only ("freezes the popsicle"). From this
+ /// point on, mutating methods (Clear, Add etc) will throw a
+ /// NotSupportedException. There is no way of "defrosting" the list afterwards.
+ /// </summary>
+ public void MakeReadOnly()
+ {
+ readOnly = true;
+ }
+
+ public int IndexOf(T item)
+ {
+ return items == null ? -1 : items.IndexOf(item);
+ }
+
+ public void Insert(int index, T item)
+ {
+ ValidateModification();
+ if (CheckForNull)
+ {
+ ThrowHelper.ThrowIfNull(item);
+ }
+ items.Insert(index, item);
+ }
+
+ public void RemoveAt(int index)
+ {
+ ValidateModification();
+ items.RemoveAt(index);
+ }
+
+ public T this[int index]
+ {
+ get
+ {
+ if (items == null)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ return items[index];
+ }
+ set
+ {
+ ValidateModification();
+ if (CheckForNull)
+ {
+ ThrowHelper.ThrowIfNull(value);
+ }
+ items[index] = value;
+ }
+ }
+
+ public void Add(T item)
+ {
+ ValidateModification();
+ if (CheckForNull)
+ {
+ ThrowHelper.ThrowIfNull(item);
+ }
+ items.Add(item);
+ }
+
+ public void Clear()
+ {
+ ValidateModification();
+ items.Clear();
+ }
+
+ public bool Contains(T item)
+ {
+ return items == null ? false : items.Contains(item);
+ }
+
+ public void CopyTo(T[] array, int arrayIndex)
+ {
+ if (items != null)
+ {
+ items.CopyTo(array, arrayIndex);
+ }
+ }
+
+ public int Count
+ {
+ get { return items == null ? 0 : items.Count; }
+ }
+
+ public bool IsReadOnly
+ {
+ get { return readOnly; }
+ }
+
+ public bool Remove(T item)
+ {
+ ValidateModification();
+ return items.Remove(item);
+ }
+
+ public IEnumerator<T> GetEnumerator()
+ {
+ IEnumerable<T> tenum = (IEnumerable<T>)items ?? EmptySet;
+ return tenum.GetEnumerator();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ public void Add(IEnumerable<T> collection)
+ {
+ ValidateModification();
+ ThrowHelper.ThrowIfNull(collection);
+
+ if (!CheckForNull || collection is PopsicleList<T>)
+ {
+ items.AddRange(collection);
+ }
+ else
+ {
+ // Assumption, it's ok to enumerate collections more than once.
+ if (collection is ICollection<T>)
+ {
+ ThrowHelper.ThrowIfAnyNull(collection);
+ items.AddRange(collection);
+ }
+ else
+ {
+ foreach (T item in collection)
+ {
+ ThrowHelper.ThrowIfNull(item);
+ items.Add(item);
+ }
+ }
+ }
+ }
+
+ private void ValidateModification()
+ {
+ if (readOnly)
+ {
+ throw new NotSupportedException("List is read-only");
+ }
+ if (items == null)
+ {
+ items = new List<T>();
+ }
+ }
+
+ IEnumerable<TItemType> ICastArray.CastArray<TItemType>()
+ {
+ if (items == null)
+ {
+ return PopsicleList<TItemType>.EmptySet;
+ }
+ return (TItemType[]) (object) items.ToArray();
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Collections/ReadOnlyDictionary.cs b/csharp/src/ProtocolBuffers/Collections/ReadOnlyDictionary.cs
new file mode 100644
index 00000000..b0bc55ff
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Collections/ReadOnlyDictionary.cs
@@ -0,0 +1,146 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace Google.ProtocolBuffers.Collections
+{
+ /// <summary>
+ /// Read-only wrapper around another dictionary.
+ /// </summary>
+ public sealed class ReadOnlyDictionary<TKey, TValue> : IDictionary<TKey, TValue>
+ {
+ private readonly IDictionary<TKey, TValue> wrapped;
+
+ public ReadOnlyDictionary(IDictionary<TKey, TValue> wrapped)
+ {
+ this.wrapped = wrapped;
+ }
+
+ public void Add(TKey key, TValue value)
+ {
+ throw new InvalidOperationException();
+ }
+
+ public bool ContainsKey(TKey key)
+ {
+ return wrapped.ContainsKey(key);
+ }
+
+ public ICollection<TKey> Keys
+ {
+ get { return wrapped.Keys; }
+ }
+
+ public bool Remove(TKey key)
+ {
+ throw new InvalidOperationException();
+ }
+
+ public bool TryGetValue(TKey key, out TValue value)
+ {
+ return wrapped.TryGetValue(key, out value);
+ }
+
+ public ICollection<TValue> Values
+ {
+ get { return wrapped.Values; }
+ }
+
+ public TValue this[TKey key]
+ {
+ get { return wrapped[key]; }
+ set { throw new InvalidOperationException(); }
+ }
+
+ public void Add(KeyValuePair<TKey, TValue> item)
+ {
+ throw new InvalidOperationException();
+ }
+
+ public void Clear()
+ {
+ throw new InvalidOperationException();
+ }
+
+ public bool Contains(KeyValuePair<TKey, TValue> item)
+ {
+ return wrapped.Contains(item);
+ }
+
+ public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
+ {
+ wrapped.CopyTo(array, arrayIndex);
+ }
+
+ public int Count
+ {
+ get { return wrapped.Count; }
+ }
+
+ public bool IsReadOnly
+ {
+ get { return true; }
+ }
+
+ public bool Remove(KeyValuePair<TKey, TValue> item)
+ {
+ throw new InvalidOperationException();
+ }
+
+ public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
+ {
+ return wrapped.GetEnumerator();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return ((IEnumerable) wrapped).GetEnumerator();
+ }
+
+ public override bool Equals(object obj)
+ {
+ return wrapped.Equals(obj);
+ }
+
+ public override int GetHashCode()
+ {
+ return wrapped.GetHashCode();
+ }
+
+ public override string ToString()
+ {
+ return wrapped.ToString();
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Delegates.cs b/csharp/src/ProtocolBuffers/Delegates.cs
new file mode 100644
index 00000000..3b62bc0c
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Delegates.cs
@@ -0,0 +1,54 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Delegate to return a stream when asked, used by MessageStreamIterator.
+ /// </summary>
+ public delegate Stream StreamProvider();
+
+ // These delegate declarations mirror the ones in .NET 3.5 for the sake of familiarity.
+ internal delegate TResult Func<TResult>();
+
+ internal delegate TResult Func<T, TResult>(T arg);
+
+ internal delegate TResult Func<T1, T2, TResult>(T1 arg1, T2 arg2);
+
+ internal delegate void Action<T1, T2>(T1 arg1, T2 arg2);
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs b/csharp/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
new file mode 100644
index 00000000..9361711b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
@@ -0,0 +1,11051 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/descriptor_proto_file.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.DescriptorProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class DescriptorProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_FileDescriptorSet__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorSet, global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorSet.Builder> internal__static_google_protobuf_FileDescriptorSet__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_FileDescriptorProto__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto.Builder> internal__static_google_protobuf_FileDescriptorProto__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_DescriptorProto__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Builder> internal__static_google_protobuf_DescriptorProto__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_DescriptorProto_ExtensionRange__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange.Builder> internal__static_google_protobuf_DescriptorProto_ExtensionRange__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_DescriptorProto_ReservedRange__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange.Builder> internal__static_google_protobuf_DescriptorProto_ReservedRange__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_FieldDescriptorProto__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Builder> internal__static_google_protobuf_FieldDescriptorProto__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_OneofDescriptorProto__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto.Builder> internal__static_google_protobuf_OneofDescriptorProto__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_EnumDescriptorProto__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.Builder> internal__static_google_protobuf_EnumDescriptorProto__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_EnumValueDescriptorProto__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto.Builder> internal__static_google_protobuf_EnumValueDescriptorProto__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_ServiceDescriptorProto__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto.Builder> internal__static_google_protobuf_ServiceDescriptorProto__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_MethodDescriptorProto__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto.Builder> internal__static_google_protobuf_MethodDescriptorProto__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_FileOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FileOptions, global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Builder> internal__static_google_protobuf_FileOptions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_MessageOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions, global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.Builder> internal__static_google_protobuf_MessageOptions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_FieldOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions, global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Builder> internal__static_google_protobuf_FieldOptions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_EnumOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions, global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.Builder> internal__static_google_protobuf_EnumOptions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_EnumValueOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions, global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.Builder> internal__static_google_protobuf_EnumValueOptions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_ServiceOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions, global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.Builder> internal__static_google_protobuf_ServiceOptions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_MethodOptions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions, global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.Builder> internal__static_google_protobuf_MethodOptions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_UninterpretedOption__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder> internal__static_google_protobuf_UninterpretedOption__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_UninterpretedOption_NamePart__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart.Builder> internal__static_google_protobuf_UninterpretedOption_NamePart__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_SourceCodeInfo__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo, global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Builder> internal__static_google_protobuf_SourceCodeInfo__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_SourceCodeInfo_Location__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location, global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location.Builder> internal__static_google_protobuf_SourceCodeInfo_Location__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static DescriptorProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Citnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvcl9wcm90b19maWxlLnByb3Rv",
+ "Eg9nb29nbGUucHJvdG9idWYiRwoRRmlsZURlc2NyaXB0b3JTZXQSMgoEZmls",
+ "ZRgBIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5GaWxlRGVzY3JpcHRvclByb3Rv",
+ "ItsDChNGaWxlRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkSDwoHcGFj",
+ "a2FnZRgCIAEoCRISCgpkZXBlbmRlbmN5GAMgAygJEhkKEXB1YmxpY19kZXBl",
+ "bmRlbmN5GAogAygFEhcKD3dlYWtfZGVwZW5kZW5jeRgLIAMoBRI2CgxtZXNz",
+ "YWdlX3R5cGUYBCADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclBy",
+ "b3RvEjcKCWVudW1fdHlwZRgFIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVt",
+ "RGVzY3JpcHRvclByb3RvEjgKB3NlcnZpY2UYBiADKAsyJy5nb29nbGUucHJv",
+ "dG9idWYuU2VydmljZURlc2NyaXB0b3JQcm90bxI4CglleHRlbnNpb24YByAD",
+ "KAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8SLQoH",
+ "b3B0aW9ucxgIIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxI5",
+ "ChBzb3VyY2VfY29kZV9pbmZvGAkgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNv",
+ "dXJjZUNvZGVJbmZvEg4KBnN5bnRheBgMIAEoCSLwBAoPRGVzY3JpcHRvclBy",
+ "b3RvEgwKBG5hbWUYASABKAkSNAoFZmllbGQYAiADKAsyJS5nb29nbGUucHJv",
+ "dG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8SOAoJZXh0ZW5zaW9uGAYgAygL",
+ "MiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvEjUKC25l",
+ "c3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQ",
+ "cm90bxI3CgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51",
+ "bURlc2NyaXB0b3JQcm90bxJICg9leHRlbnNpb25fcmFuZ2UYBSADKAsyLy5n",
+ "b29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLkV4dGVuc2lvblJhbmdl",
+ "EjkKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZE",
+ "ZXNjcmlwdG9yUHJvdG8SMAoHb3B0aW9ucxgHIAEoCzIfLmdvb2dsZS5wcm90",
+ "b2J1Zi5NZXNzYWdlT3B0aW9ucxJGCg5yZXNlcnZlZF9yYW5nZRgJIAMoCzIu",
+ "Lmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uUmVzZXJ2ZWRSYW5n",
+ "ZRIVCg1yZXNlcnZlZF9uYW1lGAogAygJGiwKDkV4dGVuc2lvblJhbmdlEg0K",
+ "BXN0YXJ0GAEgASgFEgsKA2VuZBgCIAEoBRorCg1SZXNlcnZlZFJhbmdlEg0K",
+ "BXN0YXJ0GAEgASgFEgsKA2VuZBgCIAEoBSKpBQoURmllbGREZXNjcmlwdG9y",
+ "UHJvdG8SDAoEbmFtZRgBIAEoCRIOCgZudW1iZXIYAyABKAUSOgoFbGFiZWwY",
+ "BCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8u",
+ "TGFiZWwSOAoEdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERl",
+ "c2NyaXB0b3JQcm90by5UeXBlEhEKCXR5cGVfbmFtZRgGIAEoCRIQCghleHRl",
+ "bmRlZRgCIAEoCRIVCg1kZWZhdWx0X3ZhbHVlGAcgASgJEhMKC29uZW9mX2lu",
+ "ZGV4GAkgASgFEi4KB29wdGlvbnMYCCABKAsyHS5nb29nbGUucHJvdG9idWYu",
+ "RmllbGRPcHRpb25zIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQ",
+ "RV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4K",
+ "ClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVE",
+ "MzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVf",
+ "R1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoL",
+ "VFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMy",
+ "EA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQ",
+ "RV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxB",
+ "QkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyIkChRPbmVvZkRl",
+ "c2NyaXB0b3JQcm90bxIMCgRuYW1lGAEgASgJIowBChNFbnVtRGVzY3JpcHRv",
+ "clByb3RvEgwKBG5hbWUYASABKAkSOAoFdmFsdWUYAiADKAsyKS5nb29nbGUu",
+ "cHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEi0KB29wdGlvbnMY",
+ "AyABKAsyHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnMibAoYRW51bVZh",
+ "bHVlRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkSDgoGbnVtYmVyGAIg",
+ "ASgFEjIKB29wdGlvbnMYAyABKAsyIS5nb29nbGUucHJvdG9idWYuRW51bVZh",
+ "bHVlT3B0aW9ucyKQAQoWU2VydmljZURlc2NyaXB0b3JQcm90bxIMCgRuYW1l",
+ "GAEgASgJEjYKBm1ldGhvZBgCIAMoCzImLmdvb2dsZS5wcm90b2J1Zi5NZXRo",
+ "b2REZXNjcmlwdG9yUHJvdG8SMAoHb3B0aW9ucxgDIAEoCzIfLmdvb2dsZS5w",
+ "cm90b2J1Zi5TZXJ2aWNlT3B0aW9ucyLBAQoVTWV0aG9kRGVzY3JpcHRvclBy",
+ "b3RvEgwKBG5hbWUYASABKAkSEgoKaW5wdXRfdHlwZRgCIAEoCRITCgtvdXRw",
+ "dXRfdHlwZRgDIAEoCRIvCgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3Rv",
+ "YnVmLk1ldGhvZE9wdGlvbnMSHwoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoF",
+ "ZmFsc2USHwoQc2VydmVyX3N0cmVhbWluZxgGIAEoCDoFZmFsc2UigQUKC0Zp",
+ "bGVPcHRpb25zEhQKDGphdmFfcGFja2FnZRgBIAEoCRIcChRqYXZhX291dGVy",
+ "X2NsYXNzbmFtZRgIIAEoCRIiChNqYXZhX211bHRpcGxlX2ZpbGVzGAogASgI",
+ "OgVmYWxzZRIsCh1qYXZhX2dlbmVyYXRlX2VxdWFsc19hbmRfaGFzaBgUIAEo",
+ "CDoFZmFsc2USJQoWamF2YV9zdHJpbmdfY2hlY2tfdXRmOBgbIAEoCDoFZmFs",
+ "c2USRgoMb3B0aW1pemVfZm9yGAkgASgOMikuZ29vZ2xlLnByb3RvYnVmLkZp",
+ "bGVPcHRpb25zLk9wdGltaXplTW9kZToFU1BFRUQSEgoKZ29fcGFja2FnZRgL",
+ "IAEoCRIiChNjY19nZW5lcmljX3NlcnZpY2VzGBAgASgIOgVmYWxzZRIkChVq",
+ "YXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlEiIKE3B5X2dlbmVy",
+ "aWNfc2VydmljZXMYEiABKAg6BWZhbHNlEhkKCmRlcHJlY2F0ZWQYFyABKAg6",
+ "BWZhbHNlEh8KEGNjX2VuYWJsZV9hcmVuYXMYHyABKAg6BWZhbHNlEhkKEW9i",
+ "amNfY2xhc3NfcHJlZml4GCQgASgJEhgKEGNzaGFycF9uYW1lc3BhY2UYJSAB",
+ "KAkSQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnBy",
+ "b3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24iOgoMT3B0aW1pemVNb2RlEgkK",
+ "BVNQRUVEEAESDQoJQ09ERV9TSVpFEAISEAoMTElURV9SVU5USU1FEAMqCQjo",
+ "BxCAgICAAiLmAQoOTWVzc2FnZU9wdGlvbnMSJgoXbWVzc2FnZV9zZXRfd2ly",
+ "ZV9mb3JtYXQYASABKAg6BWZhbHNlEi4KH25vX3N0YW5kYXJkX2Rlc2NyaXB0",
+ "b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlEhkKCmRlcHJlY2F0ZWQYAyABKAg6",
+ "BWZhbHNlEhEKCW1hcF9lbnRyeRgHIAEoCBJDChR1bmludGVycHJldGVkX29w",
+ "dGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9w",
+ "dGlvbioJCOgHEICAgIACIpgDCgxGaWVsZE9wdGlvbnMSOgoFY3R5cGUYASAB",
+ "KA4yIy5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkNUeXBlOgZTVFJJ",
+ "TkcSDgoGcGFja2VkGAIgASgIEj8KBmpzdHlwZRgGIAEoDjIkLmdvb2dsZS5w",
+ "cm90b2J1Zi5GaWVsZE9wdGlvbnMuSlNUeXBlOglKU19OT1JNQUwSEwoEbGF6",
+ "eRgFIAEoCDoFZmFsc2USGQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2USEwoE",
+ "d2VhaxgKIAEoCDoFZmFsc2USQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcg",
+ "AygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24iLwoF",
+ "Q1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRAC",
+ "IjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglK",
+ "U19OVU1CRVIQAioJCOgHEICAgIACIo0BCgtFbnVtT3B0aW9ucxITCgthbGxv",
+ "d19hbGlhcxgCIAEoCBIZCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZRJDChR1",
+ "bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYu",
+ "VW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIn0KEEVudW1WYWx1ZU9w",
+ "dGlvbnMSGQoKZGVwcmVjYXRlZBgBIAEoCDoFZmFsc2USQwoUdW5pbnRlcnBy",
+ "ZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJw",
+ "cmV0ZWRPcHRpb24qCQjoBxCAgICAAiJ7Cg5TZXJ2aWNlT3B0aW9ucxIZCgpk",
+ "ZXByZWNhdGVkGCEgASgIOgVmYWxzZRJDChR1bmludGVycHJldGVkX29wdGlv",
+ "bhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlv",
+ "bioJCOgHEICAgIACInoKDU1ldGhvZE9wdGlvbnMSGQoKZGVwcmVjYXRlZBgh",
+ "IAEoCDoFZmFsc2USQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQu",
+ "Z29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICA",
+ "AiKeAgoTVW5pbnRlcnByZXRlZE9wdGlvbhI7CgRuYW1lGAIgAygLMi0uZ29v",
+ "Z2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnQSGAoQ",
+ "aWRlbnRpZmllcl92YWx1ZRgDIAEoCRIaChJwb3NpdGl2ZV9pbnRfdmFsdWUY",
+ "BCABKAQSGgoSbmVnYXRpdmVfaW50X3ZhbHVlGAUgASgDEhQKDGRvdWJsZV92",
+ "YWx1ZRgGIAEoARIUCgxzdHJpbmdfdmFsdWUYByABKAwSFwoPYWdncmVnYXRl",
+ "X3ZhbHVlGAggASgJGjMKCE5hbWVQYXJ0EhEKCW5hbWVfcGFydBgBIAIoCRIU",
+ "Cgxpc19leHRlbnNpb24YAiACKAgi1QEKDlNvdXJjZUNvZGVJbmZvEjoKCGxv",
+ "Y2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZv",
+ "LkxvY2F0aW9uGoYBCghMb2NhdGlvbhIQCgRwYXRoGAEgAygFQgIQARIQCgRz",
+ "cGFuGAIgAygFQgIQARIYChBsZWFkaW5nX2NvbW1lbnRzGAMgASgJEhkKEXRy",
+ "YWlsaW5nX2NvbW1lbnRzGAQgASgJEiEKGWxlYWRpbmdfZGV0YWNoZWRfY29t",
+ "bWVudHMYBiADKAlCWQoTY29tLmdvb2dsZS5wcm90b2J1ZkIQRGVzY3JpcHRv",
+ "clByb3Rvc0gBogIDR1BCqgInR29vZ2xlLlByb3RvY29sQnVmZmVycy5EZXNj",
+ "cmlwdG9yUHJvdG9z"));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_google_protobuf_FileDescriptorSet__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_google_protobuf_FileDescriptorSet__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorSet, global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorSet.Builder>(internal__static_google_protobuf_FileDescriptorSet__Descriptor,
+ new string[] { "File", });
+ internal__static_google_protobuf_FileDescriptorProto__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_google_protobuf_FileDescriptorProto__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto.Builder>(internal__static_google_protobuf_FileDescriptorProto__Descriptor,
+ new string[] { "Name", "Package", "Dependency", "PublicDependency", "WeakDependency", "MessageType", "EnumType", "Service", "Extension", "Options", "SourceCodeInfo", "Syntax", });
+ internal__static_google_protobuf_DescriptorProto__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_google_protobuf_DescriptorProto__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Builder>(internal__static_google_protobuf_DescriptorProto__Descriptor,
+ new string[] { "Name", "Field", "Extension", "NestedType", "EnumType", "ExtensionRange", "OneofDecl", "Options", "ReservedRange", "ReservedName", });
+ internal__static_google_protobuf_DescriptorProto_ExtensionRange__Descriptor = internal__static_google_protobuf_DescriptorProto__Descriptor.NestedTypes[0];
+ internal__static_google_protobuf_DescriptorProto_ExtensionRange__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange.Builder>(internal__static_google_protobuf_DescriptorProto_ExtensionRange__Descriptor,
+ new string[] { "Start", "End", });
+ internal__static_google_protobuf_DescriptorProto_ReservedRange__Descriptor = internal__static_google_protobuf_DescriptorProto__Descriptor.NestedTypes[1];
+ internal__static_google_protobuf_DescriptorProto_ReservedRange__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange.Builder>(internal__static_google_protobuf_DescriptorProto_ReservedRange__Descriptor,
+ new string[] { "Start", "End", });
+ internal__static_google_protobuf_FieldDescriptorProto__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_google_protobuf_FieldDescriptorProto__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Builder>(internal__static_google_protobuf_FieldDescriptorProto__Descriptor,
+ new string[] { "Name", "Number", "Label", "Type", "TypeName", "Extendee", "DefaultValue", "OneofIndex", "Options", });
+ internal__static_google_protobuf_OneofDescriptorProto__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_google_protobuf_OneofDescriptorProto__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto.Builder>(internal__static_google_protobuf_OneofDescriptorProto__Descriptor,
+ new string[] { "Name", });
+ internal__static_google_protobuf_EnumDescriptorProto__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_google_protobuf_EnumDescriptorProto__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.Builder>(internal__static_google_protobuf_EnumDescriptorProto__Descriptor,
+ new string[] { "Name", "Value", "Options", });
+ internal__static_google_protobuf_EnumValueDescriptorProto__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_google_protobuf_EnumValueDescriptorProto__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto.Builder>(internal__static_google_protobuf_EnumValueDescriptorProto__Descriptor,
+ new string[] { "Name", "Number", "Options", });
+ internal__static_google_protobuf_ServiceDescriptorProto__Descriptor = Descriptor.MessageTypes[7];
+ internal__static_google_protobuf_ServiceDescriptorProto__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto.Builder>(internal__static_google_protobuf_ServiceDescriptorProto__Descriptor,
+ new string[] { "Name", "Method", "Options", });
+ internal__static_google_protobuf_MethodDescriptorProto__Descriptor = Descriptor.MessageTypes[8];
+ internal__static_google_protobuf_MethodDescriptorProto__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto, global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto.Builder>(internal__static_google_protobuf_MethodDescriptorProto__Descriptor,
+ new string[] { "Name", "InputType", "OutputType", "Options", "ClientStreaming", "ServerStreaming", });
+ internal__static_google_protobuf_FileOptions__Descriptor = Descriptor.MessageTypes[9];
+ internal__static_google_protobuf_FileOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FileOptions, global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Builder>(internal__static_google_protobuf_FileOptions__Descriptor,
+ new string[] { "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "JavaGenerateEqualsAndHash", "JavaStringCheckUtf8", "OptimizeFor", "GoPackage", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "Deprecated", "CcEnableArenas", "ObjcClassPrefix", "CsharpNamespace", "UninterpretedOption", });
+ internal__static_google_protobuf_MessageOptions__Descriptor = Descriptor.MessageTypes[10];
+ internal__static_google_protobuf_MessageOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions, global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.Builder>(internal__static_google_protobuf_MessageOptions__Descriptor,
+ new string[] { "MessageSetWireFormat", "NoStandardDescriptorAccessor", "Deprecated", "MapEntry", "UninterpretedOption", });
+ internal__static_google_protobuf_FieldOptions__Descriptor = Descriptor.MessageTypes[11];
+ internal__static_google_protobuf_FieldOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions, global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Builder>(internal__static_google_protobuf_FieldOptions__Descriptor,
+ new string[] { "Ctype", "Packed", "Jstype", "Lazy", "Deprecated", "Weak", "UninterpretedOption", });
+ internal__static_google_protobuf_EnumOptions__Descriptor = Descriptor.MessageTypes[12];
+ internal__static_google_protobuf_EnumOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions, global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.Builder>(internal__static_google_protobuf_EnumOptions__Descriptor,
+ new string[] { "AllowAlias", "Deprecated", "UninterpretedOption", });
+ internal__static_google_protobuf_EnumValueOptions__Descriptor = Descriptor.MessageTypes[13];
+ internal__static_google_protobuf_EnumValueOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions, global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.Builder>(internal__static_google_protobuf_EnumValueOptions__Descriptor,
+ new string[] { "Deprecated", "UninterpretedOption", });
+ internal__static_google_protobuf_ServiceOptions__Descriptor = Descriptor.MessageTypes[14];
+ internal__static_google_protobuf_ServiceOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions, global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.Builder>(internal__static_google_protobuf_ServiceOptions__Descriptor,
+ new string[] { "Deprecated", "UninterpretedOption", });
+ internal__static_google_protobuf_MethodOptions__Descriptor = Descriptor.MessageTypes[15];
+ internal__static_google_protobuf_MethodOptions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions, global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.Builder>(internal__static_google_protobuf_MethodOptions__Descriptor,
+ new string[] { "Deprecated", "UninterpretedOption", });
+ internal__static_google_protobuf_UninterpretedOption__Descriptor = Descriptor.MessageTypes[16];
+ internal__static_google_protobuf_UninterpretedOption__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder>(internal__static_google_protobuf_UninterpretedOption__Descriptor,
+ new string[] { "Name", "IdentifierValue", "PositiveIntValue", "NegativeIntValue", "DoubleValue", "StringValue", "AggregateValue", });
+ internal__static_google_protobuf_UninterpretedOption_NamePart__Descriptor = internal__static_google_protobuf_UninterpretedOption__Descriptor.NestedTypes[0];
+ internal__static_google_protobuf_UninterpretedOption_NamePart__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart.Builder>(internal__static_google_protobuf_UninterpretedOption_NamePart__Descriptor,
+ new string[] { "NamePart_", "IsExtension", });
+ internal__static_google_protobuf_SourceCodeInfo__Descriptor = Descriptor.MessageTypes[17];
+ internal__static_google_protobuf_SourceCodeInfo__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo, global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Builder>(internal__static_google_protobuf_SourceCodeInfo__Descriptor,
+ new string[] { "Location", });
+ internal__static_google_protobuf_SourceCodeInfo_Location__Descriptor = internal__static_google_protobuf_SourceCodeInfo__Descriptor.NestedTypes[0];
+ internal__static_google_protobuf_SourceCodeInfo_Location__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location, global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location.Builder>(internal__static_google_protobuf_SourceCodeInfo_Location__Descriptor,
+ new string[] { "Path", "Span", "LeadingComments", "TrailingComments", "LeadingDetachedComments", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FileDescriptorSet : pb::GeneratedMessage<FileDescriptorSet, FileDescriptorSet.Builder> {
+ private FileDescriptorSet() { }
+ private static readonly FileDescriptorSet defaultInstance = new FileDescriptorSet().MakeReadOnly();
+ private static readonly string[] _fileDescriptorSetFieldNames = new string[] { "file" };
+ private static readonly uint[] _fileDescriptorSetFieldTags = new uint[] { 10 };
+ public static FileDescriptorSet DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FileDescriptorSet DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FileDescriptorSet ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileDescriptorSet__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FileDescriptorSet, FileDescriptorSet.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileDescriptorSet__FieldAccessorTable; }
+ }
+
+ public const int FileFieldNumber = 1;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto> file_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto> FileList {
+ get { return file_; }
+ }
+ public int FileCount {
+ get { return file_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto GetFile(int index) {
+ return file_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto element in FileList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fileDescriptorSetFieldNames;
+ if (file_.Count > 0) {
+ output.WriteMessageArray(1, field_names[0], file_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto element in FileList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FileDescriptorSet ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FileDescriptorSet ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FileDescriptorSet ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FileDescriptorSet ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FileDescriptorSet ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FileDescriptorSet ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FileDescriptorSet ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FileDescriptorSet ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FileDescriptorSet ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FileDescriptorSet ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FileDescriptorSet MakeReadOnly() {
+ file_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FileDescriptorSet prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FileDescriptorSet, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FileDescriptorSet cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FileDescriptorSet result;
+
+ private FileDescriptorSet PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FileDescriptorSet original = result;
+ result = new FileDescriptorSet();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FileDescriptorSet MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorSet.Descriptor; }
+ }
+
+ public override FileDescriptorSet DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorSet.DefaultInstance; }
+ }
+
+ public override FileDescriptorSet BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FileDescriptorSet) {
+ return MergeFrom((FileDescriptorSet) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FileDescriptorSet other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorSet.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.file_.Count != 0) {
+ result.file_.Add(other.file_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fileDescriptorSetFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fileDescriptorSetFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadMessageArray(tag, field_name, result.file_, global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto> FileList {
+ get { return PrepareBuilder().file_; }
+ }
+ public int FileCount {
+ get { return result.FileCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto GetFile(int index) {
+ return result.GetFile(index);
+ }
+ public Builder SetFile(int index, global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.file_[index] = value;
+ return this;
+ }
+ public Builder SetFile(int index, global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.file_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddFile(global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.file_.Add(value);
+ return this;
+ }
+ public Builder AddFile(global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.file_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeFile(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto> values) {
+ PrepareBuilder();
+ result.file_.Add(values);
+ return this;
+ }
+ public Builder ClearFile() {
+ PrepareBuilder();
+ result.file_.Clear();
+ return this;
+ }
+ }
+ static FileDescriptorSet() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FileDescriptorProto : pb::GeneratedMessage<FileDescriptorProto, FileDescriptorProto.Builder> {
+ private FileDescriptorProto() { }
+ private static readonly FileDescriptorProto defaultInstance = new FileDescriptorProto().MakeReadOnly();
+ private static readonly string[] _fileDescriptorProtoFieldNames = new string[] { "dependency", "enum_type", "extension", "message_type", "name", "options", "package", "public_dependency", "service", "source_code_info", "syntax", "weak_dependency" };
+ private static readonly uint[] _fileDescriptorProtoFieldTags = new uint[] { 26, 42, 58, 34, 10, 66, 18, 80, 50, 74, 98, 88 };
+ public static FileDescriptorProto DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FileDescriptorProto DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FileDescriptorProto ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileDescriptorProto__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FileDescriptorProto, FileDescriptorProto.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileDescriptorProto__FieldAccessorTable; }
+ }
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int PackageFieldNumber = 2;
+ private bool hasPackage;
+ private string package_ = "";
+ public bool HasPackage {
+ get { return hasPackage; }
+ }
+ public string Package {
+ get { return package_; }
+ }
+
+ public const int DependencyFieldNumber = 3;
+ private pbc::PopsicleList<string> dependency_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> DependencyList {
+ get { return pbc::Lists.AsReadOnly(dependency_); }
+ }
+ public int DependencyCount {
+ get { return dependency_.Count; }
+ }
+ public string GetDependency(int index) {
+ return dependency_[index];
+ }
+
+ public const int PublicDependencyFieldNumber = 10;
+ private pbc::PopsicleList<int> publicDependency_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PublicDependencyList {
+ get { return pbc::Lists.AsReadOnly(publicDependency_); }
+ }
+ public int PublicDependencyCount {
+ get { return publicDependency_.Count; }
+ }
+ public int GetPublicDependency(int index) {
+ return publicDependency_[index];
+ }
+
+ public const int WeakDependencyFieldNumber = 11;
+ private pbc::PopsicleList<int> weakDependency_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> WeakDependencyList {
+ get { return pbc::Lists.AsReadOnly(weakDependency_); }
+ }
+ public int WeakDependencyCount {
+ get { return weakDependency_.Count; }
+ }
+ public int GetWeakDependency(int index) {
+ return weakDependency_[index];
+ }
+
+ public const int MessageTypeFieldNumber = 4;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> messageType_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> MessageTypeList {
+ get { return messageType_; }
+ }
+ public int MessageTypeCount {
+ get { return messageType_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto GetMessageType(int index) {
+ return messageType_[index];
+ }
+
+ public const int EnumTypeFieldNumber = 5;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> enumType_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> EnumTypeList {
+ get { return enumType_; }
+ }
+ public int EnumTypeCount {
+ get { return enumType_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto GetEnumType(int index) {
+ return enumType_[index];
+ }
+
+ public const int ServiceFieldNumber = 6;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto> service_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto> ServiceList {
+ get { return service_; }
+ }
+ public int ServiceCount {
+ get { return service_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto GetService(int index) {
+ return service_[index];
+ }
+
+ public const int ExtensionFieldNumber = 7;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> extension_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> ExtensionList {
+ get { return extension_; }
+ }
+ public int ExtensionCount {
+ get { return extension_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto GetExtension(int index) {
+ return extension_[index];
+ }
+
+ public const int OptionsFieldNumber = 8;
+ private bool hasOptions;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FileOptions options_;
+ public bool HasOptions {
+ get { return hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FileOptions Options {
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance; }
+ }
+
+ public const int SourceCodeInfoFieldNumber = 9;
+ private bool hasSourceCodeInfo;
+ private global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo sourceCodeInfo_;
+ public bool HasSourceCodeInfo {
+ get { return hasSourceCodeInfo; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo SourceCodeInfo {
+ get { return sourceCodeInfo_ ?? global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.DefaultInstance; }
+ }
+
+ public const int SyntaxFieldNumber = 12;
+ private bool hasSyntax;
+ private string syntax_ = "";
+ public bool HasSyntax {
+ get { return hasSyntax; }
+ }
+ public string Syntax {
+ get { return syntax_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto element in MessageTypeList) {
+ if (!element.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto element in EnumTypeList) {
+ if (!element.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto element in ServiceList) {
+ if (!element.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto element in ExtensionList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (HasOptions) {
+ if (!Options.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fileDescriptorProtoFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[4], Name);
+ }
+ if (hasPackage) {
+ output.WriteString(2, field_names[6], Package);
+ }
+ if (dependency_.Count > 0) {
+ output.WriteStringArray(3, field_names[0], dependency_);
+ }
+ if (messageType_.Count > 0) {
+ output.WriteMessageArray(4, field_names[3], messageType_);
+ }
+ if (enumType_.Count > 0) {
+ output.WriteMessageArray(5, field_names[1], enumType_);
+ }
+ if (service_.Count > 0) {
+ output.WriteMessageArray(6, field_names[8], service_);
+ }
+ if (extension_.Count > 0) {
+ output.WriteMessageArray(7, field_names[2], extension_);
+ }
+ if (hasOptions) {
+ output.WriteMessage(8, field_names[5], Options);
+ }
+ if (hasSourceCodeInfo) {
+ output.WriteMessage(9, field_names[9], SourceCodeInfo);
+ }
+ if (publicDependency_.Count > 0) {
+ output.WriteInt32Array(10, field_names[7], publicDependency_);
+ }
+ if (weakDependency_.Count > 0) {
+ output.WriteInt32Array(11, field_names[11], weakDependency_);
+ }
+ if (hasSyntax) {
+ output.WriteString(12, field_names[10], Syntax);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ if (hasPackage) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, Package);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in DependencyList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * dependency_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PublicDependencyList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * publicDependency_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in WeakDependencyList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * weakDependency_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto element in MessageTypeList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, element);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto element in EnumTypeList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(5, element);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto element in ServiceList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(6, element);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto element in ExtensionList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(7, element);
+ }
+ if (hasOptions) {
+ size += pb::CodedOutputStream.ComputeMessageSize(8, Options);
+ }
+ if (hasSourceCodeInfo) {
+ size += pb::CodedOutputStream.ComputeMessageSize(9, SourceCodeInfo);
+ }
+ if (hasSyntax) {
+ size += pb::CodedOutputStream.ComputeStringSize(12, Syntax);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FileDescriptorProto ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FileDescriptorProto ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FileDescriptorProto ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FileDescriptorProto ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FileDescriptorProto ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FileDescriptorProto ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FileDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FileDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FileDescriptorProto ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FileDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FileDescriptorProto MakeReadOnly() {
+ dependency_.MakeReadOnly();
+ publicDependency_.MakeReadOnly();
+ weakDependency_.MakeReadOnly();
+ messageType_.MakeReadOnly();
+ enumType_.MakeReadOnly();
+ service_.MakeReadOnly();
+ extension_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FileDescriptorProto prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FileDescriptorProto, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FileDescriptorProto cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FileDescriptorProto result;
+
+ private FileDescriptorProto PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FileDescriptorProto original = result;
+ result = new FileDescriptorProto();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FileDescriptorProto MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto.Descriptor; }
+ }
+
+ public override FileDescriptorProto DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto.DefaultInstance; }
+ }
+
+ public override FileDescriptorProto BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FileDescriptorProto) {
+ return MergeFrom((FileDescriptorProto) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FileDescriptorProto other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.FileDescriptorProto.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.HasPackage) {
+ Package = other.Package;
+ }
+ if (other.dependency_.Count != 0) {
+ result.dependency_.Add(other.dependency_);
+ }
+ if (other.publicDependency_.Count != 0) {
+ result.publicDependency_.Add(other.publicDependency_);
+ }
+ if (other.weakDependency_.Count != 0) {
+ result.weakDependency_.Add(other.weakDependency_);
+ }
+ if (other.messageType_.Count != 0) {
+ result.messageType_.Add(other.messageType_);
+ }
+ if (other.enumType_.Count != 0) {
+ result.enumType_.Add(other.enumType_);
+ }
+ if (other.service_.Count != 0) {
+ result.service_.Add(other.service_);
+ }
+ if (other.extension_.Count != 0) {
+ result.extension_.Add(other.extension_);
+ }
+ if (other.HasOptions) {
+ MergeOptions(other.Options);
+ }
+ if (other.HasSourceCodeInfo) {
+ MergeSourceCodeInfo(other.SourceCodeInfo);
+ }
+ if (other.HasSyntax) {
+ Syntax = other.Syntax;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fileDescriptorProtoFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fileDescriptorProtoFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 18: {
+ result.hasPackage = input.ReadString(ref result.package_);
+ break;
+ }
+ case 26: {
+ input.ReadStringArray(tag, field_name, result.dependency_);
+ break;
+ }
+ case 34: {
+ input.ReadMessageArray(tag, field_name, result.messageType_, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 42: {
+ input.ReadMessageArray(tag, field_name, result.enumType_, global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 50: {
+ input.ReadMessageArray(tag, field_name, result.service_, global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 58: {
+ input.ReadMessageArray(tag, field_name, result.extension_, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 66: {
+ global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.CreateBuilder();
+ if (result.hasOptions) {
+ subBuilder.MergeFrom(Options);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Options = subBuilder.BuildPartial();
+ break;
+ }
+ case 74: {
+ global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.CreateBuilder();
+ if (result.hasSourceCodeInfo) {
+ subBuilder.MergeFrom(SourceCodeInfo);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ SourceCodeInfo = subBuilder.BuildPartial();
+ break;
+ }
+ case 82:
+ case 80: {
+ input.ReadInt32Array(tag, field_name, result.publicDependency_);
+ break;
+ }
+ case 90:
+ case 88: {
+ input.ReadInt32Array(tag, field_name, result.weakDependency_);
+ break;
+ }
+ case 98: {
+ result.hasSyntax = input.ReadString(ref result.syntax_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasPackage {
+ get { return result.hasPackage; }
+ }
+ public string Package {
+ get { return result.Package; }
+ set { SetPackage(value); }
+ }
+ public Builder SetPackage(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasPackage = true;
+ result.package_ = value;
+ return this;
+ }
+ public Builder ClearPackage() {
+ PrepareBuilder();
+ result.hasPackage = false;
+ result.package_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> DependencyList {
+ get { return PrepareBuilder().dependency_; }
+ }
+ public int DependencyCount {
+ get { return result.DependencyCount; }
+ }
+ public string GetDependency(int index) {
+ return result.GetDependency(index);
+ }
+ public Builder SetDependency(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.dependency_[index] = value;
+ return this;
+ }
+ public Builder AddDependency(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.dependency_.Add(value);
+ return this;
+ }
+ public Builder AddRangeDependency(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.dependency_.Add(values);
+ return this;
+ }
+ public Builder ClearDependency() {
+ PrepareBuilder();
+ result.dependency_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PublicDependencyList {
+ get { return PrepareBuilder().publicDependency_; }
+ }
+ public int PublicDependencyCount {
+ get { return result.PublicDependencyCount; }
+ }
+ public int GetPublicDependency(int index) {
+ return result.GetPublicDependency(index);
+ }
+ public Builder SetPublicDependency(int index, int value) {
+ PrepareBuilder();
+ result.publicDependency_[index] = value;
+ return this;
+ }
+ public Builder AddPublicDependency(int value) {
+ PrepareBuilder();
+ result.publicDependency_.Add(value);
+ return this;
+ }
+ public Builder AddRangePublicDependency(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.publicDependency_.Add(values);
+ return this;
+ }
+ public Builder ClearPublicDependency() {
+ PrepareBuilder();
+ result.publicDependency_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> WeakDependencyList {
+ get { return PrepareBuilder().weakDependency_; }
+ }
+ public int WeakDependencyCount {
+ get { return result.WeakDependencyCount; }
+ }
+ public int GetWeakDependency(int index) {
+ return result.GetWeakDependency(index);
+ }
+ public Builder SetWeakDependency(int index, int value) {
+ PrepareBuilder();
+ result.weakDependency_[index] = value;
+ return this;
+ }
+ public Builder AddWeakDependency(int value) {
+ PrepareBuilder();
+ result.weakDependency_.Add(value);
+ return this;
+ }
+ public Builder AddRangeWeakDependency(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.weakDependency_.Add(values);
+ return this;
+ }
+ public Builder ClearWeakDependency() {
+ PrepareBuilder();
+ result.weakDependency_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> MessageTypeList {
+ get { return PrepareBuilder().messageType_; }
+ }
+ public int MessageTypeCount {
+ get { return result.MessageTypeCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto GetMessageType(int index) {
+ return result.GetMessageType(index);
+ }
+ public Builder SetMessageType(int index, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.messageType_[index] = value;
+ return this;
+ }
+ public Builder SetMessageType(int index, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.messageType_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddMessageType(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.messageType_.Add(value);
+ return this;
+ }
+ public Builder AddMessageType(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.messageType_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeMessageType(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> values) {
+ PrepareBuilder();
+ result.messageType_.Add(values);
+ return this;
+ }
+ public Builder ClearMessageType() {
+ PrepareBuilder();
+ result.messageType_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> EnumTypeList {
+ get { return PrepareBuilder().enumType_; }
+ }
+ public int EnumTypeCount {
+ get { return result.EnumTypeCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto GetEnumType(int index) {
+ return result.GetEnumType(index);
+ }
+ public Builder SetEnumType(int index, global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.enumType_[index] = value;
+ return this;
+ }
+ public Builder SetEnumType(int index, global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.enumType_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddEnumType(global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.enumType_.Add(value);
+ return this;
+ }
+ public Builder AddEnumType(global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.enumType_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeEnumType(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> values) {
+ PrepareBuilder();
+ result.enumType_.Add(values);
+ return this;
+ }
+ public Builder ClearEnumType() {
+ PrepareBuilder();
+ result.enumType_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto> ServiceList {
+ get { return PrepareBuilder().service_; }
+ }
+ public int ServiceCount {
+ get { return result.ServiceCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto GetService(int index) {
+ return result.GetService(index);
+ }
+ public Builder SetService(int index, global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.service_[index] = value;
+ return this;
+ }
+ public Builder SetService(int index, global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.service_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddService(global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.service_.Add(value);
+ return this;
+ }
+ public Builder AddService(global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.service_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeService(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto> values) {
+ PrepareBuilder();
+ result.service_.Add(values);
+ return this;
+ }
+ public Builder ClearService() {
+ PrepareBuilder();
+ result.service_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> ExtensionList {
+ get { return PrepareBuilder().extension_; }
+ }
+ public int ExtensionCount {
+ get { return result.ExtensionCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto GetExtension(int index) {
+ return result.GetExtension(index);
+ }
+ public Builder SetExtension(int index, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.extension_[index] = value;
+ return this;
+ }
+ public Builder SetExtension(int index, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.extension_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExtension(global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.extension_.Add(value);
+ return this;
+ }
+ public Builder AddExtension(global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.extension_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExtension(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> values) {
+ PrepareBuilder();
+ result.extension_.Add(values);
+ return this;
+ }
+ public Builder ClearExtension() {
+ PrepareBuilder();
+ result.extension_.Clear();
+ return this;
+ }
+
+ public bool HasOptions {
+ get { return result.hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FileOptions Options {
+ get { return result.Options; }
+ set { SetOptions(value); }
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.FileOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = value;
+ return this;
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.FileOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptions &&
+ result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance) {
+ result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();
+ } else {
+ result.options_ = value;
+ }
+ result.hasOptions = true;
+ return this;
+ }
+ public Builder ClearOptions() {
+ PrepareBuilder();
+ result.hasOptions = false;
+ result.options_ = null;
+ return this;
+ }
+
+ public bool HasSourceCodeInfo {
+ get { return result.hasSourceCodeInfo; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo SourceCodeInfo {
+ get { return result.SourceCodeInfo; }
+ set { SetSourceCodeInfo(value); }
+ }
+ public Builder SetSourceCodeInfo(global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasSourceCodeInfo = true;
+ result.sourceCodeInfo_ = value;
+ return this;
+ }
+ public Builder SetSourceCodeInfo(global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasSourceCodeInfo = true;
+ result.sourceCodeInfo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeSourceCodeInfo(global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasSourceCodeInfo &&
+ result.sourceCodeInfo_ != global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.DefaultInstance) {
+ result.sourceCodeInfo_ = global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.CreateBuilder(result.sourceCodeInfo_).MergeFrom(value).BuildPartial();
+ } else {
+ result.sourceCodeInfo_ = value;
+ }
+ result.hasSourceCodeInfo = true;
+ return this;
+ }
+ public Builder ClearSourceCodeInfo() {
+ PrepareBuilder();
+ result.hasSourceCodeInfo = false;
+ result.sourceCodeInfo_ = null;
+ return this;
+ }
+
+ public bool HasSyntax {
+ get { return result.hasSyntax; }
+ }
+ public string Syntax {
+ get { return result.Syntax; }
+ set { SetSyntax(value); }
+ }
+ public Builder SetSyntax(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasSyntax = true;
+ result.syntax_ = value;
+ return this;
+ }
+ public Builder ClearSyntax() {
+ PrepareBuilder();
+ result.hasSyntax = false;
+ result.syntax_ = "";
+ return this;
+ }
+ }
+ static FileDescriptorProto() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class DescriptorProto : pb::GeneratedMessage<DescriptorProto, DescriptorProto.Builder> {
+ private DescriptorProto() { }
+ private static readonly DescriptorProto defaultInstance = new DescriptorProto().MakeReadOnly();
+ private static readonly string[] _descriptorProtoFieldNames = new string[] { "enum_type", "extension", "extension_range", "field", "name", "nested_type", "oneof_decl", "options", "reserved_name", "reserved_range" };
+ private static readonly uint[] _descriptorProtoFieldTags = new uint[] { 34, 50, 42, 18, 10, 26, 66, 58, 82, 74 };
+ public static DescriptorProto DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DescriptorProto DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override DescriptorProto ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DescriptorProto, DescriptorProto.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ExtensionRange : pb::GeneratedMessage<ExtensionRange, ExtensionRange.Builder> {
+ private ExtensionRange() { }
+ private static readonly ExtensionRange defaultInstance = new ExtensionRange().MakeReadOnly();
+ private static readonly string[] _extensionRangeFieldNames = new string[] { "end", "start" };
+ private static readonly uint[] _extensionRangeFieldTags = new uint[] { 16, 8 };
+ public static ExtensionRange DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ExtensionRange DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ExtensionRange ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto_ExtensionRange__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ExtensionRange, ExtensionRange.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto_ExtensionRange__FieldAccessorTable; }
+ }
+
+ public const int StartFieldNumber = 1;
+ private bool hasStart;
+ private int start_;
+ public bool HasStart {
+ get { return hasStart; }
+ }
+ public int Start {
+ get { return start_; }
+ }
+
+ public const int EndFieldNumber = 2;
+ private bool hasEnd;
+ private int end_;
+ public bool HasEnd {
+ get { return hasEnd; }
+ }
+ public int End {
+ get { return end_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _extensionRangeFieldNames;
+ if (hasStart) {
+ output.WriteInt32(1, field_names[1], Start);
+ }
+ if (hasEnd) {
+ output.WriteInt32(2, field_names[0], End);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasStart) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Start);
+ }
+ if (hasEnd) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, End);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ExtensionRange ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ExtensionRange ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ExtensionRange ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ExtensionRange ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ExtensionRange ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ExtensionRange ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ExtensionRange ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ExtensionRange ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ExtensionRange ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ExtensionRange ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ExtensionRange MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ExtensionRange prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ExtensionRange, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ExtensionRange cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ExtensionRange result;
+
+ private ExtensionRange PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ExtensionRange original = result;
+ result = new ExtensionRange();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ExtensionRange MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange.Descriptor; }
+ }
+
+ public override ExtensionRange DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange.DefaultInstance; }
+ }
+
+ public override ExtensionRange BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ExtensionRange) {
+ return MergeFrom((ExtensionRange) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ExtensionRange other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasStart) {
+ Start = other.Start;
+ }
+ if (other.HasEnd) {
+ End = other.End;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_extensionRangeFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _extensionRangeFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasStart = input.ReadInt32(ref result.start_);
+ break;
+ }
+ case 16: {
+ result.hasEnd = input.ReadInt32(ref result.end_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasStart {
+ get { return result.hasStart; }
+ }
+ public int Start {
+ get { return result.Start; }
+ set { SetStart(value); }
+ }
+ public Builder SetStart(int value) {
+ PrepareBuilder();
+ result.hasStart = true;
+ result.start_ = value;
+ return this;
+ }
+ public Builder ClearStart() {
+ PrepareBuilder();
+ result.hasStart = false;
+ result.start_ = 0;
+ return this;
+ }
+
+ public bool HasEnd {
+ get { return result.hasEnd; }
+ }
+ public int End {
+ get { return result.End; }
+ set { SetEnd(value); }
+ }
+ public Builder SetEnd(int value) {
+ PrepareBuilder();
+ result.hasEnd = true;
+ result.end_ = value;
+ return this;
+ }
+ public Builder ClearEnd() {
+ PrepareBuilder();
+ result.hasEnd = false;
+ result.end_ = 0;
+ return this;
+ }
+ }
+ static ExtensionRange() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ReservedRange : pb::GeneratedMessage<ReservedRange, ReservedRange.Builder> {
+ private ReservedRange() { }
+ private static readonly ReservedRange defaultInstance = new ReservedRange().MakeReadOnly();
+ private static readonly string[] _reservedRangeFieldNames = new string[] { "end", "start" };
+ private static readonly uint[] _reservedRangeFieldTags = new uint[] { 16, 8 };
+ public static ReservedRange DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ReservedRange DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ReservedRange ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto_ReservedRange__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ReservedRange, ReservedRange.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_DescriptorProto_ReservedRange__FieldAccessorTable; }
+ }
+
+ public const int StartFieldNumber = 1;
+ private bool hasStart;
+ private int start_;
+ public bool HasStart {
+ get { return hasStart; }
+ }
+ public int Start {
+ get { return start_; }
+ }
+
+ public const int EndFieldNumber = 2;
+ private bool hasEnd;
+ private int end_;
+ public bool HasEnd {
+ get { return hasEnd; }
+ }
+ public int End {
+ get { return end_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _reservedRangeFieldNames;
+ if (hasStart) {
+ output.WriteInt32(1, field_names[1], Start);
+ }
+ if (hasEnd) {
+ output.WriteInt32(2, field_names[0], End);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasStart) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Start);
+ }
+ if (hasEnd) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, End);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ReservedRange ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ReservedRange ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ReservedRange ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ReservedRange ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ReservedRange ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ReservedRange ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ReservedRange ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ReservedRange ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ReservedRange ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ReservedRange ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ReservedRange MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ReservedRange prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ReservedRange, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ReservedRange cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ReservedRange result;
+
+ private ReservedRange PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ReservedRange original = result;
+ result = new ReservedRange();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ReservedRange MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange.Descriptor; }
+ }
+
+ public override ReservedRange DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange.DefaultInstance; }
+ }
+
+ public override ReservedRange BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ReservedRange) {
+ return MergeFrom((ReservedRange) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ReservedRange other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasStart) {
+ Start = other.Start;
+ }
+ if (other.HasEnd) {
+ End = other.End;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_reservedRangeFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _reservedRangeFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasStart = input.ReadInt32(ref result.start_);
+ break;
+ }
+ case 16: {
+ result.hasEnd = input.ReadInt32(ref result.end_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasStart {
+ get { return result.hasStart; }
+ }
+ public int Start {
+ get { return result.Start; }
+ set { SetStart(value); }
+ }
+ public Builder SetStart(int value) {
+ PrepareBuilder();
+ result.hasStart = true;
+ result.start_ = value;
+ return this;
+ }
+ public Builder ClearStart() {
+ PrepareBuilder();
+ result.hasStart = false;
+ result.start_ = 0;
+ return this;
+ }
+
+ public bool HasEnd {
+ get { return result.hasEnd; }
+ }
+ public int End {
+ get { return result.End; }
+ set { SetEnd(value); }
+ }
+ public Builder SetEnd(int value) {
+ PrepareBuilder();
+ result.hasEnd = true;
+ result.end_ = value;
+ return this;
+ }
+ public Builder ClearEnd() {
+ PrepareBuilder();
+ result.hasEnd = false;
+ result.end_ = 0;
+ return this;
+ }
+ }
+ static ReservedRange() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int FieldFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> field_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> FieldList {
+ get { return field_; }
+ }
+ public int FieldCount {
+ get { return field_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto GetField(int index) {
+ return field_[index];
+ }
+
+ public const int ExtensionFieldNumber = 6;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> extension_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> ExtensionList {
+ get { return extension_; }
+ }
+ public int ExtensionCount {
+ get { return extension_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto GetExtension(int index) {
+ return extension_[index];
+ }
+
+ public const int NestedTypeFieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> nestedType_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> NestedTypeList {
+ get { return nestedType_; }
+ }
+ public int NestedTypeCount {
+ get { return nestedType_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto GetNestedType(int index) {
+ return nestedType_[index];
+ }
+
+ public const int EnumTypeFieldNumber = 4;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> enumType_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> EnumTypeList {
+ get { return enumType_; }
+ }
+ public int EnumTypeCount {
+ get { return enumType_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto GetEnumType(int index) {
+ return enumType_[index];
+ }
+
+ public const int ExtensionRangeFieldNumber = 5;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange> extensionRange_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange> ExtensionRangeList {
+ get { return extensionRange_; }
+ }
+ public int ExtensionRangeCount {
+ get { return extensionRange_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange GetExtensionRange(int index) {
+ return extensionRange_[index];
+ }
+
+ public const int OneofDeclFieldNumber = 8;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto> oneofDecl_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto> OneofDeclList {
+ get { return oneofDecl_; }
+ }
+ public int OneofDeclCount {
+ get { return oneofDecl_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto GetOneofDecl(int index) {
+ return oneofDecl_[index];
+ }
+
+ public const int OptionsFieldNumber = 7;
+ private bool hasOptions;
+ private global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions options_;
+ public bool HasOptions {
+ get { return hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions Options {
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.DefaultInstance; }
+ }
+
+ public const int ReservedRangeFieldNumber = 9;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange> reservedRange_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange> ReservedRangeList {
+ get { return reservedRange_; }
+ }
+ public int ReservedRangeCount {
+ get { return reservedRange_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange GetReservedRange(int index) {
+ return reservedRange_[index];
+ }
+
+ public const int ReservedNameFieldNumber = 10;
+ private pbc::PopsicleList<string> reservedName_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> ReservedNameList {
+ get { return pbc::Lists.AsReadOnly(reservedName_); }
+ }
+ public int ReservedNameCount {
+ get { return reservedName_.Count; }
+ }
+ public string GetReservedName(int index) {
+ return reservedName_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto element in FieldList) {
+ if (!element.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto element in ExtensionList) {
+ if (!element.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto element in NestedTypeList) {
+ if (!element.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto element in EnumTypeList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (HasOptions) {
+ if (!Options.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _descriptorProtoFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[4], Name);
+ }
+ if (field_.Count > 0) {
+ output.WriteMessageArray(2, field_names[3], field_);
+ }
+ if (nestedType_.Count > 0) {
+ output.WriteMessageArray(3, field_names[5], nestedType_);
+ }
+ if (enumType_.Count > 0) {
+ output.WriteMessageArray(4, field_names[0], enumType_);
+ }
+ if (extensionRange_.Count > 0) {
+ output.WriteMessageArray(5, field_names[2], extensionRange_);
+ }
+ if (extension_.Count > 0) {
+ output.WriteMessageArray(6, field_names[1], extension_);
+ }
+ if (hasOptions) {
+ output.WriteMessage(7, field_names[7], Options);
+ }
+ if (oneofDecl_.Count > 0) {
+ output.WriteMessageArray(8, field_names[6], oneofDecl_);
+ }
+ if (reservedRange_.Count > 0) {
+ output.WriteMessageArray(9, field_names[9], reservedRange_);
+ }
+ if (reservedName_.Count > 0) {
+ output.WriteStringArray(10, field_names[8], reservedName_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto element in FieldList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto element in ExtensionList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(6, element);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto element in NestedTypeList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto element in EnumTypeList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, element);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange element in ExtensionRangeList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(5, element);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto element in OneofDeclList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(8, element);
+ }
+ if (hasOptions) {
+ size += pb::CodedOutputStream.ComputeMessageSize(7, Options);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange element in ReservedRangeList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(9, element);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in ReservedNameList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * reservedName_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static DescriptorProto ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DescriptorProto ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DescriptorProto ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DescriptorProto ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DescriptorProto ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DescriptorProto ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DescriptorProto ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DescriptorProto ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DescriptorProto ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private DescriptorProto MakeReadOnly() {
+ field_.MakeReadOnly();
+ extension_.MakeReadOnly();
+ nestedType_.MakeReadOnly();
+ enumType_.MakeReadOnly();
+ extensionRange_.MakeReadOnly();
+ oneofDecl_.MakeReadOnly();
+ reservedRange_.MakeReadOnly();
+ reservedName_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DescriptorProto prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<DescriptorProto, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(DescriptorProto cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private DescriptorProto result;
+
+ private DescriptorProto PrepareBuilder() {
+ if (resultIsReadOnly) {
+ DescriptorProto original = result;
+ result = new DescriptorProto();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override DescriptorProto MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Descriptor; }
+ }
+
+ public override DescriptorProto DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.DefaultInstance; }
+ }
+
+ public override DescriptorProto BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DescriptorProto) {
+ return MergeFrom((DescriptorProto) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DescriptorProto other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.field_.Count != 0) {
+ result.field_.Add(other.field_);
+ }
+ if (other.extension_.Count != 0) {
+ result.extension_.Add(other.extension_);
+ }
+ if (other.nestedType_.Count != 0) {
+ result.nestedType_.Add(other.nestedType_);
+ }
+ if (other.enumType_.Count != 0) {
+ result.enumType_.Add(other.enumType_);
+ }
+ if (other.extensionRange_.Count != 0) {
+ result.extensionRange_.Add(other.extensionRange_);
+ }
+ if (other.oneofDecl_.Count != 0) {
+ result.oneofDecl_.Add(other.oneofDecl_);
+ }
+ if (other.HasOptions) {
+ MergeOptions(other.Options);
+ }
+ if (other.reservedRange_.Count != 0) {
+ result.reservedRange_.Add(other.reservedRange_);
+ }
+ if (other.reservedName_.Count != 0) {
+ result.reservedName_.Add(other.reservedName_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_descriptorProtoFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _descriptorProtoFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.field_, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.nestedType_, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 34: {
+ input.ReadMessageArray(tag, field_name, result.enumType_, global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 42: {
+ input.ReadMessageArray(tag, field_name, result.extensionRange_, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 50: {
+ input.ReadMessageArray(tag, field_name, result.extension_, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 58: {
+ global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.CreateBuilder();
+ if (result.hasOptions) {
+ subBuilder.MergeFrom(Options);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Options = subBuilder.BuildPartial();
+ break;
+ }
+ case 66: {
+ input.ReadMessageArray(tag, field_name, result.oneofDecl_, global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 74: {
+ input.ReadMessageArray(tag, field_name, result.reservedRange_, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 82: {
+ input.ReadStringArray(tag, field_name, result.reservedName_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> FieldList {
+ get { return PrepareBuilder().field_; }
+ }
+ public int FieldCount {
+ get { return result.FieldCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto GetField(int index) {
+ return result.GetField(index);
+ }
+ public Builder SetField(int index, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field_[index] = value;
+ return this;
+ }
+ public Builder SetField(int index, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField(global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field_.Add(value);
+ return this;
+ }
+ public Builder AddField(global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> values) {
+ PrepareBuilder();
+ result.field_.Add(values);
+ return this;
+ }
+ public Builder ClearField() {
+ PrepareBuilder();
+ result.field_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> ExtensionList {
+ get { return PrepareBuilder().extension_; }
+ }
+ public int ExtensionCount {
+ get { return result.ExtensionCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto GetExtension(int index) {
+ return result.GetExtension(index);
+ }
+ public Builder SetExtension(int index, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.extension_[index] = value;
+ return this;
+ }
+ public Builder SetExtension(int index, global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.extension_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExtension(global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.extension_.Add(value);
+ return this;
+ }
+ public Builder AddExtension(global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.extension_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExtension(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto> values) {
+ PrepareBuilder();
+ result.extension_.Add(values);
+ return this;
+ }
+ public Builder ClearExtension() {
+ PrepareBuilder();
+ result.extension_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> NestedTypeList {
+ get { return PrepareBuilder().nestedType_; }
+ }
+ public int NestedTypeCount {
+ get { return result.NestedTypeCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto GetNestedType(int index) {
+ return result.GetNestedType(index);
+ }
+ public Builder SetNestedType(int index, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.nestedType_[index] = value;
+ return this;
+ }
+ public Builder SetNestedType(int index, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.nestedType_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddNestedType(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.nestedType_.Add(value);
+ return this;
+ }
+ public Builder AddNestedType(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.nestedType_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeNestedType(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto> values) {
+ PrepareBuilder();
+ result.nestedType_.Add(values);
+ return this;
+ }
+ public Builder ClearNestedType() {
+ PrepareBuilder();
+ result.nestedType_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> EnumTypeList {
+ get { return PrepareBuilder().enumType_; }
+ }
+ public int EnumTypeCount {
+ get { return result.EnumTypeCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto GetEnumType(int index) {
+ return result.GetEnumType(index);
+ }
+ public Builder SetEnumType(int index, global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.enumType_[index] = value;
+ return this;
+ }
+ public Builder SetEnumType(int index, global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.enumType_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddEnumType(global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.enumType_.Add(value);
+ return this;
+ }
+ public Builder AddEnumType(global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.enumType_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeEnumType(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto> values) {
+ PrepareBuilder();
+ result.enumType_.Add(values);
+ return this;
+ }
+ public Builder ClearEnumType() {
+ PrepareBuilder();
+ result.enumType_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange> ExtensionRangeList {
+ get { return PrepareBuilder().extensionRange_; }
+ }
+ public int ExtensionRangeCount {
+ get { return result.ExtensionRangeCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange GetExtensionRange(int index) {
+ return result.GetExtensionRange(index);
+ }
+ public Builder SetExtensionRange(int index, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.extensionRange_[index] = value;
+ return this;
+ }
+ public Builder SetExtensionRange(int index, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.extensionRange_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExtensionRange(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.extensionRange_.Add(value);
+ return this;
+ }
+ public Builder AddExtensionRange(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.extensionRange_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExtensionRange(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ExtensionRange> values) {
+ PrepareBuilder();
+ result.extensionRange_.Add(values);
+ return this;
+ }
+ public Builder ClearExtensionRange() {
+ PrepareBuilder();
+ result.extensionRange_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto> OneofDeclList {
+ get { return PrepareBuilder().oneofDecl_; }
+ }
+ public int OneofDeclCount {
+ get { return result.OneofDeclCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto GetOneofDecl(int index) {
+ return result.GetOneofDecl(index);
+ }
+ public Builder SetOneofDecl(int index, global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofDecl_[index] = value;
+ return this;
+ }
+ public Builder SetOneofDecl(int index, global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.oneofDecl_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddOneofDecl(global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofDecl_.Add(value);
+ return this;
+ }
+ public Builder AddOneofDecl(global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.oneofDecl_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeOneofDecl(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto> values) {
+ PrepareBuilder();
+ result.oneofDecl_.Add(values);
+ return this;
+ }
+ public Builder ClearOneofDecl() {
+ PrepareBuilder();
+ result.oneofDecl_.Clear();
+ return this;
+ }
+
+ public bool HasOptions {
+ get { return result.hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions Options {
+ get { return result.Options; }
+ set { SetOptions(value); }
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = value;
+ return this;
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptions &&
+ result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.DefaultInstance) {
+ result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();
+ } else {
+ result.options_ = value;
+ }
+ result.hasOptions = true;
+ return this;
+ }
+ public Builder ClearOptions() {
+ PrepareBuilder();
+ result.hasOptions = false;
+ result.options_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange> ReservedRangeList {
+ get { return PrepareBuilder().reservedRange_; }
+ }
+ public int ReservedRangeCount {
+ get { return result.ReservedRangeCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange GetReservedRange(int index) {
+ return result.GetReservedRange(index);
+ }
+ public Builder SetReservedRange(int index, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.reservedRange_[index] = value;
+ return this;
+ }
+ public Builder SetReservedRange(int index, global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.reservedRange_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddReservedRange(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.reservedRange_.Add(value);
+ return this;
+ }
+ public Builder AddReservedRange(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.reservedRange_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeReservedRange(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProto.Types.ReservedRange> values) {
+ PrepareBuilder();
+ result.reservedRange_.Add(values);
+ return this;
+ }
+ public Builder ClearReservedRange() {
+ PrepareBuilder();
+ result.reservedRange_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> ReservedNameList {
+ get { return PrepareBuilder().reservedName_; }
+ }
+ public int ReservedNameCount {
+ get { return result.ReservedNameCount; }
+ }
+ public string GetReservedName(int index) {
+ return result.GetReservedName(index);
+ }
+ public Builder SetReservedName(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.reservedName_[index] = value;
+ return this;
+ }
+ public Builder AddReservedName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.reservedName_.Add(value);
+ return this;
+ }
+ public Builder AddRangeReservedName(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.reservedName_.Add(values);
+ return this;
+ }
+ public Builder ClearReservedName() {
+ PrepareBuilder();
+ result.reservedName_.Clear();
+ return this;
+ }
+ }
+ static DescriptorProto() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FieldDescriptorProto : pb::GeneratedMessage<FieldDescriptorProto, FieldDescriptorProto.Builder> {
+ private FieldDescriptorProto() { }
+ private static readonly FieldDescriptorProto defaultInstance = new FieldDescriptorProto().MakeReadOnly();
+ private static readonly string[] _fieldDescriptorProtoFieldNames = new string[] { "default_value", "extendee", "label", "name", "number", "oneof_index", "options", "type", "type_name" };
+ private static readonly uint[] _fieldDescriptorProtoFieldTags = new uint[] { 58, 18, 32, 10, 24, 72, 66, 40, 50 };
+ public static FieldDescriptorProto DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FieldDescriptorProto DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FieldDescriptorProto ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FieldDescriptorProto__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FieldDescriptorProto, FieldDescriptorProto.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FieldDescriptorProto__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum Type {
+ TYPE_DOUBLE = 1,
+ TYPE_FLOAT = 2,
+ TYPE_INT64 = 3,
+ TYPE_UINT64 = 4,
+ TYPE_INT32 = 5,
+ TYPE_FIXED64 = 6,
+ TYPE_FIXED32 = 7,
+ TYPE_BOOL = 8,
+ TYPE_STRING = 9,
+ TYPE_GROUP = 10,
+ TYPE_MESSAGE = 11,
+ TYPE_BYTES = 12,
+ TYPE_UINT32 = 13,
+ TYPE_ENUM = 14,
+ TYPE_SFIXED32 = 15,
+ TYPE_SFIXED64 = 16,
+ TYPE_SINT32 = 17,
+ TYPE_SINT64 = 18,
+ }
+
+ public enum Label {
+ LABEL_OPTIONAL = 1,
+ LABEL_REQUIRED = 2,
+ LABEL_REPEATED = 3,
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int NumberFieldNumber = 3;
+ private bool hasNumber;
+ private int number_;
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public int Number {
+ get { return number_; }
+ }
+
+ public const int LabelFieldNumber = 4;
+ private bool hasLabel;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Label label_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Label.LABEL_OPTIONAL;
+ public bool HasLabel {
+ get { return hasLabel; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Label Label {
+ get { return label_; }
+ }
+
+ public const int TypeFieldNumber = 5;
+ private bool hasType;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Type type_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Type.TYPE_DOUBLE;
+ public bool HasType {
+ get { return hasType; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Type Type {
+ get { return type_; }
+ }
+
+ public const int TypeNameFieldNumber = 6;
+ private bool hasTypeName;
+ private string typeName_ = "";
+ public bool HasTypeName {
+ get { return hasTypeName; }
+ }
+ public string TypeName {
+ get { return typeName_; }
+ }
+
+ public const int ExtendeeFieldNumber = 2;
+ private bool hasExtendee;
+ private string extendee_ = "";
+ public bool HasExtendee {
+ get { return hasExtendee; }
+ }
+ public string Extendee {
+ get { return extendee_; }
+ }
+
+ public const int DefaultValueFieldNumber = 7;
+ private bool hasDefaultValue;
+ private string defaultValue_ = "";
+ public bool HasDefaultValue {
+ get { return hasDefaultValue; }
+ }
+ public string DefaultValue {
+ get { return defaultValue_; }
+ }
+
+ public const int OneofIndexFieldNumber = 9;
+ private bool hasOneofIndex;
+ private int oneofIndex_;
+ public bool HasOneofIndex {
+ get { return hasOneofIndex; }
+ }
+ public int OneofIndex {
+ get { return oneofIndex_; }
+ }
+
+ public const int OptionsFieldNumber = 8;
+ private bool hasOptions;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions options_;
+ public bool HasOptions {
+ get { return hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions Options {
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasOptions) {
+ if (!Options.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fieldDescriptorProtoFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[3], Name);
+ }
+ if (hasExtendee) {
+ output.WriteString(2, field_names[1], Extendee);
+ }
+ if (hasNumber) {
+ output.WriteInt32(3, field_names[4], Number);
+ }
+ if (hasLabel) {
+ output.WriteEnum(4, field_names[2], (int) Label, Label);
+ }
+ if (hasType) {
+ output.WriteEnum(5, field_names[7], (int) Type, Type);
+ }
+ if (hasTypeName) {
+ output.WriteString(6, field_names[8], TypeName);
+ }
+ if (hasDefaultValue) {
+ output.WriteString(7, field_names[0], DefaultValue);
+ }
+ if (hasOptions) {
+ output.WriteMessage(8, field_names[6], Options);
+ }
+ if (hasOneofIndex) {
+ output.WriteInt32(9, field_names[5], OneofIndex);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ if (hasNumber) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Number);
+ }
+ if (hasLabel) {
+ size += pb::CodedOutputStream.ComputeEnumSize(4, (int) Label);
+ }
+ if (hasType) {
+ size += pb::CodedOutputStream.ComputeEnumSize(5, (int) Type);
+ }
+ if (hasTypeName) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, TypeName);
+ }
+ if (hasExtendee) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, Extendee);
+ }
+ if (hasDefaultValue) {
+ size += pb::CodedOutputStream.ComputeStringSize(7, DefaultValue);
+ }
+ if (hasOneofIndex) {
+ size += pb::CodedOutputStream.ComputeInt32Size(9, OneofIndex);
+ }
+ if (hasOptions) {
+ size += pb::CodedOutputStream.ComputeMessageSize(8, Options);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FieldDescriptorProto ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FieldDescriptorProto ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FieldDescriptorProto ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FieldDescriptorProto ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FieldDescriptorProto ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FieldDescriptorProto ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FieldDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FieldDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FieldDescriptorProto ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FieldDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FieldDescriptorProto MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FieldDescriptorProto prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FieldDescriptorProto, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FieldDescriptorProto cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FieldDescriptorProto result;
+
+ private FieldDescriptorProto PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FieldDescriptorProto original = result;
+ result = new FieldDescriptorProto();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FieldDescriptorProto MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Descriptor; }
+ }
+
+ public override FieldDescriptorProto DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.DefaultInstance; }
+ }
+
+ public override FieldDescriptorProto BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FieldDescriptorProto) {
+ return MergeFrom((FieldDescriptorProto) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FieldDescriptorProto other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ if (other.HasLabel) {
+ Label = other.Label;
+ }
+ if (other.HasType) {
+ Type = other.Type;
+ }
+ if (other.HasTypeName) {
+ TypeName = other.TypeName;
+ }
+ if (other.HasExtendee) {
+ Extendee = other.Extendee;
+ }
+ if (other.HasDefaultValue) {
+ DefaultValue = other.DefaultValue;
+ }
+ if (other.HasOneofIndex) {
+ OneofIndex = other.OneofIndex;
+ }
+ if (other.HasOptions) {
+ MergeOptions(other.Options);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fieldDescriptorProtoFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fieldDescriptorProtoFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 18: {
+ result.hasExtendee = input.ReadString(ref result.extendee_);
+ break;
+ }
+ case 24: {
+ result.hasNumber = input.ReadInt32(ref result.number_);
+ break;
+ }
+ case 32: {
+ object unknown;
+ if(input.ReadEnum(ref result.label_, out unknown)) {
+ result.hasLabel = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(4, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 40: {
+ object unknown;
+ if(input.ReadEnum(ref result.type_, out unknown)) {
+ result.hasType = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(5, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 50: {
+ result.hasTypeName = input.ReadString(ref result.typeName_);
+ break;
+ }
+ case 58: {
+ result.hasDefaultValue = input.ReadString(ref result.defaultValue_);
+ break;
+ }
+ case 66: {
+ global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.CreateBuilder();
+ if (result.hasOptions) {
+ subBuilder.MergeFrom(Options);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Options = subBuilder.BuildPartial();
+ break;
+ }
+ case 72: {
+ result.hasOneofIndex = input.ReadInt32(ref result.oneofIndex_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public int Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(int value) {
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = 0;
+ return this;
+ }
+
+ public bool HasLabel {
+ get { return result.hasLabel; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Label Label {
+ get { return result.Label; }
+ set { SetLabel(value); }
+ }
+ public Builder SetLabel(global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Label value) {
+ PrepareBuilder();
+ result.hasLabel = true;
+ result.label_ = value;
+ return this;
+ }
+ public Builder ClearLabel() {
+ PrepareBuilder();
+ result.hasLabel = false;
+ result.label_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Label.LABEL_OPTIONAL;
+ return this;
+ }
+
+ public bool HasType {
+ get { return result.hasType; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Type Type {
+ get { return result.Type; }
+ set { SetType(value); }
+ }
+ public Builder SetType(global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Type value) {
+ PrepareBuilder();
+ result.hasType = true;
+ result.type_ = value;
+ return this;
+ }
+ public Builder ClearType() {
+ PrepareBuilder();
+ result.hasType = false;
+ result.type_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldDescriptorProto.Types.Type.TYPE_DOUBLE;
+ return this;
+ }
+
+ public bool HasTypeName {
+ get { return result.hasTypeName; }
+ }
+ public string TypeName {
+ get { return result.TypeName; }
+ set { SetTypeName(value); }
+ }
+ public Builder SetTypeName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasTypeName = true;
+ result.typeName_ = value;
+ return this;
+ }
+ public Builder ClearTypeName() {
+ PrepareBuilder();
+ result.hasTypeName = false;
+ result.typeName_ = "";
+ return this;
+ }
+
+ public bool HasExtendee {
+ get { return result.hasExtendee; }
+ }
+ public string Extendee {
+ get { return result.Extendee; }
+ set { SetExtendee(value); }
+ }
+ public Builder SetExtendee(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasExtendee = true;
+ result.extendee_ = value;
+ return this;
+ }
+ public Builder ClearExtendee() {
+ PrepareBuilder();
+ result.hasExtendee = false;
+ result.extendee_ = "";
+ return this;
+ }
+
+ public bool HasDefaultValue {
+ get { return result.hasDefaultValue; }
+ }
+ public string DefaultValue {
+ get { return result.DefaultValue; }
+ set { SetDefaultValue(value); }
+ }
+ public Builder SetDefaultValue(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultValue = true;
+ result.defaultValue_ = value;
+ return this;
+ }
+ public Builder ClearDefaultValue() {
+ PrepareBuilder();
+ result.hasDefaultValue = false;
+ result.defaultValue_ = "";
+ return this;
+ }
+
+ public bool HasOneofIndex {
+ get { return result.hasOneofIndex; }
+ }
+ public int OneofIndex {
+ get { return result.OneofIndex; }
+ set { SetOneofIndex(value); }
+ }
+ public Builder SetOneofIndex(int value) {
+ PrepareBuilder();
+ result.hasOneofIndex = true;
+ result.oneofIndex_ = value;
+ return this;
+ }
+ public Builder ClearOneofIndex() {
+ PrepareBuilder();
+ result.hasOneofIndex = false;
+ result.oneofIndex_ = 0;
+ return this;
+ }
+
+ public bool HasOptions {
+ get { return result.hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions Options {
+ get { return result.Options; }
+ set { SetOptions(value); }
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = value;
+ return this;
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptions &&
+ result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.DefaultInstance) {
+ result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();
+ } else {
+ result.options_ = value;
+ }
+ result.hasOptions = true;
+ return this;
+ }
+ public Builder ClearOptions() {
+ PrepareBuilder();
+ result.hasOptions = false;
+ result.options_ = null;
+ return this;
+ }
+ }
+ static FieldDescriptorProto() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OneofDescriptorProto : pb::GeneratedMessage<OneofDescriptorProto, OneofDescriptorProto.Builder> {
+ private OneofDescriptorProto() { }
+ private static readonly OneofDescriptorProto defaultInstance = new OneofDescriptorProto().MakeReadOnly();
+ private static readonly string[] _oneofDescriptorProtoFieldNames = new string[] { "name" };
+ private static readonly uint[] _oneofDescriptorProtoFieldTags = new uint[] { 10 };
+ public static OneofDescriptorProto DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneofDescriptorProto DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OneofDescriptorProto ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_OneofDescriptorProto__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneofDescriptorProto, OneofDescriptorProto.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_OneofDescriptorProto__FieldAccessorTable; }
+ }
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _oneofDescriptorProtoFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[0], Name);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OneofDescriptorProto ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneofDescriptorProto ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneofDescriptorProto ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneofDescriptorProto ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneofDescriptorProto ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneofDescriptorProto ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneofDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneofDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneofDescriptorProto ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneofDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OneofDescriptorProto MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneofDescriptorProto prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OneofDescriptorProto, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OneofDescriptorProto cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OneofDescriptorProto result;
+
+ private OneofDescriptorProto PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OneofDescriptorProto original = result;
+ result = new OneofDescriptorProto();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OneofDescriptorProto MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto.Descriptor; }
+ }
+
+ public override OneofDescriptorProto DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto.DefaultInstance; }
+ }
+
+ public override OneofDescriptorProto BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneofDescriptorProto) {
+ return MergeFrom((OneofDescriptorProto) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneofDescriptorProto other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.OneofDescriptorProto.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_oneofDescriptorProtoFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _oneofDescriptorProtoFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+ }
+ static OneofDescriptorProto() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class EnumDescriptorProto : pb::GeneratedMessage<EnumDescriptorProto, EnumDescriptorProto.Builder> {
+ private EnumDescriptorProto() { }
+ private static readonly EnumDescriptorProto defaultInstance = new EnumDescriptorProto().MakeReadOnly();
+ private static readonly string[] _enumDescriptorProtoFieldNames = new string[] { "name", "options", "value" };
+ private static readonly uint[] _enumDescriptorProtoFieldTags = new uint[] { 10, 26, 18 };
+ public static EnumDescriptorProto DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override EnumDescriptorProto DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override EnumDescriptorProto ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumDescriptorProto__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<EnumDescriptorProto, EnumDescriptorProto.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumDescriptorProto__FieldAccessorTable; }
+ }
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int ValueFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto> value_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto> ValueList {
+ get { return value_; }
+ }
+ public int ValueCount {
+ get { return value_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto GetValue(int index) {
+ return value_[index];
+ }
+
+ public const int OptionsFieldNumber = 3;
+ private bool hasOptions;
+ private global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions options_;
+ public bool HasOptions {
+ get { return hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions Options {
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto element in ValueList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (HasOptions) {
+ if (!Options.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _enumDescriptorProtoFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[0], Name);
+ }
+ if (value_.Count > 0) {
+ output.WriteMessageArray(2, field_names[2], value_);
+ }
+ if (hasOptions) {
+ output.WriteMessage(3, field_names[1], Options);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto element in ValueList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ if (hasOptions) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, Options);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static EnumDescriptorProto ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnumDescriptorProto ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnumDescriptorProto ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnumDescriptorProto ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnumDescriptorProto ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnumDescriptorProto ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static EnumDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static EnumDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static EnumDescriptorProto ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnumDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private EnumDescriptorProto MakeReadOnly() {
+ value_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(EnumDescriptorProto prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<EnumDescriptorProto, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(EnumDescriptorProto cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private EnumDescriptorProto result;
+
+ private EnumDescriptorProto PrepareBuilder() {
+ if (resultIsReadOnly) {
+ EnumDescriptorProto original = result;
+ result = new EnumDescriptorProto();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override EnumDescriptorProto MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.Descriptor; }
+ }
+
+ public override EnumDescriptorProto DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.DefaultInstance; }
+ }
+
+ public override EnumDescriptorProto BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is EnumDescriptorProto) {
+ return MergeFrom((EnumDescriptorProto) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(EnumDescriptorProto other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.EnumDescriptorProto.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.value_.Count != 0) {
+ result.value_.Add(other.value_);
+ }
+ if (other.HasOptions) {
+ MergeOptions(other.Options);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_enumDescriptorProtoFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _enumDescriptorProtoFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.value_, global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.CreateBuilder();
+ if (result.hasOptions) {
+ subBuilder.MergeFrom(Options);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Options = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto> ValueList {
+ get { return PrepareBuilder().value_; }
+ }
+ public int ValueCount {
+ get { return result.ValueCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto GetValue(int index) {
+ return result.GetValue(index);
+ }
+ public Builder SetValue(int index, global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.value_[index] = value;
+ return this;
+ }
+ public Builder SetValue(int index, global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.value_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddValue(global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.value_.Add(value);
+ return this;
+ }
+ public Builder AddValue(global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.value_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeValue(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto> values) {
+ PrepareBuilder();
+ result.value_.Add(values);
+ return this;
+ }
+ public Builder ClearValue() {
+ PrepareBuilder();
+ result.value_.Clear();
+ return this;
+ }
+
+ public bool HasOptions {
+ get { return result.hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions Options {
+ get { return result.Options; }
+ set { SetOptions(value); }
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = value;
+ return this;
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptions &&
+ result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.DefaultInstance) {
+ result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();
+ } else {
+ result.options_ = value;
+ }
+ result.hasOptions = true;
+ return this;
+ }
+ public Builder ClearOptions() {
+ PrepareBuilder();
+ result.hasOptions = false;
+ result.options_ = null;
+ return this;
+ }
+ }
+ static EnumDescriptorProto() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class EnumValueDescriptorProto : pb::GeneratedMessage<EnumValueDescriptorProto, EnumValueDescriptorProto.Builder> {
+ private EnumValueDescriptorProto() { }
+ private static readonly EnumValueDescriptorProto defaultInstance = new EnumValueDescriptorProto().MakeReadOnly();
+ private static readonly string[] _enumValueDescriptorProtoFieldNames = new string[] { "name", "number", "options" };
+ private static readonly uint[] _enumValueDescriptorProtoFieldTags = new uint[] { 10, 16, 26 };
+ public static EnumValueDescriptorProto DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override EnumValueDescriptorProto DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override EnumValueDescriptorProto ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumValueDescriptorProto__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<EnumValueDescriptorProto, EnumValueDescriptorProto.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumValueDescriptorProto__FieldAccessorTable; }
+ }
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int NumberFieldNumber = 2;
+ private bool hasNumber;
+ private int number_;
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public int Number {
+ get { return number_; }
+ }
+
+ public const int OptionsFieldNumber = 3;
+ private bool hasOptions;
+ private global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions options_;
+ public bool HasOptions {
+ get { return hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions Options {
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasOptions) {
+ if (!Options.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _enumValueDescriptorProtoFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[0], Name);
+ }
+ if (hasNumber) {
+ output.WriteInt32(2, field_names[1], Number);
+ }
+ if (hasOptions) {
+ output.WriteMessage(3, field_names[2], Options);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ if (hasNumber) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Number);
+ }
+ if (hasOptions) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, Options);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static EnumValueDescriptorProto ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnumValueDescriptorProto ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnumValueDescriptorProto ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnumValueDescriptorProto ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnumValueDescriptorProto ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnumValueDescriptorProto ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static EnumValueDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static EnumValueDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static EnumValueDescriptorProto ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnumValueDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private EnumValueDescriptorProto MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(EnumValueDescriptorProto prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<EnumValueDescriptorProto, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(EnumValueDescriptorProto cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private EnumValueDescriptorProto result;
+
+ private EnumValueDescriptorProto PrepareBuilder() {
+ if (resultIsReadOnly) {
+ EnumValueDescriptorProto original = result;
+ result = new EnumValueDescriptorProto();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override EnumValueDescriptorProto MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto.Descriptor; }
+ }
+
+ public override EnumValueDescriptorProto DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto.DefaultInstance; }
+ }
+
+ public override EnumValueDescriptorProto BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is EnumValueDescriptorProto) {
+ return MergeFrom((EnumValueDescriptorProto) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(EnumValueDescriptorProto other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.EnumValueDescriptorProto.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ if (other.HasOptions) {
+ MergeOptions(other.Options);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_enumValueDescriptorProtoFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _enumValueDescriptorProtoFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 16: {
+ result.hasNumber = input.ReadInt32(ref result.number_);
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.CreateBuilder();
+ if (result.hasOptions) {
+ subBuilder.MergeFrom(Options);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Options = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public int Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(int value) {
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = 0;
+ return this;
+ }
+
+ public bool HasOptions {
+ get { return result.hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions Options {
+ get { return result.Options; }
+ set { SetOptions(value); }
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = value;
+ return this;
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptions &&
+ result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.DefaultInstance) {
+ result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();
+ } else {
+ result.options_ = value;
+ }
+ result.hasOptions = true;
+ return this;
+ }
+ public Builder ClearOptions() {
+ PrepareBuilder();
+ result.hasOptions = false;
+ result.options_ = null;
+ return this;
+ }
+ }
+ static EnumValueDescriptorProto() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ServiceDescriptorProto : pb::GeneratedMessage<ServiceDescriptorProto, ServiceDescriptorProto.Builder> {
+ private ServiceDescriptorProto() { }
+ private static readonly ServiceDescriptorProto defaultInstance = new ServiceDescriptorProto().MakeReadOnly();
+ private static readonly string[] _serviceDescriptorProtoFieldNames = new string[] { "method", "name", "options" };
+ private static readonly uint[] _serviceDescriptorProtoFieldTags = new uint[] { 18, 10, 26 };
+ public static ServiceDescriptorProto DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ServiceDescriptorProto DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ServiceDescriptorProto ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_ServiceDescriptorProto__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ServiceDescriptorProto, ServiceDescriptorProto.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_ServiceDescriptorProto__FieldAccessorTable; }
+ }
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int MethodFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto> method_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto> MethodList {
+ get { return method_; }
+ }
+ public int MethodCount {
+ get { return method_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto GetMethod(int index) {
+ return method_[index];
+ }
+
+ public const int OptionsFieldNumber = 3;
+ private bool hasOptions;
+ private global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions options_;
+ public bool HasOptions {
+ get { return hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions Options {
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto element in MethodList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (HasOptions) {
+ if (!Options.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _serviceDescriptorProtoFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[1], Name);
+ }
+ if (method_.Count > 0) {
+ output.WriteMessageArray(2, field_names[0], method_);
+ }
+ if (hasOptions) {
+ output.WriteMessage(3, field_names[2], Options);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto element in MethodList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ if (hasOptions) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, Options);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ServiceDescriptorProto ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ServiceDescriptorProto ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ServiceDescriptorProto ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ServiceDescriptorProto ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ServiceDescriptorProto ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ServiceDescriptorProto ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ServiceDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ServiceDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ServiceDescriptorProto ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ServiceDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ServiceDescriptorProto MakeReadOnly() {
+ method_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ServiceDescriptorProto prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ServiceDescriptorProto, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ServiceDescriptorProto cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ServiceDescriptorProto result;
+
+ private ServiceDescriptorProto PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ServiceDescriptorProto original = result;
+ result = new ServiceDescriptorProto();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ServiceDescriptorProto MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto.Descriptor; }
+ }
+
+ public override ServiceDescriptorProto DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto.DefaultInstance; }
+ }
+
+ public override ServiceDescriptorProto BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ServiceDescriptorProto) {
+ return MergeFrom((ServiceDescriptorProto) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ServiceDescriptorProto other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.ServiceDescriptorProto.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.method_.Count != 0) {
+ result.method_.Add(other.method_);
+ }
+ if (other.HasOptions) {
+ MergeOptions(other.Options);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_serviceDescriptorProtoFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _serviceDescriptorProtoFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.method_, global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.CreateBuilder();
+ if (result.hasOptions) {
+ subBuilder.MergeFrom(Options);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Options = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto> MethodList {
+ get { return PrepareBuilder().method_; }
+ }
+ public int MethodCount {
+ get { return result.MethodCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto GetMethod(int index) {
+ return result.GetMethod(index);
+ }
+ public Builder SetMethod(int index, global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.method_[index] = value;
+ return this;
+ }
+ public Builder SetMethod(int index, global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.method_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddMethod(global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.method_.Add(value);
+ return this;
+ }
+ public Builder AddMethod(global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.method_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeMethod(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto> values) {
+ PrepareBuilder();
+ result.method_.Add(values);
+ return this;
+ }
+ public Builder ClearMethod() {
+ PrepareBuilder();
+ result.method_.Clear();
+ return this;
+ }
+
+ public bool HasOptions {
+ get { return result.hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions Options {
+ get { return result.Options; }
+ set { SetOptions(value); }
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = value;
+ return this;
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptions &&
+ result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.DefaultInstance) {
+ result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();
+ } else {
+ result.options_ = value;
+ }
+ result.hasOptions = true;
+ return this;
+ }
+ public Builder ClearOptions() {
+ PrepareBuilder();
+ result.hasOptions = false;
+ result.options_ = null;
+ return this;
+ }
+ }
+ static ServiceDescriptorProto() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MethodDescriptorProto : pb::GeneratedMessage<MethodDescriptorProto, MethodDescriptorProto.Builder> {
+ private MethodDescriptorProto() { }
+ private static readonly MethodDescriptorProto defaultInstance = new MethodDescriptorProto().MakeReadOnly();
+ private static readonly string[] _methodDescriptorProtoFieldNames = new string[] { "client_streaming", "input_type", "name", "options", "output_type", "server_streaming" };
+ private static readonly uint[] _methodDescriptorProtoFieldTags = new uint[] { 40, 18, 10, 34, 26, 48 };
+ public static MethodDescriptorProto DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MethodDescriptorProto DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MethodDescriptorProto ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MethodDescriptorProto__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MethodDescriptorProto, MethodDescriptorProto.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MethodDescriptorProto__FieldAccessorTable; }
+ }
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int InputTypeFieldNumber = 2;
+ private bool hasInputType;
+ private string inputType_ = "";
+ public bool HasInputType {
+ get { return hasInputType; }
+ }
+ public string InputType {
+ get { return inputType_; }
+ }
+
+ public const int OutputTypeFieldNumber = 3;
+ private bool hasOutputType;
+ private string outputType_ = "";
+ public bool HasOutputType {
+ get { return hasOutputType; }
+ }
+ public string OutputType {
+ get { return outputType_; }
+ }
+
+ public const int OptionsFieldNumber = 4;
+ private bool hasOptions;
+ private global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions options_;
+ public bool HasOptions {
+ get { return hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions Options {
+ get { return options_ ?? global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.DefaultInstance; }
+ }
+
+ public const int ClientStreamingFieldNumber = 5;
+ private bool hasClientStreaming;
+ private bool clientStreaming_;
+ public bool HasClientStreaming {
+ get { return hasClientStreaming; }
+ }
+ public bool ClientStreaming {
+ get { return clientStreaming_; }
+ }
+
+ public const int ServerStreamingFieldNumber = 6;
+ private bool hasServerStreaming;
+ private bool serverStreaming_;
+ public bool HasServerStreaming {
+ get { return hasServerStreaming; }
+ }
+ public bool ServerStreaming {
+ get { return serverStreaming_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasOptions) {
+ if (!Options.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _methodDescriptorProtoFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[2], Name);
+ }
+ if (hasInputType) {
+ output.WriteString(2, field_names[1], InputType);
+ }
+ if (hasOutputType) {
+ output.WriteString(3, field_names[4], OutputType);
+ }
+ if (hasOptions) {
+ output.WriteMessage(4, field_names[3], Options);
+ }
+ if (hasClientStreaming) {
+ output.WriteBool(5, field_names[0], ClientStreaming);
+ }
+ if (hasServerStreaming) {
+ output.WriteBool(6, field_names[5], ServerStreaming);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ if (hasInputType) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, InputType);
+ }
+ if (hasOutputType) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, OutputType);
+ }
+ if (hasOptions) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, Options);
+ }
+ if (hasClientStreaming) {
+ size += pb::CodedOutputStream.ComputeBoolSize(5, ClientStreaming);
+ }
+ if (hasServerStreaming) {
+ size += pb::CodedOutputStream.ComputeBoolSize(6, ServerStreaming);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MethodDescriptorProto ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MethodDescriptorProto ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MethodDescriptorProto ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MethodDescriptorProto ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MethodDescriptorProto ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MethodDescriptorProto ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MethodDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MethodDescriptorProto ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MethodDescriptorProto ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MethodDescriptorProto ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MethodDescriptorProto MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MethodDescriptorProto prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<MethodDescriptorProto, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MethodDescriptorProto cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MethodDescriptorProto result;
+
+ private MethodDescriptorProto PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MethodDescriptorProto original = result;
+ result = new MethodDescriptorProto();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MethodDescriptorProto MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto.Descriptor; }
+ }
+
+ public override MethodDescriptorProto DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto.DefaultInstance; }
+ }
+
+ public override MethodDescriptorProto BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MethodDescriptorProto) {
+ return MergeFrom((MethodDescriptorProto) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MethodDescriptorProto other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.MethodDescriptorProto.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.HasInputType) {
+ InputType = other.InputType;
+ }
+ if (other.HasOutputType) {
+ OutputType = other.OutputType;
+ }
+ if (other.HasOptions) {
+ MergeOptions(other.Options);
+ }
+ if (other.HasClientStreaming) {
+ ClientStreaming = other.ClientStreaming;
+ }
+ if (other.HasServerStreaming) {
+ ServerStreaming = other.ServerStreaming;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_methodDescriptorProtoFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _methodDescriptorProtoFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 18: {
+ result.hasInputType = input.ReadString(ref result.inputType_);
+ break;
+ }
+ case 26: {
+ result.hasOutputType = input.ReadString(ref result.outputType_);
+ break;
+ }
+ case 34: {
+ global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.CreateBuilder();
+ if (result.hasOptions) {
+ subBuilder.MergeFrom(Options);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Options = subBuilder.BuildPartial();
+ break;
+ }
+ case 40: {
+ result.hasClientStreaming = input.ReadBool(ref result.clientStreaming_);
+ break;
+ }
+ case 48: {
+ result.hasServerStreaming = input.ReadBool(ref result.serverStreaming_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasInputType {
+ get { return result.hasInputType; }
+ }
+ public string InputType {
+ get { return result.InputType; }
+ set { SetInputType(value); }
+ }
+ public Builder SetInputType(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasInputType = true;
+ result.inputType_ = value;
+ return this;
+ }
+ public Builder ClearInputType() {
+ PrepareBuilder();
+ result.hasInputType = false;
+ result.inputType_ = "";
+ return this;
+ }
+
+ public bool HasOutputType {
+ get { return result.hasOutputType; }
+ }
+ public string OutputType {
+ get { return result.OutputType; }
+ set { SetOutputType(value); }
+ }
+ public Builder SetOutputType(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOutputType = true;
+ result.outputType_ = value;
+ return this;
+ }
+ public Builder ClearOutputType() {
+ PrepareBuilder();
+ result.hasOutputType = false;
+ result.outputType_ = "";
+ return this;
+ }
+
+ public bool HasOptions {
+ get { return result.hasOptions; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions Options {
+ get { return result.Options; }
+ set { SetOptions(value); }
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = value;
+ return this;
+ }
+ public Builder SetOptions(global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptions = true;
+ result.options_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptions(global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptions &&
+ result.options_ != global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.DefaultInstance) {
+ result.options_ = global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.CreateBuilder(result.options_).MergeFrom(value).BuildPartial();
+ } else {
+ result.options_ = value;
+ }
+ result.hasOptions = true;
+ return this;
+ }
+ public Builder ClearOptions() {
+ PrepareBuilder();
+ result.hasOptions = false;
+ result.options_ = null;
+ return this;
+ }
+
+ public bool HasClientStreaming {
+ get { return result.hasClientStreaming; }
+ }
+ public bool ClientStreaming {
+ get { return result.ClientStreaming; }
+ set { SetClientStreaming(value); }
+ }
+ public Builder SetClientStreaming(bool value) {
+ PrepareBuilder();
+ result.hasClientStreaming = true;
+ result.clientStreaming_ = value;
+ return this;
+ }
+ public Builder ClearClientStreaming() {
+ PrepareBuilder();
+ result.hasClientStreaming = false;
+ result.clientStreaming_ = false;
+ return this;
+ }
+
+ public bool HasServerStreaming {
+ get { return result.hasServerStreaming; }
+ }
+ public bool ServerStreaming {
+ get { return result.ServerStreaming; }
+ set { SetServerStreaming(value); }
+ }
+ public Builder SetServerStreaming(bool value) {
+ PrepareBuilder();
+ result.hasServerStreaming = true;
+ result.serverStreaming_ = value;
+ return this;
+ }
+ public Builder ClearServerStreaming() {
+ PrepareBuilder();
+ result.hasServerStreaming = false;
+ result.serverStreaming_ = false;
+ return this;
+ }
+ }
+ static MethodDescriptorProto() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FileOptions : pb::ExtendableMessage<FileOptions, FileOptions.Builder> {
+ private FileOptions() { }
+ private static readonly FileOptions defaultInstance = new FileOptions().MakeReadOnly();
+ private static readonly string[] _fileOptionsFieldNames = new string[] { "cc_enable_arenas", "cc_generic_services", "csharp_namespace", "deprecated", "go_package", "java_generate_equals_and_hash", "java_generic_services", "java_multiple_files", "java_outer_classname", "java_package", "java_string_check_utf8", "objc_class_prefix", "optimize_for", "py_generic_services", "uninterpreted_option" };
+ private static readonly uint[] _fileOptionsFieldTags = new uint[] { 248, 128, 298, 184, 90, 160, 136, 80, 66, 10, 216, 290, 72, 144, 7994 };
+ public static FileOptions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FileOptions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FileOptions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileOptions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FileOptions, FileOptions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FileOptions__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum OptimizeMode {
+ SPEED = 1,
+ CODE_SIZE = 2,
+ LITE_RUNTIME = 3,
+ }
+
+ }
+ #endregion
+
+ public const int JavaPackageFieldNumber = 1;
+ private bool hasJavaPackage;
+ private string javaPackage_ = "";
+ public bool HasJavaPackage {
+ get { return hasJavaPackage; }
+ }
+ public string JavaPackage {
+ get { return javaPackage_; }
+ }
+
+ public const int JavaOuterClassnameFieldNumber = 8;
+ private bool hasJavaOuterClassname;
+ private string javaOuterClassname_ = "";
+ public bool HasJavaOuterClassname {
+ get { return hasJavaOuterClassname; }
+ }
+ public string JavaOuterClassname {
+ get { return javaOuterClassname_; }
+ }
+
+ public const int JavaMultipleFilesFieldNumber = 10;
+ private bool hasJavaMultipleFiles;
+ private bool javaMultipleFiles_;
+ public bool HasJavaMultipleFiles {
+ get { return hasJavaMultipleFiles; }
+ }
+ public bool JavaMultipleFiles {
+ get { return javaMultipleFiles_; }
+ }
+
+ public const int JavaGenerateEqualsAndHashFieldNumber = 20;
+ private bool hasJavaGenerateEqualsAndHash;
+ private bool javaGenerateEqualsAndHash_;
+ public bool HasJavaGenerateEqualsAndHash {
+ get { return hasJavaGenerateEqualsAndHash; }
+ }
+ public bool JavaGenerateEqualsAndHash {
+ get { return javaGenerateEqualsAndHash_; }
+ }
+
+ public const int JavaStringCheckUtf8FieldNumber = 27;
+ private bool hasJavaStringCheckUtf8;
+ private bool javaStringCheckUtf8_;
+ public bool HasJavaStringCheckUtf8 {
+ get { return hasJavaStringCheckUtf8; }
+ }
+ public bool JavaStringCheckUtf8 {
+ get { return javaStringCheckUtf8_; }
+ }
+
+ public const int OptimizeForFieldNumber = 9;
+ private bool hasOptimizeFor;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode optimizeFor_ = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode.SPEED;
+ public bool HasOptimizeFor {
+ get { return hasOptimizeFor; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode OptimizeFor {
+ get { return optimizeFor_; }
+ }
+
+ public const int GoPackageFieldNumber = 11;
+ private bool hasGoPackage;
+ private string goPackage_ = "";
+ public bool HasGoPackage {
+ get { return hasGoPackage; }
+ }
+ public string GoPackage {
+ get { return goPackage_; }
+ }
+
+ public const int CcGenericServicesFieldNumber = 16;
+ private bool hasCcGenericServices;
+ private bool ccGenericServices_;
+ public bool HasCcGenericServices {
+ get { return hasCcGenericServices; }
+ }
+ public bool CcGenericServices {
+ get { return ccGenericServices_; }
+ }
+
+ public const int JavaGenericServicesFieldNumber = 17;
+ private bool hasJavaGenericServices;
+ private bool javaGenericServices_;
+ public bool HasJavaGenericServices {
+ get { return hasJavaGenericServices; }
+ }
+ public bool JavaGenericServices {
+ get { return javaGenericServices_; }
+ }
+
+ public const int PyGenericServicesFieldNumber = 18;
+ private bool hasPyGenericServices;
+ private bool pyGenericServices_;
+ public bool HasPyGenericServices {
+ get { return hasPyGenericServices; }
+ }
+ public bool PyGenericServices {
+ get { return pyGenericServices_; }
+ }
+
+ public const int DeprecatedFieldNumber = 23;
+ private bool hasDeprecated;
+ private bool deprecated_;
+ public bool HasDeprecated {
+ get { return hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return deprecated_; }
+ }
+
+ public const int CcEnableArenasFieldNumber = 31;
+ private bool hasCcEnableArenas;
+ private bool ccEnableArenas_;
+ public bool HasCcEnableArenas {
+ get { return hasCcEnableArenas; }
+ }
+ public bool CcEnableArenas {
+ get { return ccEnableArenas_; }
+ }
+
+ public const int ObjcClassPrefixFieldNumber = 36;
+ private bool hasObjcClassPrefix;
+ private string objcClassPrefix_ = "";
+ public bool HasObjcClassPrefix {
+ get { return hasObjcClassPrefix; }
+ }
+ public string ObjcClassPrefix {
+ get { return objcClassPrefix_; }
+ }
+
+ public const int CsharpNamespaceFieldNumber = 37;
+ private bool hasCsharpNamespace;
+ private string csharpNamespace_ = "";
+ public bool HasCsharpNamespace {
+ get { return hasCsharpNamespace; }
+ }
+ public string CsharpNamespace {
+ get { return csharpNamespace_; }
+ }
+
+ public const int UninterpretedOptionFieldNumber = 999;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return uninterpretedOption_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return uninterpretedOption_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fileOptionsFieldNames;
+ pb::ExtendableMessage<FileOptions, FileOptions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasJavaPackage) {
+ output.WriteString(1, field_names[9], JavaPackage);
+ }
+ if (hasJavaOuterClassname) {
+ output.WriteString(8, field_names[8], JavaOuterClassname);
+ }
+ if (hasOptimizeFor) {
+ output.WriteEnum(9, field_names[12], (int) OptimizeFor, OptimizeFor);
+ }
+ if (hasJavaMultipleFiles) {
+ output.WriteBool(10, field_names[7], JavaMultipleFiles);
+ }
+ if (hasGoPackage) {
+ output.WriteString(11, field_names[4], GoPackage);
+ }
+ if (hasCcGenericServices) {
+ output.WriteBool(16, field_names[1], CcGenericServices);
+ }
+ if (hasJavaGenericServices) {
+ output.WriteBool(17, field_names[6], JavaGenericServices);
+ }
+ if (hasPyGenericServices) {
+ output.WriteBool(18, field_names[13], PyGenericServices);
+ }
+ if (hasJavaGenerateEqualsAndHash) {
+ output.WriteBool(20, field_names[5], JavaGenerateEqualsAndHash);
+ }
+ if (hasDeprecated) {
+ output.WriteBool(23, field_names[3], Deprecated);
+ }
+ if (hasJavaStringCheckUtf8) {
+ output.WriteBool(27, field_names[10], JavaStringCheckUtf8);
+ }
+ if (hasCcEnableArenas) {
+ output.WriteBool(31, field_names[0], CcEnableArenas);
+ }
+ if (hasObjcClassPrefix) {
+ output.WriteString(36, field_names[11], ObjcClassPrefix);
+ }
+ if (hasCsharpNamespace) {
+ output.WriteString(37, field_names[2], CsharpNamespace);
+ }
+ if (uninterpretedOption_.Count > 0) {
+ output.WriteMessageArray(999, field_names[14], uninterpretedOption_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasJavaPackage) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, JavaPackage);
+ }
+ if (hasJavaOuterClassname) {
+ size += pb::CodedOutputStream.ComputeStringSize(8, JavaOuterClassname);
+ }
+ if (hasJavaMultipleFiles) {
+ size += pb::CodedOutputStream.ComputeBoolSize(10, JavaMultipleFiles);
+ }
+ if (hasJavaGenerateEqualsAndHash) {
+ size += pb::CodedOutputStream.ComputeBoolSize(20, JavaGenerateEqualsAndHash);
+ }
+ if (hasJavaStringCheckUtf8) {
+ size += pb::CodedOutputStream.ComputeBoolSize(27, JavaStringCheckUtf8);
+ }
+ if (hasOptimizeFor) {
+ size += pb::CodedOutputStream.ComputeEnumSize(9, (int) OptimizeFor);
+ }
+ if (hasGoPackage) {
+ size += pb::CodedOutputStream.ComputeStringSize(11, GoPackage);
+ }
+ if (hasCcGenericServices) {
+ size += pb::CodedOutputStream.ComputeBoolSize(16, CcGenericServices);
+ }
+ if (hasJavaGenericServices) {
+ size += pb::CodedOutputStream.ComputeBoolSize(17, JavaGenericServices);
+ }
+ if (hasPyGenericServices) {
+ size += pb::CodedOutputStream.ComputeBoolSize(18, PyGenericServices);
+ }
+ if (hasDeprecated) {
+ size += pb::CodedOutputStream.ComputeBoolSize(23, Deprecated);
+ }
+ if (hasCcEnableArenas) {
+ size += pb::CodedOutputStream.ComputeBoolSize(31, CcEnableArenas);
+ }
+ if (hasObjcClassPrefix) {
+ size += pb::CodedOutputStream.ComputeStringSize(36, ObjcClassPrefix);
+ }
+ if (hasCsharpNamespace) {
+ size += pb::CodedOutputStream.ComputeStringSize(37, CsharpNamespace);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(999, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FileOptions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FileOptions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FileOptions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FileOptions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FileOptions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FileOptions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FileOptions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FileOptions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FileOptions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FileOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FileOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FileOptions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<FileOptions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FileOptions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FileOptions result;
+
+ private FileOptions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FileOptions original = result;
+ result = new FileOptions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FileOptions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Descriptor; }
+ }
+
+ public override FileOptions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance; }
+ }
+
+ public override FileOptions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FileOptions) {
+ return MergeFrom((FileOptions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FileOptions other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasJavaPackage) {
+ JavaPackage = other.JavaPackage;
+ }
+ if (other.HasJavaOuterClassname) {
+ JavaOuterClassname = other.JavaOuterClassname;
+ }
+ if (other.HasJavaMultipleFiles) {
+ JavaMultipleFiles = other.JavaMultipleFiles;
+ }
+ if (other.HasJavaGenerateEqualsAndHash) {
+ JavaGenerateEqualsAndHash = other.JavaGenerateEqualsAndHash;
+ }
+ if (other.HasJavaStringCheckUtf8) {
+ JavaStringCheckUtf8 = other.JavaStringCheckUtf8;
+ }
+ if (other.HasOptimizeFor) {
+ OptimizeFor = other.OptimizeFor;
+ }
+ if (other.HasGoPackage) {
+ GoPackage = other.GoPackage;
+ }
+ if (other.HasCcGenericServices) {
+ CcGenericServices = other.CcGenericServices;
+ }
+ if (other.HasJavaGenericServices) {
+ JavaGenericServices = other.JavaGenericServices;
+ }
+ if (other.HasPyGenericServices) {
+ PyGenericServices = other.PyGenericServices;
+ }
+ if (other.HasDeprecated) {
+ Deprecated = other.Deprecated;
+ }
+ if (other.HasCcEnableArenas) {
+ CcEnableArenas = other.CcEnableArenas;
+ }
+ if (other.HasObjcClassPrefix) {
+ ObjcClassPrefix = other.ObjcClassPrefix;
+ }
+ if (other.HasCsharpNamespace) {
+ CsharpNamespace = other.CsharpNamespace;
+ }
+ if (other.uninterpretedOption_.Count != 0) {
+ result.uninterpretedOption_.Add(other.uninterpretedOption_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fileOptionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fileOptionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasJavaPackage = input.ReadString(ref result.javaPackage_);
+ break;
+ }
+ case 66: {
+ result.hasJavaOuterClassname = input.ReadString(ref result.javaOuterClassname_);
+ break;
+ }
+ case 72: {
+ object unknown;
+ if(input.ReadEnum(ref result.optimizeFor_, out unknown)) {
+ result.hasOptimizeFor = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(9, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 80: {
+ result.hasJavaMultipleFiles = input.ReadBool(ref result.javaMultipleFiles_);
+ break;
+ }
+ case 90: {
+ result.hasGoPackage = input.ReadString(ref result.goPackage_);
+ break;
+ }
+ case 128: {
+ result.hasCcGenericServices = input.ReadBool(ref result.ccGenericServices_);
+ break;
+ }
+ case 136: {
+ result.hasJavaGenericServices = input.ReadBool(ref result.javaGenericServices_);
+ break;
+ }
+ case 144: {
+ result.hasPyGenericServices = input.ReadBool(ref result.pyGenericServices_);
+ break;
+ }
+ case 160: {
+ result.hasJavaGenerateEqualsAndHash = input.ReadBool(ref result.javaGenerateEqualsAndHash_);
+ break;
+ }
+ case 184: {
+ result.hasDeprecated = input.ReadBool(ref result.deprecated_);
+ break;
+ }
+ case 216: {
+ result.hasJavaStringCheckUtf8 = input.ReadBool(ref result.javaStringCheckUtf8_);
+ break;
+ }
+ case 248: {
+ result.hasCcEnableArenas = input.ReadBool(ref result.ccEnableArenas_);
+ break;
+ }
+ case 290: {
+ result.hasObjcClassPrefix = input.ReadString(ref result.objcClassPrefix_);
+ break;
+ }
+ case 298: {
+ result.hasCsharpNamespace = input.ReadString(ref result.csharpNamespace_);
+ break;
+ }
+ case 7994: {
+ input.ReadMessageArray(tag, field_name, result.uninterpretedOption_, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasJavaPackage {
+ get { return result.hasJavaPackage; }
+ }
+ public string JavaPackage {
+ get { return result.JavaPackage; }
+ set { SetJavaPackage(value); }
+ }
+ public Builder SetJavaPackage(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasJavaPackage = true;
+ result.javaPackage_ = value;
+ return this;
+ }
+ public Builder ClearJavaPackage() {
+ PrepareBuilder();
+ result.hasJavaPackage = false;
+ result.javaPackage_ = "";
+ return this;
+ }
+
+ public bool HasJavaOuterClassname {
+ get { return result.hasJavaOuterClassname; }
+ }
+ public string JavaOuterClassname {
+ get { return result.JavaOuterClassname; }
+ set { SetJavaOuterClassname(value); }
+ }
+ public Builder SetJavaOuterClassname(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasJavaOuterClassname = true;
+ result.javaOuterClassname_ = value;
+ return this;
+ }
+ public Builder ClearJavaOuterClassname() {
+ PrepareBuilder();
+ result.hasJavaOuterClassname = false;
+ result.javaOuterClassname_ = "";
+ return this;
+ }
+
+ public bool HasJavaMultipleFiles {
+ get { return result.hasJavaMultipleFiles; }
+ }
+ public bool JavaMultipleFiles {
+ get { return result.JavaMultipleFiles; }
+ set { SetJavaMultipleFiles(value); }
+ }
+ public Builder SetJavaMultipleFiles(bool value) {
+ PrepareBuilder();
+ result.hasJavaMultipleFiles = true;
+ result.javaMultipleFiles_ = value;
+ return this;
+ }
+ public Builder ClearJavaMultipleFiles() {
+ PrepareBuilder();
+ result.hasJavaMultipleFiles = false;
+ result.javaMultipleFiles_ = false;
+ return this;
+ }
+
+ public bool HasJavaGenerateEqualsAndHash {
+ get { return result.hasJavaGenerateEqualsAndHash; }
+ }
+ public bool JavaGenerateEqualsAndHash {
+ get { return result.JavaGenerateEqualsAndHash; }
+ set { SetJavaGenerateEqualsAndHash(value); }
+ }
+ public Builder SetJavaGenerateEqualsAndHash(bool value) {
+ PrepareBuilder();
+ result.hasJavaGenerateEqualsAndHash = true;
+ result.javaGenerateEqualsAndHash_ = value;
+ return this;
+ }
+ public Builder ClearJavaGenerateEqualsAndHash() {
+ PrepareBuilder();
+ result.hasJavaGenerateEqualsAndHash = false;
+ result.javaGenerateEqualsAndHash_ = false;
+ return this;
+ }
+
+ public bool HasJavaStringCheckUtf8 {
+ get { return result.hasJavaStringCheckUtf8; }
+ }
+ public bool JavaStringCheckUtf8 {
+ get { return result.JavaStringCheckUtf8; }
+ set { SetJavaStringCheckUtf8(value); }
+ }
+ public Builder SetJavaStringCheckUtf8(bool value) {
+ PrepareBuilder();
+ result.hasJavaStringCheckUtf8 = true;
+ result.javaStringCheckUtf8_ = value;
+ return this;
+ }
+ public Builder ClearJavaStringCheckUtf8() {
+ PrepareBuilder();
+ result.hasJavaStringCheckUtf8 = false;
+ result.javaStringCheckUtf8_ = false;
+ return this;
+ }
+
+ public bool HasOptimizeFor {
+ get { return result.hasOptimizeFor; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode OptimizeFor {
+ get { return result.OptimizeFor; }
+ set { SetOptimizeFor(value); }
+ }
+ public Builder SetOptimizeFor(global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode value) {
+ PrepareBuilder();
+ result.hasOptimizeFor = true;
+ result.optimizeFor_ = value;
+ return this;
+ }
+ public Builder ClearOptimizeFor() {
+ PrepareBuilder();
+ result.hasOptimizeFor = false;
+ result.optimizeFor_ = global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode.SPEED;
+ return this;
+ }
+
+ public bool HasGoPackage {
+ get { return result.hasGoPackage; }
+ }
+ public string GoPackage {
+ get { return result.GoPackage; }
+ set { SetGoPackage(value); }
+ }
+ public Builder SetGoPackage(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasGoPackage = true;
+ result.goPackage_ = value;
+ return this;
+ }
+ public Builder ClearGoPackage() {
+ PrepareBuilder();
+ result.hasGoPackage = false;
+ result.goPackage_ = "";
+ return this;
+ }
+
+ public bool HasCcGenericServices {
+ get { return result.hasCcGenericServices; }
+ }
+ public bool CcGenericServices {
+ get { return result.CcGenericServices; }
+ set { SetCcGenericServices(value); }
+ }
+ public Builder SetCcGenericServices(bool value) {
+ PrepareBuilder();
+ result.hasCcGenericServices = true;
+ result.ccGenericServices_ = value;
+ return this;
+ }
+ public Builder ClearCcGenericServices() {
+ PrepareBuilder();
+ result.hasCcGenericServices = false;
+ result.ccGenericServices_ = false;
+ return this;
+ }
+
+ public bool HasJavaGenericServices {
+ get { return result.hasJavaGenericServices; }
+ }
+ public bool JavaGenericServices {
+ get { return result.JavaGenericServices; }
+ set { SetJavaGenericServices(value); }
+ }
+ public Builder SetJavaGenericServices(bool value) {
+ PrepareBuilder();
+ result.hasJavaGenericServices = true;
+ result.javaGenericServices_ = value;
+ return this;
+ }
+ public Builder ClearJavaGenericServices() {
+ PrepareBuilder();
+ result.hasJavaGenericServices = false;
+ result.javaGenericServices_ = false;
+ return this;
+ }
+
+ public bool HasPyGenericServices {
+ get { return result.hasPyGenericServices; }
+ }
+ public bool PyGenericServices {
+ get { return result.PyGenericServices; }
+ set { SetPyGenericServices(value); }
+ }
+ public Builder SetPyGenericServices(bool value) {
+ PrepareBuilder();
+ result.hasPyGenericServices = true;
+ result.pyGenericServices_ = value;
+ return this;
+ }
+ public Builder ClearPyGenericServices() {
+ PrepareBuilder();
+ result.hasPyGenericServices = false;
+ result.pyGenericServices_ = false;
+ return this;
+ }
+
+ public bool HasDeprecated {
+ get { return result.hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return result.Deprecated; }
+ set { SetDeprecated(value); }
+ }
+ public Builder SetDeprecated(bool value) {
+ PrepareBuilder();
+ result.hasDeprecated = true;
+ result.deprecated_ = value;
+ return this;
+ }
+ public Builder ClearDeprecated() {
+ PrepareBuilder();
+ result.hasDeprecated = false;
+ result.deprecated_ = false;
+ return this;
+ }
+
+ public bool HasCcEnableArenas {
+ get { return result.hasCcEnableArenas; }
+ }
+ public bool CcEnableArenas {
+ get { return result.CcEnableArenas; }
+ set { SetCcEnableArenas(value); }
+ }
+ public Builder SetCcEnableArenas(bool value) {
+ PrepareBuilder();
+ result.hasCcEnableArenas = true;
+ result.ccEnableArenas_ = value;
+ return this;
+ }
+ public Builder ClearCcEnableArenas() {
+ PrepareBuilder();
+ result.hasCcEnableArenas = false;
+ result.ccEnableArenas_ = false;
+ return this;
+ }
+
+ public bool HasObjcClassPrefix {
+ get { return result.hasObjcClassPrefix; }
+ }
+ public string ObjcClassPrefix {
+ get { return result.ObjcClassPrefix; }
+ set { SetObjcClassPrefix(value); }
+ }
+ public Builder SetObjcClassPrefix(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasObjcClassPrefix = true;
+ result.objcClassPrefix_ = value;
+ return this;
+ }
+ public Builder ClearObjcClassPrefix() {
+ PrepareBuilder();
+ result.hasObjcClassPrefix = false;
+ result.objcClassPrefix_ = "";
+ return this;
+ }
+
+ public bool HasCsharpNamespace {
+ get { return result.hasCsharpNamespace; }
+ }
+ public string CsharpNamespace {
+ get { return result.CsharpNamespace; }
+ set { SetCsharpNamespace(value); }
+ }
+ public Builder SetCsharpNamespace(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCsharpNamespace = true;
+ result.csharpNamespace_ = value;
+ return this;
+ }
+ public Builder ClearCsharpNamespace() {
+ PrepareBuilder();
+ result.hasCsharpNamespace = false;
+ result.csharpNamespace_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return PrepareBuilder().uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return result.UninterpretedOptionCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return result.GetUninterpretedOption(index);
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = value;
+ return this;
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(value);
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeUninterpretedOption(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> values) {
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(values);
+ return this;
+ }
+ public Builder ClearUninterpretedOption() {
+ PrepareBuilder();
+ result.uninterpretedOption_.Clear();
+ return this;
+ }
+ }
+ static FileOptions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MessageOptions : pb::ExtendableMessage<MessageOptions, MessageOptions.Builder> {
+ private MessageOptions() { }
+ private static readonly MessageOptions defaultInstance = new MessageOptions().MakeReadOnly();
+ private static readonly string[] _messageOptionsFieldNames = new string[] { "deprecated", "map_entry", "message_set_wire_format", "no_standard_descriptor_accessor", "uninterpreted_option" };
+ private static readonly uint[] _messageOptionsFieldTags = new uint[] { 24, 56, 8, 16, 7994 };
+ public static MessageOptions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MessageOptions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MessageOptions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MessageOptions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MessageOptions, MessageOptions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MessageOptions__FieldAccessorTable; }
+ }
+
+ public const int MessageSetWireFormatFieldNumber = 1;
+ private bool hasMessageSetWireFormat;
+ private bool messageSetWireFormat_;
+ public bool HasMessageSetWireFormat {
+ get { return hasMessageSetWireFormat; }
+ }
+ public bool MessageSetWireFormat {
+ get { return messageSetWireFormat_; }
+ }
+
+ public const int NoStandardDescriptorAccessorFieldNumber = 2;
+ private bool hasNoStandardDescriptorAccessor;
+ private bool noStandardDescriptorAccessor_;
+ public bool HasNoStandardDescriptorAccessor {
+ get { return hasNoStandardDescriptorAccessor; }
+ }
+ public bool NoStandardDescriptorAccessor {
+ get { return noStandardDescriptorAccessor_; }
+ }
+
+ public const int DeprecatedFieldNumber = 3;
+ private bool hasDeprecated;
+ private bool deprecated_;
+ public bool HasDeprecated {
+ get { return hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return deprecated_; }
+ }
+
+ public const int MapEntryFieldNumber = 7;
+ private bool hasMapEntry;
+ private bool mapEntry_;
+ public bool HasMapEntry {
+ get { return hasMapEntry; }
+ }
+ public bool MapEntry {
+ get { return mapEntry_; }
+ }
+
+ public const int UninterpretedOptionFieldNumber = 999;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return uninterpretedOption_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return uninterpretedOption_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _messageOptionsFieldNames;
+ pb::ExtendableMessage<MessageOptions, MessageOptions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasMessageSetWireFormat) {
+ output.WriteBool(1, field_names[2], MessageSetWireFormat);
+ }
+ if (hasNoStandardDescriptorAccessor) {
+ output.WriteBool(2, field_names[3], NoStandardDescriptorAccessor);
+ }
+ if (hasDeprecated) {
+ output.WriteBool(3, field_names[0], Deprecated);
+ }
+ if (hasMapEntry) {
+ output.WriteBool(7, field_names[1], MapEntry);
+ }
+ if (uninterpretedOption_.Count > 0) {
+ output.WriteMessageArray(999, field_names[4], uninterpretedOption_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMessageSetWireFormat) {
+ size += pb::CodedOutputStream.ComputeBoolSize(1, MessageSetWireFormat);
+ }
+ if (hasNoStandardDescriptorAccessor) {
+ size += pb::CodedOutputStream.ComputeBoolSize(2, NoStandardDescriptorAccessor);
+ }
+ if (hasDeprecated) {
+ size += pb::CodedOutputStream.ComputeBoolSize(3, Deprecated);
+ }
+ if (hasMapEntry) {
+ size += pb::CodedOutputStream.ComputeBoolSize(7, MapEntry);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(999, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MessageOptions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MessageOptions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MessageOptions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MessageOptions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MessageOptions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MessageOptions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MessageOptions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MessageOptions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MessageOptions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MessageOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MessageOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MessageOptions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<MessageOptions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MessageOptions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MessageOptions result;
+
+ private MessageOptions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MessageOptions original = result;
+ result = new MessageOptions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MessageOptions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.Descriptor; }
+ }
+
+ public override MessageOptions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.DefaultInstance; }
+ }
+
+ public override MessageOptions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MessageOptions) {
+ return MergeFrom((MessageOptions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MessageOptions other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasMessageSetWireFormat) {
+ MessageSetWireFormat = other.MessageSetWireFormat;
+ }
+ if (other.HasNoStandardDescriptorAccessor) {
+ NoStandardDescriptorAccessor = other.NoStandardDescriptorAccessor;
+ }
+ if (other.HasDeprecated) {
+ Deprecated = other.Deprecated;
+ }
+ if (other.HasMapEntry) {
+ MapEntry = other.MapEntry;
+ }
+ if (other.uninterpretedOption_.Count != 0) {
+ result.uninterpretedOption_.Add(other.uninterpretedOption_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_messageOptionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _messageOptionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasMessageSetWireFormat = input.ReadBool(ref result.messageSetWireFormat_);
+ break;
+ }
+ case 16: {
+ result.hasNoStandardDescriptorAccessor = input.ReadBool(ref result.noStandardDescriptorAccessor_);
+ break;
+ }
+ case 24: {
+ result.hasDeprecated = input.ReadBool(ref result.deprecated_);
+ break;
+ }
+ case 56: {
+ result.hasMapEntry = input.ReadBool(ref result.mapEntry_);
+ break;
+ }
+ case 7994: {
+ input.ReadMessageArray(tag, field_name, result.uninterpretedOption_, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasMessageSetWireFormat {
+ get { return result.hasMessageSetWireFormat; }
+ }
+ public bool MessageSetWireFormat {
+ get { return result.MessageSetWireFormat; }
+ set { SetMessageSetWireFormat(value); }
+ }
+ public Builder SetMessageSetWireFormat(bool value) {
+ PrepareBuilder();
+ result.hasMessageSetWireFormat = true;
+ result.messageSetWireFormat_ = value;
+ return this;
+ }
+ public Builder ClearMessageSetWireFormat() {
+ PrepareBuilder();
+ result.hasMessageSetWireFormat = false;
+ result.messageSetWireFormat_ = false;
+ return this;
+ }
+
+ public bool HasNoStandardDescriptorAccessor {
+ get { return result.hasNoStandardDescriptorAccessor; }
+ }
+ public bool NoStandardDescriptorAccessor {
+ get { return result.NoStandardDescriptorAccessor; }
+ set { SetNoStandardDescriptorAccessor(value); }
+ }
+ public Builder SetNoStandardDescriptorAccessor(bool value) {
+ PrepareBuilder();
+ result.hasNoStandardDescriptorAccessor = true;
+ result.noStandardDescriptorAccessor_ = value;
+ return this;
+ }
+ public Builder ClearNoStandardDescriptorAccessor() {
+ PrepareBuilder();
+ result.hasNoStandardDescriptorAccessor = false;
+ result.noStandardDescriptorAccessor_ = false;
+ return this;
+ }
+
+ public bool HasDeprecated {
+ get { return result.hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return result.Deprecated; }
+ set { SetDeprecated(value); }
+ }
+ public Builder SetDeprecated(bool value) {
+ PrepareBuilder();
+ result.hasDeprecated = true;
+ result.deprecated_ = value;
+ return this;
+ }
+ public Builder ClearDeprecated() {
+ PrepareBuilder();
+ result.hasDeprecated = false;
+ result.deprecated_ = false;
+ return this;
+ }
+
+ public bool HasMapEntry {
+ get { return result.hasMapEntry; }
+ }
+ public bool MapEntry {
+ get { return result.MapEntry; }
+ set { SetMapEntry(value); }
+ }
+ public Builder SetMapEntry(bool value) {
+ PrepareBuilder();
+ result.hasMapEntry = true;
+ result.mapEntry_ = value;
+ return this;
+ }
+ public Builder ClearMapEntry() {
+ PrepareBuilder();
+ result.hasMapEntry = false;
+ result.mapEntry_ = false;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return PrepareBuilder().uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return result.UninterpretedOptionCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return result.GetUninterpretedOption(index);
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = value;
+ return this;
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(value);
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeUninterpretedOption(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> values) {
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(values);
+ return this;
+ }
+ public Builder ClearUninterpretedOption() {
+ PrepareBuilder();
+ result.uninterpretedOption_.Clear();
+ return this;
+ }
+ }
+ static MessageOptions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FieldOptions : pb::ExtendableMessage<FieldOptions, FieldOptions.Builder> {
+ private FieldOptions() { }
+ private static readonly FieldOptions defaultInstance = new FieldOptions().MakeReadOnly();
+ private static readonly string[] _fieldOptionsFieldNames = new string[] { "ctype", "deprecated", "jstype", "lazy", "packed", "uninterpreted_option", "weak" };
+ private static readonly uint[] _fieldOptionsFieldTags = new uint[] { 8, 24, 48, 40, 16, 7994, 80 };
+ public static FieldOptions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FieldOptions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FieldOptions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FieldOptions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FieldOptions, FieldOptions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_FieldOptions__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum CType {
+ STRING = 0,
+ CORD = 1,
+ STRING_PIECE = 2,
+ }
+
+ public enum JSType {
+ JS_NORMAL = 0,
+ JS_STRING = 1,
+ JS_NUMBER = 2,
+ }
+
+ }
+ #endregion
+
+ public const int CtypeFieldNumber = 1;
+ private bool hasCtype;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType ctype_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType.STRING;
+ public bool HasCtype {
+ get { return hasCtype; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType Ctype {
+ get { return ctype_; }
+ }
+
+ public const int PackedFieldNumber = 2;
+ private bool hasPacked;
+ private bool packed_;
+ public bool HasPacked {
+ get { return hasPacked; }
+ }
+ public bool Packed {
+ get { return packed_; }
+ }
+
+ public const int JstypeFieldNumber = 6;
+ private bool hasJstype;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.JSType jstype_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.JSType.JS_NORMAL;
+ public bool HasJstype {
+ get { return hasJstype; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.JSType Jstype {
+ get { return jstype_; }
+ }
+
+ public const int LazyFieldNumber = 5;
+ private bool hasLazy;
+ private bool lazy_;
+ public bool HasLazy {
+ get { return hasLazy; }
+ }
+ public bool Lazy {
+ get { return lazy_; }
+ }
+
+ public const int DeprecatedFieldNumber = 3;
+ private bool hasDeprecated;
+ private bool deprecated_;
+ public bool HasDeprecated {
+ get { return hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return deprecated_; }
+ }
+
+ public const int WeakFieldNumber = 10;
+ private bool hasWeak;
+ private bool weak_;
+ public bool HasWeak {
+ get { return hasWeak; }
+ }
+ public bool Weak {
+ get { return weak_; }
+ }
+
+ public const int UninterpretedOptionFieldNumber = 999;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return uninterpretedOption_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return uninterpretedOption_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fieldOptionsFieldNames;
+ pb::ExtendableMessage<FieldOptions, FieldOptions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasCtype) {
+ output.WriteEnum(1, field_names[0], (int) Ctype, Ctype);
+ }
+ if (hasPacked) {
+ output.WriteBool(2, field_names[4], Packed);
+ }
+ if (hasDeprecated) {
+ output.WriteBool(3, field_names[1], Deprecated);
+ }
+ if (hasLazy) {
+ output.WriteBool(5, field_names[3], Lazy);
+ }
+ if (hasJstype) {
+ output.WriteEnum(6, field_names[2], (int) Jstype, Jstype);
+ }
+ if (hasWeak) {
+ output.WriteBool(10, field_names[6], Weak);
+ }
+ if (uninterpretedOption_.Count > 0) {
+ output.WriteMessageArray(999, field_names[5], uninterpretedOption_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasCtype) {
+ size += pb::CodedOutputStream.ComputeEnumSize(1, (int) Ctype);
+ }
+ if (hasPacked) {
+ size += pb::CodedOutputStream.ComputeBoolSize(2, Packed);
+ }
+ if (hasJstype) {
+ size += pb::CodedOutputStream.ComputeEnumSize(6, (int) Jstype);
+ }
+ if (hasLazy) {
+ size += pb::CodedOutputStream.ComputeBoolSize(5, Lazy);
+ }
+ if (hasDeprecated) {
+ size += pb::CodedOutputStream.ComputeBoolSize(3, Deprecated);
+ }
+ if (hasWeak) {
+ size += pb::CodedOutputStream.ComputeBoolSize(10, Weak);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(999, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FieldOptions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FieldOptions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FieldOptions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FieldOptions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FieldOptions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FieldOptions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FieldOptions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FieldOptions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FieldOptions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FieldOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FieldOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FieldOptions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<FieldOptions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FieldOptions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FieldOptions result;
+
+ private FieldOptions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FieldOptions original = result;
+ result = new FieldOptions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FieldOptions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Descriptor; }
+ }
+
+ public override FieldOptions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.DefaultInstance; }
+ }
+
+ public override FieldOptions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FieldOptions) {
+ return MergeFrom((FieldOptions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FieldOptions other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasCtype) {
+ Ctype = other.Ctype;
+ }
+ if (other.HasPacked) {
+ Packed = other.Packed;
+ }
+ if (other.HasJstype) {
+ Jstype = other.Jstype;
+ }
+ if (other.HasLazy) {
+ Lazy = other.Lazy;
+ }
+ if (other.HasDeprecated) {
+ Deprecated = other.Deprecated;
+ }
+ if (other.HasWeak) {
+ Weak = other.Weak;
+ }
+ if (other.uninterpretedOption_.Count != 0) {
+ result.uninterpretedOption_.Add(other.uninterpretedOption_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fieldOptionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fieldOptionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ object unknown;
+ if(input.ReadEnum(ref result.ctype_, out unknown)) {
+ result.hasCtype = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(1, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 16: {
+ result.hasPacked = input.ReadBool(ref result.packed_);
+ break;
+ }
+ case 24: {
+ result.hasDeprecated = input.ReadBool(ref result.deprecated_);
+ break;
+ }
+ case 40: {
+ result.hasLazy = input.ReadBool(ref result.lazy_);
+ break;
+ }
+ case 48: {
+ object unknown;
+ if(input.ReadEnum(ref result.jstype_, out unknown)) {
+ result.hasJstype = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(6, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 80: {
+ result.hasWeak = input.ReadBool(ref result.weak_);
+ break;
+ }
+ case 7994: {
+ input.ReadMessageArray(tag, field_name, result.uninterpretedOption_, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasCtype {
+ get { return result.hasCtype; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType Ctype {
+ get { return result.Ctype; }
+ set { SetCtype(value); }
+ }
+ public Builder SetCtype(global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType value) {
+ PrepareBuilder();
+ result.hasCtype = true;
+ result.ctype_ = value;
+ return this;
+ }
+ public Builder ClearCtype() {
+ PrepareBuilder();
+ result.hasCtype = false;
+ result.ctype_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType.STRING;
+ return this;
+ }
+
+ public bool HasPacked {
+ get { return result.hasPacked; }
+ }
+ public bool Packed {
+ get { return result.Packed; }
+ set { SetPacked(value); }
+ }
+ public Builder SetPacked(bool value) {
+ PrepareBuilder();
+ result.hasPacked = true;
+ result.packed_ = value;
+ return this;
+ }
+ public Builder ClearPacked() {
+ PrepareBuilder();
+ result.hasPacked = false;
+ result.packed_ = false;
+ return this;
+ }
+
+ public bool HasJstype {
+ get { return result.hasJstype; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.JSType Jstype {
+ get { return result.Jstype; }
+ set { SetJstype(value); }
+ }
+ public Builder SetJstype(global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.JSType value) {
+ PrepareBuilder();
+ result.hasJstype = true;
+ result.jstype_ = value;
+ return this;
+ }
+ public Builder ClearJstype() {
+ PrepareBuilder();
+ result.hasJstype = false;
+ result.jstype_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.JSType.JS_NORMAL;
+ return this;
+ }
+
+ public bool HasLazy {
+ get { return result.hasLazy; }
+ }
+ public bool Lazy {
+ get { return result.Lazy; }
+ set { SetLazy(value); }
+ }
+ public Builder SetLazy(bool value) {
+ PrepareBuilder();
+ result.hasLazy = true;
+ result.lazy_ = value;
+ return this;
+ }
+ public Builder ClearLazy() {
+ PrepareBuilder();
+ result.hasLazy = false;
+ result.lazy_ = false;
+ return this;
+ }
+
+ public bool HasDeprecated {
+ get { return result.hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return result.Deprecated; }
+ set { SetDeprecated(value); }
+ }
+ public Builder SetDeprecated(bool value) {
+ PrepareBuilder();
+ result.hasDeprecated = true;
+ result.deprecated_ = value;
+ return this;
+ }
+ public Builder ClearDeprecated() {
+ PrepareBuilder();
+ result.hasDeprecated = false;
+ result.deprecated_ = false;
+ return this;
+ }
+
+ public bool HasWeak {
+ get { return result.hasWeak; }
+ }
+ public bool Weak {
+ get { return result.Weak; }
+ set { SetWeak(value); }
+ }
+ public Builder SetWeak(bool value) {
+ PrepareBuilder();
+ result.hasWeak = true;
+ result.weak_ = value;
+ return this;
+ }
+ public Builder ClearWeak() {
+ PrepareBuilder();
+ result.hasWeak = false;
+ result.weak_ = false;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return PrepareBuilder().uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return result.UninterpretedOptionCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return result.GetUninterpretedOption(index);
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = value;
+ return this;
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(value);
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeUninterpretedOption(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> values) {
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(values);
+ return this;
+ }
+ public Builder ClearUninterpretedOption() {
+ PrepareBuilder();
+ result.uninterpretedOption_.Clear();
+ return this;
+ }
+ }
+ static FieldOptions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class EnumOptions : pb::ExtendableMessage<EnumOptions, EnumOptions.Builder> {
+ private EnumOptions() { }
+ private static readonly EnumOptions defaultInstance = new EnumOptions().MakeReadOnly();
+ private static readonly string[] _enumOptionsFieldNames = new string[] { "allow_alias", "deprecated", "uninterpreted_option" };
+ private static readonly uint[] _enumOptionsFieldTags = new uint[] { 16, 24, 7994 };
+ public static EnumOptions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override EnumOptions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override EnumOptions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumOptions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<EnumOptions, EnumOptions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumOptions__FieldAccessorTable; }
+ }
+
+ public const int AllowAliasFieldNumber = 2;
+ private bool hasAllowAlias;
+ private bool allowAlias_;
+ public bool HasAllowAlias {
+ get { return hasAllowAlias; }
+ }
+ public bool AllowAlias {
+ get { return allowAlias_; }
+ }
+
+ public const int DeprecatedFieldNumber = 3;
+ private bool hasDeprecated;
+ private bool deprecated_;
+ public bool HasDeprecated {
+ get { return hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return deprecated_; }
+ }
+
+ public const int UninterpretedOptionFieldNumber = 999;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return uninterpretedOption_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return uninterpretedOption_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _enumOptionsFieldNames;
+ pb::ExtendableMessage<EnumOptions, EnumOptions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasAllowAlias) {
+ output.WriteBool(2, field_names[0], AllowAlias);
+ }
+ if (hasDeprecated) {
+ output.WriteBool(3, field_names[1], Deprecated);
+ }
+ if (uninterpretedOption_.Count > 0) {
+ output.WriteMessageArray(999, field_names[2], uninterpretedOption_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasAllowAlias) {
+ size += pb::CodedOutputStream.ComputeBoolSize(2, AllowAlias);
+ }
+ if (hasDeprecated) {
+ size += pb::CodedOutputStream.ComputeBoolSize(3, Deprecated);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(999, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static EnumOptions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnumOptions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnumOptions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnumOptions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnumOptions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnumOptions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static EnumOptions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static EnumOptions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static EnumOptions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnumOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private EnumOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(EnumOptions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<EnumOptions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(EnumOptions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private EnumOptions result;
+
+ private EnumOptions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ EnumOptions original = result;
+ result = new EnumOptions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override EnumOptions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.Descriptor; }
+ }
+
+ public override EnumOptions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.DefaultInstance; }
+ }
+
+ public override EnumOptions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is EnumOptions) {
+ return MergeFrom((EnumOptions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(EnumOptions other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.EnumOptions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasAllowAlias) {
+ AllowAlias = other.AllowAlias;
+ }
+ if (other.HasDeprecated) {
+ Deprecated = other.Deprecated;
+ }
+ if (other.uninterpretedOption_.Count != 0) {
+ result.uninterpretedOption_.Add(other.uninterpretedOption_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_enumOptionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _enumOptionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 16: {
+ result.hasAllowAlias = input.ReadBool(ref result.allowAlias_);
+ break;
+ }
+ case 24: {
+ result.hasDeprecated = input.ReadBool(ref result.deprecated_);
+ break;
+ }
+ case 7994: {
+ input.ReadMessageArray(tag, field_name, result.uninterpretedOption_, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasAllowAlias {
+ get { return result.hasAllowAlias; }
+ }
+ public bool AllowAlias {
+ get { return result.AllowAlias; }
+ set { SetAllowAlias(value); }
+ }
+ public Builder SetAllowAlias(bool value) {
+ PrepareBuilder();
+ result.hasAllowAlias = true;
+ result.allowAlias_ = value;
+ return this;
+ }
+ public Builder ClearAllowAlias() {
+ PrepareBuilder();
+ result.hasAllowAlias = false;
+ result.allowAlias_ = false;
+ return this;
+ }
+
+ public bool HasDeprecated {
+ get { return result.hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return result.Deprecated; }
+ set { SetDeprecated(value); }
+ }
+ public Builder SetDeprecated(bool value) {
+ PrepareBuilder();
+ result.hasDeprecated = true;
+ result.deprecated_ = value;
+ return this;
+ }
+ public Builder ClearDeprecated() {
+ PrepareBuilder();
+ result.hasDeprecated = false;
+ result.deprecated_ = false;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return PrepareBuilder().uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return result.UninterpretedOptionCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return result.GetUninterpretedOption(index);
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = value;
+ return this;
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(value);
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeUninterpretedOption(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> values) {
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(values);
+ return this;
+ }
+ public Builder ClearUninterpretedOption() {
+ PrepareBuilder();
+ result.uninterpretedOption_.Clear();
+ return this;
+ }
+ }
+ static EnumOptions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class EnumValueOptions : pb::ExtendableMessage<EnumValueOptions, EnumValueOptions.Builder> {
+ private EnumValueOptions() { }
+ private static readonly EnumValueOptions defaultInstance = new EnumValueOptions().MakeReadOnly();
+ private static readonly string[] _enumValueOptionsFieldNames = new string[] { "deprecated", "uninterpreted_option" };
+ private static readonly uint[] _enumValueOptionsFieldTags = new uint[] { 8, 7994 };
+ public static EnumValueOptions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override EnumValueOptions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override EnumValueOptions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumValueOptions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<EnumValueOptions, EnumValueOptions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_EnumValueOptions__FieldAccessorTable; }
+ }
+
+ public const int DeprecatedFieldNumber = 1;
+ private bool hasDeprecated;
+ private bool deprecated_;
+ public bool HasDeprecated {
+ get { return hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return deprecated_; }
+ }
+
+ public const int UninterpretedOptionFieldNumber = 999;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return uninterpretedOption_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return uninterpretedOption_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _enumValueOptionsFieldNames;
+ pb::ExtendableMessage<EnumValueOptions, EnumValueOptions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasDeprecated) {
+ output.WriteBool(1, field_names[0], Deprecated);
+ }
+ if (uninterpretedOption_.Count > 0) {
+ output.WriteMessageArray(999, field_names[1], uninterpretedOption_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasDeprecated) {
+ size += pb::CodedOutputStream.ComputeBoolSize(1, Deprecated);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(999, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static EnumValueOptions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnumValueOptions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnumValueOptions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static EnumValueOptions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static EnumValueOptions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnumValueOptions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static EnumValueOptions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static EnumValueOptions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static EnumValueOptions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static EnumValueOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private EnumValueOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(EnumValueOptions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<EnumValueOptions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(EnumValueOptions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private EnumValueOptions result;
+
+ private EnumValueOptions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ EnumValueOptions original = result;
+ result = new EnumValueOptions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override EnumValueOptions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.Descriptor; }
+ }
+
+ public override EnumValueOptions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.DefaultInstance; }
+ }
+
+ public override EnumValueOptions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is EnumValueOptions) {
+ return MergeFrom((EnumValueOptions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(EnumValueOptions other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.EnumValueOptions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasDeprecated) {
+ Deprecated = other.Deprecated;
+ }
+ if (other.uninterpretedOption_.Count != 0) {
+ result.uninterpretedOption_.Add(other.uninterpretedOption_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_enumValueOptionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _enumValueOptionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasDeprecated = input.ReadBool(ref result.deprecated_);
+ break;
+ }
+ case 7994: {
+ input.ReadMessageArray(tag, field_name, result.uninterpretedOption_, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasDeprecated {
+ get { return result.hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return result.Deprecated; }
+ set { SetDeprecated(value); }
+ }
+ public Builder SetDeprecated(bool value) {
+ PrepareBuilder();
+ result.hasDeprecated = true;
+ result.deprecated_ = value;
+ return this;
+ }
+ public Builder ClearDeprecated() {
+ PrepareBuilder();
+ result.hasDeprecated = false;
+ result.deprecated_ = false;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return PrepareBuilder().uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return result.UninterpretedOptionCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return result.GetUninterpretedOption(index);
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = value;
+ return this;
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(value);
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeUninterpretedOption(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> values) {
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(values);
+ return this;
+ }
+ public Builder ClearUninterpretedOption() {
+ PrepareBuilder();
+ result.uninterpretedOption_.Clear();
+ return this;
+ }
+ }
+ static EnumValueOptions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ServiceOptions : pb::ExtendableMessage<ServiceOptions, ServiceOptions.Builder> {
+ private ServiceOptions() { }
+ private static readonly ServiceOptions defaultInstance = new ServiceOptions().MakeReadOnly();
+ private static readonly string[] _serviceOptionsFieldNames = new string[] { "deprecated", "uninterpreted_option" };
+ private static readonly uint[] _serviceOptionsFieldTags = new uint[] { 264, 7994 };
+ public static ServiceOptions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ServiceOptions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ServiceOptions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_ServiceOptions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ServiceOptions, ServiceOptions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_ServiceOptions__FieldAccessorTable; }
+ }
+
+ public const int DeprecatedFieldNumber = 33;
+ private bool hasDeprecated;
+ private bool deprecated_;
+ public bool HasDeprecated {
+ get { return hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return deprecated_; }
+ }
+
+ public const int UninterpretedOptionFieldNumber = 999;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return uninterpretedOption_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return uninterpretedOption_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _serviceOptionsFieldNames;
+ pb::ExtendableMessage<ServiceOptions, ServiceOptions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasDeprecated) {
+ output.WriteBool(33, field_names[0], Deprecated);
+ }
+ if (uninterpretedOption_.Count > 0) {
+ output.WriteMessageArray(999, field_names[1], uninterpretedOption_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasDeprecated) {
+ size += pb::CodedOutputStream.ComputeBoolSize(33, Deprecated);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(999, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ServiceOptions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ServiceOptions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ServiceOptions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ServiceOptions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ServiceOptions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ServiceOptions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ServiceOptions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ServiceOptions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ServiceOptions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ServiceOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ServiceOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ServiceOptions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<ServiceOptions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ServiceOptions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ServiceOptions result;
+
+ private ServiceOptions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ServiceOptions original = result;
+ result = new ServiceOptions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ServiceOptions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.Descriptor; }
+ }
+
+ public override ServiceOptions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.DefaultInstance; }
+ }
+
+ public override ServiceOptions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ServiceOptions) {
+ return MergeFrom((ServiceOptions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ServiceOptions other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.ServiceOptions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasDeprecated) {
+ Deprecated = other.Deprecated;
+ }
+ if (other.uninterpretedOption_.Count != 0) {
+ result.uninterpretedOption_.Add(other.uninterpretedOption_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_serviceOptionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _serviceOptionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 264: {
+ result.hasDeprecated = input.ReadBool(ref result.deprecated_);
+ break;
+ }
+ case 7994: {
+ input.ReadMessageArray(tag, field_name, result.uninterpretedOption_, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasDeprecated {
+ get { return result.hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return result.Deprecated; }
+ set { SetDeprecated(value); }
+ }
+ public Builder SetDeprecated(bool value) {
+ PrepareBuilder();
+ result.hasDeprecated = true;
+ result.deprecated_ = value;
+ return this;
+ }
+ public Builder ClearDeprecated() {
+ PrepareBuilder();
+ result.hasDeprecated = false;
+ result.deprecated_ = false;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return PrepareBuilder().uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return result.UninterpretedOptionCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return result.GetUninterpretedOption(index);
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = value;
+ return this;
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(value);
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeUninterpretedOption(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> values) {
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(values);
+ return this;
+ }
+ public Builder ClearUninterpretedOption() {
+ PrepareBuilder();
+ result.uninterpretedOption_.Clear();
+ return this;
+ }
+ }
+ static ServiceOptions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MethodOptions : pb::ExtendableMessage<MethodOptions, MethodOptions.Builder> {
+ private MethodOptions() { }
+ private static readonly MethodOptions defaultInstance = new MethodOptions().MakeReadOnly();
+ private static readonly string[] _methodOptionsFieldNames = new string[] { "deprecated", "uninterpreted_option" };
+ private static readonly uint[] _methodOptionsFieldTags = new uint[] { 264, 7994 };
+ public static MethodOptions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MethodOptions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MethodOptions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MethodOptions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MethodOptions, MethodOptions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_MethodOptions__FieldAccessorTable; }
+ }
+
+ public const int DeprecatedFieldNumber = 33;
+ private bool hasDeprecated;
+ private bool deprecated_;
+ public bool HasDeprecated {
+ get { return hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return deprecated_; }
+ }
+
+ public const int UninterpretedOptionFieldNumber = 999;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return uninterpretedOption_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return uninterpretedOption_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _methodOptionsFieldNames;
+ pb::ExtendableMessage<MethodOptions, MethodOptions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasDeprecated) {
+ output.WriteBool(33, field_names[0], Deprecated);
+ }
+ if (uninterpretedOption_.Count > 0) {
+ output.WriteMessageArray(999, field_names[1], uninterpretedOption_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasDeprecated) {
+ size += pb::CodedOutputStream.ComputeBoolSize(33, Deprecated);
+ }
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(999, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MethodOptions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MethodOptions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MethodOptions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MethodOptions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MethodOptions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MethodOptions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MethodOptions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MethodOptions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MethodOptions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MethodOptions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MethodOptions MakeReadOnly() {
+ uninterpretedOption_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MethodOptions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<MethodOptions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MethodOptions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MethodOptions result;
+
+ private MethodOptions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MethodOptions original = result;
+ result = new MethodOptions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MethodOptions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.Descriptor; }
+ }
+
+ public override MethodOptions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.DefaultInstance; }
+ }
+
+ public override MethodOptions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MethodOptions) {
+ return MergeFrom((MethodOptions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MethodOptions other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.MethodOptions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasDeprecated) {
+ Deprecated = other.Deprecated;
+ }
+ if (other.uninterpretedOption_.Count != 0) {
+ result.uninterpretedOption_.Add(other.uninterpretedOption_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_methodOptionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _methodOptionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 264: {
+ result.hasDeprecated = input.ReadBool(ref result.deprecated_);
+ break;
+ }
+ case 7994: {
+ input.ReadMessageArray(tag, field_name, result.uninterpretedOption_, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasDeprecated {
+ get { return result.hasDeprecated; }
+ }
+ public bool Deprecated {
+ get { return result.Deprecated; }
+ set { SetDeprecated(value); }
+ }
+ public Builder SetDeprecated(bool value) {
+ PrepareBuilder();
+ result.hasDeprecated = true;
+ result.deprecated_ = value;
+ return this;
+ }
+ public Builder ClearDeprecated() {
+ PrepareBuilder();
+ result.hasDeprecated = false;
+ result.deprecated_ = false;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
+ get { return PrepareBuilder().uninterpretedOption_; }
+ }
+ public int UninterpretedOptionCount {
+ get { return result.UninterpretedOptionCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption GetUninterpretedOption(int index) {
+ return result.GetUninterpretedOption(index);
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = value;
+ return this;
+ }
+ public Builder SetUninterpretedOption(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(value);
+ return this;
+ }
+ public Builder AddUninterpretedOption(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeUninterpretedOption(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> values) {
+ PrepareBuilder();
+ result.uninterpretedOption_.Add(values);
+ return this;
+ }
+ public Builder ClearUninterpretedOption() {
+ PrepareBuilder();
+ result.uninterpretedOption_.Clear();
+ return this;
+ }
+ }
+ static MethodOptions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class UninterpretedOption : pb::GeneratedMessage<UninterpretedOption, UninterpretedOption.Builder> {
+ private UninterpretedOption() { }
+ private static readonly UninterpretedOption defaultInstance = new UninterpretedOption().MakeReadOnly();
+ private static readonly string[] _uninterpretedOptionFieldNames = new string[] { "aggregate_value", "double_value", "identifier_value", "name", "negative_int_value", "positive_int_value", "string_value" };
+ private static readonly uint[] _uninterpretedOptionFieldTags = new uint[] { 66, 49, 26, 18, 40, 32, 58 };
+ public static UninterpretedOption DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override UninterpretedOption DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override UninterpretedOption ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_UninterpretedOption__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<UninterpretedOption, UninterpretedOption.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_UninterpretedOption__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NamePart : pb::GeneratedMessage<NamePart, NamePart.Builder> {
+ private NamePart() { }
+ private static readonly NamePart defaultInstance = new NamePart().MakeReadOnly();
+ private static readonly string[] _namePartFieldNames = new string[] { "is_extension", "name_part" };
+ private static readonly uint[] _namePartFieldTags = new uint[] { 16, 10 };
+ public static NamePart DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NamePart DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NamePart ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_UninterpretedOption_NamePart__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NamePart, NamePart.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_UninterpretedOption_NamePart__FieldAccessorTable; }
+ }
+
+ public const int NamePart_FieldNumber = 1;
+ private bool hasNamePart_;
+ private string namePart_ = "";
+ public bool HasNamePart_ {
+ get { return hasNamePart_; }
+ }
+ public string NamePart_ {
+ get { return namePart_; }
+ }
+
+ public const int IsExtensionFieldNumber = 2;
+ private bool hasIsExtension;
+ private bool isExtension_;
+ public bool HasIsExtension {
+ get { return hasIsExtension; }
+ }
+ public bool IsExtension {
+ get { return isExtension_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasNamePart_) return false;
+ if (!hasIsExtension) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _namePartFieldNames;
+ if (hasNamePart_) {
+ output.WriteString(1, field_names[1], NamePart_);
+ }
+ if (hasIsExtension) {
+ output.WriteBool(2, field_names[0], IsExtension);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasNamePart_) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, NamePart_);
+ }
+ if (hasIsExtension) {
+ size += pb::CodedOutputStream.ComputeBoolSize(2, IsExtension);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NamePart ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NamePart ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NamePart ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NamePart ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NamePart ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NamePart ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NamePart ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NamePart ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NamePart ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NamePart ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NamePart MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NamePart prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NamePart, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NamePart cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NamePart result;
+
+ private NamePart PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NamePart original = result;
+ result = new NamePart();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NamePart MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart.Descriptor; }
+ }
+
+ public override NamePart DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart.DefaultInstance; }
+ }
+
+ public override NamePart BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NamePart) {
+ return MergeFrom((NamePart) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NamePart other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasNamePart_) {
+ NamePart_ = other.NamePart_;
+ }
+ if (other.HasIsExtension) {
+ IsExtension = other.IsExtension;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_namePartFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _namePartFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasNamePart_ = input.ReadString(ref result.namePart_);
+ break;
+ }
+ case 16: {
+ result.hasIsExtension = input.ReadBool(ref result.isExtension_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasNamePart_ {
+ get { return result.hasNamePart_; }
+ }
+ public string NamePart_ {
+ get { return result.NamePart_; }
+ set { SetNamePart_(value); }
+ }
+ public Builder SetNamePart_(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasNamePart_ = true;
+ result.namePart_ = value;
+ return this;
+ }
+ public Builder ClearNamePart_() {
+ PrepareBuilder();
+ result.hasNamePart_ = false;
+ result.namePart_ = "";
+ return this;
+ }
+
+ public bool HasIsExtension {
+ get { return result.hasIsExtension; }
+ }
+ public bool IsExtension {
+ get { return result.IsExtension; }
+ set { SetIsExtension(value); }
+ }
+ public Builder SetIsExtension(bool value) {
+ PrepareBuilder();
+ result.hasIsExtension = true;
+ result.isExtension_ = value;
+ return this;
+ }
+ public Builder ClearIsExtension() {
+ PrepareBuilder();
+ result.hasIsExtension = false;
+ result.isExtension_ = false;
+ return this;
+ }
+ }
+ static NamePart() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart> name_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart> NameList {
+ get { return name_; }
+ }
+ public int NameCount {
+ get { return name_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart GetName(int index) {
+ return name_[index];
+ }
+
+ public const int IdentifierValueFieldNumber = 3;
+ private bool hasIdentifierValue;
+ private string identifierValue_ = "";
+ public bool HasIdentifierValue {
+ get { return hasIdentifierValue; }
+ }
+ public string IdentifierValue {
+ get { return identifierValue_; }
+ }
+
+ public const int PositiveIntValueFieldNumber = 4;
+ private bool hasPositiveIntValue;
+ private ulong positiveIntValue_;
+ public bool HasPositiveIntValue {
+ get { return hasPositiveIntValue; }
+ }
+ public ulong PositiveIntValue {
+ get { return positiveIntValue_; }
+ }
+
+ public const int NegativeIntValueFieldNumber = 5;
+ private bool hasNegativeIntValue;
+ private long negativeIntValue_;
+ public bool HasNegativeIntValue {
+ get { return hasNegativeIntValue; }
+ }
+ public long NegativeIntValue {
+ get { return negativeIntValue_; }
+ }
+
+ public const int DoubleValueFieldNumber = 6;
+ private bool hasDoubleValue;
+ private double doubleValue_;
+ public bool HasDoubleValue {
+ get { return hasDoubleValue; }
+ }
+ public double DoubleValue {
+ get { return doubleValue_; }
+ }
+
+ public const int StringValueFieldNumber = 7;
+ private bool hasStringValue;
+ private pb::ByteString stringValue_ = pb::ByteString.Empty;
+ public bool HasStringValue {
+ get { return hasStringValue; }
+ }
+ public pb::ByteString StringValue {
+ get { return stringValue_; }
+ }
+
+ public const int AggregateValueFieldNumber = 8;
+ private bool hasAggregateValue;
+ private string aggregateValue_ = "";
+ public bool HasAggregateValue {
+ get { return hasAggregateValue; }
+ }
+ public string AggregateValue {
+ get { return aggregateValue_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart element in NameList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _uninterpretedOptionFieldNames;
+ if (name_.Count > 0) {
+ output.WriteMessageArray(2, field_names[3], name_);
+ }
+ if (hasIdentifierValue) {
+ output.WriteString(3, field_names[2], IdentifierValue);
+ }
+ if (hasPositiveIntValue) {
+ output.WriteUInt64(4, field_names[5], PositiveIntValue);
+ }
+ if (hasNegativeIntValue) {
+ output.WriteInt64(5, field_names[4], NegativeIntValue);
+ }
+ if (hasDoubleValue) {
+ output.WriteDouble(6, field_names[1], DoubleValue);
+ }
+ if (hasStringValue) {
+ output.WriteBytes(7, field_names[6], StringValue);
+ }
+ if (hasAggregateValue) {
+ output.WriteString(8, field_names[0], AggregateValue);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart element in NameList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ if (hasIdentifierValue) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, IdentifierValue);
+ }
+ if (hasPositiveIntValue) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(4, PositiveIntValue);
+ }
+ if (hasNegativeIntValue) {
+ size += pb::CodedOutputStream.ComputeInt64Size(5, NegativeIntValue);
+ }
+ if (hasDoubleValue) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(6, DoubleValue);
+ }
+ if (hasStringValue) {
+ size += pb::CodedOutputStream.ComputeBytesSize(7, StringValue);
+ }
+ if (hasAggregateValue) {
+ size += pb::CodedOutputStream.ComputeStringSize(8, AggregateValue);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static UninterpretedOption ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static UninterpretedOption ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static UninterpretedOption ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static UninterpretedOption ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static UninterpretedOption ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static UninterpretedOption ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static UninterpretedOption ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static UninterpretedOption ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static UninterpretedOption ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static UninterpretedOption ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private UninterpretedOption MakeReadOnly() {
+ name_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(UninterpretedOption prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<UninterpretedOption, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(UninterpretedOption cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private UninterpretedOption result;
+
+ private UninterpretedOption PrepareBuilder() {
+ if (resultIsReadOnly) {
+ UninterpretedOption original = result;
+ result = new UninterpretedOption();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override UninterpretedOption MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Descriptor; }
+ }
+
+ public override UninterpretedOption DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.DefaultInstance; }
+ }
+
+ public override UninterpretedOption BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is UninterpretedOption) {
+ return MergeFrom((UninterpretedOption) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(UninterpretedOption other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.name_.Count != 0) {
+ result.name_.Add(other.name_);
+ }
+ if (other.HasIdentifierValue) {
+ IdentifierValue = other.IdentifierValue;
+ }
+ if (other.HasPositiveIntValue) {
+ PositiveIntValue = other.PositiveIntValue;
+ }
+ if (other.HasNegativeIntValue) {
+ NegativeIntValue = other.NegativeIntValue;
+ }
+ if (other.HasDoubleValue) {
+ DoubleValue = other.DoubleValue;
+ }
+ if (other.HasStringValue) {
+ StringValue = other.StringValue;
+ }
+ if (other.HasAggregateValue) {
+ AggregateValue = other.AggregateValue;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_uninterpretedOptionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _uninterpretedOptionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.name_, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 26: {
+ result.hasIdentifierValue = input.ReadString(ref result.identifierValue_);
+ break;
+ }
+ case 32: {
+ result.hasPositiveIntValue = input.ReadUInt64(ref result.positiveIntValue_);
+ break;
+ }
+ case 40: {
+ result.hasNegativeIntValue = input.ReadInt64(ref result.negativeIntValue_);
+ break;
+ }
+ case 49: {
+ result.hasDoubleValue = input.ReadDouble(ref result.doubleValue_);
+ break;
+ }
+ case 58: {
+ result.hasStringValue = input.ReadBytes(ref result.stringValue_);
+ break;
+ }
+ case 66: {
+ result.hasAggregateValue = input.ReadString(ref result.aggregateValue_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart> NameList {
+ get { return PrepareBuilder().name_; }
+ }
+ public int NameCount {
+ get { return result.NameCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart GetName(int index) {
+ return result.GetName(index);
+ }
+ public Builder SetName(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.name_[index] = value;
+ return this;
+ }
+ public Builder SetName(int index, global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.name_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddName(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.name_.Add(value);
+ return this;
+ }
+ public Builder AddName(global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.name_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeName(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Types.NamePart> values) {
+ PrepareBuilder();
+ result.name_.Add(values);
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.name_.Clear();
+ return this;
+ }
+
+ public bool HasIdentifierValue {
+ get { return result.hasIdentifierValue; }
+ }
+ public string IdentifierValue {
+ get { return result.IdentifierValue; }
+ set { SetIdentifierValue(value); }
+ }
+ public Builder SetIdentifierValue(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasIdentifierValue = true;
+ result.identifierValue_ = value;
+ return this;
+ }
+ public Builder ClearIdentifierValue() {
+ PrepareBuilder();
+ result.hasIdentifierValue = false;
+ result.identifierValue_ = "";
+ return this;
+ }
+
+ public bool HasPositiveIntValue {
+ get { return result.hasPositiveIntValue; }
+ }
+ public ulong PositiveIntValue {
+ get { return result.PositiveIntValue; }
+ set { SetPositiveIntValue(value); }
+ }
+ public Builder SetPositiveIntValue(ulong value) {
+ PrepareBuilder();
+ result.hasPositiveIntValue = true;
+ result.positiveIntValue_ = value;
+ return this;
+ }
+ public Builder ClearPositiveIntValue() {
+ PrepareBuilder();
+ result.hasPositiveIntValue = false;
+ result.positiveIntValue_ = 0UL;
+ return this;
+ }
+
+ public bool HasNegativeIntValue {
+ get { return result.hasNegativeIntValue; }
+ }
+ public long NegativeIntValue {
+ get { return result.NegativeIntValue; }
+ set { SetNegativeIntValue(value); }
+ }
+ public Builder SetNegativeIntValue(long value) {
+ PrepareBuilder();
+ result.hasNegativeIntValue = true;
+ result.negativeIntValue_ = value;
+ return this;
+ }
+ public Builder ClearNegativeIntValue() {
+ PrepareBuilder();
+ result.hasNegativeIntValue = false;
+ result.negativeIntValue_ = 0L;
+ return this;
+ }
+
+ public bool HasDoubleValue {
+ get { return result.hasDoubleValue; }
+ }
+ public double DoubleValue {
+ get { return result.DoubleValue; }
+ set { SetDoubleValue(value); }
+ }
+ public Builder SetDoubleValue(double value) {
+ PrepareBuilder();
+ result.hasDoubleValue = true;
+ result.doubleValue_ = value;
+ return this;
+ }
+ public Builder ClearDoubleValue() {
+ PrepareBuilder();
+ result.hasDoubleValue = false;
+ result.doubleValue_ = 0D;
+ return this;
+ }
+
+ public bool HasStringValue {
+ get { return result.hasStringValue; }
+ }
+ public pb::ByteString StringValue {
+ get { return result.StringValue; }
+ set { SetStringValue(value); }
+ }
+ public Builder SetStringValue(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringValue = true;
+ result.stringValue_ = value;
+ return this;
+ }
+ public Builder ClearStringValue() {
+ PrepareBuilder();
+ result.hasStringValue = false;
+ result.stringValue_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasAggregateValue {
+ get { return result.hasAggregateValue; }
+ }
+ public string AggregateValue {
+ get { return result.AggregateValue; }
+ set { SetAggregateValue(value); }
+ }
+ public Builder SetAggregateValue(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasAggregateValue = true;
+ result.aggregateValue_ = value;
+ return this;
+ }
+ public Builder ClearAggregateValue() {
+ PrepareBuilder();
+ result.hasAggregateValue = false;
+ result.aggregateValue_ = "";
+ return this;
+ }
+ }
+ static UninterpretedOption() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SourceCodeInfo : pb::GeneratedMessage<SourceCodeInfo, SourceCodeInfo.Builder> {
+ private SourceCodeInfo() { }
+ private static readonly SourceCodeInfo defaultInstance = new SourceCodeInfo().MakeReadOnly();
+ private static readonly string[] _sourceCodeInfoFieldNames = new string[] { "location" };
+ private static readonly uint[] _sourceCodeInfoFieldTags = new uint[] { 10 };
+ public static SourceCodeInfo DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SourceCodeInfo DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SourceCodeInfo ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_SourceCodeInfo__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SourceCodeInfo, SourceCodeInfo.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_SourceCodeInfo__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Location : pb::GeneratedMessage<Location, Location.Builder> {
+ private Location() { }
+ private static readonly Location defaultInstance = new Location().MakeReadOnly();
+ private static readonly string[] _locationFieldNames = new string[] { "leading_comments", "leading_detached_comments", "path", "span", "trailing_comments" };
+ private static readonly uint[] _locationFieldTags = new uint[] { 26, 50, 10, 18, 34 };
+ public static Location DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Location DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Location ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_SourceCodeInfo_Location__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Location, Location.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.internal__static_google_protobuf_SourceCodeInfo_Location__FieldAccessorTable; }
+ }
+
+ public const int PathFieldNumber = 1;
+ private int pathMemoizedSerializedSize;
+ private pbc::PopsicleList<int> path_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PathList {
+ get { return pbc::Lists.AsReadOnly(path_); }
+ }
+ public int PathCount {
+ get { return path_.Count; }
+ }
+ public int GetPath(int index) {
+ return path_[index];
+ }
+
+ public const int SpanFieldNumber = 2;
+ private int spanMemoizedSerializedSize;
+ private pbc::PopsicleList<int> span_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> SpanList {
+ get { return pbc::Lists.AsReadOnly(span_); }
+ }
+ public int SpanCount {
+ get { return span_.Count; }
+ }
+ public int GetSpan(int index) {
+ return span_[index];
+ }
+
+ public const int LeadingCommentsFieldNumber = 3;
+ private bool hasLeadingComments;
+ private string leadingComments_ = "";
+ public bool HasLeadingComments {
+ get { return hasLeadingComments; }
+ }
+ public string LeadingComments {
+ get { return leadingComments_; }
+ }
+
+ public const int TrailingCommentsFieldNumber = 4;
+ private bool hasTrailingComments;
+ private string trailingComments_ = "";
+ public bool HasTrailingComments {
+ get { return hasTrailingComments; }
+ }
+ public string TrailingComments {
+ get { return trailingComments_; }
+ }
+
+ public const int LeadingDetachedCommentsFieldNumber = 6;
+ private pbc::PopsicleList<string> leadingDetachedComments_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> LeadingDetachedCommentsList {
+ get { return pbc::Lists.AsReadOnly(leadingDetachedComments_); }
+ }
+ public int LeadingDetachedCommentsCount {
+ get { return leadingDetachedComments_.Count; }
+ }
+ public string GetLeadingDetachedComments(int index) {
+ return leadingDetachedComments_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _locationFieldNames;
+ if (path_.Count > 0) {
+ output.WritePackedInt32Array(1, field_names[2], pathMemoizedSerializedSize, path_);
+ }
+ if (span_.Count > 0) {
+ output.WritePackedInt32Array(2, field_names[3], spanMemoizedSerializedSize, span_);
+ }
+ if (hasLeadingComments) {
+ output.WriteString(3, field_names[0], LeadingComments);
+ }
+ if (hasTrailingComments) {
+ output.WriteString(4, field_names[4], TrailingComments);
+ }
+ if (leadingDetachedComments_.Count > 0) {
+ output.WriteStringArray(6, field_names[1], leadingDetachedComments_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in PathList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (path_.Count != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ pathMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in SpanList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (span_.Count != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ spanMemoizedSerializedSize = dataSize;
+ }
+ if (hasLeadingComments) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, LeadingComments);
+ }
+ if (hasTrailingComments) {
+ size += pb::CodedOutputStream.ComputeStringSize(4, TrailingComments);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in LeadingDetachedCommentsList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * leadingDetachedComments_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Location ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Location ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Location ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Location ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Location ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Location ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Location ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Location ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Location ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Location ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Location MakeReadOnly() {
+ path_.MakeReadOnly();
+ span_.MakeReadOnly();
+ leadingDetachedComments_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Location prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Location, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Location cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Location result;
+
+ private Location PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Location original = result;
+ result = new Location();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Location MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location.Descriptor; }
+ }
+
+ public override Location DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location.DefaultInstance; }
+ }
+
+ public override Location BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Location) {
+ return MergeFrom((Location) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Location other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.path_.Count != 0) {
+ result.path_.Add(other.path_);
+ }
+ if (other.span_.Count != 0) {
+ result.span_.Add(other.span_);
+ }
+ if (other.HasLeadingComments) {
+ LeadingComments = other.LeadingComments;
+ }
+ if (other.HasTrailingComments) {
+ TrailingComments = other.TrailingComments;
+ }
+ if (other.leadingDetachedComments_.Count != 0) {
+ result.leadingDetachedComments_.Add(other.leadingDetachedComments_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_locationFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _locationFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10:
+ case 8: {
+ input.ReadInt32Array(tag, field_name, result.path_);
+ break;
+ }
+ case 18:
+ case 16: {
+ input.ReadInt32Array(tag, field_name, result.span_);
+ break;
+ }
+ case 26: {
+ result.hasLeadingComments = input.ReadString(ref result.leadingComments_);
+ break;
+ }
+ case 34: {
+ result.hasTrailingComments = input.ReadString(ref result.trailingComments_);
+ break;
+ }
+ case 50: {
+ input.ReadStringArray(tag, field_name, result.leadingDetachedComments_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> PathList {
+ get { return PrepareBuilder().path_; }
+ }
+ public int PathCount {
+ get { return result.PathCount; }
+ }
+ public int GetPath(int index) {
+ return result.GetPath(index);
+ }
+ public Builder SetPath(int index, int value) {
+ PrepareBuilder();
+ result.path_[index] = value;
+ return this;
+ }
+ public Builder AddPath(int value) {
+ PrepareBuilder();
+ result.path_.Add(value);
+ return this;
+ }
+ public Builder AddRangePath(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.path_.Add(values);
+ return this;
+ }
+ public Builder ClearPath() {
+ PrepareBuilder();
+ result.path_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> SpanList {
+ get { return PrepareBuilder().span_; }
+ }
+ public int SpanCount {
+ get { return result.SpanCount; }
+ }
+ public int GetSpan(int index) {
+ return result.GetSpan(index);
+ }
+ public Builder SetSpan(int index, int value) {
+ PrepareBuilder();
+ result.span_[index] = value;
+ return this;
+ }
+ public Builder AddSpan(int value) {
+ PrepareBuilder();
+ result.span_.Add(value);
+ return this;
+ }
+ public Builder AddRangeSpan(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.span_.Add(values);
+ return this;
+ }
+ public Builder ClearSpan() {
+ PrepareBuilder();
+ result.span_.Clear();
+ return this;
+ }
+
+ public bool HasLeadingComments {
+ get { return result.hasLeadingComments; }
+ }
+ public string LeadingComments {
+ get { return result.LeadingComments; }
+ set { SetLeadingComments(value); }
+ }
+ public Builder SetLeadingComments(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasLeadingComments = true;
+ result.leadingComments_ = value;
+ return this;
+ }
+ public Builder ClearLeadingComments() {
+ PrepareBuilder();
+ result.hasLeadingComments = false;
+ result.leadingComments_ = "";
+ return this;
+ }
+
+ public bool HasTrailingComments {
+ get { return result.hasTrailingComments; }
+ }
+ public string TrailingComments {
+ get { return result.TrailingComments; }
+ set { SetTrailingComments(value); }
+ }
+ public Builder SetTrailingComments(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasTrailingComments = true;
+ result.trailingComments_ = value;
+ return this;
+ }
+ public Builder ClearTrailingComments() {
+ PrepareBuilder();
+ result.hasTrailingComments = false;
+ result.trailingComments_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> LeadingDetachedCommentsList {
+ get { return PrepareBuilder().leadingDetachedComments_; }
+ }
+ public int LeadingDetachedCommentsCount {
+ get { return result.LeadingDetachedCommentsCount; }
+ }
+ public string GetLeadingDetachedComments(int index) {
+ return result.GetLeadingDetachedComments(index);
+ }
+ public Builder SetLeadingDetachedComments(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.leadingDetachedComments_[index] = value;
+ return this;
+ }
+ public Builder AddLeadingDetachedComments(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.leadingDetachedComments_.Add(value);
+ return this;
+ }
+ public Builder AddRangeLeadingDetachedComments(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.leadingDetachedComments_.Add(values);
+ return this;
+ }
+ public Builder ClearLeadingDetachedComments() {
+ PrepareBuilder();
+ result.leadingDetachedComments_.Clear();
+ return this;
+ }
+ }
+ static Location() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int LocationFieldNumber = 1;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location> location_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location>();
+ public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location> LocationList {
+ get { return location_; }
+ }
+ public int LocationCount {
+ get { return location_.Count; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location GetLocation(int index) {
+ return location_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _sourceCodeInfoFieldNames;
+ if (location_.Count > 0) {
+ output.WriteMessageArray(1, field_names[0], location_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location element in LocationList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SourceCodeInfo ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SourceCodeInfo ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SourceCodeInfo ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SourceCodeInfo ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SourceCodeInfo ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SourceCodeInfo ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SourceCodeInfo ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SourceCodeInfo ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SourceCodeInfo ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SourceCodeInfo ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SourceCodeInfo MakeReadOnly() {
+ location_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SourceCodeInfo prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SourceCodeInfo, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SourceCodeInfo cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SourceCodeInfo result;
+
+ private SourceCodeInfo PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SourceCodeInfo original = result;
+ result = new SourceCodeInfo();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SourceCodeInfo MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Descriptor; }
+ }
+
+ public override SourceCodeInfo DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.DefaultInstance; }
+ }
+
+ public override SourceCodeInfo BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SourceCodeInfo) {
+ return MergeFrom((SourceCodeInfo) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SourceCodeInfo other) {
+ if (other == global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.location_.Count != 0) {
+ result.location_.Add(other.location_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_sourceCodeInfoFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _sourceCodeInfoFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadMessageArray(tag, field_name, result.location_, global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location> LocationList {
+ get { return PrepareBuilder().location_; }
+ }
+ public int LocationCount {
+ get { return result.LocationCount; }
+ }
+ public global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location GetLocation(int index) {
+ return result.GetLocation(index);
+ }
+ public Builder SetLocation(int index, global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.location_[index] = value;
+ return this;
+ }
+ public Builder SetLocation(int index, global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.location_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddLocation(global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.location_.Add(value);
+ return this;
+ }
+ public Builder AddLocation(global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.location_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeLocation(scg::IEnumerable<global::Google.ProtocolBuffers.DescriptorProtos.SourceCodeInfo.Types.Location> values) {
+ PrepareBuilder();
+ result.location_.Add(values);
+ return this;
+ }
+ public Builder ClearLocation() {
+ PrepareBuilder();
+ result.location_.Clear();
+ return this;
+ }
+ }
+ static SourceCodeInfo() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.DescriptorProtos.DescriptorProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffers/DescriptorProtos/IDescriptorProto.cs b/csharp/src/ProtocolBuffers/DescriptorProtos/IDescriptorProto.cs
new file mode 100644
index 00000000..c894d324
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/DescriptorProtos/IDescriptorProto.cs
@@ -0,0 +1,52 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+namespace Google.ProtocolBuffers.DescriptorProtos
+{
+ /// <summary>
+ /// Interface implemented by all DescriptorProtos. The generator doesn't
+ /// emit the interface implementation claim, so PartialClasses.cs contains
+ /// partial class declarations for each of them.
+ /// </summary>
+ /// <typeparam name="TOptions">The associated options protocol buffer type</typeparam>
+ public interface IDescriptorProto<TOptions>
+ {
+ /// <summary>
+ /// The brief name of the descriptor's target.
+ /// </summary>
+ string Name { get; }
+
+ /// <summary>
+ /// The options for this descriptor.
+ /// </summary>
+ TOptions Options { get; }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/DescriptorProtos/PartialClasses.cs b/csharp/src/ProtocolBuffers/DescriptorProtos/PartialClasses.cs
new file mode 100644
index 00000000..adc2afb0
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/DescriptorProtos/PartialClasses.cs
@@ -0,0 +1,65 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// This file just contains partial classes for each of the
+// autogenerated classes, so that they implement
+// IDescriptorProto
+namespace Google.ProtocolBuffers.DescriptorProtos
+{
+ public partial class DescriptorProto : IDescriptorProto<MessageOptions>
+ {
+ }
+
+ public partial class EnumDescriptorProto : IDescriptorProto<EnumOptions>
+ {
+ }
+
+ public partial class EnumValueDescriptorProto : IDescriptorProto<EnumValueOptions>
+ {
+ }
+
+ public partial class FieldDescriptorProto : IDescriptorProto<FieldOptions>
+ {
+ }
+
+ public partial class FileDescriptorProto : IDescriptorProto<FileOptions>
+ {
+ }
+
+ public partial class MethodDescriptorProto : IDescriptorProto<MethodOptions>
+ {
+ }
+
+ public partial class ServiceDescriptorProto : IDescriptorProto<ServiceOptions>
+ {
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/DescriptorBase.cs b/csharp/src/ProtocolBuffers/Descriptors/DescriptorBase.cs
new file mode 100644
index 00000000..59006f80
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/DescriptorBase.cs
@@ -0,0 +1,115 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using Google.ProtocolBuffers.DescriptorProtos;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Base class for nearly all descriptors, providing common functionality.
+ /// </summary>
+ /// <typeparam name="TProto">Type of the protocol buffer form of this descriptor</typeparam>
+ /// <typeparam name="TOptions">Type of the options protocol buffer for this descriptor</typeparam>
+ public abstract class DescriptorBase<TProto, TOptions> : IDescriptor<TProto>
+ where TProto : IMessage, IDescriptorProto<TOptions>
+ {
+ private TProto proto;
+ private readonly FileDescriptor file;
+ private readonly string fullName;
+
+ protected DescriptorBase(TProto proto, FileDescriptor file, string fullName)
+ {
+ this.proto = proto;
+ this.file = file;
+ this.fullName = fullName;
+ }
+
+ internal virtual void ReplaceProto(TProto newProto)
+ {
+ this.proto = newProto;
+ }
+
+ protected static string ComputeFullName(FileDescriptor file, MessageDescriptor parent, string name)
+ {
+ if (parent != null)
+ {
+ return parent.FullName + "." + name;
+ }
+ if (file.Package.Length > 0)
+ {
+ return file.Package + "." + name;
+ }
+ return name;
+ }
+
+ IMessage IDescriptor.Proto
+ {
+ get { return proto; }
+ }
+
+ /// <summary>
+ /// Returns the protocol buffer form of this descriptor.
+ /// </summary>
+ public TProto Proto
+ {
+ get { return proto; }
+ }
+
+ public TOptions Options
+ {
+ get { return proto.Options; }
+ }
+
+ /// <summary>
+ /// The fully qualified name of the descriptor's target.
+ /// </summary>
+ public string FullName
+ {
+ get { return fullName; }
+ }
+
+ /// <summary>
+ /// The brief name of the descriptor's target.
+ /// </summary>
+ public string Name
+ {
+ get { return proto.Name; }
+ }
+
+ /// <value>
+ /// The file this descriptor was declared in.
+ /// </value>
+ public FileDescriptor File
+ {
+ get { return file; }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/DescriptorPool.cs b/csharp/src/ProtocolBuffers/Descriptors/DescriptorPool.cs
new file mode 100644
index 00000000..30718709
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/DescriptorPool.cs
@@ -0,0 +1,364 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Text.RegularExpressions;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Contains lookup tables containing all the descriptors defined in a particular file.
+ /// </summary>
+ internal sealed class DescriptorPool
+ {
+ private readonly IDictionary<string, IDescriptor> descriptorsByName =
+ new Dictionary<string, IDescriptor>();
+
+ private readonly IDictionary<DescriptorIntPair, FieldDescriptor> fieldsByNumber =
+ new Dictionary<DescriptorIntPair, FieldDescriptor>();
+
+ private readonly IDictionary<DescriptorIntPair, EnumValueDescriptor> enumValuesByNumber =
+ new Dictionary<DescriptorIntPair, EnumValueDescriptor>();
+
+ private readonly HashSet<FileDescriptor> dependencies;
+
+ internal DescriptorPool(FileDescriptor[] dependencyFiles)
+ {
+ dependencies = new HashSet<FileDescriptor>();
+ for (int i = 0; i < dependencyFiles.Length; i++)
+ {
+ dependencies.Add(dependencyFiles[i]);
+ ImportPublicDependencies(dependencyFiles[i]);
+ }
+
+ foreach (FileDescriptor dependency in dependencyFiles)
+ {
+ AddPackage(dependency.Package, dependency);
+ }
+ }
+
+ private void ImportPublicDependencies(FileDescriptor file)
+ {
+ foreach (FileDescriptor dependency in file.PublicDependencies)
+ {
+ if (dependencies.Add(dependency))
+ {
+ ImportPublicDependencies(dependency);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Finds a symbol of the given name within the pool.
+ /// </summary>
+ /// <typeparam name="T">The type of symbol to look for</typeparam>
+ /// <param name="fullName">Fully-qualified name to look up</param>
+ /// <returns>The symbol with the given name and type,
+ /// or null if the symbol doesn't exist or has the wrong type</returns>
+ internal T FindSymbol<T>(string fullName) where T : class, IDescriptor
+ {
+ IDescriptor result;
+ descriptorsByName.TryGetValue(fullName, out result);
+ T descriptor = result as T;
+ if (descriptor != null)
+ {
+ return descriptor;
+ }
+
+ foreach (FileDescriptor dependency in dependencies)
+ {
+ dependency.DescriptorPool.descriptorsByName.TryGetValue(fullName, out result);
+ descriptor = result as T;
+ if (descriptor != null)
+ {
+ return descriptor;
+ }
+ }
+
+ return null;
+ }
+
+ /// <summary>
+ /// Adds a package to the symbol tables. If a package by the same name
+ /// already exists, that is fine, but if some other kind of symbol
+ /// exists under the same name, an exception is thrown. If the package
+ /// has multiple components, this also adds the parent package(s).
+ /// </summary>
+ internal void AddPackage(string fullName, FileDescriptor file)
+ {
+ int dotpos = fullName.LastIndexOf('.');
+ String name;
+ if (dotpos != -1)
+ {
+ AddPackage(fullName.Substring(0, dotpos), file);
+ name = fullName.Substring(dotpos + 1);
+ }
+ else
+ {
+ name = fullName;
+ }
+
+ IDescriptor old;
+ if (descriptorsByName.TryGetValue(fullName, out old))
+ {
+ if (!(old is PackageDescriptor))
+ {
+ throw new DescriptorValidationException(file,
+ "\"" + name +
+ "\" is already defined (as something other than a " +
+ "package) in file \"" + old.File.Name + "\".");
+ }
+ }
+ descriptorsByName[fullName] = new PackageDescriptor(name, fullName, file);
+ }
+
+ /// <summary>
+ /// Adds a symbol to the symbol table.
+ /// </summary>
+ /// <exception cref="DescriptorValidationException">The symbol already existed
+ /// in the symbol table.</exception>
+ internal void AddSymbol(IDescriptor descriptor)
+ {
+ ValidateSymbolName(descriptor);
+ String fullName = descriptor.FullName;
+
+ IDescriptor old;
+ if (descriptorsByName.TryGetValue(fullName, out old))
+ {
+ int dotPos = fullName.LastIndexOf('.');
+ string message;
+ if (descriptor.File == old.File)
+ {
+ if (dotPos == -1)
+ {
+ message = "\"" + fullName + "\" is already defined.";
+ }
+ else
+ {
+ message = "\"" + fullName.Substring(dotPos + 1) + "\" is already defined in \"" +
+ fullName.Substring(0, dotPos) + "\".";
+ }
+ }
+ else
+ {
+ message = "\"" + fullName + "\" is already defined in file \"" + old.File.Name + "\".";
+ }
+ throw new DescriptorValidationException(descriptor, message);
+ }
+ descriptorsByName[fullName] = descriptor;
+ }
+
+ private static readonly Regex ValidationRegex = new Regex("^[_A-Za-z][_A-Za-z0-9]*$",
+ FrameworkPortability.CompiledRegexWhereAvailable);
+
+ /// <summary>
+ /// Verifies that the descriptor's name is valid (i.e. it contains
+ /// only letters, digits and underscores, and does not start with a digit).
+ /// </summary>
+ /// <param name="descriptor"></param>
+ private static void ValidateSymbolName(IDescriptor descriptor)
+ {
+ if (descriptor.Name == "")
+ {
+ throw new DescriptorValidationException(descriptor, "Missing name.");
+ }
+ if (!ValidationRegex.IsMatch(descriptor.Name))
+ {
+ throw new DescriptorValidationException(descriptor,
+ "\"" + descriptor.Name + "\" is not a valid identifier.");
+ }
+ }
+
+ /// <summary>
+ /// Returns the field with the given number in the given descriptor,
+ /// or null if it can't be found.
+ /// </summary>
+ internal FieldDescriptor FindFieldByNumber(MessageDescriptor messageDescriptor, int number)
+ {
+ FieldDescriptor ret;
+ fieldsByNumber.TryGetValue(new DescriptorIntPair(messageDescriptor, number), out ret);
+ return ret;
+ }
+
+ internal EnumValueDescriptor FindEnumValueByNumber(EnumDescriptor enumDescriptor, int number)
+ {
+ EnumValueDescriptor ret;
+ enumValuesByNumber.TryGetValue(new DescriptorIntPair(enumDescriptor, number), out ret);
+ return ret;
+ }
+
+ /// <summary>
+ /// Adds a field to the fieldsByNumber table.
+ /// </summary>
+ /// <exception cref="DescriptorValidationException">A field with the same
+ /// containing type and number already exists.</exception>
+ internal void AddFieldByNumber(FieldDescriptor field)
+ {
+ DescriptorIntPair key = new DescriptorIntPair(field.ContainingType, field.FieldNumber);
+ FieldDescriptor old;
+ if (fieldsByNumber.TryGetValue(key, out old))
+ {
+ throw new DescriptorValidationException(field, "Field number " + field.FieldNumber +
+ "has already been used in \"" +
+ field.ContainingType.FullName +
+ "\" by field \"" + old.Name + "\".");
+ }
+ fieldsByNumber[key] = field;
+ }
+
+ /// <summary>
+ /// Adds an enum value to the enumValuesByNumber table. If an enum value
+ /// with the same type and number already exists, this method does nothing.
+ /// (This is allowed; the first value defined with the number takes precedence.)
+ /// </summary>
+ internal void AddEnumValueByNumber(EnumValueDescriptor enumValue)
+ {
+ DescriptorIntPair key = new DescriptorIntPair(enumValue.EnumDescriptor, enumValue.Number);
+ if (!enumValuesByNumber.ContainsKey(key))
+ {
+ enumValuesByNumber[key] = enumValue;
+ }
+ }
+
+ /// <summary>
+ /// Looks up a descriptor by name, relative to some other descriptor.
+ /// The name may be fully-qualified (with a leading '.'), partially-qualified,
+ /// or unqualified. C++-like name lookup semantics are used to search for the
+ /// matching descriptor.
+ /// </summary>
+ public IDescriptor LookupSymbol(string name, IDescriptor relativeTo)
+ {
+ // TODO(jonskeet): This could be optimized in a number of ways.
+
+ IDescriptor result;
+ if (name.StartsWith("."))
+ {
+ // Fully-qualified name.
+ result = FindSymbol<IDescriptor>(name.Substring(1));
+ }
+ else
+ {
+ // If "name" is a compound identifier, we want to search for the
+ // first component of it, then search within it for the rest.
+ int firstPartLength = name.IndexOf('.');
+ string firstPart = firstPartLength == -1 ? name : name.Substring(0, firstPartLength);
+
+ // We will search each parent scope of "relativeTo" looking for the
+ // symbol.
+ StringBuilder scopeToTry = new StringBuilder(relativeTo.FullName);
+
+ while (true)
+ {
+ // Chop off the last component of the scope.
+
+ // TODO(jonskeet): Make this more efficient. May not be worth using StringBuilder at all
+ int dotpos = scopeToTry.ToString().LastIndexOf(".");
+ if (dotpos == -1)
+ {
+ result = FindSymbol<IDescriptor>(name);
+ break;
+ }
+ else
+ {
+ scopeToTry.Length = dotpos + 1;
+
+ // Append firstPart and try to find.
+ scopeToTry.Append(firstPart);
+ result = FindSymbol<IDescriptor>(scopeToTry.ToString());
+
+ if (result != null)
+ {
+ if (firstPartLength != -1)
+ {
+ // We only found the first part of the symbol. Now look for
+ // the whole thing. If this fails, we *don't* want to keep
+ // searching parent scopes.
+ scopeToTry.Length = dotpos + 1;
+ scopeToTry.Append(name);
+ result = FindSymbol<IDescriptor>(scopeToTry.ToString());
+ }
+ break;
+ }
+
+ // Not found. Remove the name so we can try again.
+ scopeToTry.Length = dotpos;
+ }
+ }
+ }
+
+ if (result == null)
+ {
+ throw new DescriptorValidationException(relativeTo, "\"" + name + "\" is not defined.");
+ }
+ else
+ {
+ return result;
+ }
+ }
+
+ /// <summary>
+ /// Struct used to hold the keys for the fieldByNumber table.
+ /// </summary>
+ private struct DescriptorIntPair : IEquatable<DescriptorIntPair>
+ {
+ private readonly int number;
+ private readonly IDescriptor descriptor;
+
+ internal DescriptorIntPair(IDescriptor descriptor, int number)
+ {
+ this.number = number;
+ this.descriptor = descriptor;
+ }
+
+ public bool Equals(DescriptorIntPair other)
+ {
+ return descriptor == other.descriptor
+ && number == other.number;
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (obj is DescriptorIntPair)
+ {
+ return Equals((DescriptorIntPair) obj);
+ }
+ return false;
+ }
+
+ public override int GetHashCode()
+ {
+ return descriptor.GetHashCode()*((1 << 16) - 1) + number;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/DescriptorUtil.cs b/csharp/src/ProtocolBuffers/Descriptors/DescriptorUtil.cs
new file mode 100644
index 00000000..00efdbe8
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/DescriptorUtil.cs
@@ -0,0 +1,64 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Collections;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Internal class containing utility methods when working with descriptors.
+ /// </summary>
+ internal static class DescriptorUtil
+ {
+ /// <summary>
+ /// Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert
+ /// arrays.
+ /// </summary>
+ internal delegate TOutput IndexedConverter<TInput, TOutput>(TInput element, int index);
+
+ /// <summary>
+ /// Converts the given array into a read-only list, applying the specified conversion to
+ /// each input element.
+ /// </summary>
+ internal static IList<TOutput> ConvertAndMakeReadOnly<TInput, TOutput>(IList<TInput> input,
+ IndexedConverter<TInput, TOutput>
+ converter)
+ {
+ TOutput[] array = new TOutput[input.Count];
+ for (int i = 0; i < array.Length; i++)
+ {
+ array[i] = converter(input[i], i);
+ }
+ return Lists<TOutput>.AsReadOnly(array);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/DescriptorValidationException.cs b/csharp/src/ProtocolBuffers/Descriptors/DescriptorValidationException.cs
new file mode 100644
index 00000000..d05d60d7
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/DescriptorValidationException.cs
@@ -0,0 +1,90 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Thrown when building descriptors fails because the source DescriptorProtos
+ /// are not valid.
+ /// </summary>
+ public sealed class DescriptorValidationException : Exception
+ {
+ private readonly String name;
+ private readonly IMessage proto;
+ private readonly string description;
+
+ /// <value>
+ /// The full name of the descriptor where the error occurred.
+ /// </value>
+ public String ProblemSymbolName
+ {
+ get { return name; }
+ }
+
+ /// <value>
+ /// The protocol message representation of the invalid descriptor.
+ /// </value>
+ public IMessage ProblemProto
+ {
+ get { return proto; }
+ }
+
+ /// <value>
+ /// A human-readable description of the error. (The Message property
+ /// is made up of the descriptor's name and this description.)
+ /// </value>
+ public string Description
+ {
+ get { return description; }
+ }
+
+ internal DescriptorValidationException(IDescriptor problemDescriptor, string description) :
+ base(problemDescriptor.FullName + ": " + description)
+ {
+ // Note that problemDescriptor may be partially uninitialized, so we
+ // don't want to expose it directly to the user. So, we only provide
+ // the name and the original proto.
+ name = problemDescriptor.FullName;
+ proto = problemDescriptor.Proto;
+ this.description = description;
+ }
+
+ internal DescriptorValidationException(IDescriptor problemDescriptor, string description, Exception cause) :
+ base(problemDescriptor.FullName + ": " + description, cause)
+ {
+ name = problemDescriptor.FullName;
+ proto = problemDescriptor.Proto;
+ this.description = description;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/EnumDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/EnumDescriptor.cs
new file mode 100644
index 00000000..a0b81b69
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/EnumDescriptor.cs
@@ -0,0 +1,126 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System.Collections.Generic;
+using Google.ProtocolBuffers.DescriptorProtos;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Descriptor for an enum type in a .proto file.
+ /// </summary>
+ public sealed class EnumDescriptor : IndexedDescriptorBase<EnumDescriptorProto, EnumOptions>,
+ IEnumLiteMap<EnumValueDescriptor>
+ {
+ private readonly MessageDescriptor containingType;
+ private readonly IList<EnumValueDescriptor> values;
+
+ internal EnumDescriptor(EnumDescriptorProto proto, FileDescriptor file, MessageDescriptor parent, int index)
+ : base(proto, file, ComputeFullName(file, parent, proto.Name), index)
+ {
+ containingType = parent;
+
+ if (proto.ValueCount == 0)
+ {
+ // We cannot allow enums with no values because this would mean there
+ // would be no valid default value for fields of this type.
+ throw new DescriptorValidationException(this, "Enums must contain at least one value.");
+ }
+
+ values = DescriptorUtil.ConvertAndMakeReadOnly(proto.ValueList,
+ (value, i) => new EnumValueDescriptor(value, file, this, i));
+
+ File.DescriptorPool.AddSymbol(this);
+ }
+
+ /// <value>
+ /// If this is a nested type, get the outer descriptor, otherwise null.
+ /// </value>
+ public MessageDescriptor ContainingType
+ {
+ get { return containingType; }
+ }
+
+ /// <value>
+ /// An unmodifiable list of defined value descriptors for this enum.
+ /// </value>
+ public IList<EnumValueDescriptor> Values
+ {
+ get { return values; }
+ }
+
+ /// <summary>
+ /// Logic moved from FieldSet to continue current behavior
+ /// </summary>
+ public bool IsValidValue(IEnumLite value)
+ {
+ return value is EnumValueDescriptor && ((EnumValueDescriptor) value).EnumDescriptor == this;
+ }
+
+ /// <summary>
+ /// Finds an enum value by number. If multiple enum values have the
+ /// same number, this returns the first defined value with that number.
+ /// </summary>
+ public EnumValueDescriptor FindValueByNumber(int number)
+ {
+ return File.DescriptorPool.FindEnumValueByNumber(this, number);
+ }
+
+ IEnumLite IEnumLiteMap.FindValueByNumber(int number)
+ {
+ return FindValueByNumber(number);
+ }
+
+ IEnumLite IEnumLiteMap.FindValueByName(string name)
+ {
+ return FindValueByName(name);
+ }
+
+ /// <summary>
+ /// Finds an enum value by name.
+ /// </summary>
+ /// <param name="name">The unqualified name of the value (e.g. "FOO").</param>
+ /// <returns>The value's descriptor, or null if not found.</returns>
+ public EnumValueDescriptor FindValueByName(string name)
+ {
+ return File.DescriptorPool.FindSymbol<EnumValueDescriptor>(FullName + "." + name);
+ }
+
+ internal override void ReplaceProto(EnumDescriptorProto newProto)
+ {
+ base.ReplaceProto(newProto);
+ for (int i = 0; i < values.Count; i++)
+ {
+ values[i].ReplaceProto(newProto.GetValue(i));
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs
new file mode 100644
index 00000000..afb9cbbc
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs
@@ -0,0 +1,63 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using Google.ProtocolBuffers.DescriptorProtos;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Descriptor for a single enum value within an enum in a .proto file.
+ /// </summary>
+ public sealed class EnumValueDescriptor : IndexedDescriptorBase<EnumValueDescriptorProto, EnumValueOptions>,
+ IEnumLite
+ {
+ private readonly EnumDescriptor enumDescriptor;
+
+ internal EnumValueDescriptor(EnumValueDescriptorProto proto, FileDescriptor file,
+ EnumDescriptor parent, int index)
+ : base(proto, file, parent.FullName + "." + proto.Name, index)
+ {
+ enumDescriptor = parent;
+ file.DescriptorPool.AddSymbol(this);
+ file.DescriptorPool.AddEnumValueByNumber(this);
+ }
+
+ public int Number
+ {
+ get { return Proto.Number; }
+ }
+
+ public EnumDescriptor EnumDescriptor
+ {
+ get { return enumDescriptor; }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/FieldDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/FieldDescriptor.cs
new file mode 100644
index 00000000..e7f5a3c1
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/FieldDescriptor.cs
@@ -0,0 +1,625 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.DescriptorProtos;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Descriptor for a field or extension within a message in a .proto file.
+ /// </summary>
+ public sealed class FieldDescriptor : IndexedDescriptorBase<FieldDescriptorProto, FieldOptions>,
+ IComparable<FieldDescriptor>, IFieldDescriptorLite
+ {
+ private readonly MessageDescriptor extensionScope;
+ private EnumDescriptor enumType;
+ private MessageDescriptor messageType;
+ private MessageDescriptor containingType;
+ private OneofDescriptor containingOneof;
+ private object defaultValue;
+ private FieldType fieldType;
+ private MappedType mappedType;
+
+ private readonly object optionsLock = new object();
+
+ internal FieldDescriptor(FieldDescriptorProto proto, FileDescriptor file,
+ MessageDescriptor parent, int index, bool isExtension)
+ : base(proto, file, ComputeFullName(file, parent, proto.Name), index)
+ {
+ if (proto.HasType)
+ {
+ fieldType = GetFieldTypeFromProtoType(proto.Type);
+ mappedType = FieldTypeToMappedTypeMap[fieldType];
+ }
+
+ if (FieldNumber <= 0)
+ {
+ throw new DescriptorValidationException(this,
+ "Field numbers must be positive integers.");
+ }
+
+ if (isExtension)
+ {
+ if (!proto.HasExtendee)
+ {
+ throw new DescriptorValidationException(this,
+ "FieldDescriptorProto.Extendee not set for extension field.");
+ }
+ containingType = null; // Will be filled in when cross-linking
+ if (parent != null)
+ {
+ extensionScope = parent;
+ }
+ else
+ {
+ extensionScope = null;
+ }
+ }
+ else
+ {
+ if (proto.HasExtendee)
+ {
+ throw new DescriptorValidationException(this,
+ "FieldDescriptorProto.Extendee set for non-extension field.");
+ }
+ containingType = parent;
+ if (proto.HasOneofIndex)
+ {
+ if (proto.OneofIndex < 0 || proto.OneofIndex >= parent.Proto.OneofDeclCount)
+ {
+ throw new DescriptorValidationException(this,
+ "FieldDescriptorProto.oneof_index is out of range for type " + parent.Name);
+ }
+ containingOneof = parent.Oneofs[proto.OneofIndex];
+ containingOneof.fieldCount ++;
+ }
+ extensionScope = null;
+ }
+
+ file.DescriptorPool.AddSymbol(this);
+ }
+
+ /// <summary>
+ /// Maps a field type as included in the .proto file to a FieldType.
+ /// </summary>
+ private static FieldType GetFieldTypeFromProtoType(FieldDescriptorProto.Types.Type type)
+ {
+ switch (type)
+ {
+ case FieldDescriptorProto.Types.Type.TYPE_DOUBLE:
+ return FieldType.Double;
+ case FieldDescriptorProto.Types.Type.TYPE_FLOAT:
+ return FieldType.Float;
+ case FieldDescriptorProto.Types.Type.TYPE_INT64:
+ return FieldType.Int64;
+ case FieldDescriptorProto.Types.Type.TYPE_UINT64:
+ return FieldType.UInt64;
+ case FieldDescriptorProto.Types.Type.TYPE_INT32:
+ return FieldType.Int32;
+ case FieldDescriptorProto.Types.Type.TYPE_FIXED64:
+ return FieldType.Fixed64;
+ case FieldDescriptorProto.Types.Type.TYPE_FIXED32:
+ return FieldType.Fixed32;
+ case FieldDescriptorProto.Types.Type.TYPE_BOOL:
+ return FieldType.Bool;
+ case FieldDescriptorProto.Types.Type.TYPE_STRING:
+ return FieldType.String;
+ case FieldDescriptorProto.Types.Type.TYPE_GROUP:
+ return FieldType.Group;
+ case FieldDescriptorProto.Types.Type.TYPE_MESSAGE:
+ return FieldType.Message;
+ case FieldDescriptorProto.Types.Type.TYPE_BYTES:
+ return FieldType.Bytes;
+ case FieldDescriptorProto.Types.Type.TYPE_UINT32:
+ return FieldType.UInt32;
+ case FieldDescriptorProto.Types.Type.TYPE_ENUM:
+ return FieldType.Enum;
+ case FieldDescriptorProto.Types.Type.TYPE_SFIXED32:
+ return FieldType.SFixed32;
+ case FieldDescriptorProto.Types.Type.TYPE_SFIXED64:
+ return FieldType.SFixed64;
+ case FieldDescriptorProto.Types.Type.TYPE_SINT32:
+ return FieldType.SInt32;
+ case FieldDescriptorProto.Types.Type.TYPE_SINT64:
+ return FieldType.SInt64;
+ default:
+ throw new ArgumentException("Invalid type specified");
+ }
+ }
+
+ /// <summary>
+ /// Returns the default value for a mapped type.
+ /// </summary>
+ private static object GetDefaultValueForMappedType(MappedType type)
+ {
+ switch (type)
+ {
+ case MappedType.Int32:
+ return 0;
+ case MappedType.Int64:
+ return (long) 0;
+ case MappedType.UInt32:
+ return (uint) 0;
+ case MappedType.UInt64:
+ return (ulong) 0;
+ case MappedType.Single:
+ return (float) 0;
+ case MappedType.Double:
+ return (double) 0;
+ case MappedType.Boolean:
+ return false;
+ case MappedType.String:
+ return "";
+ case MappedType.ByteString:
+ return ByteString.Empty;
+ case MappedType.Message:
+ return null;
+ case MappedType.Enum:
+ return null;
+ default:
+ throw new ArgumentException("Invalid type specified");
+ }
+ }
+
+ public bool IsRequired
+ {
+ get { return Proto.Label == FieldDescriptorProto.Types.Label.LABEL_REQUIRED; }
+ }
+
+ public bool IsOptional
+ {
+ get { return Proto.Label == FieldDescriptorProto.Types.Label.LABEL_OPTIONAL; }
+ }
+
+ public bool IsRepeated
+ {
+ get { return Proto.Label == FieldDescriptorProto.Types.Label.LABEL_REPEATED; }
+ }
+
+ public bool IsPacked
+ {
+ get { return Proto.Options.Packed; }
+ }
+
+ /// <valule>
+ /// Indicates whether or not the field had an explicitly-defined default value.
+ /// </value>
+ public bool HasDefaultValue
+ {
+ get { return Proto.HasDefaultValue; }
+ }
+
+ /// <value>
+ /// The field's default value. Valid for all types except messages
+ /// and groups. For all other types, the object returned is of the
+ /// same class that would be returned by IMessage[this].
+ /// For repeated fields this will always be an empty immutable list compatible with IList[object].
+ /// For message fields it will always be null. For singular values, it will depend on the descriptor.
+ /// </value>
+ public object DefaultValue
+ {
+ get
+ {
+ if (MappedType == MappedType.Message)
+ {
+ throw new InvalidOperationException(
+ "FieldDescriptor.DefaultValue called on an embedded message field.");
+ }
+ return defaultValue;
+ }
+ }
+
+ /// <value>
+ /// Indicates whether or not this field is an extension.
+ /// </value>
+ public bool IsExtension
+ {
+ get { return Proto.HasExtendee; }
+ }
+
+ /*
+ * Get the field's containing type. For extensions, this is the type being
+ * extended, not the location where the extension was defined. See
+ * {@link #getExtensionScope()}.
+ */
+
+ /// <summary>
+ /// Get the field's containing type. For extensions, this is the type being
+ /// extended, not the location where the extension was defined. See
+ /// <see cref="ExtensionScope" />.
+ /// </summary>
+ public MessageDescriptor ContainingType
+ {
+ get { return containingType; }
+ }
+
+ public OneofDescriptor ContainingOneof
+ {
+ get { return containingOneof; }
+ }
+
+ /// <summary>
+ /// For extensions defined nested within message types, gets
+ /// the outer type. Not valid for non-extension fields.
+ /// </summary>
+ /// <example>
+ /// <code>
+ /// message Foo {
+ /// extensions 1000 to max;
+ /// }
+ /// extend Foo {
+ /// optional int32 baz = 1234;
+ /// }
+ /// message Bar {
+ /// extend Foo {
+ /// optional int32 qux = 4321;
+ /// }
+ /// }
+ /// </code>
+ /// The containing type for both <c>baz</c> and <c>qux</c> is <c>Foo</c>.
+ /// However, the extension scope for <c>baz</c> is <c>null</c> while
+ /// the extension scope for <c>qux</c> is <c>Bar</c>.
+ /// </example>
+ public MessageDescriptor ExtensionScope
+ {
+ get
+ {
+ if (!IsExtension)
+ {
+ throw new InvalidOperationException("This field is not an extension.");
+ }
+ return extensionScope;
+ }
+ }
+
+ public MappedType MappedType
+ {
+ get { return mappedType; }
+ }
+
+ public FieldType FieldType
+ {
+ get { return fieldType; }
+ }
+
+ public int FieldNumber
+ {
+ get { return Proto.Number; }
+ }
+
+ /// <summary>
+ /// Compares this descriptor with another one, ordering in "canonical" order
+ /// which simply means ascending order by field number. <paramref name="other"/>
+ /// must be a field of the same type, i.e. the <see cref="ContainingType"/> of
+ /// both fields must be the same.
+ /// </summary>
+ public int CompareTo(FieldDescriptor other)
+ {
+ if (other.containingType != containingType)
+ {
+ throw new ArgumentException("FieldDescriptors can only be compared to other FieldDescriptors " +
+ "for fields of the same message type.");
+ }
+ return FieldNumber - other.FieldNumber;
+ }
+
+ /// <summary>
+ /// Compares this descriptor with another one, ordering in "canonical" order
+ /// which simply means ascending order by field number. <paramref name="other"/>
+ /// must be a field of the same type, i.e. the <see cref="ContainingType"/> of
+ /// both fields must be the same.
+ /// </summary>
+ public int CompareTo(IFieldDescriptorLite other)
+ {
+ return FieldNumber - other.FieldNumber;
+ }
+
+ IEnumLiteMap IFieldDescriptorLite.EnumType
+ {
+ get { return EnumType; }
+ }
+
+ bool IFieldDescriptorLite.MessageSetWireFormat
+ {
+ get { return ContainingType.Options.MessageSetWireFormat; }
+ }
+
+ /// <summary>
+ /// For enum fields, returns the field's type.
+ /// </summary>
+ public EnumDescriptor EnumType
+ {
+ get
+ {
+ if (MappedType != MappedType.Enum)
+ {
+ throw new InvalidOperationException("EnumType is only valid for enum fields.");
+ }
+ return enumType;
+ }
+ }
+
+ /// <summary>
+ /// For embedded message and group fields, returns the field's type.
+ /// </summary>
+ public MessageDescriptor MessageType
+ {
+ get
+ {
+ if (MappedType != MappedType.Message)
+ {
+ throw new InvalidOperationException("MessageType is only valid for enum fields.");
+ }
+ return messageType;
+ }
+ }
+
+ /// <summary>
+ /// Immutable mapping from field type to mapped type. Built using the attributes on
+ /// FieldType values.
+ /// </summary>
+ public static readonly IDictionary<FieldType, MappedType> FieldTypeToMappedTypeMap = MapFieldTypes();
+
+ private static IDictionary<FieldType, MappedType> MapFieldTypes()
+ {
+ var map = new Dictionary<FieldType, MappedType>();
+ foreach (FieldInfo field in typeof(FieldType).GetFields(BindingFlags.Static | BindingFlags.Public))
+ {
+ FieldType fieldType = (FieldType) field.GetValue(null);
+ FieldMappingAttribute mapping =
+ (FieldMappingAttribute) field.GetCustomAttributes(typeof(FieldMappingAttribute), false)[0];
+ map[fieldType] = mapping.MappedType;
+ }
+ return Dictionaries.AsReadOnly(map);
+ }
+
+ /// <summary>
+ /// Look up and cross-link all field types etc.
+ /// </summary>
+ internal void CrossLink()
+ {
+ if (Proto.HasExtendee)
+ {
+ IDescriptor extendee = File.DescriptorPool.LookupSymbol(Proto.Extendee, this);
+ if (!(extendee is MessageDescriptor))
+ {
+ throw new DescriptorValidationException(this, "\"" + Proto.Extendee + "\" is not a message type.");
+ }
+ containingType = (MessageDescriptor) extendee;
+
+ if (!containingType.IsExtensionNumber(FieldNumber))
+ {
+ throw new DescriptorValidationException(this,
+ "\"" + containingType.FullName + "\" does not declare " +
+ FieldNumber + " as an extension number.");
+ }
+ }
+
+ if (Proto.HasTypeName)
+ {
+ IDescriptor typeDescriptor =
+ File.DescriptorPool.LookupSymbol(Proto.TypeName, this);
+
+ if (!Proto.HasType)
+ {
+ // Choose field type based on symbol.
+ if (typeDescriptor is MessageDescriptor)
+ {
+ fieldType = FieldType.Message;
+ mappedType = MappedType.Message;
+ }
+ else if (typeDescriptor is EnumDescriptor)
+ {
+ fieldType = FieldType.Enum;
+ mappedType = MappedType.Enum;
+ }
+ else
+ {
+ throw new DescriptorValidationException(this, "\"" + Proto.TypeName + "\" is not a type.");
+ }
+ }
+
+ if (MappedType == MappedType.Message)
+ {
+ if (!(typeDescriptor is MessageDescriptor))
+ {
+ throw new DescriptorValidationException(this,
+ "\"" + Proto.TypeName + "\" is not a message type.");
+ }
+ messageType = (MessageDescriptor) typeDescriptor;
+
+ if (Proto.HasDefaultValue)
+ {
+ throw new DescriptorValidationException(this, "Messages can't have default values.");
+ }
+ }
+ else if (MappedType == Descriptors.MappedType.Enum)
+ {
+ if (!(typeDescriptor is EnumDescriptor))
+ {
+ throw new DescriptorValidationException(this, "\"" + Proto.TypeName + "\" is not an enum type.");
+ }
+ enumType = (EnumDescriptor) typeDescriptor;
+ }
+ else
+ {
+ throw new DescriptorValidationException(this, "Field with primitive type has type_name.");
+ }
+ }
+ else
+ {
+ if (MappedType == MappedType.Message || MappedType == MappedType.Enum)
+ {
+ throw new DescriptorValidationException(this, "Field with message or enum type missing type_name.");
+ }
+ }
+
+ // We don't attempt to parse the default value until here because for
+ // enums we need the enum type's descriptor.
+ if (Proto.HasDefaultValue)
+ {
+ if (IsRepeated)
+ {
+ throw new DescriptorValidationException(this, "Repeated fields cannot have default values.");
+ }
+
+ try
+ {
+ switch (FieldType)
+ {
+ case FieldType.Int32:
+ case FieldType.SInt32:
+ case FieldType.SFixed32:
+ defaultValue = TextFormat.ParseInt32(Proto.DefaultValue);
+ break;
+ case FieldType.UInt32:
+ case FieldType.Fixed32:
+ defaultValue = TextFormat.ParseUInt32(Proto.DefaultValue);
+ break;
+ case FieldType.Int64:
+ case FieldType.SInt64:
+ case FieldType.SFixed64:
+ defaultValue = TextFormat.ParseInt64(Proto.DefaultValue);
+ break;
+ case FieldType.UInt64:
+ case FieldType.Fixed64:
+ defaultValue = TextFormat.ParseUInt64(Proto.DefaultValue);
+ break;
+ case FieldType.Float:
+ defaultValue = TextFormat.ParseFloat(Proto.DefaultValue);
+ break;
+ case FieldType.Double:
+ defaultValue = TextFormat.ParseDouble(Proto.DefaultValue);
+ break;
+ case FieldType.Bool:
+ if (Proto.DefaultValue == "true")
+ {
+ defaultValue = true;
+ }
+ else if (Proto.DefaultValue == "false")
+ {
+ defaultValue = false;
+ }
+ else
+ {
+ throw new FormatException("Boolean values must be \"true\" or \"false\"");
+ }
+ break;
+ case FieldType.String:
+ defaultValue = Proto.DefaultValue;
+ break;
+ case FieldType.Bytes:
+ try
+ {
+ defaultValue = TextFormat.UnescapeBytes(Proto.DefaultValue);
+ }
+ catch (FormatException e)
+ {
+ throw new DescriptorValidationException(this,
+ "Couldn't parse default value: " + e.Message);
+ }
+ break;
+ case FieldType.Enum:
+ defaultValue = enumType.FindValueByName(Proto.DefaultValue);
+ if (defaultValue == null)
+ {
+ throw new DescriptorValidationException(this,
+ "Unknown enum default value: \"" +
+ Proto.DefaultValue + "\"");
+ }
+ break;
+ case FieldType.Message:
+ case FieldType.Group:
+ throw new DescriptorValidationException(this, "Message type had default value.");
+ }
+ }
+ catch (FormatException e)
+ {
+ DescriptorValidationException validationException =
+ new DescriptorValidationException(this,
+ "Could not parse default value: \"" + Proto.DefaultValue +
+ "\"", e);
+ throw validationException;
+ }
+ }
+ else
+ {
+ // Determine the default default for this field.
+ if (IsRepeated)
+ {
+ defaultValue = Lists<object>.Empty;
+ }
+ else
+ {
+ switch (MappedType)
+ {
+ case MappedType.Enum:
+ // We guarantee elsewhere that an enum type always has at least
+ // one possible value.
+ defaultValue = enumType.Values[0];
+ break;
+ case MappedType.Message:
+ defaultValue = null;
+ break;
+ default:
+ defaultValue = GetDefaultValueForMappedType(MappedType);
+ break;
+ }
+ }
+ }
+
+ if (!IsExtension)
+ {
+ File.DescriptorPool.AddFieldByNumber(this);
+ }
+
+ if (containingType != null && containingType.Options.MessageSetWireFormat)
+ {
+ if (IsExtension)
+ {
+ if (!IsOptional || FieldType != FieldType.Message)
+ {
+ throw new DescriptorValidationException(this,
+ "Extensions of MessageSets must be optional messages.");
+ }
+ }
+ else
+ {
+ throw new DescriptorValidationException(this, "MessageSets cannot have fields, only extensions.");
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs b/csharp/src/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs
new file mode 100644
index 00000000..752ecf66
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs
@@ -0,0 +1,85 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using Google.ProtocolBuffers.Collections;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Defined specifically for the <see cref="FieldType" /> enumeration,
+ /// this allows each field type to specify the mapped type and wire type.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Field)]
+ public sealed class FieldMappingAttribute : Attribute
+ {
+ public FieldMappingAttribute(MappedType mappedType, WireFormat.WireType wireType)
+ {
+ MappedType = mappedType;
+ WireType = wireType;
+ }
+
+ public MappedType MappedType { get; private set; }
+ public WireFormat.WireType WireType { get; private set; }
+
+
+ /// <summary>
+ /// Immutable mapping from field type to mapped type. Built using the attributes on
+ /// FieldType values.
+ /// </summary>
+ private static readonly IDictionary<FieldType, FieldMappingAttribute> FieldTypeToMappedTypeMap = MapFieldTypes();
+
+ private static IDictionary<FieldType, FieldMappingAttribute> MapFieldTypes()
+ {
+ var map = new Dictionary<FieldType, FieldMappingAttribute>();
+ foreach (FieldInfo field in typeof(FieldType).GetFields(BindingFlags.Static | BindingFlags.Public))
+ {
+ FieldType fieldType = (FieldType) field.GetValue(null);
+ FieldMappingAttribute mapping =
+ (FieldMappingAttribute) field.GetCustomAttributes(typeof(FieldMappingAttribute), false)[0];
+ map[fieldType] = mapping;
+ }
+ return Dictionaries.AsReadOnly(map);
+ }
+
+ internal static MappedType MappedTypeFromFieldType(FieldType type)
+ {
+ return FieldTypeToMappedTypeMap[type].MappedType;
+ }
+
+ internal static WireFormat.WireType WireTypeFromFieldType(FieldType type, bool packed)
+ {
+ return packed ? WireFormat.WireType.LengthDelimited : FieldTypeToMappedTypeMap[type].WireType;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/FieldType.cs b/csharp/src/ProtocolBuffers/Descriptors/FieldType.cs
new file mode 100644
index 00000000..056d3d45
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/FieldType.cs
@@ -0,0 +1,60 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Enumeration of all the possible field types. The odd formatting is to make it very clear
+ /// which attribute applies to which value, while maintaining a compact format.
+ /// </summary>
+ public enum FieldType
+ {
+ [FieldMapping(MappedType.Double, WireFormat.WireType.Fixed64)] Double,
+ [FieldMapping(MappedType.Single, WireFormat.WireType.Fixed32)] Float,
+ [FieldMapping(MappedType.Int64, WireFormat.WireType.Varint)] Int64,
+ [FieldMapping(MappedType.UInt64, WireFormat.WireType.Varint)] UInt64,
+ [FieldMapping(MappedType.Int32, WireFormat.WireType.Varint)] Int32,
+ [FieldMapping(MappedType.UInt64, WireFormat.WireType.Fixed64)] Fixed64,
+ [FieldMapping(MappedType.UInt32, WireFormat.WireType.Fixed32)] Fixed32,
+ [FieldMapping(MappedType.Boolean, WireFormat.WireType.Varint)] Bool,
+ [FieldMapping(MappedType.String, WireFormat.WireType.LengthDelimited)] String,
+ [FieldMapping(MappedType.Message, WireFormat.WireType.StartGroup)] Group,
+ [FieldMapping(MappedType.Message, WireFormat.WireType.LengthDelimited)] Message,
+ [FieldMapping(MappedType.ByteString, WireFormat.WireType.LengthDelimited)] Bytes,
+ [FieldMapping(MappedType.UInt32, WireFormat.WireType.Varint)] UInt32,
+ [FieldMapping(MappedType.Int32, WireFormat.WireType.Fixed32)] SFixed32,
+ [FieldMapping(MappedType.Int64, WireFormat.WireType.Fixed64)] SFixed64,
+ [FieldMapping(MappedType.Int32, WireFormat.WireType.Varint)] SInt32,
+ [FieldMapping(MappedType.Int64, WireFormat.WireType.Varint)] SInt64,
+ [FieldMapping(MappedType.Enum, WireFormat.WireType.Varint)] Enum
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/FileDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/FileDescriptor.cs
new file mode 100644
index 00000000..fed032bf
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/FileDescriptor.cs
@@ -0,0 +1,476 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.IO;
+using Google.ProtocolBuffers.DescriptorProtos;
+using FileOptions = Google.ProtocolBuffers.DescriptorProtos.FileOptions;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Describes a .proto file, including everything defined within.
+ /// IDescriptor is implemented such that the File property returns this descriptor,
+ /// and the FullName is the same as the Name.
+ /// </summary>
+ public sealed class FileDescriptor : IDescriptor<FileDescriptorProto>
+ {
+ private FileDescriptorProto proto;
+ private readonly IList<MessageDescriptor> messageTypes;
+ private readonly IList<EnumDescriptor> enumTypes;
+ private readonly IList<ServiceDescriptor> services;
+ private readonly IList<FieldDescriptor> extensions;
+ private readonly IList<FileDescriptor> dependencies;
+ private readonly IList<FileDescriptor> publicDependencies;
+ private readonly DescriptorPool pool;
+
+ public enum ProtoSyntax
+ {
+ Proto2,
+ Proto3
+ }
+
+ public ProtoSyntax Syntax
+ {
+ get { return proto.Syntax == "proto3" ? ProtoSyntax.Proto3 : ProtoSyntax.Proto2; }
+ }
+
+ private FileDescriptor(FileDescriptorProto proto, FileDescriptor[] dependencies, DescriptorPool pool, bool allowUnknownDependencies)
+ {
+ this.pool = pool;
+ this.proto = proto;
+ this.dependencies = new ReadOnlyCollection<FileDescriptor>((FileDescriptor[]) dependencies.Clone());
+
+ publicDependencies = DeterminePublicDependencies(this, proto, dependencies, allowUnknownDependencies);
+
+ pool.AddPackage(Package, this);
+
+ messageTypes = DescriptorUtil.ConvertAndMakeReadOnly(proto.MessageTypeList,
+ (message, index) =>
+ new MessageDescriptor(message, this, null, index));
+
+ enumTypes = DescriptorUtil.ConvertAndMakeReadOnly(proto.EnumTypeList,
+ (enumType, index) =>
+ new EnumDescriptor(enumType, this, null, index));
+
+ services = DescriptorUtil.ConvertAndMakeReadOnly(proto.ServiceList,
+ (service, index) =>
+ new ServiceDescriptor(service, this, index));
+
+ extensions = DescriptorUtil.ConvertAndMakeReadOnly(proto.ExtensionList,
+ (field, index) =>
+ new FieldDescriptor(field, this, null, index, true));
+ }
+
+ /// <summary>
+ /// Extracts public dependencies from direct dependencies. This is a static method despite its
+ /// first parameter, as the value we're in the middle of constructing is only used for exceptions.
+ /// </summary>
+ private static IList<FileDescriptor> DeterminePublicDependencies(FileDescriptor @this, FileDescriptorProto proto, FileDescriptor[] dependencies, bool allowUnknownDependencies)
+ {
+ var nameToFileMap = new Dictionary<string, FileDescriptor>();
+ foreach (var file in dependencies)
+ {
+ nameToFileMap[file.Name] = file;
+ }
+ var publicDependencies = new List<FileDescriptor>();
+ for (int i = 0; i < proto.PublicDependencyCount; i++)
+ {
+ int index = proto.PublicDependencyList[i];
+ if (index < 0 || index >= proto.DependencyCount)
+ {
+ throw new DescriptorValidationException(@this, "Invalid public dependency index.");
+ }
+ string name = proto.DependencyList[index];
+ FileDescriptor file = nameToFileMap[name];
+ if (file == null)
+ {
+ if (!allowUnknownDependencies)
+ {
+ throw new DescriptorValidationException(@this, "Invalid public dependency: " + name);
+ }
+ // Ignore unknown dependencies.
+ }
+ else
+ {
+ publicDependencies.Add(file);
+ }
+ }
+ return new ReadOnlyCollection<FileDescriptor>(publicDependencies);
+ }
+
+
+ static readonly char[] PathSeperators = new char[] { '/', '\\' };
+
+ /// <value>
+ /// The descriptor in its protocol message representation.
+ /// </value>
+ public FileDescriptorProto Proto
+ {
+ get { return proto; }
+ }
+
+ /// <value>
+ /// The <see cref="DescriptorProtos.FileOptions" /> defined in <c>descriptor.proto</c>.
+ /// </value>
+ public FileOptions Options
+ {
+ get { return proto.Options; }
+ }
+
+ /// <value>
+ /// The file name.
+ /// </value>
+ public string Name
+ {
+ get { return proto.Name; }
+ }
+
+ /// <summary>
+ /// The package as declared in the .proto file. This may or may not
+ /// be equivalent to the .NET namespace of the generated classes.
+ /// </summary>
+ public string Package
+ {
+ get { return proto.Package; }
+ }
+
+ /// <value>
+ /// Unmodifiable list of top-level message types declared in this file.
+ /// </value>
+ public IList<MessageDescriptor> MessageTypes
+ {
+ get { return messageTypes; }
+ }
+
+ /// <value>
+ /// Unmodifiable list of top-level enum types declared in this file.
+ /// </value>
+ public IList<EnumDescriptor> EnumTypes
+ {
+ get { return enumTypes; }
+ }
+
+ /// <value>
+ /// Unmodifiable list of top-level services declared in this file.
+ /// </value>
+ public IList<ServiceDescriptor> Services
+ {
+ get { return services; }
+ }
+
+ /// <value>
+ /// Unmodifiable list of top-level extensions declared in this file.
+ /// </value>
+ public IList<FieldDescriptor> Extensions
+ {
+ get { return extensions; }
+ }
+
+ /// <value>
+ /// Unmodifiable list of this file's dependencies (imports).
+ /// </value>
+ public IList<FileDescriptor> Dependencies
+ {
+ get { return dependencies; }
+ }
+
+ /// <value>
+ /// Unmodifiable list of this file's public dependencies (public imports).
+ /// </value>
+ public IList<FileDescriptor> PublicDependencies
+ {
+ get { return publicDependencies; }
+ }
+
+ /// <value>
+ /// Implementation of IDescriptor.FullName - just returns the same as Name.
+ /// </value>
+ string IDescriptor.FullName
+ {
+ get { return Name; }
+ }
+
+ /// <value>
+ /// Implementation of IDescriptor.File - just returns this descriptor.
+ /// </value>
+ FileDescriptor IDescriptor.File
+ {
+ get { return this; }
+ }
+
+ /// <value>
+ /// Protocol buffer describing this descriptor.
+ /// </value>
+ IMessage IDescriptor.Proto
+ {
+ get { return Proto; }
+ }
+
+ /// <value>
+ /// Pool containing symbol descriptors.
+ /// </value>
+ internal DescriptorPool DescriptorPool
+ {
+ get { return pool; }
+ }
+
+ /// <summary>
+ /// Finds a type (message, enum, service or extension) in the file by name. Does not find nested types.
+ /// </summary>
+ /// <param name="name">The unqualified type name to look for.</param>
+ /// <typeparam name="T">The type of descriptor to look for (or ITypeDescriptor for any)</typeparam>
+ /// <returns>The type's descriptor, or null if not found.</returns>
+ public T FindTypeByName<T>(String name)
+ where T : class, IDescriptor
+ {
+ // Don't allow looking up nested types. This will make optimization
+ // easier later.
+ if (name.IndexOf('.') != -1)
+ {
+ return null;
+ }
+ if (Package.Length > 0)
+ {
+ name = Package + "." + name;
+ }
+ T result = pool.FindSymbol<T>(name);
+ if (result != null && result.File == this)
+ {
+ return result;
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// Builds a FileDescriptor from its protocol buffer representation.
+ /// </summary>
+ /// <param name="proto">The protocol message form of the FileDescriptor.</param>
+ /// <param name="dependencies">FileDescriptors corresponding to all of the
+ /// file's dependencies, in the exact order listed in the .proto file. May be null,
+ /// in which case it is treated as an empty array.</param>
+ /// <exception cref="DescriptorValidationException">If <paramref name="proto"/> is not
+ /// a valid descriptor. This can occur for a number of reasons, such as a field
+ /// having an undefined type or because two messages were defined with the same name.</exception>
+ public static FileDescriptor BuildFrom(FileDescriptorProto proto, FileDescriptor[] dependencies)
+ {
+ return BuildFrom(proto, dependencies, false);
+ }
+
+ /// <summary>
+ /// Builds a FileDescriptor from its protocol buffer representation.
+ /// </summary>
+ /// <param name="proto">The protocol message form of the FileDescriptor.</param>
+ /// <param name="dependencies">FileDescriptors corresponding to all of the
+ /// file's dependencies, in the exact order listed in the .proto file. May be null,
+ /// in which case it is treated as an empty array.</param>
+ /// <param name="allowUnknownDependencies">Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false).</param>
+ /// <exception cref="DescriptorValidationException">If <paramref name="proto"/> is not
+ /// a valid descriptor. This can occur for a number of reasons, such as a field
+ /// having an undefined type or because two messages were defined with the same name.</exception>
+ private static FileDescriptor BuildFrom(FileDescriptorProto proto, FileDescriptor[] dependencies, bool allowUnknownDependencies)
+ {
+ // Building descriptors involves two steps: translating and linking.
+ // In the translation step (implemented by FileDescriptor's
+ // constructor), we build an object tree mirroring the
+ // FileDescriptorProto's tree and put all of the descriptors into the
+ // DescriptorPool's lookup tables. In the linking step, we look up all
+ // type references in the DescriptorPool, so that, for example, a
+ // FieldDescriptor for an embedded message contains a pointer directly
+ // to the Descriptor for that message's type. We also detect undefined
+ // types in the linking step.
+ if (dependencies == null)
+ {
+ dependencies = new FileDescriptor[0];
+ }
+
+ DescriptorPool pool = new DescriptorPool(dependencies);
+ FileDescriptor result = new FileDescriptor(proto, dependencies, pool, allowUnknownDependencies);
+
+ // TODO(jonskeet): Reinstate these checks, or get rid of them entirely. They aren't in the Java code,
+ // and fail for the CustomOptions test right now. (We get "descriptor.proto" vs "google/protobuf/descriptor.proto".)
+ //if (dependencies.Length != proto.DependencyCount)
+ //{
+ // throw new DescriptorValidationException(result,
+ // "Dependencies passed to FileDescriptor.BuildFrom() don't match " +
+ // "those listed in the FileDescriptorProto.");
+ //}
+ //for (int i = 0; i < proto.DependencyCount; i++)
+ //{
+ // if (dependencies[i].Name != proto.DependencyList[i])
+ // {
+ // throw new DescriptorValidationException(result,
+ // "Dependencies passed to FileDescriptor.BuildFrom() don't match " +
+ // "those listed in the FileDescriptorProto.");
+ // }
+ //}
+
+ result.CrossLink();
+ return result;
+ }
+
+ private void CrossLink()
+ {
+ foreach (MessageDescriptor message in messageTypes)
+ {
+ message.CrossLink();
+ }
+
+ foreach (ServiceDescriptor service in services)
+ {
+ service.CrossLink();
+ }
+
+ foreach (FieldDescriptor extension in extensions)
+ {
+ extension.CrossLink();
+ }
+
+ foreach (MessageDescriptor message in messageTypes)
+ {
+ message.CheckRequiredFields();
+ }
+ }
+
+ /// <summary>
+ /// This method is to be called by generated code only. It is equivalent
+ /// to BuildFrom except that the FileDescriptorProto is encoded in
+ /// protocol buffer wire format. This overload is maintained for backward
+ /// compatibility with source code generated before the custom options were available
+ /// (and working).
+ /// </summary>
+ public static FileDescriptor InternalBuildGeneratedFileFrom(byte[] descriptorData, FileDescriptor[] dependencies)
+ {
+ return InternalBuildGeneratedFileFrom(descriptorData, dependencies, x => null);
+ }
+
+ /// <summary>
+ /// This delegate should be used by generated code only. When calling
+ /// FileDescriptor.InternalBuildGeneratedFileFrom, the caller can provide
+ /// a callback which assigns the global variables defined in the generated code
+ /// which point at parts of the FileDescriptor. The callback returns an
+ /// Extension Registry which contains any extensions which might be used in
+ /// the descriptor - that is, extensions of the various "Options" messages defined
+ /// in descriptor.proto. The callback may also return null to indicate that
+ /// no extensions are used in the descriptor.
+ /// </summary>
+ /// <param name="descriptor"></param>
+ /// <returns></returns>
+ public delegate ExtensionRegistry InternalDescriptorAssigner(FileDescriptor descriptor);
+
+ public static FileDescriptor InternalBuildGeneratedFileFrom(byte[] descriptorData,
+ FileDescriptor[] dependencies,
+ InternalDescriptorAssigner descriptorAssigner)
+ {
+ FileDescriptorProto proto;
+ try
+ {
+ proto = FileDescriptorProto.ParseFrom(descriptorData);
+ }
+ catch (InvalidProtocolBufferException e)
+ {
+ throw new ArgumentException("Failed to parse protocol buffer descriptor for generated code.", e);
+ }
+
+ FileDescriptor result;
+ try
+ {
+ // When building descriptors for generated code, we allow unknown
+ // dependencies by default.
+ result = BuildFrom(proto, dependencies, true);
+ }
+ catch (DescriptorValidationException e)
+ {
+ throw new ArgumentException("Invalid embedded descriptor for \"" + proto.Name + "\".", e);
+ }
+
+ ExtensionRegistry registry = descriptorAssigner(result);
+
+ if (registry != null)
+ {
+ // We must re-parse the proto using the registry.
+ try
+ {
+ proto = FileDescriptorProto.ParseFrom(descriptorData, registry);
+ }
+ catch (InvalidProtocolBufferException e)
+ {
+ throw new ArgumentException("Failed to parse protocol buffer descriptor for generated code.", e);
+ }
+
+ result.ReplaceProto(proto);
+ }
+ return result;
+ }
+
+ /// <summary>
+ /// Replace our FileDescriptorProto with the given one, which is
+ /// identical except that it might contain extensions that weren't present
+ /// in the original. This method is needed for bootstrapping when a file
+ /// defines custom options. The options may be defined in the file itself,
+ /// so we can't actually parse them until we've constructed the descriptors,
+ /// but to construct the decsriptors we have to have parsed the descriptor
+ /// protos. So, we have to parse the descriptor protos a second time after
+ /// constructing the descriptors.
+ /// </summary>
+ private void ReplaceProto(FileDescriptorProto newProto)
+ {
+ proto = newProto;
+
+ for (int i = 0; i < messageTypes.Count; i++)
+ {
+ messageTypes[i].ReplaceProto(proto.GetMessageType(i));
+ }
+
+ for (int i = 0; i < enumTypes.Count; i++)
+ {
+ enumTypes[i].ReplaceProto(proto.GetEnumType(i));
+ }
+
+ for (int i = 0; i < services.Count; i++)
+ {
+ services[i].ReplaceProto(proto.GetService(i));
+ }
+
+ for (int i = 0; i < extensions.Count; i++)
+ {
+ extensions[i].ReplaceProto(proto.GetExtension(i));
+ }
+ }
+
+ public override string ToString()
+ {
+ return "FileDescriptor for " + proto.Name;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/IDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/IDescriptor.cs
new file mode 100644
index 00000000..899c1560
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/IDescriptor.cs
@@ -0,0 +1,55 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// The non-generic form of the IDescriptor interface. Useful for describing a general
+ /// descriptor.
+ /// </summary>
+ public interface IDescriptor
+ {
+ string Name { get; }
+ string FullName { get; }
+ FileDescriptor File { get; }
+ IMessage Proto { get; }
+ }
+
+ /// <summary>
+ /// Strongly-typed form of the IDescriptor interface.
+ /// </summary>
+ /// <typeparam name="TProto">Protocol buffer type underlying this descriptor type</typeparam>
+ public interface IDescriptor<TProto> : IDescriptor where TProto : IMessage
+ {
+ new TProto Proto { get; }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/IndexedDescriptorBase.cs b/csharp/src/ProtocolBuffers/Descriptors/IndexedDescriptorBase.cs
new file mode 100644
index 00000000..bdb4eb82
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/IndexedDescriptorBase.cs
@@ -0,0 +1,64 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using Google.ProtocolBuffers.DescriptorProtos;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Base class for descriptors which are also indexed. This is all of them other than
+ /// <see cref="FileDescriptor" />.
+ /// </summary>
+ public abstract class IndexedDescriptorBase<TProto, TOptions> : DescriptorBase<TProto, TOptions>
+ where TProto : IMessage<TProto>, IDescriptorProto<TOptions>
+ {
+ private readonly int index;
+
+ protected IndexedDescriptorBase(TProto proto, FileDescriptor file, string fullName, int index)
+ : base(proto, file, fullName)
+ {
+ this.index = index;
+ }
+
+ /// <value>
+ /// The index of this descriptor within its parent descriptor.
+ /// </value>
+ /// <remarks>
+ /// This returns the index of this descriptor within its parent, for
+ /// this descriptor's type. (There can be duplicate values for different
+ /// types, e.g. one enum type with index 0 and one message type with index 0.)
+ /// </remarks>
+ public int Index
+ {
+ get { return index; }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/MappedType.cs b/csharp/src/ProtocolBuffers/Descriptors/MappedType.cs
new file mode 100644
index 00000000..0a555307
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/MappedType.cs
@@ -0,0 +1,52 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Type as it's mapped onto a .NET type.
+ /// </summary>
+ public enum MappedType
+ {
+ Int32,
+ Int64,
+ UInt32,
+ UInt64,
+ Single,
+ Double,
+ Boolean,
+ String,
+ ByteString,
+ Message,
+ Enum
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/MessageDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/MessageDescriptor.cs
new file mode 100644
index 00000000..c00711b9
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/MessageDescriptor.cs
@@ -0,0 +1,297 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.DescriptorProtos;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Describes a message type.
+ /// </summary>
+ public sealed class MessageDescriptor : IndexedDescriptorBase<DescriptorProto, MessageOptions>
+ {
+ private readonly MessageDescriptor containingType;
+ private readonly IList<MessageDescriptor> nestedTypes;
+ private readonly IList<EnumDescriptor> enumTypes;
+ private readonly IList<FieldDescriptor> fields;
+ private readonly IList<FieldDescriptor> extensions;
+ private readonly IList<OneofDescriptor> oneofs;
+ private bool hasRequiredFields;
+
+ internal MessageDescriptor(DescriptorProto proto, FileDescriptor file, MessageDescriptor parent, int typeIndex)
+ : base(proto, file, ComputeFullName(file, parent, proto.Name), typeIndex)
+ {
+ containingType = parent;
+
+ oneofs = DescriptorUtil.ConvertAndMakeReadOnly(proto.OneofDeclList,
+ (oneof, index) =>
+ new OneofDescriptor(oneof, file, this, index));
+
+ nestedTypes = DescriptorUtil.ConvertAndMakeReadOnly(proto.NestedTypeList,
+ (type, index) =>
+ new MessageDescriptor(type, file, this, index));
+
+ enumTypes = DescriptorUtil.ConvertAndMakeReadOnly(proto.EnumTypeList,
+ (type, index) =>
+ new EnumDescriptor(type, file, this, index));
+
+ // TODO(jonskeet): Sort fields first?
+ fields = DescriptorUtil.ConvertAndMakeReadOnly(proto.FieldList,
+ (field, index) =>
+ new FieldDescriptor(field, file, this, index, false));
+
+ extensions = DescriptorUtil.ConvertAndMakeReadOnly(proto.ExtensionList,
+ (field, index) =>
+ new FieldDescriptor(field, file, this, index, true));
+
+ for (int i = 0; i < proto.OneofDeclCount; i++)
+ {
+ oneofs[i].fields = new FieldDescriptor[oneofs[i].FieldCount];
+ oneofs[i].fieldCount = 0;
+ }
+ for (int i = 0; i< proto.FieldCount; i++)
+ {
+ OneofDescriptor oneofDescriptor = fields[i].ContainingOneof;
+ if (oneofDescriptor != null)
+ {
+ oneofDescriptor.fields[oneofDescriptor.fieldCount++] = fields[i];
+ }
+ }
+ file.DescriptorPool.AddSymbol(this);
+ }
+
+ /// <value>
+ /// If this is a nested type, get the outer descriptor, otherwise null.
+ /// </value>
+ public MessageDescriptor ContainingType
+ {
+ get { return containingType; }
+ }
+
+ /// <value>
+ /// An unmodifiable list of this message type's fields.
+ /// </value>
+ public IList<FieldDescriptor> Fields
+ {
+ get { return fields; }
+ }
+
+ /// <value>
+ /// An unmodifiable list of this message type's extensions.
+ /// </value>
+ public IList<FieldDescriptor> Extensions
+ {
+ get { return extensions; }
+ }
+
+ /// <value>
+ /// An unmodifiable list of this message type's nested types.
+ /// </value>
+ public IList<MessageDescriptor> NestedTypes
+ {
+ get { return nestedTypes; }
+ }
+
+ /// <value>
+ /// An unmodifiable list of this message type's enum types.
+ /// </value>
+ public IList<EnumDescriptor> EnumTypes
+ {
+ get { return enumTypes; }
+ }
+
+ public IList<OneofDescriptor> Oneofs
+ {
+ get { return oneofs; }
+ }
+
+ /// <summary>
+ /// Returns a pre-computed result as to whether this message
+ /// has required fields. This includes optional fields which are
+ /// message types which in turn have required fields, and any
+ /// extension fields.
+ /// </summary>
+ internal bool HasRequiredFields
+ {
+ get { return hasRequiredFields; }
+ }
+
+ /// <summary>
+ /// Determines if the given field number is an extension.
+ /// </summary>
+ public bool IsExtensionNumber(int number)
+ {
+ foreach (DescriptorProto.Types.ExtensionRange range in Proto.ExtensionRangeList)
+ {
+ if (range.Start <= number && number < range.End)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Finds a field by field name.
+ /// </summary>
+ /// <param name="name">The unqualified name of the field (e.g. "foo").</param>
+ /// <returns>The field's descriptor, or null if not found.</returns>
+ public FieldDescriptor FindFieldByName(String name)
+ {
+ return File.DescriptorPool.FindSymbol<FieldDescriptor>(FullName + "." + name);
+ }
+
+ /// <summary>
+ /// Finds a field by field number.
+ /// </summary>
+ /// <param name="number">The field number within this message type.</param>
+ /// <returns>The field's descriptor, or null if not found.</returns>
+ public FieldDescriptor FindFieldByNumber(int number)
+ {
+ return File.DescriptorPool.FindFieldByNumber(this, number);
+ }
+
+ /// <summary>
+ /// Finds a nested descriptor by name. The is valid for fields, nested
+ /// message types and enums.
+ /// </summary>
+ /// <param name="name">The unqualified name of the descriptor, e.g. "Foo"</param>
+ /// <returns>The descriptor, or null if not found.</returns>
+ public T FindDescriptor<T>(string name)
+ where T : class, IDescriptor
+ {
+ return File.DescriptorPool.FindSymbol<T>(FullName + "." + name);
+ }
+
+ /// <summary>
+ /// Looks up and cross-links all fields, nested types, and extensions.
+ /// </summary>
+ internal void CrossLink()
+ {
+ foreach (MessageDescriptor message in nestedTypes)
+ {
+ message.CrossLink();
+ }
+
+ foreach (FieldDescriptor field in fields)
+ {
+ field.CrossLink();
+ }
+
+ foreach (FieldDescriptor extension in extensions)
+ {
+ extension.CrossLink();
+ }
+
+ foreach (OneofDescriptor oneof in oneofs)
+ {
+ // oneof.C
+ }
+ }
+
+ internal void CheckRequiredFields()
+ {
+ IDictionary<MessageDescriptor, byte> alreadySeen = new Dictionary<MessageDescriptor, byte>();
+ hasRequiredFields = CheckRequiredFields(alreadySeen);
+ }
+
+ private bool CheckRequiredFields(IDictionary<MessageDescriptor, byte> alreadySeen)
+ {
+ if (alreadySeen.ContainsKey(this))
+ {
+ // The type is already in the cache. This means that either:
+ // a. The type has no required fields.
+ // b. We are in the midst of checking if the type has required fields,
+ // somewhere up the stack. In this case, we know that if the type
+ // has any required fields, they'll be found when we return to it,
+ // and the whole call to HasRequiredFields() will return true.
+ // Therefore, we don't have to check if this type has required fields
+ // here.
+ return false;
+ }
+ alreadySeen[this] = 0; // Value is irrelevant; we want set semantics
+
+ // If the type allows extensions, an extension with message type could contain
+ // required fields, so we have to be conservative and assume such an
+ // extension exists.
+ if (Proto.ExtensionRangeCount != 0)
+ {
+ return true;
+ }
+
+ foreach (FieldDescriptor field in Fields)
+ {
+ if (field.IsRequired)
+ {
+ return true;
+ }
+ if (field.MappedType == MappedType.Message)
+ {
+ if (field.MessageType.CheckRequiredFields(alreadySeen))
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// See FileDescriptor.ReplaceProto
+ /// </summary>
+ internal override void ReplaceProto(DescriptorProto newProto)
+ {
+ base.ReplaceProto(newProto);
+
+ for (int i = 0; i < nestedTypes.Count; i++)
+ {
+ nestedTypes[i].ReplaceProto(newProto.GetNestedType(i));
+ }
+
+ for (int i = 0; i < enumTypes.Count; i++)
+ {
+ enumTypes[i].ReplaceProto(newProto.GetEnumType(i));
+ }
+
+ for (int i = 0; i < fields.Count; i++)
+ {
+ fields[i].ReplaceProto(newProto.GetField(i));
+ }
+
+ for (int i = 0; i < extensions.Count; i++)
+ {
+ extensions[i].ReplaceProto(newProto.GetExtension(i));
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/MethodDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/MethodDescriptor.cs
new file mode 100644
index 00000000..f9ede245
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/MethodDescriptor.cs
@@ -0,0 +1,94 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using Google.ProtocolBuffers.DescriptorProtos;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Describes a single method in a service.
+ /// </summary>
+ public sealed class MethodDescriptor : IndexedDescriptorBase<MethodDescriptorProto, MethodOptions>
+ {
+ private readonly ServiceDescriptor service;
+ private MessageDescriptor inputType;
+ private MessageDescriptor outputType;
+
+ /// <value>
+ /// The service this method belongs to.
+ /// </value>
+ public ServiceDescriptor Service
+ {
+ get { return service; }
+ }
+
+ /// <value>
+ /// The method's input type.
+ /// </value>
+ public MessageDescriptor InputType
+ {
+ get { return inputType; }
+ }
+
+ /// <value>
+ /// The method's input type.
+ /// </value>
+ public MessageDescriptor OutputType
+ {
+ get { return outputType; }
+ }
+
+ internal MethodDescriptor(MethodDescriptorProto proto, FileDescriptor file,
+ ServiceDescriptor parent, int index)
+ : base(proto, file, parent.FullName + "." + proto.Name, index)
+ {
+ service = parent;
+ file.DescriptorPool.AddSymbol(this);
+ }
+
+ internal void CrossLink()
+ {
+ IDescriptor lookup = File.DescriptorPool.LookupSymbol(Proto.InputType, this);
+ if (!(lookup is MessageDescriptor))
+ {
+ throw new DescriptorValidationException(this, "\"" + Proto.InputType + "\" is not a message type.");
+ }
+ inputType = (MessageDescriptor) lookup;
+
+ lookup = File.DescriptorPool.LookupSymbol(Proto.OutputType, this);
+ if (!(lookup is MessageDescriptor))
+ {
+ throw new DescriptorValidationException(this, "\"" + Proto.OutputType + "\" is not a message type.");
+ }
+ outputType = (MessageDescriptor) lookup;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/OneofDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/OneofDescriptor.cs
new file mode 100644
index 00000000..aa62853b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/OneofDescriptor.cs
@@ -0,0 +1,78 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2015 Google Inc. All rights reserved.
+// Author: jieluo@google.com (Jie Luo)
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Google.ProtocolBuffers.DescriptorProtos;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ public sealed class OneofDescriptor
+ {
+ private int index;
+ private OneofDescriptorProto proto;
+ private FileDescriptor file;
+ private MessageDescriptor containingType;
+ internal int fieldCount;
+ internal IList<FieldDescriptor> fields;
+
+ internal OneofDescriptor(OneofDescriptorProto proto, FileDescriptor file,
+ MessageDescriptor parent, int index)
+ {
+ this.proto = proto;
+ this.file = file;
+ this.index = index;
+
+ containingType = parent;
+ fieldCount = 0;
+ }
+
+ public int Index
+ {
+ get { return index; }
+ }
+
+ public MessageDescriptor ContainingType
+ {
+ get { return containingType; }
+ }
+
+ public int FieldCount
+ {
+ get { return fieldCount; }
+ }
+
+ public FieldDescriptor Field(int index)
+ {
+ return fields[index];
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers/Descriptors/PackageDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/PackageDescriptor.cs
new file mode 100644
index 00000000..02549f9c
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/PackageDescriptor.cs
@@ -0,0 +1,73 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Represents a package in the symbol table. We use PackageDescriptors
+ /// just as placeholders so that someone cannot define, say, a message type
+ /// that has the same name as an existing package.
+ /// </summary>
+ internal sealed class PackageDescriptor : IDescriptor<IMessage>
+ {
+ private readonly string name;
+ private readonly string fullName;
+ private readonly FileDescriptor file;
+
+ internal PackageDescriptor(string name, string fullName, FileDescriptor file)
+ {
+ this.file = file;
+ this.fullName = fullName;
+ this.name = name;
+ }
+
+ public IMessage Proto
+ {
+ get { return file.Proto; }
+ }
+
+ public string Name
+ {
+ get { return name; }
+ }
+
+ public string FullName
+ {
+ get { return fullName; }
+ }
+
+ public FileDescriptor File
+ {
+ get { return file; }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Descriptors/ServiceDescriptor.cs b/csharp/src/ProtocolBuffers/Descriptors/ServiceDescriptor.cs
new file mode 100644
index 00000000..417c0838
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Descriptors/ServiceDescriptor.cs
@@ -0,0 +1,89 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.DescriptorProtos;
+
+namespace Google.ProtocolBuffers.Descriptors
+{
+ /// <summary>
+ /// Describes a service type.
+ /// </summary>
+ public sealed class ServiceDescriptor : IndexedDescriptorBase<ServiceDescriptorProto, ServiceOptions>
+ {
+ private readonly IList<MethodDescriptor> methods;
+
+ public ServiceDescriptor(ServiceDescriptorProto proto, FileDescriptor file, int index)
+ : base(proto, file, ComputeFullName(file, null, proto.Name), index)
+ {
+ methods = DescriptorUtil.ConvertAndMakeReadOnly(proto.MethodList,
+ (method, i) => new MethodDescriptor(method, file, this, i));
+
+ file.DescriptorPool.AddSymbol(this);
+ }
+
+ /// <value>
+ /// An unmodifiable list of methods in this service.
+ /// </value>
+ public IList<MethodDescriptor> Methods
+ {
+ get { return methods; }
+ }
+
+ /// <summary>
+ /// Finds a method by name.
+ /// </summary>
+ /// <param name="name">The unqualified name of the method (e.g. "Foo").</param>
+ /// <returns>The method's decsriptor, or null if not found.</returns>
+ public MethodDescriptor FindMethodByName(String name)
+ {
+ return File.DescriptorPool.FindSymbol<MethodDescriptor>(FullName + "." + name);
+ }
+
+ internal void CrossLink()
+ {
+ foreach (MethodDescriptor method in methods)
+ {
+ method.CrossLink();
+ }
+ }
+
+ internal override void ReplaceProto(ServiceDescriptorProto newProto)
+ {
+ base.ReplaceProto(newProto);
+ for (int i = 0; i < methods.Count; i++)
+ {
+ methods[i].ReplaceProto(newProto.GetMethod(i));
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/DynamicMessage.cs b/csharp/src/ProtocolBuffers/DynamicMessage.cs
new file mode 100644
index 00000000..0a8772ca
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/DynamicMessage.cs
@@ -0,0 +1,624 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// An implementation of IMessage that can represent arbitrary types, given a MessageaDescriptor.
+ /// </summary>
+ public sealed partial class DynamicMessage : AbstractMessage<DynamicMessage, DynamicMessage.Builder>
+ {
+ private readonly MessageDescriptor type;
+ private readonly FieldSet fields;
+ private readonly FieldDescriptor[] oneofCase;
+ private readonly UnknownFieldSet unknownFields;
+ private int memoizedSize = -1;
+
+ /// <summary>
+ /// Creates a DynamicMessage with the given FieldSet.
+ /// </summary>
+ /// <param name="type"></param>
+ /// <param name="fields"></param>
+ /// <param name="unknownFields"></param>
+ private DynamicMessage(MessageDescriptor type, FieldSet fields,
+ FieldDescriptor[] oneofCase, UnknownFieldSet unknownFields)
+ {
+ this.type = type;
+ this.fields = fields;
+ this.oneofCase = oneofCase;
+ this.unknownFields = unknownFields;
+ }
+
+ /// <summary>
+ /// Returns a DynamicMessage representing the default instance of the given type.
+ /// </summary>
+ /// <param name="type"></param>
+ /// <returns></returns>
+ public static DynamicMessage GetDefaultInstance(MessageDescriptor type)
+ {
+ int oneofDescriptorCount = type.Proto.OneofDeclCount;
+ FieldDescriptor[] oneofCase = new FieldDescriptor[oneofDescriptorCount];
+ return new DynamicMessage(type, FieldSet.DefaultInstance, oneofCase, UnknownFieldSet.DefaultInstance);
+ }
+
+ /// <summary>
+ /// Parses a message of the given type from the given stream.
+ /// </summary>
+ public static DynamicMessage ParseFrom(MessageDescriptor type, ICodedInputStream input)
+ {
+ Builder builder = CreateBuilder(type);
+ Builder dynamicBuilder = builder.MergeFrom(input);
+ return dynamicBuilder.BuildParsed();
+ }
+
+ /// <summary>
+ /// Parse a message of the given type from the given stream and extension registry.
+ /// </summary>
+ /// <param name="type"></param>
+ /// <param name="input"></param>
+ /// <param name="extensionRegistry"></param>
+ /// <returns></returns>
+ public static DynamicMessage ParseFrom(MessageDescriptor type, ICodedInputStream input,
+ ExtensionRegistry extensionRegistry)
+ {
+ Builder builder = CreateBuilder(type);
+ Builder dynamicBuilder = builder.MergeFrom(input, extensionRegistry);
+ return dynamicBuilder.BuildParsed();
+ }
+
+ /// <summary>
+ /// Parses a message of the given type from the given stream.
+ /// </summary>
+ public static DynamicMessage ParseFrom(MessageDescriptor type, Stream input)
+ {
+ Builder builder = CreateBuilder(type);
+ Builder dynamicBuilder = builder.MergeFrom(input);
+ return dynamicBuilder.BuildParsed();
+ }
+
+ /// <summary>
+ /// Parse a message of the given type from the given stream and extension registry.
+ /// </summary>
+ /// <param name="type"></param>
+ /// <param name="input"></param>
+ /// <param name="extensionRegistry"></param>
+ /// <returns></returns>
+ public static DynamicMessage ParseFrom(MessageDescriptor type, Stream input, ExtensionRegistry extensionRegistry)
+ {
+ Builder builder = CreateBuilder(type);
+ Builder dynamicBuilder = builder.MergeFrom(input, extensionRegistry);
+ return dynamicBuilder.BuildParsed();
+ }
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of the given type and return it.
+ /// </summary>
+ public static DynamicMessage ParseFrom(MessageDescriptor type, ByteString data)
+ {
+ Builder builder = CreateBuilder(type);
+ Builder dynamicBuilder = builder.MergeFrom(data);
+ return dynamicBuilder.BuildParsed();
+ }
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of the given type and return it.
+ /// </summary>
+ public static DynamicMessage ParseFrom(MessageDescriptor type, ByteString data,
+ ExtensionRegistry extensionRegistry)
+ {
+ Builder builder = CreateBuilder(type);
+ Builder dynamicBuilder = builder.MergeFrom(data, extensionRegistry);
+ return dynamicBuilder.BuildParsed();
+ }
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of the given type and return it.
+ /// </summary>
+ public static DynamicMessage ParseFrom(MessageDescriptor type, byte[] data)
+ {
+ Builder builder = CreateBuilder(type);
+ Builder dynamicBuilder = builder.MergeFrom(data);
+ return dynamicBuilder.BuildParsed();
+ }
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of the given type and return it.
+ /// </summary>
+ public static DynamicMessage ParseFrom(MessageDescriptor type, byte[] data, ExtensionRegistry extensionRegistry)
+ {
+ Builder builder = CreateBuilder(type);
+ Builder dynamicBuilder = builder.MergeFrom(data, extensionRegistry);
+ return dynamicBuilder.BuildParsed();
+ }
+
+ /// <summary>
+ /// Constructs a builder for the given type.
+ /// </summary>
+ public static Builder CreateBuilder(MessageDescriptor type)
+ {
+ return new Builder(type);
+ }
+
+ /// <summary>
+ /// Constructs a builder for a message of the same type as <paramref name="prototype"/>,
+ /// and initializes it with the same contents.
+ /// </summary>
+ /// <param name="prototype"></param>
+ /// <returns></returns>
+ public static Builder CreateBuilder(IMessage prototype)
+ {
+ return new Builder(prototype.DescriptorForType).MergeFrom(prototype);
+ }
+
+ // -----------------------------------------------------------------
+ // Implementation of IMessage interface.
+
+ public override MessageDescriptor DescriptorForType
+ {
+ get { return type; }
+ }
+
+ public override DynamicMessage DefaultInstanceForType
+ {
+ get { return GetDefaultInstance(type); }
+ }
+
+ public override IDictionary<FieldDescriptor, object> AllFields
+ {
+ get { return fields.AllFieldDescriptors; }
+ }
+
+ public override bool HasOneof(OneofDescriptor oneof)
+ {
+ VerifyContainingOneofType(oneof);
+ FieldDescriptor field = oneofCase[oneof.Index];
+ if (field == null)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ public override FieldDescriptor OneofFieldDescriptor(OneofDescriptor oneof)
+ {
+ VerifyContainingOneofType(oneof);
+ return oneofCase[oneof.Index];
+ }
+
+ public override bool HasField(FieldDescriptor field)
+ {
+ VerifyContainingType(field);
+ return fields.HasField(field);
+ }
+
+ public override object this[FieldDescriptor field]
+ {
+ get
+ {
+ VerifyContainingType(field);
+ object result = fields[field];
+ if (result == null)
+ {
+ result = GetDefaultInstance(field.MessageType);
+ }
+ return result;
+ }
+ }
+
+ public override int GetRepeatedFieldCount(FieldDescriptor field)
+ {
+ VerifyContainingType(field);
+ return fields.GetRepeatedFieldCount(field);
+ }
+
+ public override object this[FieldDescriptor field, int index]
+ {
+ get
+ {
+ VerifyContainingType(field);
+ return fields[field, index];
+ }
+ }
+
+ public override UnknownFieldSet UnknownFields
+ {
+ get { return unknownFields; }
+ }
+
+ public bool Initialized
+ {
+ get { return fields.IsInitializedWithRespectTo(type.Fields); }
+ }
+
+ public override void WriteTo(ICodedOutputStream output)
+ {
+ fields.WriteTo(output);
+ if (type.Options.MessageSetWireFormat)
+ {
+ unknownFields.WriteAsMessageSetTo(output);
+ }
+ else
+ {
+ unknownFields.WriteTo(output);
+ }
+ }
+
+ public override int SerializedSize
+ {
+ get
+ {
+ int size = memoizedSize;
+ if (size != -1)
+ {
+ return size;
+ }
+
+ size = fields.SerializedSize;
+ if (type.Options.MessageSetWireFormat)
+ {
+ size += unknownFields.SerializedSizeAsMessageSet;
+ }
+ else
+ {
+ size += unknownFields.SerializedSize;
+ }
+
+ memoizedSize = size;
+ return size;
+ }
+ }
+
+ public override Builder CreateBuilderForType()
+ {
+ return new Builder(type);
+ }
+
+ public override Builder ToBuilder()
+ {
+ return CreateBuilderForType().MergeFrom(this);
+ }
+
+ /// <summary>
+ /// Verifies that the field is a field of this message.
+ /// </summary>
+ private void VerifyContainingType(FieldDescriptor field)
+ {
+ if (field.ContainingType != type)
+ {
+ throw new ArgumentException("FieldDescriptor does not match message type.");
+ }
+ }
+
+ /// <summary>
+ /// Verifies that the oneof is an oneof of this message.
+ /// </summary>
+ private void VerifyContainingOneofType(OneofDescriptor oneof)
+ {
+ if (oneof.ContainingType != type)
+ {
+ throw new ArgumentException("OneofDescritpor does not match message type");
+ }
+ }
+
+ /// <summary>
+ /// Builder for dynamic messages. Instances are created with DynamicMessage.CreateBuilder.
+ /// </summary>
+ public sealed partial class Builder : AbstractBuilder<DynamicMessage, Builder>
+ {
+ private readonly MessageDescriptor type;
+ private FieldSet fields;
+ private FieldDescriptor[] oneofCase;
+ private UnknownFieldSet unknownFields;
+
+ internal Builder(MessageDescriptor type)
+ {
+ this.type = type;
+ this.fields = FieldSet.CreateInstance();
+ this.unknownFields = UnknownFieldSet.DefaultInstance;
+ this.oneofCase = new FieldDescriptor[type.Proto.OneofDeclCount];
+ }
+
+ protected override Builder ThisBuilder
+ {
+ get { return this; }
+ }
+
+ public override Builder Clear()
+ {
+ fields.Clear();
+ return this;
+ }
+
+ public override Builder MergeFrom(IMessage other)
+ {
+ if (other.DescriptorForType != type)
+ {
+ throw new ArgumentException("MergeFrom(IMessage) can only merge messages of the same type.");
+ }
+ fields.MergeFrom(other);
+ MergeUnknownFields(other.UnknownFields);
+ for (int i = 0; i < oneofCase.Length; i++)
+ {
+ if (other.HasOneof(type.Oneofs[i]))
+ {
+ if (oneofCase[i] == null)
+ {
+ oneofCase[i] = other.OneofFieldDescriptor(type.Oneofs[i]);
+ } else
+ {
+ if (oneofCase[i] != other.OneofFieldDescriptor(type.Oneofs[i]))
+ {
+ fields.ClearField(oneofCase[i]);
+ oneofCase[i] = other.OneofFieldDescriptor(type.Oneofs[i]);
+ }
+ }
+ }
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(DynamicMessage other)
+ {
+ IMessage downcast = other;
+ return MergeFrom(downcast);
+ }
+
+ public override DynamicMessage Build()
+ {
+ if (fields != null && !IsInitialized)
+ {
+ throw new UninitializedMessageException(new DynamicMessage(type, fields, oneofCase, unknownFields));
+ }
+ return BuildPartial();
+ }
+
+ /// <summary>
+ /// Helper for DynamicMessage.ParseFrom() methods to call. Throws
+ /// InvalidProtocolBufferException
+ /// </summary>
+ /// <returns></returns>
+ internal DynamicMessage BuildParsed()
+ {
+ if (!IsInitialized)
+ {
+ throw new UninitializedMessageException(new DynamicMessage(type, fields, oneofCase, unknownFields)).
+ AsInvalidProtocolBufferException();
+ }
+ return BuildPartial();
+ }
+
+ public override DynamicMessage BuildPartial()
+ {
+ if (fields == null)
+ {
+ throw new InvalidOperationException("Build() has already been called on this Builder.");
+ }
+ fields.MakeImmutable();
+ DynamicMessage result = new DynamicMessage(type, fields, oneofCase, unknownFields);
+ fields = null;
+ unknownFields = null;
+ return result;
+ }
+
+ public override Builder Clone()
+ {
+ Builder result = new Builder(type);
+ result.fields.MergeFrom(fields);
+ result.oneofCase = oneofCase;
+ return result;
+ }
+
+ public override bool IsInitialized
+ {
+ get { return fields.IsInitializedWithRespectTo(type.Fields); }
+ }
+
+ public override Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
+ {
+ UnknownFieldSet.Builder unknownFieldsBuilder = UnknownFieldSet.CreateBuilder(unknownFields);
+ unknownFieldsBuilder.MergeFrom(input, extensionRegistry, this);
+ unknownFields = unknownFieldsBuilder.Build();
+ return this;
+ }
+
+ public override MessageDescriptor DescriptorForType
+ {
+ get { return type; }
+ }
+
+ public override DynamicMessage DefaultInstanceForType
+ {
+ get { return GetDefaultInstance(type); }
+ }
+
+ public override IDictionary<FieldDescriptor, object> AllFields
+ {
+ get { return fields.AllFieldDescriptors; }
+ }
+
+ public override IBuilder CreateBuilderForField(FieldDescriptor field)
+ {
+ VerifyContainingType(field);
+ if (field.MappedType != MappedType.Message)
+ {
+ throw new ArgumentException("CreateBuilderForField is only valid for fields with message type.");
+ }
+ return new Builder(field.MessageType);
+ }
+
+ public override bool HasOneof(OneofDescriptor oneof)
+ {
+ VerifyContainingOneofType(oneof);
+ FieldDescriptor field = oneofCase[oneof.Index];
+ if (field == null)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ public override FieldDescriptor OneofFieldDescriptor(OneofDescriptor oneof)
+ {
+ VerifyContainingOneofType(oneof);
+ return oneofCase[oneof.Index];
+ }
+
+ public override bool HasField(FieldDescriptor field)
+ {
+ VerifyContainingType(field);
+ return fields.HasField(field);
+ }
+
+ public override object this[FieldDescriptor field, int index]
+ {
+ get
+ {
+ VerifyContainingType(field);
+ return fields[field, index];
+ }
+ set
+ {
+ VerifyContainingType(field);
+ fields[field, index] = value;
+ }
+ }
+
+ public override object this[FieldDescriptor field]
+ {
+ get
+ {
+ VerifyContainingType(field);
+ object result = fields[field];
+ if (result == null)
+ {
+ result = GetDefaultInstance(field.MessageType);
+ }
+ return result;
+ }
+ set
+ {
+ VerifyContainingType(field);
+ OneofDescriptor oneof = field.ContainingOneof;
+ if (oneof != null)
+ {
+ int index = oneof.Index;
+ FieldDescriptor oldField = oneofCase[index];
+ if ((oldField != null) && (oldField != field))
+ {
+ fields.ClearField(oldField);
+ }
+ oneofCase[index] = field;
+ }
+ fields[field] = value;
+ }
+ }
+
+ public override Builder ClearField(FieldDescriptor field)
+ {
+ VerifyContainingType(field);
+ OneofDescriptor oneof = field.ContainingOneof;
+ if (oneof != null)
+ {
+ int index = oneof.Index;
+ if (oneofCase[index] == field)
+ {
+ oneofCase[index] = null;
+ }
+ }
+ fields.ClearField(field);
+ return this;
+ }
+
+ public override Builder ClearOneof(OneofDescriptor oneof)
+ {
+ VerifyContainingOneofType(oneof);
+ FieldDescriptor field = oneofCase[oneof.Index];
+ if (field != null)
+ {
+ ClearField(field);
+ }
+ return this;
+ }
+
+ public override int GetRepeatedFieldCount(FieldDescriptor field)
+ {
+ VerifyContainingType(field);
+ return fields.GetRepeatedFieldCount(field);
+ }
+
+ public override Builder AddRepeatedField(FieldDescriptor field, object value)
+ {
+ VerifyContainingType(field);
+ fields.AddRepeatedField(field, value);
+ return this;
+ }
+
+ public override UnknownFieldSet UnknownFields
+ {
+ get { return unknownFields; }
+ set { unknownFields = value; }
+ }
+
+ /// <summary>
+ /// Verifies that the field is a field of this message.
+ /// </summary>
+ /// <param name="field"></param>
+ private void VerifyContainingType(FieldDescriptor field)
+ {
+ if (field.ContainingType != type)
+ {
+ throw new ArgumentException("FieldDescriptor does not match message type.");
+ }
+ }
+
+ /// <summary>
+ /// Verifies that the oneof is an oneof of this message.
+ /// </summary>
+ private void VerifyContainingOneofType(OneofDescriptor oneof)
+ {
+ if (oneof.ContainingType != type)
+ {
+ throw new ArgumentException("OneofDescriptor does not match message type");
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/EnumLite.cs b/csharp/src/ProtocolBuffers/EnumLite.cs
new file mode 100644
index 00000000..1301ec2a
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/EnumLite.cs
@@ -0,0 +1,234 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+
+namespace Google.ProtocolBuffers
+{
+ ///<summary>
+ ///Interface for an enum value or value descriptor, to be used in FieldSet.
+ ///The lite library stores enum values directly in FieldSets but the full
+ ///library stores EnumValueDescriptors in order to better support reflection.
+ ///</summary>
+ public interface IEnumLite
+ {
+ int Number { get; }
+ string Name { get; }
+ }
+
+ ///<summary>
+ ///Interface for an object which maps integers to {@link EnumLite}s.
+ ///{@link Descriptors.EnumDescriptor} implements this interface by mapping
+ ///numbers to {@link Descriptors.EnumValueDescriptor}s. Additionally,
+ ///every generated enum type has a static method internalGetValueMap() which
+ ///returns an implementation of this type that maps numbers to enum values.
+ ///</summary>
+ public interface IEnumLiteMap<T> : IEnumLiteMap
+ where T : IEnumLite
+ {
+ new T FindValueByNumber(int number);
+ }
+
+ public interface IEnumLiteMap
+ {
+ bool IsValidValue(IEnumLite value);
+ IEnumLite FindValueByNumber(int number);
+ IEnumLite FindValueByName(string name);
+ }
+
+ public class EnumLiteMap<TEnum> : IEnumLiteMap<IEnumLite>
+ where TEnum : struct, IComparable, IFormattable
+ {
+ private struct EnumValue : IEnumLite
+ {
+ private readonly TEnum value;
+
+ public EnumValue(TEnum value)
+ {
+ this.value = value;
+ }
+
+ int IEnumLite.Number
+ {
+ get { return Convert.ToInt32(value); }
+ }
+
+ string IEnumLite.Name
+ {
+ get { return value.ToString(); }
+ }
+ }
+
+ public IEnumLite FindValueByNumber(int number)
+ {
+ TEnum val = default(TEnum);
+ if (EnumParser<TEnum>.TryConvert(number, ref val))
+ {
+ return new EnumValue(val);
+ }
+ return null;
+ }
+
+ public IEnumLite FindValueByName(string name)
+ {
+ TEnum val = default(TEnum);
+ if (EnumParser<TEnum>.TryConvert(name, ref val))
+ {
+ return new EnumValue(val);
+ }
+ return null;
+ }
+
+ public bool IsValidValue(IEnumLite value)
+ {
+ TEnum val = default(TEnum);
+ return EnumParser<TEnum>.TryConvert(value.Number, ref val);
+ }
+ }
+
+ public static class EnumParser<T> where T : struct, IComparable, IFormattable
+ {
+ private static readonly Dictionary<int, T> _byNumber;
+ private static Dictionary<string, T> _byName;
+
+ static EnumParser()
+ {
+ int[] array;
+ try
+ {
+#if CLIENTPROFILE
+ // It will actually be a T[], but the CLR will let us convert.
+ array = (int[])Enum.GetValues(typeof(T));
+#else
+ var temp = new List<T>();
+ foreach (var fld in typeof (T).GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static))
+ {
+ if (fld.IsLiteral && fld.FieldType == typeof(T))
+ {
+ temp.Add((T)fld.GetValue(null));
+ }
+ }
+ array = (int[])(object)temp.ToArray();
+#endif
+ }
+ catch
+ {
+ _byNumber = null;
+ return;
+ }
+
+ _byNumber = new Dictionary<int, T>(array.Length);
+ foreach (int i in array)
+ {
+ _byNumber[i] = (T)(object)i;
+ }
+ }
+
+ public static bool TryConvert(object input, ref T value)
+ {
+ if (input is int || input is T)
+ {
+ return TryConvert((int)input, ref value);
+ }
+ if (input is string)
+ {
+ return TryConvert((string)input, ref value);
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// Tries to convert an integer to its enum representation. This would take an out parameter,
+ /// but the caller uses ref, so this approach is simpler.
+ /// </summary>
+ public static bool TryConvert(int number, ref T value)
+ {
+ // null indicates an exception at construction, use native IsDefined.
+ if (_byNumber == null)
+ {
+ return Enum.IsDefined(typeof(T), number);
+ }
+ T converted;
+ if (_byNumber != null && _byNumber.TryGetValue(number, out converted))
+ {
+ value = converted;
+ return true;
+ }
+
+ return false;
+ }
+
+ /// <summary>
+ /// Tries to convert a string to its enum representation. This would take an out parameter,
+ /// but the caller uses ref, so this approach is simpler.
+ /// </summary>
+ public static bool TryConvert(string name, ref T value)
+ {
+ // null indicates an exception at construction, use native IsDefined/Parse.
+ if (_byNumber == null)
+ {
+ if (Enum.IsDefined(typeof(T), name))
+ {
+ value = (T)Enum.Parse(typeof(T), name, false);
+ return true;
+ }
+ return false;
+ }
+
+ // known race, possible multiple threads each build their own copy; however, last writer will win
+ var map = _byName;
+ if (map == null)
+ {
+ map = new Dictionary<string, T>(StringComparer.Ordinal);
+ foreach (var possible in _byNumber.Values)
+ {
+ map[possible.ToString()] = possible;
+ }
+ _byName = map;
+ }
+
+ T converted;
+ if (map.TryGetValue(name, out converted))
+ {
+ value = converted;
+ return true;
+ }
+
+ return false;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ExtendableBuilder.cs b/csharp/src/ProtocolBuffers/ExtendableBuilder.cs
new file mode 100644
index 00000000..62508e02
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ExtendableBuilder.cs
@@ -0,0 +1,212 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ public abstract partial class ExtendableBuilder<TMessage, TBuilder> : GeneratedBuilder<TMessage, TBuilder>
+ where TMessage : ExtendableMessage<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilder<TMessage, TBuilder>, new()
+ {
+ protected ExtendableBuilder()
+ {
+ }
+
+ /// <summary>
+ /// Checks if a singular extension is present
+ /// </summary>
+ public bool HasExtension<TExtension>(GeneratedExtensionBase<TExtension> extension)
+ {
+ return MessageBeingBuilt.HasExtension(extension);
+ }
+
+ /// <summary>
+ /// Returns the number of elements in a repeated extension.
+ /// </summary>
+ public int GetExtensionCount<TExtension>(GeneratedExtensionBase<IList<TExtension>> extension)
+ {
+ return MessageBeingBuilt.GetExtensionCount(extension);
+ }
+
+ /// <summary>
+ /// Returns the value of an extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionBase<TExtension> extension)
+ {
+ return MessageBeingBuilt.GetExtension(extension);
+ }
+
+ /// <summary>
+ /// Returns one element of a repeated extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionBase<IList<TExtension>> extension, int index)
+ {
+ return MessageBeingBuilt.GetExtension(extension, index);
+ }
+
+ /// <summary>
+ /// Sets the value of an extension.
+ /// </summary>
+ public TBuilder SetExtension<TExtension>(GeneratedExtensionBase<TExtension> extension, TExtension value)
+ {
+ ExtendableMessage<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions[extension.Descriptor] = extension.ToReflectionType(value);
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Sets the value of one element of a repeated extension.
+ /// </summary>
+ public TBuilder SetExtension<TExtension>(GeneratedExtensionBase<IList<TExtension>> extension, int index,
+ TExtension value)
+ {
+ ExtendableMessage<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions[extension.Descriptor, index] = extension.SingularToReflectionType(value);
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Appends a value to a repeated extension.
+ /// </summary>
+ public TBuilder AddExtension<TExtension>(GeneratedExtensionBase<IList<TExtension>> extension, TExtension value)
+ {
+ ExtendableMessage<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions.AddRepeatedField(extension.Descriptor, extension.SingularToReflectionType(value));
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Clears an extension.
+ /// </summary>
+ public TBuilder ClearExtension<TExtension>(GeneratedExtensionBase<TExtension> extension)
+ {
+ ExtendableMessage<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions.ClearField(extension.Descriptor);
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Called by subclasses to parse an unknown field or an extension.
+ /// </summary>
+ /// <returns>true unless the tag is an end-group tag</returns>
+ protected override bool ParseUnknownField(ICodedInputStream input, UnknownFieldSet.Builder unknownFields,
+ ExtensionRegistry extensionRegistry, uint tag, string fieldName)
+ {
+ return unknownFields.MergeFieldFrom(input, extensionRegistry, this, tag, fieldName);
+ }
+
+ // ---------------------------------------------------------------
+ // Reflection
+
+
+ public override object this[FieldDescriptor field, int index]
+ {
+ set
+ {
+ if (field.IsExtension)
+ {
+ ExtendableMessage<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyContainingType(field);
+ message.Extensions[field, index] = value;
+ }
+ else
+ {
+ base[field, index] = value;
+ }
+ }
+ }
+
+
+ public override object this[FieldDescriptor field]
+ {
+ set
+ {
+ if (field.IsExtension)
+ {
+ ExtendableMessage<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyContainingType(field);
+ message.Extensions[field] = value;
+ }
+ else
+ {
+ base[field] = value;
+ }
+ }
+ }
+
+ public override TBuilder ClearField(FieldDescriptor field)
+ {
+ if (field.IsExtension)
+ {
+ ExtendableMessage<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyContainingType(field);
+ message.Extensions.ClearField(field);
+ return ThisBuilder;
+ }
+ else
+ {
+ return base.ClearField(field);
+ }
+ }
+
+ public override TBuilder AddRepeatedField(FieldDescriptor field, object value)
+ {
+ if (field.IsExtension)
+ {
+ ExtendableMessage<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyContainingType(field);
+ message.Extensions.AddRepeatedField(field, value);
+ return ThisBuilder;
+ }
+ else
+ {
+ return base.AddRepeatedField(field, value);
+ }
+ }
+
+ protected void MergeExtensionFields(ExtendableMessage<TMessage, TBuilder> other)
+ {
+ MessageBeingBuilt.Extensions.MergeFrom(other.Extensions);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ExtendableBuilderLite.cs b/csharp/src/ProtocolBuffers/ExtendableBuilderLite.cs
new file mode 100644
index 00000000..7f97ccfb
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ExtendableBuilderLite.cs
@@ -0,0 +1,345 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ public abstract partial class ExtendableBuilderLite<TMessage, TBuilder> : GeneratedBuilderLite<TMessage, TBuilder>
+ where TMessage : ExtendableMessageLite<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilderLite<TMessage, TBuilder>
+ {
+ protected ExtendableBuilderLite()
+ {
+ }
+
+ /// <summary>
+ /// Checks if a singular extension is present
+ /// </summary>
+ public bool HasExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension)
+ {
+ return MessageBeingBuilt.HasExtension(extension);
+ }
+
+ /// <summary>
+ /// Returns the number of elements in a repeated extension.
+ /// </summary>
+ public int GetExtensionCount<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension)
+ {
+ return MessageBeingBuilt.GetExtensionCount(extension);
+ }
+
+ /// <summary>
+ /// Returns the value of an extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension)
+ {
+ return MessageBeingBuilt.GetExtension(extension);
+ }
+
+ /// <summary>
+ /// Returns one element of a repeated extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension,
+ int index)
+ {
+ return MessageBeingBuilt.GetExtension(extension, index);
+ }
+
+ /// <summary>
+ /// Sets the value of an extension.
+ /// </summary>
+ public TBuilder SetExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension,
+ TExtension value)
+ {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions[extension.Descriptor] = extension.ToReflectionType(value);
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Sets the value of one element of a repeated extension.
+ /// </summary>
+ public TBuilder SetExtension<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension,
+ int index, TExtension value)
+ {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions[extension.Descriptor, index] = extension.SingularToReflectionType(value);
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Appends a value to a repeated extension.
+ /// </summary>
+ public TBuilder AddExtension<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension,
+ TExtension value)
+ {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions.AddRepeatedField(extension.Descriptor, extension.SingularToReflectionType(value));
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Clears an extension.
+ /// </summary>
+ public TBuilder ClearExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension)
+ {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions.ClearField(extension.Descriptor);
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Called by subclasses to parse an unknown field or an extension.
+ /// </summary>
+ /// <returns>true unless the tag is an end-group tag</returns>
+ protected override bool ParseUnknownField(ICodedInputStream input,
+ ExtensionRegistry extensionRegistry, uint tag, string fieldName)
+ {
+ FieldSet extensions = MessageBeingBuilt.Extensions;
+
+ WireFormat.WireType wireType = WireFormat.GetTagWireType(tag);
+ int fieldNumber = WireFormat.GetTagFieldNumber(tag);
+ IGeneratedExtensionLite extension = extensionRegistry[DefaultInstanceForType, fieldNumber];
+
+ if (extension == null) //unknown field
+ {
+ return input.SkipField();
+ }
+
+ IFieldDescriptorLite field = extension.Descriptor;
+
+
+ // Unknown field or wrong wire type. Skip.
+ if (field == null)
+ {
+ return input.SkipField();
+ }
+ WireFormat.WireType expectedType = field.IsPacked
+ ? WireFormat.WireType.LengthDelimited
+ : WireFormat.GetWireType(field.FieldType);
+ if (wireType != expectedType)
+ {
+ expectedType = WireFormat.GetWireType(field.FieldType);
+ if (wireType == expectedType)
+ {
+ //Allowed as of 2.3, this is unpacked data for a packed array
+ }
+ else if (field.IsRepeated && wireType == WireFormat.WireType.LengthDelimited &&
+ (expectedType == WireFormat.WireType.Varint || expectedType == WireFormat.WireType.Fixed32 ||
+ expectedType == WireFormat.WireType.Fixed64))
+ {
+ //Allowed as of 2.3, this is packed data for an unpacked array
+ }
+ else
+ {
+ return input.SkipField();
+ }
+ }
+ if (!field.IsRepeated && wireType != WireFormat.GetWireType(field.FieldType)) //invalid wire type
+ {
+ return input.SkipField();
+ }
+
+ switch (field.FieldType)
+ {
+ case FieldType.Group:
+ case FieldType.Message:
+ {
+ if (!field.IsRepeated)
+ {
+ IMessageLite message = extensions[extension.Descriptor] as IMessageLite;
+ IBuilderLite subBuilder = (message ?? extension.MessageDefaultInstance).WeakToBuilder();
+
+ if (field.FieldType == FieldType.Group)
+ {
+ input.ReadGroup(field.FieldNumber, subBuilder, extensionRegistry);
+ }
+ else
+ {
+ input.ReadMessage(subBuilder, extensionRegistry);
+ }
+
+ extensions[field] = subBuilder.WeakBuild();
+ }
+ else
+ {
+ List<IMessageLite> list = new List<IMessageLite>();
+ if (field.FieldType == FieldType.Group)
+ {
+ input.ReadGroupArray(tag, fieldName, list, extension.MessageDefaultInstance,
+ extensionRegistry);
+ }
+ else
+ {
+ input.ReadMessageArray(tag, fieldName, list, extension.MessageDefaultInstance,
+ extensionRegistry);
+ }
+
+ foreach (IMessageLite m in list)
+ {
+ extensions.AddRepeatedField(field, m);
+ }
+ return true;
+ }
+ break;
+ }
+ case FieldType.Enum:
+ {
+ if (!field.IsRepeated)
+ {
+ object unknown;
+ IEnumLite value = null;
+ if (input.ReadEnum(ref value, out unknown, field.EnumType))
+ {
+ extensions[field] = value;
+ }
+ }
+ else
+ {
+ ICollection<object> unknown;
+ List<IEnumLite> list = new List<IEnumLite>();
+ input.ReadEnumArray(tag, fieldName, list, out unknown, field.EnumType);
+
+ foreach (IEnumLite en in list)
+ {
+ extensions.AddRepeatedField(field, en);
+ }
+ }
+ break;
+ }
+ default:
+ {
+ if (!field.IsRepeated)
+ {
+ object value = null;
+ if (input.ReadPrimitiveField(field.FieldType, ref value))
+ {
+ extensions[field] = value;
+ }
+ }
+ else
+ {
+ List<object> list = new List<object>();
+ input.ReadPrimitiveArray(field.FieldType, tag, fieldName, list);
+ foreach (object oval in list)
+ {
+ extensions.AddRepeatedField(field, oval);
+ }
+ }
+ break;
+ }
+ }
+
+ return true;
+ }
+
+ #region Reflection
+
+ public object this[IFieldDescriptorLite field, int index]
+ {
+ set
+ {
+ if (field.IsExtension)
+ {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.Extensions[field, index] = value;
+ }
+ else
+ {
+ throw new NotSupportedException("Not supported in the lite runtime.");
+ }
+ }
+ }
+
+ public object this[IFieldDescriptorLite field]
+ {
+ set
+ {
+ if (field.IsExtension)
+ {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.Extensions[field] = value;
+ }
+ else
+ {
+ throw new NotSupportedException("Not supported in the lite runtime.");
+ }
+ }
+ }
+
+ public TBuilder ClearField(IFieldDescriptorLite field)
+ {
+ if (field.IsExtension)
+ {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.Extensions.ClearField(field);
+ return ThisBuilder;
+ }
+ else
+ {
+ throw new NotSupportedException("Not supported in the lite runtime.");
+ }
+ }
+
+ public TBuilder AddRepeatedField(IFieldDescriptorLite field, object value)
+ {
+ if (field.IsExtension)
+ {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.Extensions.AddRepeatedField(field, value);
+ return ThisBuilder;
+ }
+ else
+ {
+ throw new NotSupportedException("Not supported in the lite runtime.");
+ }
+ }
+
+ protected void MergeExtensionFields(ExtendableMessageLite<TMessage, TBuilder> other)
+ {
+ MessageBeingBuilt.Extensions.MergeFrom(other.Extensions);
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ExtendableMessage.cs b/csharp/src/ProtocolBuffers/ExtendableMessage.cs
new file mode 100644
index 00000000..71cd1b38
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ExtendableMessage.cs
@@ -0,0 +1,274 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ public abstract partial class ExtendableMessage<TMessage, TBuilder> : GeneratedMessage<TMessage, TBuilder>
+ where TMessage : GeneratedMessage<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilder<TMessage, TBuilder>, new()
+ {
+ protected ExtendableMessage()
+ {
+ }
+
+ private readonly FieldSet extensions = FieldSet.CreateInstance();
+
+ /// <summary>
+ /// Access for the builder.
+ /// </summary>
+ internal FieldSet Extensions
+ {
+ get { return extensions; }
+ }
+
+ /// <summary>
+ /// Checks if a singular extension is present.
+ /// </summary>
+ public bool HasExtension<TExtension>(GeneratedExtensionBase<TExtension> extension)
+ {
+ return extensions.HasField(extension.Descriptor);
+ }
+
+ /// <summary>
+ /// Returns the number of elements in a repeated extension.
+ /// </summary>
+ public int GetExtensionCount<TExtension>(GeneratedExtensionBase<IList<TExtension>> extension)
+ {
+ return extensions.GetRepeatedFieldCount(extension.Descriptor);
+ }
+
+ /// <summary>
+ /// Returns the value of an extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionBase<TExtension> extension)
+ {
+ object value = extensions[extension.Descriptor];
+ if (value == null)
+ {
+ return (TExtension) extension.MessageDefaultInstance;
+ }
+ else
+ {
+ return (TExtension) extension.FromReflectionType(value);
+ }
+ }
+
+ /// <summary>
+ /// Returns one element of a repeated extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionBase<IList<TExtension>> extension, int index)
+ {
+ return (TExtension) extension.SingularFromReflectionType(extensions[extension.Descriptor, index]);
+ }
+
+ /// <summary>
+ /// Called to check if all extensions are initialized.
+ /// </summary>
+ protected bool ExtensionsAreInitialized
+ {
+ get { return extensions.IsInitialized; }
+ }
+
+ public override bool IsInitialized
+ {
+ get { return base.IsInitialized && ExtensionsAreInitialized; }
+ }
+
+ #region Reflection
+
+ public override IDictionary<FieldDescriptor, object> AllFields
+ {
+ get
+ {
+ IDictionary<FieldDescriptor, object> result = GetMutableFieldMap();
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in extensions.AllFields)
+ {
+ result[(FieldDescriptor) entry.Key] = entry.Value;
+ }
+ return Dictionaries.AsReadOnly(result);
+ }
+ }
+
+ public override bool HasField(FieldDescriptor field)
+ {
+ if (field.IsExtension)
+ {
+ VerifyContainingType(field);
+ return extensions.HasField(field);
+ }
+ else
+ {
+ return base.HasField(field);
+ }
+ }
+
+ public override object this[FieldDescriptor field]
+ {
+ get
+ {
+ if (field.IsExtension)
+ {
+ VerifyContainingType(field);
+ object value = extensions[field];
+ if (value == null)
+ {
+ // Lacking an ExtensionRegistry, we have no way to determine the
+ // extension's real type, so we return a DynamicMessage.
+ // TODO(jonskeet): Work out what this means
+ return DynamicMessage.GetDefaultInstance(field.MessageType);
+ }
+ else
+ {
+ return value;
+ }
+ }
+ else
+ {
+ return base[field];
+ }
+ }
+ }
+
+ public override int GetRepeatedFieldCount(FieldDescriptor field)
+ {
+ if (field.IsExtension)
+ {
+ VerifyContainingType(field);
+ return extensions.GetRepeatedFieldCount(field);
+ }
+ else
+ {
+ return base.GetRepeatedFieldCount(field);
+ }
+ }
+
+ public override object this[FieldDescriptor field, int index]
+ {
+ get
+ {
+ if (field.IsExtension)
+ {
+ VerifyContainingType(field);
+ return extensions[field, index];
+ }
+ else
+ {
+ return base[field, index];
+ }
+ }
+ }
+
+ internal void VerifyContainingType(FieldDescriptor field)
+ {
+ if (field.ContainingType != DescriptorForType)
+ {
+ throw new ArgumentException("FieldDescriptor does not match message type.");
+ }
+ }
+
+ #endregion
+
+ /// <summary>
+ /// Used by subclasses to serialize extensions. Extension ranges may be
+ /// interleaves with field numbers, but we must write them in canonical
+ /// (sorted by field number) order. This class helps us to write individual
+ /// ranges of extensions at once.
+ ///
+ /// TODO(jonskeet): See if we can improve this in terms of readability.
+ /// </summary>
+ protected class ExtensionWriter
+ {
+ private readonly IEnumerator<KeyValuePair<IFieldDescriptorLite, object>> iterator;
+ private readonly FieldSet extensions;
+ private KeyValuePair<IFieldDescriptorLite, object>? next = null;
+
+ internal ExtensionWriter(ExtendableMessage<TMessage, TBuilder> message)
+ {
+ extensions = message.extensions;
+ iterator = message.extensions.GetEnumerator();
+ if (iterator.MoveNext())
+ {
+ next = iterator.Current;
+ }
+ }
+
+ public void WriteUntil(int end, ICodedOutputStream output)
+ {
+ while (next != null && next.Value.Key.FieldNumber < end)
+ {
+ extensions.WriteField(next.Value.Key, next.Value.Value, output);
+ if (iterator.MoveNext())
+ {
+ next = iterator.Current;
+ }
+ else
+ {
+ next = null;
+ }
+ }
+ }
+ }
+
+ protected ExtensionWriter CreateExtensionWriter(ExtendableMessage<TMessage, TBuilder> message)
+ {
+ return new ExtensionWriter(message);
+ }
+
+ /// <summary>
+ /// Called by subclasses to compute the size of extensions.
+ /// </summary>
+ protected int ExtensionsSerializedSize
+ {
+ get { return extensions.SerializedSize; }
+ }
+
+ internal void VerifyExtensionContainingType<TExtension>(GeneratedExtensionBase<TExtension> extension)
+ {
+ if (extension.Descriptor.ContainingType != DescriptorForType)
+ {
+ // This can only happen if someone uses unchecked operations.
+ throw new ArgumentException("Extension is for type \"" + extension.Descriptor.ContainingType.FullName
+ + "\" which does not match message type \"" + DescriptorForType.FullName +
+ "\".");
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ExtendableMessageLite.cs b/csharp/src/ProtocolBuffers/ExtendableMessageLite.cs
new file mode 100644
index 00000000..e682475d
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ExtendableMessageLite.cs
@@ -0,0 +1,221 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.Collections;
+
+namespace Google.ProtocolBuffers
+{
+ public abstract partial class ExtendableMessageLite<TMessage, TBuilder> : GeneratedMessageLite<TMessage, TBuilder>
+ where TMessage : GeneratedMessageLite<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilderLite<TMessage, TBuilder>
+ {
+ protected ExtendableMessageLite()
+ {
+ }
+
+ private readonly FieldSet extensions = FieldSet.CreateInstance();
+
+ /// <summary>
+ /// Access for the builder.
+ /// </summary>
+ internal FieldSet Extensions
+ {
+ get { return extensions; }
+ }
+
+ public override bool Equals(object obj)
+ {
+ ExtendableMessageLite<TMessage, TBuilder> other = obj as ExtendableMessageLite<TMessage, TBuilder>;
+ return !ReferenceEquals(null, other) &&
+ Dictionaries.Equals(extensions.AllFields, other.extensions.AllFields);
+ }
+
+ public override int GetHashCode()
+ {
+ return Dictionaries.GetHashCode(extensions.AllFields);
+ }
+
+ /// <summary>
+ /// writes the extensions to the text stream
+ /// </summary>
+ public override void PrintTo(TextWriter writer)
+ {
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in extensions.AllFields)
+ {
+ string fn = string.Format("[{0}]", entry.Key.FullName);
+ if (entry.Key.IsRepeated)
+ {
+ foreach (object o in ((IEnumerable) entry.Value))
+ {
+ PrintField(fn, true, o, writer);
+ }
+ }
+ else
+ {
+ PrintField(fn, true, entry.Value, writer);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Checks if a singular extension is present.
+ /// </summary>
+ public bool HasExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension)
+ {
+ VerifyExtensionContainingType(extension);
+ return extensions.HasField(extension.Descriptor);
+ }
+
+ /// <summary>
+ /// Returns the number of elements in a repeated extension.
+ /// </summary>
+ public int GetExtensionCount<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension)
+ {
+ VerifyExtensionContainingType(extension);
+ return extensions.GetRepeatedFieldCount(extension.Descriptor);
+ }
+
+ /// <summary>
+ /// Returns the value of an extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension)
+ {
+ VerifyExtensionContainingType(extension);
+ object value = extensions[extension.Descriptor];
+ if (value == null)
+ {
+ return extension.DefaultValue;
+ }
+ else
+ {
+ return (TExtension) extension.FromReflectionType(value);
+ }
+ }
+
+ /// <summary>
+ /// Returns one element of a repeated extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension,
+ int index)
+ {
+ VerifyExtensionContainingType(extension);
+ return (TExtension) extension.SingularFromReflectionType(extensions[extension.Descriptor, index]);
+ }
+
+ /// <summary>
+ /// Called to check if all extensions are initialized.
+ /// </summary>
+ protected bool ExtensionsAreInitialized
+ {
+ get { return extensions.IsInitialized; }
+ }
+
+ public override bool IsInitialized
+ {
+ get { return ExtensionsAreInitialized; }
+ }
+
+ /// <summary>
+ /// Used by subclasses to serialize extensions. Extension ranges may be
+ /// interleaves with field numbers, but we must write them in canonical
+ /// (sorted by field number) order. This class helps us to write individual
+ /// ranges of extensions at once.
+ ///
+ /// TODO(jonskeet): See if we can improve this in terms of readability.
+ /// </summary>
+ protected class ExtensionWriter
+ {
+ private readonly IEnumerator<KeyValuePair<IFieldDescriptorLite, object>> iterator;
+ private readonly FieldSet extensions;
+ private KeyValuePair<IFieldDescriptorLite, object>? next = null;
+
+ internal ExtensionWriter(ExtendableMessageLite<TMessage, TBuilder> message)
+ {
+ extensions = message.extensions;
+ iterator = message.extensions.GetEnumerator();
+ if (iterator.MoveNext())
+ {
+ next = iterator.Current;
+ }
+ }
+
+ public void WriteUntil(int end, ICodedOutputStream output)
+ {
+ while (next != null && next.Value.Key.FieldNumber < end)
+ {
+ extensions.WriteField(next.Value.Key, next.Value.Value, output);
+ if (iterator.MoveNext())
+ {
+ next = iterator.Current;
+ }
+ else
+ {
+ next = null;
+ }
+ }
+ }
+ }
+
+ protected ExtensionWriter CreateExtensionWriter(ExtendableMessageLite<TMessage, TBuilder> message)
+ {
+ return new ExtensionWriter(message);
+ }
+
+ /// <summary>
+ /// Called by subclasses to compute the size of extensions.
+ /// </summary>
+ protected int ExtensionsSerializedSize
+ {
+ get { return extensions.SerializedSize; }
+ }
+
+ internal void VerifyExtensionContainingType<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension)
+ {
+ if (!ReferenceEquals(extension.ContainingTypeDefaultInstance, DefaultInstanceForType))
+ {
+ // This can only happen if someone uses unchecked operations.
+ throw new ArgumentException(
+ String.Format("Extension is for type \"{0}\" which does not match message type \"{1}\".",
+ extension.ContainingTypeDefaultInstance, DefaultInstanceForType
+ ));
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ExtensionInfo.cs b/csharp/src/ProtocolBuffers/ExtensionInfo.cs
new file mode 100644
index 00000000..4f11d3bb
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ExtensionInfo.cs
@@ -0,0 +1,88 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ public sealed class ExtensionInfo : IGeneratedExtensionLite
+ {
+ /// <summary>
+ /// The extension's descriptor
+ /// </summary>
+ public FieldDescriptor Descriptor { get; private set; }
+
+ IFieldDescriptorLite IGeneratedExtensionLite.Descriptor
+ {
+ get { return Descriptor; }
+ }
+
+ /// <summary>
+ /// A default instance of the extensions's type, if it has a message type,
+ /// or null otherwise.
+ /// </summary>
+ public IMessageLite DefaultInstance { get; private set; }
+
+ internal ExtensionInfo(FieldDescriptor descriptor) : this(descriptor, null)
+ {
+ }
+
+ internal ExtensionInfo(FieldDescriptor descriptor, IMessageLite defaultInstance)
+ {
+ Descriptor = descriptor;
+ DefaultInstance = defaultInstance;
+ }
+
+ #region IGeneratedExtensionLite Members
+
+ int IGeneratedExtensionLite.Number
+ {
+ get { return Descriptor.FieldNumber; }
+ }
+
+ object IGeneratedExtensionLite.ContainingType
+ {
+ get { return Descriptor.ContainingType; }
+ }
+
+ IMessageLite IGeneratedExtensionLite.MessageDefaultInstance
+ {
+ get { return DefaultInstance; }
+ }
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ExtensionRegistry.cs b/csharp/src/ProtocolBuffers/ExtensionRegistry.cs
new file mode 100644
index 00000000..7c9467b5
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ExtensionRegistry.cs
@@ -0,0 +1,215 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// A table of known extensions, searchable by name or field number. When
+ /// parsing a protocol message that might have extensions, you must provide
+ /// an <see cref="ExtensionRegistry"/> in which you have registered any extensions
+ /// that you want to be able to parse. Otherwise, those extensions will just
+ /// be treated like unknown fields.
+ /// </summary>
+ /// <example>
+ /// For example, if you had the <c>.proto</c> file:
+ /// <code>
+ /// option java_class = "MyProto";
+ ///
+ /// message Foo {
+ /// extensions 1000 to max;
+ /// }
+ ///
+ /// extend Foo {
+ /// optional int32 bar;
+ /// }
+ /// </code>
+ ///
+ /// Then you might write code like:
+ ///
+ /// <code>
+ /// ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ /// registry.Add(MyProto.Bar);
+ /// MyProto.Foo message = MyProto.Foo.ParseFrom(input, registry);
+ /// </code>
+ /// </example>
+ ///
+ /// <remarks>
+ /// <para>You might wonder why this is necessary. Two alternatives might come to
+ /// mind. First, you might imagine a system where generated extensions are
+ /// automatically registered when their containing classes are loaded. This
+ /// is a popular technique, but is bad design; among other things, it creates a
+ /// situation where behavior can change depending on what classes happen to be
+ /// loaded. It also introduces a security vulnerability, because an
+ /// unprivileged class could cause its code to be called unexpectedly from a
+ /// privileged class by registering itself as an extension of the right type.
+ /// </para>
+ /// <para>Another option you might consider is lazy parsing: do not parse an
+ /// extension until it is first requested, at which point the caller must
+ /// provide a type to use. This introduces a different set of problems. First,
+ /// it would require a mutex lock any time an extension was accessed, which
+ /// would be slow. Second, corrupt data would not be detected until first
+ /// access, at which point it would be much harder to deal with it. Third, it
+ /// could violate the expectation that message objects are immutable, since the
+ /// type provided could be any arbitrary message class. An unprivileged user
+ /// could take advantage of this to inject a mutable object into a message
+ /// belonging to privileged code and create mischief.</para>
+ /// </remarks>
+ public sealed partial class ExtensionRegistry
+ {
+ /// <summary>
+ /// Finds an extension by fully-qualified field name, in the
+ /// proto namespace, i.e. result.Descriptor.FullName will match
+ /// <paramref name="fullName"/> if a match is found. A null
+ /// reference is returned if the extension can't be found.
+ /// </summary>
+ [Obsolete("Please use the FindByName method instead.", true)]
+ public ExtensionInfo this[string fullName]
+ {
+ get
+ {
+ foreach (IGeneratedExtensionLite ext in extensionsByNumber.Values)
+ {
+ if (StringComparer.Ordinal.Equals(ext.Descriptor.FullName, fullName))
+ {
+ return ext as ExtensionInfo;
+ }
+ }
+ return null;
+ }
+ }
+
+#if !LITE
+ /// <summary>
+ /// Finds an extension by containing type and field number.
+ /// A null reference is returned if the extension can't be found.
+ /// </summary>
+ public ExtensionInfo this[MessageDescriptor containingType, int fieldNumber]
+ {
+ get
+ {
+ IGeneratedExtensionLite ret;
+ extensionsByNumber.TryGetValue(new ExtensionIntPair(containingType, fieldNumber), out ret);
+ return ret as ExtensionInfo;
+ }
+ }
+
+ public ExtensionInfo FindByName(MessageDescriptor containingType, string fieldName)
+ {
+ return FindExtensionByName(containingType, fieldName) as ExtensionInfo;
+ }
+#endif
+
+ /// <summary>
+ /// Add an extension from a generated file to the registry.
+ /// </summary>
+ public void Add<TExtension>(GeneratedExtensionBase<TExtension> extension)
+ {
+ if (extension.Descriptor.MappedType == MappedType.Message)
+ {
+ Add(new ExtensionInfo(extension.Descriptor, extension.MessageDefaultInstance));
+ }
+ else
+ {
+ Add(new ExtensionInfo(extension.Descriptor, null));
+ }
+ }
+
+ /// <summary>
+ /// Adds a non-message-type extension to the registry by descriptor.
+ /// </summary>
+ /// <param name="type"></param>
+ public void Add(FieldDescriptor type)
+ {
+ if (type.MappedType == MappedType.Message)
+ {
+ throw new ArgumentException("ExtensionRegistry.Add() must be provided a default instance "
+ + "when adding an embedded message extension.");
+ }
+ Add(new ExtensionInfo(type, null));
+ }
+
+ /// <summary>
+ /// Adds a message-type-extension to the registry by descriptor.
+ /// </summary>
+ /// <param name="type"></param>
+ /// <param name="defaultInstance"></param>
+ public void Add(FieldDescriptor type, IMessage defaultInstance)
+ {
+ if (type.MappedType != MappedType.Message)
+ {
+ throw new ArgumentException("ExtensionRegistry.Add() provided a default instance for a "
+ + "non-message extension.");
+ }
+ Add(new ExtensionInfo(type, defaultInstance));
+ }
+
+ private void Add(ExtensionInfo extension)
+ {
+ if (readOnly)
+ {
+ throw new InvalidOperationException("Cannot add entries to a read-only extension registry");
+ }
+ if (!extension.Descriptor.IsExtension)
+ {
+ throw new ArgumentException("ExtensionRegistry.add() was given a FieldDescriptor for a "
+ + "regular (non-extension) field.");
+ }
+
+ IGeneratedExtensionLite liteExtension = extension;
+ Add(liteExtension);
+
+ FieldDescriptor field = extension.Descriptor;
+ if (field.ContainingType.Options.MessageSetWireFormat
+ && field.FieldType == FieldType.Message
+ && field.IsOptional
+ && field.ExtensionScope == field.MessageType)
+ {
+ // This is an extension of a MessageSet type defined within the extension
+ // type's own scope. For backwards-compatibility, allow it to be looked
+ // up by type name.
+ Dictionary<string, IGeneratedExtensionLite> map;
+ if (extensionsByName.TryGetValue(liteExtension.ContainingType, out map))
+ {
+ map[field.MessageType.FullName] = extension;
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs b/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs
new file mode 100644
index 00000000..cc4a50bb
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ExtensionRegistryLite.cs
@@ -0,0 +1,232 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using ExtensionByNameMap = System.Collections.Generic.Dictionary<object, System.Collections.Generic.Dictionary<string, Google.ProtocolBuffers.IGeneratedExtensionLite>>;
+using ExtensionByIdMap = System.Collections.Generic.Dictionary<Google.ProtocolBuffers.ExtensionRegistry.ExtensionIntPair, Google.ProtocolBuffers.IGeneratedExtensionLite>;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// A table of known extensions, searchable by name or field number. When
+ /// parsing a protocol message that might have extensions, you must provide
+ /// an <see cref="ExtensionRegistry"/> in which you have registered any extensions
+ /// that you want to be able to parse. Otherwise, those extensions will just
+ /// be treated like unknown fields.
+ /// </summary>
+ /// <example>
+ /// For example, if you had the <c>.proto</c> file:
+ /// <code>
+ /// option java_class = "MyProto";
+ ///
+ /// message Foo {
+ /// extensions 1000 to max;
+ /// }
+ ///
+ /// extend Foo {
+ /// optional int32 bar;
+ /// }
+ /// </code>
+ ///
+ /// Then you might write code like:
+ ///
+ /// <code>
+ /// extensionRegistry registry = extensionRegistry.CreateInstance();
+ /// registry.Add(MyProto.Bar);
+ /// MyProto.Foo message = MyProto.Foo.ParseFrom(input, registry);
+ /// </code>
+ /// </example>
+ ///
+ /// <remarks>
+ /// <para>You might wonder why this is necessary. Two alternatives might come to
+ /// mind. First, you might imagine a system where generated extensions are
+ /// automatically registered when their containing classes are loaded. This
+ /// is a popular technique, but is bad design; among other things, it creates a
+ /// situation where behavior can change depending on what classes happen to be
+ /// loaded. It also introduces a security vulnerability, because an
+ /// unprivileged class could cause its code to be called unexpectedly from a
+ /// privileged class by registering itself as an extension of the right type.
+ /// </para>
+ /// <para>Another option you might consider is lazy parsing: do not parse an
+ /// extension until it is first requested, at which point the caller must
+ /// provide a type to use. This introduces a different set of problems. First,
+ /// it would require a mutex lock any time an extension was accessed, which
+ /// would be slow. Second, corrupt data would not be detected until first
+ /// access, at which point it would be much harder to deal with it. Third, it
+ /// could violate the expectation that message objects are immutable, since the
+ /// type provided could be any arbitrary message class. An unprivileged user
+ /// could take advantage of this to inject a mutable object into a message
+ /// belonging to privileged code and create mischief.</para>
+ /// </remarks>
+ public sealed partial class ExtensionRegistry
+ {
+ private static readonly ExtensionRegistry empty = new ExtensionRegistry(
+ new ExtensionByNameMap(),
+ new ExtensionByIdMap(new ExtensionIntPairEqualityComparer()),
+ true);
+
+ private readonly ExtensionByNameMap extensionsByName;
+ private readonly ExtensionByIdMap extensionsByNumber;
+
+ private readonly bool readOnly;
+
+ private ExtensionRegistry(ExtensionByNameMap byName, ExtensionByIdMap byNumber, bool readOnly)
+ {
+ this.extensionsByName = byName;
+ this.extensionsByNumber = byNumber;
+ this.readOnly = readOnly;
+ }
+
+ /// <summary>
+ /// Construct a new, empty instance.
+ /// </summary>
+ public static ExtensionRegistry CreateInstance()
+ {
+ return new ExtensionRegistry(new ExtensionByNameMap(), new ExtensionByIdMap(new ExtensionIntPairEqualityComparer()), false);
+ }
+
+ public ExtensionRegistry AsReadOnly()
+ {
+ return new ExtensionRegistry(extensionsByName, extensionsByNumber, true);
+ }
+
+ /// <summary>
+ /// Get the unmodifiable singleton empty instance.
+ /// </summary>
+ public static ExtensionRegistry Empty
+ {
+ get { return empty; }
+ }
+
+ /// <summary>
+ /// Finds an extension by containing type and field number.
+ /// A null reference is returned if the extension can't be found.
+ /// </summary>
+ public IGeneratedExtensionLite this[IMessageLite containingType, int fieldNumber]
+ {
+ get
+ {
+ IGeneratedExtensionLite ret;
+ extensionsByNumber.TryGetValue(new ExtensionIntPair(containingType, fieldNumber), out ret);
+ return ret;
+ }
+ }
+
+ public IGeneratedExtensionLite FindByName(IMessageLite defaultInstanceOfType, string fieldName)
+ {
+ return FindExtensionByName(defaultInstanceOfType, fieldName);
+ }
+
+ private IGeneratedExtensionLite FindExtensionByName(object forwhat, string fieldName)
+ {
+ IGeneratedExtensionLite extension = null;
+ Dictionary<string, IGeneratedExtensionLite> map;
+ if (extensionsByName.TryGetValue(forwhat, out map) && map.TryGetValue(fieldName, out extension))
+ {
+ return extension;
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// Add an extension from a generated file to the registry.
+ /// </summary>
+ public void Add(IGeneratedExtensionLite extension)
+ {
+ if (readOnly)
+ {
+ throw new InvalidOperationException("Cannot add entries to a read-only extension registry");
+ }
+ extensionsByNumber.Add(new ExtensionIntPair(extension.ContainingType, extension.Number), extension);
+
+ Dictionary<string, IGeneratedExtensionLite> map;
+ if (!extensionsByName.TryGetValue(extension.ContainingType, out map))
+ {
+ extensionsByName.Add(extension.ContainingType, map = new Dictionary<string, IGeneratedExtensionLite>());
+ }
+ map[extension.Descriptor.Name] = extension;
+ map[extension.Descriptor.FullName] = extension;
+ }
+
+ /// <summary>
+ /// Nested type just used to represent a pair of MessageDescriptor and int, as
+ /// the key into the "by number" map.
+ /// </summary>
+ internal struct ExtensionIntPair : IEquatable<ExtensionIntPair>
+ {
+ private readonly object msgType;
+ private readonly int number;
+
+ internal ExtensionIntPair(object msgType, int number)
+ {
+ this.msgType = msgType;
+ this.number = number;
+ }
+
+ public override int GetHashCode()
+ {
+ return msgType.GetHashCode()*((1 << 16) - 1) + number;
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (!(obj is ExtensionIntPair))
+ {
+ return false;
+ }
+ return Equals((ExtensionIntPair) obj);
+ }
+
+ public bool Equals(ExtensionIntPair other)
+ {
+ return msgType.Equals(other.msgType) && number == other.number;
+ }
+ }
+
+ internal class ExtensionIntPairEqualityComparer : IEqualityComparer<ExtensionIntPair>
+ {
+ public bool Equals(ExtensionIntPair x, ExtensionIntPair y)
+ {
+ return x.Equals(y);
+ }
+ public int GetHashCode(ExtensionIntPair obj)
+ {
+ return obj.GetHashCode();
+ }
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs b/csharp/src/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs
new file mode 100644
index 00000000..ad1a4382
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs
@@ -0,0 +1,161 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.FieldAccess
+{
+ /// <summary>
+ /// Provides access to fields in generated messages via reflection.
+ /// This type is public to allow it to be used by generated messages, which
+ /// create appropriate instances in the .proto file description class.
+ /// TODO(jonskeet): See if we can hide it somewhere...
+ /// </summary>
+ public sealed class FieldAccessorTable<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ private readonly IFieldAccessor<TMessage, TBuilder>[] accessors;
+ private readonly OneofAccessor<TMessage, TBuilder>[] oneofs;
+
+ private readonly MessageDescriptor descriptor;
+
+ public MessageDescriptor Descriptor
+ {
+ get { return descriptor; }
+ }
+
+ /// <summary>
+ /// Constructs a FieldAccessorTable for a particular message class.
+ /// Only one FieldAccessorTable should be constructed per class.
+ /// The property names should all actually correspond with the field descriptor's
+ /// CSharpOptions.PropertyName property, but bootstrapping issues currently
+ /// prevent us from using that. This may be addressed at a future time, in which case
+ /// we can keep this constructor for backwards compatibility, just ignoring the parameter.
+ /// TODO(jonskeet): Make it so.
+ /// </summary>
+ /// <param name="descriptor">The type's descriptor</param>
+ /// <param name="propertyNames">The Pascal-case names of all the field-based properties in the message.</param>
+ public FieldAccessorTable(MessageDescriptor descriptor, String[] propertyNames)
+ {
+ this.descriptor = descriptor;
+ accessors = new IFieldAccessor<TMessage, TBuilder>[descriptor.Fields.Count];
+ oneofs = new OneofAccessor<TMessage, TBuilder>[descriptor.Oneofs.Count];
+ bool supportFieldPresence = descriptor.File.Syntax == FileDescriptor.ProtoSyntax.Proto2;
+ int fieldSize = accessors.Length;
+ for (int i = 0; i < fieldSize; i++)
+ {
+ FieldDescriptor field = descriptor.Fields[i];
+ string containingOneofName = (field.ContainingOneof != null) ?
+ propertyNames[fieldSize +field.ContainingOneof.Index] : null;
+ accessors[i] = CreateAccessor(
+ field, propertyNames[i], containingOneofName, supportFieldPresence);
+ }
+ for (int i = 0; i < oneofs.Length; i++)
+ {
+ oneofs[i] = new OneofAccessor<TMessage, TBuilder>(descriptor, propertyNames[i + accessors.Length]);
+ }
+ }
+
+ /// <summary>
+ /// Creates an accessor for a single field
+ /// </summary>
+ private static IFieldAccessor<TMessage, TBuilder> CreateAccessor(
+ FieldDescriptor field, string name, string containingOneofName, bool supportFieldPresence)
+ {
+ if (field.IsRepeated)
+ {
+ switch (field.MappedType)
+ {
+ case MappedType.Message:
+ return new RepeatedMessageAccessor<TMessage, TBuilder>(name);
+ case MappedType.Enum:
+ return new RepeatedEnumAccessor<TMessage, TBuilder>(field, name);
+ default:
+ return new RepeatedPrimitiveAccessor<TMessage, TBuilder>(name);
+ }
+ }
+ else
+ {
+ switch (field.MappedType)
+ {
+ case MappedType.Message:
+ {
+ if (field.ContainingOneof != null)
+ {
+ return new SingleMessageAccessor<TMessage, TBuilder>(
+ field, name, containingOneofName, supportFieldPresence);
+ }
+ else
+ {
+ return new SingleMessageAccessor<TMessage, TBuilder>(
+ field, name, containingOneofName, true);
+ }
+ }
+ case MappedType.Enum:
+ return new SingleEnumAccessor<TMessage, TBuilder>(
+ field, name, containingOneofName, supportFieldPresence);
+ default:
+ return new SinglePrimitiveAccessor<TMessage, TBuilder>(
+ field, name, containingOneofName, supportFieldPresence);
+ }
+ }
+ }
+
+ internal IFieldAccessor<TMessage, TBuilder> this[FieldDescriptor field]
+ {
+ get
+ {
+ if (field.ContainingType != descriptor)
+ {
+ throw new ArgumentException("FieldDescriptor does not match message type.");
+ }
+ else if (field.IsExtension)
+ {
+ // If this type had extensions, it would subclass ExtendableMessage,
+ // which overrides the reflection interface to handle extensions.
+ throw new ArgumentException("This type does not have extensions.");
+ }
+ return accessors[field.Index];
+ }
+ }
+
+ internal OneofAccessor<TMessage, TBuilder> Oneof(OneofDescriptor oneof)
+ {
+ if (oneof.ContainingType != descriptor)
+ {
+ throw new ArgumentException("OneofDescriptor does not match message type");
+ }
+ return oneofs[oneof.Index];
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/IFieldAccessor.cs b/csharp/src/ProtocolBuffers/FieldAccess/IFieldAccessor.cs
new file mode 100644
index 00000000..39d3b85b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldAccess/IFieldAccessor.cs
@@ -0,0 +1,95 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+namespace Google.ProtocolBuffers.FieldAccess
+{
+ /// <summary>
+ /// Allows fields to be reflectively accessed in a smart manner.
+ /// The property descriptors for each field are created once and then cached.
+ /// In addition, this interface holds knowledge of repeated fields, builders etc.
+ /// </summary>
+ internal interface IFieldAccessor<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ /// <summary>
+ /// Indicates whether the specified message contains the field.
+ /// </summary>
+ bool Has(TMessage message);
+
+ /// <summary>
+ /// Gets the count of the repeated field in the specified message.
+ /// </summary>
+ int GetRepeatedCount(TMessage message);
+
+ /// <summary>
+ /// Clears the field in the specified builder.
+ /// </summary>
+ /// <param name="builder"></param>
+ void Clear(TBuilder builder);
+
+ /// <summary>
+ /// Creates a builder for the type of this field (which must be a message field).
+ /// </summary>
+ IBuilder CreateBuilder();
+
+ /// <summary>
+ /// Accessor for single fields
+ /// </summary>
+ object GetValue(TMessage message);
+
+ /// <summary>
+ /// Mutator for single fields
+ /// </summary>
+ void SetValue(TBuilder builder, object value);
+
+ /// <summary>
+ /// Accessor for repeated fields
+ /// </summary>
+ object GetRepeatedValue(TMessage message, int index);
+
+ /// <summary>
+ /// Mutator for repeated fields
+ /// </summary>
+ void SetRepeated(TBuilder builder, int index, object value);
+
+ /// <summary>
+ /// Adds the specified value to the field in the given builder.
+ /// </summary>
+ void AddRepeated(TBuilder builder, object value);
+
+ /// <summary>
+ /// Returns a read-only wrapper around the value of a repeated field.
+ /// </summary>
+ object GetRepeatedWrapper(TBuilder builder);
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/OneofAccessor.cs b/csharp/src/ProtocolBuffers/FieldAccess/OneofAccessor.cs
new file mode 100644
index 00000000..1a4bda76
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldAccess/OneofAccessor.cs
@@ -0,0 +1,91 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2015 Google Inc. All rights reserved.
+// Author: jieluo@google.com (Jie Luo)
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Reflection;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.FieldAccess
+{
+ /// <summary>
+ /// Access for an oneof
+ /// </summary>
+ internal class OneofAccessor<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ private readonly Func<TMessage, object> caseDelegate;
+ private readonly Func<TBuilder, IBuilder> clearDelegate;
+ private MessageDescriptor descriptor;
+
+ internal OneofAccessor(MessageDescriptor descriptor, string name)
+ {
+ this.descriptor = descriptor;
+ MethodInfo clearMethod = typeof(TBuilder).GetMethod("Clear" + name);
+ PropertyInfo caseProperty = typeof(TMessage).GetProperty(name + "Case");
+ if (clearMethod == null || caseProperty == null)
+ {
+ throw new ArgumentException("Not all required properties/methods available for oneof");
+ }
+
+
+ clearDelegate = ReflectionUtil.CreateDelegateFunc<TBuilder, IBuilder>(clearMethod);
+ caseDelegate = ReflectionUtil.CreateUpcastDelegate<TMessage>(caseProperty.GetGetMethod());
+ }
+
+ /// <summary>
+ /// Indicates whether the specified message has set any field in the oneof.
+ /// </summary>
+ public bool Has(TMessage message)
+ {
+ return ((int) caseDelegate(message) != 0);
+ }
+
+ /// <summary>
+ /// Clears the oneof in the specified builder.
+ /// </summary>
+ public void Clear(TBuilder builder)
+ {
+ clearDelegate(builder);
+ }
+
+ /// <summary>
+ /// Indicates which field in the oneof is set for specified message
+ /// </summary>
+ public virtual FieldDescriptor GetOneofFieldDescriptor(TMessage message)
+ {
+ int fieldNumber = (int) caseDelegate(message);
+ if (fieldNumber > 0)
+ {
+ return descriptor.FindFieldByNumber(fieldNumber);
+ }
+ return null;
+ }
+ }
+}
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/ReflectionUtil.cs b/csharp/src/ProtocolBuffers/FieldAccess/ReflectionUtil.cs
new file mode 100644
index 00000000..798f0dd7
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldAccess/ReflectionUtil.cs
@@ -0,0 +1,189 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Reflection;
+
+namespace Google.ProtocolBuffers.FieldAccess
+{
+ /// <summary>
+ /// The methods in this class are somewhat evil, and should not be tampered with lightly.
+ /// Basically they allow the creation of relatively weakly typed delegates from MethodInfos
+ /// which are more strongly typed. They do this by creating an appropriate strongly typed
+ /// delegate from the MethodInfo, and then calling that within an anonymous method.
+ /// Mind-bending stuff (at least to your humble narrator) but the resulting delegates are
+ /// very fast compared with calling Invoke later on.
+ /// </summary>
+ internal static class ReflectionUtil
+ {
+ /// <summary>
+ /// Empty Type[] used when calling GetProperty to force property instead of indexer fetching.
+ /// </summary>
+ internal static readonly Type[] EmptyTypes = new Type[0];
+
+ /// <summary>
+ /// Creates a delegate which will execute the given method and then return
+ /// the result as an object.
+ /// </summary>
+ public static Func<T, object> CreateUpcastDelegate<T>(MethodInfo method)
+ {
+ // The tricky bit is invoking CreateCreateUpcastDelegateImpl with the right type parameters
+ MethodInfo openImpl = typeof(ReflectionUtil).GetMethod("CreateUpcastDelegateImpl");
+ MethodInfo closedImpl = openImpl.MakeGenericMethod(typeof(T), method.ReturnType);
+ return (Func<T, object>) closedImpl.Invoke(null, new object[] {method});
+ }
+
+ /// <summary>
+ /// Method used solely for implementing CreateUpcastDelegate. Public to avoid trust issues
+ /// in low-trust scenarios.
+ /// </summary>
+ public static Func<TSource, object> CreateUpcastDelegateImpl<TSource, TResult>(MethodInfo method)
+ {
+ // Convert the reflection call into an open delegate, i.e. instead of calling x.Method()
+ // we'll call getter(x).
+ Func<TSource, TResult> getter = ReflectionUtil.CreateDelegateFunc<TSource, TResult>(method);
+
+ // Implicit upcast to object (within the delegate)
+ return delegate(TSource source) { return getter(source); };
+ }
+
+ /// <summary>
+ /// Creates a delegate which will execute the given method after casting the parameter
+ /// down from object to the required parameter type.
+ /// </summary>
+ public static Action<T, object> CreateDowncastDelegate<T>(MethodInfo method)
+ {
+ MethodInfo openImpl = typeof(ReflectionUtil).GetMethod("CreateDowncastDelegateImpl");
+ MethodInfo closedImpl = openImpl.MakeGenericMethod(typeof(T), method.GetParameters()[0].ParameterType);
+ return (Action<T, object>) closedImpl.Invoke(null, new object[] {method});
+ }
+
+ public static Action<TSource, object> CreateDowncastDelegateImpl<TSource, TParam>(MethodInfo method)
+ {
+ // Convert the reflection call into an open delegate, i.e. instead of calling x.Method(y) we'll
+ // call Method(x, y)
+ Action<TSource, TParam> call = ReflectionUtil.CreateDelegateAction<TSource, TParam>(method);
+
+ return delegate(TSource source, object parameter) { call(source, (TParam) parameter); };
+ }
+
+ /// <summary>
+ /// Creates a delegate which will execute the given method after casting the parameter
+ /// down from object to the required parameter type.
+ /// </summary>
+ public static Action<T, object> CreateDowncastDelegateIgnoringReturn<T>(MethodInfo method)
+ {
+ MethodInfo openImpl = typeof(ReflectionUtil).GetMethod("CreateDowncastDelegateIgnoringReturnImpl");
+ MethodInfo closedImpl = openImpl.MakeGenericMethod(typeof(T), method.GetParameters()[0].ParameterType,
+ method.ReturnType);
+ return (Action<T, object>) closedImpl.Invoke(null, new object[] {method});
+ }
+
+ public static Action<TSource, object> CreateDowncastDelegateIgnoringReturnImpl<TSource, TParam, TReturn>(
+ MethodInfo method)
+ {
+ // Convert the reflection call into an open delegate, i.e. instead of calling x.Method(y) we'll
+ // call Method(x, y)
+ Func<TSource, TParam, TReturn> call = ReflectionUtil.CreateDelegateFunc<TSource, TParam, TReturn>(method);
+
+ return delegate(TSource source, object parameter) { call(source, (TParam) parameter); };
+ }
+
+ /// <summary>
+ /// Creates a delegate which will execute the given static method and cast the result up to IBuilder.
+ /// </summary>
+ public static Func<IBuilder> CreateStaticUpcastDelegate(MethodInfo method)
+ {
+ MethodInfo openImpl = typeof(ReflectionUtil).GetMethod("CreateStaticUpcastDelegateImpl");
+ MethodInfo closedImpl = openImpl.MakeGenericMethod(method.ReturnType);
+ return (Func<IBuilder>) closedImpl.Invoke(null, new object[] {method});
+ }
+
+ public static Func<IBuilder> CreateStaticUpcastDelegateImpl<T>(MethodInfo method)
+ {
+ Func<T> call = ReflectionUtil.CreateDelegateFunc<T>(method);
+ return delegate { return (IBuilder) call(); };
+ }
+
+
+ internal static Func<TResult> CreateDelegateFunc<TResult>(MethodInfo method)
+ {
+#if !CF20
+ object tdelegate = Delegate.CreateDelegate(typeof(Func<TResult>), null, method);
+ return (Func<TResult>)tdelegate;
+#else
+ return delegate() { return (TResult)method.Invoke(null, null); };
+#endif
+ }
+
+ internal static Func<T, TResult> CreateDelegateFunc<T, TResult>(MethodInfo method)
+ {
+#if !CF20
+ object tdelegate = Delegate.CreateDelegate(typeof(Func<T, TResult>), null, method);
+ return (Func<T, TResult>)tdelegate;
+#else
+ if (method.IsStatic)
+ {
+ return delegate(T arg1) { return (TResult) method.Invoke(null, new object[] {arg1}); };
+ }
+ return delegate(T arg1) { return (TResult)method.Invoke(arg1, null); };
+#endif
+ }
+
+ internal static Func<T1, T2, TResult> CreateDelegateFunc<T1, T2, TResult>(MethodInfo method)
+ {
+#if !CF20
+ object tdelegate = Delegate.CreateDelegate(typeof(Func<T1, T2, TResult>), null, method);
+ return (Func<T1, T2, TResult>)tdelegate;
+#else
+ if (method.IsStatic)
+ {
+ return delegate(T1 arg1, T2 arg2) { return (TResult) method.Invoke(null, new object[] {arg1, arg2}); };
+ }
+ return delegate(T1 arg1, T2 arg2) { return (TResult)method.Invoke(arg1, new object[] { arg2 }); };
+#endif
+ }
+
+ internal static Action<T1, T2> CreateDelegateAction<T1, T2>(MethodInfo method)
+ {
+#if !CF20
+ object tdelegate = Delegate.CreateDelegate(typeof(Action<T1, T2>), null, method);
+ return (Action<T1, T2>)tdelegate;
+#else
+ if (method.IsStatic)
+ {
+ return delegate(T1 arg1, T2 arg2) { method.Invoke(null, new object[] {arg1, arg2}); };
+ }
+ return delegate(T1 arg1, T2 arg2) { method.Invoke(arg1, new object[] { arg2 }); };
+#endif
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/RepeatedEnumAccessor.cs b/csharp/src/ProtocolBuffers/FieldAccess/RepeatedEnumAccessor.cs
new file mode 100644
index 00000000..152c2e0a
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldAccess/RepeatedEnumAccessor.cs
@@ -0,0 +1,83 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.FieldAccess
+{
+ /// <summary>
+ /// Accessor for a repeated enum field.
+ /// </summary>
+ internal sealed class RepeatedEnumAccessor<TMessage, TBuilder> : RepeatedPrimitiveAccessor<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ private readonly EnumDescriptor enumDescriptor;
+
+ internal RepeatedEnumAccessor(FieldDescriptor field, string name) : base(name)
+ {
+ enumDescriptor = field.EnumType;
+ }
+
+ public override object GetValue(TMessage message)
+ {
+ List<EnumValueDescriptor> ret = new List<EnumValueDescriptor>();
+ foreach (int rawValue in (IEnumerable) base.GetValue(message))
+ {
+ ret.Add(enumDescriptor.FindValueByNumber(rawValue));
+ }
+ return Lists.AsReadOnly(ret);
+ }
+
+ public override object GetRepeatedValue(TMessage message, int index)
+ {
+ // Note: This relies on the fact that the CLR allows unboxing from an enum to
+ // its underlying value
+ int rawValue = (int) base.GetRepeatedValue(message, index);
+ return enumDescriptor.FindValueByNumber(rawValue);
+ }
+
+ public override void AddRepeated(TBuilder builder, object value)
+ {
+ ThrowHelper.ThrowIfNull(value, "value");
+ base.AddRepeated(builder, ((EnumValueDescriptor) value).Number);
+ }
+
+ public override void SetRepeated(TBuilder builder, int index, object value)
+ {
+ ThrowHelper.ThrowIfNull(value, "value");
+ base.SetRepeated(builder, index, ((EnumValueDescriptor) value).Number);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/RepeatedMessageAccessor.cs b/csharp/src/ProtocolBuffers/FieldAccess/RepeatedMessageAccessor.cs
new file mode 100644
index 00000000..fd18b904
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldAccess/RepeatedMessageAccessor.cs
@@ -0,0 +1,97 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Reflection;
+
+namespace Google.ProtocolBuffers.FieldAccess
+{
+ /// <summary>
+ /// Accessor for a repeated message field.
+ ///
+ /// TODO(jonskeet): Try to extract the commonality between this and SingleMessageAccessor.
+ /// We almost want multiple inheritance...
+ /// </summary>
+ internal sealed class RepeatedMessageAccessor<TMessage, TBuilder> : RepeatedPrimitiveAccessor<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ /// <summary>
+ /// The static method to create a builder for the property type. For example,
+ /// in a message type "Foo", a field called "bar" might be of type "Baz". This
+ /// method is Baz.CreateBuilder.
+ /// </summary>
+ private readonly Func<IBuilder> createBuilderDelegate;
+
+ internal RepeatedMessageAccessor(string name) : base(name)
+ {
+ MethodInfo createBuilderMethod = ClrType.GetMethod("CreateBuilder", EmptyTypes);
+ if (createBuilderMethod == null)
+ {
+ throw new ArgumentException("No public static CreateBuilder method declared in " + ClrType.Name);
+ }
+ createBuilderDelegate = ReflectionUtil.CreateStaticUpcastDelegate(createBuilderMethod);
+ }
+
+ /// <summary>
+ /// Creates a message of the appropriate CLR type from the given value,
+ /// which may already be of the right type or may be a dynamic message.
+ /// </summary>
+ private object CoerceType(object value)
+ {
+ ThrowHelper.ThrowIfNull(value, "value");
+ // If it's already of the right type, we're done
+ if (ClrType.IsInstanceOfType(value))
+ {
+ return value;
+ }
+
+ // No... so let's create a builder of the right type, and merge the value in.
+ IMessageLite message = (IMessageLite) value;
+ return CreateBuilder().WeakMergeFrom(message).WeakBuild();
+ }
+
+ public override void SetRepeated(TBuilder builder, int index, object value)
+ {
+ base.SetRepeated(builder, index, CoerceType(value));
+ }
+
+ public override IBuilder CreateBuilder()
+ {
+ return createBuilderDelegate();
+ }
+
+ public override void AddRepeated(TBuilder builder, object value)
+ {
+ base.AddRepeated(builder, CoerceType(value));
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/RepeatedPrimitiveAccessor.cs b/csharp/src/ProtocolBuffers/FieldAccess/RepeatedPrimitiveAccessor.cs
new file mode 100644
index 00000000..d3b926bc
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldAccess/RepeatedPrimitiveAccessor.cs
@@ -0,0 +1,158 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Collections;
+using System.Reflection;
+
+namespace Google.ProtocolBuffers.FieldAccess
+{
+ /// <summary>
+ /// Accessor for a repeated field of type int, ByteString etc.
+ /// </summary>
+ internal class RepeatedPrimitiveAccessor<TMessage, TBuilder> : IFieldAccessor<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ private readonly Type clrType;
+ private readonly Func<TMessage, object> getValueDelegate;
+ private readonly Func<TBuilder, IBuilder> clearDelegate;
+ private readonly Action<TBuilder, object> addValueDelegate;
+ private readonly Func<TBuilder, object> getRepeatedWrapperDelegate;
+ private readonly Func<TMessage, int> countDelegate;
+ private readonly MethodInfo getElementMethod;
+ private readonly MethodInfo setElementMethod;
+
+ // Replacement for Type.EmptyTypes which apparently isn't available on the compact framework
+ internal static readonly Type[] EmptyTypes = new Type[0];
+
+ /// <summary>
+ /// The CLR type of the field (int, the enum type, ByteString, the message etc).
+ /// This is taken from the return type of the method used to retrieve a single
+ /// value.
+ /// </summary>
+ protected Type ClrType
+ {
+ get { return clrType; }
+ }
+
+ internal RepeatedPrimitiveAccessor(string name)
+ {
+ PropertyInfo messageProperty = typeof(TMessage).GetProperty(name + "List");
+ PropertyInfo builderProperty = typeof(TBuilder).GetProperty(name + "List");
+ PropertyInfo countProperty = typeof(TMessage).GetProperty(name + "Count");
+ MethodInfo clearMethod = typeof(TBuilder).GetMethod("Clear" + name, EmptyTypes);
+ getElementMethod = typeof(TMessage).GetMethod("Get" + name, new Type[] {typeof(int)});
+ clrType = getElementMethod.ReturnType;
+ MethodInfo addMethod = typeof(TBuilder).GetMethod("Add" + name, new Type[] {ClrType});
+ setElementMethod = typeof(TBuilder).GetMethod("Set" + name, new Type[] {typeof(int), ClrType});
+ if (messageProperty == null
+ || builderProperty == null
+ || countProperty == null
+ || clearMethod == null
+ || addMethod == null
+ || getElementMethod == null
+ || setElementMethod == null)
+ {
+ throw new ArgumentException("Not all required properties/methods available");
+ }
+ clearDelegate = ReflectionUtil.CreateDelegateFunc<TBuilder, IBuilder>(clearMethod);
+ countDelegate = ReflectionUtil.CreateDelegateFunc<TMessage, int>(countProperty.GetGetMethod());
+ getValueDelegate = ReflectionUtil.CreateUpcastDelegate<TMessage>(messageProperty.GetGetMethod());
+ addValueDelegate = ReflectionUtil.CreateDowncastDelegateIgnoringReturn<TBuilder>(addMethod);
+ getRepeatedWrapperDelegate = ReflectionUtil.CreateUpcastDelegate<TBuilder>(builderProperty.GetGetMethod());
+ }
+
+ public bool Has(TMessage message)
+ {
+ throw new InvalidOperationException();
+ }
+
+ public virtual IBuilder CreateBuilder()
+ {
+ throw new InvalidOperationException();
+ }
+
+ public virtual object GetValue(TMessage message)
+ {
+ return getValueDelegate(message);
+ }
+
+ public void SetValue(TBuilder builder, object value)
+ {
+ // Add all the elements individually. This serves two purposes:
+ // 1) Verifies that each element has the correct type.
+ // 2) Insures that the caller cannot modify the list later on and
+ // have the modifications be reflected in the message.
+ Clear(builder);
+ foreach (object element in (IEnumerable) value)
+ {
+ AddRepeated(builder, element);
+ }
+ }
+
+ public void Clear(TBuilder builder)
+ {
+ clearDelegate(builder);
+ }
+
+ public int GetRepeatedCount(TMessage message)
+ {
+ return countDelegate(message);
+ }
+
+ public virtual object GetRepeatedValue(TMessage message, int index)
+ {
+ return getElementMethod.Invoke(message, new object[] {index});
+ }
+
+ public virtual void SetRepeated(TBuilder builder, int index, object value)
+ {
+ ThrowHelper.ThrowIfNull(value, "value");
+ setElementMethod.Invoke(builder, new object[] {index, value});
+ }
+
+ public virtual void AddRepeated(TBuilder builder, object value)
+ {
+ ThrowHelper.ThrowIfNull(value, "value");
+ addValueDelegate(builder, value);
+ }
+
+ /// <summary>
+ /// The builder class's accessor already builds a read-only wrapper for
+ /// us, which is exactly what we want.
+ /// </summary>
+ public object GetRepeatedWrapper(TBuilder builder)
+ {
+ return getRepeatedWrapperDelegate(builder);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/SingleEnumAccessor.cs b/csharp/src/ProtocolBuffers/FieldAccess/SingleEnumAccessor.cs
new file mode 100644
index 00000000..89e10179
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldAccess/SingleEnumAccessor.cs
@@ -0,0 +1,75 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.FieldAccess
+{
+ /// <summary>
+ /// Accessor for fields representing a non-repeated enum value.
+ /// </summary>
+ internal sealed class SingleEnumAccessor<TMessage, TBuilder> : SinglePrimitiveAccessor<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ private readonly EnumDescriptor enumDescriptor;
+
+ internal SingleEnumAccessor(FieldDescriptor field, string name, string containingOneofName, bool supportFieldPresence)
+ : base(field, name, containingOneofName, supportFieldPresence)
+ {
+ enumDescriptor = field.EnumType;
+ }
+
+ /// <summary>
+ /// Returns an EnumValueDescriptor representing the value in the builder.
+ /// Note that if an enum has multiple values for the same number, the descriptor
+ /// for the first value with that number will be returned.
+ /// </summary>
+ public override object GetValue(TMessage message)
+ {
+ // Note: This relies on the fact that the CLR allows unboxing from an enum to
+ // its underlying value
+ int rawValue = (int) base.GetValue(message);
+ return enumDescriptor.FindValueByNumber(rawValue);
+ }
+
+ /// <summary>
+ /// Sets the value as an enum (via an int) in the builder,
+ /// from an EnumValueDescriptor parameter.
+ /// </summary>
+ public override void SetValue(TBuilder builder, object value)
+ {
+ ThrowHelper.ThrowIfNull(value, "value");
+ EnumValueDescriptor valueDescriptor = (EnumValueDescriptor) value;
+ base.SetValue(builder, valueDescriptor.Number);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/SingleMessageAccessor.cs b/csharp/src/ProtocolBuffers/FieldAccess/SingleMessageAccessor.cs
new file mode 100644
index 00000000..9068d40a
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldAccess/SingleMessageAccessor.cs
@@ -0,0 +1,91 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Reflection;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.FieldAccess
+{
+ /// <summary>
+ /// Accessor for fields representing a non-repeated message value.
+ /// </summary>
+ internal sealed class SingleMessageAccessor<TMessage, TBuilder> : SinglePrimitiveAccessor<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ /// <summary>
+ /// The static method to create a builder for the property type. For example,
+ /// in a message type "Foo", a field called "bar" might be of type "Baz". This
+ /// method is Baz.CreateBuilder.
+ /// </summary>
+ private readonly Func<IBuilder> createBuilderDelegate;
+
+ internal SingleMessageAccessor(FieldDescriptor field, string name, string containingOneofName, bool supportFieldPresence)
+ : base(field, name, containingOneofName, supportFieldPresence)
+ {
+ MethodInfo createBuilderMethod = ClrType.GetMethod("CreateBuilder", ReflectionUtil.EmptyTypes);
+ if (createBuilderMethod == null)
+ {
+ throw new ArgumentException("No public static CreateBuilder method declared in " + ClrType.Name);
+ }
+ createBuilderDelegate = ReflectionUtil.CreateStaticUpcastDelegate(createBuilderMethod);
+ }
+
+ /// <summary>
+ /// Creates a message of the appropriate CLR type from the given value,
+ /// which may already be of the right type or may be a dynamic message.
+ /// </summary>
+ private object CoerceType(object value)
+ {
+ ThrowHelper.ThrowIfNull(value, "value");
+ // If it's already of the right type, we're done
+ if (ClrType.IsInstanceOfType(value))
+ {
+ return value;
+ }
+
+ // No... so let's create a builder of the right type, and merge the value in.
+ IMessageLite message = (IMessageLite) value;
+ return CreateBuilder().WeakMergeFrom(message).WeakBuild();
+ }
+
+ public override void SetValue(TBuilder builder, object value)
+ {
+ base.SetValue(builder, CoerceType(value));
+ }
+
+ public override IBuilder CreateBuilder()
+ {
+ return createBuilderDelegate();
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs b/csharp/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
new file mode 100644
index 00000000..035fcf3c
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldAccess/SinglePrimitiveAccessor.cs
@@ -0,0 +1,162 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Reflection;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers.FieldAccess
+{
+ /// <summary>
+ /// Access for a non-repeated field of a "primitive" type (i.e. not another message or an enum).
+ /// </summary>
+ internal class SinglePrimitiveAccessor<TMessage, TBuilder> : IFieldAccessor<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ private readonly Type clrType;
+ private readonly Func<TMessage, object> getValueDelegate;
+ private readonly Action<TBuilder, object> setValueDelegate;
+ private readonly Func<TMessage, bool> hasDelegate;
+ private readonly Func<TBuilder, IBuilder> clearDelegate;
+ private readonly Func<TMessage, object> caseDelegate;
+
+ /// <summary>
+ /// The CLR type of the field (int, the enum type, ByteString, the message etc).
+ /// As declared by the property.
+ /// </summary>
+ protected Type ClrType
+ {
+ get { return clrType; }
+ }
+
+ internal SinglePrimitiveAccessor(
+ FieldDescriptor fieldDescriptor, string name, string containingOneofName, bool supportFieldPresence)
+ {
+ PropertyInfo messageProperty = typeof(TMessage).GetProperty(name, null, ReflectionUtil.EmptyTypes);
+ PropertyInfo builderProperty = typeof(TBuilder).GetProperty(name, null, ReflectionUtil.EmptyTypes);
+ MethodInfo clearMethod = typeof(TBuilder).GetMethod("Clear" + name);
+ if (messageProperty == null || builderProperty == null || clearMethod == null)
+ {
+ throw new ArgumentException("Not all required properties/methods available");
+ }
+
+ if (supportFieldPresence)
+ {
+ PropertyInfo hasProperty = typeof(TMessage).GetProperty("Has" + name);
+ if (hasProperty == null)
+ {
+ throw new ArgumentException("Has properties not available");
+ }
+ hasDelegate = ReflectionUtil.CreateDelegateFunc<TMessage, bool>(hasProperty.GetGetMethod());
+ } else
+ {
+ if (fieldDescriptor.ContainingOneof != null)
+ {
+ PropertyInfo caseProperty = typeof(TMessage).GetProperty(containingOneofName + "Case");
+ caseDelegate = ReflectionUtil.CreateUpcastDelegate<TMessage>(caseProperty.GetGetMethod());
+ hasDelegate = message => OneofFieldNumber(message).Equals(fieldDescriptor.FieldNumber);
+ }
+ else
+ {
+ hasDelegate = message => !GetValue(message).Equals(fieldDescriptor.DefaultValue);
+ }
+ }
+
+ clrType = messageProperty.PropertyType;
+ clearDelegate = ReflectionUtil.CreateDelegateFunc<TBuilder, IBuilder>(clearMethod);
+ getValueDelegate = ReflectionUtil.CreateUpcastDelegate<TMessage>(messageProperty.GetGetMethod());
+ setValueDelegate = ReflectionUtil.CreateDowncastDelegate<TBuilder>(builderProperty.GetSetMethod());
+ }
+
+ private int OneofFieldNumber(TMessage message)
+ {
+ return (int) caseDelegate(message);
+ }
+
+ public bool Has(TMessage message)
+ {
+ return hasDelegate(message);
+ }
+
+ public void Clear(TBuilder builder)
+ {
+ clearDelegate(builder);
+ }
+
+ /// <summary>
+ /// Only valid for message types - this implementation throws InvalidOperationException.
+ /// </summary>
+ public virtual IBuilder CreateBuilder()
+ {
+ throw new InvalidOperationException();
+ }
+
+ public virtual object GetValue(TMessage message)
+ {
+ return getValueDelegate(message);
+ }
+
+ public virtual void SetValue(TBuilder builder, object value)
+ {
+ setValueDelegate(builder, value);
+ }
+
+ #region Methods only related to repeated values
+
+ public int GetRepeatedCount(TMessage message)
+ {
+ throw new InvalidOperationException();
+ }
+
+ public object GetRepeatedValue(TMessage message, int index)
+ {
+ throw new InvalidOperationException();
+ }
+
+ public void SetRepeated(TBuilder builder, int index, object value)
+ {
+ throw new InvalidOperationException();
+ }
+
+ public void AddRepeated(TBuilder builder, object value)
+ {
+ throw new InvalidOperationException();
+ }
+
+ public object GetRepeatedWrapper(TBuilder builder)
+ {
+ throw new InvalidOperationException();
+ }
+
+ #endregion
+ }
+}
diff --git a/csharp/src/ProtocolBuffers/FieldSet.cs b/csharp/src/ProtocolBuffers/FieldSet.cs
new file mode 100644
index 00000000..4177400f
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FieldSet.cs
@@ -0,0 +1,632 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ public interface IFieldDescriptorLite : IComparable<IFieldDescriptorLite>
+ {
+ bool IsRepeated { get; }
+ bool IsRequired { get; }
+ bool IsPacked { get; }
+ bool IsExtension { get; }
+ bool MessageSetWireFormat { get; } //field.ContainingType.Options.MessageSetWireFormat
+ int FieldNumber { get; }
+ string Name { get; }
+ string FullName { get; }
+ IEnumLiteMap EnumType { get; }
+ FieldType FieldType { get; }
+ MappedType MappedType { get; }
+ object DefaultValue { get; }
+ }
+
+ /// <summary>
+ /// A class which represents an arbitrary set of fields of some message type.
+ /// This is used to implement DynamicMessage, and also to represent extensions
+ /// in GeneratedMessage. This class is internal, since outside users should probably
+ /// be using DynamicMessage.
+ ///
+ /// As in the Java implementation, this class goes against the rest of the framework
+ /// in terms of mutability. Instead of having a mutable Builder class and an immutable
+ /// FieldSet class, FieldSet just has a MakeImmutable() method. This is safe so long as
+ /// all callers are careful not to let a mutable FieldSet escape into the open. This would
+ /// be impossible to guarantee if this were a public class, of course.
+ ///
+ /// All repeated fields are stored as IList[object] even
+ /// TODO(jonskeet): Finish this comment!
+ /// </summary>
+ internal sealed class FieldSet
+ {
+ private static readonly FieldSet defaultInstance =
+ new FieldSet(new Dictionary<IFieldDescriptorLite, object>()).MakeImmutable();
+
+ private IDictionary<IFieldDescriptorLite, object> fields;
+
+ private FieldSet(IDictionary<IFieldDescriptorLite, object> fields)
+ {
+ this.fields = fields;
+ }
+
+ public static FieldSet CreateInstance()
+ {
+ // Use SortedList to keep fields in the canonical order
+ return new FieldSet(new SortedDictionary<IFieldDescriptorLite, object>());
+ }
+
+ /// <summary>
+ /// Makes this FieldSet immutable, and returns it for convenience. Any
+ /// mutable repeated fields are made immutable, as well as the map itself.
+ /// </summary>
+ internal FieldSet MakeImmutable()
+ {
+ // First check if we have any repeated values
+ bool hasRepeats = false;
+ foreach (object value in fields.Values)
+ {
+ IList<object> list = value as IList<object>;
+ if (list != null && !list.IsReadOnly)
+ {
+ hasRepeats = true;
+ break;
+ }
+ }
+
+ if (hasRepeats)
+ {
+ var tmp = new SortedDictionary<IFieldDescriptorLite, object>();
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in fields)
+ {
+ IList<object> list = entry.Value as IList<object>;
+ tmp[entry.Key] = list == null ? entry.Value : Lists.AsReadOnly(list);
+ }
+ fields = tmp;
+ }
+
+ fields = Dictionaries.AsReadOnly(fields);
+
+ return this;
+ }
+
+ /// <summary>
+ /// Returns the default, immutable instance with no fields defined.
+ /// </summary>
+ internal static FieldSet DefaultInstance
+ {
+ get { return defaultInstance; }
+ }
+
+ /// <summary>
+ /// Returns an immutable mapping of fields. Note that although the mapping itself
+ /// is immutable, the entries may not be (i.e. any repeated values are represented by
+ /// mutable lists). The behaviour is not specified if the contents are mutated.
+ /// </summary>
+ internal IDictionary<IFieldDescriptorLite, object> AllFields
+ {
+ get { return Dictionaries.AsReadOnly(fields); }
+ }
+
+#if !LITE
+ /// <summary>
+ /// Force coercion to full descriptor dictionary.
+ /// </summary>
+ internal IDictionary<FieldDescriptor, object> AllFieldDescriptors
+ {
+ get
+ {
+ SortedDictionary<FieldDescriptor, object> copy =
+ new SortedDictionary<FieldDescriptor, object>();
+ foreach (KeyValuePair<IFieldDescriptorLite, object> fd in fields)
+ {
+ copy.Add((FieldDescriptor) fd.Key, fd.Value);
+ }
+ return Dictionaries.AsReadOnly(copy);
+ }
+ }
+#endif
+
+ /// <summary>
+ /// See <see cref="IMessageLite.HasField"/>.
+ /// </summary>
+ public bool HasField(IFieldDescriptorLite field)
+ {
+ if (field.IsRepeated)
+ {
+ throw new ArgumentException("HasField() can only be called on non-repeated fields.");
+ }
+
+ return fields.ContainsKey(field);
+ }
+
+ /// <summary>
+ /// Clears all fields.
+ /// </summary>
+ internal void Clear()
+ {
+ fields.Clear();
+ }
+
+ /// <summary>
+ /// See <see cref="IMessageLite.Item(IFieldDescriptorLite)"/>
+ /// </summary>
+ /// <remarks>
+ /// If the field is not set, the behaviour when fetching this property varies by field type:
+ /// <list>
+ /// <item>For singular message values, null is returned.</item>
+ /// <item>For singular non-message values, the default value of the field is returned.</item>
+ /// <item>For repeated values, an empty immutable list is returned. This will be compatible
+ /// with IList[object], regardless of the type of the repeated item.</item>
+ /// </list>
+ /// This method returns null if the field is a singular message type
+ /// and is not set; in this case it is up to the caller to fetch the
+ /// message's default instance. For repeated fields of message types,
+ /// an empty collection is returned. For repeated fields of non-message
+ /// types, null is returned.
+ /// <para />
+ /// When setting this property, any list values are copied, and each element is checked
+ /// to ensure it is of an appropriate type.
+ /// </remarks>
+ ///
+ internal object this[IFieldDescriptorLite field]
+ {
+ get
+ {
+ object result;
+ if (fields.TryGetValue(field, out result))
+ {
+ return result;
+ }
+ if (field.MappedType == MappedType.Message)
+ {
+ if (field.IsRepeated)
+ {
+ return new List<object>();
+ }
+ else
+ {
+ return null;
+ }
+ }
+ return field.DefaultValue;
+ }
+ set
+ {
+ if (field.IsRepeated)
+ {
+ List<object> list = value as List<object>;
+ if (list == null)
+ {
+ throw new ArgumentException("Wrong object type used with protocol message reflection.");
+ }
+
+ // Wrap the contents in a new list so that the caller cannot change
+ // the list's contents after setting it.
+ List<object> newList = new List<object>(list);
+ foreach (object element in newList)
+ {
+ VerifyType(field, element);
+ }
+ value = newList;
+ }
+ else
+ {
+ VerifyType(field, value);
+ }
+ fields[field] = value;
+ }
+ }
+
+ /// <summary>
+ /// See <see cref="IMessageLite.Item(IFieldDescriptorLite,int)" />
+ /// </summary>
+ internal object this[IFieldDescriptorLite field, int index]
+ {
+ get
+ {
+ if (!field.IsRepeated)
+ {
+ throw new ArgumentException(
+ "Indexer specifying field and index can only be called on repeated fields.");
+ }
+
+ return ((IList<object>) this[field])[index];
+ }
+ set
+ {
+ if (!field.IsRepeated)
+ {
+ throw new ArgumentException(
+ "Indexer specifying field and index can only be called on repeated fields.");
+ }
+ VerifyType(field, value);
+ object list;
+ if (!fields.TryGetValue(field, out list))
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ ((IList<object>) list)[index] = value;
+ }
+ }
+
+ /// <summary>
+ /// See <see cref="IBuilder{TMessage, TBuilder}.AddRepeatedField" />
+ /// </summary>
+ internal void AddRepeatedField(IFieldDescriptorLite field, object value)
+ {
+ if (!field.IsRepeated)
+ {
+ throw new ArgumentException("AddRepeatedField can only be called on repeated fields.");
+ }
+ VerifyType(field, value);
+ object list;
+ if (!fields.TryGetValue(field, out list))
+ {
+ list = new List<object>();
+ fields[field] = list;
+ }
+ ((IList<object>) list).Add(value);
+ }
+
+ /// <summary>
+ /// Returns an enumerator for the field map. Used to write the fields out.
+ /// </summary>
+ internal IEnumerator<KeyValuePair<IFieldDescriptorLite, object>> GetEnumerator()
+ {
+ return fields.GetEnumerator();
+ }
+
+ /// <summary>
+ /// See <see cref="IMessageLite.IsInitialized" />
+ /// </summary>
+ /// <remarks>
+ /// Since FieldSet itself does not have any way of knowing about
+ /// required fields that aren't actually present in the set, it is up
+ /// to the caller to check for genuinely required fields. This property
+ /// merely checks that any messages present are themselves initialized.
+ /// </remarks>
+ internal bool IsInitialized
+ {
+ get
+ {
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in fields)
+ {
+ IFieldDescriptorLite field = entry.Key;
+ if (field.MappedType == MappedType.Message)
+ {
+ if (field.IsRepeated)
+ {
+ foreach (IMessageLite message in (IEnumerable) entry.Value)
+ {
+ if (!message.IsInitialized)
+ {
+ return false;
+ }
+ }
+ }
+ else
+ {
+ if (!((IMessageLite) entry.Value).IsInitialized)
+ {
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+ }
+ }
+
+ /// <summary>
+ /// Verifies whether all the required fields in the specified message
+ /// descriptor are present in this field set, as well as whether
+ /// all the embedded messages are themselves initialized.
+ /// </summary>
+ internal bool IsInitializedWithRespectTo(IEnumerable typeFields)
+ {
+ foreach (IFieldDescriptorLite field in typeFields)
+ {
+ if (field.IsRequired && !HasField(field))
+ {
+ return false;
+ }
+ }
+ return IsInitialized;
+ }
+
+ /// <summary>
+ /// See <see cref="IBuilder{TMessage, TBuilder}.ClearField" />
+ /// </summary>
+ public void ClearField(IFieldDescriptorLite field)
+ {
+ fields.Remove(field);
+ }
+
+ /// <summary>
+ /// See <see cref="IMessageLite.GetRepeatedFieldCount" />
+ /// </summary>
+ public int GetRepeatedFieldCount(IFieldDescriptorLite field)
+ {
+ if (!field.IsRepeated)
+ {
+ throw new ArgumentException("GetRepeatedFieldCount() can only be called on repeated fields.");
+ }
+
+ return ((IList<object>) this[field]).Count;
+ }
+
+#if !LITE
+ /// <summary>
+ /// See <see cref="IBuilder{TMessage, TBuilder}.MergeFrom(IMessageLite)" />
+ /// </summary>
+ public void MergeFrom(IMessage other)
+ {
+ foreach (KeyValuePair<FieldDescriptor, object> fd in other.AllFields)
+ {
+ MergeField(fd.Key, fd.Value);
+ }
+ }
+#endif
+
+ /// <summary>
+ /// Implementation of both <c>MergeFrom</c> methods.
+ /// </summary>
+ /// <param name="otherFields"></param>
+ public void MergeFrom(FieldSet other)
+ {
+ // Note: We don't attempt to verify that other's fields have valid
+ // types. Doing so would be a losing battle. We'd have to verify
+ // all sub-messages as well, and we'd have to make copies of all of
+ // them to insure that they don't change after verification (since
+ // the IMessageLite interface itself cannot enforce immutability of
+ // implementations).
+ // TODO(jonskeet): Provide a function somewhere called MakeDeepCopy()
+ // which allows people to make secure deep copies of messages.
+
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in other.fields)
+ {
+ MergeField(entry.Key, entry.Value);
+ }
+ }
+
+ private void MergeField(IFieldDescriptorLite field, object mergeValue)
+ {
+ object existingValue;
+ fields.TryGetValue(field, out existingValue);
+ if (field.IsRepeated)
+ {
+ if (existingValue == null)
+ {
+ existingValue = new List<object>();
+ fields[field] = existingValue;
+ }
+ IList<object> list = (IList<object>) existingValue;
+ foreach (object otherValue in (IEnumerable) mergeValue)
+ {
+ list.Add(otherValue);
+ }
+ }
+ else if (field.MappedType == MappedType.Message && existingValue != null)
+ {
+ IMessageLite existingMessage = (IMessageLite) existingValue;
+ IMessageLite merged = existingMessage.WeakToBuilder()
+ .WeakMergeFrom((IMessageLite) mergeValue)
+ .WeakBuild();
+ this[field] = merged;
+ }
+ else
+ {
+ this[field] = mergeValue;
+ }
+ }
+
+ /// <summary>
+ /// See <see cref="IMessageLite.WriteTo(CodedOutputStream)" />.
+ /// </summary>
+ public void WriteTo(ICodedOutputStream output)
+ {
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in fields)
+ {
+ WriteField(entry.Key, entry.Value, output);
+ }
+ }
+
+ /// <summary>
+ /// Writes a single field to a CodedOutputStream.
+ /// </summary>
+ public void WriteField(IFieldDescriptorLite field, Object value, ICodedOutputStream output)
+ {
+ if (field.IsExtension && field.MessageSetWireFormat)
+ {
+ output.WriteMessageSetExtension(field.FieldNumber, field.Name, (IMessageLite) value);
+ }
+ else
+ {
+ if (field.IsRepeated)
+ {
+ IEnumerable valueList = (IEnumerable) value;
+ if (field.IsPacked)
+ {
+ output.WritePackedArray(field.FieldType, field.FieldNumber, field.Name, valueList);
+ }
+ else
+ {
+ output.WriteArray(field.FieldType, field.FieldNumber, field.Name, valueList);
+ }
+ }
+ else
+ {
+ output.WriteField(field.FieldType, field.FieldNumber, field.Name, value);
+ }
+ }
+ }
+
+ /// <summary>
+ /// See <see cref="IMessageLite.SerializedSize" />. It's up to the caller to
+ /// cache the resulting size if desired.
+ /// </summary>
+ public int SerializedSize
+ {
+ get
+ {
+ int size = 0;
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in fields)
+ {
+ IFieldDescriptorLite field = entry.Key;
+ object value = entry.Value;
+
+ if (field.IsExtension && field.MessageSetWireFormat)
+ {
+ size += CodedOutputStream.ComputeMessageSetExtensionSize(field.FieldNumber, (IMessageLite) value);
+ }
+ else
+ {
+ if (field.IsRepeated)
+ {
+ IEnumerable valueList = (IEnumerable) value;
+ if (field.IsPacked)
+ {
+ int dataSize = 0;
+ foreach (object element in valueList)
+ {
+ dataSize += CodedOutputStream.ComputeFieldSizeNoTag(field.FieldType, element);
+ }
+ size += dataSize + CodedOutputStream.ComputeTagSize(field.FieldNumber) +
+ CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ else
+ {
+ foreach (object element in valueList)
+ {
+ size += CodedOutputStream.ComputeFieldSize(field.FieldType, field.FieldNumber,
+ element);
+ }
+ }
+ }
+ else
+ {
+ size += CodedOutputStream.ComputeFieldSize(field.FieldType, field.FieldNumber, value);
+ }
+ }
+ }
+ return size;
+ }
+ }
+
+ /// <summary>
+ /// Verifies that the given object is of the correct type to be a valid
+ /// value for the given field.
+ /// </summary>
+ /// <remarks>
+ /// For repeated fields, this checks if the object is of the right
+ /// element type, not whether it's a list.
+ /// </remarks>
+ /// <exception cref="ArgumentException">The value is not of the right type.</exception>
+ /// <exception cref="ArgumentNullException">The value is null.</exception>
+ private static void VerifyType(IFieldDescriptorLite field, object value)
+ {
+ ThrowHelper.ThrowIfNull(value, "value");
+ bool isValid = false;
+ switch (field.MappedType)
+ {
+ case MappedType.Int32:
+ isValid = value is int;
+ break;
+ case MappedType.Int64:
+ isValid = value is long;
+ break;
+ case MappedType.UInt32:
+ isValid = value is uint;
+ break;
+ case MappedType.UInt64:
+ isValid = value is ulong;
+ break;
+ case MappedType.Single:
+ isValid = value is float;
+ break;
+ case MappedType.Double:
+ isValid = value is double;
+ break;
+ case MappedType.Boolean:
+ isValid = value is bool;
+ break;
+ case MappedType.String:
+ isValid = value is string;
+ break;
+ case MappedType.ByteString:
+ isValid = value is ByteString;
+ break;
+ case MappedType.Enum:
+ IEnumLite enumValue = value as IEnumLite;
+ isValid = enumValue != null && field.EnumType.IsValidValue(enumValue);
+ break;
+ case MappedType.Message:
+ IMessageLite messageValue = value as IMessageLite;
+ isValid = messageValue != null;
+#if !LITE
+ if (isValid && messageValue is IMessage && field is FieldDescriptor)
+ {
+ isValid = ((IMessage) messageValue).DescriptorForType == ((FieldDescriptor) field).MessageType;
+ }
+#endif
+ break;
+ }
+
+ if (!isValid)
+ {
+ // When chaining calls to SetField(), it can be hard to tell from
+ // the stack trace which exact call failed, since the whole chain is
+ // considered one line of code. So, let's make sure to include the
+ // field name and other useful info in the exception.
+ string message = "Wrong object type used with protocol message reflection.";
+#if !LITE
+ FieldDescriptor fieldinfo =
+ field as FieldDescriptor;
+ if (fieldinfo != null)
+ {
+ message += "Message type \"" + fieldinfo.ContainingType.FullName;
+ message += "\", field \"" + (fieldinfo.IsExtension ? fieldinfo.FullName : fieldinfo.Name);
+ message += "\", value was type \"" + value.GetType().Name + "\".";
+ }
+#endif
+ throw new ArgumentException(message);
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/FrameworkPortability.cs b/csharp/src/ProtocolBuffers/FrameworkPortability.cs
new file mode 100644
index 00000000..8ce81987
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/FrameworkPortability.cs
@@ -0,0 +1,111 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Globalization;
+using System.Reflection;
+using System.Text.RegularExpressions;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Class containing helpful workarounds for various platform compatibility
+ /// </summary>
+ internal static class FrameworkPortability
+ {
+#if COMPACT_FRAMEWORK
+ internal const string NewLine = "\n";
+#else
+ internal static readonly string NewLine = System.Environment.NewLine;
+#endif
+
+#if CLIENTPROFILE
+ internal const RegexOptions CompiledRegexWhereAvailable = RegexOptions.Compiled;
+#else
+ internal const RegexOptions CompiledRegexWhereAvailable = RegexOptions.None;
+#endif
+
+ internal static CultureInfo InvariantCulture
+ {
+ get { return CultureInfo.InvariantCulture; }
+ }
+
+ internal static double Int64ToDouble(long value)
+ {
+#if CLIENTPROFILE
+ return BitConverter.Int64BitsToDouble(value);
+#else
+ double[] arresult = new double[1];
+ Buffer.BlockCopy(new[] { value }, 0, arresult, 0, 8);
+ return arresult[0];
+#endif
+ }
+
+ internal static long DoubleToInt64(double value)
+ {
+#if CLIENTPROFILE
+ return BitConverter.DoubleToInt64Bits(value);
+#else
+ long[] arresult = new long[1];
+ Buffer.BlockCopy(new[] { value }, 0, arresult, 0, 8);
+ return arresult[0];
+#endif
+ }
+
+ internal static bool TryParseInt32(string text, out int number)
+ {
+ return TryParseInt32(text, NumberStyles.Any, InvariantCulture, out number);
+ }
+
+ internal static bool TryParseInt32(string text, NumberStyles style, IFormatProvider format, out int number)
+ {
+#if COMPACT_FRAMEWORK
+ try
+ {
+ number = int.Parse(text, style, format);
+ return true;
+ }
+ catch
+ {
+ number = 0;
+ return false;
+ }
+#else
+ return int.TryParse(text, style, format, out number);
+#endif
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/GeneratedBuilder.cs b/csharp/src/ProtocolBuffers/GeneratedBuilder.cs
new file mode 100644
index 00000000..0f121ae8
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/GeneratedBuilder.cs
@@ -0,0 +1,230 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.FieldAccess;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// All generated protocol message builder classes extend this class. It implements
+ /// most of the IBuilder interface using reflection. Users can ignore this class
+ /// as an implementation detail.
+ /// </summary>
+ public abstract partial class GeneratedBuilder<TMessage, TBuilder> : AbstractBuilder<TMessage, TBuilder>
+ where TMessage : GeneratedMessage<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilder<TMessage, TBuilder>, new()
+ {
+ /// <summary>
+ /// Returns the message being built at the moment.
+ /// </summary>
+ protected abstract TMessage MessageBeingBuilt { get; }
+
+ protected internal FieldAccessorTable<TMessage, TBuilder> InternalFieldAccessors
+ {
+ get { return DefaultInstanceForType.FieldAccessorsFromBuilder; }
+ }
+
+ public override IDictionary<FieldDescriptor, object> AllFields
+ {
+ get { return MessageBeingBuilt.AllFields; }
+ }
+
+ public override object this[FieldDescriptor field]
+ {
+ get
+ {
+ // For repeated fields, the underlying list object is still modifiable at this point.
+ // Make sure not to expose the modifiable list to the caller.
+ return field.IsRepeated
+ ? InternalFieldAccessors[field].GetRepeatedWrapper(ThisBuilder)
+ : MessageBeingBuilt[field];
+ }
+ set { InternalFieldAccessors[field].SetValue(ThisBuilder, value); }
+ }
+
+ /// <summary>
+ /// Called by derived classes to parse an unknown field.
+ /// </summary>
+ /// <returns>true unless the tag is an end-group tag</returns>
+ protected virtual bool ParseUnknownField(ICodedInputStream input, UnknownFieldSet.Builder unknownFields,
+ ExtensionRegistry extensionRegistry, uint tag, string fieldName)
+ {
+ return unknownFields.MergeFieldFrom(tag, input);
+ }
+
+ public override MessageDescriptor DescriptorForType
+ {
+ get { return DefaultInstanceForType.DescriptorForType; }
+ }
+
+ public override int GetRepeatedFieldCount(FieldDescriptor field)
+ {
+ return MessageBeingBuilt.GetRepeatedFieldCount(field);
+ }
+
+ public override object this[FieldDescriptor field, int index]
+ {
+ get { return MessageBeingBuilt[field, index]; }
+ set { InternalFieldAccessors[field].SetRepeated(ThisBuilder, index, value); }
+ }
+
+ public override bool HasOneof(OneofDescriptor oneof)
+ {
+ return MessageBeingBuilt.HasOneof(oneof);
+ }
+
+ public override FieldDescriptor OneofFieldDescriptor(OneofDescriptor oneof)
+ {
+ return MessageBeingBuilt.OneofFieldDescriptor(oneof);
+ }
+
+ public override bool HasField(FieldDescriptor field)
+ {
+ return MessageBeingBuilt.HasField(field);
+ }
+
+ public override IBuilder CreateBuilderForField(FieldDescriptor field)
+ {
+ return InternalFieldAccessors[field].CreateBuilder();
+ }
+
+ public override TBuilder ClearField(FieldDescriptor field)
+ {
+ InternalFieldAccessors[field].Clear(ThisBuilder);
+ return ThisBuilder;
+ }
+
+ public override TBuilder ClearOneof(OneofDescriptor oneof)
+ {
+ InternalFieldAccessors.Oneof(oneof).Clear(ThisBuilder);
+ return ThisBuilder;
+ }
+
+ public override TBuilder MergeFrom(TMessage other)
+ {
+ if (other.DescriptorForType != InternalFieldAccessors.Descriptor)
+ {
+ throw new ArgumentException("Message type mismatch");
+ }
+
+ foreach (KeyValuePair<FieldDescriptor, object> entry in other.AllFields)
+ {
+ FieldDescriptor field = entry.Key;
+ if (field.IsRepeated)
+ {
+ // Concatenate repeated fields
+ foreach (object element in (IEnumerable) entry.Value)
+ {
+ AddRepeatedField(field, element);
+ }
+ }
+ else if (field.MappedType == MappedType.Message && HasField(field))
+ {
+ // Merge singular embedded messages
+ IMessageLite oldValue = (IMessageLite) this[field];
+ this[field] = oldValue.WeakCreateBuilderForType()
+ .WeakMergeFrom(oldValue)
+ .WeakMergeFrom((IMessageLite) entry.Value)
+ .WeakBuildPartial();
+ }
+ else
+ {
+ // Just overwrite
+ this[field] = entry.Value;
+ }
+ }
+
+ //Fix for unknown fields not merging, see java's AbstractMessage.Builder<T> line 236
+ MergeUnknownFields(other.UnknownFields);
+
+ return ThisBuilder;
+ }
+
+ public override TBuilder MergeUnknownFields(UnknownFieldSet unknownFields)
+ {
+ if (unknownFields != UnknownFieldSet.DefaultInstance)
+ {
+ TMessage result = MessageBeingBuilt;
+ result.SetUnknownFields(UnknownFieldSet.CreateBuilder(result.UnknownFields)
+ .MergeFrom(unknownFields)
+ .Build());
+ }
+ return ThisBuilder;
+ }
+
+ public override TBuilder AddRepeatedField(FieldDescriptor field, object value)
+ {
+ InternalFieldAccessors[field].AddRepeated(ThisBuilder, value);
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Like Build(), but will wrap UninitializedMessageException in
+ /// InvalidProtocolBufferException.
+ /// </summary>
+ public TMessage BuildParsed()
+ {
+ if (!IsInitialized)
+ {
+ throw new UninitializedMessageException(MessageBeingBuilt).AsInvalidProtocolBufferException();
+ }
+ return BuildPartial();
+ }
+
+ /// <summary>
+ /// Implementation of <see cref="IBuilder{TMessage, TBuilder}.Build" />.
+ /// </summary>
+ public override TMessage Build()
+ {
+ // If the message is null, we'll throw a more appropriate exception in BuildPartial.
+ if (!IsInitialized)
+ {
+ throw new UninitializedMessageException(MessageBeingBuilt);
+ }
+ return BuildPartial();
+ }
+
+ public override UnknownFieldSet UnknownFields
+ {
+ get { return MessageBeingBuilt.UnknownFields; }
+ set { MessageBeingBuilt.SetUnknownFields(value); }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/GeneratedBuilderLite.cs b/csharp/src/ProtocolBuffers/GeneratedBuilderLite.cs
new file mode 100644
index 00000000..5783c987
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/GeneratedBuilderLite.cs
@@ -0,0 +1,100 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// All generated protocol message builder classes extend this class. It implements
+ /// most of the IBuilder interface using reflection. Users can ignore this class
+ /// as an implementation detail.
+ /// </summary>
+ public abstract partial class GeneratedBuilderLite<TMessage, TBuilder> : AbstractBuilderLite<TMessage, TBuilder>
+ where TMessage : GeneratedMessageLite<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilderLite<TMessage, TBuilder>
+ {
+ /// <summary>
+ /// Returns the message being built at the moment.
+ /// </summary>
+ protected abstract TMessage MessageBeingBuilt { get; }
+
+ public override TBuilder MergeFrom(IMessageLite other)
+ {
+ //do nothing, Lite runtime does not support cross-message merges
+ return ThisBuilder;
+ }
+
+ public abstract TBuilder MergeFrom(TMessage other);
+
+ /// <summary>
+ /// Called by derived classes to parse an unknown field.
+ /// </summary>
+ /// <returns>true unless the tag is an end-group tag</returns>
+ protected virtual bool ParseUnknownField(ICodedInputStream input,
+ ExtensionRegistry extensionRegistry, uint tag, string fieldName)
+ {
+ return input.SkipField();
+ }
+
+ /// <summary>
+ /// Like Build(), but will wrap UninitializedMessageException in
+ /// InvalidProtocolBufferException.
+ /// </summary>
+ public TMessage BuildParsed()
+ {
+ if (!IsInitialized)
+ {
+ throw new UninitializedMessageException(MessageBeingBuilt).AsInvalidProtocolBufferException();
+ }
+ return BuildPartial();
+ }
+
+ /// <summary>
+ /// Implementation of <see cref="IBuilder{TMessage, TBuilder}.Build" />.
+ /// </summary>
+ public override TMessage Build()
+ {
+ // If the message is null, we'll throw a more appropriate exception in BuildPartial.
+ if (!IsInitialized)
+ {
+ throw new UninitializedMessageException(MessageBeingBuilt);
+ }
+ return BuildPartial();
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/GeneratedExtensionBase.cs b/csharp/src/ProtocolBuffers/GeneratedExtensionBase.cs
new file mode 100644
index 00000000..424b981a
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/GeneratedExtensionBase.cs
@@ -0,0 +1,185 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Base type for all generated extensions.
+ /// </summary>
+ /// <remarks>
+ /// The protocol compiler generates a static singleton instance of this
+ /// class for each extension. For exmaple, imagine a .proto file with:
+ /// <code>
+ /// message Foo {
+ /// extensions 1000 to max
+ /// }
+ ///
+ /// extend Foo {
+ /// optional int32 bar;
+ /// }
+ /// </code>
+ /// Then MyProto.Foo.Bar has type GeneratedExtensionBase&lt;MyProto.Foo,int&gt;.
+ /// <para />
+ /// In general, users should ignore the details of this type, and
+ /// simply use the static singletons as parameters to the extension accessors
+ /// in ExtendableMessage and ExtendableBuilder.
+ /// The interface implemented by both GeneratedException and GeneratedRepeatException,
+ /// to make it easier to cope with repeats separately.
+ /// </remarks>
+ public abstract class GeneratedExtensionBase<TExtension>
+ {
+ private readonly FieldDescriptor descriptor;
+ private readonly IMessageLite messageDefaultInstance;
+
+ protected GeneratedExtensionBase(FieldDescriptor descriptor, Type singularExtensionType)
+ {
+ if (!descriptor.IsExtension)
+ {
+ throw new ArgumentException("GeneratedExtension given a regular (non-extension) field.");
+ }
+
+ this.descriptor = descriptor;
+ if (descriptor.MappedType == MappedType.Message)
+ {
+ PropertyInfo defaultInstanceProperty = singularExtensionType
+ .GetProperty("DefaultInstance", BindingFlags.Static | BindingFlags.Public);
+ if (defaultInstanceProperty == null)
+ {
+ throw new ArgumentException("No public static DefaultInstance property for type " +
+ typeof(TExtension).Name);
+ }
+
+ messageDefaultInstance = (IMessageLite) defaultInstanceProperty.GetValue(null, null);
+ }
+ }
+
+ public FieldDescriptor Descriptor
+ {
+ get { return descriptor; }
+ }
+
+ public int Number
+ {
+ get { return Descriptor.FieldNumber; }
+ }
+
+ /// <summary>
+ /// Returns the default message instance for extensions which are message types.
+ /// </summary>
+ public IMessageLite MessageDefaultInstance
+ {
+ get { return messageDefaultInstance; }
+ }
+
+ public object SingularFromReflectionType(object value)
+ {
+ switch (Descriptor.MappedType)
+ {
+ case MappedType.Message:
+ if (value is TExtension)
+ {
+ return value;
+ }
+ else
+ {
+ // It seems the copy of the embedded message stored inside the
+ // extended message is not of the exact type the user was
+ // expecting. This can happen if a user defines a
+ // GeneratedExtension manually and gives it a different type.
+ // This should not happen in normal use. But, to be nice, we'll
+ // copy the message to whatever type the caller was expecting.
+ return MessageDefaultInstance.WeakCreateBuilderForType()
+ .WeakMergeFrom((IMessageLite) value).WeakBuild();
+ }
+ case MappedType.Enum:
+ // Just return a boxed int - that can be unboxed to the enum
+ EnumValueDescriptor enumValue = (EnumValueDescriptor) value;
+ return enumValue.Number;
+ default:
+ return value;
+ }
+ }
+
+ /// <summary>
+ /// Converts from the type used by the native accessors to the type
+ /// used by reflection accessors. For example, the reflection accessors
+ /// for enums use EnumValueDescriptors but the native accessors use
+ /// the generated enum type.
+ /// </summary>
+ public object ToReflectionType(object value)
+ {
+ if (descriptor.IsRepeated)
+ {
+ if (descriptor.MappedType == MappedType.Enum)
+ {
+ // Must convert the whole list.
+ IList<object> result = new List<object>();
+ foreach (object element in (IEnumerable) value)
+ {
+ result.Add(SingularToReflectionType(element));
+ }
+ return result;
+ }
+ else
+ {
+ return value;
+ }
+ }
+ else
+ {
+ return SingularToReflectionType(value);
+ }
+ }
+
+ /// <summary>
+ /// Like ToReflectionType(object) but for a single element.
+ /// </summary>
+ internal Object SingularToReflectionType(object value)
+ {
+ return descriptor.MappedType == MappedType.Enum
+ ? descriptor.EnumType.FindValueByNumber((int) value)
+ : value;
+ }
+
+ public abstract object FromReflectionType(object value);
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/GeneratedExtensionLite.cs b/csharp/src/ProtocolBuffers/GeneratedExtensionLite.cs
new file mode 100644
index 00000000..a1623348
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/GeneratedExtensionLite.cs
@@ -0,0 +1,354 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ public interface IGeneratedExtensionLite
+ {
+ int Number { get; }
+ object ContainingType { get; }
+ IMessageLite MessageDefaultInstance { get; }
+ IFieldDescriptorLite Descriptor { get; }
+ }
+
+ public class ExtensionDescriptorLite : IFieldDescriptorLite
+ {
+ private readonly string fullName;
+ private readonly IEnumLiteMap enumTypeMap;
+ private readonly int number;
+ private readonly FieldType type;
+ private readonly bool isRepeated;
+ private readonly bool isPacked;
+ private readonly MappedType mapType;
+ private readonly object defaultValue;
+
+ public ExtensionDescriptorLite(string fullName, IEnumLiteMap enumTypeMap, int number, FieldType type,
+ object defaultValue, bool isRepeated, bool isPacked)
+ {
+ this.fullName = fullName;
+ this.enumTypeMap = enumTypeMap;
+ this.number = number;
+ this.type = type;
+ this.mapType = FieldMappingAttribute.MappedTypeFromFieldType(type);
+ this.isRepeated = isRepeated;
+ this.isPacked = isPacked;
+ this.defaultValue = defaultValue;
+ }
+
+ public string Name
+ {
+ get
+ {
+ string name = fullName;
+ int offset = name.LastIndexOf('.');
+ if (offset >= 0)
+ {
+ name = name.Substring(offset);
+ }
+ return name;
+ }
+ }
+
+ public string FullName
+ {
+ get { return fullName; }
+ }
+
+ public bool IsRepeated
+ {
+ get { return isRepeated; }
+ }
+
+ public bool IsRequired
+ {
+ get { return false; }
+ }
+
+ public bool IsPacked
+ {
+ get { return isPacked; }
+ }
+
+ public bool IsExtension
+ {
+ get { return true; }
+ }
+
+ /// <summary>
+ /// This is not supported and assertions are made to ensure this does not exist on extensions of Lite types
+ /// </summary>
+ public bool MessageSetWireFormat
+ {
+ get { return false; }
+ }
+
+ public int FieldNumber
+ {
+ get { return number; }
+ }
+
+ public IEnumLiteMap EnumType
+ {
+ get { return enumTypeMap; }
+ }
+
+ public FieldType FieldType
+ {
+ get { return type; }
+ }
+
+ public MappedType MappedType
+ {
+ get { return mapType; }
+ }
+
+ public object DefaultValue
+ {
+ get { return defaultValue; }
+ }
+
+ public int CompareTo(IFieldDescriptorLite other)
+ {
+ return FieldNumber.CompareTo(other.FieldNumber);
+ }
+ }
+
+ public class GeneratedRepeatExtensionLite<TContainingType, TExtensionType> :
+ GeneratedExtensionLite<TContainingType, IList<TExtensionType>>
+ where TContainingType : IMessageLite
+ {
+ public GeneratedRepeatExtensionLite(string fullName, TContainingType containingTypeDefaultInstance,
+ IMessageLite messageDefaultInstance, IEnumLiteMap enumTypeMap, int number,
+ FieldType type, bool isPacked) :
+ base(
+ fullName, containingTypeDefaultInstance, new List<TExtensionType>(),
+ messageDefaultInstance, enumTypeMap, number, type, isPacked)
+ {
+ }
+
+ public override object ToReflectionType(object value)
+ {
+ IList<object> result = new List<object>();
+ foreach (object element in (IEnumerable) value)
+ {
+ result.Add(SingularToReflectionType(element));
+ }
+ return result;
+ }
+
+ public override object FromReflectionType(object value)
+ {
+ // Must convert the whole list.
+ List<TExtensionType> result = new List<TExtensionType>();
+ foreach (object element in (IEnumerable) value)
+ {
+ result.Add((TExtensionType) SingularFromReflectionType(element));
+ }
+ return result;
+ }
+ }
+
+ public class GeneratedExtensionLite<TContainingType, TExtensionType> : IGeneratedExtensionLite
+ where TContainingType : IMessageLite
+ {
+ private readonly TContainingType containingTypeDefaultInstance;
+ private readonly TExtensionType defaultValue;
+ private readonly IMessageLite messageDefaultInstance;
+ private readonly ExtensionDescriptorLite descriptor;
+
+ // We can't always initialize a GeneratedExtension when we first construct
+ // it due to initialization order difficulties (namely, the default
+ // instances may not have been constructed yet). So, we construct an
+ // uninitialized GeneratedExtension once, then call internalInit() on it
+ // later. Generated code will always call internalInit() on all extensions
+ // as part of the static initialization code, and internalInit() throws an
+ // exception if called more than once, so this method is useless to users.
+ protected GeneratedExtensionLite(
+ TContainingType containingTypeDefaultInstance,
+ TExtensionType defaultValue,
+ IMessageLite messageDefaultInstance,
+ ExtensionDescriptorLite descriptor)
+ {
+ this.containingTypeDefaultInstance = containingTypeDefaultInstance;
+ this.messageDefaultInstance = messageDefaultInstance;
+ this.defaultValue = defaultValue;
+ this.descriptor = descriptor;
+ }
+
+ /** For use by generated code only. */
+
+ public GeneratedExtensionLite(
+ string fullName,
+ TContainingType containingTypeDefaultInstance,
+ TExtensionType defaultValue,
+ IMessageLite messageDefaultInstance,
+ IEnumLiteMap enumTypeMap,
+ int number,
+ FieldType type)
+ : this(containingTypeDefaultInstance, defaultValue, messageDefaultInstance,
+ new ExtensionDescriptorLite(fullName, enumTypeMap, number, type, defaultValue,
+ false /* isRepeated */, false /* isPacked */))
+ {
+ }
+
+ private static readonly IList<object> Empty = new object[0];
+ /** Repeating fields: For use by generated code only. */
+
+ protected GeneratedExtensionLite(
+ string fullName,
+ TContainingType containingTypeDefaultInstance,
+ TExtensionType defaultValue,
+ IMessageLite messageDefaultInstance,
+ IEnumLiteMap enumTypeMap,
+ int number,
+ FieldType type,
+ bool isPacked)
+ : this(containingTypeDefaultInstance, defaultValue, messageDefaultInstance,
+ new ExtensionDescriptorLite(fullName, enumTypeMap, number, type, Empty,
+ true /* isRepeated */, isPacked))
+ {
+ }
+
+ /// <summary>
+ /// Returns information about this extension
+ /// </summary>
+ public IFieldDescriptorLite Descriptor
+ {
+ get { return descriptor; }
+ }
+
+ /// <summary>
+ /// Returns the default value for this extension
+ /// </summary>
+ public TExtensionType DefaultValue
+ {
+ get { return defaultValue; }
+ }
+
+ /// <summary>
+ /// used for the extension registry
+ /// </summary>
+ object IGeneratedExtensionLite.ContainingType
+ {
+ get { return ContainingTypeDefaultInstance; }
+ }
+
+ /**
+ * Default instance of the type being extended, used to identify that type.
+ */
+
+ public TContainingType ContainingTypeDefaultInstance
+ {
+ get { return containingTypeDefaultInstance; }
+ }
+
+ /** Get the field number. */
+
+ public int Number
+ {
+ get { return descriptor.FieldNumber; }
+ }
+
+ /**
+ * If the extension is an embedded message, this is the default instance of
+ * that type.
+ */
+
+ public IMessageLite MessageDefaultInstance
+ {
+ get { return messageDefaultInstance; }
+ }
+
+ /// <summary>
+ /// Converts from the type used by the native accessors to the type
+ /// used by reflection accessors. For example, the reflection accessors
+ /// for enums use EnumValueDescriptors but the native accessors use
+ /// the generated enum type.
+ /// </summary>
+ public virtual object ToReflectionType(object value)
+ {
+ return SingularToReflectionType(value);
+ }
+
+ /// <summary>
+ /// Like ToReflectionType(object) but for a single element.
+ /// </summary>
+ public object SingularToReflectionType(object value)
+ {
+ return descriptor.MappedType == MappedType.Enum
+ ? descriptor.EnumType.FindValueByNumber((int) value)
+ : value;
+ }
+
+ public virtual object FromReflectionType(object value)
+ {
+ return SingularFromReflectionType(value);
+ }
+
+ public object SingularFromReflectionType(object value)
+ {
+ switch (Descriptor.MappedType)
+ {
+ case MappedType.Message:
+ if (value is TExtensionType)
+ {
+ return value;
+ }
+ else
+ {
+ // It seems the copy of the embedded message stored inside the
+ // extended message is not of the exact type the user was
+ // expecting. This can happen if a user defines a
+ // GeneratedExtension manually and gives it a different type.
+ // This should not happen in normal use. But, to be nice, we'll
+ // copy the message to whatever type the caller was expecting.
+ return MessageDefaultInstance.WeakCreateBuilderForType()
+ .WeakMergeFrom((IMessageLite) value).WeakBuild();
+ }
+ case MappedType.Enum:
+ // Just return a boxed int - that can be unboxed to the enum
+ IEnumLite enumValue = (IEnumLite) value;
+ return enumValue.Number;
+ default:
+ return value;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/GeneratedMessage.cs b/csharp/src/ProtocolBuffers/GeneratedMessage.cs
new file mode 100644
index 00000000..ff3a0c2a
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/GeneratedMessage.cs
@@ -0,0 +1,191 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Xml;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.FieldAccess;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// All generated protocol message classes extend this class. It implements
+ /// most of the IMessage interface using reflection. Users
+ /// can ignore this class as an implementation detail.
+ /// </summary>
+ public abstract partial class GeneratedMessage<TMessage, TBuilder> : AbstractMessage<TMessage, TBuilder>
+ where TMessage : GeneratedMessage<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilder<TMessage, TBuilder>, new()
+ {
+ private UnknownFieldSet unknownFields = UnknownFieldSet.DefaultInstance;
+
+ /// <summary>
+ /// Returns the message as a TMessage.
+ /// </summary>
+ protected abstract TMessage ThisMessage { get; }
+
+ internal FieldAccessorTable<TMessage, TBuilder> FieldAccessorsFromBuilder
+ {
+ get { return InternalFieldAccessors; }
+ }
+
+ protected abstract FieldAccessorTable<TMessage, TBuilder> InternalFieldAccessors { get; }
+
+ public override MessageDescriptor DescriptorForType
+ {
+ get { return InternalFieldAccessors.Descriptor; }
+ }
+
+ internal IDictionary<FieldDescriptor, Object> GetMutableFieldMap()
+ {
+ // Use a SortedDictionary so we'll end up serializing fields in order
+ var ret = new SortedDictionary<FieldDescriptor, object>();
+ MessageDescriptor descriptor = DescriptorForType;
+ foreach (FieldDescriptor field in descriptor.Fields)
+ {
+ IFieldAccessor<TMessage, TBuilder> accessor = InternalFieldAccessors[field];
+ if (field.IsRepeated)
+ {
+ if (accessor.GetRepeatedCount(ThisMessage) != 0)
+ {
+ ret[field] = accessor.GetValue(ThisMessage);
+ }
+ }
+ else if (HasField(field))
+ {
+ ret[field] = accessor.GetValue(ThisMessage);
+ }
+ }
+ return ret;
+ }
+
+ public override bool IsInitialized
+ {
+ get
+ {
+ foreach (FieldDescriptor field in DescriptorForType.Fields)
+ {
+ // Check that all required fields are present.
+ if (field.IsRequired && !HasField(field))
+ {
+ return false;
+ }
+ // Check that embedded messages are initialized.
+ // This code is similar to that in AbstractMessage, but we don't
+ // fetch all the field values - just the ones we need to.
+ if (field.MappedType == MappedType.Message)
+ {
+ if (field.IsRepeated)
+ {
+ // We know it's an IList<T>, but not the exact type - so
+ // IEnumerable is the best we can do. (C# generics aren't covariant yet.)
+ foreach (IMessageLite element in (IEnumerable) this[field])
+ {
+ if (!element.IsInitialized)
+ {
+ return false;
+ }
+ }
+ }
+ else
+ {
+ if (HasField(field) && !((IMessageLite) this[field]).IsInitialized)
+ {
+ return false;
+ }
+ }
+ }
+ }
+ return true;
+ }
+ }
+
+ public override IDictionary<FieldDescriptor, object> AllFields
+ {
+ get { return Dictionaries.AsReadOnly(GetMutableFieldMap()); }
+ }
+
+ public override bool HasOneof(OneofDescriptor oneof)
+ {
+ return InternalFieldAccessors.Oneof(oneof).Has(ThisMessage);
+ }
+
+ public override FieldDescriptor OneofFieldDescriptor(OneofDescriptor oneof)
+ {
+ return InternalFieldAccessors.Oneof(oneof).GetOneofFieldDescriptor(ThisMessage);
+ }
+
+ public override bool HasField(FieldDescriptor field)
+ {
+ return InternalFieldAccessors[field].Has(ThisMessage);
+ }
+
+ public override int GetRepeatedFieldCount(FieldDescriptor field)
+ {
+ return InternalFieldAccessors[field].GetRepeatedCount(ThisMessage);
+ }
+
+ public override object this[FieldDescriptor field, int index]
+ {
+ get { return InternalFieldAccessors[field].GetRepeatedValue(ThisMessage, index); }
+ }
+
+ public override object this[FieldDescriptor field]
+ {
+ get { return InternalFieldAccessors[field].GetValue(ThisMessage); }
+ }
+
+ public override UnknownFieldSet UnknownFields
+ {
+ get { return unknownFields; }
+ }
+
+ /// <summary>
+ /// Replaces the set of unknown fields for this message. This should
+ /// only be used before a message is built, by the builder. (In the
+ /// Java code it is private, but the builder is nested so has access
+ /// to it.)
+ /// </summary>
+ internal void SetUnknownFields(UnknownFieldSet fieldSet)
+ {
+ unknownFields = fieldSet;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/GeneratedMessageLite.cs b/csharp/src/ProtocolBuffers/GeneratedMessageLite.cs
new file mode 100644
index 00000000..0dfc976b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/GeneratedMessageLite.cs
@@ -0,0 +1,182 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Text;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// All generated protocol message classes extend this class. It implements
+ /// most of the IMessage interface using reflection. Users
+ /// can ignore this class as an implementation detail.
+ /// </summary>
+ public abstract partial class GeneratedMessageLite<TMessage, TBuilder> : AbstractMessageLite<TMessage, TBuilder>
+ where TMessage : GeneratedMessageLite<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilderLite<TMessage, TBuilder>
+ {
+ protected abstract TMessage ThisMessage { get; }
+
+ public override sealed string ToString()
+ {
+ using (StringWriter wtr = new StringWriter())
+ {
+ PrintTo(wtr);
+ return wtr.ToString();
+ }
+ }
+
+ /// <summary>
+ /// PrintTo() helper methods for Lite Runtime
+ /// </summary>
+ protected static void PrintField<T>(string name, IList<T> value, TextWriter writer)
+ {
+ foreach (T item in value)
+ {
+ PrintField(name, true, (object) item, writer);
+ }
+ }
+
+ /// <summary>
+ /// PrintTo() helper methods for Lite Runtime
+ /// </summary>
+ protected static void PrintField(string name, bool hasValue, object value, TextWriter writer)
+ {
+ if (!hasValue)
+ {
+ return;
+ }
+ if (value is IMessageLite)
+ {
+ writer.WriteLine("{0} {{", name);
+ ((IMessageLite) value).PrintTo(writer);
+ writer.WriteLine("}");
+ }
+ else if (value is ByteString || value is String)
+ {
+ writer.Write("{0}: \"", name);
+ if (value is String)
+ {
+ EscapeBytes(Encoding.UTF8.GetBytes((string) value), writer);
+ }
+ else
+ {
+ EscapeBytes(((ByteString) value), writer);
+ }
+ writer.WriteLine("\"");
+ }
+ else if (value is bool)
+ {
+ writer.WriteLine("{0}: {1}", name, (bool) value ? "true" : "false");
+ }
+ else if (value is IEnumLite)
+ {
+ writer.WriteLine("{0}: {1}", name, ((IEnumLite) value).Name);
+ }
+ else
+ {
+ writer.WriteLine("{0}: {1}", name, ((IConvertible)value).ToString(FrameworkPortability.InvariantCulture));
+ }
+ }
+
+ /// <summary>
+ /// COPIED from TextFormat
+ /// Escapes bytes in the format used in protocol buffer text format, which
+ /// is the same as the format used for C string literals. All bytes
+ /// that are not printable 7-bit ASCII characters are escaped, as well as
+ /// backslash, single-quote, and double-quote characters. Characters for
+ /// which no defined short-hand escape sequence is defined will be escaped
+ /// using 3-digit octal sequences.
+ /// The returned value is guaranteed to be entirely ASCII.
+ /// </summary>
+ private static void EscapeBytes(IEnumerable<byte> input, TextWriter writer)
+ {
+ foreach (byte b in input)
+ {
+ switch (b)
+ {
+ // C# does not use \a or \v
+ case 0x07:
+ writer.Write("\\a");
+ break;
+ case (byte) '\b':
+ writer.Write("\\b");
+ break;
+ case (byte) '\f':
+ writer.Write("\\f");
+ break;
+ case (byte) '\n':
+ writer.Write("\\n");
+ break;
+ case (byte) '\r':
+ writer.Write("\\r");
+ break;
+ case (byte) '\t':
+ writer.Write("\\t");
+ break;
+ case 0x0b:
+ writer.Write("\\v");
+ break;
+ case (byte) '\\':
+ writer.Write("\\\\");
+ break;
+ case (byte) '\'':
+ writer.Write("\\\'");
+ break;
+ case (byte) '"':
+ writer.Write("\\\"");
+ break;
+ default:
+ if (b >= 0x20 && b < 128)
+ {
+ writer.Write((char) b);
+ }
+ else
+ {
+ writer.Write('\\');
+ writer.Write((char) ('0' + ((b >> 6) & 3)));
+ writer.Write((char) ('0' + ((b >> 3) & 7)));
+ writer.Write((char) ('0' + (b & 7)));
+ }
+ break;
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/GeneratedRepeatExtension.cs b/csharp/src/ProtocolBuffers/GeneratedRepeatExtension.cs
new file mode 100644
index 00000000..7e7b088c
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/GeneratedRepeatExtension.cs
@@ -0,0 +1,88 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Class used to represent repeat extensions in generated classes.
+ /// </summary>
+ public sealed class GeneratedRepeatExtension<TExtensionElement> : GeneratedExtensionBase<IList<TExtensionElement>>
+ {
+ private GeneratedRepeatExtension(FieldDescriptor field) : base(field, typeof(TExtensionElement))
+ {
+ }
+
+ public static GeneratedExtensionBase<IList<TExtensionElement>> CreateInstance(FieldDescriptor descriptor)
+ {
+ if (!descriptor.IsRepeated)
+ {
+ throw new ArgumentException("Must call GeneratedRepeatExtension.CreateInstance() for repeated types.");
+ }
+ return new GeneratedRepeatExtension<TExtensionElement>(descriptor);
+ }
+
+ /// <summary>
+ /// Converts the list to the right type.
+ /// TODO(jonskeet): Check where this is used, and whether we need to convert
+ /// for primitive types.
+ /// </summary>
+ /// <param name="value"></param>
+ /// <returns></returns>
+ public override object FromReflectionType(object value)
+ {
+ if (Descriptor.MappedType == MappedType.Message ||
+ Descriptor.MappedType == MappedType.Enum)
+ {
+ // Must convert the whole list.
+ List<TExtensionElement> result = new List<TExtensionElement>();
+ foreach (object element in (IEnumerable) value)
+ {
+ result.Add((TExtensionElement) SingularFromReflectionType(element));
+ }
+ return result;
+ }
+ else
+ {
+ return value;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/GeneratedSingleExtension.cs b/csharp/src/ProtocolBuffers/GeneratedSingleExtension.cs
new file mode 100644
index 00000000..f0f1979b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/GeneratedSingleExtension.cs
@@ -0,0 +1,65 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Generated extension for a singular field.
+ /// </remarks>
+ public sealed class GeneratedSingleExtension<TExtension> : GeneratedExtensionBase<TExtension>
+ {
+ internal GeneratedSingleExtension(FieldDescriptor descriptor) : base(descriptor, typeof(TExtension))
+ {
+ }
+
+ public static GeneratedSingleExtension<TExtension> CreateInstance(FieldDescriptor descriptor)
+ {
+ if (descriptor.IsRepeated)
+ {
+ throw new ArgumentException("Must call GeneratedRepeateExtension.CreateInstance() for repeated types.");
+ }
+ return new GeneratedSingleExtension<TExtension>(descriptor);
+ }
+
+ public override object FromReflectionType(object value)
+ {
+ return base.SingularFromReflectionType(value);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/IBuilder.cs b/csharp/src/ProtocolBuffers/IBuilder.cs
new file mode 100644
index 00000000..e765464a
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/IBuilder.cs
@@ -0,0 +1,323 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Non-generic interface for all members whose signatures don't require knowledge of
+ /// the type being built. The generic interface extends this one. Some methods return
+ /// either an IBuilder or an IMessage; in these cases the generic interface redeclares
+ /// the same method with a type-specific signature. Implementations are encouraged to
+ /// use explicit interface implemenation for the non-generic form. This mirrors
+ /// how IEnumerable and IEnumerable&lt;T&gt; work.
+ /// </summary>
+ public interface IBuilder : IBuilderLite
+ {
+ /// <summary>
+ /// Returns true iff all required fields in the message and all
+ /// embedded messages are set.
+ /// </summary>
+ new bool IsInitialized { get; }
+
+ /// <summary>
+ /// Only present in the nongeneric interface - useful for tests, but
+ /// not as much in real life.
+ /// </summary>
+ IBuilder SetField(FieldDescriptor field, object value);
+
+ /// <summary>
+ /// Only present in the nongeneric interface - useful for tests, but
+ /// not as much in real life.
+ /// </summary>
+ IBuilder SetRepeatedField(FieldDescriptor field, int index, object value);
+
+ /// <summary>
+ /// Behaves like the equivalent property in IMessage&lt;T&gt;.
+ /// The returned map may or may not reflect future changes to the builder.
+ /// Either way, the returned map is unmodifiable.
+ /// </summary>
+ IDictionary<FieldDescriptor, object> AllFields { get; }
+
+ /// <summary>
+ /// Allows getting and setting of a field.
+ /// <see cref="IMessage{TMessage, TBuilder}.Item(FieldDescriptor)"/>
+ /// </summary>
+ /// <param name="field"></param>
+ /// <returns></returns>
+ object this[FieldDescriptor field] { get; set; }
+
+ /// <summary>
+ /// Get the message's type descriptor.
+ /// <see cref="IMessage{TMessage, TBuilder}.DescriptorForType"/>
+ /// </summary>
+ MessageDescriptor DescriptorForType { get; }
+
+ /// <summary>
+ /// <see cref="IMessage{TMessage, TBuilder}.GetRepeatedFieldCount"/>
+ /// </summary>
+ /// <param name="field"></param>
+ /// <returns></returns>
+ int GetRepeatedFieldCount(FieldDescriptor field);
+
+ /// <summary>
+ /// Allows getting and setting of a repeated field value.
+ /// <see cref="IMessage{TMessage, TBuilder}.Item(FieldDescriptor, int)"/>
+ /// </summary>
+ object this[FieldDescriptor field, int index] { get; set; }
+
+
+ bool HasOneof(OneofDescriptor oneof);
+
+ FieldDescriptor OneofFieldDescriptor(OneofDescriptor oneof);
+
+ /// <summary>
+ /// <see cref="IMessage{TMessage, TBuilder}.HasField"/>
+ /// </summary>
+ bool HasField(FieldDescriptor field);
+
+ /// <summary>
+ /// <see cref="IMessage{TMessage, TBuilder}.UnknownFields"/>
+ /// </summary>
+ UnknownFieldSet UnknownFields { get; set; }
+
+ /// <summary>
+ /// Create a builder for messages of the appropriate type for the given field.
+ /// Messages built with this can then be passed to the various mutation properties
+ /// and methods.
+ /// </summary>
+ IBuilder CreateBuilderForField(FieldDescriptor field);
+
+ #region Methods which are like those of the generic form, but without any knowledge of the type parameters
+
+ IBuilder WeakAddRepeatedField(FieldDescriptor field, object value);
+ new IBuilder WeakClear();
+ IBuilder WeakClearField(FieldDescriptor field);
+ IBuilder WeakClearOneof(OneofDescriptor oneof);
+ IBuilder WeakMergeFrom(IMessage message);
+ new IBuilder WeakMergeFrom(ByteString data);
+ new IBuilder WeakMergeFrom(ByteString data, ExtensionRegistry registry);
+ new IBuilder WeakMergeFrom(ICodedInputStream input);
+ new IBuilder WeakMergeFrom(ICodedInputStream input, ExtensionRegistry registry);
+ new IMessage WeakBuild();
+ new IMessage WeakBuildPartial();
+ new IBuilder WeakClone();
+ new IMessage WeakDefaultInstanceForType { get; }
+
+ #endregion
+ }
+
+ /// <summary>
+ /// Interface implemented by Protocol Message builders.
+ /// TODO(jonskeet): Consider "SetXXX" methods returning the builder, as well as the properties.
+ /// </summary>
+ /// <typeparam name="TMessage">Type of message</typeparam>
+ /// <typeparam name="TBuilder">Type of builder</typeparam>
+ public interface IBuilder<TMessage, TBuilder> : IBuilder, IBuilderLite<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ TBuilder SetUnknownFields(UnknownFieldSet unknownFields);
+
+ /// <summary>
+ /// Resets all fields to their default values.
+ /// </summary>
+ new TBuilder Clear();
+
+ /// <summary>
+ /// Merge the specified other message which may be a different implementation of
+ /// the same message descriptor.
+ /// </summary>
+ TBuilder MergeFrom(IMessage other);
+
+ /// <summary>
+ /// Constructs the final message. Once this is called, this Builder instance
+ /// is no longer valid, and calling any other method may throw a
+ /// NullReferenceException. If you need to continue working with the builder
+ /// after calling Build, call Clone first.
+ /// </summary>
+ /// <exception cref="UninitializedMessageException">the message
+ /// is missing one or more required fields; use BuildPartial to bypass
+ /// this check</exception>
+ new TMessage Build();
+
+ /// <summary>
+ /// Like Build(), but does not throw an exception if the message is missing
+ /// required fields. Instead, a partial message is returned.
+ /// </summary>
+ new TMessage BuildPartial();
+
+ /// <summary>
+ /// Clones this builder.
+ /// TODO(jonskeet): Explain depth of clone.
+ /// </summary>
+ new TBuilder Clone();
+
+ /// <summary>
+ /// Parses a message of this type from the input and merges it with this
+ /// message, as if using MergeFrom(IMessage&lt;T&gt;).
+ /// </summary>
+ /// <remarks>
+ /// Warning: This does not verify that all required fields are present
+ /// in the input message. If you call Build() without setting all
+ /// required fields, it will throw an UninitializedMessageException.
+ /// There are a few good ways to deal with this:
+ /// <list>
+ /// <item>Call IsInitialized to verify to verify that all required fields are
+ /// set before building.</item>
+ /// <item>Parse the message separately using one of the static ParseFrom
+ /// methods, then use MergeFrom(IMessage&lt;T&gt;) to merge it with
+ /// this one. ParseFrom will throw an InvalidProtocolBufferException
+ /// (an IOException) if some required fields are missing.
+ /// Use BuildPartial to build, which ignores missing required fields.
+ /// </list>
+ /// </remarks>
+ new TBuilder MergeFrom(ICodedInputStream input);
+
+ /// <summary>
+ /// Like MergeFrom(ICodedInputStream), but also parses extensions.
+ /// The extensions that you want to be able to parse must be registered
+ /// in <paramref name="extensionRegistry"/>. Extensions not in the registry
+ /// will be treated as unknown fields.
+ /// </summary>
+ new TBuilder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Get's the message's type's default instance.
+ /// <see cref="IMessage{TMessage}.DefaultInstanceForType" />
+ /// </summary>
+ new TMessage DefaultInstanceForType { get; }
+
+ /// <summary>
+ /// Clears the field. This is exactly equivalent to calling the generated
+ /// Clear method corresponding to the field.
+ /// </summary>
+ /// <param name="field"></param>
+ /// <returns></returns>
+ TBuilder ClearField(FieldDescriptor field);
+
+ /// <summary>
+ /// Clears the oneof. This is exactly equivalent to calling the generated
+ /// Clear method corresponding to the oneof.
+ /// </summary>
+ /// <param name="oneof"></param>
+ /// <returns></returns>
+ TBuilder ClearOneof(OneofDescriptor oneof);
+
+ /// <summary>
+ /// Appends the given value as a new element for the specified repeated field.
+ /// </summary>
+ /// <exception cref="ArgumentException">the field is not a repeated field,
+ /// the field does not belong to this builder's type, or the value is
+ /// of the incorrect type
+ /// </exception>
+ TBuilder AddRepeatedField(FieldDescriptor field, object value);
+
+ /// <summary>
+ /// Merge some unknown fields into the set for this message.
+ /// </summary>
+ TBuilder MergeUnknownFields(UnknownFieldSet unknownFields);
+
+ /// <summary>
+ /// Like MergeFrom(Stream), but does not read until the end of the file.
+ /// Instead, the size of the message (encoded as a varint) is read first,
+ /// then the message data. Use Message.WriteDelimitedTo(Stream) to
+ /// write messages in this format.
+ /// </summary>
+ /// <param name="input"></param>
+ new TBuilder MergeDelimitedFrom(Stream input);
+
+ /// <summary>
+ /// Like MergeDelimitedFrom(Stream) but supporting extensions.
+ /// </summary>
+ new TBuilder MergeDelimitedFrom(Stream input, ExtensionRegistry extensionRegistry);
+
+ #region Convenience methods
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream).
+ /// </summary>
+ new TBuilder MergeFrom(ByteString data);
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream, extensionRegistry).
+ /// </summary>
+ new TBuilder MergeFrom(ByteString data, ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream).
+ /// </summary>
+ new TBuilder MergeFrom(byte[] data);
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream, extensionRegistry).
+ /// </summary>
+ new TBuilder MergeFrom(byte[] data, ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Parse <paramref name="input"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream). Note that this method always reads
+ /// the entire input (unless it throws an exception). If you want it to
+ /// stop earlier, you will need to wrap the input in a wrapper
+ /// stream which limits reading. Or, use IMessage.WriteDelimitedTo(Stream)
+ /// to write your message and MmergeDelimitedFrom(Stream) to read it.
+ /// Despite usually reading the entire stream, this method never closes the stream.
+ /// </summary>
+ new TBuilder MergeFrom(Stream input);
+
+ /// <summary>
+ /// Parse <paramref name="input"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream, extensionRegistry).
+ /// </summary>
+ new TBuilder MergeFrom(Stream input, ExtensionRegistry extensionRegistry);
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/IBuilderLite.cs b/csharp/src/ProtocolBuffers/IBuilderLite.cs
new file mode 100644
index 00000000..330fe495
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/IBuilderLite.cs
@@ -0,0 +1,213 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Non-generic interface for all members whose signatures don't require knowledge of
+ /// the type being built. The generic interface extends this one. Some methods return
+ /// either an IBuilder or an IMessage; in these cases the generic interface redeclares
+ /// the same method with a type-specific signature. Implementations are encouraged to
+ /// use explicit interface implemenation for the non-generic form. This mirrors
+ /// how IEnumerable and IEnumerable&lt;T&gt; work.
+ /// </summary>
+ public partial interface IBuilderLite
+ {
+ /// <summary>
+ /// Returns true iff all required fields in the message and all
+ /// embedded messages are set.
+ /// </summary>
+ bool IsInitialized { get; }
+
+ IBuilderLite WeakClear();
+ IBuilderLite WeakMergeFrom(IMessageLite message);
+ IBuilderLite WeakMergeFrom(ByteString data);
+ IBuilderLite WeakMergeFrom(ByteString data, ExtensionRegistry registry);
+ IBuilderLite WeakMergeFrom(ICodedInputStream input);
+ IBuilderLite WeakMergeFrom(ICodedInputStream input, ExtensionRegistry registry);
+ IMessageLite WeakBuild();
+ IMessageLite WeakBuildPartial();
+ IBuilderLite WeakClone();
+ IMessageLite WeakDefaultInstanceForType { get; }
+ }
+
+ /// <summary>
+ /// Interface implemented by Protocol Message builders.
+ /// TODO(jonskeet): Consider "SetXXX" methods returning the builder, as well as the properties.
+ /// </summary>
+ /// <typeparam name="TMessage">Type of message</typeparam>
+ /// <typeparam name="TBuilder">Type of builder</typeparam>
+ public interface IBuilderLite<TMessage, TBuilder> : IBuilderLite
+ where TMessage : IMessageLite<TMessage, TBuilder>
+ where TBuilder : IBuilderLite<TMessage, TBuilder>
+ {
+ /// <summary>
+ /// Resets all fields to their default values.
+ /// </summary>
+ TBuilder Clear();
+
+ /// <summary>
+ /// Merge the specified other message which may be a different implementation of
+ /// the same message descriptor.
+ /// </summary>
+ TBuilder MergeFrom(IMessageLite other);
+
+ /// <summary>
+ /// Constructs the final message. Once this is called, this Builder instance
+ /// is no longer valid, and calling any other method may throw a
+ /// NullReferenceException. If you need to continue working with the builder
+ /// after calling Build, call Clone first.
+ /// </summary>
+ /// <exception cref="UninitializedMessageException">the message
+ /// is missing one or more required fields; use BuildPartial to bypass
+ /// this check</exception>
+ TMessage Build();
+
+ /// <summary>
+ /// Like Build(), but does not throw an exception if the message is missing
+ /// required fields. Instead, a partial message is returned.
+ /// </summary>
+ TMessage BuildPartial();
+
+ /// <summary>
+ /// Clones this builder.
+ /// TODO(jonskeet): Explain depth of clone.
+ /// </summary>
+ TBuilder Clone();
+
+ /// <summary>
+ /// Parses a message of this type from the input and merges it with this
+ /// message, as if using MergeFrom(IMessage&lt;T&gt;).
+ /// </summary>
+ /// <remarks>
+ /// Warning: This does not verify that all required fields are present
+ /// in the input message. If you call Build() without setting all
+ /// required fields, it will throw an UninitializedMessageException.
+ /// There are a few good ways to deal with this:
+ /// <list>
+ /// <item>Call IsInitialized to verify to verify that all required fields are
+ /// set before building.</item>
+ /// <item>Parse the message separately using one of the static ParseFrom
+ /// methods, then use MergeFrom(IMessage&lt;T&gt;) to merge it with
+ /// this one. ParseFrom will throw an InvalidProtocolBufferException
+ /// (an IOException) if some required fields are missing.
+ /// Use BuildPartial to build, which ignores missing required fields.
+ /// </list>
+ /// </remarks>
+ TBuilder MergeFrom(ICodedInputStream input);
+
+ /// <summary>
+ /// Like MergeFrom(ICodedInputStream), but also parses extensions.
+ /// The extensions that you want to be able to parse must be registered
+ /// in <paramref name="extensionRegistry"/>. Extensions not in the registry
+ /// will be treated as unknown fields.
+ /// </summary>
+ TBuilder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Get's the message's type's default instance.
+ /// <see cref="IMessageLite{TMessage}.DefaultInstanceForType" />
+ /// </summary>
+ TMessage DefaultInstanceForType { get; }
+
+ /// <summary>
+ /// Like MergeFrom(Stream), but does not read until the end of the file.
+ /// Instead, the size of the message (encoded as a varint) is read first,
+ /// then the message data. Use Message.WriteDelimitedTo(Stream) to
+ /// write messages in this format.
+ /// </summary>
+ /// <param name="input"></param>
+ TBuilder MergeDelimitedFrom(Stream input);
+
+ /// <summary>
+ /// Like MergeDelimitedFrom(Stream) but supporting extensions.
+ /// </summary>
+ TBuilder MergeDelimitedFrom(Stream input, ExtensionRegistry extensionRegistry);
+
+ #region Convenience methods
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream).
+ /// </summary>
+ TBuilder MergeFrom(ByteString data);
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream, ExtensionRegistry).
+ /// </summary>
+ TBuilder MergeFrom(ByteString data, ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream).
+ /// </summary>
+ TBuilder MergeFrom(byte[] data);
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream, ExtensionRegistry).
+ /// </summary>
+ TBuilder MergeFrom(byte[] data, ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Parse <paramref name="input"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream). Note that this method always reads
+ /// the entire input (unless it throws an exception). If you want it to
+ /// stop earlier, you will need to wrap the input in a wrapper
+ /// stream which limits reading. Or, use IMessage.WriteDelimitedTo(Stream)
+ /// to write your message and MmergeDelimitedFrom(Stream) to read it.
+ /// Despite usually reading the entire stream, this method never closes the stream.
+ /// </summary>
+ TBuilder MergeFrom(Stream input);
+
+ /// <summary>
+ /// Parse <paramref name="input"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream, ExtensionRegistry).
+ /// </summary>
+ TBuilder MergeFrom(Stream input, ExtensionRegistry extensionRegistry);
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ICodedInputStream.cs b/csharp/src/ProtocolBuffers/ICodedInputStream.cs
new file mode 100644
index 00000000..790274fb
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ICodedInputStream.cs
@@ -0,0 +1,318 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+
+//Disable warning CS3010: CLS-compliant interfaces must have only CLS-compliant members
+#pragma warning disable 3010
+
+namespace Google.ProtocolBuffers
+{
+ public interface ICodedInputStream
+ {
+ /// <summary>
+ /// Reads any message initialization data expected from the input stream
+ /// </summary>
+ /// <remarks>
+ /// This is primarily used by text formats and unnecessary for protobuffers' own
+ /// binary format. The API for MessageStart/End was added for consistent handling
+ /// of output streams regardless of the actual writer implementation.
+ /// </remarks>
+ void ReadMessageStart();
+ /// <summary>
+ /// Reads any message finalization data expected from the input stream
+ /// </summary>
+ /// <remarks>
+ /// This is primarily used by text formats and unnecessary for protobuffers' own
+ /// binary format. The API for MessageStart/End was added for consistent handling
+ /// of output streams regardless of the actual writer implementation.
+ /// </remarks>
+ void ReadMessageEnd();
+ /// <summary>
+ /// Attempt to read a field tag, returning false if we have reached the end
+ /// of the input data.
+ /// </summary>
+ /// <remarks>
+ /// <para>
+ /// If fieldTag is non-zero and ReadTag returns true then the value in fieldName
+ /// may or may not be populated. However, if fieldTag is zero and ReadTag returns
+ /// true, then fieldName should be populated with a non-null field name.
+ /// </para><para>
+ /// In other words if ReadTag returns true then either fieldTag will be non-zero OR
+ /// fieldName will be non-zero. In some cases both may be populated, however the
+ /// builders will always prefer the fieldTag over fieldName.
+ /// </para>
+ /// </remarks>
+ bool ReadTag(out uint fieldTag, out string fieldName);
+
+ /// <summary>
+ /// Read a double field from the stream.
+ /// </summary>
+ bool ReadDouble(ref double value);
+
+ /// <summary>
+ /// Read a float field from the stream.
+ /// </summary>
+ bool ReadFloat(ref float value);
+
+ /// <summary>
+ /// Read a uint64 field from the stream.
+ /// </summary>
+ bool ReadUInt64(ref ulong value);
+
+ /// <summary>
+ /// Read an int64 field from the stream.
+ /// </summary>
+ bool ReadInt64(ref long value);
+
+ /// <summary>
+ /// Read an int32 field from the stream.
+ /// </summary>
+ bool ReadInt32(ref int value);
+
+ /// <summary>
+ /// Read a fixed64 field from the stream.
+ /// </summary>
+ bool ReadFixed64(ref ulong value);
+
+ /// <summary>
+ /// Read a fixed32 field from the stream.
+ /// </summary>
+ bool ReadFixed32(ref uint value);
+
+ /// <summary>
+ /// Read a bool field from the stream.
+ /// </summary>
+ bool ReadBool(ref bool value);
+
+ /// <summary>
+ /// Reads a string field from the stream.
+ /// </summary>
+ bool ReadString(ref string value);
+
+ /// <summary>
+ /// Reads a group field value from the stream.
+ /// </summary>
+ void ReadGroup(int fieldNumber, IBuilderLite builder,
+ ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Reads a group field value from the stream and merges it into the given
+ /// UnknownFieldSet.
+ /// </summary>
+ [Obsolete]
+ void ReadUnknownGroup(int fieldNumber, IBuilderLite builder);
+
+ /// <summary>
+ /// Reads an embedded message field value from the stream.
+ /// </summary>
+ void ReadMessage(IBuilderLite builder, ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Reads a bytes field value from the stream.
+ /// </summary>
+ bool ReadBytes(ref ByteString value);
+
+ /// <summary>
+ /// Reads a uint32 field value from the stream.
+ /// </summary>
+ bool ReadUInt32(ref uint value);
+
+ /// <summary>
+ /// Reads an enum field value from the stream. The caller is responsible
+ /// for converting the numeric value to an actual enum.
+ /// </summary>
+ bool ReadEnum(ref IEnumLite value, out object unknown, IEnumLiteMap mapping);
+
+ /// <summary>
+ /// Reads an enum field value from the stream. If the enum is valid for type T,
+ /// then the ref value is set and it returns true. Otherwise the unkown output
+ /// value is set and this method returns false.
+ /// </summary>
+ bool ReadEnum<T>(ref T value, out object unknown)
+ where T : struct, IComparable, IFormattable;
+
+ /// <summary>
+ /// Reads an sfixed32 field value from the stream.
+ /// </summary>
+ bool ReadSFixed32(ref int value);
+
+ /// <summary>
+ /// Reads an sfixed64 field value from the stream.
+ /// </summary>
+ bool ReadSFixed64(ref long value);
+
+ /// <summary>
+ /// Reads an sint32 field value from the stream.
+ /// </summary>
+ bool ReadSInt32(ref int value);
+
+ /// <summary>
+ /// Reads an sint64 field value from the stream.
+ /// </summary>
+ bool ReadSInt64(ref long value);
+
+ /// <summary>
+ /// Reads an array of primitive values into the list, if the wire-type of fieldTag is length-prefixed and the
+ /// type is numeric, it will read a packed array.
+ /// </summary>
+ void ReadPrimitiveArray(FieldType fieldType, uint fieldTag, string fieldName, ICollection<object> list);
+
+ /// <summary>
+ /// Reads an array of primitive values into the list, if the wire-type of fieldTag is length-prefixed, it will
+ /// read a packed array.
+ /// </summary>
+ void ReadEnumArray(uint fieldTag, string fieldName, ICollection<IEnumLite> list, out ICollection<object> unknown,
+ IEnumLiteMap mapping);
+
+ /// <summary>
+ /// Reads an array of primitive values into the list, if the wire-type of fieldTag is length-prefixed, it will
+ /// read a packed array.
+ /// </summary>
+ void ReadEnumArray<T>(uint fieldTag, string fieldName, ICollection<T> list, out ICollection<object> unknown)
+ where T : struct, IComparable, IFormattable;
+
+ /// <summary>
+ /// Reads a set of messages using the <paramref name="messageType"/> as a template. T is not guaranteed to be
+ /// the most derived type, it is only the type specifier for the collection.
+ /// </summary>
+ void ReadMessageArray<T>(uint fieldTag, string fieldName, ICollection<T> list, T messageType,
+ ExtensionRegistry registry) where T : IMessageLite;
+
+ /// <summary>
+ /// Reads a set of messages using the <paramref name="messageType"/> as a template.
+ /// </summary>
+ void ReadGroupArray<T>(uint fieldTag, string fieldName, ICollection<T> list, T messageType,
+ ExtensionRegistry registry) where T : IMessageLite;
+
+ /// <summary>
+ /// Reads a field of any primitive type. Enums, groups and embedded
+ /// messages are not handled by this method.
+ /// </summary>
+ bool ReadPrimitiveField(FieldType fieldType, ref object value);
+
+ /// <summary>
+ /// Returns true if the stream has reached the end of the input. This is the
+ /// case if either the end of the underlying input source has been reached or
+ /// the stream has reached a limit created using PushLimit.
+ /// </summary>
+ bool IsAtEnd { get; }
+
+ /// <summary>
+ /// Reads and discards a single field, given its tag value.
+ /// </summary>
+ /// <returns>false if the tag is an end-group tag, in which case
+ /// nothing is skipped. Otherwise, returns true.</returns>
+ bool SkipField();
+
+ /// <summary>
+ /// Reads one or more repeated string field values from the stream.
+ /// </summary>
+ void ReadStringArray(uint fieldTag, string fieldName, ICollection<string> list);
+
+ /// <summary>
+ /// Reads one or more repeated ByteString field values from the stream.
+ /// </summary>
+ void ReadBytesArray(uint fieldTag, string fieldName, ICollection<ByteString> list);
+
+ /// <summary>
+ /// Reads one or more repeated boolean field values from the stream.
+ /// </summary>
+ void ReadBoolArray(uint fieldTag, string fieldName, ICollection<bool> list);
+
+ /// <summary>
+ /// Reads one or more repeated Int32 field values from the stream.
+ /// </summary>
+ void ReadInt32Array(uint fieldTag, string fieldName, ICollection<int> list);
+
+ /// <summary>
+ /// Reads one or more repeated SInt32 field values from the stream.
+ /// </summary>
+ void ReadSInt32Array(uint fieldTag, string fieldName, ICollection<int> list);
+
+ /// <summary>
+ /// Reads one or more repeated UInt32 field values from the stream.
+ /// </summary>
+ void ReadUInt32Array(uint fieldTag, string fieldName, ICollection<uint> list);
+
+ /// <summary>
+ /// Reads one or more repeated Fixed32 field values from the stream.
+ /// </summary>
+ void ReadFixed32Array(uint fieldTag, string fieldName, ICollection<uint> list);
+
+ /// <summary>
+ /// Reads one or more repeated SFixed32 field values from the stream.
+ /// </summary>
+ void ReadSFixed32Array(uint fieldTag, string fieldName, ICollection<int> list);
+
+ /// <summary>
+ /// Reads one or more repeated Int64 field values from the stream.
+ /// </summary>
+ void ReadInt64Array(uint fieldTag, string fieldName, ICollection<long> list);
+
+ /// <summary>
+ /// Reads one or more repeated SInt64 field values from the stream.
+ /// </summary>
+ void ReadSInt64Array(uint fieldTag, string fieldName, ICollection<long> list);
+
+ /// <summary>
+ /// Reads one or more repeated UInt64 field values from the stream.
+ /// </summary>
+ void ReadUInt64Array(uint fieldTag, string fieldName, ICollection<ulong> list);
+
+ /// <summary>
+ /// Reads one or more repeated Fixed64 field values from the stream.
+ /// </summary>
+ void ReadFixed64Array(uint fieldTag, string fieldName, ICollection<ulong> list);
+
+ /// <summary>
+ /// Reads one or more repeated SFixed64 field values from the stream.
+ /// </summary>
+ void ReadSFixed64Array(uint fieldTag, string fieldName, ICollection<long> list);
+
+ /// <summary>
+ /// Reads one or more repeated Double field values from the stream.
+ /// </summary>
+ void ReadDoubleArray(uint fieldTag, string fieldName, ICollection<double> list);
+
+ /// <summary>
+ /// Reads one or more repeated Float field values from the stream.
+ /// </summary>
+ void ReadFloatArray(uint fieldTag, string fieldName, ICollection<float> list);
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ICodedOutputStream.cs b/csharp/src/ProtocolBuffers/ICodedOutputStream.cs
new file mode 100644
index 00000000..77de60ca
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ICodedOutputStream.cs
@@ -0,0 +1,368 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+
+//Disable warning CS3010: CLS-compliant interfaces must have only CLS-compliant members
+#pragma warning disable 3010
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Provides an interface that is used write a message. Most often proto buffers are written
+ /// in their binary form by creating a instance via the CodedOutputStream.CreateInstance
+ /// static factory.
+ /// </summary>
+ public interface ICodedOutputStream
+ {
+ /// <summary>
+ /// Writes any message initialization data needed to the output stream
+ /// </summary>
+ /// <remarks>
+ /// This is primarily used by text formats and unnecessary for protobuffers' own
+ /// binary format. The API for MessageStart/End was added for consistent handling
+ /// of output streams regardless of the actual writer implementation.
+ /// </remarks>
+ void WriteMessageStart();
+ /// <summary>
+ /// Writes any message finalization data needed to the output stream
+ /// </summary>
+ /// <remarks>
+ /// This is primarily used by text formats and unnecessary for protobuffers' own
+ /// binary format. The API for MessageStart/End was added for consistent handling
+ /// of output streams regardless of the actual writer implementation.
+ /// </remarks>
+ void WriteMessageEnd();
+ /// <summary>
+ /// Indicates that all temporary buffers be written to the final output.
+ /// </summary>
+ void Flush();
+ /// <summary>
+ /// Writes an unknown message as a group
+ /// </summary>
+ [Obsolete]
+ void WriteUnknownGroup(int fieldNumber, IMessageLite value);
+ /// <summary>
+ /// Writes an unknown field value of bytes
+ /// </summary>
+ void WriteUnknownBytes(int fieldNumber, ByteString value);
+ /// <summary>
+ /// Writes an unknown field of a primitive type
+ /// </summary>
+
+ void WriteUnknownField(int fieldNumber, WireFormat.WireType wireType, ulong value);
+ /// <summary>
+ /// Writes an extension as a message-set group
+ /// </summary>
+ void WriteMessageSetExtension(int fieldNumber, string fieldName, IMessageLite value);
+ /// <summary>
+ /// Writes an unknown extension as a message-set group
+ /// </summary>
+ void WriteMessageSetExtension(int fieldNumber, string fieldName, ByteString value);
+
+ /// <summary>
+ /// Writes a field value, including tag, to the stream.
+ /// </summary>
+ void WriteField(FieldType fieldType, int fieldNumber, string fieldName, object value);
+
+ /// <summary>
+ /// Writes a double field value, including tag, to the stream.
+ /// </summary>
+ void WriteDouble(int fieldNumber, string fieldName, double value);
+
+ /// <summary>
+ /// Writes a float field value, including tag, to the stream.
+ /// </summary>
+ void WriteFloat(int fieldNumber, string fieldName, float value);
+
+ /// <summary>
+ /// Writes a uint64 field value, including tag, to the stream.
+ /// </summary>
+ void WriteUInt64(int fieldNumber, string fieldName, ulong value);
+
+ /// <summary>
+ /// Writes an int64 field value, including tag, to the stream.
+ /// </summary>
+ void WriteInt64(int fieldNumber, string fieldName, long value);
+
+ /// <summary>
+ /// Writes an int32 field value, including tag, to the stream.
+ /// </summary>
+ void WriteInt32(int fieldNumber, string fieldName, int value);
+
+ /// <summary>
+ /// Writes a fixed64 field value, including tag, to the stream.
+ /// </summary>
+ void WriteFixed64(int fieldNumber, string fieldName, ulong value);
+
+ /// <summary>
+ /// Writes a fixed32 field value, including tag, to the stream.
+ /// </summary>
+ void WriteFixed32(int fieldNumber, string fieldName, uint value);
+
+ /// <summary>
+ /// Writes a bool field value, including tag, to the stream.
+ /// </summary>
+ void WriteBool(int fieldNumber, string fieldName, bool value);
+
+ /// <summary>
+ /// Writes a string field value, including tag, to the stream.
+ /// </summary>
+ void WriteString(int fieldNumber, string fieldName, string value);
+
+ /// <summary>
+ /// Writes a group field value, including tag, to the stream.
+ /// </summary>
+ void WriteGroup(int fieldNumber, string fieldName, IMessageLite value);
+
+ /// <summary>
+ /// Writes a message field value, including tag, to the stream.
+ /// </summary>
+ void WriteMessage(int fieldNumber, string fieldName, IMessageLite value);
+
+ /// <summary>
+ /// Writes a byte array field value, including tag, to the stream.
+ /// </summary>
+ void WriteBytes(int fieldNumber, string fieldName, ByteString value);
+
+ /// <summary>
+ /// Writes a UInt32 field value, including tag, to the stream.
+ /// </summary>
+ void WriteUInt32(int fieldNumber, string fieldName, uint value);
+
+ /// <summary>
+ /// Writes an enum field value, including tag, to the stream.
+ /// </summary>
+ void WriteEnum(int fieldNumber, string fieldName, int value, object rawValue);
+
+ /// <summary>
+ /// Writes a fixed 32-bit field value, including tag, to the stream.
+ /// </summary>
+ void WriteSFixed32(int fieldNumber, string fieldName, int value);
+
+ /// <summary>
+ /// Writes a signed fixed 64-bit field value, including tag, to the stream.
+ /// </summary>
+ void WriteSFixed64(int fieldNumber, string fieldName, long value);
+
+ /// <summary>
+ /// Writes a signed 32-bit field value, including tag, to the stream.
+ /// </summary>
+ void WriteSInt32(int fieldNumber, string fieldName, int value);
+
+ /// <summary>
+ /// Writes a signed 64-bit field value, including tag, to the stream.
+ /// </summary>
+ void WriteSInt64(int fieldNumber, string fieldName, long value);
+
+ /// <summary>
+ /// Writes a repeated field value, including tag(s), to the stream.
+ /// </summary>
+ void WriteArray(FieldType fieldType, int fieldNumber, string fieldName, IEnumerable list);
+
+ /// <summary>
+ /// Writes a repeated group value, including tag(s), to the stream.
+ /// </summary>
+ void WriteGroupArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
+ where T : IMessageLite;
+
+ /// <summary>
+ /// Writes a repeated message value, including tag(s), to the stream.
+ /// </summary>
+ void WriteMessageArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
+ where T : IMessageLite;
+
+ /// <summary>
+ /// Writes a repeated string value, including tag(s), to the stream.
+ /// </summary>
+ void WriteStringArray(int fieldNumber, string fieldName, IEnumerable<string> list);
+
+ /// <summary>
+ /// Writes a repeated ByteString value, including tag(s), to the stream.
+ /// </summary>
+ void WriteBytesArray(int fieldNumber, string fieldName, IEnumerable<ByteString> list);
+
+ /// <summary>
+ /// Writes a repeated boolean value, including tag(s), to the stream.
+ /// </summary>
+ void WriteBoolArray(int fieldNumber, string fieldName, IEnumerable<bool> list);
+
+ /// <summary>
+ /// Writes a repeated Int32 value, including tag(s), to the stream.
+ /// </summary>
+ void WriteInt32Array(int fieldNumber, string fieldName, IEnumerable<int> list);
+
+ /// <summary>
+ /// Writes a repeated SInt32 value, including tag(s), to the stream.
+ /// </summary>
+ void WriteSInt32Array(int fieldNumber, string fieldName, IEnumerable<int> list);
+
+ /// <summary>
+ /// Writes a repeated UInt32 value, including tag(s), to the stream.
+ /// </summary>
+ void WriteUInt32Array(int fieldNumber, string fieldName, IEnumerable<uint> list);
+
+ /// <summary>
+ /// Writes a repeated Fixed32 value, including tag(s), to the stream.
+ /// </summary>
+ void WriteFixed32Array(int fieldNumber, string fieldName, IEnumerable<uint> list);
+
+ /// <summary>
+ /// Writes a repeated SFixed32 value, including tag(s), to the stream.
+ /// </summary>
+ void WriteSFixed32Array(int fieldNumber, string fieldName, IEnumerable<int> list);
+
+ /// <summary>
+ /// Writes a repeated Int64 value, including tag(s), to the stream.
+ /// </summary>
+ void WriteInt64Array(int fieldNumber, string fieldName, IEnumerable<long> list);
+
+ /// <summary>
+ /// Writes a repeated SInt64 value, including tag(s), to the stream.
+ /// </summary>
+ void WriteSInt64Array(int fieldNumber, string fieldName, IEnumerable<long> list);
+
+ /// <summary>
+ /// Writes a repeated UInt64 value, including tag(s), to the stream.
+ /// </summary>
+ void WriteUInt64Array(int fieldNumber, string fieldName, IEnumerable<ulong> list);
+
+ /// <summary>
+ /// Writes a repeated Fixed64 value, including tag(s), to the stream.
+ /// </summary>
+ void WriteFixed64Array(int fieldNumber, string fieldName, IEnumerable<ulong> list);
+
+ /// <summary>
+ /// Writes a repeated SFixed64 value, including tag(s), to the stream.
+ /// </summary>
+ void WriteSFixed64Array(int fieldNumber, string fieldName, IEnumerable<long> list);
+
+ /// <summary>
+ /// Writes a repeated Double value, including tag(s), to the stream.
+ /// </summary>
+ void WriteDoubleArray(int fieldNumber, string fieldName, IEnumerable<double> list);
+
+ /// <summary>
+ /// Writes a repeated Float value, including tag(s), to the stream.
+ /// </summary>
+ void WriteFloatArray(int fieldNumber, string fieldName, IEnumerable<float> list);
+
+ /// <summary>
+ /// Writes a repeated enumeration value of type T, including tag(s), to the stream.
+ /// </summary>
+ void WriteEnumArray<T>(int fieldNumber, string fieldName, IEnumerable<T> list)
+ where T : struct, IComparable, IFormattable;
+
+ /// <summary>
+ /// Writes a packed repeated primitive, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedArray(FieldType fieldType, int fieldNumber, string fieldName, IEnumerable list);
+
+ /// <summary>
+ /// Writes a packed repeated boolean, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedBoolArray(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<bool> list);
+
+ /// <summary>
+ /// Writes a packed repeated Int32, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedInt32Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<int> list);
+
+ /// <summary>
+ /// Writes a packed repeated SInt32, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedSInt32Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<int> list);
+
+ /// <summary>
+ /// Writes a packed repeated UInt32, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedUInt32Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<uint> list);
+
+ /// <summary>
+ /// Writes a packed repeated Fixed32, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedFixed32Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<uint> list);
+
+ /// <summary>
+ /// Writes a packed repeated SFixed32, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedSFixed32Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<int> list);
+
+ /// <summary>
+ /// Writes a packed repeated Int64, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedInt64Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<long> list);
+
+ /// <summary>
+ /// Writes a packed repeated SInt64, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedSInt64Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<long> list);
+
+ /// <summary>
+ /// Writes a packed repeated UInt64, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedUInt64Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<ulong> list);
+
+ /// <summary>
+ /// Writes a packed repeated Fixed64, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedFixed64Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<ulong> list);
+
+ /// <summary>
+ /// Writes a packed repeated SFixed64, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedSFixed64Array(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<long> list);
+
+ /// <summary>
+ /// Writes a packed repeated Double, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedDoubleArray(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<double> list);
+
+ /// <summary>
+ /// Writes a packed repeated Float, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedFloatArray(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<float> list);
+
+ /// <summary>
+ /// Writes a packed repeated enumeration of type T, including tag and length, to the stream.
+ /// </summary>
+ void WritePackedEnumArray<T>(int fieldNumber, string fieldName, int calculatedSize, IEnumerable<T> list)
+ where T : struct, IComparable, IFormattable;
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/IMessage.cs b/csharp/src/ProtocolBuffers/IMessage.cs
new file mode 100644
index 00000000..dd309d4e
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/IMessage.cs
@@ -0,0 +1,253 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Non-generic interface used for all parts of the API which don't require
+ /// any type knowledge.
+ /// </summary>
+ public interface IMessage : IMessageLite
+ {
+ /// <summary>
+ /// Returns the message's type's descriptor. This differs from the
+ /// Descriptor property of each generated message class in that this
+ /// method is an abstract method of IMessage whereas Descriptor is
+ /// a static property of a specific class. They return the same thing.
+ /// </summary>
+ MessageDescriptor DescriptorForType { get; }
+
+ /// <summary>
+ /// Returns a collection of all the fields in this message which are set
+ /// and their corresponding values. A singular ("required" or "optional")
+ /// field is set iff HasField() returns true for that field. A "repeated"
+ /// field is set iff GetRepeatedFieldSize() is greater than zero. The
+ /// values are exactly what would be returned by calling
+ /// GetField(FieldDescriptor) for each field. The map
+ /// is guaranteed to be a sorted map, so iterating over it will return fields
+ /// in order by field number.
+ /// </summary>
+ IDictionary<FieldDescriptor, object> AllFields { get; }
+
+ bool HasOneof(OneofDescriptor oneof);
+
+ FieldDescriptor OneofFieldDescriptor(OneofDescriptor oneof);
+
+ /// <summary>
+ /// Returns true if the given field is set. This is exactly equivalent
+ /// to calling the generated "Has" property corresponding to the field.
+ /// </summary>
+ /// <exception cref="ArgumentException">the field is a repeated field,
+ /// or it's not a field of this type</exception>
+ bool HasField(FieldDescriptor field);
+
+ /// <summary>
+ /// Obtains the value of the given field, or the default value if
+ /// it isn't set. For value type fields, the boxed value is returned.
+ /// For enum fields, the EnumValueDescriptor for the enum is returned.
+ /// For embedded message fields, the sub-message
+ /// is returned. For repeated fields, an IList&lt;T&gt; is returned.
+ /// </summary>
+ object this[FieldDescriptor field] { get; }
+
+ /// <summary>
+ /// Returns the number of elements of a repeated field. This is
+ /// exactly equivalent to calling the generated "Count" property
+ /// corresponding to the field.
+ /// </summary>
+ /// <exception cref="ArgumentException">the field is not a repeated field,
+ /// or it's not a field of this type</exception>
+ int GetRepeatedFieldCount(FieldDescriptor field);
+
+ /// <summary>
+ /// Gets an element of a repeated field. For value type fields
+ /// excluding enums, the boxed value is returned. For embedded
+ /// message fields, the sub-message is returned. For enums, the
+ /// relevant EnumValueDescriptor is returned.
+ /// </summary>
+ /// <exception cref="ArgumentException">the field is not a repeated field,
+ /// or it's not a field of this type</exception>
+ /// <exception cref="ArgumentOutOfRangeException">the index is out of
+ /// range for the repeated field's value</exception>
+ object this[FieldDescriptor field, int index] { get; }
+
+ /// <summary>
+ /// Returns the unknown fields for this message.
+ /// </summary>
+ UnknownFieldSet UnknownFields { get; }
+
+ /// <summary>
+ /// Returns true iff all required fields in the message and all embedded
+ /// messages are set.
+ /// </summary>
+ new bool IsInitialized { get; }
+
+ /// <summary>
+ /// Serializes the message and writes it to the given output stream.
+ /// This does not flush or close the stream.
+ /// </summary>
+ /// <remarks>
+ /// Protocol Buffers are not self-delimiting. Therefore, if you write
+ /// any more data to the stream after the message, you must somehow ensure
+ /// that the parser on the receiving end does not interpret this as being
+ /// part of the protocol message. One way of doing this is by writing the size
+ /// of the message before the data, then making sure you limit the input to
+ /// that size when receiving the data. Alternatively, use WriteDelimitedTo(Stream).
+ /// </remarks>
+ new void WriteTo(ICodedOutputStream output);
+
+ /// <summary>
+ /// Like WriteTo(Stream) but writes the size of the message as a varint before
+ /// writing the data. This allows more data to be written to the stream after the
+ /// message without the need to delimit the message data yourself. Use
+ /// IBuilder.MergeDelimitedFrom(Stream) or the static method
+ /// YourMessageType.ParseDelimitedFrom(Stream) to parse messages written by this method.
+ /// </summary>
+ /// <param name="output"></param>
+ new void WriteDelimitedTo(Stream output);
+
+ /// <summary>
+ /// Returns the number of bytes required to encode this message.
+ /// The result is only computed on the first call and memoized after that.
+ /// </summary>
+ new int SerializedSize { get; }
+
+ #region Comparison and hashing
+
+ /// <summary>
+ /// Compares the specified object with this message for equality.
+ /// Returns true iff the given object is a message of the same type
+ /// (as defined by DescriptorForType) and has identical values
+ /// for all its fields.
+ /// </summary>
+ new bool Equals(object other);
+
+ /// <summary>
+ /// Returns the hash code value for this message.
+ /// TODO(jonskeet): Specify the hash algorithm, but better than the Java one!
+ /// </summary>
+ new int GetHashCode();
+
+ #endregion
+
+ #region Convenience methods
+
+ /// <summary>
+ /// Converts the message to a string in protocol buffer text format.
+ /// This is just a trivial wrapper around TextFormat.PrintToString.
+ /// </summary>
+ new string ToString();
+
+ /// <summary>
+ /// Serializes the message to a ByteString. This is a trivial wrapper
+ /// around WriteTo(ICodedOutputStream).
+ /// </summary>
+ new ByteString ToByteString();
+
+ /// <summary>
+ /// Serializes the message to a byte array. This is a trivial wrapper
+ /// around WriteTo(ICodedOutputStream).
+ /// </summary>
+ new byte[] ToByteArray();
+
+ /// <summary>
+ /// Serializes the message and writes it to the given stream.
+ /// This is just a wrapper around WriteTo(ICodedOutputStream). This
+ /// does not flush or close the stream.
+ /// </summary>
+ /// <param name="output"></param>
+ new void WriteTo(Stream output);
+
+ #endregion
+
+ /// <summary>
+ /// Creates a builder for the type, but in a weakly typed manner. This
+ /// is typically implemented by strongly typed messages by just returning
+ /// the result of CreateBuilderForType.
+ /// </summary>
+ new IBuilder WeakCreateBuilderForType();
+
+ /// <summary>
+ /// Creates a builder with the same contents as this message. This
+ /// is typically implemented by strongly typed messages by just returning
+ /// the result of ToBuilder.
+ /// </summary>
+ new IBuilder WeakToBuilder();
+
+ new IMessage WeakDefaultInstanceForType { get; }
+ }
+
+ public interface IMessage<TMessage> : IMessage, IMessageLite<TMessage>
+ {
+ /// <summary>
+ /// Returns an instance of this message type with all fields set to
+ /// their default values. This may or may not be a singleton. This differs
+ /// from the DefaultInstance property of each generated message class in that this
+ /// method is an abstract method of IMessage whereas DefaultInstance is
+ /// a static property of a specific class. They return the same thing.
+ /// </summary>
+ new TMessage DefaultInstanceForType { get; }
+ }
+
+ /// <summary>
+ /// Type-safe interface for all generated messages to implement.
+ /// </summary>
+ public interface IMessage<TMessage, TBuilder> : IMessage<TMessage>, IMessageLite<TMessage, TBuilder>
+ where TMessage : IMessage<TMessage, TBuilder>
+ where TBuilder : IBuilder<TMessage, TBuilder>
+ {
+ #region Builders
+
+ /// <summary>
+ /// Constructs a new builder for a message of the same type as this message.
+ /// </summary>
+ new TBuilder CreateBuilderForType();
+
+ /// <summary>
+ /// Creates a builder with the same contents as this current instance.
+ /// This is typically implemented by strongly typed messages by just
+ /// returning the result of ToBuilder().
+ /// </summary>
+ new TBuilder ToBuilder();
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/IMessageLite.cs b/csharp/src/ProtocolBuffers/IMessageLite.cs
new file mode 100644
index 00000000..ea5d9940
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/IMessageLite.cs
@@ -0,0 +1,188 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Non-generic interface used for all parts of the API which don't require
+ /// any type knowledge.
+ /// </summary>
+ public partial interface IMessageLite
+ {
+ /// <summary>
+ /// Returns true iff all required fields in the message and all embedded
+ /// messages are set.
+ /// </summary>
+ bool IsInitialized { get; }
+
+ /// <summary>
+ /// Serializes the message and writes it to the given output stream.
+ /// This does not flush or close the stream.
+ /// </summary>
+ /// <remarks>
+ /// Protocol Buffers are not self-delimiting. Therefore, if you write
+ /// any more data to the stream after the message, you must somehow ensure
+ /// that the parser on the receiving end does not interpret this as being
+ /// part of the protocol message. One way of doing this is by writing the size
+ /// of the message before the data, then making sure you limit the input to
+ /// that size when receiving the data. Alternatively, use WriteDelimitedTo(Stream).
+ /// </remarks>
+ void WriteTo(ICodedOutputStream output);
+
+ /// <summary>
+ /// Like WriteTo(Stream) but writes the size of the message as a varint before
+ /// writing the data. This allows more data to be written to the stream after the
+ /// message without the need to delimit the message data yourself. Use
+ /// IBuilder.MergeDelimitedFrom(Stream) or the static method
+ /// YourMessageType.ParseDelimitedFrom(Stream) to parse messages written by this method.
+ /// </summary>
+ /// <param name="output"></param>
+ void WriteDelimitedTo(Stream output);
+
+ /// <summary>
+ /// Returns the number of bytes required to encode this message.
+ /// The result is only computed on the first call and memoized after that.
+ /// </summary>
+ int SerializedSize { get; }
+
+ #region Comparison and hashing
+
+ /// <summary>
+ /// Compares the specified object with this message for equality.
+ /// Returns true iff the given object is a message of the same type
+ /// (as defined by DescriptorForType) and has identical values
+ /// for all its fields.
+ /// </summary>
+ bool Equals(object other);
+
+ /// <summary>
+ /// Returns the hash code value for this message.
+ /// TODO(jonskeet): Specify the hash algorithm, but better than the Java one!
+ /// </summary>
+ int GetHashCode();
+
+ #endregion
+
+ #region Convenience methods
+
+ /// <summary>
+ /// Converts the message to a string in protocol buffer text format.
+ /// This is just a trivial wrapper around TextFormat.PrintToString.
+ /// </summary>
+ string ToString();
+
+ /// <summary>
+ /// Converts the message to a string.
+ /// </summary>
+ void PrintTo(TextWriter writer);
+
+ /// <summary>
+ /// Serializes the message to a ByteString. This is a trivial wrapper
+ /// around WriteTo(ICodedOutputStream).
+ /// </summary>
+ ByteString ToByteString();
+
+ /// <summary>
+ /// Serializes the message to a byte array. This is a trivial wrapper
+ /// around WriteTo(ICodedOutputStream).
+ /// </summary>
+ byte[] ToByteArray();
+
+ /// <summary>
+ /// Serializes the message and writes it to the given stream.
+ /// This is just a wrapper around WriteTo(ICodedOutputStream). This
+ /// does not flush or close the stream.
+ /// </summary>
+ /// <param name="output"></param>
+ void WriteTo(Stream output);
+
+ #endregion
+
+ /// <summary>
+ /// Creates a builder for the type, but in a weakly typed manner. This
+ /// is typically implemented by strongly typed messages by just returning
+ /// the result of CreateBuilderForType.
+ /// </summary>
+ IBuilderLite WeakCreateBuilderForType();
+
+ /// <summary>
+ /// Creates a builder with the same contents as this message. This
+ /// is typically implemented by strongly typed messages by just returning
+ /// the result of ToBuilder.
+ /// </summary>
+ IBuilderLite WeakToBuilder();
+
+ IMessageLite WeakDefaultInstanceForType { get; }
+ }
+
+ public interface IMessageLite<TMessage> : IMessageLite
+ {
+ /// <summary>
+ /// Returns an instance of this message type with all fields set to
+ /// their default values. This may or may not be a singleton. This differs
+ /// from the DefaultInstance property of each generated message class in that this
+ /// method is an abstract method of IMessage whereas DefaultInstance is
+ /// a static property of a specific class. They return the same thing.
+ /// </summary>
+ TMessage DefaultInstanceForType { get; }
+ }
+
+ /// <summary>
+ /// Type-safe interface for all generated messages to implement.
+ /// </summary>
+ public interface IMessageLite<TMessage, TBuilder> : IMessageLite<TMessage>
+ where TMessage : IMessageLite<TMessage, TBuilder>
+ where TBuilder : IBuilderLite<TMessage, TBuilder>
+ {
+ #region Builders
+
+ /// <summary>
+ /// Constructs a new builder for a message of the same type as this message.
+ /// </summary>
+ TBuilder CreateBuilderForType();
+
+ /// <summary>
+ /// Creates a builder with the same contents as this current instance.
+ /// This is typically implemented by strongly typed messages by just
+ /// returning the result of ToBuilder().
+ /// </summary>
+ TBuilder ToBuilder();
+
+ #endregion
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/InvalidProtocolBufferException.cs b/csharp/src/ProtocolBuffers/InvalidProtocolBufferException.cs
new file mode 100644
index 00000000..67d7b374
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/InvalidProtocolBufferException.cs
@@ -0,0 +1,112 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Thrown when a protocol message being parsed is invalid in some way,
+ /// e.g. it contains a malformed varint or a negative byte length.
+ /// </summary>
+ public sealed class InvalidProtocolBufferException : IOException
+ {
+ internal InvalidProtocolBufferException(string message)
+ : base(message)
+ {
+ }
+
+ public static InvalidProtocolBufferException TruncatedMessage()
+ {
+ return new InvalidProtocolBufferException(
+ "While parsing a protocol message, the input ended unexpectedly " +
+ "in the middle of a field. This could mean either than the " +
+ "input has been truncated or that an embedded message " +
+ "misreported its own length.");
+ }
+
+ internal static InvalidProtocolBufferException NegativeSize()
+ {
+ return new InvalidProtocolBufferException(
+ "CodedInputStream encountered an embedded string or message " +
+ "which claimed to have negative size.");
+ }
+
+ public static InvalidProtocolBufferException MalformedVarint()
+ {
+ return new InvalidProtocolBufferException(
+ "CodedInputStream encountered a malformed varint.");
+ }
+
+ public static InvalidProtocolBufferException InvalidTag()
+ {
+ return new InvalidProtocolBufferException(
+ "Protocol message contained an invalid tag (zero).");
+ }
+
+ internal static InvalidProtocolBufferException InvalidEndTag()
+ {
+ return new InvalidProtocolBufferException(
+ "Protocol message end-group tag did not match expected tag.");
+ }
+
+ internal static InvalidProtocolBufferException InvalidWireType()
+ {
+ return new InvalidProtocolBufferException(
+ "Protocol message tag had invalid wire type.");
+ }
+
+ internal static InvalidProtocolBufferException RecursionLimitExceeded()
+ {
+ return new InvalidProtocolBufferException(
+ "Protocol message had too many levels of nesting. May be malicious. " +
+ "Use CodedInputStream.SetRecursionLimit() to increase the depth limit.");
+ }
+
+ internal static InvalidProtocolBufferException SizeLimitExceeded()
+ {
+ return new InvalidProtocolBufferException(
+ "Protocol message was too large. May be malicious. " +
+ "Use CodedInputStream.SetSizeLimit() to increase the size limit.");
+ }
+
+ internal static InvalidProtocolBufferException InvalidMessageStreamTag()
+ {
+ return new InvalidProtocolBufferException(
+ "Stream of protocol messages had invalid tag. Expected tag is length-delimited field 1.");
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/MessageStreamIterator.cs b/csharp/src/ProtocolBuffers/MessageStreamIterator.cs
new file mode 100644
index 00000000..32d697ca
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/MessageStreamIterator.cs
@@ -0,0 +1,170 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Iterates over data created using a <see cref="MessageStreamWriter{T}" />.
+ /// Unlike MessageStreamWriter, this class is not usually constructed directly with
+ /// a stream; instead it is provided with a way of opening a stream when iteration
+ /// is started. The stream is closed when the iteration is completed or the enumerator
+ /// is disposed. (This occurs naturally when using <c>foreach</c>.)
+ /// </summary>
+ public class MessageStreamIterator<TMessage> : IEnumerable<TMessage>
+ where TMessage : IMessage<TMessage>
+ {
+ private readonly StreamProvider streamProvider;
+ private readonly ExtensionRegistry extensionRegistry;
+ private readonly int sizeLimit;
+
+ /// <summary>
+ /// The default instance of TMessage type used to construct builders while reading
+ /// </summary>
+ private static readonly TMessage defaultMessageInstance = CreateDefaultInstance();
+ /// <summary>
+ /// Any exception (within reason) thrown in type ctor is caught and rethrown in the constructor.
+ /// This makes life a lot simpler for the caller.
+ /// </summary>
+ private static Exception typeInitializationException;
+
+
+ /// <summary>
+ /// Vastly simplified the reflection to simply obtain the default instance and use it to construct
+ /// the weak builder while simply casting the result. Ideally this class should have required a
+ /// TBuilder type argument with a new() constraint to construct the initial instance thereby the
+ /// reflection could be eliminated.
+ /// </summary>
+ private static TMessage CreateDefaultInstance()
+ {
+ try
+ {
+ return (TMessage)typeof(TMessage)
+ .GetProperty("DefaultInstance", typeof(TMessage), new Type[0])
+ .GetValue(null, null);
+ }
+ catch (Exception e)
+ {
+ typeInitializationException = e;
+ return default(TMessage);
+ }
+ }
+
+ private static readonly uint ExpectedTag = WireFormat.MakeTag(1, WireFormat.WireType.LengthDelimited);
+
+ private MessageStreamIterator(StreamProvider streamProvider, ExtensionRegistry extensionRegistry, int sizeLimit)
+ {
+ if (ReferenceEquals(defaultMessageInstance, null))
+ {
+ throw new System.Reflection.TargetInvocationException(typeInitializationException);
+ }
+ this.streamProvider = streamProvider;
+ this.extensionRegistry = extensionRegistry;
+ this.sizeLimit = sizeLimit;
+ }
+
+ private MessageStreamIterator(StreamProvider streamProvider, ExtensionRegistry extensionRegistry)
+ : this(streamProvider, extensionRegistry, CodedInputStream.DefaultSizeLimit)
+ {
+ }
+
+ /// <summary>
+ /// Creates a new instance which uses the same stream provider as this one,
+ /// but the specified extension registry.
+ /// </summary>
+ public MessageStreamIterator<TMessage> WithExtensionRegistry(ExtensionRegistry newRegistry)
+ {
+ return new MessageStreamIterator<TMessage>(streamProvider, newRegistry, sizeLimit);
+ }
+
+ /// <summary>
+ /// Creates a new instance which uses the same stream provider and extension registry as this one,
+ /// but with the specified size limit. Note that this must be big enough for the largest message
+ /// and the tag and size preceding it.
+ /// </summary>
+ public MessageStreamIterator<TMessage> WithSizeLimit(int newSizeLimit)
+ {
+ return new MessageStreamIterator<TMessage>(streamProvider, extensionRegistry, newSizeLimit);
+ }
+
+#if CLIENTPROFILE
+ public static MessageStreamIterator<TMessage> FromFile(string file)
+ {
+ return new MessageStreamIterator<TMessage>(() => File.OpenRead(file), ExtensionRegistry.Empty);
+ }
+#endif
+
+ public static MessageStreamIterator<TMessage> FromStreamProvider(StreamProvider streamProvider)
+ {
+ return new MessageStreamIterator<TMessage>(streamProvider, ExtensionRegistry.Empty);
+ }
+
+ public IEnumerator<TMessage> GetEnumerator()
+ {
+ using (Stream stream = streamProvider())
+ {
+ CodedInputStream input = CodedInputStream.CreateInstance(stream);
+ input.SetSizeLimit(sizeLimit);
+ uint tag;
+ string name;
+ while (input.ReadTag(out tag, out name))
+ {
+ if ((tag == 0 && name == "item") || (tag == ExpectedTag))
+ {
+ IBuilder builder = defaultMessageInstance.WeakCreateBuilderForType();
+ input.ReadMessage(builder, extensionRegistry);
+ yield return (TMessage)builder.WeakBuild();
+ }
+ else
+ {
+ throw InvalidProtocolBufferException.InvalidMessageStreamTag();
+ }
+
+ input.ResetSizeCounter();
+ }
+ }
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/MessageStreamWriter.cs b/csharp/src/ProtocolBuffers/MessageStreamWriter.cs
new file mode 100644
index 00000000..3430e13c
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/MessageStreamWriter.cs
@@ -0,0 +1,70 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Writes multiple messages to the same stream. Each message is written
+ /// as if it were an element of a repeated field 1 in a larger protocol buffer.
+ /// This class takes no ownership of the stream it is given; it never closes the
+ /// stream.
+ /// </summary>
+ public sealed class MessageStreamWriter<T> where T : IMessage<T>
+ {
+ private readonly CodedOutputStream codedOutput;
+
+ /// <summary>
+ /// Creates an instance which writes to the given stream.
+ /// </summary>
+ /// <param name="output">Stream to write messages to.</param>
+ public MessageStreamWriter(Stream output)
+ {
+ codedOutput = CodedOutputStream.CreateInstance(output);
+ }
+
+ public void Write(T message)
+ {
+ codedOutput.WriteMessage(1, "item", message);
+ }
+
+ public void Flush()
+ {
+ codedOutput.Flush();
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/MessageUtil.cs b/csharp/src/ProtocolBuffers/MessageUtil.cs
new file mode 100644
index 00000000..d120d209
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/MessageUtil.cs
@@ -0,0 +1,109 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Reflection;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Utilities for arbitrary messages of an unknown type. This class does not use
+ /// generics precisely because it is designed for dynamically discovered types.
+ /// </summary>
+ public static class MessageUtil
+ {
+ /// <summary>
+ /// Returns the default message for the given type. If an exception is thrown
+ /// (directly from this code), the message will be suitable to be displayed to a user.
+ /// </summary>
+ /// <param name="type"></param>
+ /// <exception cref="ArgumentNullException">The type parameter is null.</exception>
+ /// <exception cref="ArgumentException">The type doesn't implement IMessage, or doesn't
+ /// have a static DefaultMessage property of the same type, or is generic or abstract.</exception>
+ /// <returns></returns>
+ public static IMessage GetDefaultMessage(Type type)
+ {
+ if (type == null)
+ {
+ throw new ArgumentNullException("type", "No type specified.");
+ }
+ if (type.IsAbstract || type.IsGenericTypeDefinition)
+ {
+ throw new ArgumentException("Unable to get a default message for an abstract or generic type (" +
+ type.FullName + ")");
+ }
+ if (!typeof(IMessage).IsAssignableFrom(type))
+ {
+ throw new ArgumentException("Unable to get a default message for non-message type (" + type.FullName +
+ ")");
+ }
+ PropertyInfo property = type.GetProperty("DefaultInstance",
+ BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
+ if (property == null)
+ {
+ throw new ArgumentException(type.FullName + " doesn't have a static DefaultInstance property");
+ }
+ if (property.PropertyType != type)
+ {
+ throw new ArgumentException(type.FullName + ".DefaultInstance property is of the wrong type");
+ }
+ return (IMessage) property.GetValue(null, null);
+ }
+
+ /// <summary>
+ /// Returns the default message for the type with the given name. This is just
+ /// a convenience wrapper around calling Type.GetType and then GetDefaultMessage.
+ /// If an exception is thrown, the message will be suitable to be displayed to a user.
+ /// </summary>
+ /// <param name="typeName"></param>
+ /// <exception cref="ArgumentNullException">The typeName parameter is null.</exception>
+ /// <exception cref="ArgumentException">The type doesn't implement IMessage, or doesn't
+ /// have a static DefaultMessage property of the same type, or can't be found.</exception>
+ public static IMessage GetDefaultMessage(string typeName)
+ {
+ if (typeName == null)
+ {
+ throw new ArgumentNullException("typeName", "No type name specified.");
+ }
+ Type type = Type.GetType(typeName);
+ if (type == null)
+ {
+ throw new ArgumentException("Unable to load type " + typeName);
+ }
+ return GetDefaultMessage(type);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/NameHelpers.cs b/csharp/src/ProtocolBuffers/NameHelpers.cs
new file mode 100644
index 00000000..80a1f9aa
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/NameHelpers.cs
@@ -0,0 +1,140 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Text.RegularExpressions;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Helpers for converting names to pascal case etc.
+ /// </summary>
+ public class NameHelpers
+ {
+ /// <summary>
+ /// All characters that are not alpha-numeric
+ /// </summary>
+ private static readonly Regex NonAlphaNumericCharacters = new Regex(@"[^a-zA-Z0-9]+");
+
+ /// <summary>
+ /// Matches lower-case character that follow either an underscore, or a number
+ /// </summary>
+ private static readonly Regex UnderscoreOrNumberWithLowerCase = new Regex(@"[0-9_][a-z]");
+
+ /// <summary>
+ /// Removes non alpha numeric characters while capitalizing letters that follow
+ /// a number or underscore. The first letter is always upper case.
+ /// </summary>
+ public static string UnderscoresToPascalCase(string input)
+ {
+ string name = UnderscoresToUpperCase(input);
+
+ // Pascal case always begins with upper-case letter
+ if (Char.IsLower(name[0]))
+ {
+ char[] chars = name.ToCharArray();
+ chars[0] = char.ToUpper(chars[0]);
+ return new string(chars);
+ }
+ return name;
+ }
+
+ /// <summary>
+ /// Removes non alpha numeric characters while capitalizing letters that follow
+ /// a number or underscore. The first letter is always lower case.
+ /// </summary>
+ public static string UnderscoresToCamelCase(string input)
+ {
+ string name = UnderscoresToUpperCase(input);
+
+ // Camel case always begins with lower-case letter
+ if (Char.IsUpper(name[0]))
+ {
+ char[] chars = name.ToCharArray();
+ chars[0] = char.ToLower(chars[0]);
+ return new string(chars);
+ }
+ return name;
+ }
+
+ /// <summary>
+ /// Capitalizes any characters following an '_' or a number '0' - '9' and removes
+ /// all non alpha-numeric characters. If the resulting string begins with a number
+ /// an '_' will be prefixed.
+ /// </summary>
+ private static string UnderscoresToUpperCase(string input)
+ {
+ string name = UnderscoreOrNumberWithLowerCase.Replace(input, x => x.Value.ToUpper());
+ name = NonAlphaNumericCharacters.Replace(name, String.Empty);
+
+ if (name.Length == 0)
+ {
+ throw new ArgumentException(String.Format("The field name '{0}' is invalid.", input));
+ }
+
+ // Fields can not start with a number
+ if (Char.IsNumber(name[0]))
+ {
+ name = '_' + name;
+ }
+
+ return name;
+ }
+
+ internal static string StripProto(string text)
+ {
+ if (!StripSuffix(ref text, ".protodevel"))
+ {
+ StripSuffix(ref text, ".proto");
+ }
+ return text;
+ }
+
+ /// <summary>
+ /// Attempts to strip a suffix from a string, returning whether
+ /// or not the suffix was actually present.
+ /// </summary>
+ public static bool StripSuffix(ref string text, string suffix)
+ {
+ if (text.EndsWith(suffix))
+ {
+ text = text.Substring(0, text.Length - suffix.Length);
+ return true;
+ }
+ return false;
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/Properties/AssemblyInfo.cs b/csharp/src/ProtocolBuffers/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..806bd5d5
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/Properties/AssemblyInfo.cs
@@ -0,0 +1,67 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+using System;
+using System.Reflection;
+using System.Runtime.InteropServices;
+using System.Runtime.CompilerServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+using System.Security;
+
+[assembly: AssemblyTitle("ProtocolBuffers")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ProtocolBuffers")]
+[assembly: AssemblyCopyright("Copyright © 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("2.4.1.555")]
+
+[assembly: AssemblyVersion("2.4.1.555")]
+
+#if !NOFILEVERSION
+[assembly: AssemblyFileVersion("2.4.1.555")]
+#endif
+
diff --git a/csharp/src/ProtocolBuffers/ProtocolBuffers.csproj b/csharp/src/ProtocolBuffers/ProtocolBuffers.csproj
new file mode 100644
index 00000000..7dc8f665
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ProtocolBuffers.csproj
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffers</AssemblyName>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <TargetFrameworkProfile>Profile92</TargetFrameworkProfile>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>..\..\keys\Google.ProtocolBuffers.snk</AssemblyOriginatorKeyFile>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
+ <NoWarn>1591, 1570, 1571, 1572, 1573, 1574</NoWarn>
+ <DefineConstants>DEBUG;TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
+ <NoWarn>1591, 1570, 1571, 1572, 1573, 1574</NoWarn>
+ <DefineConstants>TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="AbstractBuilder.cs" />
+ <Compile Include="AbstractBuilderLite.cs" />
+ <Compile Include="AbstractMessage.cs" />
+ <Compile Include="AbstractMessageLite.cs" />
+ <Compile Include="ByteArray.cs" />
+ <Compile Include="ByteString.cs" />
+ <Compile Include="Collections\Enumerables.cs" />
+ <Compile Include="Collections\IPopsicleList.cs" />
+ <Compile Include="Collections\PopsicleList.cs" />
+ <Compile Include="CodedOutputStream.ComputeSize.cs" />
+ <Compile Include="Delegates.cs" />
+ <Compile Include="CodedInputStream.cs" />
+ <Compile Include="CodedOutputStream.cs" />
+ <Compile Include="Collections\Dictionaries.cs" />
+ <Compile Include="Collections\Lists.cs" />
+ <Compile Include="Collections\ReadOnlyDictionary.cs" />
+ <Compile Include="DescriptorProtos\DescriptorProtoFile.cs" />
+ <Compile Include="DescriptorProtos\IDescriptorProto.cs" />
+ <Compile Include="DescriptorProtos\PartialClasses.cs" />
+ <Compile Include="Descriptors\DescriptorBase.cs" />
+ <Compile Include="Descriptors\DescriptorPool.cs" />
+ <Compile Include="Descriptors\DescriptorUtil.cs" />
+ <Compile Include="Descriptors\DescriptorValidationException.cs" />
+ <Compile Include="Descriptors\EnumDescriptor.cs" />
+ <Compile Include="Descriptors\EnumValueDescriptor.cs" />
+ <Compile Include="Descriptors\FieldDescriptor.cs" />
+ <Compile Include="Descriptors\FieldMappingAttribute.cs" />
+ <Compile Include="Descriptors\FieldType.cs" />
+ <Compile Include="Descriptors\FileDescriptor.cs" />
+ <Compile Include="Descriptors\OneofDescriptor.cs" />
+ <Compile Include="Descriptors\IDescriptor.cs" />
+ <Compile Include="Descriptors\IndexedDescriptorBase.cs" />
+ <Compile Include="Descriptors\MappedType.cs" />
+ <Compile Include="Descriptors\MessageDescriptor.cs" />
+ <Compile Include="Descriptors\MethodDescriptor.cs" />
+ <Compile Include="Descriptors\PackageDescriptor.cs" />
+ <Compile Include="Descriptors\ServiceDescriptor.cs" />
+ <Compile Include="DynamicMessage.cs" />
+ <Compile Include="EnumLite.cs" />
+ <Compile Include="ExtendableBuilder.cs" />
+ <Compile Include="ExtendableBuilderLite.cs" />
+ <Compile Include="ExtendableMessage.cs" />
+ <Compile Include="ExtendableMessageLite.cs" />
+ <Compile Include="ExtensionInfo.cs" />
+ <Compile Include="ExtensionRegistry.cs" />
+ <Compile Include="ExtensionRegistryLite.cs" />
+ <Compile Include="FieldAccess\ReflectionUtil.cs" />
+ <Compile Include="FieldAccess\SingleEnumAccessor.cs" />
+ <Compile Include="FieldAccess\SingleMessageAccessor.cs" />
+ <Compile Include="FieldAccess\SinglePrimitiveAccessor.cs" />
+ <Compile Include="FieldAccess\RepeatedPrimitiveAccessor.cs" />
+ <Compile Include="FieldAccess\RepeatedEnumAccessor.cs" />
+ <Compile Include="FieldAccess\IFieldAccessor.cs" />
+ <Compile Include="FieldAccess\FieldAccessorTable.cs" />
+ <Compile Include="FieldAccess\RepeatedMessageAccessor.cs" />
+ <Compile Include="FieldAccess\OneofAccessor.cs" />
+ <Compile Include="FieldSet.cs" />
+ <Compile Include="FrameworkPortability.cs" />
+ <Compile Include="GeneratedBuilder.cs" />
+ <Compile Include="GeneratedBuilderLite.cs" />
+ <Compile Include="GeneratedExtensionLite.cs" />
+ <Compile Include="GeneratedMessageLite.cs" />
+ <Compile Include="GeneratedRepeatExtension.cs" />
+ <Compile Include="GeneratedSingleExtension.cs" />
+ <Compile Include="GeneratedMessage.cs" />
+ <Compile Include="IBuilder.cs" />
+ <Compile Include="GeneratedExtensionBase.cs" />
+ <Compile Include="IBuilderLite.cs" />
+ <Compile Include="ICodedInputStream.cs" />
+ <Compile Include="ICodedOutputStream.cs" />
+ <Compile Include="IMessage.cs" />
+ <Compile Include="IMessageLite.cs" />
+ <Compile Include="InvalidProtocolBufferException.cs" />
+ <Compile Include="MessageStreamIterator.cs" />
+ <Compile Include="MessageStreamWriter.cs" />
+ <Compile Include="MessageUtil.cs" />
+ <Compile Include="NameHelpers.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="SortedList.cs" />
+ <Compile Include="TextFormat.cs" />
+ <Compile Include="TextGenerator.cs" />
+ <Compile Include="TextTokenizer.cs" />
+ <Compile Include="ThrowHelper.cs" />
+ <Compile Include="UninitializedMessageException.cs" />
+ <Compile Include="UnknownField.cs" />
+ <Compile Include="UnknownFieldSet.cs" />
+ <Compile Include="WireFormat.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
diff --git a/csharp/src/ProtocolBuffers/ProtocolBuffersLite.csproj b/csharp/src/ProtocolBuffers/ProtocolBuffersLite.csproj
new file mode 100644
index 00000000..d0912a6b
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ProtocolBuffersLite.csproj
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{6969BDCE-D925-43F3-94AC-A531E6DF2591}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffersLite</AssemblyName>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <TargetFrameworkProfile>Profile92</TargetFrameworkProfile>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>..\..\keys\Google.ProtocolBuffers.snk</AssemblyOriginatorKeyFile>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
+ <NoWarn>1591, 1570, 1571, 1572, 1573, 1574</NoWarn>
+ <DefineConstants>DEBUG;TRACE;LITE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DocumentationFile>$(OutputPath)\$(AssemblyName).xml</DocumentationFile>
+ <NoWarn>1591, 1570, 1571, 1572, 1573, 1574</NoWarn>
+ <DefineConstants>TRACE;LITE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="AbstractBuilderLite.cs" />
+ <Compile Include="AbstractMessageLite.cs" />
+ <Compile Include="ByteArray.cs" />
+ <Compile Include="CodedOutputStream.ComputeSize.cs" />
+ <Compile Include="Collections\Dictionaries.cs" />
+ <Compile Include="Collections\Enumerables.cs" />
+ <Compile Include="Collections\IPopsicleList.cs" />
+ <Compile Include="Collections\Lists.cs" />
+ <Compile Include="Collections\PopsicleList.cs" />
+ <Compile Include="Collections\ReadOnlyDictionary.cs" />
+ <Compile Include="Descriptors\FieldMappingAttribute.cs" />
+ <Compile Include="Descriptors\FieldType.cs" />
+ <Compile Include="Descriptors\MappedType.cs" />
+ <Compile Include="EnumLite.cs" />
+ <Compile Include="ExtendableBuilderLite.cs" />
+ <Compile Include="ExtendableMessageLite.cs" />
+ <Compile Include="FieldSet.cs" />
+ <Compile Include="FrameworkPortability.cs" />
+ <Compile Include="GeneratedBuilderLite.cs" />
+ <Compile Include="GeneratedExtensionLite.cs" />
+ <Compile Include="GeneratedMessageLite.cs" />
+ <Compile Include="ICodedInputStream.cs" />
+ <Compile Include="ICodedOutputStream.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="ByteString.cs" />
+ <Compile Include="CodedInputStream.cs" />
+ <Compile Include="CodedOutputStream.cs" />
+ <Compile Include="ExtensionRegistryLite.cs" />
+ <Compile Include="IBuilderLite.cs" />
+ <Compile Include="IMessageLite.cs" />
+ <Compile Include="InvalidProtocolBufferException.cs" />
+ <Compile Include="SortedList.cs" />
+ <Compile Include="ThrowHelper.cs" />
+ <Compile Include="UninitializedMessageException.cs" />
+ <Compile Include="WireFormat.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/SortedList.cs b/csharp/src/ProtocolBuffers/SortedList.cs
new file mode 100644
index 00000000..2dd7da92
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/SortedList.cs
@@ -0,0 +1,167 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+#if NOSORTEDLIST
+using System.Collections;
+using System.Collections.Generic;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Dictionary implementation which always yields keys in sorted order.
+ /// This is not particularly efficient: it wraps a normal dictionary
+ /// for most operations, but sorts by key when either iterating or
+ /// fetching the Keys/Values properties.
+ /// </summary>
+ internal sealed class SortedList<TKey, TValue> : IDictionary<TKey, TValue>
+ {
+ private readonly IDictionary<TKey, TValue> wrapped = new Dictionary<TKey, TValue>();
+
+ public SortedList()
+ {
+ }
+
+ public SortedList(IDictionary<TKey, TValue> dictionary)
+ {
+ foreach (KeyValuePair<TKey, TValue> entry in dictionary)
+ {
+ Add(entry.Key, entry.Value);
+ }
+ }
+
+ public void Add(TKey key, TValue value)
+ {
+ wrapped.Add(key, value);
+ }
+
+ public bool ContainsKey(TKey key)
+ {
+ return wrapped.ContainsKey(key);
+ }
+
+ public ICollection<TKey> Keys
+ {
+ get
+ {
+ List<TKey> keys = new List<TKey>(wrapped.Count);
+ foreach (var pair in this)
+ {
+ keys.Add(pair.Key);
+ }
+ return keys;
+ }
+ }
+
+ public bool Remove(TKey key)
+ {
+ return wrapped.Remove(key);
+ }
+
+ public bool TryGetValue(TKey key, out TValue value)
+ {
+ return wrapped.TryGetValue(key, out value);
+ }
+
+ public ICollection<TValue> Values
+ {
+ get
+ {
+ List<TValue> values = new List<TValue>(wrapped.Count);
+ foreach (var pair in this)
+ {
+ values.Add(pair.Value);
+ }
+ return values;
+ }
+ }
+
+ public TValue this[TKey key]
+ {
+ get { return wrapped[key]; }
+ set { wrapped[key] = value; }
+ }
+
+ public void Add(KeyValuePair<TKey, TValue> item)
+ {
+ wrapped.Add(item);
+ }
+
+ public void Clear()
+ {
+ wrapped.Clear();
+ }
+
+ public bool Contains(KeyValuePair<TKey, TValue> item)
+ {
+ return wrapped.Contains(item);
+ }
+
+ public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
+ {
+ wrapped.CopyTo(array, arrayIndex);
+ }
+
+ public int Count
+ {
+ get { return wrapped.Count; }
+ }
+
+ public bool IsReadOnly
+ {
+ get { return wrapped.IsReadOnly; }
+ }
+
+ public bool Remove(KeyValuePair<TKey, TValue> item)
+ {
+ return wrapped.Remove(item);
+ }
+
+ public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
+ {
+ IComparer<TKey> comparer = Comparer<TKey>.Default;
+ var list = new List<KeyValuePair<TKey, TValue>>(wrapped);
+ list.Sort((x, y) => comparer.Compare(x.Key, y.Key));
+ return list.GetEnumerator();
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/TextFormat.cs b/csharp/src/ProtocolBuffers/TextFormat.cs
new file mode 100644
index 00000000..6a9180f3
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/TextFormat.cs
@@ -0,0 +1,893 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Provides ASCII text formatting support for messages.
+ /// TODO(jonskeet): Support for alternative line endings.
+ /// (Easy to print, via TextGenerator. Not sure about parsing.)
+ /// </summary>
+ public static class TextFormat
+ {
+ /// <summary>
+ /// Outputs a textual representation of the Protocol Message supplied into
+ /// the parameter output.
+ /// </summary>
+ public static void Print(IMessage message, TextWriter output)
+ {
+ TextGenerator generator = new TextGenerator(output, "\n");
+ Print(message, generator);
+ }
+
+ /// <summary>
+ /// Outputs a textual representation of the Protocol Message builder supplied into
+ /// the parameter output.
+ /// </summary>
+ public static void Print(IBuilder builder, TextWriter output)
+ {
+ TextGenerator generator = new TextGenerator(output, "\n");
+ Print(builder, generator);
+ }
+
+ /// <summary>
+ /// Outputs a textual representation of <paramref name="fields" /> to <paramref name="output"/>.
+ /// </summary>
+ public static void Print(UnknownFieldSet fields, TextWriter output)
+ {
+ TextGenerator generator = new TextGenerator(output, "\n");
+ PrintUnknownFields(fields, generator);
+ }
+
+ public static string PrintToString(IMessage message)
+ {
+ StringWriter text = new StringWriter();
+ Print(message, text);
+ return text.ToString();
+ }
+
+ public static string PrintToString(IBuilder builder)
+ {
+ StringWriter text = new StringWriter();
+ Print(builder, text);
+ return text.ToString();
+ }
+
+ public static string PrintToString(UnknownFieldSet fields)
+ {
+ StringWriter text = new StringWriter();
+ Print(fields, text);
+ return text.ToString();
+ }
+
+ private static void Print(IMessage message, TextGenerator generator)
+ {
+ foreach (KeyValuePair<FieldDescriptor, object> entry in message.AllFields)
+ {
+ PrintField(entry.Key, entry.Value, generator);
+ }
+ PrintUnknownFields(message.UnknownFields, generator);
+ }
+
+ private static void Print(IBuilder message, TextGenerator generator)
+ {
+ foreach (KeyValuePair<FieldDescriptor, object> entry in message.AllFields)
+ {
+ PrintField(entry.Key, entry.Value, generator);
+ }
+ PrintUnknownFields(message.UnknownFields, generator);
+ }
+
+ internal static void PrintField(FieldDescriptor field, object value, TextGenerator generator)
+ {
+ if (field.IsRepeated)
+ {
+ // Repeated field. Print each element.
+ foreach (object element in (IEnumerable) value)
+ {
+ PrintSingleField(field, element, generator);
+ }
+ }
+ else
+ {
+ PrintSingleField(field, value, generator);
+ }
+ }
+
+ private static void PrintSingleField(FieldDescriptor field, Object value, TextGenerator generator)
+ {
+ if (field.IsExtension)
+ {
+ generator.Print("[");
+ // We special-case MessageSet elements for compatibility with proto1.
+ if (field.ContainingType.Options.MessageSetWireFormat
+ && field.FieldType == FieldType.Message
+ && field.IsOptional
+ // object equality (TODO(jonskeet): Work out what this comment means!)
+ && field.ExtensionScope == field.MessageType)
+ {
+ generator.Print(field.MessageType.FullName);
+ }
+ else
+ {
+ generator.Print(field.FullName);
+ }
+ generator.Print("]");
+ }
+ else
+ {
+ if (field.FieldType == FieldType.Group)
+ {
+ // Groups must be serialized with their original capitalization.
+ generator.Print(field.MessageType.Name);
+ }
+ else
+ {
+ generator.Print(field.Name);
+ }
+ }
+
+ if (field.MappedType == MappedType.Message)
+ {
+ generator.Print(" {\n");
+ generator.Indent();
+ }
+ else
+ {
+ generator.Print(": ");
+ }
+
+ PrintFieldValue(field, value, generator);
+
+ if (field.MappedType == MappedType.Message)
+ {
+ generator.Outdent();
+ generator.Print("}");
+ }
+ generator.Print("\n");
+ }
+
+ private static void PrintFieldValue(FieldDescriptor field, object value, TextGenerator generator)
+ {
+ switch (field.FieldType)
+ {
+ // The Float and Double types must specify the "r" format to preserve their precision, otherwise,
+ // the double to/from string will trim the precision to 6 places. As with other numeric formats
+ // below, always use the invariant culture so it's predictable.
+ case FieldType.Float:
+ generator.Print(((float)value).ToString("r", FrameworkPortability.InvariantCulture));
+ break;
+ case FieldType.Double:
+ generator.Print(((double)value).ToString("r", FrameworkPortability.InvariantCulture));
+ break;
+
+ case FieldType.Int32:
+ case FieldType.Int64:
+ case FieldType.SInt32:
+ case FieldType.SInt64:
+ case FieldType.SFixed32:
+ case FieldType.SFixed64:
+ case FieldType.UInt32:
+ case FieldType.UInt64:
+ case FieldType.Fixed32:
+ case FieldType.Fixed64:
+ // The simple Object.ToString converts using the current culture.
+ // We want to always use the invariant culture so it's predictable.
+ generator.Print(((IConvertible)value).ToString(FrameworkPortability.InvariantCulture));
+ break;
+ case FieldType.Bool:
+ // Explicitly use the Java true/false
+ generator.Print((bool) value ? "true" : "false");
+ break;
+
+ case FieldType.String:
+ generator.Print("\"");
+ generator.Print(EscapeText((string) value));
+ generator.Print("\"");
+ break;
+
+ case FieldType.Bytes:
+ {
+ generator.Print("\"");
+ generator.Print(EscapeBytes((ByteString) value));
+ generator.Print("\"");
+ break;
+ }
+
+ case FieldType.Enum:
+ {
+ if (value is IEnumLite && !(value is EnumValueDescriptor))
+ {
+ throw new NotSupportedException("Lite enumerations are not supported.");
+ }
+ generator.Print(((EnumValueDescriptor) value).Name);
+ break;
+ }
+
+ case FieldType.Message:
+ case FieldType.Group:
+ if (value is IMessageLite && !(value is IMessage))
+ {
+ throw new NotSupportedException("Lite messages are not supported.");
+ }
+ Print((IMessage) value, generator);
+ break;
+ }
+ }
+
+ private static void PrintUnknownFields(UnknownFieldSet unknownFields, TextGenerator generator)
+ {
+ foreach (KeyValuePair<int, UnknownField> entry in unknownFields.FieldDictionary)
+ {
+ String prefix = entry.Key.ToString() + ": ";
+ UnknownField field = entry.Value;
+
+ foreach (ulong value in field.VarintList)
+ {
+ generator.Print(prefix);
+ generator.Print(value.ToString());
+ generator.Print("\n");
+ }
+ foreach (uint value in field.Fixed32List)
+ {
+ generator.Print(prefix);
+ generator.Print(string.Format("0x{0:x8}", value));
+ generator.Print("\n");
+ }
+ foreach (ulong value in field.Fixed64List)
+ {
+ generator.Print(prefix);
+ generator.Print(string.Format("0x{0:x16}", value));
+ generator.Print("\n");
+ }
+ foreach (ByteString value in field.LengthDelimitedList)
+ {
+ generator.Print(entry.Key.ToString());
+ generator.Print(": \"");
+ generator.Print(EscapeBytes(value));
+ generator.Print("\"\n");
+ }
+ foreach (UnknownFieldSet value in field.GroupList)
+ {
+ generator.Print(entry.Key.ToString());
+ generator.Print(" {\n");
+ generator.Indent();
+ PrintUnknownFields(value, generator);
+ generator.Outdent();
+ generator.Print("}\n");
+ }
+ }
+ }
+
+ public static ulong ParseUInt64(string text)
+ {
+ return (ulong) ParseInteger(text, false, true);
+ }
+
+ public static long ParseInt64(string text)
+ {
+ return ParseInteger(text, true, true);
+ }
+
+ public static uint ParseUInt32(string text)
+ {
+ return (uint) ParseInteger(text, false, false);
+ }
+
+ public static int ParseInt32(string text)
+ {
+ return (int) ParseInteger(text, true, false);
+ }
+
+ public static float ParseFloat(string text)
+ {
+ switch (text)
+ {
+ case "-inf":
+ case "-infinity":
+ case "-inff":
+ case "-infinityf":
+ return float.NegativeInfinity;
+ case "inf":
+ case "infinity":
+ case "inff":
+ case "infinityf":
+ return float.PositiveInfinity;
+ case "nan":
+ case "nanf":
+ return float.NaN;
+ default:
+ return float.Parse(text, FrameworkPortability.InvariantCulture);
+ }
+ }
+
+ public static double ParseDouble(string text)
+ {
+ switch (text)
+ {
+ case "-inf":
+ case "-infinity":
+ return double.NegativeInfinity;
+ case "inf":
+ case "infinity":
+ return double.PositiveInfinity;
+ case "nan":
+ return double.NaN;
+ default:
+ return double.Parse(text, FrameworkPortability.InvariantCulture);
+ }
+ }
+
+ /// <summary>
+ /// Parses an integer in hex (leading 0x), decimal (no prefix) or octal (leading 0).
+ /// Only a negative sign is permitted, and it must come before the radix indicator.
+ /// </summary>
+ private static long ParseInteger(string text, bool isSigned, bool isLong)
+ {
+ string original = text;
+ bool negative = false;
+ if (text.StartsWith("-"))
+ {
+ if (!isSigned)
+ {
+ throw new FormatException("Number must be positive: " + original);
+ }
+ negative = true;
+ text = text.Substring(1);
+ }
+
+ int radix = 10;
+ if (text.StartsWith("0x"))
+ {
+ radix = 16;
+ text = text.Substring(2);
+ }
+ else if (text.StartsWith("0"))
+ {
+ radix = 8;
+ }
+
+ ulong result;
+ try
+ {
+ // Workaround for https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=278448
+ // We should be able to use Convert.ToUInt64 for all cases.
+ result = radix == 10 ? ulong.Parse(text) : Convert.ToUInt64(text, radix);
+ }
+ catch (OverflowException)
+ {
+ // Convert OverflowException to FormatException so there's a single exception type this method can throw.
+ string numberDescription = string.Format("{0}-bit {1}signed integer", isLong ? 64 : 32,
+ isSigned ? "" : "un");
+ throw new FormatException("Number out of range for " + numberDescription + ": " + original);
+ }
+
+ if (negative)
+ {
+ ulong max = isLong ? 0x8000000000000000UL : 0x80000000L;
+ if (result > max)
+ {
+ string numberDescription = string.Format("{0}-bit signed integer", isLong ? 64 : 32);
+ throw new FormatException("Number out of range for " + numberDescription + ": " + original);
+ }
+ return -((long) result);
+ }
+ else
+ {
+ ulong max = isSigned
+ ? (isLong ? (ulong) long.MaxValue : int.MaxValue)
+ : (isLong ? ulong.MaxValue : uint.MaxValue);
+ if (result > max)
+ {
+ string numberDescription = string.Format("{0}-bit {1}signed integer", isLong ? 64 : 32,
+ isSigned ? "" : "un");
+ throw new FormatException("Number out of range for " + numberDescription + ": " + original);
+ }
+ return (long) result;
+ }
+ }
+
+ /// <summary>
+ /// Tests a character to see if it's an octal digit.
+ /// </summary>
+ private static bool IsOctal(char c)
+ {
+ return '0' <= c && c <= '7';
+ }
+
+ /// <summary>
+ /// Tests a character to see if it's a hex digit.
+ /// </summary>
+ private static bool IsHex(char c)
+ {
+ return ('0' <= c && c <= '9') ||
+ ('a' <= c && c <= 'f') ||
+ ('A' <= c && c <= 'F');
+ }
+
+ /// <summary>
+ /// Interprets a character as a digit (in any base up to 36) and returns the
+ /// numeric value.
+ /// </summary>
+ private static int ParseDigit(char c)
+ {
+ if ('0' <= c && c <= '9')
+ {
+ return c - '0';
+ }
+ else if ('a' <= c && c <= 'z')
+ {
+ return c - 'a' + 10;
+ }
+ else
+ {
+ return c - 'A' + 10;
+ }
+ }
+
+ /// <summary>
+ /// Unescapes a text string as escaped using <see cref="EscapeText(string)" />.
+ /// Two-digit hex escapes (starting with "\x" are also recognised.
+ /// </summary>
+ public static string UnescapeText(string input)
+ {
+ return UnescapeBytes(input).ToStringUtf8();
+ }
+
+ /// <summary>
+ /// Like <see cref="EscapeBytes" /> but escapes a text string.
+ /// The string is first encoded as UTF-8, then each byte escaped individually.
+ /// The returned value is guaranteed to be entirely ASCII.
+ /// </summary>
+ public static string EscapeText(string input)
+ {
+ return EscapeBytes(ByteString.CopyFromUtf8(input));
+ }
+
+ /// <summary>
+ /// Escapes bytes in the format used in protocol buffer text format, which
+ /// is the same as the format used for C string literals. All bytes
+ /// that are not printable 7-bit ASCII characters are escaped, as well as
+ /// backslash, single-quote, and double-quote characters. Characters for
+ /// which no defined short-hand escape sequence is defined will be escaped
+ /// using 3-digit octal sequences.
+ /// The returned value is guaranteed to be entirely ASCII.
+ /// </summary>
+ public static String EscapeBytes(ByteString input)
+ {
+ StringBuilder builder = new StringBuilder(input.Length);
+ foreach (byte b in input)
+ {
+ switch (b)
+ {
+ // C# does not use \a or \v
+ case 0x07:
+ builder.Append("\\a");
+ break;
+ case (byte) '\b':
+ builder.Append("\\b");
+ break;
+ case (byte) '\f':
+ builder.Append("\\f");
+ break;
+ case (byte) '\n':
+ builder.Append("\\n");
+ break;
+ case (byte) '\r':
+ builder.Append("\\r");
+ break;
+ case (byte) '\t':
+ builder.Append("\\t");
+ break;
+ case 0x0b:
+ builder.Append("\\v");
+ break;
+ case (byte) '\\':
+ builder.Append("\\\\");
+ break;
+ case (byte) '\'':
+ builder.Append("\\\'");
+ break;
+ case (byte) '"':
+ builder.Append("\\\"");
+ break;
+ default:
+ if (b >= 0x20 && b < 128)
+ {
+ builder.Append((char) b);
+ }
+ else
+ {
+ builder.Append('\\');
+ builder.Append((char) ('0' + ((b >> 6) & 3)));
+ builder.Append((char) ('0' + ((b >> 3) & 7)));
+ builder.Append((char) ('0' + (b & 7)));
+ }
+ break;
+ }
+ }
+ return builder.ToString();
+ }
+
+ /// <summary>
+ /// Performs string unescaping from C style (octal, hex, form feeds, tab etc) into a byte string.
+ /// </summary>
+ public static ByteString UnescapeBytes(string input)
+ {
+ byte[] result = new byte[input.Length];
+ int pos = 0;
+ for (int i = 0; i < input.Length; i++)
+ {
+ char c = input[i];
+ if (c > 127 || c < 32)
+ {
+ throw new FormatException("Escaped string must only contain ASCII");
+ }
+ if (c != '\\')
+ {
+ result[pos++] = (byte) c;
+ continue;
+ }
+ if (i + 1 >= input.Length)
+ {
+ throw new FormatException("Invalid escape sequence: '\\' at end of string.");
+ }
+
+ i++;
+ c = input[i];
+ if (c >= '0' && c <= '7')
+ {
+ // Octal escape.
+ int code = ParseDigit(c);
+ if (i + 1 < input.Length && IsOctal(input[i + 1]))
+ {
+ i++;
+ code = code*8 + ParseDigit(input[i]);
+ }
+ if (i + 1 < input.Length && IsOctal(input[i + 1]))
+ {
+ i++;
+ code = code*8 + ParseDigit(input[i]);
+ }
+ result[pos++] = (byte) code;
+ }
+ else
+ {
+ switch (c)
+ {
+ case 'a':
+ result[pos++] = 0x07;
+ break;
+ case 'b':
+ result[pos++] = (byte) '\b';
+ break;
+ case 'f':
+ result[pos++] = (byte) '\f';
+ break;
+ case 'n':
+ result[pos++] = (byte) '\n';
+ break;
+ case 'r':
+ result[pos++] = (byte) '\r';
+ break;
+ case 't':
+ result[pos++] = (byte) '\t';
+ break;
+ case 'v':
+ result[pos++] = 0x0b;
+ break;
+ case '\\':
+ result[pos++] = (byte) '\\';
+ break;
+ case '\'':
+ result[pos++] = (byte) '\'';
+ break;
+ case '"':
+ result[pos++] = (byte) '\"';
+ break;
+
+ case 'x':
+ // hex escape
+ int code;
+ if (i + 1 < input.Length && IsHex(input[i + 1]))
+ {
+ i++;
+ code = ParseDigit(input[i]);
+ }
+ else
+ {
+ throw new FormatException("Invalid escape sequence: '\\x' with no digits");
+ }
+ if (i + 1 < input.Length && IsHex(input[i + 1]))
+ {
+ ++i;
+ code = code*16 + ParseDigit(input[i]);
+ }
+ result[pos++] = (byte) code;
+ break;
+
+ default:
+ throw new FormatException("Invalid escape sequence: '\\" + c + "'");
+ }
+ }
+ }
+
+ return ByteString.CopyFrom(result, 0, pos);
+ }
+
+ public static void Merge(string text, IBuilder builder)
+ {
+ Merge(text, ExtensionRegistry.Empty, builder);
+ }
+
+ public static void Merge(TextReader reader, IBuilder builder)
+ {
+ Merge(reader, ExtensionRegistry.Empty, builder);
+ }
+
+ public static void Merge(TextReader reader, ExtensionRegistry registry, IBuilder builder)
+ {
+ Merge(reader.ReadToEnd(), registry, builder);
+ }
+
+ public static void Merge(string text, ExtensionRegistry registry, IBuilder builder)
+ {
+ TextTokenizer tokenizer = new TextTokenizer(text);
+
+ while (!tokenizer.AtEnd)
+ {
+ MergeField(tokenizer, registry, builder);
+ }
+ }
+
+ /// <summary>
+ /// Parses a single field from the specified tokenizer and merges it into
+ /// the builder.
+ /// </summary>
+ private static void MergeField(TextTokenizer tokenizer, ExtensionRegistry extensionRegistry,
+ IBuilder builder)
+ {
+ FieldDescriptor field;
+ MessageDescriptor type = builder.DescriptorForType;
+ ExtensionInfo extension = null;
+
+ if (tokenizer.TryConsume("["))
+ {
+ // An extension.
+ StringBuilder name = new StringBuilder(tokenizer.ConsumeIdentifier());
+ while (tokenizer.TryConsume("."))
+ {
+ name.Append(".");
+ name.Append(tokenizer.ConsumeIdentifier());
+ }
+
+ extension = extensionRegistry.FindByName(type, name.ToString());
+
+ if (extension == null)
+ {
+ throw tokenizer.CreateFormatExceptionPreviousToken("Extension \"" + name +
+ "\" not found in the ExtensionRegistry.");
+ }
+ else if (extension.Descriptor.ContainingType != type)
+ {
+ throw tokenizer.CreateFormatExceptionPreviousToken("Extension \"" + name +
+ "\" does not extend message type \"" +
+ type.FullName + "\".");
+ }
+
+ tokenizer.Consume("]");
+
+ field = extension.Descriptor;
+ }
+ else
+ {
+ String name = tokenizer.ConsumeIdentifier();
+ field = type.FindDescriptor<FieldDescriptor>(name);
+
+ // Group names are expected to be capitalized as they appear in the
+ // .proto file, which actually matches their type names, not their field
+ // names.
+ if (field == null)
+ {
+ // Explicitly specify the invariant culture so that this code does not break when
+ // executing in Turkey.
+ String lowerName = name.ToLowerInvariant();
+ field = type.FindDescriptor<FieldDescriptor>(lowerName);
+ // If the case-insensitive match worked but the field is NOT a group,
+ // TODO(jonskeet): What? Java comment ends here!
+ if (field != null && field.FieldType != FieldType.Group)
+ {
+ field = null;
+ }
+ }
+ // Again, special-case group names as described above.
+ if (field != null && field.FieldType == FieldType.Group && field.MessageType.Name != name)
+ {
+ field = null;
+ }
+
+ if (field == null)
+ {
+ throw tokenizer.CreateFormatExceptionPreviousToken(
+ "Message type \"" + type.FullName + "\" has no field named \"" + name + "\".");
+ }
+ }
+
+ object value = null;
+
+ if (field.MappedType == MappedType.Message)
+ {
+ tokenizer.TryConsume(":"); // optional
+
+ String endToken;
+ if (tokenizer.TryConsume("<"))
+ {
+ endToken = ">";
+ }
+ else
+ {
+ tokenizer.Consume("{");
+ endToken = "}";
+ }
+
+ IBuilder subBuilder;
+ if (extension == null)
+ {
+ subBuilder = builder.CreateBuilderForField(field);
+ }
+ else
+ {
+ subBuilder = extension.DefaultInstance.WeakCreateBuilderForType() as IBuilder;
+ if (subBuilder == null)
+ {
+ throw new NotSupportedException("Lite messages are not supported.");
+ }
+ }
+
+ while (!tokenizer.TryConsume(endToken))
+ {
+ if (tokenizer.AtEnd)
+ {
+ throw tokenizer.CreateFormatException("Expected \"" + endToken + "\".");
+ }
+ MergeField(tokenizer, extensionRegistry, subBuilder);
+ }
+
+ value = subBuilder.WeakBuild();
+ }
+ else
+ {
+ tokenizer.Consume(":");
+
+ switch (field.FieldType)
+ {
+ case FieldType.Int32:
+ case FieldType.SInt32:
+ case FieldType.SFixed32:
+ value = tokenizer.ConsumeInt32();
+ break;
+
+ case FieldType.Int64:
+ case FieldType.SInt64:
+ case FieldType.SFixed64:
+ value = tokenizer.ConsumeInt64();
+ break;
+
+ case FieldType.UInt32:
+ case FieldType.Fixed32:
+ value = tokenizer.ConsumeUInt32();
+ break;
+
+ case FieldType.UInt64:
+ case FieldType.Fixed64:
+ value = tokenizer.ConsumeUInt64();
+ break;
+
+ case FieldType.Float:
+ value = tokenizer.ConsumeFloat();
+ break;
+
+ case FieldType.Double:
+ value = tokenizer.ConsumeDouble();
+ break;
+
+ case FieldType.Bool:
+ value = tokenizer.ConsumeBoolean();
+ break;
+
+ case FieldType.String:
+ value = tokenizer.ConsumeString();
+ break;
+
+ case FieldType.Bytes:
+ value = tokenizer.ConsumeByteString();
+ break;
+
+ case FieldType.Enum:
+ {
+ EnumDescriptor enumType = field.EnumType;
+
+ if (tokenizer.LookingAtInteger())
+ {
+ int number = tokenizer.ConsumeInt32();
+ value = enumType.FindValueByNumber(number);
+ if (value == null)
+ {
+ throw tokenizer.CreateFormatExceptionPreviousToken(
+ "Enum type \"" + enumType.FullName +
+ "\" has no value with number " + number + ".");
+ }
+ }
+ else
+ {
+ String id = tokenizer.ConsumeIdentifier();
+ value = enumType.FindValueByName(id);
+ if (value == null)
+ {
+ throw tokenizer.CreateFormatExceptionPreviousToken(
+ "Enum type \"" + enumType.FullName +
+ "\" has no value named \"" + id + "\".");
+ }
+ }
+
+ break;
+ }
+
+ case FieldType.Message:
+ case FieldType.Group:
+ throw new InvalidOperationException("Can't get here.");
+ }
+ }
+
+ if (field.IsRepeated)
+ {
+ builder.WeakAddRepeatedField(field, value);
+ }
+ else
+ {
+ builder.SetField(field, value);
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/TextGenerator.cs b/csharp/src/ProtocolBuffers/TextGenerator.cs
new file mode 100644
index 00000000..30cbf0fd
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/TextGenerator.cs
@@ -0,0 +1,159 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.IO;
+using System.Text;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Helper class to control indentation. Used for TextFormat and by ProtoGen.
+ /// </summary>
+ public sealed class TextGenerator
+ {
+ /// <summary>
+ /// The string to use at the end of each line. We assume that "Print" is only called using \n
+ /// to indicate a line break; that's what we use to detect when we need to indent etc, and
+ /// *just* the \n is replaced with the contents of lineBreak.
+ /// </summary>
+ private readonly string lineBreak;
+
+ /// <summary>
+ /// Writer to write formatted text to.
+ /// </summary>
+ private readonly TextWriter writer;
+
+ /// <summary>
+ /// Keeps track of whether the next piece of text should be indented
+ /// </summary>
+ private bool atStartOfLine = true;
+
+ /// <summary>
+ /// Keeps track of the current level of indentation
+ /// </summary>
+ private readonly StringBuilder indent = new StringBuilder();
+
+ /// <summary>
+ /// Creates a generator writing to the given writer. The writer
+ /// is not closed by this class.
+ /// </summary>
+ public TextGenerator(TextWriter writer, string lineBreak)
+ {
+ this.writer = writer;
+ this.lineBreak = lineBreak;
+ }
+
+ /// <summary>
+ /// Indents text by two spaces. After calling Indent(), two spaces
+ /// will be inserted at the beginning of each line of text. Indent() may
+ /// be called multiple times to produce deeper indents.
+ /// </summary>
+ public void Indent()
+ {
+ indent.Append(" ");
+ }
+
+ /// <summary>
+ /// Reduces the current indent level by two spaces.
+ /// </summary>
+ public void Outdent()
+ {
+ if (indent.Length == 0)
+ {
+ throw new InvalidOperationException("Too many calls to Outdent()");
+ }
+ indent.Length -= 2;
+ }
+
+ public void WriteLine(string text)
+ {
+ Print(text);
+ Print("\n");
+ }
+
+ public void WriteLine(string format, params object[] args)
+ {
+ WriteLine(string.Format(format, args));
+ }
+
+ public void WriteLine()
+ {
+ WriteLine("");
+ }
+
+ /// <summary>
+ /// Prints the given text to the output stream, indenting at line boundaries.
+ /// </summary>
+ /// <param name="text"></param>
+ public void Print(string text)
+ {
+ int pos = 0;
+
+ for (int i = 0; i < text.Length; i++)
+ {
+ if (text[i] == '\n')
+ {
+ // Strip off the \n from what we write
+ Write(text.Substring(pos, i - pos));
+ Write(lineBreak);
+ pos = i + 1;
+ atStartOfLine = true;
+ }
+ }
+ Write(text.Substring(pos));
+ }
+
+ public void Write(string format, params object[] args)
+ {
+ Write(string.Format(format, args));
+ }
+
+ private void Write(string data)
+ {
+ if (data.Length == 0)
+ {
+ return;
+ }
+ if (atStartOfLine)
+ {
+ atStartOfLine = false;
+ writer.Write(indent);
+ }
+ writer.Write(data);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/TextTokenizer.cs b/csharp/src/ProtocolBuffers/TextTokenizer.cs
new file mode 100644
index 00000000..5bb27fd0
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/TextTokenizer.cs
@@ -0,0 +1,501 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Globalization;
+using System.Text.RegularExpressions;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Represents a stream of tokens parsed from a string.
+ /// </summary>
+ internal sealed class TextTokenizer
+ {
+ private readonly string text;
+ private string currentToken;
+
+ /// <summary>
+ /// The character index within the text to perform the next regex match at.
+ /// </summary>
+ private int matchPos = 0;
+
+ /// <summary>
+ /// The character index within the text at which the current token begins.
+ /// </summary>
+ private int pos = 0;
+
+ /// <summary>
+ /// The line number of the current token.
+ /// </summary>
+ private int line = 0;
+
+ /// <summary>
+ /// The column number of the current token.
+ /// </summary>
+ private int column = 0;
+
+ /// <summary>
+ /// The line number of the previous token.
+ /// </summary>
+ private int previousLine = 0;
+
+ /// <summary>
+ /// The column number of the previous token.
+ /// </summary>
+ private int previousColumn = 0;
+
+ // Note: atomic groups used to mimic possessive quantifiers in Java in both of these regexes
+ internal static readonly Regex WhitespaceAndCommentPattern = new Regex("\\G(?>(\\s|(#.*$))+)",
+ FrameworkPortability.
+ CompiledRegexWhereAvailable |
+ RegexOptions.Multiline);
+
+ private static readonly Regex TokenPattern = new Regex(
+ "\\G[a-zA-Z_](?>[0-9a-zA-Z_+-]*)|" + // an identifier
+ "\\G[0-9+-](?>[0-9a-zA-Z_.+-]*)|" + // a number
+ "\\G\"(?>([^\"\\\n\\\\]|\\\\.)*)(\"|\\\\?$)|" + // a double-quoted string
+ "\\G\'(?>([^\"\\\n\\\\]|\\\\.)*)(\'|\\\\?$)", // a single-quoted string
+ FrameworkPortability.CompiledRegexWhereAvailable | RegexOptions.Multiline);
+
+ private static readonly Regex DoubleInfinity = new Regex("^-?inf(inity)?$",
+ FrameworkPortability.CompiledRegexWhereAvailable |
+ RegexOptions.IgnoreCase);
+
+ private static readonly Regex FloatInfinity = new Regex("^-?inf(inity)?f?$",
+ FrameworkPortability.CompiledRegexWhereAvailable |
+ RegexOptions.IgnoreCase);
+
+ private static readonly Regex FloatNan = new Regex("^nanf?$",
+ FrameworkPortability.CompiledRegexWhereAvailable |
+ RegexOptions.IgnoreCase);
+
+ /** Construct a tokenizer that parses tokens from the given text. */
+
+ public TextTokenizer(string text)
+ {
+ this.text = text;
+ SkipWhitespace();
+ NextToken();
+ }
+
+ /// <summary>
+ /// Are we at the end of the input?
+ /// </summary>
+ public bool AtEnd
+ {
+ get { return currentToken.Length == 0; }
+ }
+
+ /// <summary>
+ /// Advances to the next token.
+ /// </summary>
+ public void NextToken()
+ {
+ previousLine = line;
+ previousColumn = column;
+
+ // Advance the line counter to the current position.
+ while (pos < matchPos)
+ {
+ if (text[pos] == '\n')
+ {
+ ++line;
+ column = 0;
+ }
+ else
+ {
+ ++column;
+ }
+ ++pos;
+ }
+
+ // Match the next token.
+ if (matchPos == text.Length)
+ {
+ // EOF
+ currentToken = "";
+ }
+ else
+ {
+ Match match = TokenPattern.Match(text, matchPos);
+ if (match.Success)
+ {
+ currentToken = match.Value;
+ matchPos += match.Length;
+ }
+ else
+ {
+ // Take one character.
+ currentToken = text[matchPos].ToString();
+ matchPos++;
+ }
+
+ SkipWhitespace();
+ }
+ }
+
+ /// <summary>
+ /// Skip over any whitespace so that matchPos starts at the next token.
+ /// </summary>
+ private void SkipWhitespace()
+ {
+ Match match = WhitespaceAndCommentPattern.Match(text, matchPos);
+ if (match.Success)
+ {
+ matchPos += match.Length;
+ }
+ }
+
+ /// <summary>
+ /// If the next token exactly matches the given token, consume it and return
+ /// true. Otherwise, return false without doing anything.
+ /// </summary>
+ public bool TryConsume(string token)
+ {
+ if (currentToken == token)
+ {
+ NextToken();
+ return true;
+ }
+ return false;
+ }
+
+ /*
+ * If the next token exactly matches {@code token}, consume it. Otherwise,
+ * throw a {@link ParseException}.
+ */
+
+ /// <summary>
+ /// If the next token exactly matches the specified one, consume it.
+ /// Otherwise, throw a FormatException.
+ /// </summary>
+ /// <param name="token"></param>
+ public void Consume(string token)
+ {
+ if (!TryConsume(token))
+ {
+ throw CreateFormatException("Expected \"" + token + "\".");
+ }
+ }
+
+ /// <summary>
+ /// Returns true if the next token is an integer, but does not consume it.
+ /// </summary>
+ public bool LookingAtInteger()
+ {
+ if (currentToken.Length == 0)
+ {
+ return false;
+ }
+
+ char c = currentToken[0];
+ return ('0' <= c && c <= '9') || c == '-' || c == '+';
+ }
+
+ /// <summary>
+ /// If the next token is an identifier, consume it and return its value.
+ /// Otherwise, throw a FormatException.
+ /// </summary>
+ public string ConsumeIdentifier()
+ {
+ foreach (char c in currentToken)
+ {
+ if (('a' <= c && c <= 'z') ||
+ ('A' <= c && c <= 'Z') ||
+ ('0' <= c && c <= '9') ||
+ (c == '_') || (c == '.'))
+ {
+ // OK
+ }
+ else
+ {
+ throw CreateFormatException("Expected identifier.");
+ }
+ }
+
+ string result = currentToken;
+ NextToken();
+ return result;
+ }
+
+ /// <summary>
+ /// If the next token is a 32-bit signed integer, consume it and return its
+ /// value. Otherwise, throw a FormatException.
+ /// </summary>
+ public int ConsumeInt32()
+ {
+ try
+ {
+ int result = TextFormat.ParseInt32(currentToken);
+ NextToken();
+ return result;
+ }
+ catch (FormatException e)
+ {
+ throw CreateIntegerParseException(e);
+ }
+ }
+
+ /// <summary>
+ /// If the next token is a 32-bit unsigned integer, consume it and return its
+ /// value. Otherwise, throw a FormatException.
+ /// </summary>
+ public uint ConsumeUInt32()
+ {
+ try
+ {
+ uint result = TextFormat.ParseUInt32(currentToken);
+ NextToken();
+ return result;
+ }
+ catch (FormatException e)
+ {
+ throw CreateIntegerParseException(e);
+ }
+ }
+
+ /// <summary>
+ /// If the next token is a 64-bit signed integer, consume it and return its
+ /// value. Otherwise, throw a FormatException.
+ /// </summary>
+ public long ConsumeInt64()
+ {
+ try
+ {
+ long result = TextFormat.ParseInt64(currentToken);
+ NextToken();
+ return result;
+ }
+ catch (FormatException e)
+ {
+ throw CreateIntegerParseException(e);
+ }
+ }
+
+ /// <summary>
+ /// If the next token is a 64-bit unsigned integer, consume it and return its
+ /// value. Otherwise, throw a FormatException.
+ /// </summary>
+ public ulong ConsumeUInt64()
+ {
+ try
+ {
+ ulong result = TextFormat.ParseUInt64(currentToken);
+ NextToken();
+ return result;
+ }
+ catch (FormatException e)
+ {
+ throw CreateIntegerParseException(e);
+ }
+ }
+
+ /// <summary>
+ /// If the next token is a double, consume it and return its value.
+ /// Otherwise, throw a FormatException.
+ /// </summary>
+ public double ConsumeDouble()
+ {
+ // We need to parse infinity and nan separately because
+ // double.Parse() does not accept "inf", "infinity", or "nan".
+ if (DoubleInfinity.IsMatch(currentToken))
+ {
+ bool negative = currentToken.StartsWith("-");
+ NextToken();
+ return negative ? double.NegativeInfinity : double.PositiveInfinity;
+ }
+ if (currentToken.Equals("nan", StringComparison.OrdinalIgnoreCase))
+ {
+ NextToken();
+ return Double.NaN;
+ }
+
+ try
+ {
+ double result = double.Parse(currentToken, FrameworkPortability.InvariantCulture);
+ NextToken();
+ return result;
+ }
+ catch (FormatException e)
+ {
+ throw CreateFloatParseException(e);
+ }
+ catch (OverflowException e)
+ {
+ throw CreateFloatParseException(e);
+ }
+ }
+
+ /// <summary>
+ /// If the next token is a float, consume it and return its value.
+ /// Otherwise, throw a FormatException.
+ /// </summary>
+ public float ConsumeFloat()
+ {
+ // We need to parse infinity and nan separately because
+ // Float.parseFloat() does not accept "inf", "infinity", or "nan".
+ if (FloatInfinity.IsMatch(currentToken))
+ {
+ bool negative = currentToken.StartsWith("-");
+ NextToken();
+ return negative ? float.NegativeInfinity : float.PositiveInfinity;
+ }
+ if (FloatNan.IsMatch(currentToken))
+ {
+ NextToken();
+ return float.NaN;
+ }
+
+ if (currentToken.EndsWith("f"))
+ {
+ currentToken = currentToken.TrimEnd('f');
+ }
+
+ try
+ {
+ float result = float.Parse(currentToken, FrameworkPortability.InvariantCulture);
+ NextToken();
+ return result;
+ }
+ catch (FormatException e)
+ {
+ throw CreateFloatParseException(e);
+ }
+ catch (OverflowException e)
+ {
+ throw CreateFloatParseException(e);
+ }
+ }
+
+ /// <summary>
+ /// If the next token is a Boolean, consume it and return its value.
+ /// Otherwise, throw a FormatException.
+ /// </summary>
+ public bool ConsumeBoolean()
+ {
+ if (currentToken == "true")
+ {
+ NextToken();
+ return true;
+ }
+ if (currentToken == "false")
+ {
+ NextToken();
+ return false;
+ }
+ throw CreateFormatException("Expected \"true\" or \"false\".");
+ }
+
+ /// <summary>
+ /// If the next token is a string, consume it and return its (unescaped) value.
+ /// Otherwise, throw a FormatException.
+ /// </summary>
+ public string ConsumeString()
+ {
+ return ConsumeByteString().ToStringUtf8();
+ }
+
+ /// <summary>
+ /// If the next token is a string, consume it, unescape it as a
+ /// ByteString and return it. Otherwise, throw a FormatException.
+ /// </summary>
+ public ByteString ConsumeByteString()
+ {
+ char quote = currentToken.Length > 0 ? currentToken[0] : '\0';
+ if (quote != '\"' && quote != '\'')
+ {
+ throw CreateFormatException("Expected string.");
+ }
+
+ if (currentToken.Length < 2 ||
+ currentToken[currentToken.Length - 1] != quote)
+ {
+ throw CreateFormatException("String missing ending quote.");
+ }
+
+ try
+ {
+ string escaped = currentToken.Substring(1, currentToken.Length - 2);
+ ByteString result = TextFormat.UnescapeBytes(escaped);
+ NextToken();
+ return result;
+ }
+ catch (FormatException e)
+ {
+ throw CreateFormatException(e.Message);
+ }
+ }
+
+ /// <summary>
+ /// Returns a format exception with the current line and column numbers
+ /// in the description, suitable for throwing.
+ /// </summary>
+ public FormatException CreateFormatException(string description)
+ {
+ // Note: People generally prefer one-based line and column numbers.
+ return new FormatException((line + 1) + ":" + (column + 1) + ": " + description);
+ }
+
+ /// <summary>
+ /// Returns a format exception with the line and column numbers of the
+ /// previous token in the description, suitable for throwing.
+ /// </summary>
+ public FormatException CreateFormatExceptionPreviousToken(string description)
+ {
+ // Note: People generally prefer one-based line and column numbers.
+ return new FormatException((previousLine + 1) + ":" + (previousColumn + 1) + ": " + description);
+ }
+
+ /// <summary>
+ /// Constructs an appropriate FormatException for the given existing exception
+ /// when trying to parse an integer.
+ /// </summary>
+ private FormatException CreateIntegerParseException(FormatException e)
+ {
+ return CreateFormatException("Couldn't parse integer: " + e.Message);
+ }
+
+ /// <summary>
+ /// Constructs an appropriate FormatException for the given existing exception
+ /// when trying to parse a float or double.
+ /// </summary>
+ private FormatException CreateFloatParseException(Exception e)
+ {
+ return CreateFormatException("Couldn't parse number: " + e.Message);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/ThrowHelper.cs b/csharp/src/ProtocolBuffers/ThrowHelper.cs
new file mode 100644
index 00000000..69e5f569
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/ThrowHelper.cs
@@ -0,0 +1,92 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Helper methods for throwing exceptions
+ /// </summary>
+ public static class ThrowHelper
+ {
+ /// <summary>
+ /// Throws an ArgumentNullException if the given value is null.
+ /// </summary>
+ public static void ThrowIfNull(object value, string name)
+ {
+ if (value == null)
+ {
+ throw new ArgumentNullException(name);
+ }
+ }
+
+ /// <summary>
+ /// Throws an ArgumentNullException if the given value is null.
+ /// </summary>
+ public static void ThrowIfNull(object value)
+ {
+ if (value == null)
+ {
+ throw new ArgumentNullException();
+ }
+ }
+
+ /// <summary>
+ /// Throws an ArgumentNullException if the given value or any element within it is null.
+ /// </summary>
+ public static void ThrowIfAnyNull<T>(IEnumerable<T> sequence)
+ {
+ foreach (T t in sequence)
+ {
+ if (t == null)
+ {
+ throw new ArgumentNullException();
+ }
+ }
+ }
+
+ public static Exception CreateMissingMethod(Type type, string methodName)
+ {
+#if CLIENTPROFILE
+ return new System.MissingMethodException(type.FullName, methodName);
+#else
+ return new System.ArgumentException(String.Format("The method '{0}' was not found on type {1}.", methodName, type));
+#endif
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/UninitializedMessageException.cs b/csharp/src/ProtocolBuffers/UninitializedMessageException.cs
new file mode 100644
index 00000000..9e4f856e
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/UninitializedMessageException.cs
@@ -0,0 +1,208 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+#if !LITE
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.Descriptors;
+
+#endif
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// TODO(jonskeet): Write summary text.
+ /// </summary>
+ public sealed class UninitializedMessageException : Exception
+ {
+ private readonly IList<string> missingFields;
+
+ private UninitializedMessageException(IList<string> missingFields)
+ : base(BuildDescription(missingFields))
+ {
+ this.missingFields = new List<string>(missingFields);
+ }
+
+ /// <summary>
+ /// Returns a read-only list of human-readable names of
+ /// required fields missing from this message. Each name
+ /// is a full path to a field, e.g. "foo.bar[5].baz"
+ /// </summary>
+ public IList<string> MissingFields
+ {
+ get { return missingFields; }
+ }
+
+ /// <summary>
+ /// Converts this exception into an InvalidProtocolBufferException.
+ /// When a parsed message is missing required fields, this should be thrown
+ /// instead of UninitializedMessageException.
+ /// </summary>
+ public InvalidProtocolBufferException AsInvalidProtocolBufferException()
+ {
+ return new InvalidProtocolBufferException(Message);
+ }
+
+ /// <summary>
+ /// Constructs the description string for a given list of missing fields.
+ /// </summary>
+ private static string BuildDescription(IEnumerable<string> missingFields)
+ {
+ StringBuilder description = new StringBuilder("Message missing required fields: ");
+ bool first = true;
+ foreach (string field in missingFields)
+ {
+ if (first)
+ {
+ first = false;
+ }
+ else
+ {
+ description.Append(", ");
+ }
+ description.Append(field);
+ }
+ return description.ToString();
+ }
+
+ /// <summary>
+ /// For Lite exceptions that do not known how to enumerate missing fields
+ /// </summary>
+ public UninitializedMessageException(IMessageLite message)
+ : base(String.Format("Message {0} is missing required fields", message.GetType()))
+ {
+ missingFields = new List<string>();
+ }
+
+#if !LITE
+ public UninitializedMessageException(IMessage message)
+ : this(FindMissingFields(message))
+ {
+ }
+
+ /// <summary>
+ /// Returns a list of the full "paths" of missing required
+ /// fields in the specified message.
+ /// </summary>
+ private static IList<String> FindMissingFields(IMessage message)
+ {
+ List<String> results = new List<String>();
+ FindMissingFields(message, "", results);
+ return results;
+ }
+
+ /// <summary>
+ /// Recursive helper implementing FindMissingFields.
+ /// </summary>
+ private static void FindMissingFields(IMessage message, String prefix, List<String> results)
+ {
+ foreach (FieldDescriptor field in message.DescriptorForType.Fields)
+ {
+ if (field.IsRequired && !message.HasField(field))
+ {
+ results.Add(prefix + field.Name);
+ }
+ }
+
+ foreach (KeyValuePair<FieldDescriptor, object> entry in message.AllFields)
+ {
+ FieldDescriptor field = entry.Key;
+ object value = entry.Value;
+
+ if (field.MappedType == MappedType.Message)
+ {
+ if (field.IsRepeated)
+ {
+ int i = 0;
+ foreach (object element in (IEnumerable) value)
+ {
+ if (element is IMessage)
+ {
+ FindMissingFields((IMessage) element, SubMessagePrefix(prefix, field, i++), results);
+ }
+ else
+ {
+ results.Add(prefix + field.Name);
+ }
+ }
+ }
+ else
+ {
+ if (message.HasField(field))
+ {
+ if (value is IMessage)
+ {
+ FindMissingFields((IMessage) value, SubMessagePrefix(prefix, field, -1), results);
+ }
+ else
+ {
+ results.Add(prefix + field.Name);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private static String SubMessagePrefix(String prefix, FieldDescriptor field, int index)
+ {
+ StringBuilder result = new StringBuilder(prefix);
+ if (field.IsExtension)
+ {
+ result.Append('(')
+ .Append(field.FullName)
+ .Append(')');
+ }
+ else
+ {
+ result.Append(field.Name);
+ }
+ if (index != -1)
+ {
+ result.Append('[')
+ .Append(index)
+ .Append(']');
+ }
+ result.Append('.');
+ return result.ToString();
+ }
+#endif
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/UnknownField.cs b/csharp/src/ProtocolBuffers/UnknownField.cs
new file mode 100644
index 00000000..7650b9df
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/UnknownField.cs
@@ -0,0 +1,415 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using Google.ProtocolBuffers.Collections;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Represents a single field in an UnknownFieldSet.
+ ///
+ /// An UnknownField consists of five lists of values. The lists correspond
+ /// to the five "wire types" used in the protocol buffer binary format.
+ /// The wire type of each field can be determined from the encoded form alone,
+ /// without knowing the field's declared type. So, we are able to parse
+ /// unknown values at least this far and separate them. Normally, only one
+ /// of the five lists will contain any values, since it is impossible to
+ /// define a valid message type that declares two different types for the
+ /// same field number. However, the code is designed to allow for the case
+ /// where the same unknown field number is encountered using multiple different
+ /// wire types.
+ ///
+ /// UnknownField is an immutable class. To construct one, you must use an
+ /// UnknownField.Builder.
+ /// </summary>
+ public sealed class UnknownField
+ {
+ public const string UnknownFieldName = "unknown_field";
+ private static readonly UnknownField defaultInstance = CreateBuilder().Build();
+ private readonly ReadOnlyCollection<ulong> varintList;
+ private readonly ReadOnlyCollection<uint> fixed32List;
+ private readonly ReadOnlyCollection<ulong> fixed64List;
+ private readonly ReadOnlyCollection<ByteString> lengthDelimitedList;
+ private readonly ReadOnlyCollection<UnknownFieldSet> groupList;
+
+ private UnknownField(ReadOnlyCollection<ulong> varintList,
+ ReadOnlyCollection<uint> fixed32List,
+ ReadOnlyCollection<ulong> fixed64List,
+ ReadOnlyCollection<ByteString> lengthDelimitedList,
+ ReadOnlyCollection<UnknownFieldSet> groupList)
+ {
+ this.varintList = varintList;
+ this.fixed32List = fixed32List;
+ this.fixed64List = fixed64List;
+ this.lengthDelimitedList = lengthDelimitedList;
+ this.groupList = groupList;
+ }
+
+ public static UnknownField DefaultInstance
+ {
+ get { return defaultInstance; }
+ }
+
+ /// <summary>
+ /// The list of varint values for this field.
+ /// </summary>
+ public IList<ulong> VarintList
+ {
+ get { return varintList; }
+ }
+
+ /// <summary>
+ /// The list of fixed32 values for this field.
+ /// </summary>
+ public IList<uint> Fixed32List
+ {
+ get { return fixed32List; }
+ }
+
+ /// <summary>
+ /// The list of fixed64 values for this field.
+ /// </summary>
+ public IList<ulong> Fixed64List
+ {
+ get { return fixed64List; }
+ }
+
+ /// <summary>
+ /// The list of length-delimited values for this field.
+ /// </summary>
+ public IList<ByteString> LengthDelimitedList
+ {
+ get { return lengthDelimitedList; }
+ }
+
+ /// <summary>
+ /// The list of embedded group values for this field. These
+ /// are represented using UnknownFieldSets rather than Messages
+ /// since the group's type is presumably unknown.
+ /// </summary>
+ public IList<UnknownFieldSet> GroupList
+ {
+ get { return groupList; }
+ }
+
+ public override bool Equals(object other)
+ {
+ if (ReferenceEquals(this, other))
+ {
+ return true;
+ }
+ UnknownField otherField = other as UnknownField;
+ return otherField != null
+ && Lists.Equals(varintList, otherField.varintList)
+ && Lists.Equals(fixed32List, otherField.fixed32List)
+ && Lists.Equals(fixed64List, otherField.fixed64List)
+ && Lists.Equals(lengthDelimitedList, otherField.lengthDelimitedList)
+ && Lists.Equals(groupList, otherField.groupList);
+ }
+
+ public override int GetHashCode()
+ {
+ int hash = 43;
+ hash = hash*47 + Lists.GetHashCode(varintList);
+ hash = hash*47 + Lists.GetHashCode(fixed32List);
+ hash = hash*47 + Lists.GetHashCode(fixed64List);
+ hash = hash*47 + Lists.GetHashCode(lengthDelimitedList);
+ hash = hash*47 + Lists.GetHashCode(groupList);
+ return hash;
+ }
+
+ /// <summary>
+ /// Constructs a new Builder.
+ /// </summary>
+ public static Builder CreateBuilder()
+ {
+ return new Builder();
+ }
+
+ /// <summary>
+ /// Constructs a new Builder and initializes it to a copy of <paramref name="copyFrom"/>.
+ /// </summary>
+ public static Builder CreateBuilder(UnknownField copyFrom)
+ {
+ return new Builder().MergeFrom(copyFrom);
+ }
+
+ /// <summary>
+ /// Serializes the field, including the field number, and writes it to
+ /// <paramref name="output"/>.
+ /// </summary>
+ public void WriteTo(int fieldNumber, ICodedOutputStream output)
+ {
+ foreach (ulong value in varintList)
+ {
+ output.WriteUnknownField(fieldNumber, WireFormat.WireType.Varint, value);
+ }
+ foreach (uint value in fixed32List)
+ {
+ output.WriteUnknownField(fieldNumber, WireFormat.WireType.Fixed32, value);
+ }
+ foreach (ulong value in fixed64List)
+ {
+ output.WriteUnknownField(fieldNumber, WireFormat.WireType.Fixed64, value);
+ }
+ foreach (ByteString value in lengthDelimitedList)
+ {
+ output.WriteUnknownBytes(fieldNumber, value);
+ }
+ foreach (UnknownFieldSet value in groupList)
+ {
+#pragma warning disable 0612
+ output.WriteUnknownGroup(fieldNumber, value);
+#pragma warning restore 0612
+ }
+ }
+
+ /// <summary>
+ /// Computes the number of bytes required to encode this field, including field
+ /// number.
+ /// </summary>
+ public int GetSerializedSize(int fieldNumber)
+ {
+ int result = 0;
+ foreach (ulong value in varintList)
+ {
+ result += CodedOutputStream.ComputeUInt64Size(fieldNumber, value);
+ }
+ foreach (uint value in fixed32List)
+ {
+ result += CodedOutputStream.ComputeFixed32Size(fieldNumber, value);
+ }
+ foreach (ulong value in fixed64List)
+ {
+ result += CodedOutputStream.ComputeFixed64Size(fieldNumber, value);
+ }
+ foreach (ByteString value in lengthDelimitedList)
+ {
+ result += CodedOutputStream.ComputeBytesSize(fieldNumber, value);
+ }
+ foreach (UnknownFieldSet value in groupList)
+ {
+#pragma warning disable 0612
+ result += CodedOutputStream.ComputeUnknownGroupSize(fieldNumber, value);
+#pragma warning restore 0612
+ }
+ return result;
+ }
+
+ /// <summary>
+ /// Serializes the length-delimited values of the field, including field
+ /// number, and writes them to <paramref name="output"/> using the MessageSet wire format.
+ /// </summary>
+ /// <param name="fieldNumber"></param>
+ /// <param name="output"></param>
+ public void WriteAsMessageSetExtensionTo(int fieldNumber, ICodedOutputStream output)
+ {
+ foreach (ByteString value in lengthDelimitedList)
+ {
+ output.WriteMessageSetExtension(fieldNumber, UnknownFieldName, value);
+ }
+ }
+
+ /// <summary>
+ /// Get the number of bytes required to encode this field, incuding field number,
+ /// using the MessageSet wire format.
+ /// </summary>
+ public int GetSerializedSizeAsMessageSetExtension(int fieldNumber)
+ {
+ int result = 0;
+ foreach (ByteString value in lengthDelimitedList)
+ {
+ result += CodedOutputStream.ComputeRawMessageSetExtensionSize(fieldNumber, value);
+ }
+ return result;
+ }
+
+ /// <summary>
+ /// Used to build instances of UnknownField.
+ /// </summary>
+ public sealed class Builder
+ {
+ private List<ulong> varintList;
+ private List<uint> fixed32List;
+ private List<ulong> fixed64List;
+ private List<ByteString> lengthDelimitedList;
+ private List<UnknownFieldSet> groupList;
+
+ /// <summary>
+ /// Builds the field. After building, the builder is reset to an empty
+ /// state. (This is actually easier than making it unusable.)
+ /// </summary>
+ public UnknownField Build()
+ {
+ return new UnknownField(MakeReadOnly(ref varintList),
+ MakeReadOnly(ref fixed32List),
+ MakeReadOnly(ref fixed64List),
+ MakeReadOnly(ref lengthDelimitedList),
+ MakeReadOnly(ref groupList));
+ }
+
+ /// <summary>
+ /// Merge the values in <paramref name="other" /> into this field. For each list
+ /// of values, <paramref name="other"/>'s values are append to the ones in this
+ /// field.
+ /// </summary>
+ public Builder MergeFrom(UnknownField other)
+ {
+ varintList = AddAll(varintList, other.VarintList);
+ fixed32List = AddAll(fixed32List, other.Fixed32List);
+ fixed64List = AddAll(fixed64List, other.Fixed64List);
+ lengthDelimitedList = AddAll(lengthDelimitedList, other.LengthDelimitedList);
+ groupList = AddAll(groupList, other.GroupList);
+ return this;
+ }
+
+ /// <summary>
+ /// Returns a new list containing all of the given specified values from
+ /// both the <paramref name="current"/> and <paramref name="extras"/> lists.
+ /// If <paramref name="current" /> is null and <paramref name="extras"/> is empty,
+ /// null is returned. Otherwise, either a new list is created (if <paramref name="current" />
+ /// is null) or the elements of <paramref name="extras"/> are added to <paramref name="current" />.
+ /// </summary>
+ private static List<T> AddAll<T>(List<T> current, IList<T> extras)
+ {
+ if (extras.Count == 0)
+ {
+ return current;
+ }
+ if (current == null)
+ {
+ current = new List<T>(extras);
+ }
+ else
+ {
+ current.AddRange(extras);
+ }
+ return current;
+ }
+
+ /// <summary>
+ /// Clears the contents of this builder.
+ /// </summary>
+ public Builder Clear()
+ {
+ varintList = null;
+ fixed32List = null;
+ fixed64List = null;
+ lengthDelimitedList = null;
+ groupList = null;
+ return this;
+ }
+
+ /// <summary>
+ /// Adds a varint value.
+ /// </summary>
+ public Builder AddVarint(ulong value)
+ {
+ varintList = Add(varintList, value);
+ return this;
+ }
+
+ /// <summary>
+ /// Adds a fixed32 value.
+ /// </summary>
+ public Builder AddFixed32(uint value)
+ {
+ fixed32List = Add(fixed32List, value);
+ return this;
+ }
+
+ /// <summary>
+ /// Adds a fixed64 value.
+ /// </summary>
+ public Builder AddFixed64(ulong value)
+ {
+ fixed64List = Add(fixed64List, value);
+ return this;
+ }
+
+ /// <summary>
+ /// Adds a length-delimited value.
+ /// </summary>
+ public Builder AddLengthDelimited(ByteString value)
+ {
+ lengthDelimitedList = Add(lengthDelimitedList, value);
+ return this;
+ }
+
+ /// <summary>
+ /// Adds an embedded group.
+ /// </summary>
+ /// <param name="value"></param>
+ /// <returns></returns>
+ public Builder AddGroup(UnknownFieldSet value)
+ {
+ groupList = Add(groupList, value);
+ return this;
+ }
+
+ /// <summary>
+ /// Adds <paramref name="value"/> to the <paramref name="list"/>, creating
+ /// a new list if <paramref name="list"/> is null. The list is returned - either
+ /// the original reference or the new list.
+ /// </summary>
+ private static List<T> Add<T>(List<T> list, T value)
+ {
+ if (list == null)
+ {
+ list = new List<T>();
+ }
+ list.Add(value);
+ return list;
+ }
+
+ /// <summary>
+ /// Returns a read-only version of the given IList, and clears
+ /// the field used for <paramref name="list"/>. If the value
+ /// is null, an empty list is produced using Lists.Empty.
+ /// </summary>
+ /// <returns></returns>
+ private static ReadOnlyCollection<T> MakeReadOnly<T>(ref List<T> list)
+ {
+ ReadOnlyCollection<T> ret = list == null ? Lists<T>.Empty : new ReadOnlyCollection<T>(list);
+ list = null;
+ return ret;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/UnknownFieldSet.cs b/csharp/src/ProtocolBuffers/UnknownFieldSet.cs
new file mode 100644
index 00000000..d5d0675d
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/UnknownFieldSet.cs
@@ -0,0 +1,1061 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Used to keep track of fields which were seen when parsing a protocol message
+ /// but whose field numbers or types are unrecognized. This most frequently
+ /// occurs when new fields are added to a message type and then messages containing
+ /// those fields are read by old software that was built before the new types were
+ /// added.
+ ///
+ /// Every message contains an UnknownFieldSet.
+ ///
+ /// Most users will never need to use this class directly.
+ /// </summary>
+ public sealed partial class UnknownFieldSet : IMessageLite
+ {
+ private static readonly UnknownFieldSet defaultInstance =
+ new UnknownFieldSet(new Dictionary<int, UnknownField>());
+
+ private readonly IDictionary<int, UnknownField> fields;
+
+ private UnknownFieldSet(IDictionary<int, UnknownField> fields)
+ {
+ this.fields = fields;
+ }
+
+ /// <summary>
+ /// Creates a new unknown field set builder.
+ /// </summary>
+ public static Builder CreateBuilder()
+ {
+ return new Builder();
+ }
+
+ /// <summary>
+ /// Creates a new unknown field set builder
+ /// and initialize it from <paramref name="original"/>.
+ /// </summary>
+ public static Builder CreateBuilder(UnknownFieldSet original)
+ {
+ return new Builder().MergeFrom(original);
+ }
+
+ public static UnknownFieldSet DefaultInstance
+ {
+ get { return defaultInstance; }
+ }
+
+ /// <summary>
+ /// Returns a read-only view of the mapping from field numbers to values.
+ /// </summary>
+ public IDictionary<int, UnknownField> FieldDictionary
+ {
+ get { return Dictionaries.AsReadOnly(fields); }
+ }
+
+ /// <summary>
+ /// Checks whether or not the given field number is present in the set.
+ /// </summary>
+ public bool HasField(int field)
+ {
+ return fields.ContainsKey(field);
+ }
+
+ /// <summary>
+ /// Fetches a field by number, returning an empty field if not present.
+ /// Never returns null.
+ /// </summary>
+ public UnknownField this[int number]
+ {
+ get
+ {
+ UnknownField ret;
+ if (!fields.TryGetValue(number, out ret))
+ {
+ ret = UnknownField.DefaultInstance;
+ }
+ return ret;
+ }
+ }
+
+ /// <summary>
+ /// Serializes the set and writes it to <paramref name="output"/>.
+ /// </summary>
+ public void WriteTo(ICodedOutputStream output)
+ {
+ // Avoid creating enumerator for the most common code path.
+ if (fields.Count > 0)
+ {
+ foreach (KeyValuePair<int, UnknownField> entry in fields)
+ {
+ entry.Value.WriteTo(entry.Key, output);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Gets the number of bytes required to encode this set.
+ /// </summary>
+ public int SerializedSize
+ {
+ get
+ {
+ // Avoid creating enumerator for the most common code path.
+ if (fields.Count == 0)
+ {
+ return 0;
+ }
+
+ int result = 0;
+ foreach (KeyValuePair<int, UnknownField> entry in fields)
+ {
+ result += entry.Value.GetSerializedSize(entry.Key);
+ }
+ return result;
+ }
+ }
+
+ /// <summary>
+ /// Converts the set to a string in protocol buffer text format. This
+ /// is just a trivial wrapper around TextFormat.PrintToString.
+ /// </summary>
+ public override String ToString()
+ {
+ return TextFormat.PrintToString(this);
+ }
+
+ /// <summary>
+ /// Converts the set to a string in protocol buffer text format. This
+ /// is just a trivial wrapper around TextFormat.PrintToString.
+ /// </summary>
+ public void PrintTo(TextWriter writer)
+ {
+ TextFormat.Print(this, writer);
+ }
+
+ /// <summary>
+ /// Serializes the message to a ByteString and returns it. This is
+ /// just a trivial wrapper around WriteTo(ICodedOutputStream).
+ /// </summary>
+ /// <returns></returns>
+ public ByteString ToByteString()
+ {
+ ByteString.CodedBuilder codedBuilder = new ByteString.CodedBuilder(SerializedSize);
+ WriteTo(codedBuilder.CodedOutput);
+ return codedBuilder.Build();
+ }
+
+ /// <summary>
+ /// Serializes the message to a byte array and returns it. This is
+ /// just a trivial wrapper around WriteTo(ICodedOutputStream).
+ /// </summary>
+ /// <returns></returns>
+ public byte[] ToByteArray()
+ {
+ byte[] data = new byte[SerializedSize];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(data);
+ WriteTo(output);
+ output.CheckNoSpaceLeft();
+ return data;
+ }
+
+ /// <summary>
+ /// Serializes the message and writes it to <paramref name="output"/>. This is
+ /// just a trivial wrapper around WriteTo(ICodedOutputStream).
+ /// </summary>
+ /// <param name="output"></param>
+ public void WriteTo(Stream output)
+ {
+ CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
+ WriteTo(codedOutput);
+ codedOutput.Flush();
+ }
+
+ /// <summary>
+ /// Serializes the set and writes it to <paramref name="output"/> using
+ /// the MessageSet wire format.
+ /// </summary>
+ public void WriteAsMessageSetTo(ICodedOutputStream output)
+ {
+ // Avoid creating enumerator for the most common code path.
+ if (fields.Count > 0)
+ {
+ foreach (KeyValuePair<int, UnknownField> entry in fields)
+ {
+ entry.Value.WriteAsMessageSetExtensionTo(entry.Key, output);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Gets the number of bytes required to encode this set using the MessageSet
+ /// wire format.
+ /// </summary>
+ public int SerializedSizeAsMessageSet
+ {
+ get
+ {
+ // Avoid creating enumerator for the most common code path.
+ if (fields.Count == 0)
+ {
+ return 0;
+ }
+
+ int result = 0;
+ foreach (KeyValuePair<int, UnknownField> entry in fields)
+ {
+ result += entry.Value.GetSerializedSizeAsMessageSetExtension(entry.Key);
+ }
+ return result;
+ }
+ }
+
+ public override bool Equals(object other)
+ {
+ if (ReferenceEquals(this, other))
+ {
+ return true;
+ }
+ UnknownFieldSet otherSet = other as UnknownFieldSet;
+ return otherSet != null && Dictionaries.Equals(fields, otherSet.fields);
+ }
+
+ public override int GetHashCode()
+ {
+ return Dictionaries.GetHashCode(fields);
+ }
+
+ /// <summary>
+ /// Parses an UnknownFieldSet from the given input.
+ /// </summary>
+ public static UnknownFieldSet ParseFrom(ICodedInputStream input)
+ {
+ return CreateBuilder().MergeFrom(input).Build();
+ }
+
+ /// <summary>
+ /// Parses an UnknownFieldSet from the given data.
+ /// </summary>
+ public static UnknownFieldSet ParseFrom(ByteString data)
+ {
+ return CreateBuilder().MergeFrom(data).Build();
+ }
+
+ /// <summary>
+ /// Parses an UnknownFieldSet from the given data.
+ /// </summary>
+ public static UnknownFieldSet ParseFrom(byte[] data)
+ {
+ return CreateBuilder().MergeFrom(data).Build();
+ }
+
+ /// <summary>
+ /// Parses an UnknownFieldSet from the given input.
+ /// </summary>
+ public static UnknownFieldSet ParseFrom(Stream input)
+ {
+ return CreateBuilder().MergeFrom(input).Build();
+ }
+
+ #region IMessageLite Members
+
+ public bool IsInitialized
+ {
+ get { return fields != null; }
+ }
+
+ public void WriteDelimitedTo(Stream output)
+ {
+ CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
+ codedOutput.WriteRawVarint32((uint) SerializedSize);
+ WriteTo(codedOutput);
+ codedOutput.Flush();
+ }
+
+ public IBuilderLite WeakCreateBuilderForType()
+ {
+ return new Builder();
+ }
+
+ public IBuilderLite WeakToBuilder()
+ {
+ return new Builder(fields);
+ }
+
+ public IMessageLite WeakDefaultInstanceForType
+ {
+ get { return defaultInstance; }
+ }
+
+ #endregion
+
+ /// <summary>
+ /// Builder for UnknownFieldSets.
+ /// </summary>
+ public sealed partial class Builder : IBuilderLite
+ {
+ /// <summary>
+ /// Mapping from number to field. Note that by using a SortedList we ensure
+ /// that the fields will be serialized in ascending order.
+ /// </summary>
+ private IDictionary<int, UnknownField> fields;
+
+ // Optimization: We keep around a builder for the last field that was
+ // modified so that we can efficiently add to it multiple times in a
+ // row (important when parsing an unknown repeated field).
+ private int lastFieldNumber;
+ private UnknownField.Builder lastField;
+
+ internal Builder()
+ {
+ fields = new SortedDictionary<int, UnknownField>();
+ }
+
+ internal Builder(IDictionary<int, UnknownField> dictionary)
+ {
+ fields = new SortedDictionary<int, UnknownField>(dictionary);
+ }
+
+ /// <summary>
+ /// Returns a field builder for the specified field number, including any values
+ /// which already exist.
+ /// </summary>
+ private UnknownField.Builder GetFieldBuilder(int number)
+ {
+ if (lastField != null)
+ {
+ if (number == lastFieldNumber)
+ {
+ return lastField;
+ }
+ // Note: AddField() will reset lastField and lastFieldNumber.
+ AddField(lastFieldNumber, lastField.Build());
+ }
+ if (number == 0)
+ {
+ return null;
+ }
+
+ lastField = UnknownField.CreateBuilder();
+ UnknownField existing;
+ if (fields.TryGetValue(number, out existing))
+ {
+ lastField.MergeFrom(existing);
+ }
+ lastFieldNumber = number;
+ return lastField;
+ }
+
+ /// <summary>
+ /// Build the UnknownFieldSet and return it. Once this method has been called,
+ /// this instance will no longer be usable. Calling any method after this
+ /// will throw a NullReferenceException.
+ /// </summary>
+ public UnknownFieldSet Build()
+ {
+ GetFieldBuilder(0); // Force lastField to be built.
+ UnknownFieldSet result = fields.Count == 0 ? DefaultInstance : new UnknownFieldSet(fields);
+ fields = null;
+ return result;
+ }
+
+ /// <summary>
+ /// Adds a field to the set. If a field with the same number already exists, it
+ /// is replaced.
+ /// </summary>
+ public Builder AddField(int number, UnknownField field)
+ {
+ if (number == 0)
+ {
+ throw new ArgumentOutOfRangeException("number", "Zero is not a valid field number.");
+ }
+ if (lastField != null && lastFieldNumber == number)
+ {
+ // Discard this.
+ lastField = null;
+ lastFieldNumber = 0;
+ }
+ fields[number] = field;
+ return this;
+ }
+
+ /// <summary>
+ /// Resets the builder to an empty set.
+ /// </summary>
+ public Builder Clear()
+ {
+ fields.Clear();
+ lastFieldNumber = 0;
+ lastField = null;
+ return this;
+ }
+
+ /// <summary>
+ /// Parse an entire message from <paramref name="input"/> and merge
+ /// its fields into this set.
+ /// </summary>
+ public Builder MergeFrom(ICodedInputStream input)
+ {
+ uint tag;
+ string name;
+ while (input.ReadTag(out tag, out name))
+ {
+ if (tag == 0)
+ {
+ if (input.SkipField())
+ {
+ continue; //can't merge unknown without field tag
+ }
+ break;
+ }
+
+ if (!MergeFieldFrom(tag, input))
+ {
+ break;
+ }
+ }
+ return this;
+ }
+
+ /// <summary>
+ /// Parse a single field from <paramref name="input"/> and merge it
+ /// into this set.
+ /// </summary>
+ /// <param name="tag">The field's tag number, which was already parsed.</param>
+ /// <param name="input">The coded input stream containing the field</param>
+ /// <returns>false if the tag is an "end group" tag, true otherwise</returns>
+ public bool MergeFieldFrom(uint tag, ICodedInputStream input)
+ {
+ if (tag == 0)
+ {
+ input.SkipField();
+ return true;
+ }
+
+ int number = WireFormat.GetTagFieldNumber(tag);
+ switch (WireFormat.GetTagWireType(tag))
+ {
+ case WireFormat.WireType.Varint:
+ {
+ ulong uint64 = 0;
+ if (input.ReadUInt64(ref uint64))
+ {
+ GetFieldBuilder(number).AddVarint(uint64);
+ }
+ return true;
+ }
+ case WireFormat.WireType.Fixed32:
+ {
+ uint uint32 = 0;
+ if (input.ReadFixed32(ref uint32))
+ {
+ GetFieldBuilder(number).AddFixed32(uint32);
+ }
+ return true;
+ }
+ case WireFormat.WireType.Fixed64:
+ {
+ ulong uint64 = 0;
+ if (input.ReadFixed64(ref uint64))
+ {
+ GetFieldBuilder(number).AddFixed64(uint64);
+ }
+ return true;
+ }
+ case WireFormat.WireType.LengthDelimited:
+ {
+ ByteString bytes = null;
+ if (input.ReadBytes(ref bytes))
+ {
+ GetFieldBuilder(number).AddLengthDelimited(bytes);
+ }
+ return true;
+ }
+ case WireFormat.WireType.StartGroup:
+ {
+ Builder subBuilder = CreateBuilder();
+#pragma warning disable 0612
+ input.ReadUnknownGroup(number, subBuilder);
+#pragma warning restore 0612
+ GetFieldBuilder(number).AddGroup(subBuilder.Build());
+ return true;
+ }
+ case WireFormat.WireType.EndGroup:
+ return false;
+ default:
+ throw InvalidProtocolBufferException.InvalidWireType();
+ }
+ }
+
+ /// <summary>
+ /// Parses <paramref name="input"/> as an UnknownFieldSet and merge it
+ /// with the set being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream).
+ /// </summary>
+ public Builder MergeFrom(Stream input)
+ {
+ CodedInputStream codedInput = CodedInputStream.CreateInstance(input);
+ MergeFrom(codedInput);
+ codedInput.CheckLastTagWas(0);
+ return this;
+ }
+
+ /// <summary>
+ /// Parses <paramref name="data"/> as an UnknownFieldSet and merge it
+ /// with the set being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream).
+ /// </summary>
+ public Builder MergeFrom(ByteString data)
+ {
+ CodedInputStream input = data.CreateCodedInput();
+ MergeFrom(input);
+ input.CheckLastTagWas(0);
+ return this;
+ }
+
+ /// <summary>
+ /// Parses <paramref name="data"/> as an UnknownFieldSet and merge it
+ /// with the set being built. This is just a small wrapper around
+ /// MergeFrom(ICodedInputStream).
+ /// </summary>
+ public Builder MergeFrom(byte[] data)
+ {
+ CodedInputStream input = CodedInputStream.CreateInstance(data);
+ MergeFrom(input);
+ input.CheckLastTagWas(0);
+ return this;
+ }
+
+ /// <summary>
+ /// Convenience method for merging a new field containing a single varint
+ /// value. This is used in particular when an unknown enum value is
+ /// encountered.
+ /// </summary>
+ public Builder MergeVarintField(int number, ulong value)
+ {
+ if (number == 0)
+ {
+ throw new ArgumentOutOfRangeException("number", "Zero is not a valid field number.");
+ }
+ GetFieldBuilder(number).AddVarint(value);
+ return this;
+ }
+
+ /// <summary>
+ /// Merges the fields from <paramref name="other"/> into this set.
+ /// If a field number exists in both sets, the values in <paramref name="other"/>
+ /// will be appended to the values in this set.
+ /// </summary>
+ public Builder MergeFrom(UnknownFieldSet other)
+ {
+ if (other != DefaultInstance)
+ {
+ foreach (KeyValuePair<int, UnknownField> entry in other.fields)
+ {
+ MergeField(entry.Key, entry.Value);
+ }
+ }
+ return this;
+ }
+
+ /// <summary>
+ /// Checks if the given field number is present in the set.
+ /// </summary>
+ public bool HasField(int number)
+ {
+ if (number == 0)
+ {
+ throw new ArgumentOutOfRangeException("number", "Zero is not a valid field number.");
+ }
+ return number == lastFieldNumber || fields.ContainsKey(number);
+ }
+
+ /// <summary>
+ /// Adds a field to the unknown field set. If a field with the same
+ /// number already exists, the two are merged.
+ /// </summary>
+ public Builder MergeField(int number, UnknownField field)
+ {
+ if (number == 0)
+ {
+ throw new ArgumentOutOfRangeException("number", "Zero is not a valid field number.");
+ }
+ if (HasField(number))
+ {
+ GetFieldBuilder(number).MergeFrom(field);
+ }
+ else
+ {
+ // Optimization: We could call getFieldBuilder(number).mergeFrom(field)
+ // in this case, but that would create a copy of the Field object.
+ // We'd rather reuse the one passed to us, so call AddField() instead.
+ AddField(number, field);
+ }
+ return this;
+ }
+
+ internal void MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry, IBuilder builder)
+ {
+ uint tag;
+ string name;
+ while (input.ReadTag(out tag, out name))
+ {
+ if (tag == 0 && name != null)
+ {
+ FieldDescriptor fieldByName = builder.DescriptorForType.FindFieldByName(name);
+ if (fieldByName != null)
+ {
+ tag = WireFormat.MakeTag(fieldByName);
+ }
+ else
+ {
+ ExtensionInfo extension = extensionRegistry.FindByName(builder.DescriptorForType, name);
+ if (extension != null)
+ {
+ tag = WireFormat.MakeTag(extension.Descriptor);
+ }
+ }
+ }
+ if (tag == 0)
+ {
+ if (input.SkipField())
+ {
+ continue; //can't merge unknown without field tag
+ }
+ break;
+ }
+
+ if (!MergeFieldFrom(input, extensionRegistry, builder, tag, name))
+ {
+ // end group tag
+ break;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Like <see cref="MergeFrom(ICodedInputStream, ExtensionRegistry, IBuilder)" />
+ /// but parses a single field.
+ /// </summary>
+ /// <param name="input">The input to read the field from</param>
+ /// <param name="extensionRegistry">Registry to use when an extension field is encountered</param>
+ /// <param name="builder">Builder to merge field into, if it's a known field</param>
+ /// <param name="tag">The tag, which should already have been read from the input</param>
+ /// <returns>true unless the tag is an end-group tag</returns>
+ internal bool MergeFieldFrom(ICodedInputStream input,
+ ExtensionRegistry extensionRegistry, IBuilder builder, uint tag,
+ string fieldName)
+ {
+ if (tag == 0 && fieldName != null)
+ {
+ FieldDescriptor fieldByName = builder.DescriptorForType.FindFieldByName(fieldName);
+ if (fieldByName != null)
+ {
+ tag = WireFormat.MakeTag(fieldByName);
+ }
+ else
+ {
+ ExtensionInfo extension = extensionRegistry.FindByName(builder.DescriptorForType, fieldName);
+ if (extension != null)
+ {
+ tag = WireFormat.MakeTag(extension.Descriptor);
+ }
+ }
+ }
+
+ MessageDescriptor type = builder.DescriptorForType;
+ if (type.Options.MessageSetWireFormat && tag == WireFormat.MessageSetTag.ItemStart)
+ {
+ MergeMessageSetExtensionFromCodedStream(input, extensionRegistry, builder);
+ return true;
+ }
+
+ WireFormat.WireType wireType = WireFormat.GetTagWireType(tag);
+ int fieldNumber = WireFormat.GetTagFieldNumber(tag);
+
+ FieldDescriptor field;
+ IMessageLite defaultFieldInstance = null;
+
+ if (type.IsExtensionNumber(fieldNumber))
+ {
+ ExtensionInfo extension = extensionRegistry[type, fieldNumber];
+ if (extension == null)
+ {
+ field = null;
+ }
+ else
+ {
+ field = extension.Descriptor;
+ defaultFieldInstance = extension.DefaultInstance;
+ }
+ }
+ else
+ {
+ field = type.FindFieldByNumber(fieldNumber);
+ }
+
+ // Unknown field or wrong wire type. Skip.
+ if (field == null)
+ {
+ return MergeFieldFrom(tag, input);
+ }
+ if (wireType != WireFormat.GetWireType(field))
+ {
+ WireFormat.WireType expectedType = WireFormat.GetWireType(field.FieldType);
+ if (wireType == expectedType)
+ {
+ //Allowed as of 2.3, this is unpacked data for a packed array
+ }
+ else if (field.IsRepeated && wireType == WireFormat.WireType.LengthDelimited &&
+ (expectedType == WireFormat.WireType.Varint || expectedType == WireFormat.WireType.Fixed32 ||
+ expectedType == WireFormat.WireType.Fixed64))
+ {
+ //Allowed as of 2.3, this is packed data for an unpacked array
+ }
+ else
+ {
+ return MergeFieldFrom(tag, input);
+ }
+ }
+
+ switch (field.FieldType)
+ {
+ case FieldType.Group:
+ case FieldType.Message:
+ {
+ IBuilderLite subBuilder = (defaultFieldInstance != null)
+ ? defaultFieldInstance.WeakCreateBuilderForType()
+ : builder.CreateBuilderForField(field);
+ if (!field.IsRepeated)
+ {
+ subBuilder.WeakMergeFrom((IMessageLite) builder[field]);
+ if (field.FieldType == FieldType.Group)
+ {
+ input.ReadGroup(field.FieldNumber, subBuilder, extensionRegistry);
+ }
+ else
+ {
+ input.ReadMessage(subBuilder, extensionRegistry);
+ }
+ builder[field] = subBuilder.WeakBuild();
+ }
+ else
+ {
+ List<IMessageLite> list = new List<IMessageLite>();
+ if (field.FieldType == FieldType.Group)
+ {
+ input.ReadGroupArray(tag, fieldName, list, subBuilder.WeakDefaultInstanceForType,
+ extensionRegistry);
+ }
+ else
+ {
+ input.ReadMessageArray(tag, fieldName, list, subBuilder.WeakDefaultInstanceForType,
+ extensionRegistry);
+ }
+
+ foreach (IMessageLite m in list)
+ {
+ builder.WeakAddRepeatedField(field, m);
+ }
+ return true;
+ }
+ break;
+ }
+ case FieldType.Enum:
+ {
+ if (!field.IsRepeated)
+ {
+ object unknown;
+ IEnumLite value = null;
+ if (input.ReadEnum(ref value, out unknown, field.EnumType))
+ {
+ builder[field] = value;
+ }
+ else if (unknown is int)
+ {
+ MergeVarintField(fieldNumber, (ulong) (int) unknown);
+ }
+ }
+ else
+ {
+ ICollection<object> unknown;
+ List<IEnumLite> list = new List<IEnumLite>();
+ input.ReadEnumArray(tag, fieldName, list, out unknown, field.EnumType);
+
+ foreach (IEnumLite en in list)
+ {
+ builder.WeakAddRepeatedField(field, en);
+ }
+
+ if (unknown != null)
+ {
+ foreach (object oval in unknown)
+ {
+ if (oval is int)
+ {
+ MergeVarintField(fieldNumber, (ulong) (int) oval);
+ }
+ }
+ }
+ }
+ break;
+ }
+ default:
+ {
+ if (!field.IsRepeated)
+ {
+ object value = null;
+ if (input.ReadPrimitiveField(field.FieldType, ref value))
+ {
+ builder[field] = value;
+ }
+ }
+ else
+ {
+ List<object> list = new List<object>();
+ input.ReadPrimitiveArray(field.FieldType, tag, fieldName, list);
+ foreach (object oval in list)
+ {
+ builder.WeakAddRepeatedField(field, oval);
+ }
+ }
+ break;
+ }
+ }
+ return true;
+ }
+
+ /// <summary>
+ /// Called by MergeFieldFrom to parse a MessageSet extension.
+ /// </summary>
+ private void MergeMessageSetExtensionFromCodedStream(ICodedInputStream input,
+ ExtensionRegistry extensionRegistry, IBuilder builder)
+ {
+ MessageDescriptor type = builder.DescriptorForType;
+
+ // The wire format for MessageSet is:
+ // message MessageSet {
+ // repeated group Item = 1 {
+ // required int32 typeId = 2;
+ // required bytes message = 3;
+ // }
+ // }
+ // "typeId" is the extension's field number. The extension can only be
+ // a message type, where "message" contains the encoded bytes of that
+ // message.
+ //
+ // In practice, we will probably never see a MessageSet item in which
+ // the message appears before the type ID, or where either field does not
+ // appear exactly once. However, in theory such cases are valid, so we
+ // should be prepared to accept them.
+
+ int typeId = 0;
+ ByteString rawBytes = null; // If we encounter "message" before "typeId"
+ IBuilderLite subBuilder = null;
+ FieldDescriptor field = null;
+
+ uint lastTag = WireFormat.MessageSetTag.ItemStart;
+ uint tag;
+ string name;
+ while (input.ReadTag(out tag, out name))
+ {
+ if (tag == 0 && name != null)
+ {
+ if (name == "type_id")
+ {
+ tag = WireFormat.MessageSetTag.TypeID;
+ }
+ else if (name == "message")
+ {
+ tag = WireFormat.MessageSetTag.Message;
+ }
+ }
+ if (tag == 0)
+ {
+ if (input.SkipField())
+ {
+ continue; //can't merge unknown without field tag
+ }
+ break;
+ }
+
+ lastTag = tag;
+ if (tag == WireFormat.MessageSetTag.TypeID)
+ {
+ typeId = 0;
+ // Zero is not a valid type ID.
+ if (input.ReadInt32(ref typeId) && typeId != 0)
+ {
+ ExtensionInfo extension = extensionRegistry[type, typeId];
+ if (extension != null)
+ {
+ field = extension.Descriptor;
+ subBuilder = extension.DefaultInstance.WeakCreateBuilderForType();
+ IMessageLite originalMessage = (IMessageLite) builder[field];
+ if (originalMessage != null)
+ {
+ subBuilder.WeakMergeFrom(originalMessage);
+ }
+ if (rawBytes != null)
+ {
+ // We already encountered the message. Parse it now.
+ // TODO(jonskeet): Check this is okay. It's subtly different from the Java, as it doesn't create an input stream from rawBytes.
+ // In fact, why don't we just call MergeFrom(rawBytes)? And what about the extension registry?
+ subBuilder.WeakMergeFrom(rawBytes.CreateCodedInput());
+ rawBytes = null;
+ }
+ }
+ else
+ {
+ // Unknown extension number. If we already saw data, put it
+ // in rawBytes.
+ if (rawBytes != null)
+ {
+ MergeField(typeId, UnknownField.CreateBuilder().AddLengthDelimited(rawBytes).Build());
+ rawBytes = null;
+ }
+ }
+ }
+ }
+ else if (tag == WireFormat.MessageSetTag.Message)
+ {
+ if (subBuilder != null)
+ {
+ // We already know the type, so we can parse directly from the input
+ // with no copying. Hooray!
+ input.ReadMessage(subBuilder, extensionRegistry);
+ }
+ else if (input.ReadBytes(ref rawBytes))
+ {
+ if (typeId != 0)
+ {
+ // We don't know how to parse this. Ignore it.
+ MergeField(typeId,
+ UnknownField.CreateBuilder().AddLengthDelimited(rawBytes).Build());
+ }
+ }
+ }
+ else
+ {
+ // Unknown tag. Skip it.
+ if (!input.SkipField())
+ {
+ break; // end of group
+ }
+ }
+ }
+
+ if (lastTag != WireFormat.MessageSetTag.ItemEnd)
+ {
+ throw InvalidProtocolBufferException.InvalidEndTag();
+ }
+
+ if (subBuilder != null)
+ {
+ builder[field] = subBuilder.WeakBuild();
+ }
+ }
+
+ #region IBuilderLite Members
+
+ bool IBuilderLite.IsInitialized
+ {
+ get { return fields != null; }
+ }
+
+ IBuilderLite IBuilderLite.WeakClear()
+ {
+ return Clear();
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(IMessageLite message)
+ {
+ return MergeFrom((UnknownFieldSet) message);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ByteString data)
+ {
+ return MergeFrom(data);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ByteString data, ExtensionRegistry registry)
+ {
+ return MergeFrom(data);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ICodedInputStream input)
+ {
+ return MergeFrom(input);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ICodedInputStream input, ExtensionRegistry registry)
+ {
+ return MergeFrom(input);
+ }
+
+ IMessageLite IBuilderLite.WeakBuild()
+ {
+ return Build();
+ }
+
+ IMessageLite IBuilderLite.WeakBuildPartial()
+ {
+ return Build();
+ }
+
+ IBuilderLite IBuilderLite.WeakClone()
+ {
+ return Build().WeakToBuilder();
+ }
+
+ IMessageLite IBuilderLite.WeakDefaultInstanceForType
+ {
+ get { return DefaultInstance; }
+ }
+
+ #endregion
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffers/WireFormat.cs b/csharp/src/ProtocolBuffers/WireFormat.cs
new file mode 100644
index 00000000..b9daa328
--- /dev/null
+++ b/csharp/src/ProtocolBuffers/WireFormat.cs
@@ -0,0 +1,185 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// This class is used internally by the Protocol Buffer Library and generated
+ /// message implementations. It is public only for the sake of those generated
+ /// messages. Others should not use this class directly.
+ /// <para>
+ /// This class contains constants and helper functions useful for dealing with
+ /// the Protocol Buffer wire format.
+ /// </para>
+ /// </summary>
+ public static class WireFormat
+ {
+ #region Fixed sizes.
+
+ // TODO(jonskeet): Move these somewhere else. They're messy. Consider making FieldType a smarter kind of enum
+ public const int Fixed32Size = 4;
+ public const int Fixed64Size = 8;
+ public const int SFixed32Size = 4;
+ public const int SFixed64Size = 8;
+ public const int FloatSize = 4;
+ public const int DoubleSize = 8;
+ public const int BoolSize = 1;
+
+ #endregion
+
+ public enum WireType : uint
+ {
+ Varint = 0,
+ Fixed64 = 1,
+ LengthDelimited = 2,
+ StartGroup = 3,
+ EndGroup = 4,
+ Fixed32 = 5
+ }
+
+ internal static class MessageSetField
+ {
+ internal const int Item = 1;
+ internal const int TypeID = 2;
+ internal const int Message = 3;
+ }
+
+ internal static class MessageSetTag
+ {
+ internal static readonly uint ItemStart = MakeTag(MessageSetField.Item, WireType.StartGroup);
+ internal static readonly uint ItemEnd = MakeTag(MessageSetField.Item, WireType.EndGroup);
+ internal static readonly uint TypeID = MakeTag(MessageSetField.TypeID, WireType.Varint);
+ internal static readonly uint Message = MakeTag(MessageSetField.Message, WireType.LengthDelimited);
+ }
+
+ private const int TagTypeBits = 3;
+ private const uint TagTypeMask = (1 << TagTypeBits) - 1;
+
+ /// <summary>
+ /// Given a tag value, determines the wire type (lower 3 bits).
+ /// </summary>
+ public static WireType GetTagWireType(uint tag)
+ {
+ return (WireType) (tag & TagTypeMask);
+ }
+
+ public static bool IsEndGroupTag(uint tag)
+ {
+ return (WireType) (tag & TagTypeMask) == WireType.EndGroup;
+ }
+
+ /// <summary>
+ /// Given a tag value, determines the field number (the upper 29 bits).
+ /// </summary>
+ public static int GetTagFieldNumber(uint tag)
+ {
+ return (int) tag >> TagTypeBits;
+ }
+
+ /// <summary>
+ /// Makes a tag value given a field number and wire type.
+ /// TODO(jonskeet): Should we just have a Tag structure?
+ /// </summary>
+ public static uint MakeTag(int fieldNumber, WireType wireType)
+ {
+ return (uint) (fieldNumber << TagTypeBits) | (uint) wireType;
+ }
+
+#if !LITE
+ public static uint MakeTag(FieldDescriptor field)
+ {
+ return MakeTag(field.FieldNumber, GetWireType(field));
+ }
+
+ /// <summary>
+ /// Returns the wire type for the given field descriptor. This differs
+ /// from GetWireType(FieldType) for packed repeated fields.
+ /// </summary>
+ internal static WireType GetWireType(FieldDescriptor descriptor)
+ {
+ return descriptor.IsPacked ? WireType.LengthDelimited : GetWireType(descriptor.FieldType);
+ }
+
+#endif
+
+ /// <summary>
+ /// Converts a field type to its wire type. Done with a switch for the sake
+ /// of speed - this is significantly faster than a dictionary lookup.
+ /// </summary>
+ public static WireType GetWireType(FieldType fieldType)
+ {
+ switch (fieldType)
+ {
+ case FieldType.Double:
+ return WireType.Fixed64;
+ case FieldType.Float:
+ return WireType.Fixed32;
+ case FieldType.Int64:
+ case FieldType.UInt64:
+ case FieldType.Int32:
+ return WireType.Varint;
+ case FieldType.Fixed64:
+ return WireType.Fixed64;
+ case FieldType.Fixed32:
+ return WireType.Fixed32;
+ case FieldType.Bool:
+ return WireType.Varint;
+ case FieldType.String:
+ return WireType.LengthDelimited;
+ case FieldType.Group:
+ return WireType.StartGroup;
+ case FieldType.Message:
+ case FieldType.Bytes:
+ return WireType.LengthDelimited;
+ case FieldType.UInt32:
+ return WireType.Varint;
+ case FieldType.SFixed32:
+ return WireType.Fixed32;
+ case FieldType.SFixed64:
+ return WireType.Fixed64;
+ case FieldType.SInt32:
+ case FieldType.SInt64:
+ case FieldType.Enum:
+ return WireType.Varint;
+ default:
+ throw new ArgumentOutOfRangeException("No such field type");
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs b/csharp/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs
new file mode 100644
index 00000000..f5932ab3
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs
@@ -0,0 +1,336 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class AbstractBuilderLiteTest
+ {
+ [Test]
+ public void TestMergeFromCodedInputStream()
+ {
+ TestAllTypesLite copy,
+ msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalUint32(uint.MaxValue).Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ using (MemoryStream ms = new MemoryStream(msg.ToByteArray()))
+ {
+ CodedInputStream ci = CodedInputStream.CreateInstance(ms);
+ copy = copy.ToBuilder().MergeFrom(ci).Build();
+ }
+
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakClear()
+ {
+ TestAllTypesLite copy, msg = TestAllTypesLite.DefaultInstance;
+
+ copy = msg.ToBuilder().SetOptionalString("Should be removed.").Build();
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ copy = (TestAllTypesLite) ((IBuilderLite) copy.ToBuilder()).WeakClear().WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestBuilderLiteMergeFromCodedInputStream()
+ {
+ TestAllTypesLite copy,
+ msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalString("Should be merged.").Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ copy =
+ copy.ToBuilder().MergeFrom(CodedInputStream.CreateInstance(new MemoryStream(msg.ToByteArray()))).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestBuilderLiteMergeDelimitedFrom()
+ {
+ TestAllTypesLite copy,
+ msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalString("Should be merged.").Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+ Stream s = new MemoryStream();
+ msg.WriteDelimitedTo(s);
+ s.Position = 0;
+ copy = copy.ToBuilder().MergeDelimitedFrom(s).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestBuilderLiteMergeDelimitedFromExtensions()
+ {
+ TestAllExtensionsLite copy,
+ msg = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnittestLite.OptionalStringExtensionLite,
+ "Should be merged.").Build();
+
+ copy = TestAllExtensionsLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Stream s = new MemoryStream();
+ msg.WriteDelimitedTo(s);
+ s.Position = 0;
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestLite.RegisterAllExtensions(registry);
+
+ copy = copy.ToBuilder().MergeDelimitedFrom(s, registry).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ Assert.AreEqual("Should be merged.", copy.GetExtension(UnittestLite.OptionalStringExtensionLite));
+ }
+
+ [Test]
+ public void TestBuilderLiteMergeFromStream()
+ {
+ TestAllTypesLite copy,
+ msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalString("Should be merged.").Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+ Stream s = new MemoryStream();
+ msg.WriteTo(s);
+ s.Position = 0;
+ copy = copy.ToBuilder().MergeFrom(s).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestBuilderLiteMergeFromStreamExtensions()
+ {
+ TestAllExtensionsLite copy,
+ msg = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnittestLite.OptionalStringExtensionLite,
+ "Should be merged.").Build();
+
+ copy = TestAllExtensionsLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Stream s = new MemoryStream();
+ msg.WriteTo(s);
+ s.Position = 0;
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestLite.RegisterAllExtensions(registry);
+
+ copy = copy.ToBuilder().MergeFrom(s, registry).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ Assert.AreEqual("Should be merged.", copy.GetExtension(UnittestLite.OptionalStringExtensionLite));
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakMergeFromIMessageLite()
+ {
+ TestAllTypesLite copy,
+ msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalString("Should be merged.").Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ copy = (TestAllTypesLite) ((IBuilderLite) copy.ToBuilder()).WeakMergeFrom((IMessageLite) msg).WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakMergeFromByteString()
+ {
+ TestAllTypesLite copy,
+ msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalString("Should be merged.").Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ copy = (TestAllTypesLite) ((IBuilderLite) copy.ToBuilder()).WeakMergeFrom(msg.ToByteString()).WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakMergeFromByteStringExtensions()
+ {
+ TestAllExtensionsLite copy,
+ msg = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnittestLite.OptionalStringExtensionLite,
+ "Should be merged.").Build();
+
+ copy = TestAllExtensionsLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ copy =
+ (TestAllExtensionsLite)
+ ((IBuilderLite) copy.ToBuilder()).WeakMergeFrom(msg.ToByteString(), ExtensionRegistry.Empty).WeakBuild();
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestLite.RegisterAllExtensions(registry);
+
+ copy =
+ (TestAllExtensionsLite)
+ ((IBuilderLite) copy.ToBuilder()).WeakMergeFrom(msg.ToByteString(), registry).WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ Assert.AreEqual("Should be merged.", copy.GetExtension(UnittestLite.OptionalStringExtensionLite));
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakMergeFromCodedInputStream()
+ {
+ TestAllTypesLite copy,
+ msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalUint32(uint.MaxValue).Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ using (MemoryStream ms = new MemoryStream(msg.ToByteArray()))
+ {
+ CodedInputStream ci = CodedInputStream.CreateInstance(ms);
+ copy = (TestAllTypesLite) ((IBuilderLite) copy.ToBuilder()).WeakMergeFrom(ci).WeakBuild();
+ }
+
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakBuildPartial()
+ {
+ IBuilderLite builder = TestRequiredLite.CreateBuilder();
+ Assert.IsFalse(builder.IsInitialized);
+
+ IMessageLite msg = builder.WeakBuildPartial();
+ Assert.IsFalse(msg.IsInitialized);
+
+ Assert.AreEqual(msg.ToByteArray(), TestRequiredLite.DefaultInstance.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakBuildUninitialized()
+ {
+ IBuilderLite builder = TestRequiredLite.CreateBuilder();
+ Assert.IsFalse(builder.IsInitialized);
+ Assert.Throws<UninitializedMessageException>(() => builder.WeakBuild());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakBuild()
+ {
+ IBuilderLite builder = TestRequiredLite.CreateBuilder()
+ .SetD(0)
+ .SetEn(ExtraEnum.EXLITE_BAZ);
+ Assert.IsTrue(builder.IsInitialized);
+ builder.WeakBuild();
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakClone()
+ {
+ TestRequiredLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(1).SetEn(ExtraEnum.EXLITE_BAR).Build();
+ Assert.IsTrue(msg.IsInitialized);
+
+ IMessageLite copy = ((IBuilderLite) msg.ToBuilder()).WeakClone().WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakDefaultInstance()
+ {
+ Assert.IsTrue(ReferenceEquals(TestRequiredLite.DefaultInstance,
+ ((IBuilderLite) TestRequiredLite.CreateBuilder()).WeakDefaultInstanceForType));
+ }
+
+ [Test]
+ public void TestGeneratedBuilderLiteAddRange()
+ {
+ TestAllTypesLite copy,
+ msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalUint32(123)
+ .AddRepeatedInt32(1)
+ .AddRepeatedInt32(2)
+ .AddRepeatedInt32(3)
+ .Build();
+
+ copy = msg.DefaultInstanceForType.ToBuilder().MergeFrom(msg).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ // ROK 5/7/2013 Issue #54: should retire all bytes in buffer (bufferSize)
+ [Test]
+ public void TestBufferRefillIssue()
+ {
+ var ms = new MemoryStream();
+ BucketOfBytes.CreateBuilder()
+ .SetValue(ByteString.CopyFrom(new byte[3000]))
+ .Build().WriteDelimitedTo(ms);
+ BucketOfBytesEx.CreateBuilder()
+ .SetValue(ByteString.CopyFrom(new byte[1000]))
+ .SetValue2(ByteString.CopyFrom(new byte[1100]))
+ .Build().WriteDelimitedTo(ms);
+ BucketOfBytes.CreateBuilder()
+ .SetValue(ByteString.CopyFrom(new byte[100]))
+ .Build().WriteDelimitedTo(ms);
+
+ ms.Position = 0;
+ var input = CodedInputStream.CreateInstance(ms);
+ var builder = BucketOfBytes.CreateBuilder();
+ input.ReadMessage(builder, ExtensionRegistry.Empty);
+ Assert.AreEqual(3005L, input.Position);
+ Assert.AreEqual(3000, builder.Value.Length);
+ input.ReadMessage(builder, ExtensionRegistry.Empty);
+ Assert.AreEqual(5114, input.Position);
+ Assert.AreEqual(1000, builder.Value.Length);
+ input.ReadMessage(builder, ExtensionRegistry.Empty);
+ Assert.AreEqual(5217L, input.Position);
+ Assert.AreEqual(input.Position, ms.Length);
+ Assert.AreEqual(100, builder.Value.Length);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs b/csharp/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs
new file mode 100644
index 00000000..93ed5ea5
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs
@@ -0,0 +1,133 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.IO;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class AbstractMessageLiteTest
+ {
+ [Test]
+ public void TestMessageLiteToByteString()
+ {
+ TestRequiredLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(42)
+ .SetEn(ExtraEnum.EXLITE_BAZ)
+ .Build();
+
+ ByteString b = msg.ToByteString();
+ Assert.AreEqual(4, b.Length);
+ Assert.AreEqual(TestRequiredLite.DFieldNumber << 3, b[0]);
+ Assert.AreEqual(42, b[1]);
+ Assert.AreEqual(TestRequiredLite.EnFieldNumber << 3, b[2]);
+ Assert.AreEqual((int) ExtraEnum.EXLITE_BAZ, b[3]);
+ }
+
+ [Test]
+ public void TestMessageLiteToByteArray()
+ {
+ TestRequiredLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(42)
+ .SetEn(ExtraEnum.EXLITE_BAZ)
+ .Build();
+
+ ByteString b = msg.ToByteString();
+ ByteString copy = ByteString.CopyFrom(msg.ToByteArray());
+ Assert.AreEqual(b, copy);
+ }
+
+ [Test]
+ public void TestMessageLiteWriteTo()
+ {
+ TestRequiredLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(42)
+ .SetEn(ExtraEnum.EXLITE_BAZ)
+ .Build();
+
+ MemoryStream ms = new MemoryStream();
+ msg.WriteTo(ms);
+ Assert.AreEqual(msg.ToByteArray(), ms.ToArray());
+ }
+
+ [Test]
+ public void TestMessageLiteWriteDelimitedTo()
+ {
+ TestRequiredLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(42)
+ .SetEn(ExtraEnum.EXLITE_BAZ)
+ .Build();
+
+ MemoryStream ms = new MemoryStream();
+ msg.WriteDelimitedTo(ms);
+ byte[] buffer = ms.ToArray();
+
+ Assert.AreEqual(5, buffer.Length);
+ Assert.AreEqual(4, buffer[0]);
+ byte[] msgBytes = new byte[4];
+ Array.Copy(buffer, 1, msgBytes, 0, 4);
+ Assert.AreEqual(msg.ToByteArray(), msgBytes);
+ }
+
+ [Test]
+ public void TestIMessageLiteWeakCreateBuilderForType()
+ {
+ IMessageLite msg = TestRequiredLite.DefaultInstance;
+ Assert.AreEqual(typeof(TestRequiredLite.Builder), msg.WeakCreateBuilderForType().GetType());
+ }
+
+ [Test]
+ public void TestMessageLiteWeakToBuilder()
+ {
+ IMessageLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(42)
+ .SetEn(ExtraEnum.EXLITE_BAZ)
+ .Build();
+
+ IMessageLite copy = msg.WeakToBuilder().WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestMessageLiteWeakDefaultInstanceForType()
+ {
+ IMessageLite msg = TestRequiredLite.DefaultInstance;
+ Assert.IsTrue(Object.ReferenceEquals(TestRequiredLite.DefaultInstance, msg.WeakDefaultInstanceForType));
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/App.xaml b/csharp/src/ProtocolBuffersLite.Test/App.xaml
new file mode 100644
index 00000000..d4f1f2e3
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/App.xaml
@@ -0,0 +1,8 @@
+<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ x:Class="ProtocolBuffers.SilverlightTest.App"
+ >
+ <Application.Resources>
+
+ </Application.Resources>
+</Application>
diff --git a/csharp/src/ProtocolBuffersLite.Test/App.xaml.cs b/csharp/src/ProtocolBuffersLite.Test/App.xaml.cs
new file mode 100644
index 00000000..0c9fd9e6
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/App.xaml.cs
@@ -0,0 +1,60 @@
+using System;
+using System.Windows;
+using Microsoft.Silverlight.Testing;
+
+namespace Google.ProtocolBuffers
+{
+ public partial class App : Application
+ {
+
+ public App()
+ {
+ this.Startup += this.Application_Startup;
+ this.Exit += this.Application_Exit;
+ this.UnhandledException += this.Application_UnhandledException;
+
+ //InitializeComponent();
+ }
+
+ private void Application_Startup(object sender, StartupEventArgs e)
+ {
+ this.RootVisual = UnitTestSystem.CreateTestPage();
+ }
+
+ private void Application_Exit(object sender, EventArgs e)
+ {
+
+ }
+ private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
+ {
+ // If the app is running outside of the debugger then report the exception using
+ // the browser's exception mechanism. On IE this will display it a yellow alert
+ // icon in the status bar and Firefox will display a script error.
+ if (!System.Diagnostics.Debugger.IsAttached)
+ {
+
+ // NOTE: This will allow the application to continue running after an exception has been thrown
+ // but not handled.
+ // For production applications this error handling should be replaced with something that will
+ // report the error to the website and stop the application.
+ e.Handled = true;
+ Deployment.Current.Dispatcher.BeginInvoke(
+ new EventHandler<ApplicationUnhandledExceptionEventArgs>(ReportErrorToDOM),
+ new object[] { sender, e } );
+ }
+ }
+ private void ReportErrorToDOM(object sender, ApplicationUnhandledExceptionEventArgs e)
+ {
+ try
+ {
+ string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
+ errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
+
+ System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight 2 Application " + errorMsg + "\");");
+ }
+ catch (Exception)
+ {
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/ExtendableBuilderLiteTest.cs b/csharp/src/ProtocolBuffersLite.Test/ExtendableBuilderLiteTest.cs
new file mode 100644
index 00000000..1ea712d4
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/ExtendableBuilderLiteTest.cs
@@ -0,0 +1,286 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class ExtendableBuilderLiteTest
+ {
+ [Test]
+ public void TestHasExtensionT()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnittestLite.OptionalInt32ExtensionLite, 123);
+
+ Assert.IsTrue(builder.HasExtension(UnittestLite.OptionalInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestHasExtensionTMissing()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.IsFalse(builder.HasExtension(UnittestLite.OptionalInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestGetExtensionCountT()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 1)
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 2)
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 3);
+
+ Assert.AreEqual(3, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestGetExtensionCountTEmpty()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.AreEqual(0, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestGetExtensionTNull()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ string value = builder.GetExtension(UnittestLite.OptionalStringExtensionLite);
+ Assert.Null(value);
+ }
+
+ [Test]
+ public void TestGetExtensionTValue()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnittestLite.OptionalInt32ExtensionLite, 3);
+
+ Assert.AreEqual(3, builder.GetExtension(UnittestLite.OptionalInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestGetExtensionTEmpty()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.AreEqual(0, builder.GetExtension(UnittestLite.RepeatedInt32ExtensionLite).Count);
+ }
+
+ [Test]
+ public void TestGetExtensionTList()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 1)
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 2)
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 3);
+
+ IList<int> values = builder.GetExtension(UnittestLite.RepeatedInt32ExtensionLite);
+ Assert.AreEqual(3, values.Count);
+ }
+
+ [Test]
+ public void TestGetExtensionTIndex()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 0)
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 1)
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 2);
+
+ for (int i = 0; i < 3; i++)
+ Assert.AreEqual(i, builder.GetExtension(UnittestLite.RepeatedInt32ExtensionLite, i));
+ }
+
+ [Test]
+ public void TestGetExtensionTIndexOutOfRange()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.Throws<ArgumentOutOfRangeException>(() => builder.GetExtension(UnittestLite.RepeatedInt32ExtensionLite, 0));
+ }
+
+ [Test]
+ public void TestSetExtensionTIndex()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 0)
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 1)
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 2);
+
+ for (int i = 0; i < 3; i++)
+ Assert.AreEqual(i, builder.GetExtension(UnittestLite.RepeatedInt32ExtensionLite, i));
+
+ builder.SetExtension(UnittestLite.RepeatedInt32ExtensionLite, 0, 5);
+ builder.SetExtension(UnittestLite.RepeatedInt32ExtensionLite, 1, 6);
+ builder.SetExtension(UnittestLite.RepeatedInt32ExtensionLite, 2, 7);
+
+ for (int i = 0; i < 3; i++)
+ Assert.AreEqual(5 + i, builder.GetExtension(UnittestLite.RepeatedInt32ExtensionLite, i));
+ }
+
+ [Test]
+ public void TestSetExtensionTIndexOutOfRange()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.Throws<ArgumentOutOfRangeException>(() => builder.SetExtension(UnittestLite.RepeatedInt32ExtensionLite, 0, -1));
+ }
+
+ [Test]
+ public void TestClearExtensionTList()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 0);
+ Assert.AreEqual(1, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+
+ builder.ClearExtension(UnittestLite.RepeatedInt32ExtensionLite);
+ Assert.AreEqual(0, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestClearExtensionTValue()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnittestLite.OptionalInt32ExtensionLite, 0);
+ Assert.IsTrue(builder.HasExtension(UnittestLite.OptionalInt32ExtensionLite));
+
+ builder.ClearExtension(UnittestLite.OptionalInt32ExtensionLite);
+ Assert.IsFalse(builder.HasExtension(UnittestLite.OptionalInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestIndexedByDescriptor()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.IsFalse(builder.HasExtension(UnittestLite.OptionalInt32ExtensionLite));
+
+ builder[UnittestLite.OptionalInt32ExtensionLite.Descriptor] = 123;
+
+ Assert.IsTrue(builder.HasExtension(UnittestLite.OptionalInt32ExtensionLite));
+ Assert.AreEqual(123, builder.GetExtension(UnittestLite.OptionalInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestIndexedByDescriptorAndOrdinal()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 0);
+ Assert.AreEqual(1, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+
+ IFieldDescriptorLite f = UnittestLite.RepeatedInt32ExtensionLite.Descriptor;
+ builder[f, 0] = 123;
+
+ Assert.AreEqual(1, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+ Assert.AreEqual(123, builder.GetExtension(UnittestLite.RepeatedInt32ExtensionLite, 0));
+ }
+
+ [Test]
+ public void TestIndexedByDescriptorAndOrdinalOutOfRange()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.AreEqual(0, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+
+ IFieldDescriptorLite f = UnittestLite.RepeatedInt32ExtensionLite.Descriptor;
+ Assert.Throws<ArgumentOutOfRangeException>(() => builder[f, 0] = 123);
+ }
+
+ [Test]
+ public void TestClearFieldByDescriptor()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 0);
+ Assert.AreEqual(1, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+
+ IFieldDescriptorLite f = UnittestLite.RepeatedInt32ExtensionLite.Descriptor;
+ builder.ClearField(f);
+ Assert.AreEqual(0, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestAddRepeatedFieldByDescriptor()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 0);
+ Assert.AreEqual(1, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+
+ IFieldDescriptorLite f = UnittestLite.RepeatedInt32ExtensionLite.Descriptor;
+ builder.AddRepeatedField(f, 123);
+ Assert.AreEqual(2, builder.GetExtensionCount(UnittestLite.RepeatedInt32ExtensionLite));
+ Assert.AreEqual(123, builder.GetExtension(UnittestLite.RepeatedInt32ExtensionLite, 1));
+ }
+
+ [Test]
+ public void TestMissingExtensionsLite()
+ {
+ const int optionalInt32 = 12345678;
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ builder.SetExtension(UnittestLite.OptionalInt32ExtensionLite, optionalInt32);
+ builder.AddExtension(UnittestLite.RepeatedDoubleExtensionLite, 1.1);
+ builder.AddExtension(UnittestLite.RepeatedDoubleExtensionLite, 1.2);
+ builder.AddExtension(UnittestLite.RepeatedDoubleExtensionLite, 1.3);
+ TestAllExtensionsLite msg = builder.Build();
+
+ Assert.IsTrue(msg.HasExtension(UnittestLite.OptionalInt32ExtensionLite));
+ Assert.AreEqual(3, msg.GetExtensionCount(UnittestLite.RepeatedDoubleExtensionLite));
+
+ byte[] bits = msg.ToByteArray();
+ TestAllExtensionsLite copy = TestAllExtensionsLite.ParseFrom(bits);
+ Assert.IsFalse(copy.HasExtension(UnittestLite.OptionalInt32ExtensionLite));
+ Assert.AreEqual(0, copy.GetExtensionCount(UnittestLite.RepeatedDoubleExtensionLite));
+ Assert.AreNotEqual(msg, copy);
+
+ //The lite runtime removes all unknown fields and extensions
+ byte[] copybits = copy.ToByteArray();
+ Assert.AreEqual(0, copybits.Length);
+ }
+
+ [Test]
+ public void TestMissingFieldsLite()
+ {
+ TestAllTypesLite msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalInt32(123)
+ .SetOptionalString("123")
+ .Build();
+
+ byte[] bits = msg.ToByteArray();
+ IMessageLite copy = TestAllExtensionsLite.ParseFrom(bits);
+ Assert.AreNotEqual(msg, copy);
+
+ //The lite runtime removes all unknown fields and extensions
+ byte[] copybits = copy.ToByteArray();
+ Assert.AreEqual(0, copybits.Length);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs b/csharp/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs
new file mode 100644
index 00000000..9a8e35b6
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs
@@ -0,0 +1,378 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Google.ProtocolBuffers;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class ExtendableMessageLiteTest
+ {
+ //The lite framework does not make this assertion
+ //[TestMethod, Ignore, ExpectedException(typeof(ArgumentException))]
+ //public void ExtensionWriterInvalidExtension()
+ //{
+ // TestPackedExtensionsLite.CreateBuilder()[
+ // UnittestLite.OptionalForeignMessageExtensionLite.DescriptorProtoFile] =
+ // ForeignMessageLite.DefaultInstance;
+ //}
+
+ [Test]
+ public void ExtensionWriterTestMessages()
+ {
+ TestAllExtensionsLite.Builder b = TestAllExtensionsLite.CreateBuilder().SetExtension(
+ UnittestLite.OptionalForeignMessageExtensionLite,
+ ForeignMessageLite.CreateBuilder().SetC(123).Build());
+ TestAllExtensionsLite copy, msg = b.Build();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestLite.RegisterAllExtensions(registry);
+
+ copy = TestAllExtensionsLite.ParseFrom(msg.ToByteArray(), registry);
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void ExtensionWriterIsInitialized()
+ {
+ Assert.IsTrue(ForeignMessageLite.DefaultInstance.IsInitialized);
+ Assert.IsTrue(TestPackedExtensionsLite.CreateBuilder().IsInitialized);
+ Assert.IsTrue(TestAllExtensionsLite.CreateBuilder().SetExtension(
+ UnittestLite.OptionalForeignMessageExtensionLite, ForeignMessageLite.DefaultInstance)
+ .IsInitialized);
+ }
+
+ [Test]
+ public void ExtensionWriterTestSetExtensionLists()
+ {
+ TestAllExtensionsLite msg, copy;
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnittestLite.RepeatedBoolExtensionLite, new[] {true, false})
+ .SetExtension(UnittestLite.RepeatedCordExtensionLite, new[] {"123", "456"})
+ .SetExtension(UnittestLite.RepeatedForeignEnumExtensionLite,
+ new[] {ForeignEnumLite.FOREIGN_LITE_BAZ, ForeignEnumLite.FOREIGN_LITE_FOO})
+ ;
+
+ msg = builder.Build();
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestLite.RegisterAllExtensions(registry);
+
+ copy = TestAllExtensionsLite.ParseFrom(msg.ToByteArray(), registry);
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_FOO,
+ copy.GetExtension(UnittestLite.RepeatedForeignEnumExtensionLite, 1));
+ }
+
+ [Test]
+ public void ExtensionWriterTest()
+ {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnittestLite.DefaultBoolExtensionLite, true)
+ .SetExtension(UnittestLite.DefaultBytesExtensionLite, ByteString.CopyFromUtf8("123"))
+ .SetExtension(UnittestLite.DefaultCordExtensionLite, "123")
+ .SetExtension(UnittestLite.DefaultDoubleExtensionLite, 123)
+ .SetExtension(UnittestLite.DefaultFixed32ExtensionLite, 123u)
+ .SetExtension(UnittestLite.DefaultFixed64ExtensionLite, 123u)
+ .SetExtension(UnittestLite.DefaultFloatExtensionLite, 123)
+ .SetExtension(UnittestLite.DefaultForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ)
+ .SetExtension(UnittestLite.DefaultImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ)
+ .SetExtension(UnittestLite.DefaultInt32ExtensionLite, 123)
+ .SetExtension(UnittestLite.DefaultInt64ExtensionLite, 123)
+ .SetExtension(UnittestLite.DefaultNestedEnumExtensionLite,
+ TestAllTypesLite.Types.NestedEnum.FOO)
+ .SetExtension(UnittestLite.DefaultSfixed32ExtensionLite, 123)
+ .SetExtension(UnittestLite.DefaultSfixed64ExtensionLite, 123)
+ .SetExtension(UnittestLite.DefaultSint32ExtensionLite, 123)
+ .SetExtension(UnittestLite.DefaultSint64ExtensionLite, 123)
+ .SetExtension(UnittestLite.DefaultStringExtensionLite, "123")
+ .SetExtension(UnittestLite.DefaultStringPieceExtensionLite, "123")
+ .SetExtension(UnittestLite.DefaultUint32ExtensionLite, 123u)
+ .SetExtension(UnittestLite.DefaultUint64ExtensionLite, 123u)
+ //Optional
+ .SetExtension(UnittestLite.OptionalBoolExtensionLite, true)
+ .SetExtension(UnittestLite.OptionalBytesExtensionLite, ByteString.CopyFromUtf8("123"))
+ .SetExtension(UnittestLite.OptionalCordExtensionLite, "123")
+ .SetExtension(UnittestLite.OptionalDoubleExtensionLite, 123)
+ .SetExtension(UnittestLite.OptionalFixed32ExtensionLite, 123u)
+ .SetExtension(UnittestLite.OptionalFixed64ExtensionLite, 123u)
+ .SetExtension(UnittestLite.OptionalFloatExtensionLite, 123)
+ .SetExtension(UnittestLite.OptionalForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ)
+ .SetExtension(UnittestLite.OptionalImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ)
+ .SetExtension(UnittestLite.OptionalInt32ExtensionLite, 123)
+ .SetExtension(UnittestLite.OptionalInt64ExtensionLite, 123)
+ .SetExtension(UnittestLite.OptionalNestedEnumExtensionLite,
+ TestAllTypesLite.Types.NestedEnum.FOO)
+ .SetExtension(UnittestLite.OptionalSfixed32ExtensionLite, 123)
+ .SetExtension(UnittestLite.OptionalSfixed64ExtensionLite, 123)
+ .SetExtension(UnittestLite.OptionalSint32ExtensionLite, 123)
+ .SetExtension(UnittestLite.OptionalSint64ExtensionLite, 123)
+ .SetExtension(UnittestLite.OptionalStringExtensionLite, "123")
+ .SetExtension(UnittestLite.OptionalStringPieceExtensionLite, "123")
+ .SetExtension(UnittestLite.OptionalUint32ExtensionLite, 123u)
+ .SetExtension(UnittestLite.OptionalUint64ExtensionLite, 123u)
+ //Repeated
+ .AddExtension(UnittestLite.RepeatedBoolExtensionLite, true)
+ .AddExtension(UnittestLite.RepeatedBytesExtensionLite, ByteString.CopyFromUtf8("123"))
+ .AddExtension(UnittestLite.RepeatedCordExtensionLite, "123")
+ .AddExtension(UnittestLite.RepeatedDoubleExtensionLite, 123)
+ .AddExtension(UnittestLite.RepeatedFixed32ExtensionLite, 123u)
+ .AddExtension(UnittestLite.RepeatedFixed64ExtensionLite, 123u)
+ .AddExtension(UnittestLite.RepeatedFloatExtensionLite, 123)
+ .AddExtension(UnittestLite.RepeatedForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ)
+ .AddExtension(UnittestLite.RepeatedImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ)
+ .AddExtension(UnittestLite.RepeatedInt32ExtensionLite, 123)
+ .AddExtension(UnittestLite.RepeatedInt64ExtensionLite, 123)
+ .AddExtension(UnittestLite.RepeatedNestedEnumExtensionLite,
+ TestAllTypesLite.Types.NestedEnum.FOO)
+ .AddExtension(UnittestLite.RepeatedSfixed32ExtensionLite, 123)
+ .AddExtension(UnittestLite.RepeatedSfixed64ExtensionLite, 123)
+ .AddExtension(UnittestLite.RepeatedSint32ExtensionLite, 123)
+ .AddExtension(UnittestLite.RepeatedSint64ExtensionLite, 123)
+ .AddExtension(UnittestLite.RepeatedStringExtensionLite, "123")
+ .AddExtension(UnittestLite.RepeatedStringPieceExtensionLite, "123")
+ .AddExtension(UnittestLite.RepeatedUint32ExtensionLite, 123u)
+ .AddExtension(UnittestLite.RepeatedUint64ExtensionLite, 123u)
+ ;
+ TestAllExtensionsLite msg = builder.Build();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestLite.RegisterAllExtensions(registry);
+
+ TestAllExtensionsLite.Builder copyBuilder =
+ TestAllExtensionsLite.CreateBuilder().MergeFrom(msg.ToByteArray(), registry);
+ TestAllExtensionsLite copy = copyBuilder.Build();
+
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Assert.AreEqual(true, copy.GetExtension(UnittestLite.DefaultBoolExtensionLite));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"),
+ copy.GetExtension(UnittestLite.DefaultBytesExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnittestLite.DefaultCordExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.DefaultDoubleExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.DefaultFixed32ExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.DefaultFixed64ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.DefaultFloatExtensionLite));
+ Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_BAZ,
+ copy.GetExtension(UnittestLite.DefaultForeignEnumExtensionLite));
+ Assert.AreEqual(ImportEnumLite.IMPORT_LITE_BAZ,
+ copy.GetExtension(UnittestLite.DefaultImportEnumExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.DefaultInt32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.DefaultInt64ExtensionLite));
+ Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.FOO,
+ copy.GetExtension(UnittestLite.DefaultNestedEnumExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.DefaultSfixed32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.DefaultSfixed64ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.DefaultSint32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.DefaultSint64ExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnittestLite.DefaultStringExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnittestLite.DefaultStringPieceExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.DefaultUint32ExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.DefaultUint64ExtensionLite));
+
+ Assert.AreEqual(true, copy.GetExtension(UnittestLite.OptionalBoolExtensionLite));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"),
+ copy.GetExtension(UnittestLite.OptionalBytesExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnittestLite.OptionalCordExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.OptionalDoubleExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.OptionalFixed32ExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.OptionalFixed64ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.OptionalFloatExtensionLite));
+ Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_BAZ,
+ copy.GetExtension(UnittestLite.OptionalForeignEnumExtensionLite));
+ Assert.AreEqual(ImportEnumLite.IMPORT_LITE_BAZ,
+ copy.GetExtension(UnittestLite.OptionalImportEnumExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.OptionalInt32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.OptionalInt64ExtensionLite));
+ Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.FOO,
+ copy.GetExtension(UnittestLite.OptionalNestedEnumExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.OptionalSfixed32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.OptionalSfixed64ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.OptionalSint32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.OptionalSint64ExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnittestLite.OptionalStringExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnittestLite.OptionalStringPieceExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.OptionalUint32ExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.OptionalUint64ExtensionLite));
+
+ Assert.AreEqual(true, copy.GetExtension(UnittestLite.RepeatedBoolExtensionLite, 0));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"),
+ copy.GetExtension(UnittestLite.RepeatedBytesExtensionLite, 0));
+ Assert.AreEqual("123", copy.GetExtension(UnittestLite.RepeatedCordExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.RepeatedDoubleExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.RepeatedFixed32ExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.RepeatedFixed64ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.RepeatedFloatExtensionLite, 0));
+ Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_BAZ,
+ copy.GetExtension(UnittestLite.RepeatedForeignEnumExtensionLite, 0));
+ Assert.AreEqual(ImportEnumLite.IMPORT_LITE_BAZ,
+ copy.GetExtension(UnittestLite.RepeatedImportEnumExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.RepeatedInt32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.RepeatedInt64ExtensionLite, 0));
+ Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.FOO,
+ copy.GetExtension(UnittestLite.RepeatedNestedEnumExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.RepeatedSfixed32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.RepeatedSfixed64ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.RepeatedSint32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.RepeatedSint64ExtensionLite, 0));
+ Assert.AreEqual("123", copy.GetExtension(UnittestLite.RepeatedStringExtensionLite, 0));
+ Assert.AreEqual("123", copy.GetExtension(UnittestLite.RepeatedStringPieceExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.RepeatedUint32ExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.RepeatedUint64ExtensionLite, 0));
+ }
+
+ private TestPackedExtensionsLite BuildPackedExtensions()
+ {
+ TestPackedExtensionsLite.Builder builder = TestPackedExtensionsLite.CreateBuilder()
+ .AddExtension(UnittestLite.PackedBoolExtensionLite, true)
+ .AddExtension(UnittestLite.PackedDoubleExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedFixed32ExtensionLite, 123u)
+ .AddExtension(UnittestLite.PackedFixed64ExtensionLite, 123u)
+ .AddExtension(UnittestLite.PackedFloatExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedInt32ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedInt64ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedSfixed32ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedSfixed64ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedSint32ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedSint64ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedUint32ExtensionLite, 123u)
+ .AddExtension(UnittestLite.PackedUint64ExtensionLite, 123u)
+ .AddExtension(UnittestLite.PackedBoolExtensionLite, true)
+ .AddExtension(UnittestLite.PackedDoubleExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedFixed32ExtensionLite, 123u)
+ .AddExtension(UnittestLite.PackedFixed64ExtensionLite, 123u)
+ .AddExtension(UnittestLite.PackedFloatExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedInt32ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedInt64ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedSfixed32ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedSfixed64ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedSint32ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedSint64ExtensionLite, 123)
+ .AddExtension(UnittestLite.PackedUint32ExtensionLite, 123u)
+ .AddExtension(UnittestLite.PackedUint64ExtensionLite, 123u);
+
+ TestPackedExtensionsLite msg = builder.Build();
+ return msg;
+ }
+
+ private void AssertPackedExtensions(TestPackedExtensionsLite copy)
+ {
+ Assert.AreEqual(true, copy.GetExtension(UnittestLite.PackedBoolExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedDoubleExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.PackedFixed32ExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.PackedFixed64ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedFloatExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedInt32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedInt64ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedSfixed32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedSfixed64ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedSint32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedSint64ExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.PackedUint32ExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.PackedUint64ExtensionLite, 0));
+
+ Assert.AreEqual(true, copy.GetExtension(UnittestLite.PackedBoolExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedDoubleExtensionLite, 1));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.PackedFixed32ExtensionLite, 1));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.PackedFixed64ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedFloatExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedInt32ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedInt64ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedSfixed32ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedSfixed64ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedSint32ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnittestLite.PackedSint64ExtensionLite, 1));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.PackedUint32ExtensionLite, 1));
+ Assert.AreEqual(123u, copy.GetExtension(UnittestLite.PackedUint64ExtensionLite, 1));
+ }
+
+ [Test]
+ public void ExtensionWriterTestPacked()
+ {
+ TestPackedExtensionsLite msg = BuildPackedExtensions();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestLite.RegisterAllExtensions(registry);
+
+ TestPackedExtensionsLite.Builder copyBuilder =
+ TestPackedExtensionsLite.CreateBuilder().MergeFrom(msg.ToByteArray(), registry);
+ TestPackedExtensionsLite copy = copyBuilder.Build();
+
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ AssertPackedExtensions(copy);
+ }
+
+ [Test]
+ public void TestUnpackedAndPackedExtensions()
+ {
+ TestPackedExtensionsLite original = BuildPackedExtensions();
+ AssertPackedExtensions(original);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestLite.RegisterAllExtensions(registry);
+ UnittestExtrasLite.RegisterAllExtensions(registry);
+
+ TestUnpackedExtensionsLite unpacked = TestUnpackedExtensionsLite.ParseFrom(original.ToByteArray(), registry);
+
+ TestPackedExtensionsLite packed = TestPackedExtensionsLite.ParseFrom(unpacked.ToByteArray(), registry);
+
+ Assert.AreEqual(original, packed);
+ Assert.AreEqual(original.ToByteArray(), packed.ToByteArray());
+ AssertPackedExtensions(packed);
+ }
+
+ [Test]
+ public void TestUnpackedFromPackedInput()
+ {
+ byte[] packedData = BuildPackedExtensions().ToByteArray();
+
+ TestUnpackedTypesLite unpacked = TestUnpackedTypesLite.ParseFrom(packedData);
+ TestPackedTypesLite packed = TestPackedTypesLite.ParseFrom(unpacked.ToByteArray());
+ Assert.AreEqual(packedData, packed.ToByteArray());
+
+ unpacked = TestUnpackedTypesLite.ParseFrom(packed.ToByteArray());
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestLite.RegisterAllExtensions(registry);
+ AssertPackedExtensions(TestPackedExtensionsLite.ParseFrom(unpacked.ToByteArray(), registry));
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/InteropLiteTest.cs b/csharp/src/ProtocolBuffersLite.Test/InteropLiteTest.cs
new file mode 100644
index 00000000..227b53d2
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/InteropLiteTest.cs
@@ -0,0 +1,185 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class InteropLiteTest
+ {
+ [Test]
+ public void TestConvertFromFullMinimal()
+ {
+ TestInteropPerson person = TestInteropPerson.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ TestInteropPersonLite copy = TestInteropPersonLite.ParseFrom(person.ToByteArray());
+
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestConvertFromFullComplete()
+ {
+ TestInteropPerson person = TestInteropPerson.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .SetEmail("abc@123.com")
+ .AddRangeCodes(new[] {1, 2, 3})
+ .AddPhone(TestInteropPerson.Types.PhoneNumber.CreateBuilder().SetNumber("555-1234").Build())
+ .AddPhone(TestInteropPerson.Types.PhoneNumber.CreateBuilder().SetNumber("555-5678").Build())
+ .AddAddresses(
+ TestInteropPerson.Types.Addresses.CreateBuilder().SetAddress("123 Seseme").SetCity("Wonderland").
+ SetState("NA").SetZip(12345).Build())
+ .SetExtension(UnittestExtrasFull.EmployeeId,
+ TestInteropEmployeeId.CreateBuilder().SetNumber("123").Build())
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestExtrasLite.RegisterAllExtensions(registry);
+ byte[] fullBytes = person.ToByteArray();
+
+ TestInteropPersonLite copy = TestInteropPersonLite.ParseFrom(fullBytes, registry);
+ byte[] liteBytes = copy.ToByteArray();
+
+ Assert.AreEqual(fullBytes, liteBytes);
+ }
+
+ [Test]
+ public void TestConvertFromLiteMinimal()
+ {
+ TestInteropPersonLite person = TestInteropPersonLite.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ TestInteropPerson copy = TestInteropPerson.ParseFrom(person.ToByteArray());
+
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestConvertFromLiteComplete()
+ {
+ TestInteropPersonLite person = TestInteropPersonLite.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .SetEmail("abc@123.com")
+ .AddRangeCodes(new[] {1, 2, 3})
+ .AddPhone(TestInteropPersonLite.Types.PhoneNumber.CreateBuilder().SetNumber("555-1234").Build())
+ .AddPhone(TestInteropPersonLite.Types.PhoneNumber.CreateBuilder().SetNumber("555-5678").Build())
+ .AddAddresses(
+ TestInteropPersonLite.Types.Addresses.CreateBuilder().SetAddress("123 Seseme").SetCity("Wonderland")
+ .SetState("NA").SetZip(12345).Build())
+ .SetExtension(UnittestExtrasLite.EmployeeIdLite,
+ TestInteropEmployeeIdLite.CreateBuilder().SetNumber("123").Build())
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestExtrasFull.RegisterAllExtensions(registry);
+
+ TestInteropPerson copy = TestInteropPerson.ParseFrom(person.ToByteArray(), registry);
+
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+ }
+
+ public ByteString AllBytes
+ {
+ get
+ {
+ byte[] bytes = new byte[256];
+ for (int i = 0; i < bytes.Length; i++)
+ bytes[i] = (byte) i;
+ return ByteString.CopyFrom(bytes);
+ }
+ }
+
+ [Test]
+ public void TestCompareStringValues()
+ {
+ TestInteropPersonLite person = TestInteropPersonLite.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .SetEmail("abc@123.com")
+ .AddRangeCodes(new[] {1, 2, 3})
+ .AddPhone(TestInteropPersonLite.Types.PhoneNumber.CreateBuilder().SetNumber("555-1234").Build())
+ .AddPhone(
+ TestInteropPersonLite.Types.PhoneNumber.CreateBuilder().SetNumber(
+ System.Text.Encoding.UTF8.GetString(AllBytes.ToByteArray(), 0, AllBytes.Length)).Build())
+ .AddAddresses(
+ TestInteropPersonLite.Types.Addresses.CreateBuilder().SetAddress("123 Seseme").SetCity("Wonderland")
+ .SetState("NA").SetZip(12345).Build())
+ .SetExtension(UnittestExtrasLite.EmployeeIdLite,
+ TestInteropEmployeeIdLite.CreateBuilder().SetNumber("123").Build())
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestExtrasFull.RegisterAllExtensions(registry);
+
+ TestInteropPerson copy = TestInteropPerson.ParseFrom(person.ToByteArray(), registry);
+
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+
+ TestInteropPerson.Builder copyBuilder = TestInteropPerson.CreateBuilder();
+ TextFormat.Merge(
+ person.ToString().Replace("[protobuf_unittest_extra.employee_id_lite]",
+ "[protobuf_unittest_extra.employee_id]"), registry, copyBuilder);
+
+ copy = copyBuilder.Build();
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+
+ string liteText = person.ToString().TrimEnd().Replace("\r", "");
+ string fullText = copy.ToString().TrimEnd().Replace("\r", "");
+ //map the extension type
+ liteText = liteText.Replace("[protobuf_unittest_extra.employee_id_lite]",
+ "[protobuf_unittest_extra.employee_id]");
+ //lite version does not indent
+ while (fullText.IndexOf("\n ", StringComparison.Ordinal) >= 0)
+ fullText = fullText.Replace("\n ", "\n");
+
+ Assert.AreEqual(fullText, liteText);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/LiteTest.cs b/csharp/src/ProtocolBuffersLite.Test/LiteTest.cs
new file mode 100644
index 00000000..5defc26e
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/LiteTest.cs
@@ -0,0 +1,113 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ /// <summary>
+ /// Miscellaneous tests for message operations that apply to both
+ /// generated and dynamic messages.
+ /// </summary>
+ public class LiteTest
+ {
+ [Test]
+ public void TestLite()
+ {
+ // Since lite messages are a subset of regular messages, we can mostly
+ // assume that the functionality of lite messages is already thoroughly
+ // tested by the regular tests. All this test really verifies is that
+ // a proto with optimize_for = LITE_RUNTIME compiles correctly when
+ // linked only against the lite library. That is all tested at compile
+ // time, leaving not much to do in this method. Let's just do some random
+ // stuff to make sure the lite message is actually here and usable.
+
+ TestAllTypesLite message =
+ TestAllTypesLite.CreateBuilder()
+ .SetOptionalInt32(123)
+ .AddRepeatedString("hello")
+ .SetOptionalNestedMessage(
+ TestAllTypesLite.Types.NestedMessage.CreateBuilder().SetBb(7))
+ .Build();
+
+ ByteString data = message.ToByteString();
+
+ TestAllTypesLite message2 = TestAllTypesLite.ParseFrom(data);
+
+ Assert.AreEqual(123, message2.OptionalInt32);
+ Assert.AreEqual(1, message2.RepeatedStringCount);
+ Assert.AreEqual("hello", message2.RepeatedStringList[0]);
+ Assert.AreEqual(7, message2.OptionalNestedMessage.Bb);
+ }
+
+ [Test]
+ public void TestLiteExtensions()
+ {
+ // TODO(kenton): Unlike other features of the lite library, extensions are
+ // implemented completely differently from the regular library. We
+ // should probably test them more thoroughly.
+
+ TestAllExtensionsLite message =
+ TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnittestLite.OptionalInt32ExtensionLite, 123)
+ .AddExtension(UnittestLite.RepeatedStringExtensionLite, "hello")
+ .SetExtension(UnittestLite.OptionalNestedEnumExtensionLite,
+ TestAllTypesLite.Types.NestedEnum.BAZ)
+ .SetExtension(UnittestLite.OptionalNestedMessageExtensionLite,
+ TestAllTypesLite.Types.NestedMessage.CreateBuilder().SetBb(7).Build())
+ .Build();
+
+ // Test copying a message, since coping extensions actually does use a
+ // different code path between lite and regular libraries, and as of this
+ // writing, parsing hasn't been implemented yet.
+ TestAllExtensionsLite message2 = message.ToBuilder().Build();
+
+ Assert.AreEqual(123, (int) message2.GetExtension(
+ UnittestLite.OptionalInt32ExtensionLite));
+ Assert.AreEqual(1, message2.GetExtensionCount(
+ UnittestLite.RepeatedStringExtensionLite));
+ Assert.AreEqual(1, message2.GetExtension(
+ UnittestLite.RepeatedStringExtensionLite).Count);
+ Assert.AreEqual("hello", message2.GetExtension(
+ UnittestLite.RepeatedStringExtensionLite, 0));
+ Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.BAZ, message2.GetExtension(
+ UnittestLite.OptionalNestedEnumExtensionLite));
+ Assert.AreEqual(7, message2.GetExtension(
+ UnittestLite.OptionalNestedMessageExtensionLite).Bb);
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/MissingFieldAndExtensionTest.cs b/csharp/src/ProtocolBuffersLite.Test/MissingFieldAndExtensionTest.cs
new file mode 100644
index 00000000..2385bde5
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/MissingFieldAndExtensionTest.cs
@@ -0,0 +1,237 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class MissingFieldAndExtensionTest
+ {
+ [Test]
+ public void TestRecoverMissingExtensions()
+ {
+ const int optionalInt32 = 12345678;
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ builder.SetExtension(Unittest.OptionalInt32Extension, optionalInt32);
+ builder.AddExtension(Unittest.RepeatedDoubleExtension, 1.1);
+ builder.AddExtension(Unittest.RepeatedDoubleExtension, 1.2);
+ builder.AddExtension(Unittest.RepeatedDoubleExtension, 1.3);
+ TestAllExtensions msg = builder.Build();
+
+ Assert.IsTrue(msg.HasExtension(Unittest.OptionalInt32Extension));
+ Assert.AreEqual(3, msg.GetExtensionCount(Unittest.RepeatedDoubleExtension));
+
+ byte[] bits = msg.ToByteArray();
+ TestAllExtensions copy = TestAllExtensions.ParseFrom(bits);
+ Assert.IsFalse(copy.HasExtension(Unittest.OptionalInt32Extension));
+ Assert.AreEqual(0, copy.GetExtensionCount(Unittest.RepeatedDoubleExtension));
+ Assert.AreNotEqual(msg, copy);
+
+ //Even though copy does not understand the typees they serialize correctly
+ byte[] copybits = copy.ToByteArray();
+ Assert.AreEqual(bits, copybits);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ Unittest.RegisterAllExtensions(registry);
+
+ //Now we can take those copy bits and restore the full message with extensions
+ copy = TestAllExtensions.ParseFrom(copybits, registry);
+ Assert.IsTrue(copy.HasExtension(Unittest.OptionalInt32Extension));
+ Assert.AreEqual(3, copy.GetExtensionCount(Unittest.RepeatedDoubleExtension));
+
+ Assert.AreEqual(msg, copy);
+ Assert.AreEqual(bits, copy.ToByteArray());
+
+ //If we modify the object this should all continue to work as before
+ copybits = copy.ToBuilder().Build().ToByteArray();
+ Assert.AreEqual(bits, copybits);
+
+ //If we replace extension the object this should all continue to work as before
+ copybits = copy.ToBuilder()
+ .SetExtension(Unittest.OptionalInt32Extension, optionalInt32)
+ .Build().ToByteArray();
+ Assert.AreEqual(bits, copybits);
+ }
+
+ [Test]
+ public void TestRecoverMissingFields()
+ {
+ TestMissingFieldsA msga = TestMissingFieldsA.CreateBuilder()
+ .SetId(1001)
+ .SetName("Name")
+ .SetEmail("missing@field.value")
+ .Build();
+
+ //serialize to type B and verify all fields exist
+ TestMissingFieldsB msgb = TestMissingFieldsB.ParseFrom(msga.ToByteArray());
+ Assert.AreEqual(1001, msgb.Id);
+ Assert.AreEqual("Name", msgb.Name);
+ Assert.IsFalse(msgb.HasWebsite);
+ Assert.AreEqual(1, msgb.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual("missing@field.value",
+ msgb.UnknownFields[TestMissingFieldsA.EmailFieldNumber].LengthDelimitedList[0].ToStringUtf8());
+
+ //serializes exactly the same (at least for this simple example)
+ Assert.AreEqual(msga.ToByteArray(), msgb.ToByteArray());
+ Assert.AreEqual(msga, TestMissingFieldsA.ParseFrom(msgb.ToByteArray()));
+
+ //now re-create an exact copy of A from serialized B
+ TestMissingFieldsA copya = TestMissingFieldsA.ParseFrom(msgb.ToByteArray());
+ Assert.AreEqual(msga, copya);
+ Assert.AreEqual(1001, copya.Id);
+ Assert.AreEqual("Name", copya.Name);
+ Assert.AreEqual("missing@field.value", copya.Email);
+
+ //Now we modify B... and try again
+ msgb = msgb.ToBuilder().SetWebsite("http://new.missing.field").Build();
+ //Does B still have the missing field?
+ Assert.AreEqual(1, msgb.UnknownFields.FieldDictionary.Count);
+
+ //Convert back to A and see if all fields are there?
+ copya = TestMissingFieldsA.ParseFrom(msgb.ToByteArray());
+ Assert.AreNotEqual(msga, copya);
+ Assert.AreEqual(1001, copya.Id);
+ Assert.AreEqual("Name", copya.Name);
+ Assert.AreEqual("missing@field.value", copya.Email);
+ Assert.AreEqual(1, copya.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual("http://new.missing.field",
+ copya.UnknownFields[TestMissingFieldsB.WebsiteFieldNumber].LengthDelimitedList[0].
+ ToStringUtf8());
+
+ //Lastly we can even still trip back to type B and see all fields:
+ TestMissingFieldsB copyb = TestMissingFieldsB.ParseFrom(copya.ToByteArray());
+ Assert.AreEqual(copya.ToByteArray().Length, copyb.ToByteArray().Length); //not exact order.
+ Assert.AreEqual(1001, copyb.Id);
+ Assert.AreEqual("Name", copyb.Name);
+ Assert.AreEqual("http://new.missing.field", copyb.Website);
+ Assert.AreEqual(1, copyb.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual("missing@field.value",
+ copyb.UnknownFields[TestMissingFieldsA.EmailFieldNumber].LengthDelimitedList[0].ToStringUtf8
+ ());
+ }
+
+ [Test]
+ public void TestRecoverMissingMessage()
+ {
+ TestMissingFieldsA.Types.SubA suba =
+ TestMissingFieldsA.Types.SubA.CreateBuilder().SetCount(3).AddValues("a").AddValues("b").AddValues("c").
+ Build();
+ TestMissingFieldsA msga = TestMissingFieldsA.CreateBuilder()
+ .SetId(1001)
+ .SetName("Name")
+ .SetTestA(suba)
+ .Build();
+
+ //serialize to type B and verify all fields exist
+ TestMissingFieldsB msgb = TestMissingFieldsB.ParseFrom(msga.ToByteArray());
+ Assert.AreEqual(1001, msgb.Id);
+ Assert.AreEqual("Name", msgb.Name);
+ Assert.AreEqual(1, msgb.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual(suba.ToString(),
+ TestMissingFieldsA.Types.SubA.ParseFrom(
+ msgb.UnknownFields[TestMissingFieldsA.TestAFieldNumber].LengthDelimitedList[0]).ToString
+ ());
+
+ //serializes exactly the same (at least for this simple example)
+ Assert.AreEqual(msga.ToByteArray(), msgb.ToByteArray());
+ Assert.AreEqual(msga, TestMissingFieldsA.ParseFrom(msgb.ToByteArray()));
+
+ //now re-create an exact copy of A from serialized B
+ TestMissingFieldsA copya = TestMissingFieldsA.ParseFrom(msgb.ToByteArray());
+ Assert.AreEqual(msga, copya);
+ Assert.AreEqual(1001, copya.Id);
+ Assert.AreEqual("Name", copya.Name);
+ Assert.AreEqual(suba, copya.TestA);
+
+ //Now we modify B... and try again
+ TestMissingFieldsB.Types.SubB subb =
+ TestMissingFieldsB.Types.SubB.CreateBuilder().AddValues("test-b").Build();
+ msgb = msgb.ToBuilder().SetTestB(subb).Build();
+ //Does B still have the missing field?
+ Assert.AreEqual(1, msgb.UnknownFields.FieldDictionary.Count);
+
+ //Convert back to A and see if all fields are there?
+ copya = TestMissingFieldsA.ParseFrom(msgb.ToByteArray());
+ Assert.AreNotEqual(msga, copya);
+ Assert.AreEqual(1001, copya.Id);
+ Assert.AreEqual("Name", copya.Name);
+ Assert.AreEqual(suba, copya.TestA);
+ Assert.AreEqual(1, copya.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual(subb.ToByteArray(),
+ copya.UnknownFields[TestMissingFieldsB.TestBFieldNumber].LengthDelimitedList[0].ToByteArray());
+
+ //Lastly we can even still trip back to type B and see all fields:
+ TestMissingFieldsB copyb = TestMissingFieldsB.ParseFrom(copya.ToByteArray());
+ Assert.AreEqual(copya.ToByteArray().Length, copyb.ToByteArray().Length); //not exact order.
+ Assert.AreEqual(1001, copyb.Id);
+ Assert.AreEqual("Name", copyb.Name);
+ Assert.AreEqual(subb, copyb.TestB);
+ Assert.AreEqual(1, copyb.UnknownFields.FieldDictionary.Count);
+ }
+
+ [Test]
+ public void TestRestoreFromOtherType()
+ {
+ TestInteropPerson person = TestInteropPerson.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .SetEmail("abc@123.com")
+ .AddRangeCodes(new[] {1, 2, 3})
+ .AddPhone(TestInteropPerson.Types.PhoneNumber.CreateBuilder().SetNumber("555-1234").Build())
+ .AddPhone(TestInteropPerson.Types.PhoneNumber.CreateBuilder().SetNumber("555-5678").Build())
+ .AddAddresses(
+ TestInteropPerson.Types.Addresses.CreateBuilder().SetAddress("123 Seseme").SetCity("Wonderland").
+ SetState("NA").SetZip(12345).Build())
+ .SetExtension(UnittestExtrasFull.EmployeeId,
+ TestInteropEmployeeId.CreateBuilder().SetNumber("123").Build())
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ TestEmptyMessage temp = TestEmptyMessage.ParseFrom(person.ToByteArray());
+ Assert.AreEqual(7, temp.UnknownFields.FieldDictionary.Count);
+ temp = temp.ToBuilder().Build();
+ Assert.AreEqual(7, temp.UnknownFields.FieldDictionary.Count);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnittestExtrasFull.RegisterAllExtensions(registry);
+
+ TestInteropPerson copy = TestInteropPerson.ParseFrom(temp.ToByteArray(), registry);
+ Assert.AreEqual(person, copy);
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/Properties/AppManifest.xml b/csharp/src/ProtocolBuffersLite.Test/Properties/AppManifest.xml
new file mode 100644
index 00000000..a9552327
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/Properties/AppManifest.xml
@@ -0,0 +1,6 @@
+<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+>
+ <Deployment.Parts>
+ </Deployment.Parts>
+</Deployment>
diff --git a/csharp/src/ProtocolBuffersLite.Test/Properties/OutOfBrowserSettings.xml b/csharp/src/ProtocolBuffersLite.Test/Properties/OutOfBrowserSettings.xml
new file mode 100644
index 00000000..634f44bf
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/Properties/OutOfBrowserSettings.xml
@@ -0,0 +1,7 @@
+<OutOfBrowserSettings ShortName="ProtocolBuffers.Test" EnableGPUAcceleration="False" ShowInstallMenuItem="False">
+ <OutOfBrowserSettings.Blurb>ProtocolBuffers.Test</OutOfBrowserSettings.Blurb>
+ <OutOfBrowserSettings.WindowSettings>
+ <WindowSettings Title="ProtocolBuffers.Test" />
+ </OutOfBrowserSettings.WindowSettings>
+ <OutOfBrowserSettings.Icons />
+</OutOfBrowserSettings> \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj b/csharp/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
new file mode 100644
index 00000000..4d813f83
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{EE01ED24-3750-4567-9A23-1DB676A15610}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffersLite.Test</AssemblyName>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>..\..\keys\Google.ProtocolBuffers.snk</AssemblyOriginatorKeyFile>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <TargetFrameworkProfile>
+ </TargetFrameworkProfile>
+ <NuGetPackageImportStamp>
+ </NuGetPackageImportStamp>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DefineConstants>DEBUG;TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DefineConstants>TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="nunit.core, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="nunit.core.interfaces, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.interfaces.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="nunit.util, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\nunit.util.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="NUnit.VisualStudio.TestAdapter, Version=2.0.0.0, Culture=neutral, PublicKeyToken=4cb40d35494691ac, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\NUnit.VisualStudio.TestAdapter.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\ProtocolBuffers.Test\Properties\AssemblyInfo.cs">
+ <Link>Properties\AssemblyInfo.cs</Link>
+ </Compile>
+ <Compile Include="AbstractBuilderLiteTest.cs" />
+ <Compile Include="AbstractMessageLiteTest.cs" />
+ <Compile Include="ExtendableBuilderLiteTest.cs" />
+ <Compile Include="ExtendableMessageLiteTest.cs" />
+ <Compile Include="LiteTest.cs" />
+ <Compile Include="TestLiteByApi.cs" />
+ <Compile Include="TestProtos\UnittestExtrasLite.cs" />
+ <Compile Include="TestProtos\UnittestImportLite.cs" />
+ <Compile Include="TestProtos\UnittestImportPublicLite.cs" />
+ <Compile Include="TestProtos\UnittestLite.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers.Serialization\ProtocolBuffersLite.Serialization.csproj">
+ <Project>{E067A59D-9D0A-4A1F-92B1-38E4457241D1}</Project>
+ <Name>ProtocolBuffersLite.Serialization</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffersLite.csproj">
+ <Project>{6969BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffersLite</Name>
+ <Private>True</Private>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj b/csharp/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj
new file mode 100644
index 00000000..c42ab93c
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{EEFFED24-3750-4567-9A23-1DB676A15610}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffersMixedLite.Test</AssemblyName>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>..\..\keys\Google.ProtocolBuffers.snk</AssemblyOriginatorKeyFile>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <TargetFrameworkProfile>
+ </TargetFrameworkProfile>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug</OutputPath>
+ <IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
+ <DefineConstants>DEBUG;TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release</OutputPath>
+ <IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
+ <DefineConstants>TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="nunit.core, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="nunit.core.interfaces, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.interfaces.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="nunit.util, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\nunit.util.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="NUnit.VisualStudio.TestAdapter, Version=2.0.0.0, Culture=neutral, PublicKeyToken=4cb40d35494691ac, processorArchitecture=MSIL">
+ <HintPath>..\packages\NUnitTestAdapter.2.0.0\lib\NUnit.VisualStudio.TestAdapter.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\ProtocolBuffers.Test\Properties\AssemblyInfo.cs">
+ <Link>Properties\AssemblyInfo.cs</Link>
+ </Compile>
+ <Compile Include="AbstractBuilderLiteTest.cs" />
+ <Compile Include="AbstractMessageLiteTest.cs" />
+ <Compile Include="ExtendableBuilderLiteTest.cs" />
+ <Compile Include="ExtendableMessageLiteTest.cs" />
+ <Compile Include="InteropLiteTest.cs" />
+ <Compile Include="LiteTest.cs" />
+ <Compile Include="MissingFieldAndExtensionTest.cs" />
+ <Compile Include="TestLiteByApi.cs" />
+ <Compile Include="TestProtos\Unittest.cs" />
+ <Compile Include="TestProtos\UnittestExtrasFull.cs" />
+ <Compile Include="TestProtos\UnittestExtrasLite.cs" />
+ <Compile Include="TestProtos\UnittestImport.cs" />
+ <Compile Include="TestProtos\UnittestImportLite.cs" />
+ <Compile Include="TestProtos\UnittestImportPublic.cs" />
+ <Compile Include="TestProtos\UnittestImportPublicLite.cs" />
+ <Compile Include="TestProtos\UnittestLite.cs" />
+ <Compile Include="TestProtos\UnittestLiteImportsNonlite.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
+ <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffers</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/TestLiteByApi.cs b/csharp/src/ProtocolBuffersLite.Test/TestLiteByApi.cs
new file mode 100644
index 00000000..9c864618
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/TestLiteByApi.cs
@@ -0,0 +1,120 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers
+{
+ public class TestLiteByApi
+ {
+ [Test]
+ public void TestAllTypesEquality()
+ {
+ TestAllTypesLite msg = TestAllTypesLite.DefaultInstance;
+ TestAllTypesLite copy = msg.ToBuilder().Build();
+ Assert.AreEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsTrue(msg.Equals(copy));
+ msg = msg.ToBuilder().SetOptionalString("Hi").Build();
+ Assert.AreNotEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsFalse(msg.Equals(copy));
+ copy = copy.ToBuilder().SetOptionalString("Hi").Build();
+ Assert.AreEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsTrue(msg.Equals(copy));
+ }
+
+ [Test]
+ public void TestEqualityOnExtensions()
+ {
+ TestAllExtensionsLite msg = TestAllExtensionsLite.DefaultInstance;
+ TestAllExtensionsLite copy = msg.ToBuilder().Build();
+ Assert.AreEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsTrue(msg.Equals(copy));
+ msg = msg.ToBuilder().SetExtension(UnittestLite.OptionalStringExtensionLite, "Hi").Build();
+ Assert.AreNotEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsFalse(msg.Equals(copy));
+ copy = copy.ToBuilder().SetExtension(UnittestLite.OptionalStringExtensionLite, "Hi").Build();
+ Assert.AreEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsTrue(msg.Equals(copy));
+ }
+
+ [Test]
+ public void TestAllTypesToString()
+ {
+ TestAllTypesLite msg = TestAllTypesLite.DefaultInstance;
+ TestAllTypesLite copy = msg.ToBuilder().Build();
+ Assert.AreEqual(msg.ToString(), copy.ToString());
+ Assert.AreEqual(0, msg.ToString().Length);
+ msg = msg.ToBuilder().SetOptionalInt32(-1).Build();
+ Assert.AreEqual("optional_int32: -1", msg.ToString().TrimEnd());
+ msg = msg.ToBuilder().SetOptionalString("abc123").Build();
+ Assert.AreEqual("optional_int32: -1\noptional_string: \"abc123\"",
+ msg.ToString().Replace("\r", "").TrimEnd());
+ }
+
+ [Test]
+ public void TestAllTypesDefaultedRoundTrip()
+ {
+ TestAllTypesLite msg = TestAllTypesLite.DefaultInstance;
+ Assert.IsTrue(msg.IsInitialized);
+ TestAllTypesLite copy = TestAllTypesLite.CreateBuilder().MergeFrom(msg.ToByteArray()).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestAllTypesModifiedRoundTrip()
+ {
+ TestAllTypesLite msg = TestAllTypesLite.DefaultInstance;
+ msg.ToBuilder()
+ .SetOptionalBool(true)
+ .SetOptionalCord("Hi")
+ .SetOptionalDouble(1.123)
+ .SetOptionalForeignEnum(ForeignEnumLite.FOREIGN_LITE_FOO)
+ .SetOptionalForeignMessage(ForeignMessageLite.CreateBuilder().SetC('c').Build())
+ .SetOptionalGroup(TestAllTypesLite.Types.OptionalGroup.CreateBuilder().SetA('a').Build())
+ .SetOptionalImportEnum(ImportEnumLite.IMPORT_LITE_BAR)
+ .SetOptionalInt32(32)
+ .SetOptionalInt64(64)
+ .SetOptionalNestedEnum(TestAllTypesLite.Types.NestedEnum.FOO)
+ .SetOptionalString("SetOptionalString")
+ .AddRepeatedGroup(TestAllTypesLite.Types.RepeatedGroup.CreateBuilder().SetA('a').Build())
+ .AddRepeatedGroup(TestAllTypesLite.Types.RepeatedGroup.CreateBuilder().SetA('A').Build())
+ ;
+ TestAllTypesLite copy = TestAllTypesLite.CreateBuilder().MergeFrom(msg.ToByteArray()).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+ }
+} \ No newline at end of file
diff --git a/csharp/src/ProtocolBuffersLite.Test/TestProtos/Unittest.cs b/csharp/src/ProtocolBuffersLite.Test/TestProtos/Unittest.cs
new file mode 100644
index 00000000..d3441937
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/TestProtos/Unittest.cs
@@ -0,0 +1,33878 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Unittest {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalGroupExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalPublicImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalLazyMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedGroupExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedLazyMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.OneofBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionString);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionInt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.PackedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.NestedStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Single);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.OptionalExt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.RepeatedExt);
+ }
+ #endregion
+ #region Extensions
+ public const int OptionalInt32ExtensionFieldNumber = 1;
+ public static pb::GeneratedExtensionBase<int> OptionalInt32Extension;
+ public const int OptionalInt64ExtensionFieldNumber = 2;
+ public static pb::GeneratedExtensionBase<long> OptionalInt64Extension;
+ public const int OptionalUint32ExtensionFieldNumber = 3;
+ public static pb::GeneratedExtensionBase<uint> OptionalUint32Extension;
+ public const int OptionalUint64ExtensionFieldNumber = 4;
+ public static pb::GeneratedExtensionBase<ulong> OptionalUint64Extension;
+ public const int OptionalSint32ExtensionFieldNumber = 5;
+ public static pb::GeneratedExtensionBase<int> OptionalSint32Extension;
+ public const int OptionalSint64ExtensionFieldNumber = 6;
+ public static pb::GeneratedExtensionBase<long> OptionalSint64Extension;
+ public const int OptionalFixed32ExtensionFieldNumber = 7;
+ public static pb::GeneratedExtensionBase<uint> OptionalFixed32Extension;
+ public const int OptionalFixed64ExtensionFieldNumber = 8;
+ public static pb::GeneratedExtensionBase<ulong> OptionalFixed64Extension;
+ public const int OptionalSfixed32ExtensionFieldNumber = 9;
+ public static pb::GeneratedExtensionBase<int> OptionalSfixed32Extension;
+ public const int OptionalSfixed64ExtensionFieldNumber = 10;
+ public static pb::GeneratedExtensionBase<long> OptionalSfixed64Extension;
+ public const int OptionalFloatExtensionFieldNumber = 11;
+ public static pb::GeneratedExtensionBase<float> OptionalFloatExtension;
+ public const int OptionalDoubleExtensionFieldNumber = 12;
+ public static pb::GeneratedExtensionBase<double> OptionalDoubleExtension;
+ public const int OptionalBoolExtensionFieldNumber = 13;
+ public static pb::GeneratedExtensionBase<bool> OptionalBoolExtension;
+ public const int OptionalStringExtensionFieldNumber = 14;
+ public static pb::GeneratedExtensionBase<string> OptionalStringExtension;
+ public const int OptionalBytesExtensionFieldNumber = 15;
+ public static pb::GeneratedExtensionBase<pb::ByteString> OptionalBytesExtension;
+ public const int OptionalGroupExtensionFieldNumber = 16;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension> OptionalGroupExtension;
+ public const int OptionalNestedMessageExtensionFieldNumber = 18;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> OptionalNestedMessageExtension;
+ public const int OptionalForeignMessageExtensionFieldNumber = 19;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> OptionalForeignMessageExtension;
+ public const int OptionalImportMessageExtensionFieldNumber = 20;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportMessage> OptionalImportMessageExtension;
+ public const int OptionalNestedEnumExtensionFieldNumber = 21;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> OptionalNestedEnumExtension;
+ public const int OptionalForeignEnumExtensionFieldNumber = 22;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> OptionalForeignEnumExtension;
+ public const int OptionalImportEnumExtensionFieldNumber = 23;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportEnum> OptionalImportEnumExtension;
+ public const int OptionalStringPieceExtensionFieldNumber = 24;
+ public static pb::GeneratedExtensionBase<string> OptionalStringPieceExtension;
+ public const int OptionalCordExtensionFieldNumber = 25;
+ public static pb::GeneratedExtensionBase<string> OptionalCordExtension;
+ public const int OptionalPublicImportMessageExtensionFieldNumber = 26;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage> OptionalPublicImportMessageExtension;
+ public const int OptionalLazyMessageExtensionFieldNumber = 27;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> OptionalLazyMessageExtension;
+ public const int RepeatedInt32ExtensionFieldNumber = 31;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedInt32Extension;
+ public const int RepeatedInt64ExtensionFieldNumber = 32;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedInt64Extension;
+ public const int RepeatedUint32ExtensionFieldNumber = 33;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> RepeatedUint32Extension;
+ public const int RepeatedUint64ExtensionFieldNumber = 34;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> RepeatedUint64Extension;
+ public const int RepeatedSint32ExtensionFieldNumber = 35;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedSint32Extension;
+ public const int RepeatedSint64ExtensionFieldNumber = 36;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedSint64Extension;
+ public const int RepeatedFixed32ExtensionFieldNumber = 37;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> RepeatedFixed32Extension;
+ public const int RepeatedFixed64ExtensionFieldNumber = 38;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> RepeatedFixed64Extension;
+ public const int RepeatedSfixed32ExtensionFieldNumber = 39;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedSfixed32Extension;
+ public const int RepeatedSfixed64ExtensionFieldNumber = 40;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedSfixed64Extension;
+ public const int RepeatedFloatExtensionFieldNumber = 41;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> RepeatedFloatExtension;
+ public const int RepeatedDoubleExtensionFieldNumber = 42;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> RepeatedDoubleExtension;
+ public const int RepeatedBoolExtensionFieldNumber = 43;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> RepeatedBoolExtension;
+ public const int RepeatedStringExtensionFieldNumber = 44;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedStringExtension;
+ public const int RepeatedBytesExtensionFieldNumber = 45;
+ public static pb::GeneratedExtensionBase<scg::IList<pb::ByteString>> RepeatedBytesExtension;
+ public const int RepeatedGroupExtensionFieldNumber = 46;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension>> RepeatedGroupExtension;
+ public const int RepeatedNestedMessageExtensionFieldNumber = 48;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>> RepeatedNestedMessageExtension;
+ public const int RepeatedForeignMessageExtensionFieldNumber = 49;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>> RepeatedForeignMessageExtension;
+ public const int RepeatedImportMessageExtensionFieldNumber = 50;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportMessage>> RepeatedImportMessageExtension;
+ public const int RepeatedNestedEnumExtensionFieldNumber = 51;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>> RepeatedNestedEnumExtension;
+ public const int RepeatedForeignEnumExtensionFieldNumber = 52;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> RepeatedForeignEnumExtension;
+ public const int RepeatedImportEnumExtensionFieldNumber = 53;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportEnum>> RepeatedImportEnumExtension;
+ public const int RepeatedStringPieceExtensionFieldNumber = 54;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedStringPieceExtension;
+ public const int RepeatedCordExtensionFieldNumber = 55;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedCordExtension;
+ public const int RepeatedLazyMessageExtensionFieldNumber = 57;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>> RepeatedLazyMessageExtension;
+ public const int DefaultInt32ExtensionFieldNumber = 61;
+ public static pb::GeneratedExtensionBase<int> DefaultInt32Extension;
+ public const int DefaultInt64ExtensionFieldNumber = 62;
+ public static pb::GeneratedExtensionBase<long> DefaultInt64Extension;
+ public const int DefaultUint32ExtensionFieldNumber = 63;
+ public static pb::GeneratedExtensionBase<uint> DefaultUint32Extension;
+ public const int DefaultUint64ExtensionFieldNumber = 64;
+ public static pb::GeneratedExtensionBase<ulong> DefaultUint64Extension;
+ public const int DefaultSint32ExtensionFieldNumber = 65;
+ public static pb::GeneratedExtensionBase<int> DefaultSint32Extension;
+ public const int DefaultSint64ExtensionFieldNumber = 66;
+ public static pb::GeneratedExtensionBase<long> DefaultSint64Extension;
+ public const int DefaultFixed32ExtensionFieldNumber = 67;
+ public static pb::GeneratedExtensionBase<uint> DefaultFixed32Extension;
+ public const int DefaultFixed64ExtensionFieldNumber = 68;
+ public static pb::GeneratedExtensionBase<ulong> DefaultFixed64Extension;
+ public const int DefaultSfixed32ExtensionFieldNumber = 69;
+ public static pb::GeneratedExtensionBase<int> DefaultSfixed32Extension;
+ public const int DefaultSfixed64ExtensionFieldNumber = 70;
+ public static pb::GeneratedExtensionBase<long> DefaultSfixed64Extension;
+ public const int DefaultFloatExtensionFieldNumber = 71;
+ public static pb::GeneratedExtensionBase<float> DefaultFloatExtension;
+ public const int DefaultDoubleExtensionFieldNumber = 72;
+ public static pb::GeneratedExtensionBase<double> DefaultDoubleExtension;
+ public const int DefaultBoolExtensionFieldNumber = 73;
+ public static pb::GeneratedExtensionBase<bool> DefaultBoolExtension;
+ public const int DefaultStringExtensionFieldNumber = 74;
+ public static pb::GeneratedExtensionBase<string> DefaultStringExtension;
+ public const int DefaultBytesExtensionFieldNumber = 75;
+ public static pb::GeneratedExtensionBase<pb::ByteString> DefaultBytesExtension;
+ public const int DefaultNestedEnumExtensionFieldNumber = 81;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> DefaultNestedEnumExtension;
+ public const int DefaultForeignEnumExtensionFieldNumber = 82;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> DefaultForeignEnumExtension;
+ public const int DefaultImportEnumExtensionFieldNumber = 83;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportEnum> DefaultImportEnumExtension;
+ public const int DefaultStringPieceExtensionFieldNumber = 84;
+ public static pb::GeneratedExtensionBase<string> DefaultStringPieceExtension;
+ public const int DefaultCordExtensionFieldNumber = 85;
+ public static pb::GeneratedExtensionBase<string> DefaultCordExtension;
+ public const int OneofUint32ExtensionFieldNumber = 111;
+ public static pb::GeneratedExtensionBase<uint> OneofUint32Extension;
+ public const int OneofNestedMessageExtensionFieldNumber = 112;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> OneofNestedMessageExtension;
+ public const int OneofStringExtensionFieldNumber = 113;
+ public static pb::GeneratedExtensionBase<string> OneofStringExtension;
+ public const int OneofBytesExtensionFieldNumber = 114;
+ public static pb::GeneratedExtensionBase<pb::ByteString> OneofBytesExtension;
+ public const int MyExtensionStringFieldNumber = 50;
+ public static pb::GeneratedExtensionBase<string> MyExtensionString;
+ public const int MyExtensionIntFieldNumber = 5;
+ public static pb::GeneratedExtensionBase<int> MyExtensionInt;
+ public const int PackedInt32ExtensionFieldNumber = 90;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedInt32Extension;
+ public const int PackedInt64ExtensionFieldNumber = 91;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedInt64Extension;
+ public const int PackedUint32ExtensionFieldNumber = 92;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> PackedUint32Extension;
+ public const int PackedUint64ExtensionFieldNumber = 93;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> PackedUint64Extension;
+ public const int PackedSint32ExtensionFieldNumber = 94;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedSint32Extension;
+ public const int PackedSint64ExtensionFieldNumber = 95;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedSint64Extension;
+ public const int PackedFixed32ExtensionFieldNumber = 96;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> PackedFixed32Extension;
+ public const int PackedFixed64ExtensionFieldNumber = 97;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> PackedFixed64Extension;
+ public const int PackedSfixed32ExtensionFieldNumber = 98;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedSfixed32Extension;
+ public const int PackedSfixed64ExtensionFieldNumber = 99;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedSfixed64Extension;
+ public const int PackedFloatExtensionFieldNumber = 100;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> PackedFloatExtension;
+ public const int PackedDoubleExtensionFieldNumber = 101;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> PackedDoubleExtension;
+ public const int PackedBoolExtensionFieldNumber = 102;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> PackedBoolExtension;
+ public const int PackedEnumExtensionFieldNumber = 103;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> PackedEnumExtension;
+ public const int UnpackedInt32ExtensionFieldNumber = 90;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> UnpackedInt32Extension;
+ public const int UnpackedInt64ExtensionFieldNumber = 91;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> UnpackedInt64Extension;
+ public const int UnpackedUint32ExtensionFieldNumber = 92;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> UnpackedUint32Extension;
+ public const int UnpackedUint64ExtensionFieldNumber = 93;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> UnpackedUint64Extension;
+ public const int UnpackedSint32ExtensionFieldNumber = 94;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> UnpackedSint32Extension;
+ public const int UnpackedSint64ExtensionFieldNumber = 95;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> UnpackedSint64Extension;
+ public const int UnpackedFixed32ExtensionFieldNumber = 96;
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> UnpackedFixed32Extension;
+ public const int UnpackedFixed64ExtensionFieldNumber = 97;
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> UnpackedFixed64Extension;
+ public const int UnpackedSfixed32ExtensionFieldNumber = 98;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> UnpackedSfixed32Extension;
+ public const int UnpackedSfixed64ExtensionFieldNumber = 99;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> UnpackedSfixed64Extension;
+ public const int UnpackedFloatExtensionFieldNumber = 100;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> UnpackedFloatExtension;
+ public const int UnpackedDoubleExtensionFieldNumber = 101;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> UnpackedDoubleExtension;
+ public const int UnpackedBoolExtensionFieldNumber = 102;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> UnpackedBoolExtension;
+ public const int UnpackedEnumExtensionFieldNumber = 103;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> UnpackedEnumExtension;
+ #endregion
+
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder> internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder> internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder> internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder> internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields, global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Builder> internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ForeignMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder> internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReservedFields__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReservedFields, global::Google.ProtocolBuffers.TestProtos.TestReservedFields.Builder> internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllExtensions, global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Builder> internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Builder> internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Builder> internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedExtension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedExtension, global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Builder> internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequired__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequired, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder> internal__static_protobuf_unittest_TestRequired__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredForeign__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign, global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Builder> internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestForeignNested__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestForeignNested, global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Builder> internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmptyMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Builder> internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Builder> internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges, global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Builder> internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber, global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Builder> internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage, global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder> internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder> internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder> internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Builder> internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder> internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder> internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEagerMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEagerMessage, global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.Builder> internal__static_protobuf_unittest_TestEagerMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestLazyMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestLazyMessage, global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.Builder> internal__static_protobuf_unittest_TestLazyMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Builder> internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames, global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Builder> internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Builder> internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues, global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Builder> internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_SparseEnumMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage, global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.Builder> internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneString__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneString, global::Google.ProtocolBuffers.TestProtos.OneString.Builder> internal__static_protobuf_unittest_OneString__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_MoreString__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreString, global::Google.ProtocolBuffers.TestProtos.MoreString.Builder> internal__static_protobuf_unittest_MoreString__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneBytes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneBytes, global::Google.ProtocolBuffers.TestProtos.OneBytes.Builder> internal__static_protobuf_unittest_OneBytes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_MoreBytes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreBytes, global::Google.ProtocolBuffers.TestProtos.MoreBytes.Builder> internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Int32Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int32Message, global::Google.ProtocolBuffers.TestProtos.Int32Message.Builder> internal__static_protobuf_unittest_Int32Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Uint32Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint32Message, global::Google.ProtocolBuffers.TestProtos.Uint32Message.Builder> internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Int64Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int64Message, global::Google.ProtocolBuffers.TestProtos.Int64Message.Builder> internal__static_protobuf_unittest_Int64Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_Uint64Message__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint64Message, global::Google.ProtocolBuffers.TestProtos.Uint64Message.Builder> internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BoolMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BoolMessage, global::Google.ProtocolBuffers.TestProtos.BoolMessage.Builder> internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof, global::Google.ProtocolBuffers.TestProtos.TestOneof.Builder> internal__static_protobuf_unittest_TestOneof__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder> internal__static_protobuf_unittest_TestOneof_FooGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Builder> internal__static_protobuf_unittest_TestOneofBackwardsCompatible__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder> internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Builder> internal__static_protobuf_unittest_TestOneof2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder> internal__static_protobuf_unittest_TestOneof2_FooGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestOneof2_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredOneof__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Builder> internal__static_protobuf_unittest_TestRequiredOneof__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedTypes, global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Builder> internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes, global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Builder> internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Builder> internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.Builder> internal__static_protobuf_unittest_TestUnpackedExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Builder> internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder> internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes, global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Builder> internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Builder> internal__static_protobuf_unittest_TestParsingMerge__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder> internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder> internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage, global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.Builder> internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooRequest, global::Google.ProtocolBuffers.TestProtos.FooRequest.Builder> internal__static_protobuf_unittest_FooRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder> internal__static_protobuf_unittest_FooResponse__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooClientMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooClientMessage, global::Google.ProtocolBuffers.TestProtos.FooClientMessage.Builder> internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooServerMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooServerMessage, global::Google.ProtocolBuffers.TestProtos.FooServerMessage.Builder> internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarRequest, global::Google.ProtocolBuffers.TestProtos.BarRequest.Builder> internal__static_protobuf_unittest_BarRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder> internal__static_protobuf_unittest_BarResponse__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static Unittest() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Ch5nb29nbGUvcHJvdG9idWYvdW5pdHRlc3QucHJvdG8SEXByb3RvYnVmX3Vu",
+ "aXR0ZXN0GiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0LnByb3Rv",
+ "Iu0YCgxUZXN0QWxsVHlwZXMSFgoOb3B0aW9uYWxfaW50MzIYASABKAUSFgoO",
+ "b3B0aW9uYWxfaW50NjQYAiABKAMSFwoPb3B0aW9uYWxfdWludDMyGAMgASgN",
+ "EhcKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBBIXCg9vcHRpb25hbF9zaW50MzIY",
+ "BSABKBESFwoPb3B0aW9uYWxfc2ludDY0GAYgASgSEhgKEG9wdGlvbmFsX2Zp",
+ "eGVkMzIYByABKAcSGAoQb3B0aW9uYWxfZml4ZWQ2NBgIIAEoBhIZChFvcHRp",
+ "b25hbF9zZml4ZWQzMhgJIAEoDxIZChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEo",
+ "EBIWCg5vcHRpb25hbF9mbG9hdBgLIAEoAhIXCg9vcHRpb25hbF9kb3VibGUY",
+ "DCABKAESFQoNb3B0aW9uYWxfYm9vbBgNIAEoCBIXCg9vcHRpb25hbF9zdHJp",
+ "bmcYDiABKAkSFgoOb3B0aW9uYWxfYnl0ZXMYDyABKAwSRAoNb3B0aW9uYWxn",
+ "cm91cBgQIAEoCjItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5P",
+ "cHRpb25hbEdyb3VwEk4KF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgL",
+ "Mi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3Nh",
+ "Z2USQwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMiEucHJvdG9i",
+ "dWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USSAoXb3B0aW9uYWxfaW1wb3J0",
+ "X21lc3NhZ2UYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1w",
+ "b3J0TWVzc2FnZRJIChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIqLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtEj0KFW9w",
+ "dGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIeLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LkZvcmVpZ25FbnVtEkIKFG9wdGlvbmFsX2ltcG9ydF9lbnVtGBcgASgOMiQu",
+ "cHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW0SIQoVb3B0aW9u",
+ "YWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAhIZCg1vcHRpb25hbF9jb3JkGBkg",
+ "ASgJQgIIARJVCh5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiAB",
+ "KAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVz",
+ "c2FnZRJQChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyLS5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUICKAESFgoO",
+ "cmVwZWF0ZWRfaW50MzIYHyADKAUSFgoOcmVwZWF0ZWRfaW50NjQYICADKAMS",
+ "FwoPcmVwZWF0ZWRfdWludDMyGCEgAygNEhcKD3JlcGVhdGVkX3VpbnQ2NBgi",
+ "IAMoBBIXCg9yZXBlYXRlZF9zaW50MzIYIyADKBESFwoPcmVwZWF0ZWRfc2lu",
+ "dDY0GCQgAygSEhgKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAcSGAoQcmVwZWF0",
+ "ZWRfZml4ZWQ2NBgmIAMoBhIZChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoDxIZ",
+ "ChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEBIWCg5yZXBlYXRlZF9mbG9hdBgp",
+ "IAMoAhIXCg9yZXBlYXRlZF9kb3VibGUYKiADKAESFQoNcmVwZWF0ZWRfYm9v",
+ "bBgrIAMoCBIXCg9yZXBlYXRlZF9zdHJpbmcYLCADKAkSFgoOcmVwZWF0ZWRf",
+ "Ynl0ZXMYLSADKAwSRAoNcmVwZWF0ZWRncm91cBguIAMoCjItLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwEk4KF3JlcGVh",
+ "dGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMi0ucHJvdG9idWZfdW5pdHRlc3Qu",
+ "VGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2USQwoYcmVwZWF0ZWRfZm9yZWln",
+ "bl9tZXNzYWdlGDEgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1l",
+ "c3NhZ2USSAoXcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2UYMiADKAsyJy5wcm90",
+ "b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0TWVzc2FnZRJIChRyZXBlYXRl",
+ "ZF9uZXN0ZWRfZW51bRgzIAMoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxUeXBlcy5OZXN0ZWRFbnVtEj0KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0",
+ "IAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEkIKFHJlcGVh",
+ "dGVkX2ltcG9ydF9lbnVtGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1w",
+ "b3J0LkltcG9ydEVudW0SIQoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJ",
+ "QgIIAhIZCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIARJQChVyZXBlYXRlZF9s",
+ "YXp5X21lc3NhZ2UYOSADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "VHlwZXMuTmVzdGVkTWVzc2FnZUICKAESGQoNZGVmYXVsdF9pbnQzMhg9IAEo",
+ "BToCNDESGQoNZGVmYXVsdF9pbnQ2NBg+IAEoAzoCNDISGgoOZGVmYXVsdF91",
+ "aW50MzIYPyABKA06AjQzEhoKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NBIb",
+ "Cg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1EhoKDmRlZmF1bHRfc2ludDY0",
+ "GEIgASgSOgI0NhIbCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3EhsKD2Rl",
+ "ZmF1bHRfZml4ZWQ2NBhEIAEoBjoCNDgSHAoQZGVmYXVsdF9zZml4ZWQzMhhF",
+ "IAEoDzoCNDkSHQoQZGVmYXVsdF9zZml4ZWQ2NBhGIAEoEDoDLTUwEhsKDWRl",
+ "ZmF1bHRfZmxvYXQYRyABKAI6BDUxLjUSHQoOZGVmYXVsdF9kb3VibGUYSCAB",
+ "KAE6BTUyMDAwEhoKDGRlZmF1bHRfYm9vbBhJIAEoCDoEdHJ1ZRIdCg5kZWZh",
+ "dWx0X3N0cmluZxhKIAEoCToFaGVsbG8SHAoNZGVmYXVsdF9ieXRlcxhLIAEo",
+ "DDoFd29ybGQSTAoTZGVmYXVsdF9uZXN0ZWRfZW51bRhRIAEoDjIqLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOgNCQVISSQoU",
+ "ZGVmYXVsdF9mb3JlaWduX2VudW0YUiABKA4yHi5wcm90b2J1Zl91bml0dGVz",
+ "dC5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVISTQoTZGVmYXVsdF9pbXBvcnRf",
+ "ZW51bRhTIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRF",
+ "bnVtOgpJTVBPUlRfQkFSEiUKFGRlZmF1bHRfc3RyaW5nX3BpZWNlGFQgASgJ",
+ "OgNhYmNCAggCEh0KDGRlZmF1bHRfY29yZBhVIAEoCToDMTIzQgIIARIWCgxv",
+ "bmVvZl91aW50MzIYbyABKA1IABJNChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhw",
+ "IAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRN",
+ "ZXNzYWdlSAASFgoMb25lb2Zfc3RyaW5nGHEgASgJSAASFQoLb25lb2ZfYnl0",
+ "ZXMYciABKAxIABobCg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFGhoKDU9w",
+ "dGlvbmFsR3JvdXASCQoBYRgRIAEoBRoaCg1SZXBlYXRlZEdyb3VwEgkKAWEY",
+ "LyABKAUiOQoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQ",
+ "AxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCK7AQoSTmVzdGVk",
+ "VGVzdEFsbFR5cGVzEjQKBWNoaWxkGAEgASgLMiUucHJvdG9idWZfdW5pdHRl",
+ "c3QuTmVzdGVkVGVzdEFsbFR5cGVzEjAKB3BheWxvYWQYAiABKAsyHy5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSPQoOcmVwZWF0ZWRfY2hpbGQY",
+ "AyADKAsyJS5wcm90b2J1Zl91bml0dGVzdC5OZXN0ZWRUZXN0QWxsVHlwZXMi",
+ "NAoUVGVzdERlcHJlY2F0ZWRGaWVsZHMSHAoQZGVwcmVjYXRlZF9pbnQzMhgB",
+ "IAEoBUICGAEiGwoORm9yZWlnbk1lc3NhZ2USCQoBYxgBIAEoBSIwChJUZXN0",
+ "UmVzZXJ2ZWRGaWVsZHNKBAgCEANKBAgPEBBKBAgJEAxSA2JhclIDYmF6Ih0K",
+ "EVRlc3RBbGxFeHRlbnNpb25zKggIARCAgICAAiIkChdPcHRpb25hbEdyb3Vw",
+ "X2V4dGVuc2lvbhIJCgFhGBEgASgFIiQKF1JlcGVhdGVkR3JvdXBfZXh0ZW5z",
+ "aW9uEgkKAWEYLyABKAUimAEKE1Rlc3ROZXN0ZWRFeHRlbnNpb24yOQoEdGVz",
+ "dBIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGOoHIAEo",
+ "CToEdGVzdDJGChduZXN0ZWRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGOsHIAEoCSLVBQoMVGVzdFJl",
+ "cXVpcmVkEgkKAWEYASACKAUSDgoGZHVtbXkyGAIgASgFEgkKAWIYAyACKAUS",
+ "DgoGZHVtbXk0GAQgASgFEg4KBmR1bW15NRgFIAEoBRIOCgZkdW1teTYYBiAB",
+ "KAUSDgoGZHVtbXk3GAcgASgFEg4KBmR1bW15OBgIIAEoBRIOCgZkdW1teTkY",
+ "CSABKAUSDwoHZHVtbXkxMBgKIAEoBRIPCgdkdW1teTExGAsgASgFEg8KB2R1",
+ "bW15MTIYDCABKAUSDwoHZHVtbXkxMxgNIAEoBRIPCgdkdW1teTE0GA4gASgF",
+ "Eg8KB2R1bW15MTUYDyABKAUSDwoHZHVtbXkxNhgQIAEoBRIPCgdkdW1teTE3",
+ "GBEgASgFEg8KB2R1bW15MTgYEiABKAUSDwoHZHVtbXkxORgTIAEoBRIPCgdk",
+ "dW1teTIwGBQgASgFEg8KB2R1bW15MjEYFSABKAUSDwoHZHVtbXkyMhgWIAEo",
+ "BRIPCgdkdW1teTIzGBcgASgFEg8KB2R1bW15MjQYGCABKAUSDwoHZHVtbXky",
+ "NRgZIAEoBRIPCgdkdW1teTI2GBogASgFEg8KB2R1bW15MjcYGyABKAUSDwoH",
+ "ZHVtbXkyOBgcIAEoBRIPCgdkdW1teTI5GB0gASgFEg8KB2R1bW15MzAYHiAB",
+ "KAUSDwoHZHVtbXkzMRgfIAEoBRIPCgdkdW1teTMyGCAgASgFEgkKAWMYISAC",
+ "KAUyVgoGc2luZ2xlEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu",
+ "c2lvbnMY6AcgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVk",
+ "MlUKBW11bHRpEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv",
+ "bnMY6QcgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVkIpoB",
+ "ChNUZXN0UmVxdWlyZWRGb3JlaWduEjkKEG9wdGlvbmFsX21lc3NhZ2UYASAB",
+ "KAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWlyZWQSOQoQcmVwZWF0",
+ "ZWRfbWVzc2FnZRgCIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1",
+ "aXJlZBINCgVkdW1teRgDIAEoBSJaChFUZXN0Rm9yZWlnbk5lc3RlZBJFCg5m",
+ "b3JlaWduX25lc3RlZBgBIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxUeXBlcy5OZXN0ZWRNZXNzYWdlIhIKEFRlc3RFbXB0eU1lc3NhZ2UiKgoe",
+ "VGVzdEVtcHR5TWVzc2FnZVdpdGhFeHRlbnNpb25zKggIARCAgICAAiI3ChtU",
+ "ZXN0TXVsdGlwbGVFeHRlbnNpb25SYW5nZXMqBAgqECsqBgivIBCUISoKCICA",
+ "BBCAgICAAiI0ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISCQoBYRgBIAEo",
+ "BRINCgJiYhj///9/IAEoBSJVChRUZXN0UmVjdXJzaXZlTWVzc2FnZRIyCgFh",
+ "GAEgASgLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlY3Vyc2l2ZU1lc3Nh",
+ "Z2USCQoBaRgCIAEoBSJLChRUZXN0TXV0dWFsUmVjdXJzaW9uQRIzCgJiYhgB",
+ "IAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25C",
+ "ImIKFFRlc3RNdXR1YWxSZWN1cnNpb25CEjIKAWEYASABKAsyJy5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQRIWCg5vcHRpb25hbF9p",
+ "bnQzMhgCIAEoBSKzAQoSVGVzdER1cEZpZWxkTnVtYmVyEgkKAWEYASABKAUS",
+ "NgoDZm9vGAIgASgKMikucHJvdG9idWZfdW5pdHRlc3QuVGVzdER1cEZpZWxk",
+ "TnVtYmVyLkZvbxI2CgNiYXIYAyABKAoyKS5wcm90b2J1Zl91bml0dGVzdC5U",
+ "ZXN0RHVwRmllbGROdW1iZXIuQmFyGhAKA0ZvbxIJCgFhGAEgASgFGhAKA0Jh",
+ "chIJCgFhGAEgASgFIkwKEFRlc3RFYWdlck1lc3NhZ2USOAoLc3ViX21lc3Nh",
+ "Z2UYASABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXNCAigA",
+ "IksKD1Rlc3RMYXp5TWVzc2FnZRI4CgtzdWJfbWVzc2FnZRgBIAEoCzIfLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlc0ICKAEigAIKGFRlc3ROZXN0",
+ "ZWRNZXNzYWdlSGFzQml0cxJaChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgB",
+ "IAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRNZXNzYWdlSGFz",
+ "Qml0cy5OZXN0ZWRNZXNzYWdlGocBCg1OZXN0ZWRNZXNzYWdlEiQKHG5lc3Rl",
+ "ZG1lc3NhZ2VfcmVwZWF0ZWRfaW50MzIYASADKAUSUAolbmVzdGVkbWVzc2Fn",
+ "ZV9yZXBlYXRlZF9mb3JlaWdubWVzc2FnZRgCIAMoCzIhLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LkZvcmVpZ25NZXNzYWdlIuUDChdUZXN0Q2FtZWxDYXNlRmllbGRO",
+ "YW1lcxIWCg5QcmltaXRpdmVGaWVsZBgBIAEoBRITCgtTdHJpbmdGaWVsZBgC",
+ "IAEoCRIxCglFbnVtRmllbGQYAyABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5G",
+ "b3JlaWduRW51bRI3CgxNZXNzYWdlRmllbGQYBCABKAsyIS5wcm90b2J1Zl91",
+ "bml0dGVzdC5Gb3JlaWduTWVzc2FnZRIcChBTdHJpbmdQaWVjZUZpZWxkGAUg",
+ "ASgJQgIIAhIVCglDb3JkRmllbGQYBiABKAlCAggBEh4KFlJlcGVhdGVkUHJp",
+ "bWl0aXZlRmllbGQYByADKAUSGwoTUmVwZWF0ZWRTdHJpbmdGaWVsZBgIIAMo",
+ "CRI5ChFSZXBlYXRlZEVudW1GaWVsZBgJIAMoDjIeLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LkZvcmVpZ25FbnVtEj8KFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygL",
+ "MiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USJAoYUmVwZWF0",
+ "ZWRTdHJpbmdQaWVjZUZpZWxkGAsgAygJQgIIAhIdChFSZXBlYXRlZENvcmRG",
+ "aWVsZBgMIAMoCUICCAEi1QEKElRlc3RGaWVsZE9yZGVyaW5ncxIRCglteV9z",
+ "dHJpbmcYCyABKAkSDgoGbXlfaW50GAEgASgDEhAKCG15X2Zsb2F0GGUgASgC",
+ "ElUKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGMgBIAEoCzIzLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncy5OZXN0ZWRNZXNzYWdlGicK",
+ "DU5lc3RlZE1lc3NhZ2USCgoCb28YAiABKAMSCgoCYmIYASABKAUqBAgCEAsq",
+ "BAgMEGUitgcKGFRlc3RFeHRyZW1lRGVmYXVsdFZhbHVlcxI/Cg1lc2NhcGVk",
+ "X2J5dGVzGAEgASgMOihcMDAwXDAwMVwwMDdcMDEwXDAxNFxuXHJcdFwwMTNc",
+ "XFwnXCJcMzc2EiAKDGxhcmdlX3VpbnQzMhgCIAEoDToKNDI5NDk2NzI5NRIq",
+ "CgxsYXJnZV91aW50NjQYAyABKAQ6FDE4NDQ2NzQ0MDczNzA5NTUxNjE1EiAK",
+ "C3NtYWxsX2ludDMyGAQgASgFOgstMjE0NzQ4MzY0NxIpCgtzbWFsbF9pbnQ2",
+ "NBgFIAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDcSJwoScmVhbGx5X3NtYWxs",
+ "X2ludDMyGBUgASgFOgstMjE0NzQ4MzY0OBIwChJyZWFsbHlfc21hbGxfaW50",
+ "NjQYFiABKAM6FC05MjIzMzcyMDM2ODU0Nzc1ODA4EhgKC3V0Zjhfc3RyaW5n",
+ "GAYgASgJOgPhiLQSFQoKemVyb19mbG9hdBgHIAEoAjoBMBIUCglvbmVfZmxv",
+ "YXQYCCABKAI6ATESGAoLc21hbGxfZmxvYXQYCSABKAI6AzEuNRIeChJuZWdh",
+ "dGl2ZV9vbmVfZmxvYXQYCiABKAI6Ai0xEhwKDm5lZ2F0aXZlX2Zsb2F0GAsg",
+ "ASgCOgQtMS41EhoKC2xhcmdlX2Zsb2F0GAwgASgCOgUyZSswOBIkChRzbWFs",
+ "bF9uZWdhdGl2ZV9mbG9hdBgNIAEoAjoGLThlLTI4EhcKCmluZl9kb3VibGUY",
+ "DiABKAE6A2luZhIcCg5uZWdfaW5mX2RvdWJsZRgPIAEoAToELWluZhIXCgpu",
+ "YW5fZG91YmxlGBAgASgBOgNuYW4SFgoJaW5mX2Zsb2F0GBEgASgCOgNpbmYS",
+ "GwoNbmVnX2luZl9mbG9hdBgSIAEoAjoELWluZhIWCgluYW5fZmxvYXQYEyAB",
+ "KAI6A25hbhIrCgxjcHBfdHJpZ3JhcGgYFCABKAk6FT8gPyA/PyA/PyA/Pz8g",
+ "Pz8vID8/LRIgChBzdHJpbmdfd2l0aF96ZXJvGBcgASgJOgZoZWwAbG8SIgoP",
+ "Ynl0ZXNfd2l0aF96ZXJvGBggASgMOgl3b3JcMDAwbGQSKAoWc3RyaW5nX3Bp",
+ "ZWNlX3dpdGhfemVybxgZIAEoCToEYWIAY0ICCAISIAoOY29yZF93aXRoX3pl",
+ "cm8YGiABKAk6BDEyADNCAggBEiYKEnJlcGxhY2VtZW50X3N0cmluZxgbIAEo",
+ "CToKJHt1bmtub3dufSJLChFTcGFyc2VFbnVtTWVzc2FnZRI2CgtzcGFyc2Vf",
+ "ZW51bRgBIAEoDjIhLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RTcGFyc2VFbnVt",
+ "IhkKCU9uZVN0cmluZxIMCgRkYXRhGAEgASgJIhoKCk1vcmVTdHJpbmcSDAoE",
+ "ZGF0YRgBIAMoCSIYCghPbmVCeXRlcxIMCgRkYXRhGAEgASgMIhkKCU1vcmVC",
+ "eXRlcxIMCgRkYXRhGAEgAygMIhwKDEludDMyTWVzc2FnZRIMCgRkYXRhGAEg",
+ "ASgFIh0KDVVpbnQzMk1lc3NhZ2USDAoEZGF0YRgBIAEoDSIcCgxJbnQ2NE1l",
+ "c3NhZ2USDAoEZGF0YRgBIAEoAyIdCg1VaW50NjRNZXNzYWdlEgwKBGRhdGEY",
+ "ASABKAQiGwoLQm9vbE1lc3NhZ2USDAoEZGF0YRgBIAEoCCLQAQoJVGVzdE9u",
+ "ZW9mEhEKB2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAAS",
+ "NgoLZm9vX21lc3NhZ2UYAyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0",
+ "QWxsVHlwZXNIABI5Cghmb29ncm91cBgEIAEoCjIlLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RPbmVvZi5Gb29Hcm91cEgAGiAKCEZvb0dyb3VwEgkKAWEYBSAB",
+ "KAUSCQoBYhgGIAEoCUIFCgNmb28i5wEKHFRlc3RPbmVvZkJhY2t3YXJkc0Nv",
+ "bXBhdGlibGUSDwoHZm9vX2ludBgBIAEoBRISCgpmb29fc3RyaW5nGAIgASgJ",
+ "EjQKC2Zvb19tZXNzYWdlGAMgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVz",
+ "dEFsbFR5cGVzEkoKCGZvb2dyb3VwGAQgASgKMjgucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdE9uZW9mQmFja3dhcmRzQ29tcGF0aWJsZS5Gb29Hcm91cBogCghG",
+ "b29Hcm91cBIJCgFhGAUgASgFEgkKAWIYBiABKAkingYKClRlc3RPbmVvZjIS",
+ "EQoHZm9vX2ludBgBIAEoBUgAEhQKCmZvb19zdHJpbmcYAiABKAlIABIWCghm",
+ "b29fY29yZBgDIAEoCUICCAFIABIeChBmb29fc3RyaW5nX3BpZWNlGAQgASgJ",
+ "QgIIAkgAEhMKCWZvb19ieXRlcxgFIAEoDEgAEjwKCGZvb19lbnVtGAYgASgO",
+ "MigucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtSAAS",
+ "QgoLZm9vX21lc3NhZ2UYByABKAsyKy5wcm90b2J1Zl91bml0dGVzdC5UZXN0",
+ "T25lb2YyLk5lc3RlZE1lc3NhZ2VIABI6Cghmb29ncm91cBgIIAEoCjImLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RPbmVvZjIuRm9vR3JvdXBIABJLChBmb29f",
+ "bGF6eV9tZXNzYWdlGAsgASgLMisucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9u",
+ "ZW9mMi5OZXN0ZWRNZXNzYWdlQgIoAUgAEhQKB2Jhcl9pbnQYDCABKAU6ATVI",
+ "ARIcCgpiYXJfc3RyaW5nGA0gASgJOgZTVFJJTkdIARIcCghiYXJfY29yZBgO",
+ "IAEoCToEQ09SREICCAFIARImChBiYXJfc3RyaW5nX3BpZWNlGA8gASgJOgZT",
+ "UElFQ0VCAggCSAESGgoJYmFyX2J5dGVzGBAgASgMOgVCWVRFU0gBEkEKCGJh",
+ "cl9lbnVtGBEgASgOMigucHJvdG9idWZfdW5pdHRlc3QuVGVzdE9uZW9mMi5O",
+ "ZXN0ZWRFbnVtOgNCQVJIARIPCgdiYXpfaW50GBIgASgFEhcKCmJhel9zdHJp",
+ "bmcYEyABKAk6A0JBWhogCghGb29Hcm91cBIJCgFhGAkgASgFEgkKAWIYCiAB",
+ "KAkaMwoNTmVzdGVkTWVzc2FnZRIPCgdxdXhfaW50GAEgASgDEhEKCWNvcmdl",
+ "X2ludBgCIAMoBSInCgpOZXN0ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcK",
+ "A0JBWhADQgUKA2Zvb0IFCgNiYXIiuAEKEVRlc3RSZXF1aXJlZE9uZW9mEhEK",
+ "B2Zvb19pbnQYASABKAVIABIUCgpmb29fc3RyaW5nGAIgASgJSAASSQoLZm9v",
+ "X21lc3NhZ2UYAyABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVxdWly",
+ "ZWRPbmVvZi5OZXN0ZWRNZXNzYWdlSAAaKAoNTmVzdGVkTWVzc2FnZRIXCg9y",
+ "ZXF1aXJlZF9kb3VibGUYASACKAFCBQoDZm9vIqoDCg9UZXN0UGFja2VkVHlw",
+ "ZXMSGAoMcGFja2VkX2ludDMyGFogAygFQgIQARIYCgxwYWNrZWRfaW50NjQY",
+ "WyADKANCAhABEhkKDXBhY2tlZF91aW50MzIYXCADKA1CAhABEhkKDXBhY2tl",
+ "ZF91aW50NjQYXSADKARCAhABEhkKDXBhY2tlZF9zaW50MzIYXiADKBFCAhAB",
+ "EhkKDXBhY2tlZF9zaW50NjQYXyADKBJCAhABEhoKDnBhY2tlZF9maXhlZDMy",
+ "GGAgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAESGwoPcGFj",
+ "a2VkX3NmaXhlZDMyGGIgAygPQgIQARIbCg9wYWNrZWRfc2ZpeGVkNjQYYyAD",
+ "KBBCAhABEhgKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAESGQoNcGFja2VkX2Rv",
+ "dWJsZRhlIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYZiADKAhCAhABEjcKC3Bh",
+ "Y2tlZF9lbnVtGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVu",
+ "dW1CAhABIsgDChFUZXN0VW5wYWNrZWRUeXBlcxIaCg51bnBhY2tlZF9pbnQz",
+ "MhhaIAMoBUICEAASGgoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAEhsKD3Vu",
+ "cGFja2VkX3VpbnQzMhhcIAMoDUICEAASGwoPdW5wYWNrZWRfdWludDY0GF0g",
+ "AygEQgIQABIbCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAEhsKD3VucGFj",
+ "a2VkX3NpbnQ2NBhfIAMoEkICEAASHAoQdW5wYWNrZWRfZml4ZWQzMhhgIAMo",
+ "B0ICEAASHAoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAASHQoRdW5wYWNr",
+ "ZWRfc2ZpeGVkMzIYYiADKA9CAhAAEh0KEXVucGFja2VkX3NmaXhlZDY0GGMg",
+ "AygQQgIQABIaCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEAASGwoPdW5wYWNr",
+ "ZWRfZG91YmxlGGUgAygBQgIQABIZCg11bnBhY2tlZF9ib29sGGYgAygIQgIQ",
+ "ABI5Cg11bnBhY2tlZF9lbnVtGGcgAygOMh4ucHJvdG9idWZfdW5pdHRlc3Qu",
+ "Rm9yZWlnbkVudW1CAhAAIiAKFFRlc3RQYWNrZWRFeHRlbnNpb25zKggIARCA",
+ "gICAAiIiChZUZXN0VW5wYWNrZWRFeHRlbnNpb25zKggIARCAgICAAiKZBAoV",
+ "VGVzdER5bmFtaWNFeHRlbnNpb25zEhkKEHNjYWxhcl9leHRlbnNpb24Y0A8g",
+ "ASgHEjcKDmVudW1fZXh0ZW5zaW9uGNEPIAEoDjIeLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LkZvcmVpZ25FbnVtElkKFmR5bmFtaWNfZW51bV9leHRlbnNpb24Y0g8g",
+ "ASgOMjgucHJvdG9idWZfdW5pdHRlc3QuVGVzdER5bmFtaWNFeHRlbnNpb25z",
+ "LkR5bmFtaWNFbnVtVHlwZRI9ChFtZXNzYWdlX2V4dGVuc2lvbhjTDyABKAsy",
+ "IS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZRJfChlkeW5hbWlj",
+ "X21lc3NhZ2VfZXh0ZW5zaW9uGNQPIAEoCzI7LnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljTWVzc2FnZVR5cGUSGwoS",
+ "cmVwZWF0ZWRfZXh0ZW5zaW9uGNUPIAMoCRIdChBwYWNrZWRfZXh0ZW5zaW9u",
+ "GNYPIAMoEUICEAEaLAoSRHluYW1pY01lc3NhZ2VUeXBlEhYKDWR5bmFtaWNf",
+ "ZmllbGQYtBAgASgFIkcKD0R5bmFtaWNFbnVtVHlwZRIQCgtEWU5BTUlDX0ZP",
+ "TxCYERIQCgtEWU5BTUlDX0JBUhCZERIQCgtEWU5BTUlDX0JBWhCaESLAAQoj",
+ "VGVzdFJlcGVhdGVkU2NhbGFyRGlmZmVyZW50VGFnU2l6ZXMSGAoQcmVwZWF0",
+ "ZWRfZml4ZWQzMhgMIAMoBxIWCg5yZXBlYXRlZF9pbnQzMhgNIAMoBRIZChBy",
+ "ZXBlYXRlZF9maXhlZDY0GP4PIAMoBhIXCg5yZXBlYXRlZF9pbnQ2NBj/DyAD",
+ "KAMSGAoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAhIZCg9yZXBlYXRlZF91aW50",
+ "NjQY//8PIAMoBCL3CQoQVGVzdFBhcnNpbmdNZXJnZRI7ChJyZXF1aXJlZF9h",
+ "bGxfdHlwZXMYASACKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlw",
+ "ZXMSOwoSb3B0aW9uYWxfYWxsX3R5cGVzGAIgASgLMh8ucHJvdG9idWZfdW5p",
+ "dHRlc3QuVGVzdEFsbFR5cGVzEjsKEnJlcGVhdGVkX2FsbF90eXBlcxgDIAMo",
+ "CzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxJICg1vcHRpb25h",
+ "bGdyb3VwGAogASgKMjEucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhcnNpbmdN",
+ "ZXJnZS5PcHRpb25hbEdyb3VwEkgKDXJlcGVhdGVkZ3JvdXAYFCADKAoyMS5w",
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkR3Jv",
+ "dXAaqgQKF1JlcGVhdGVkRmllbGRzR2VuZXJhdG9yEi8KBmZpZWxkMRgBIAMo",
+ "CzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcxIvCgZmaWVsZDIY",
+ "AiADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMSLwoGZmll",
+ "bGQzGAMgAygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzElIK",
+ "Bmdyb3VwMRgKIAMoCjJCLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5n",
+ "TWVyZ2UuUmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAxElIKBmdyb3Vw",
+ "MhgUIAMoCjJCLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2Uu",
+ "UmVwZWF0ZWRGaWVsZHNHZW5lcmF0b3IuR3JvdXAyEi4KBGV4dDEY6AcgAygL",
+ "Mh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzEi4KBGV4dDIY6Qcg",
+ "AygLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzGjkKBkdyb3Vw",
+ "MRIvCgZmaWVsZDEYCyABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "VHlwZXMaOQoGR3JvdXAyEi8KBmZpZWxkMRgVIAEoCzIfLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LlRlc3RBbGxUeXBlcxpSCg1PcHRpb25hbEdyb3VwEkEKGG9wdGlv",
+ "bmFsX2dyb3VwX2FsbF90eXBlcxgLIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RBbGxUeXBlcxpSCg1SZXBlYXRlZEdyb3VwEkEKGHJlcGVhdGVkX2dy",
+ "b3VwX2FsbF90eXBlcxgVIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxUeXBlcyoJCOgHEICAgIACMlsKDG9wdGlvbmFsX2V4dBIjLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UY6AcgASgLMh8ucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbFR5cGVzMlsKDHJlcGVhdGVkX2V4dBIjLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RQYXJzaW5nTWVyZ2UY6QcgAygLMh8ucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzIkQKG1Rlc3RDb21tZW50SW5qZWN0",
+ "aW9uTWVzc2FnZRIlCgFhGAEgASgJOhoqLyA8LSBOZWl0aGVyIHNob3VsZCB0",
+ "aGlzLiIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVu",
+ "dE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0K",
+ "C0JhclJlc3BvbnNlKkAKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05fRk9PEAQS",
+ "DwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGKksKFFRlc3RFbnVt",
+ "V2l0aER1cFZhbHVlEggKBEZPTzEQARIICgRCQVIxEAISBwoDQkFaEAMSCAoE",
+ "Rk9PMhABEggKBEJBUjIQAhoCEAEqiQEKDlRlc3RTcGFyc2VFbnVtEgwKCFNQ",
+ "QVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoI",
+ "U1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwK",
+ "CFNQQVJTRV9GEAASDAoIU1BBUlNFX0cQAjKZAQoLVGVzdFNlcnZpY2USRAoD",
+ "Rm9vEh0ucHJvdG9idWZfdW5pdHRlc3QuRm9vUmVxdWVzdBoeLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LkZvb1Jlc3BvbnNlEkQKA0JhchIdLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LkJhclJlcXVlc3QaHi5wcm90b2J1Zl91bml0dGVzdC5CYXJSZXNwb25z",
+ "ZTpGChhvcHRpb25hbF9pbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0",
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgBIAEoBTpGChhvcHRpb25hbF9pbnQ2",
+ "NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5z",
+ "aW9ucxgCIAEoAzpHChlvcHRpb25hbF91aW50MzJfZXh0ZW5zaW9uEiQucHJv",
+ "dG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYAyABKA06RwoZb3B0",
+ "aW9uYWxfdWludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxFeHRlbnNpb25zGAQgASgEOkcKGW9wdGlvbmFsX3NpbnQzMl9leHRl",
+ "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgF",
+ "IAEoETpHChlvcHRpb25hbF9zaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYBiABKBI6SAoab3B0aW9uYWxf",
+ "Zml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "RXh0ZW5zaW9ucxgHIAEoBzpIChpvcHRpb25hbF9maXhlZDY0X2V4dGVuc2lv",
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAggASgG",
+ "OkkKG29wdGlvbmFsX3NmaXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAkgASgPOkkKG29wdGlvbmFsX3Nm",
+ "aXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF",
+ "eHRlbnNpb25zGAogASgQOkYKGG9wdGlvbmFsX2Zsb2F0X2V4dGVuc2lvbhIk",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAsgASgCOkcK",
+ "GW9wdGlvbmFsX2RvdWJsZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0QWxsRXh0ZW5zaW9ucxgMIAEoATpFChdvcHRpb25hbF9ib29sX2V4",
+ "dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25z",
+ "GA0gASgIOkcKGW9wdGlvbmFsX3N0cmluZ19leHRlbnNpb24SJC5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgOIAEoCTpGChhvcHRpb25h",
+ "bF9ieXRlc19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "RXh0ZW5zaW9ucxgPIAEoDDpxChdvcHRpb25hbGdyb3VwX2V4dGVuc2lvbhIk",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBAgASgKMiou",
+ "cHJvdG9idWZfdW5pdHRlc3QuT3B0aW9uYWxHcm91cF9leHRlbnNpb246fgoh",
+ "b3B0aW9uYWxfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYEiABKAsyLS5wcm90b2J1Zl91",
+ "bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZTpzCiJvcHRpb25h",
+ "bF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYEyABKAsyIS5wcm90b2J1Zl91bml0dGVz",
+ "dC5Gb3JlaWduTWVzc2FnZTp4CiFvcHRpb25hbF9pbXBvcnRfbWVzc2FnZV9l",
+ "eHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9u",
+ "cxgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNz",
+ "YWdlOngKHm9wdGlvbmFsX25lc3RlZF9lbnVtX2V4dGVuc2lvbhIkLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBUgASgOMioucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06bQofb3B0aW9u",
+ "YWxfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RBbGxFeHRlbnNpb25zGBYgASgOMh4ucHJvdG9idWZfdW5pdHRlc3Qu",
+ "Rm9yZWlnbkVudW06cgoeb3B0aW9uYWxfaW1wb3J0X2VudW1fZXh0ZW5zaW9u",
+ "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFyABKA4y",
+ "JC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bTpRCh9vcHRp",
+ "b25hbF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYGCABKAlCAggCOkkKF29wdGlvbmFsX2Nv",
+ "cmRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu",
+ "c2lvbnMYGSABKAlCAggBOoUBCihvcHRpb25hbF9wdWJsaWNfaW1wb3J0X21l",
+ "c3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4",
+ "dGVuc2lvbnMYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVi",
+ "bGljSW1wb3J0TWVzc2FnZTqAAQofb3B0aW9uYWxfbGF6eV9tZXNzYWdlX2V4",
+ "dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25z",
+ "GBsgASgLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3Rl",
+ "ZE1lc3NhZ2VCAigBOkYKGHJlcGVhdGVkX2ludDMyX2V4dGVuc2lvbhIkLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGB8gAygFOkYKGHJl",
+ "cGVhdGVkX2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxFeHRlbnNpb25zGCAgAygDOkcKGXJlcGVhdGVkX3VpbnQzMl9leHRl",
+ "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgh",
+ "IAMoDTpHChlyZXBlYXRlZF91aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZf",
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYIiADKAQ6RwoZcmVwZWF0ZWRf",
+ "c2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF",
+ "eHRlbnNpb25zGCMgAygROkcKGXJlcGVhdGVkX3NpbnQ2NF9leHRlbnNpb24S",
+ "JC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgkIAMoEjpI",
+ "ChpyZXBlYXRlZF9maXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCUgAygHOkgKGnJlcGVhdGVkX2ZpeGVk",
+ "NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu",
+ "c2lvbnMYJiADKAY6SQobcmVwZWF0ZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEiQu",
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJyADKA86SQob",
+ "cmVwZWF0ZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYKCADKBA6RgoYcmVwZWF0ZWRfZmxvYXRf",
+ "ZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv",
+ "bnMYKSADKAI6RwoZcmVwZWF0ZWRfZG91YmxlX2V4dGVuc2lvbhIkLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCogAygBOkUKF3JlcGVh",
+ "dGVkX2Jvb2xfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFs",
+ "bEV4dGVuc2lvbnMYKyADKAg6RwoZcmVwZWF0ZWRfc3RyaW5nX2V4dGVuc2lv",
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCwgAygJ",
+ "OkYKGHJlcGVhdGVkX2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0",
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGC0gAygMOnEKF3JlcGVhdGVkZ3JvdXBf",
+ "ZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv",
+ "bnMYLiADKAoyKi5wcm90b2J1Zl91bml0dGVzdC5SZXBlYXRlZEdyb3VwX2V4",
+ "dGVuc2lvbjp+CiFyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24S",
+ "JC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgwIAMoCzIt",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdl",
+ "OnMKInJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb24SJC5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgxIAMoCzIhLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdlOngKIXJlcGVhdGVkX2ltcG9y",
+ "dF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxFeHRlbnNpb25zGDIgAygLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0",
+ "LkltcG9ydE1lc3NhZ2U6eAoecmVwZWF0ZWRfbmVzdGVkX2VudW1fZXh0ZW5z",
+ "aW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYMyAD",
+ "KA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51",
+ "bTptCh9yZXBlYXRlZF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNCADKA4yHi5wcm90b2J1",
+ "Zl91bml0dGVzdC5Gb3JlaWduRW51bTpyCh5yZXBlYXRlZF9pbXBvcnRfZW51",
+ "bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5z",
+ "aW9ucxg1IAMoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRF",
+ "bnVtOlEKH3JlcGVhdGVkX3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg2IAMoCUICCAI6SQoX",
+ "cmVwZWF0ZWRfY29yZF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5U",
+ "ZXN0QWxsRXh0ZW5zaW9ucxg3IAMoCUICCAE6gAEKH3JlcGVhdGVkX2xhenlf",
+ "bWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs",
+ "RXh0ZW5zaW9ucxg5IAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxU",
+ "eXBlcy5OZXN0ZWRNZXNzYWdlQgIoATpJChdkZWZhdWx0X2ludDMyX2V4dGVu",
+ "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD0g",
+ "ASgFOgI0MTpJChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIkLnByb3RvYnVm",
+ "X3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD4gASgDOgI0MjpKChhkZWZh",
+ "dWx0X3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0",
+ "QWxsRXh0ZW5zaW9ucxg/IAEoDToCNDM6SgoYZGVmYXVsdF91aW50NjRfZXh0",
+ "ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY",
+ "QCABKAQ6AjQ0OksKGGRlZmF1bHRfc2ludDMyX2V4dGVuc2lvbhIkLnByb3Rv",
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEEgASgROgMtNDU6SgoY",
+ "ZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3Qu",
+ "VGVzdEFsbEV4dGVuc2lvbnMYQiABKBI6AjQ2OksKGWRlZmF1bHRfZml4ZWQz",
+ "Ml9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5z",
+ "aW9ucxhDIAEoBzoCNDc6SwoZZGVmYXVsdF9maXhlZDY0X2V4dGVuc2lvbhIk",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEQgASgGOgI0",
+ "ODpMChpkZWZhdWx0X3NmaXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEUgASgPOgI0OTpNChpkZWZhdWx0",
+ "X3NmaXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxFeHRlbnNpb25zGEYgASgQOgMtNTA6SwoXZGVmYXVsdF9mbG9hdF9leHRl",
+ "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhH",
+ "IAEoAjoENTEuNTpNChhkZWZhdWx0X2RvdWJsZV9leHRlbnNpb24SJC5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhIIAEoAToFNTIwMDA6",
+ "SgoWZGVmYXVsdF9ib29sX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RBbGxFeHRlbnNpb25zGEkgASgIOgR0cnVlOk0KGGRlZmF1bHRfc3Ry",
+ "aW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRl",
+ "bnNpb25zGEogASgJOgVoZWxsbzpMChdkZWZhdWx0X2J5dGVzX2V4dGVuc2lv",
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEsgASgM",
+ "OgV3b3JsZDp8Ch1kZWZhdWx0X25lc3RlZF9lbnVtX2V4dGVuc2lvbhIkLnBy",
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFEgASgOMioucHJv",
+ "dG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUjp5",
+ "Ch5kZWZhdWx0X2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91",
+ "bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhSIAEoDjIeLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUjp9Ch1kZWZhdWx0X2lt",
+ "cG9ydF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB",
+ "bGxFeHRlbnNpb25zGFMgASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0",
+ "LkltcG9ydEVudW06CklNUE9SVF9CQVI6VQoeZGVmYXVsdF9zdHJpbmdfcGll",
+ "Y2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu",
+ "c2lvbnMYVCABKAk6A2FiY0ICCAI6TQoWZGVmYXVsdF9jb3JkX2V4dGVuc2lv",
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFUgASgJ",
+ "OgMxMjNCAggBOkQKFm9uZW9mX3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhvIAEoDTp7Ch5vbmVvZl9u",
+ "ZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5U",
+ "ZXN0QWxsRXh0ZW5zaW9ucxhwIAEoCzItLnByb3RvYnVmX3VuaXR0ZXN0LlRl",
+ "c3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlOkQKFm9uZW9mX3N0cmluZ19leHRl",
+ "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhx",
+ "IAEoCTpDChVvbmVvZl9ieXRlc19leHRlbnNpb24SJC5wcm90b2J1Zl91bml0",
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhyIAEoDDpCChNteV9leHRlbnNpb25f",
+ "c3RyaW5nEiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZpZWxkT3JkZXJpbmdz",
+ "GDIgASgJOj8KEG15X2V4dGVuc2lvbl9pbnQSJS5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0RmllbGRPcmRlcmluZ3MYBSABKAU6SwoWcGFja2VkX2ludDMyX2V4",
+ "dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNp",
+ "b25zGFogAygFQgIQATpLChZwYWNrZWRfaW50NjRfZXh0ZW5zaW9uEicucHJv",
+ "dG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWyADKANCAhAB",
+ "OkwKF3BhY2tlZF91aW50MzJfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhABOkwKF3BhY2tlZF91",
+ "aW50NjRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tl",
+ "ZEV4dGVuc2lvbnMYXSADKARCAhABOkwKF3BhY2tlZF9zaW50MzJfZXh0ZW5z",
+ "aW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMY",
+ "XiADKBFCAhABOkwKF3BhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEicucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhABOk0K",
+ "GHBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0",
+ "LlRlc3RQYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQATpNChhwYWNrZWRfZml4",
+ "ZWQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2Vk",
+ "RXh0ZW5zaW9ucxhhIAMoBkICEAE6TgoZcGFja2VkX3NmaXhlZDMyX2V4dGVu",
+ "c2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25z",
+ "GGIgAygPQgIQATpOChlwYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEicucHJv",
+ "dG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYyADKBBCAhAB",
+ "OksKFnBhY2tlZF9mbG9hdF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVz",
+ "dC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEAE6TAoXcGFja2VkX2Rv",
+ "dWJsZV9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2Vk",
+ "RXh0ZW5zaW9ucxhlIAMoAUICEAE6SgoVcGFja2VkX2Jvb2xfZXh0ZW5zaW9u",
+ "EicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZiAD",
+ "KAhCAhABOmoKFXBhY2tlZF9lbnVtX2V4dGVuc2lvbhInLnByb3RvYnVmX3Vu",
+ "aXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGcgAygOMh4ucHJvdG9idWZf",
+ "dW5pdHRlc3QuRm9yZWlnbkVudW1CAhABOk8KGHVucGFja2VkX2ludDMyX2V4",
+ "dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVu",
+ "c2lvbnMYWiADKAVCAhAAOk8KGHVucGFja2VkX2ludDY0X2V4dGVuc2lvbhIp",
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWyAD",
+ "KANCAhAAOlAKGXVucGFja2VkX3VpbnQzMl9leHRlbnNpb24SKS5wcm90b2J1",
+ "Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQADpQ",
+ "Chl1bnBhY2tlZF91aW50NjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRl",
+ "c3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhdIAMoBEICEAA6UAoZdW5wYWNr",
+ "ZWRfc2ludDMyX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RV",
+ "bnBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhAAOlAKGXVucGFja2VkX3NpbnQ2",
+ "NF9leHRlbnNpb24SKS5wcm90b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRF",
+ "eHRlbnNpb25zGF8gAygSQgIQADpRChp1bnBhY2tlZF9maXhlZDMyX2V4dGVu",
+ "c2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tlZEV4dGVuc2lv",
+ "bnMYYCADKAdCAhAAOlEKGnVucGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEiku",
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhhIAMo",
+ "BkICEAA6UgobdW5wYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEikucHJvdG9i",
+ "dWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhiIAMoD0ICEAA6",
+ "UgobdW5wYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5p",
+ "dHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEAA6TwoYdW5w",
+ "YWNrZWRfZmxvYXRfZXh0ZW5zaW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVz",
+ "dFVucGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEAA6UAoZdW5wYWNrZWRfZG91",
+ "YmxlX2V4dGVuc2lvbhIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RVbnBhY2tl",
+ "ZEV4dGVuc2lvbnMYZSADKAFCAhAAOk4KF3VucGFja2VkX2Jvb2xfZXh0ZW5z",
+ "aW9uEikucHJvdG9idWZfdW5pdHRlc3QuVGVzdFVucGFja2VkRXh0ZW5zaW9u",
+ "cxhmIAMoCEICEAA6bgoXdW5wYWNrZWRfZW51bV9leHRlbnNpb24SKS5wcm90",
+ "b2J1Zl91bml0dGVzdC5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGcgAygOMh4u",
+ "cHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW1CAhAAQkFCDVVuaXR0ZXN0",
+ "UHJvdG9IAYABAYgBAZABAfgBAaoCIUdvb2dsZS5Qcm90b2NvbEJ1ZmZlcnMu",
+ "VGVzdFByb3Rvcw=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_TestAllTypes__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder>(internal__static_protobuf_unittest_TestAllTypes__Descriptor,
+ new string[] { "OptionalInt32", "OptionalInt64", "OptionalUint32", "OptionalUint64", "OptionalSint32", "OptionalSint64", "OptionalFixed32", "OptionalFixed64", "OptionalSfixed32", "OptionalSfixed64", "OptionalFloat", "OptionalDouble", "OptionalBool", "OptionalString", "OptionalBytes", "OptionalGroup", "OptionalNestedMessage", "OptionalForeignMessage", "OptionalImportMessage", "OptionalNestedEnum", "OptionalForeignEnum", "OptionalImportEnum", "OptionalStringPiece", "OptionalCord", "OptionalPublicImportMessage", "OptionalLazyMessage", "RepeatedInt32", "RepeatedInt64", "RepeatedUint32", "RepeatedUint64", "RepeatedSint32", "RepeatedSint64", "RepeatedFixed32", "RepeatedFixed64", "RepeatedSfixed32", "RepeatedSfixed64", "RepeatedFloat", "RepeatedDouble", "RepeatedBool", "RepeatedString", "RepeatedBytes", "RepeatedGroup", "RepeatedNestedMessage", "RepeatedForeignMessage", "RepeatedImportMessage", "RepeatedNestedEnum", "RepeatedForeignEnum", "RepeatedImportEnum", "RepeatedStringPiece", "RepeatedCord", "RepeatedLazyMessage", "DefaultInt32", "DefaultInt64", "DefaultUint32", "DefaultUint64", "DefaultSint32", "DefaultSint64", "DefaultFixed32", "DefaultFixed64", "DefaultSfixed32", "DefaultSfixed64", "DefaultFloat", "DefaultDouble", "DefaultBool", "DefaultString", "DefaultBytes", "DefaultNestedEnum", "DefaultForeignEnum", "DefaultImportEnum", "DefaultStringPiece", "DefaultCord", "OneofUint32", "OneofNestedMessage", "OneofString", "OneofBytes", "OneofField", });
+ internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor,
+ new string[] { "Bb", });
+ internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder>(internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[2];
+ internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder>(internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder>(internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor,
+ new string[] { "Child", "Payload", "RepeatedChild", });
+ internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields, global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Builder>(internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor,
+ new string[] { "DeprecatedInt32", });
+ internal__static_protobuf_unittest_ForeignMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder>(internal__static_protobuf_unittest_ForeignMessage__Descriptor,
+ new string[] { "C", });
+ internal__static_protobuf_unittest_TestReservedFields__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReservedFields, global::Google.ProtocolBuffers.TestProtos.TestReservedFields.Builder>(internal__static_protobuf_unittest_TestReservedFields__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestAllExtensions__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllExtensions, global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Builder>(internal__static_protobuf_unittest_TestAllExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Builder>(internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor = Descriptor.MessageTypes[7];
+ internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Builder>(internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestNestedExtension__Descriptor = Descriptor.MessageTypes[8];
+ internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedExtension, global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Builder>(internal__static_protobuf_unittest_TestNestedExtension__Descriptor,
+ new string[] { });
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.NestedStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestRequired__Descriptor = Descriptor.MessageTypes[9];
+ internal__static_protobuf_unittest_TestRequired__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequired, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder>(internal__static_protobuf_unittest_TestRequired__Descriptor,
+ new string[] { "A", "Dummy2", "B", "Dummy4", "Dummy5", "Dummy6", "Dummy7", "Dummy8", "Dummy9", "Dummy10", "Dummy11", "Dummy12", "Dummy13", "Dummy14", "Dummy15", "Dummy16", "Dummy17", "Dummy18", "Dummy19", "Dummy20", "Dummy21", "Dummy22", "Dummy23", "Dummy24", "Dummy25", "Dummy26", "Dummy27", "Dummy28", "Dummy29", "Dummy30", "Dummy31", "Dummy32", "C", });
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Single = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestRequired>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestRequired>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestRequiredForeign__Descriptor = Descriptor.MessageTypes[10];
+ internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign, global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Builder>(internal__static_protobuf_unittest_TestRequiredForeign__Descriptor,
+ new string[] { "OptionalMessage", "RepeatedMessage", "Dummy", });
+ internal__static_protobuf_unittest_TestForeignNested__Descriptor = Descriptor.MessageTypes[11];
+ internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestForeignNested, global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Builder>(internal__static_protobuf_unittest_TestForeignNested__Descriptor,
+ new string[] { "ForeignNested", });
+ internal__static_protobuf_unittest_TestEmptyMessage__Descriptor = Descriptor.MessageTypes[12];
+ internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Builder>(internal__static_protobuf_unittest_TestEmptyMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor = Descriptor.MessageTypes[13];
+ internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Builder>(internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor = Descriptor.MessageTypes[14];
+ internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges, global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Builder>(internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor = Descriptor.MessageTypes[15];
+ internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber, global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Builder>(internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor,
+ new string[] { "A", "Bb", });
+ internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor = Descriptor.MessageTypes[16];
+ internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage, global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder>(internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor,
+ new string[] { "A", "I", });
+ internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor = Descriptor.MessageTypes[17];
+ internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder>(internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor,
+ new string[] { "Bb", });
+ internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor = Descriptor.MessageTypes[18];
+ internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder>(internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor,
+ new string[] { "A", "OptionalInt32", });
+ internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor = Descriptor.MessageTypes[19];
+ internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor,
+ new string[] { "A", "Foo", "Bar", });
+ internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor = internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor = internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestEagerMessage__Descriptor = Descriptor.MessageTypes[20];
+ internal__static_protobuf_unittest_TestEagerMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEagerMessage, global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.Builder>(internal__static_protobuf_unittest_TestEagerMessage__Descriptor,
+ new string[] { "SubMessage", });
+ internal__static_protobuf_unittest_TestLazyMessage__Descriptor = Descriptor.MessageTypes[21];
+ internal__static_protobuf_unittest_TestLazyMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestLazyMessage, global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.Builder>(internal__static_protobuf_unittest_TestLazyMessage__Descriptor,
+ new string[] { "SubMessage", });
+ internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor = Descriptor.MessageTypes[22];
+ internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Builder>(internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor,
+ new string[] { "OptionalNestedMessage", });
+ internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor,
+ new string[] { "NestedmessageRepeatedInt32", "NestedmessageRepeatedForeignmessage", });
+ internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor = Descriptor.MessageTypes[23];
+ internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames, global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Builder>(internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor,
+ new string[] { "PrimitiveField", "StringField", "EnumField", "MessageField", "StringPieceField", "CordField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedStringPieceField", "RepeatedCordField", });
+ internal__static_protobuf_unittest_TestFieldOrderings__Descriptor = Descriptor.MessageTypes[24];
+ internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Builder>(internal__static_protobuf_unittest_TestFieldOrderings__Descriptor,
+ new string[] { "MyString", "MyInt", "MyFloat", "OptionalNestedMessage", });
+ internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestFieldOrderings__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor,
+ new string[] { "Oo", "Bb", });
+ internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor = Descriptor.MessageTypes[25];
+ internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues, global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Builder>(internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor,
+ new string[] { "EscapedBytes", "LargeUint32", "LargeUint64", "SmallInt32", "SmallInt64", "ReallySmallInt32", "ReallySmallInt64", "Utf8String", "ZeroFloat", "OneFloat", "SmallFloat", "NegativeOneFloat", "NegativeFloat", "LargeFloat", "SmallNegativeFloat", "InfDouble", "NegInfDouble", "NanDouble", "InfFloat", "NegInfFloat", "NanFloat", "CppTrigraph", "StringWithZero", "BytesWithZero", "StringPieceWithZero", "CordWithZero", "ReplacementString", });
+ internal__static_protobuf_unittest_SparseEnumMessage__Descriptor = Descriptor.MessageTypes[26];
+ internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage, global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.Builder>(internal__static_protobuf_unittest_SparseEnumMessage__Descriptor,
+ new string[] { "SparseEnum", });
+ internal__static_protobuf_unittest_OneString__Descriptor = Descriptor.MessageTypes[27];
+ internal__static_protobuf_unittest_OneString__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneString, global::Google.ProtocolBuffers.TestProtos.OneString.Builder>(internal__static_protobuf_unittest_OneString__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_MoreString__Descriptor = Descriptor.MessageTypes[28];
+ internal__static_protobuf_unittest_MoreString__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreString, global::Google.ProtocolBuffers.TestProtos.MoreString.Builder>(internal__static_protobuf_unittest_MoreString__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_OneBytes__Descriptor = Descriptor.MessageTypes[29];
+ internal__static_protobuf_unittest_OneBytes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneBytes, global::Google.ProtocolBuffers.TestProtos.OneBytes.Builder>(internal__static_protobuf_unittest_OneBytes__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_MoreBytes__Descriptor = Descriptor.MessageTypes[30];
+ internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.MoreBytes, global::Google.ProtocolBuffers.TestProtos.MoreBytes.Builder>(internal__static_protobuf_unittest_MoreBytes__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Int32Message__Descriptor = Descriptor.MessageTypes[31];
+ internal__static_protobuf_unittest_Int32Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int32Message, global::Google.ProtocolBuffers.TestProtos.Int32Message.Builder>(internal__static_protobuf_unittest_Int32Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Uint32Message__Descriptor = Descriptor.MessageTypes[32];
+ internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint32Message, global::Google.ProtocolBuffers.TestProtos.Uint32Message.Builder>(internal__static_protobuf_unittest_Uint32Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Int64Message__Descriptor = Descriptor.MessageTypes[33];
+ internal__static_protobuf_unittest_Int64Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Int64Message, global::Google.ProtocolBuffers.TestProtos.Int64Message.Builder>(internal__static_protobuf_unittest_Int64Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_Uint64Message__Descriptor = Descriptor.MessageTypes[34];
+ internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.Uint64Message, global::Google.ProtocolBuffers.TestProtos.Uint64Message.Builder>(internal__static_protobuf_unittest_Uint64Message__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_BoolMessage__Descriptor = Descriptor.MessageTypes[35];
+ internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BoolMessage, global::Google.ProtocolBuffers.TestProtos.BoolMessage.Builder>(internal__static_protobuf_unittest_BoolMessage__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_TestOneof__Descriptor = Descriptor.MessageTypes[36];
+ internal__static_protobuf_unittest_TestOneof__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof, global::Google.ProtocolBuffers.TestProtos.TestOneof.Builder>(internal__static_protobuf_unittest_TestOneof__Descriptor,
+ new string[] { "FooInt", "FooString", "FooMessage", "FooGroup", "Foo", });
+ internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor = internal__static_protobuf_unittest_TestOneof__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestOneof_FooGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder>(internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor,
+ new string[] { "A", "B", });
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor = Descriptor.MessageTypes[37];
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Builder>(internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor,
+ new string[] { "FooInt", "FooString", "FooMessage", "FooGroup", });
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor = internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder>(internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor,
+ new string[] { "A", "B", });
+ internal__static_protobuf_unittest_TestOneof2__Descriptor = Descriptor.MessageTypes[38];
+ internal__static_protobuf_unittest_TestOneof2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Builder>(internal__static_protobuf_unittest_TestOneof2__Descriptor,
+ new string[] { "FooInt", "FooString", "FooCord", "FooStringPiece", "FooBytes", "FooEnum", "FooMessage", "FooGroup", "FooLazyMessage", "BarInt", "BarString", "BarCord", "BarStringPiece", "BarBytes", "BarEnum", "BazInt", "BazString", "Foo", "Bar", });
+ internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor = internal__static_protobuf_unittest_TestOneof2__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestOneof2_FooGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder>(internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor,
+ new string[] { "A", "B", });
+ internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestOneof2__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestOneof2_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor,
+ new string[] { "QuxInt", "CorgeInt", });
+ internal__static_protobuf_unittest_TestRequiredOneof__Descriptor = Descriptor.MessageTypes[39];
+ internal__static_protobuf_unittest_TestRequiredOneof__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Builder>(internal__static_protobuf_unittest_TestRequiredOneof__Descriptor,
+ new string[] { "FooInt", "FooString", "FooMessage", "Foo", });
+ internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestRequiredOneof__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor,
+ new string[] { "RequiredDouble", });
+ internal__static_protobuf_unittest_TestPackedTypes__Descriptor = Descriptor.MessageTypes[40];
+ internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedTypes, global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Builder>(internal__static_protobuf_unittest_TestPackedTypes__Descriptor,
+ new string[] { "PackedInt32", "PackedInt64", "PackedUint32", "PackedUint64", "PackedSint32", "PackedSint64", "PackedFixed32", "PackedFixed64", "PackedSfixed32", "PackedSfixed64", "PackedFloat", "PackedDouble", "PackedBool", "PackedEnum", });
+ internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor = Descriptor.MessageTypes[41];
+ internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes, global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Builder>(internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor,
+ new string[] { "UnpackedInt32", "UnpackedInt64", "UnpackedUint32", "UnpackedUint64", "UnpackedSint32", "UnpackedSint64", "UnpackedFixed32", "UnpackedFixed64", "UnpackedSfixed32", "UnpackedSfixed64", "UnpackedFloat", "UnpackedDouble", "UnpackedBool", "UnpackedEnum", });
+ internal__static_protobuf_unittest_TestPackedExtensions__Descriptor = Descriptor.MessageTypes[42];
+ internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Builder>(internal__static_protobuf_unittest_TestPackedExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor = Descriptor.MessageTypes[43];
+ internal__static_protobuf_unittest_TestUnpackedExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.Builder>(internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor = Descriptor.MessageTypes[44];
+ internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Builder>(internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor,
+ new string[] { "ScalarExtension", "EnumExtension", "DynamicEnumExtension", "MessageExtension", "DynamicMessageExtension", "RepeatedExtension", "PackedExtension", });
+ internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor = internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder>(internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor,
+ new string[] { "DynamicField", });
+ internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor = Descriptor.MessageTypes[45];
+ internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes, global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Builder>(internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor,
+ new string[] { "RepeatedFixed32", "RepeatedInt32", "RepeatedFixed64", "RepeatedInt64", "RepeatedFloat", "RepeatedUint64", });
+ internal__static_protobuf_unittest_TestParsingMerge__Descriptor = Descriptor.MessageTypes[46];
+ internal__static_protobuf_unittest_TestParsingMerge__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Builder>(internal__static_protobuf_unittest_TestParsingMerge__Descriptor,
+ new string[] { "RequiredAllTypes", "OptionalAllTypes", "RepeatedAllTypes", "OptionalGroup", "RepeatedGroup", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor = internal__static_protobuf_unittest_TestParsingMerge__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Group1", "Group2", "Ext1", "Ext2", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor = internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor,
+ new string[] { "Field1", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor = internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor,
+ new string[] { "Field1", });
+ internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor = internal__static_protobuf_unittest_TestParsingMerge__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder>(internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor,
+ new string[] { "OptionalGroupAllTypes", });
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor = internal__static_protobuf_unittest_TestParsingMerge__Descriptor.NestedTypes[2];
+ internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder>(internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor,
+ new string[] { "RepeatedGroupAllTypes", });
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.OptionalExt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.RepeatedExt = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor = Descriptor.MessageTypes[47];
+ internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage, global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.Builder>(internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_FooRequest__Descriptor = Descriptor.MessageTypes[48];
+ internal__static_protobuf_unittest_FooRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooRequest, global::Google.ProtocolBuffers.TestProtos.FooRequest.Builder>(internal__static_protobuf_unittest_FooRequest__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_FooResponse__Descriptor = Descriptor.MessageTypes[49];
+ internal__static_protobuf_unittest_FooResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder>(internal__static_protobuf_unittest_FooResponse__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_FooClientMessage__Descriptor = Descriptor.MessageTypes[50];
+ internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooClientMessage, global::Google.ProtocolBuffers.TestProtos.FooClientMessage.Builder>(internal__static_protobuf_unittest_FooClientMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_FooServerMessage__Descriptor = Descriptor.MessageTypes[51];
+ internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooServerMessage, global::Google.ProtocolBuffers.TestProtos.FooServerMessage.Builder>(internal__static_protobuf_unittest_FooServerMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_BarRequest__Descriptor = Descriptor.MessageTypes[52];
+ internal__static_protobuf_unittest_BarRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarRequest, global::Google.ProtocolBuffers.TestProtos.BarRequest.Builder>(internal__static_protobuf_unittest_BarRequest__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_BarResponse__Descriptor = Descriptor.MessageTypes[53];
+ internal__static_protobuf_unittest_BarResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder>(internal__static_protobuf_unittest_BarResponse__Descriptor,
+ new string[] { });
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalInt64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[1]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[2]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalUint64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[3]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[4]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSint64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[5]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[6]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFixed64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[7]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[8]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalSfixed64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[9]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalFloatExtension = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[10]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalDoubleExtension = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[11]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBoolExtension = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[12]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[13]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[14]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalGroupExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[15]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[16]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[17]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[18]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalNestedEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[19]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalForeignEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[20]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalImportEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[21]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalStringPieceExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[22]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalCordExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[23]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalPublicImportMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[24]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OptionalLazyMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[25]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[26]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[27]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[28]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[29]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[30]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[31]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[32]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[33]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[34]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[35]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[36]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[37]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[38]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[39]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedBytesExtension = pb::GeneratedRepeatExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[40]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedGroupExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[41]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[42]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[43]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[44]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedNestedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[45]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedForeignEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[46]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedImportEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[47]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedStringPieceExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[48]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedCordExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[49]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.RepeatedLazyMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[50]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[51]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultInt64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[52]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[53]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultUint64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[54]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[55]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSint64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[56]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[57]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFixed64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[58]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[59]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultSfixed64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[60]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultFloatExtension = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[61]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultDoubleExtension = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[62]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBoolExtension = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[63]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[64]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[65]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultNestedEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[66]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultForeignEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[67]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultImportEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[68]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultStringPieceExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[69]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.DefaultCordExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[70]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[71]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofNestedMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[72]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[73]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.OneofBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[74]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionString = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[75]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.MyExtensionInt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[76]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[77]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[78]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[79]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[80]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[81]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[82]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[83]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[84]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[85]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[86]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[87]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[88]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[89]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.PackedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[90]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[91]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[92]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[93]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[94]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[95]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[96]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[97]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[98]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[99]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[100]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[101]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[102]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[103]);
+ global::Google.ProtocolBuffers.TestProtos.Unittest.UnpackedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor.Extensions[104]);
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.TestProtos.UnittestImport.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.TestProtos.UnittestImport.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ForeignEnum {
+ FOREIGN_FOO = 4,
+ FOREIGN_BAR = 5,
+ FOREIGN_BAZ = 6,
+ }
+
+ public enum TestEnumWithDupValue {
+ FOO1 = 1,
+ BAR1 = 2,
+ BAZ = 3,
+ FOO2 = 1,
+ BAR2 = 2,
+ }
+
+ public enum TestSparseEnum {
+ SPARSE_A = 123,
+ SPARSE_B = 62374,
+ SPARSE_C = 12589234,
+ SPARSE_D = -15,
+ SPARSE_E = -53452,
+ SPARSE_F = 0,
+ SPARSE_G = 2,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestAllTypes : pb::GeneratedMessage<TestAllTypes, TestAllTypes.Builder> {
+ private TestAllTypes() { }
+ private static readonly TestAllTypes defaultInstance = new TestAllTypes().MakeReadOnly();
+ private static readonly string[] _testAllTypesFieldNames = new string[] { "default_bool", "default_bytes", "default_cord", "default_double", "default_fixed32", "default_fixed64", "default_float", "default_foreign_enum", "default_import_enum", "default_int32", "default_int64", "default_nested_enum", "default_sfixed32", "default_sfixed64", "default_sint32", "default_sint64", "default_string", "default_string_piece", "default_uint32", "default_uint64", "oneof_bytes", "oneof_nested_message", "oneof_string", "oneof_uint32", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_import_enum", "optional_import_message", "optional_int32", "optional_int64", "optional_lazy_message", "optional_nested_enum", "optional_nested_message", "optional_public_import_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "optionalgroup", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_lazy_message", "repeated_nested_enum", "repeated_nested_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64", "repeatedgroup" };
+ private static readonly uint[] _testAllTypesFieldTags = new uint[] { 584, 602, 682, 577, 541, 545, 573, 656, 664, 488, 496, 648, 557, 561, 520, 528, 594, 674, 504, 512, 914, 898, 906, 888, 104, 122, 202, 97, 61, 65, 93, 176, 154, 184, 162, 8, 16, 218, 168, 146, 210, 77, 81, 40, 48, 114, 194, 24, 32, 131, 344, 362, 442, 337, 301, 305, 333, 416, 394, 424, 402, 248, 256, 458, 408, 386, 317, 321, 280, 288, 354, 434, 264, 272, 371 };
+ public static TestAllTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestAllTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestAllTypes, TestAllTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ FOO = 1,
+ BAR = 2,
+ BAZ = 3,
+ NEG = -1,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private int bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasBb) {
+ output.WriteInt32(1, field_names[0], Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasBb = input.ReadInt32(ref result.bb_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
+ private OptionalGroup() { }
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
+ private static readonly string[] _optionalGroupFieldNames = new string[] { "a" };
+ private static readonly uint[] _optionalGroupFieldTags = new uint[] { 136 };
+ public static OptionalGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup, OptionalGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(17, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
+
+ private OptionalGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup original = result;
+ result = new OptionalGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Descriptor; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public override OptionalGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup) {
+ return MergeFrom((OptionalGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 136: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
+ private RepeatedGroup() { }
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
+ private static readonly string[] _repeatedGroupFieldNames = new string[] { "a" };
+ private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 376 };
+ public static RepeatedGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup, RepeatedGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(47, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
+
+ private RepeatedGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup original = result;
+ result = new RepeatedGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Descriptor; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance; }
+ }
+
+ public override RepeatedGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup) {
+ return MergeFrom((RepeatedGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 376: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ private object oneofField_;
+ public enum OneofFieldOneofCase {
+ OneofUint32 = 111,
+ OneofNestedMessage = 112,
+ OneofString = 113,
+ OneofBytes = 114,
+ None = 0,
+ }
+ private OneofFieldOneofCase oneofFieldCase_ = OneofFieldOneofCase.None;
+ public OneofFieldOneofCase OneofFieldCase {
+ get { return oneofFieldCase_; }
+ }
+
+ public const int OptionalInt32FieldNumber = 1;
+ private bool hasOptionalInt32;
+ private int optionalInt32_;
+ public bool HasOptionalInt32 {
+ get { return hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public const int OptionalInt64FieldNumber = 2;
+ private bool hasOptionalInt64;
+ private long optionalInt64_;
+ public bool HasOptionalInt64 {
+ get { return hasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return optionalInt64_; }
+ }
+
+ public const int OptionalUint32FieldNumber = 3;
+ private bool hasOptionalUint32;
+ private uint optionalUint32_;
+ public bool HasOptionalUint32 {
+ get { return hasOptionalUint32; }
+ }
+ public uint OptionalUint32 {
+ get { return optionalUint32_; }
+ }
+
+ public const int OptionalUint64FieldNumber = 4;
+ private bool hasOptionalUint64;
+ private ulong optionalUint64_;
+ public bool HasOptionalUint64 {
+ get { return hasOptionalUint64; }
+ }
+ public ulong OptionalUint64 {
+ get { return optionalUint64_; }
+ }
+
+ public const int OptionalSint32FieldNumber = 5;
+ private bool hasOptionalSint32;
+ private int optionalSint32_;
+ public bool HasOptionalSint32 {
+ get { return hasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return optionalSint32_; }
+ }
+
+ public const int OptionalSint64FieldNumber = 6;
+ private bool hasOptionalSint64;
+ private long optionalSint64_;
+ public bool HasOptionalSint64 {
+ get { return hasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return optionalSint64_; }
+ }
+
+ public const int OptionalFixed32FieldNumber = 7;
+ private bool hasOptionalFixed32;
+ private uint optionalFixed32_;
+ public bool HasOptionalFixed32 {
+ get { return hasOptionalFixed32; }
+ }
+ public uint OptionalFixed32 {
+ get { return optionalFixed32_; }
+ }
+
+ public const int OptionalFixed64FieldNumber = 8;
+ private bool hasOptionalFixed64;
+ private ulong optionalFixed64_;
+ public bool HasOptionalFixed64 {
+ get { return hasOptionalFixed64; }
+ }
+ public ulong OptionalFixed64 {
+ get { return optionalFixed64_; }
+ }
+
+ public const int OptionalSfixed32FieldNumber = 9;
+ private bool hasOptionalSfixed32;
+ private int optionalSfixed32_;
+ public bool HasOptionalSfixed32 {
+ get { return hasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return optionalSfixed32_; }
+ }
+
+ public const int OptionalSfixed64FieldNumber = 10;
+ private bool hasOptionalSfixed64;
+ private long optionalSfixed64_;
+ public bool HasOptionalSfixed64 {
+ get { return hasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return optionalSfixed64_; }
+ }
+
+ public const int OptionalFloatFieldNumber = 11;
+ private bool hasOptionalFloat;
+ private float optionalFloat_;
+ public bool HasOptionalFloat {
+ get { return hasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return optionalFloat_; }
+ }
+
+ public const int OptionalDoubleFieldNumber = 12;
+ private bool hasOptionalDouble;
+ private double optionalDouble_;
+ public bool HasOptionalDouble {
+ get { return hasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return optionalDouble_; }
+ }
+
+ public const int OptionalBoolFieldNumber = 13;
+ private bool hasOptionalBool;
+ private bool optionalBool_;
+ public bool HasOptionalBool {
+ get { return hasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return optionalBool_; }
+ }
+
+ public const int OptionalStringFieldNumber = 14;
+ private bool hasOptionalString;
+ private string optionalString_ = "";
+ public bool HasOptionalString {
+ get { return hasOptionalString; }
+ }
+ public string OptionalString {
+ get { return optionalString_; }
+ }
+
+ public const int OptionalBytesFieldNumber = 15;
+ private bool hasOptionalBytes;
+ private pb::ByteString optionalBytes_ = pb::ByteString.Empty;
+ public bool HasOptionalBytes {
+ get { return hasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return optionalBytes_; }
+ }
+
+ public const int OptionalGroupFieldNumber = 16;
+ private bool hasOptionalGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup optionalGroup_;
+ public bool HasOptionalGroup {
+ get { return hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public const int OptionalNestedMessageFieldNumber = 18;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int OptionalForeignMessageFieldNumber = 19;
+ private bool hasOptionalForeignMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage optionalForeignMessage_;
+ public bool HasOptionalForeignMessage {
+ get { return hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {
+ get { return optionalForeignMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int OptionalImportMessageFieldNumber = 20;
+ private bool hasOptionalImportMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ImportMessage optionalImportMessage_;
+ public bool HasOptionalImportMessage {
+ get { return hasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {
+ get { return optionalImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance; }
+ }
+
+ public const int OptionalNestedEnumFieldNumber = 21;
+ private bool hasOptionalNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.FOO;
+ public bool HasOptionalNestedEnum {
+ get { return hasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
+ get { return optionalNestedEnum_; }
+ }
+
+ public const int OptionalForeignEnumFieldNumber = 22;
+ private bool hasOptionalForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasOptionalForeignEnum {
+ get { return hasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum OptionalForeignEnum {
+ get { return optionalForeignEnum_; }
+ }
+
+ public const int OptionalImportEnumFieldNumber = 23;
+ private bool hasOptionalImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnum optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_FOO;
+ public bool HasOptionalImportEnum {
+ get { return hasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum OptionalImportEnum {
+ get { return optionalImportEnum_; }
+ }
+
+ public const int OptionalStringPieceFieldNumber = 24;
+ private bool hasOptionalStringPiece;
+ private string optionalStringPiece_ = "";
+ public bool HasOptionalStringPiece {
+ get { return hasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return optionalStringPiece_; }
+ }
+
+ public const int OptionalCordFieldNumber = 25;
+ private bool hasOptionalCord;
+ private string optionalCord_ = "";
+ public bool HasOptionalCord {
+ get { return hasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return optionalCord_; }
+ }
+
+ public const int OptionalPublicImportMessageFieldNumber = 26;
+ private bool hasOptionalPublicImportMessage;
+ private global::Google.ProtocolBuffers.TestProtos.PublicImportMessage optionalPublicImportMessage_;
+ public bool HasOptionalPublicImportMessage {
+ get { return hasOptionalPublicImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.PublicImportMessage OptionalPublicImportMessage {
+ get { return optionalPublicImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance; }
+ }
+
+ public const int OptionalLazyMessageFieldNumber = 27;
+ private bool hasOptionalLazyMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalLazyMessage_;
+ public bool HasOptionalLazyMessage {
+ get { return hasOptionalLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalLazyMessage {
+ get { return optionalLazyMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int RepeatedInt32FieldNumber = 31;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 32;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedUint32FieldNumber = 33;
+ private pbc::PopsicleList<uint> repeatedUint32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> RepeatedUint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint32_); }
+ }
+ public int RepeatedUint32Count {
+ get { return repeatedUint32_.Count; }
+ }
+ public uint GetRepeatedUint32(int index) {
+ return repeatedUint32_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 34;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public const int RepeatedSint32FieldNumber = 35;
+ private pbc::PopsicleList<int> repeatedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint32_); }
+ }
+ public int RepeatedSint32Count {
+ get { return repeatedSint32_.Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return repeatedSint32_[index];
+ }
+
+ public const int RepeatedSint64FieldNumber = 36;
+ private pbc::PopsicleList<long> repeatedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint64_); }
+ }
+ public int RepeatedSint64Count {
+ get { return repeatedSint64_.Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return repeatedSint64_[index];
+ }
+
+ public const int RepeatedFixed32FieldNumber = 37;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 38;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedSfixed32FieldNumber = 39;
+ private pbc::PopsicleList<int> repeatedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed32_); }
+ }
+ public int RepeatedSfixed32Count {
+ get { return repeatedSfixed32_.Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return repeatedSfixed32_[index];
+ }
+
+ public const int RepeatedSfixed64FieldNumber = 40;
+ private pbc::PopsicleList<long> repeatedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed64_); }
+ }
+ public int RepeatedSfixed64Count {
+ get { return repeatedSfixed64_.Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return repeatedSfixed64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 41;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedDoubleFieldNumber = 42;
+ private pbc::PopsicleList<double> repeatedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> RepeatedDoubleList {
+ get { return pbc::Lists.AsReadOnly(repeatedDouble_); }
+ }
+ public int RepeatedDoubleCount {
+ get { return repeatedDouble_.Count; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return repeatedDouble_[index];
+ }
+
+ public const int RepeatedBoolFieldNumber = 43;
+ private pbc::PopsicleList<bool> repeatedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> RepeatedBoolList {
+ get { return pbc::Lists.AsReadOnly(repeatedBool_); }
+ }
+ public int RepeatedBoolCount {
+ get { return repeatedBool_.Count; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return repeatedBool_[index];
+ }
+
+ public const int RepeatedStringFieldNumber = 44;
+ private pbc::PopsicleList<string> repeatedString_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringList {
+ get { return pbc::Lists.AsReadOnly(repeatedString_); }
+ }
+ public int RepeatedStringCount {
+ get { return repeatedString_.Count; }
+ }
+ public string GetRepeatedString(int index) {
+ return repeatedString_[index];
+ }
+
+ public const int RepeatedBytesFieldNumber = 45;
+ private pbc::PopsicleList<pb::ByteString> repeatedBytes_ = new pbc::PopsicleList<pb::ByteString>();
+ public scg::IList<pb::ByteString> RepeatedBytesList {
+ get { return pbc::Lists.AsReadOnly(repeatedBytes_); }
+ }
+ public int RepeatedBytesCount {
+ get { return repeatedBytes_.Count; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return repeatedBytes_[index];
+ }
+
+ public const int RepeatedGroupFieldNumber = 46;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> repeatedGroup_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> RepeatedGroupList {
+ get { return repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return repeatedGroup_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return repeatedGroup_[index];
+ }
+
+ public const int RepeatedNestedMessageFieldNumber = 48;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> repeatedNestedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return repeatedNestedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return repeatedNestedMessage_[index];
+ }
+
+ public const int RepeatedForeignMessageFieldNumber = 49;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> repeatedForeignMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedForeignMessageList {
+ get { return repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return repeatedForeignMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedForeignMessage(int index) {
+ return repeatedForeignMessage_[index];
+ }
+
+ public const int RepeatedImportMessageFieldNumber = 50;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> repeatedImportMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> RepeatedImportMessageList {
+ get { return repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return repeatedImportMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage GetRepeatedImportMessage(int index) {
+ return repeatedImportMessage_[index];
+ }
+
+ public const int RepeatedNestedEnumFieldNumber = 51;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> repeatedNestedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedNestedEnum_); }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return repeatedNestedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return repeatedNestedEnum_[index];
+ }
+
+ public const int RepeatedForeignEnumFieldNumber = 52;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> repeatedForeignEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedForeignEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedForeignEnum_); }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return repeatedForeignEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedForeignEnum(int index) {
+ return repeatedForeignEnum_[index];
+ }
+
+ public const int RepeatedImportEnumFieldNumber = 53;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> repeatedImportEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> RepeatedImportEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedImportEnum_); }
+ }
+ public int RepeatedImportEnumCount {
+ get { return repeatedImportEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum GetRepeatedImportEnum(int index) {
+ return repeatedImportEnum_[index];
+ }
+
+ public const int RepeatedStringPieceFieldNumber = 54;
+ private pbc::PopsicleList<string> repeatedStringPiece_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPiece_); }
+ }
+ public int RepeatedStringPieceCount {
+ get { return repeatedStringPiece_.Count; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return repeatedStringPiece_[index];
+ }
+
+ public const int RepeatedCordFieldNumber = 55;
+ private pbc::PopsicleList<string> repeatedCord_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordList {
+ get { return pbc::Lists.AsReadOnly(repeatedCord_); }
+ }
+ public int RepeatedCordCount {
+ get { return repeatedCord_.Count; }
+ }
+ public string GetRepeatedCord(int index) {
+ return repeatedCord_[index];
+ }
+
+ public const int RepeatedLazyMessageFieldNumber = 57;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> repeatedLazyMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedLazyMessageList {
+ get { return repeatedLazyMessage_; }
+ }
+ public int RepeatedLazyMessageCount {
+ get { return repeatedLazyMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedLazyMessage(int index) {
+ return repeatedLazyMessage_[index];
+ }
+
+ public const int DefaultInt32FieldNumber = 61;
+ private bool hasDefaultInt32;
+ private int defaultInt32_ = 41;
+ public bool HasDefaultInt32 {
+ get { return hasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return defaultInt32_; }
+ }
+
+ public const int DefaultInt64FieldNumber = 62;
+ private bool hasDefaultInt64;
+ private long defaultInt64_ = 42L;
+ public bool HasDefaultInt64 {
+ get { return hasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return defaultInt64_; }
+ }
+
+ public const int DefaultUint32FieldNumber = 63;
+ private bool hasDefaultUint32;
+ private uint defaultUint32_ = 43;
+ public bool HasDefaultUint32 {
+ get { return hasDefaultUint32; }
+ }
+ public uint DefaultUint32 {
+ get { return defaultUint32_; }
+ }
+
+ public const int DefaultUint64FieldNumber = 64;
+ private bool hasDefaultUint64;
+ private ulong defaultUint64_ = 44UL;
+ public bool HasDefaultUint64 {
+ get { return hasDefaultUint64; }
+ }
+ public ulong DefaultUint64 {
+ get { return defaultUint64_; }
+ }
+
+ public const int DefaultSint32FieldNumber = 65;
+ private bool hasDefaultSint32;
+ private int defaultSint32_ = -45;
+ public bool HasDefaultSint32 {
+ get { return hasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return defaultSint32_; }
+ }
+
+ public const int DefaultSint64FieldNumber = 66;
+ private bool hasDefaultSint64;
+ private long defaultSint64_ = 46L;
+ public bool HasDefaultSint64 {
+ get { return hasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return defaultSint64_; }
+ }
+
+ public const int DefaultFixed32FieldNumber = 67;
+ private bool hasDefaultFixed32;
+ private uint defaultFixed32_ = 47;
+ public bool HasDefaultFixed32 {
+ get { return hasDefaultFixed32; }
+ }
+ public uint DefaultFixed32 {
+ get { return defaultFixed32_; }
+ }
+
+ public const int DefaultFixed64FieldNumber = 68;
+ private bool hasDefaultFixed64;
+ private ulong defaultFixed64_ = 48UL;
+ public bool HasDefaultFixed64 {
+ get { return hasDefaultFixed64; }
+ }
+ public ulong DefaultFixed64 {
+ get { return defaultFixed64_; }
+ }
+
+ public const int DefaultSfixed32FieldNumber = 69;
+ private bool hasDefaultSfixed32;
+ private int defaultSfixed32_ = 49;
+ public bool HasDefaultSfixed32 {
+ get { return hasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return defaultSfixed32_; }
+ }
+
+ public const int DefaultSfixed64FieldNumber = 70;
+ private bool hasDefaultSfixed64;
+ private long defaultSfixed64_ = -50L;
+ public bool HasDefaultSfixed64 {
+ get { return hasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return defaultSfixed64_; }
+ }
+
+ public const int DefaultFloatFieldNumber = 71;
+ private bool hasDefaultFloat;
+ private float defaultFloat_ = 51.5F;
+ public bool HasDefaultFloat {
+ get { return hasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return defaultFloat_; }
+ }
+
+ public const int DefaultDoubleFieldNumber = 72;
+ private bool hasDefaultDouble;
+ private double defaultDouble_ = 52000D;
+ public bool HasDefaultDouble {
+ get { return hasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return defaultDouble_; }
+ }
+
+ public const int DefaultBoolFieldNumber = 73;
+ private bool hasDefaultBool;
+ private bool defaultBool_ = true;
+ public bool HasDefaultBool {
+ get { return hasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return defaultBool_; }
+ }
+
+ public const int DefaultStringFieldNumber = 74;
+ private bool hasDefaultString;
+ private string defaultString_ = "hello";
+ public bool HasDefaultString {
+ get { return hasDefaultString; }
+ }
+ public string DefaultString {
+ get { return defaultString_; }
+ }
+
+ public const int DefaultBytesFieldNumber = 75;
+ private bool hasDefaultBytes;
+ private pb::ByteString defaultBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor.Fields[65].DefaultValue;
+ public bool HasDefaultBytes {
+ get { return hasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return defaultBytes_; }
+ }
+
+ public const int DefaultNestedEnumFieldNumber = 81;
+ private bool hasDefaultNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.BAR;
+ public bool HasDefaultNestedEnum {
+ get { return hasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum DefaultNestedEnum {
+ get { return defaultNestedEnum_; }
+ }
+
+ public const int DefaultForeignEnumFieldNumber = 82;
+ private bool hasDefaultForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_BAR;
+ public bool HasDefaultForeignEnum {
+ get { return hasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum DefaultForeignEnum {
+ get { return defaultForeignEnum_; }
+ }
+
+ public const int DefaultImportEnumFieldNumber = 83;
+ private bool hasDefaultImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnum defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_BAR;
+ public bool HasDefaultImportEnum {
+ get { return hasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum DefaultImportEnum {
+ get { return defaultImportEnum_; }
+ }
+
+ public const int DefaultStringPieceFieldNumber = 84;
+ private bool hasDefaultStringPiece;
+ private string defaultStringPiece_ = "abc";
+ public bool HasDefaultStringPiece {
+ get { return hasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return defaultStringPiece_; }
+ }
+
+ public const int DefaultCordFieldNumber = 85;
+ private bool hasDefaultCord;
+ private string defaultCord_ = "123";
+ public bool HasDefaultCord {
+ get { return hasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return defaultCord_; }
+ }
+
+ public const int OneofUint32FieldNumber = 111;
+ public bool HasOneofUint32 {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32; }
+ }
+ public uint OneofUint32 {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) oneofField_ : 0; }
+ }
+
+ public const int OneofNestedMessageFieldNumber = 112;
+ public bool HasOneofNestedMessage {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OneofNestedMessage {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage) oneofField_ : global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int OneofStringFieldNumber = 113;
+ public bool HasOneofString {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString; }
+ }
+ public string OneofString {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) oneofField_ : ""; }
+ }
+
+ public const int OneofBytesFieldNumber = 114;
+ public bool HasOneofBytes {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes; }
+ }
+ public pb::ByteString OneofBytes {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes ? (pb::ByteString) oneofField_ : pb::ByteString.Empty; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testAllTypesFieldNames;
+ if (hasOptionalInt32) {
+ output.WriteInt32(1, field_names[35], OptionalInt32);
+ }
+ if (hasOptionalInt64) {
+ output.WriteInt64(2, field_names[36], OptionalInt64);
+ }
+ if (hasOptionalUint32) {
+ output.WriteUInt32(3, field_names[47], OptionalUint32);
+ }
+ if (hasOptionalUint64) {
+ output.WriteUInt64(4, field_names[48], OptionalUint64);
+ }
+ if (hasOptionalSint32) {
+ output.WriteSInt32(5, field_names[43], OptionalSint32);
+ }
+ if (hasOptionalSint64) {
+ output.WriteSInt64(6, field_names[44], OptionalSint64);
+ }
+ if (hasOptionalFixed32) {
+ output.WriteFixed32(7, field_names[28], OptionalFixed32);
+ }
+ if (hasOptionalFixed64) {
+ output.WriteFixed64(8, field_names[29], OptionalFixed64);
+ }
+ if (hasOptionalSfixed32) {
+ output.WriteSFixed32(9, field_names[41], OptionalSfixed32);
+ }
+ if (hasOptionalSfixed64) {
+ output.WriteSFixed64(10, field_names[42], OptionalSfixed64);
+ }
+ if (hasOptionalFloat) {
+ output.WriteFloat(11, field_names[30], OptionalFloat);
+ }
+ if (hasOptionalDouble) {
+ output.WriteDouble(12, field_names[27], OptionalDouble);
+ }
+ if (hasOptionalBool) {
+ output.WriteBool(13, field_names[24], OptionalBool);
+ }
+ if (hasOptionalString) {
+ output.WriteString(14, field_names[45], OptionalString);
+ }
+ if (hasOptionalBytes) {
+ output.WriteBytes(15, field_names[25], OptionalBytes);
+ }
+ if (hasOptionalGroup) {
+ output.WriteGroup(16, field_names[49], OptionalGroup);
+ }
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(18, field_names[39], OptionalNestedMessage);
+ }
+ if (hasOptionalForeignMessage) {
+ output.WriteMessage(19, field_names[32], OptionalForeignMessage);
+ }
+ if (hasOptionalImportMessage) {
+ output.WriteMessage(20, field_names[34], OptionalImportMessage);
+ }
+ if (hasOptionalNestedEnum) {
+ output.WriteEnum(21, field_names[38], (int) OptionalNestedEnum, OptionalNestedEnum);
+ }
+ if (hasOptionalForeignEnum) {
+ output.WriteEnum(22, field_names[31], (int) OptionalForeignEnum, OptionalForeignEnum);
+ }
+ if (hasOptionalImportEnum) {
+ output.WriteEnum(23, field_names[33], (int) OptionalImportEnum, OptionalImportEnum);
+ }
+ if (hasOptionalStringPiece) {
+ output.WriteString(24, field_names[46], OptionalStringPiece);
+ }
+ if (hasOptionalCord) {
+ output.WriteString(25, field_names[26], OptionalCord);
+ }
+ if (hasOptionalPublicImportMessage) {
+ output.WriteMessage(26, field_names[40], OptionalPublicImportMessage);
+ }
+ if (hasOptionalLazyMessage) {
+ output.WriteMessage(27, field_names[37], OptionalLazyMessage);
+ }
+ if (repeatedInt32_.Count > 0) {
+ output.WriteInt32Array(31, field_names[61], repeatedInt32_);
+ }
+ if (repeatedInt64_.Count > 0) {
+ output.WriteInt64Array(32, field_names[62], repeatedInt64_);
+ }
+ if (repeatedUint32_.Count > 0) {
+ output.WriteUInt32Array(33, field_names[72], repeatedUint32_);
+ }
+ if (repeatedUint64_.Count > 0) {
+ output.WriteUInt64Array(34, field_names[73], repeatedUint64_);
+ }
+ if (repeatedSint32_.Count > 0) {
+ output.WriteSInt32Array(35, field_names[68], repeatedSint32_);
+ }
+ if (repeatedSint64_.Count > 0) {
+ output.WriteSInt64Array(36, field_names[69], repeatedSint64_);
+ }
+ if (repeatedFixed32_.Count > 0) {
+ output.WriteFixed32Array(37, field_names[54], repeatedFixed32_);
+ }
+ if (repeatedFixed64_.Count > 0) {
+ output.WriteFixed64Array(38, field_names[55], repeatedFixed64_);
+ }
+ if (repeatedSfixed32_.Count > 0) {
+ output.WriteSFixed32Array(39, field_names[66], repeatedSfixed32_);
+ }
+ if (repeatedSfixed64_.Count > 0) {
+ output.WriteSFixed64Array(40, field_names[67], repeatedSfixed64_);
+ }
+ if (repeatedFloat_.Count > 0) {
+ output.WriteFloatArray(41, field_names[56], repeatedFloat_);
+ }
+ if (repeatedDouble_.Count > 0) {
+ output.WriteDoubleArray(42, field_names[53], repeatedDouble_);
+ }
+ if (repeatedBool_.Count > 0) {
+ output.WriteBoolArray(43, field_names[50], repeatedBool_);
+ }
+ if (repeatedString_.Count > 0) {
+ output.WriteStringArray(44, field_names[70], repeatedString_);
+ }
+ if (repeatedBytes_.Count > 0) {
+ output.WriteBytesArray(45, field_names[51], repeatedBytes_);
+ }
+ if (repeatedGroup_.Count > 0) {
+ output.WriteGroupArray(46, field_names[74], repeatedGroup_);
+ }
+ if (repeatedNestedMessage_.Count > 0) {
+ output.WriteMessageArray(48, field_names[65], repeatedNestedMessage_);
+ }
+ if (repeatedForeignMessage_.Count > 0) {
+ output.WriteMessageArray(49, field_names[58], repeatedForeignMessage_);
+ }
+ if (repeatedImportMessage_.Count > 0) {
+ output.WriteMessageArray(50, field_names[60], repeatedImportMessage_);
+ }
+ if (repeatedNestedEnum_.Count > 0) {
+ output.WriteEnumArray(51, field_names[64], repeatedNestedEnum_);
+ }
+ if (repeatedForeignEnum_.Count > 0) {
+ output.WriteEnumArray(52, field_names[57], repeatedForeignEnum_);
+ }
+ if (repeatedImportEnum_.Count > 0) {
+ output.WriteEnumArray(53, field_names[59], repeatedImportEnum_);
+ }
+ if (repeatedStringPiece_.Count > 0) {
+ output.WriteStringArray(54, field_names[71], repeatedStringPiece_);
+ }
+ if (repeatedCord_.Count > 0) {
+ output.WriteStringArray(55, field_names[52], repeatedCord_);
+ }
+ if (repeatedLazyMessage_.Count > 0) {
+ output.WriteMessageArray(57, field_names[63], repeatedLazyMessage_);
+ }
+ if (hasDefaultInt32) {
+ output.WriteInt32(61, field_names[9], DefaultInt32);
+ }
+ if (hasDefaultInt64) {
+ output.WriteInt64(62, field_names[10], DefaultInt64);
+ }
+ if (hasDefaultUint32) {
+ output.WriteUInt32(63, field_names[18], DefaultUint32);
+ }
+ if (hasDefaultUint64) {
+ output.WriteUInt64(64, field_names[19], DefaultUint64);
+ }
+ if (hasDefaultSint32) {
+ output.WriteSInt32(65, field_names[14], DefaultSint32);
+ }
+ if (hasDefaultSint64) {
+ output.WriteSInt64(66, field_names[15], DefaultSint64);
+ }
+ if (hasDefaultFixed32) {
+ output.WriteFixed32(67, field_names[4], DefaultFixed32);
+ }
+ if (hasDefaultFixed64) {
+ output.WriteFixed64(68, field_names[5], DefaultFixed64);
+ }
+ if (hasDefaultSfixed32) {
+ output.WriteSFixed32(69, field_names[12], DefaultSfixed32);
+ }
+ if (hasDefaultSfixed64) {
+ output.WriteSFixed64(70, field_names[13], DefaultSfixed64);
+ }
+ if (hasDefaultFloat) {
+ output.WriteFloat(71, field_names[6], DefaultFloat);
+ }
+ if (hasDefaultDouble) {
+ output.WriteDouble(72, field_names[3], DefaultDouble);
+ }
+ if (hasDefaultBool) {
+ output.WriteBool(73, field_names[0], DefaultBool);
+ }
+ if (hasDefaultString) {
+ output.WriteString(74, field_names[16], DefaultString);
+ }
+ if (hasDefaultBytes) {
+ output.WriteBytes(75, field_names[1], DefaultBytes);
+ }
+ if (hasDefaultNestedEnum) {
+ output.WriteEnum(81, field_names[11], (int) DefaultNestedEnum, DefaultNestedEnum);
+ }
+ if (hasDefaultForeignEnum) {
+ output.WriteEnum(82, field_names[7], (int) DefaultForeignEnum, DefaultForeignEnum);
+ }
+ if (hasDefaultImportEnum) {
+ output.WriteEnum(83, field_names[8], (int) DefaultImportEnum, DefaultImportEnum);
+ }
+ if (hasDefaultStringPiece) {
+ output.WriteString(84, field_names[17], DefaultStringPiece);
+ }
+ if (hasDefaultCord) {
+ output.WriteString(85, field_names[2], DefaultCord);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ output.WriteUInt32(111, field_names[23], OneofUint32);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ output.WriteMessage(112, field_names[21], OneofNestedMessage);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ output.WriteString(113, field_names[22], OneofString);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
+ output.WriteBytes(114, field_names[20], OneofBytes);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, OptionalInt32);
+ }
+ if (hasOptionalInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(2, OptionalInt64);
+ }
+ if (hasOptionalUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(3, OptionalUint32);
+ }
+ if (hasOptionalUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(4, OptionalUint64);
+ }
+ if (hasOptionalSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(5, OptionalSint32);
+ }
+ if (hasOptionalSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(6, OptionalSint64);
+ }
+ if (hasOptionalFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(7, OptionalFixed32);
+ }
+ if (hasOptionalFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(8, OptionalFixed64);
+ }
+ if (hasOptionalSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(9, OptionalSfixed32);
+ }
+ if (hasOptionalSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(10, OptionalSfixed64);
+ }
+ if (hasOptionalFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, OptionalFloat);
+ }
+ if (hasOptionalDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(12, OptionalDouble);
+ }
+ if (hasOptionalBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(13, OptionalBool);
+ }
+ if (hasOptionalString) {
+ size += pb::CodedOutputStream.ComputeStringSize(14, OptionalString);
+ }
+ if (hasOptionalBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(15, OptionalBytes);
+ }
+ if (hasOptionalGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(16, OptionalGroup);
+ }
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(18, OptionalNestedMessage);
+ }
+ if (hasOptionalForeignMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(19, OptionalForeignMessage);
+ }
+ if (hasOptionalImportMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(20, OptionalImportMessage);
+ }
+ if (hasOptionalNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(21, (int) OptionalNestedEnum);
+ }
+ if (hasOptionalForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(22, (int) OptionalForeignEnum);
+ }
+ if (hasOptionalImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(23, (int) OptionalImportEnum);
+ }
+ if (hasOptionalStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(24, OptionalStringPiece);
+ }
+ if (hasOptionalCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(25, OptionalCord);
+ }
+ if (hasOptionalPublicImportMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(26, OptionalPublicImportMessage);
+ }
+ if (hasOptionalLazyMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(27, OptionalLazyMessage);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in RepeatedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 2 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedDouble_.Count;
+ size += dataSize;
+ size += 2 * repeatedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * repeatedBool_.Count;
+ size += dataSize;
+ size += 2 * repeatedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedString_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (pb::ByteString element in RepeatedBytesList) {
+ dataSize += pb::CodedOutputStream.ComputeBytesSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedBytes_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup element in RepeatedGroupList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(46, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage element in RepeatedNestedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(48, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in RepeatedForeignMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(49, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportMessage element in RepeatedImportMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(50, element);
+ }
+ {
+ int dataSize = 0;
+ if (repeatedNestedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum element in repeatedNestedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedNestedEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedForeignEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in repeatedForeignEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedForeignEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedImportEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportEnum element in repeatedImportEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedImportEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedStringPiece_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedCord_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage element in RepeatedLazyMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(57, element);
+ }
+ if (hasDefaultInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(61, DefaultInt32);
+ }
+ if (hasDefaultInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(62, DefaultInt64);
+ }
+ if (hasDefaultUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(63, DefaultUint32);
+ }
+ if (hasDefaultUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(64, DefaultUint64);
+ }
+ if (hasDefaultSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(65, DefaultSint32);
+ }
+ if (hasDefaultSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(66, DefaultSint64);
+ }
+ if (hasDefaultFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(67, DefaultFixed32);
+ }
+ if (hasDefaultFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(68, DefaultFixed64);
+ }
+ if (hasDefaultSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(69, DefaultSfixed32);
+ }
+ if (hasDefaultSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(70, DefaultSfixed64);
+ }
+ if (hasDefaultFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(71, DefaultFloat);
+ }
+ if (hasDefaultDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(72, DefaultDouble);
+ }
+ if (hasDefaultBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(73, DefaultBool);
+ }
+ if (hasDefaultString) {
+ size += pb::CodedOutputStream.ComputeStringSize(74, DefaultString);
+ }
+ if (hasDefaultBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(75, DefaultBytes);
+ }
+ if (hasDefaultNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(81, (int) DefaultNestedEnum);
+ }
+ if (hasDefaultForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(82, (int) DefaultForeignEnum);
+ }
+ if (hasDefaultImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(83, (int) DefaultImportEnum);
+ }
+ if (hasDefaultStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(84, DefaultStringPiece);
+ }
+ if (hasDefaultCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(85, DefaultCord);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(111, OneofUint32);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(112, OneofNestedMessage);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ size += pb::CodedOutputStream.ComputeStringSize(113, OneofString);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(114, OneofBytes);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestAllTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestAllTypes MakeReadOnly() {
+ repeatedInt32_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedUint32_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ repeatedSint32_.MakeReadOnly();
+ repeatedSint64_.MakeReadOnly();
+ repeatedFixed32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedSfixed32_.MakeReadOnly();
+ repeatedSfixed64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedDouble_.MakeReadOnly();
+ repeatedBool_.MakeReadOnly();
+ repeatedString_.MakeReadOnly();
+ repeatedBytes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ repeatedNestedMessage_.MakeReadOnly();
+ repeatedForeignMessage_.MakeReadOnly();
+ repeatedImportMessage_.MakeReadOnly();
+ repeatedNestedEnum_.MakeReadOnly();
+ repeatedForeignEnum_.MakeReadOnly();
+ repeatedImportEnum_.MakeReadOnly();
+ repeatedStringPiece_.MakeReadOnly();
+ repeatedCord_.MakeReadOnly();
+ repeatedLazyMessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestAllTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestAllTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestAllTypes result;
+
+ private TestAllTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestAllTypes original = result;
+ result = new TestAllTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestAllTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor; }
+ }
+
+ public override TestAllTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override TestAllTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestAllTypes) {
+ return MergeFrom((TestAllTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalInt32) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ if (other.HasOptionalInt64) {
+ OptionalInt64 = other.OptionalInt64;
+ }
+ if (other.HasOptionalUint32) {
+ OptionalUint32 = other.OptionalUint32;
+ }
+ if (other.HasOptionalUint64) {
+ OptionalUint64 = other.OptionalUint64;
+ }
+ if (other.HasOptionalSint32) {
+ OptionalSint32 = other.OptionalSint32;
+ }
+ if (other.HasOptionalSint64) {
+ OptionalSint64 = other.OptionalSint64;
+ }
+ if (other.HasOptionalFixed32) {
+ OptionalFixed32 = other.OptionalFixed32;
+ }
+ if (other.HasOptionalFixed64) {
+ OptionalFixed64 = other.OptionalFixed64;
+ }
+ if (other.HasOptionalSfixed32) {
+ OptionalSfixed32 = other.OptionalSfixed32;
+ }
+ if (other.HasOptionalSfixed64) {
+ OptionalSfixed64 = other.OptionalSfixed64;
+ }
+ if (other.HasOptionalFloat) {
+ OptionalFloat = other.OptionalFloat;
+ }
+ if (other.HasOptionalDouble) {
+ OptionalDouble = other.OptionalDouble;
+ }
+ if (other.HasOptionalBool) {
+ OptionalBool = other.OptionalBool;
+ }
+ if (other.HasOptionalString) {
+ OptionalString = other.OptionalString;
+ }
+ if (other.HasOptionalBytes) {
+ OptionalBytes = other.OptionalBytes;
+ }
+ if (other.HasOptionalGroup) {
+ MergeOptionalGroup(other.OptionalGroup);
+ }
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ if (other.HasOptionalForeignMessage) {
+ MergeOptionalForeignMessage(other.OptionalForeignMessage);
+ }
+ if (other.HasOptionalImportMessage) {
+ MergeOptionalImportMessage(other.OptionalImportMessage);
+ }
+ if (other.HasOptionalNestedEnum) {
+ OptionalNestedEnum = other.OptionalNestedEnum;
+ }
+ if (other.HasOptionalForeignEnum) {
+ OptionalForeignEnum = other.OptionalForeignEnum;
+ }
+ if (other.HasOptionalImportEnum) {
+ OptionalImportEnum = other.OptionalImportEnum;
+ }
+ if (other.HasOptionalStringPiece) {
+ OptionalStringPiece = other.OptionalStringPiece;
+ }
+ if (other.HasOptionalCord) {
+ OptionalCord = other.OptionalCord;
+ }
+ if (other.HasOptionalPublicImportMessage) {
+ MergeOptionalPublicImportMessage(other.OptionalPublicImportMessage);
+ }
+ if (other.HasOptionalLazyMessage) {
+ MergeOptionalLazyMessage(other.OptionalLazyMessage);
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ result.repeatedInt32_.Add(other.repeatedInt32_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ result.repeatedInt64_.Add(other.repeatedInt64_);
+ }
+ if (other.repeatedUint32_.Count != 0) {
+ result.repeatedUint32_.Add(other.repeatedUint32_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ result.repeatedUint64_.Add(other.repeatedUint64_);
+ }
+ if (other.repeatedSint32_.Count != 0) {
+ result.repeatedSint32_.Add(other.repeatedSint32_);
+ }
+ if (other.repeatedSint64_.Count != 0) {
+ result.repeatedSint64_.Add(other.repeatedSint64_);
+ }
+ if (other.repeatedFixed32_.Count != 0) {
+ result.repeatedFixed32_.Add(other.repeatedFixed32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ result.repeatedFixed64_.Add(other.repeatedFixed64_);
+ }
+ if (other.repeatedSfixed32_.Count != 0) {
+ result.repeatedSfixed32_.Add(other.repeatedSfixed32_);
+ }
+ if (other.repeatedSfixed64_.Count != 0) {
+ result.repeatedSfixed64_.Add(other.repeatedSfixed64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ result.repeatedFloat_.Add(other.repeatedFloat_);
+ }
+ if (other.repeatedDouble_.Count != 0) {
+ result.repeatedDouble_.Add(other.repeatedDouble_);
+ }
+ if (other.repeatedBool_.Count != 0) {
+ result.repeatedBool_.Add(other.repeatedBool_);
+ }
+ if (other.repeatedString_.Count != 0) {
+ result.repeatedString_.Add(other.repeatedString_);
+ }
+ if (other.repeatedBytes_.Count != 0) {
+ result.repeatedBytes_.Add(other.repeatedBytes_);
+ }
+ if (other.repeatedGroup_.Count != 0) {
+ result.repeatedGroup_.Add(other.repeatedGroup_);
+ }
+ if (other.repeatedNestedMessage_.Count != 0) {
+ result.repeatedNestedMessage_.Add(other.repeatedNestedMessage_);
+ }
+ if (other.repeatedForeignMessage_.Count != 0) {
+ result.repeatedForeignMessage_.Add(other.repeatedForeignMessage_);
+ }
+ if (other.repeatedImportMessage_.Count != 0) {
+ result.repeatedImportMessage_.Add(other.repeatedImportMessage_);
+ }
+ if (other.repeatedNestedEnum_.Count != 0) {
+ result.repeatedNestedEnum_.Add(other.repeatedNestedEnum_);
+ }
+ if (other.repeatedForeignEnum_.Count != 0) {
+ result.repeatedForeignEnum_.Add(other.repeatedForeignEnum_);
+ }
+ if (other.repeatedImportEnum_.Count != 0) {
+ result.repeatedImportEnum_.Add(other.repeatedImportEnum_);
+ }
+ if (other.repeatedStringPiece_.Count != 0) {
+ result.repeatedStringPiece_.Add(other.repeatedStringPiece_);
+ }
+ if (other.repeatedCord_.Count != 0) {
+ result.repeatedCord_.Add(other.repeatedCord_);
+ }
+ if (other.repeatedLazyMessage_.Count != 0) {
+ result.repeatedLazyMessage_.Add(other.repeatedLazyMessage_);
+ }
+ if (other.HasDefaultInt32) {
+ DefaultInt32 = other.DefaultInt32;
+ }
+ if (other.HasDefaultInt64) {
+ DefaultInt64 = other.DefaultInt64;
+ }
+ if (other.HasDefaultUint32) {
+ DefaultUint32 = other.DefaultUint32;
+ }
+ if (other.HasDefaultUint64) {
+ DefaultUint64 = other.DefaultUint64;
+ }
+ if (other.HasDefaultSint32) {
+ DefaultSint32 = other.DefaultSint32;
+ }
+ if (other.HasDefaultSint64) {
+ DefaultSint64 = other.DefaultSint64;
+ }
+ if (other.HasDefaultFixed32) {
+ DefaultFixed32 = other.DefaultFixed32;
+ }
+ if (other.HasDefaultFixed64) {
+ DefaultFixed64 = other.DefaultFixed64;
+ }
+ if (other.HasDefaultSfixed32) {
+ DefaultSfixed32 = other.DefaultSfixed32;
+ }
+ if (other.HasDefaultSfixed64) {
+ DefaultSfixed64 = other.DefaultSfixed64;
+ }
+ if (other.HasDefaultFloat) {
+ DefaultFloat = other.DefaultFloat;
+ }
+ if (other.HasDefaultDouble) {
+ DefaultDouble = other.DefaultDouble;
+ }
+ if (other.HasDefaultBool) {
+ DefaultBool = other.DefaultBool;
+ }
+ if (other.HasDefaultString) {
+ DefaultString = other.DefaultString;
+ }
+ if (other.HasDefaultBytes) {
+ DefaultBytes = other.DefaultBytes;
+ }
+ if (other.HasDefaultNestedEnum) {
+ DefaultNestedEnum = other.DefaultNestedEnum;
+ }
+ if (other.HasDefaultForeignEnum) {
+ DefaultForeignEnum = other.DefaultForeignEnum;
+ }
+ if (other.HasDefaultImportEnum) {
+ DefaultImportEnum = other.DefaultImportEnum;
+ }
+ if (other.HasDefaultStringPiece) {
+ DefaultStringPiece = other.DefaultStringPiece;
+ }
+ if (other.HasDefaultCord) {
+ DefaultCord = other.DefaultCord;
+ }
+ switch (other.OneofFieldCase) {
+ case OneofFieldOneofCase.OneofUint32: {
+ SetOneofUint32(other.OneofUint32);
+ break;
+ }
+ case OneofFieldOneofCase.OneofNestedMessage: {
+ MergeOneofNestedMessage(other.OneofNestedMessage);
+ break;
+ }
+ case OneofFieldOneofCase.OneofString: {
+ SetOneofString(other.OneofString);
+ break;
+ }
+ case OneofFieldOneofCase.OneofBytes: {
+ SetOneofBytes(other.OneofBytes);
+ break;
+ }
+ case OneofFieldOneofCase.None: { break; }
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testAllTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testAllTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasOptionalInt32 = input.ReadInt32(ref result.optionalInt32_);
+ break;
+ }
+ case 16: {
+ result.hasOptionalInt64 = input.ReadInt64(ref result.optionalInt64_);
+ break;
+ }
+ case 24: {
+ result.hasOptionalUint32 = input.ReadUInt32(ref result.optionalUint32_);
+ break;
+ }
+ case 32: {
+ result.hasOptionalUint64 = input.ReadUInt64(ref result.optionalUint64_);
+ break;
+ }
+ case 40: {
+ result.hasOptionalSint32 = input.ReadSInt32(ref result.optionalSint32_);
+ break;
+ }
+ case 48: {
+ result.hasOptionalSint64 = input.ReadSInt64(ref result.optionalSint64_);
+ break;
+ }
+ case 61: {
+ result.hasOptionalFixed32 = input.ReadFixed32(ref result.optionalFixed32_);
+ break;
+ }
+ case 65: {
+ result.hasOptionalFixed64 = input.ReadFixed64(ref result.optionalFixed64_);
+ break;
+ }
+ case 77: {
+ result.hasOptionalSfixed32 = input.ReadSFixed32(ref result.optionalSfixed32_);
+ break;
+ }
+ case 81: {
+ result.hasOptionalSfixed64 = input.ReadSFixed64(ref result.optionalSfixed64_);
+ break;
+ }
+ case 93: {
+ result.hasOptionalFloat = input.ReadFloat(ref result.optionalFloat_);
+ break;
+ }
+ case 97: {
+ result.hasOptionalDouble = input.ReadDouble(ref result.optionalDouble_);
+ break;
+ }
+ case 104: {
+ result.hasOptionalBool = input.ReadBool(ref result.optionalBool_);
+ break;
+ }
+ case 114: {
+ result.hasOptionalString = input.ReadString(ref result.optionalString_);
+ break;
+ }
+ case 122: {
+ result.hasOptionalBytes = input.ReadBytes(ref result.optionalBytes_);
+ break;
+ }
+ case 131: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder();
+ if (result.hasOptionalGroup) {
+ subBuilder.MergeFrom(OptionalGroup);
+ }
+ input.ReadGroup(16, subBuilder, extensionRegistry);
+ OptionalGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 146: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 154: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (result.hasOptionalForeignMessage) {
+ subBuilder.MergeFrom(OptionalForeignMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalForeignMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 162: {
+ global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder();
+ if (result.hasOptionalImportMessage) {
+ subBuilder.MergeFrom(OptionalImportMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalImportMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 168: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalNestedEnum_, out unknown)) {
+ result.hasOptionalNestedEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(21, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 176: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalForeignEnum_, out unknown)) {
+ result.hasOptionalForeignEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(22, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 184: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalImportEnum_, out unknown)) {
+ result.hasOptionalImportEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(23, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 194: {
+ result.hasOptionalStringPiece = input.ReadString(ref result.optionalStringPiece_);
+ break;
+ }
+ case 202: {
+ result.hasOptionalCord = input.ReadString(ref result.optionalCord_);
+ break;
+ }
+ case 210: {
+ global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.CreateBuilder();
+ if (result.hasOptionalPublicImportMessage) {
+ subBuilder.MergeFrom(OptionalPublicImportMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalPublicImportMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 218: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalLazyMessage) {
+ subBuilder.MergeFrom(OptionalLazyMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalLazyMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 250:
+ case 248: {
+ input.ReadInt32Array(tag, field_name, result.repeatedInt32_);
+ break;
+ }
+ case 258:
+ case 256: {
+ input.ReadInt64Array(tag, field_name, result.repeatedInt64_);
+ break;
+ }
+ case 266:
+ case 264: {
+ input.ReadUInt32Array(tag, field_name, result.repeatedUint32_);
+ break;
+ }
+ case 274:
+ case 272: {
+ input.ReadUInt64Array(tag, field_name, result.repeatedUint64_);
+ break;
+ }
+ case 282:
+ case 280: {
+ input.ReadSInt32Array(tag, field_name, result.repeatedSint32_);
+ break;
+ }
+ case 290:
+ case 288: {
+ input.ReadSInt64Array(tag, field_name, result.repeatedSint64_);
+ break;
+ }
+ case 298:
+ case 301: {
+ input.ReadFixed32Array(tag, field_name, result.repeatedFixed32_);
+ break;
+ }
+ case 306:
+ case 305: {
+ input.ReadFixed64Array(tag, field_name, result.repeatedFixed64_);
+ break;
+ }
+ case 314:
+ case 317: {
+ input.ReadSFixed32Array(tag, field_name, result.repeatedSfixed32_);
+ break;
+ }
+ case 322:
+ case 321: {
+ input.ReadSFixed64Array(tag, field_name, result.repeatedSfixed64_);
+ break;
+ }
+ case 330:
+ case 333: {
+ input.ReadFloatArray(tag, field_name, result.repeatedFloat_);
+ break;
+ }
+ case 338:
+ case 337: {
+ input.ReadDoubleArray(tag, field_name, result.repeatedDouble_);
+ break;
+ }
+ case 346:
+ case 344: {
+ input.ReadBoolArray(tag, field_name, result.repeatedBool_);
+ break;
+ }
+ case 354: {
+ input.ReadStringArray(tag, field_name, result.repeatedString_);
+ break;
+ }
+ case 362: {
+ input.ReadBytesArray(tag, field_name, result.repeatedBytes_);
+ break;
+ }
+ case 371: {
+ input.ReadGroupArray(tag, field_name, result.repeatedGroup_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 386: {
+ input.ReadMessageArray(tag, field_name, result.repeatedNestedMessage_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 394: {
+ input.ReadMessageArray(tag, field_name, result.repeatedForeignMessage_, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 402: {
+ input.ReadMessageArray(tag, field_name, result.repeatedImportMessage_, global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 410:
+ case 408: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>(tag, field_name, result.repeatedNestedEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(51, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 418:
+ case 416: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.repeatedForeignEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(52, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 426:
+ case 424: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ImportEnum>(tag, field_name, result.repeatedImportEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(53, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 434: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringPiece_);
+ break;
+ }
+ case 442: {
+ input.ReadStringArray(tag, field_name, result.repeatedCord_);
+ break;
+ }
+ case 458: {
+ input.ReadMessageArray(tag, field_name, result.repeatedLazyMessage_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 488: {
+ result.hasDefaultInt32 = input.ReadInt32(ref result.defaultInt32_);
+ break;
+ }
+ case 496: {
+ result.hasDefaultInt64 = input.ReadInt64(ref result.defaultInt64_);
+ break;
+ }
+ case 504: {
+ result.hasDefaultUint32 = input.ReadUInt32(ref result.defaultUint32_);
+ break;
+ }
+ case 512: {
+ result.hasDefaultUint64 = input.ReadUInt64(ref result.defaultUint64_);
+ break;
+ }
+ case 520: {
+ result.hasDefaultSint32 = input.ReadSInt32(ref result.defaultSint32_);
+ break;
+ }
+ case 528: {
+ result.hasDefaultSint64 = input.ReadSInt64(ref result.defaultSint64_);
+ break;
+ }
+ case 541: {
+ result.hasDefaultFixed32 = input.ReadFixed32(ref result.defaultFixed32_);
+ break;
+ }
+ case 545: {
+ result.hasDefaultFixed64 = input.ReadFixed64(ref result.defaultFixed64_);
+ break;
+ }
+ case 557: {
+ result.hasDefaultSfixed32 = input.ReadSFixed32(ref result.defaultSfixed32_);
+ break;
+ }
+ case 561: {
+ result.hasDefaultSfixed64 = input.ReadSFixed64(ref result.defaultSfixed64_);
+ break;
+ }
+ case 573: {
+ result.hasDefaultFloat = input.ReadFloat(ref result.defaultFloat_);
+ break;
+ }
+ case 577: {
+ result.hasDefaultDouble = input.ReadDouble(ref result.defaultDouble_);
+ break;
+ }
+ case 584: {
+ result.hasDefaultBool = input.ReadBool(ref result.defaultBool_);
+ break;
+ }
+ case 594: {
+ result.hasDefaultString = input.ReadString(ref result.defaultString_);
+ break;
+ }
+ case 602: {
+ result.hasDefaultBytes = input.ReadBytes(ref result.defaultBytes_);
+ break;
+ }
+ case 648: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultNestedEnum_, out unknown)) {
+ result.hasDefaultNestedEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(81, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 656: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultForeignEnum_, out unknown)) {
+ result.hasDefaultForeignEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(82, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 664: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultImportEnum_, out unknown)) {
+ result.hasDefaultImportEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(83, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 674: {
+ result.hasDefaultStringPiece = input.ReadString(ref result.defaultStringPiece_);
+ break;
+ }
+ case 682: {
+ result.hasDefaultCord = input.ReadString(ref result.defaultCord_);
+ break;
+ }
+ case 888: {
+ uint value = 0;
+ if (input.ReadUInt32(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
+ }
+ break;
+ }
+ case 898: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ subBuilder.MergeFrom(OneofNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.oneofField_ = subBuilder.BuildPartial();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ break;
+ }
+ case 906: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofString;
+ }
+ break;
+ }
+ case 914: {
+ pb::ByteString value = pb::ByteString.Empty;
+ if (input.ReadBytes(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalInt32 {
+ get { return result.hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ PrepareBuilder();
+ result.hasOptionalInt32 = true;
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ PrepareBuilder();
+ result.hasOptionalInt32 = false;
+ result.optionalInt32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalInt64 {
+ get { return result.hasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return result.OptionalInt64; }
+ set { SetOptionalInt64(value); }
+ }
+ public Builder SetOptionalInt64(long value) {
+ PrepareBuilder();
+ result.hasOptionalInt64 = true;
+ result.optionalInt64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt64() {
+ PrepareBuilder();
+ result.hasOptionalInt64 = false;
+ result.optionalInt64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalUint32 {
+ get { return result.hasOptionalUint32; }
+ }
+ public uint OptionalUint32 {
+ get { return result.OptionalUint32; }
+ set { SetOptionalUint32(value); }
+ }
+ public Builder SetOptionalUint32(uint value) {
+ PrepareBuilder();
+ result.hasOptionalUint32 = true;
+ result.optionalUint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint32() {
+ PrepareBuilder();
+ result.hasOptionalUint32 = false;
+ result.optionalUint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalUint64 {
+ get { return result.hasOptionalUint64; }
+ }
+ public ulong OptionalUint64 {
+ get { return result.OptionalUint64; }
+ set { SetOptionalUint64(value); }
+ }
+ public Builder SetOptionalUint64(ulong value) {
+ PrepareBuilder();
+ result.hasOptionalUint64 = true;
+ result.optionalUint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint64() {
+ PrepareBuilder();
+ result.hasOptionalUint64 = false;
+ result.optionalUint64_ = 0UL;
+ return this;
+ }
+
+ public bool HasOptionalSint32 {
+ get { return result.hasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return result.OptionalSint32; }
+ set { SetOptionalSint32(value); }
+ }
+ public Builder SetOptionalSint32(int value) {
+ PrepareBuilder();
+ result.hasOptionalSint32 = true;
+ result.optionalSint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint32() {
+ PrepareBuilder();
+ result.hasOptionalSint32 = false;
+ result.optionalSint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSint64 {
+ get { return result.hasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return result.OptionalSint64; }
+ set { SetOptionalSint64(value); }
+ }
+ public Builder SetOptionalSint64(long value) {
+ PrepareBuilder();
+ result.hasOptionalSint64 = true;
+ result.optionalSint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint64() {
+ PrepareBuilder();
+ result.hasOptionalSint64 = false;
+ result.optionalSint64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalFixed32 {
+ get { return result.hasOptionalFixed32; }
+ }
+ public uint OptionalFixed32 {
+ get { return result.OptionalFixed32; }
+ set { SetOptionalFixed32(value); }
+ }
+ public Builder SetOptionalFixed32(uint value) {
+ PrepareBuilder();
+ result.hasOptionalFixed32 = true;
+ result.optionalFixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed32() {
+ PrepareBuilder();
+ result.hasOptionalFixed32 = false;
+ result.optionalFixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalFixed64 {
+ get { return result.hasOptionalFixed64; }
+ }
+ public ulong OptionalFixed64 {
+ get { return result.OptionalFixed64; }
+ set { SetOptionalFixed64(value); }
+ }
+ public Builder SetOptionalFixed64(ulong value) {
+ PrepareBuilder();
+ result.hasOptionalFixed64 = true;
+ result.optionalFixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed64() {
+ PrepareBuilder();
+ result.hasOptionalFixed64 = false;
+ result.optionalFixed64_ = 0UL;
+ return this;
+ }
+
+ public bool HasOptionalSfixed32 {
+ get { return result.hasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return result.OptionalSfixed32; }
+ set { SetOptionalSfixed32(value); }
+ }
+ public Builder SetOptionalSfixed32(int value) {
+ PrepareBuilder();
+ result.hasOptionalSfixed32 = true;
+ result.optionalSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed32() {
+ PrepareBuilder();
+ result.hasOptionalSfixed32 = false;
+ result.optionalSfixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSfixed64 {
+ get { return result.hasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return result.OptionalSfixed64; }
+ set { SetOptionalSfixed64(value); }
+ }
+ public Builder SetOptionalSfixed64(long value) {
+ PrepareBuilder();
+ result.hasOptionalSfixed64 = true;
+ result.optionalSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed64() {
+ PrepareBuilder();
+ result.hasOptionalSfixed64 = false;
+ result.optionalSfixed64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalFloat {
+ get { return result.hasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return result.OptionalFloat; }
+ set { SetOptionalFloat(value); }
+ }
+ public Builder SetOptionalFloat(float value) {
+ PrepareBuilder();
+ result.hasOptionalFloat = true;
+ result.optionalFloat_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFloat() {
+ PrepareBuilder();
+ result.hasOptionalFloat = false;
+ result.optionalFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOptionalDouble {
+ get { return result.hasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return result.OptionalDouble; }
+ set { SetOptionalDouble(value); }
+ }
+ public Builder SetOptionalDouble(double value) {
+ PrepareBuilder();
+ result.hasOptionalDouble = true;
+ result.optionalDouble_ = value;
+ return this;
+ }
+ public Builder ClearOptionalDouble() {
+ PrepareBuilder();
+ result.hasOptionalDouble = false;
+ result.optionalDouble_ = 0D;
+ return this;
+ }
+
+ public bool HasOptionalBool {
+ get { return result.hasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return result.OptionalBool; }
+ set { SetOptionalBool(value); }
+ }
+ public Builder SetOptionalBool(bool value) {
+ PrepareBuilder();
+ result.hasOptionalBool = true;
+ result.optionalBool_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBool() {
+ PrepareBuilder();
+ result.hasOptionalBool = false;
+ result.optionalBool_ = false;
+ return this;
+ }
+
+ public bool HasOptionalString {
+ get { return result.hasOptionalString; }
+ }
+ public string OptionalString {
+ get { return result.OptionalString; }
+ set { SetOptionalString(value); }
+ }
+ public Builder SetOptionalString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalString = true;
+ result.optionalString_ = value;
+ return this;
+ }
+ public Builder ClearOptionalString() {
+ PrepareBuilder();
+ result.hasOptionalString = false;
+ result.optionalString_ = "";
+ return this;
+ }
+
+ public bool HasOptionalBytes {
+ get { return result.hasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return result.OptionalBytes; }
+ set { SetOptionalBytes(value); }
+ }
+ public Builder SetOptionalBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalBytes = true;
+ result.optionalBytes_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBytes() {
+ PrepareBuilder();
+ result.hasOptionalBytes = false;
+ result.optionalBytes_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasOptionalGroup {
+ get { return result.hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {
+ get { return result.OptionalGroup; }
+ set { SetOptionalGroup(value); }
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroup &&
+ result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance) {
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroup_ = value;
+ }
+ result.hasOptionalGroup = true;
+ return this;
+ }
+ public Builder ClearOptionalGroup() {
+ PrepareBuilder();
+ result.hasOptionalGroup = false;
+ result.optionalGroup_ = null;
+ return this;
+ }
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalForeignMessage {
+ get { return result.hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {
+ get { return result.OptionalForeignMessage; }
+ set { SetOptionalForeignMessage(value); }
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalForeignMessage &&
+ result.optionalForeignMessage_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.optionalForeignMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalForeignMessage_ = value;
+ }
+ result.hasOptionalForeignMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalForeignMessage() {
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = false;
+ result.optionalForeignMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalImportMessage {
+ get { return result.hasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {
+ get { return result.OptionalImportMessage; }
+ set { SetOptionalImportMessage(value); }
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalImportMessage &&
+ result.optionalImportMessage_ != global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) {
+ result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder(result.optionalImportMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalImportMessage_ = value;
+ }
+ result.hasOptionalImportMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalImportMessage() {
+ PrepareBuilder();
+ result.hasOptionalImportMessage = false;
+ result.optionalImportMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalNestedEnum {
+ get { return result.hasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
+ get { return result.OptionalNestedEnum; }
+ set { SetOptionalNestedEnum(value); }
+ }
+ public Builder SetOptionalNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.hasOptionalNestedEnum = true;
+ result.optionalNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalNestedEnum() {
+ PrepareBuilder();
+ result.hasOptionalNestedEnum = false;
+ result.optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.FOO;
+ return this;
+ }
+
+ public bool HasOptionalForeignEnum {
+ get { return result.hasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum OptionalForeignEnum {
+ get { return result.OptionalForeignEnum; }
+ set { SetOptionalForeignEnum(value); }
+ }
+ public Builder SetOptionalForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasOptionalForeignEnum = true;
+ result.optionalForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalForeignEnum() {
+ PrepareBuilder();
+ result.hasOptionalForeignEnum = false;
+ result.optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasOptionalImportEnum {
+ get { return result.hasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum OptionalImportEnum {
+ get { return result.OptionalImportEnum; }
+ set { SetOptionalImportEnum(value); }
+ }
+ public Builder SetOptionalImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.hasOptionalImportEnum = true;
+ result.optionalImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalImportEnum() {
+ PrepareBuilder();
+ result.hasOptionalImportEnum = false;
+ result.optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_FOO;
+ return this;
+ }
+
+ public bool HasOptionalStringPiece {
+ get { return result.hasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return result.OptionalStringPiece; }
+ set { SetOptionalStringPiece(value); }
+ }
+ public Builder SetOptionalStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalStringPiece = true;
+ result.optionalStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearOptionalStringPiece() {
+ PrepareBuilder();
+ result.hasOptionalStringPiece = false;
+ result.optionalStringPiece_ = "";
+ return this;
+ }
+
+ public bool HasOptionalCord {
+ get { return result.hasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return result.OptionalCord; }
+ set { SetOptionalCord(value); }
+ }
+ public Builder SetOptionalCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalCord = true;
+ result.optionalCord_ = value;
+ return this;
+ }
+ public Builder ClearOptionalCord() {
+ PrepareBuilder();
+ result.hasOptionalCord = false;
+ result.optionalCord_ = "";
+ return this;
+ }
+
+ public bool HasOptionalPublicImportMessage {
+ get { return result.hasOptionalPublicImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.PublicImportMessage OptionalPublicImportMessage {
+ get { return result.OptionalPublicImportMessage; }
+ set { SetOptionalPublicImportMessage(value); }
+ }
+ public Builder SetOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = true;
+ result.optionalPublicImportMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = true;
+ result.optionalPublicImportMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalPublicImportMessage &&
+ result.optionalPublicImportMessage_ != global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance) {
+ result.optionalPublicImportMessage_ = global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.CreateBuilder(result.optionalPublicImportMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalPublicImportMessage_ = value;
+ }
+ result.hasOptionalPublicImportMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalPublicImportMessage() {
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = false;
+ result.optionalPublicImportMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalLazyMessage {
+ get { return result.hasOptionalLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalLazyMessage {
+ get { return result.OptionalLazyMessage; }
+ set { SetOptionalLazyMessage(value); }
+ }
+ public Builder SetOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = true;
+ result.optionalLazyMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = true;
+ result.optionalLazyMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalLazyMessage &&
+ result.optionalLazyMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.optionalLazyMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalLazyMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalLazyMessage_ = value;
+ }
+ result.hasOptionalLazyMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalLazyMessage() {
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = false;
+ result.optionalLazyMessage_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return PrepareBuilder().repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ PrepareBuilder();
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return PrepareBuilder().repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ PrepareBuilder();
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> RepeatedUint32List {
+ get { return PrepareBuilder().repeatedUint32_; }
+ }
+ public int RepeatedUint32Count {
+ get { return result.RepeatedUint32Count; }
+ }
+ public uint GetRepeatedUint32(int index) {
+ return result.GetRepeatedUint32(index);
+ }
+ public Builder SetRepeatedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedUint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedUint32(uint value) {
+ PrepareBuilder();
+ result.repeatedUint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint32() {
+ PrepareBuilder();
+ result.repeatedUint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return PrepareBuilder().repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedUint64(ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ PrepareBuilder();
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSint32List {
+ get { return PrepareBuilder().repeatedSint32_; }
+ }
+ public int RepeatedSint32Count {
+ get { return result.RepeatedSint32Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return result.GetRepeatedSint32(index);
+ }
+ public Builder SetRepeatedSint32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint32(int value) {
+ PrepareBuilder();
+ result.repeatedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSint32() {
+ PrepareBuilder();
+ result.repeatedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSint64List {
+ get { return PrepareBuilder().repeatedSint64_; }
+ }
+ public int RepeatedSint64Count {
+ get { return result.RepeatedSint64Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return result.GetRepeatedSint64(index);
+ }
+ public Builder SetRepeatedSint64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint64(long value) {
+ PrepareBuilder();
+ result.repeatedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSint64() {
+ PrepareBuilder();
+ result.repeatedSint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return PrepareBuilder().repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed32(uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ PrepareBuilder();
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return PrepareBuilder().repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed64(ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ PrepareBuilder();
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSfixed32List {
+ get { return PrepareBuilder().repeatedSfixed32_; }
+ }
+ public int RepeatedSfixed32Count {
+ get { return result.RepeatedSfixed32Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return result.GetRepeatedSfixed32(index);
+ }
+ public Builder SetRepeatedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed32(int value) {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed32() {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSfixed64List {
+ get { return PrepareBuilder().repeatedSfixed64_; }
+ }
+ public int RepeatedSfixed64Count {
+ get { return result.RepeatedSfixed64Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return result.GetRepeatedSfixed64(index);
+ }
+ public Builder SetRepeatedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed64(long value) {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed64() {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return PrepareBuilder().repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ PrepareBuilder();
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ PrepareBuilder();
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> RepeatedDoubleList {
+ get { return PrepareBuilder().repeatedDouble_; }
+ }
+ public int RepeatedDoubleCount {
+ get { return result.RepeatedDoubleCount; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return result.GetRepeatedDouble(index);
+ }
+ public Builder SetRepeatedDouble(int index, double value) {
+ PrepareBuilder();
+ result.repeatedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedDouble(double value) {
+ PrepareBuilder();
+ result.repeatedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.repeatedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedDouble() {
+ PrepareBuilder();
+ result.repeatedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> RepeatedBoolList {
+ get { return PrepareBuilder().repeatedBool_; }
+ }
+ public int RepeatedBoolCount {
+ get { return result.RepeatedBoolCount; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return result.GetRepeatedBool(index);
+ }
+ public Builder SetRepeatedBool(int index, bool value) {
+ PrepareBuilder();
+ result.repeatedBool_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBool(bool value) {
+ PrepareBuilder();
+ result.repeatedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.repeatedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedBool() {
+ PrepareBuilder();
+ result.repeatedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringList {
+ get { return PrepareBuilder().repeatedString_; }
+ }
+ public int RepeatedStringCount {
+ get { return result.RepeatedStringCount; }
+ }
+ public string GetRepeatedString(int index) {
+ return result.GetRepeatedString(index);
+ }
+ public Builder SetRepeatedString(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedString_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedString_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedString(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedString_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedString() {
+ PrepareBuilder();
+ result.repeatedString_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<pb::ByteString> RepeatedBytesList {
+ get { return PrepareBuilder().repeatedBytes_; }
+ }
+ public int RepeatedBytesCount {
+ get { return result.RepeatedBytesCount; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return result.GetRepeatedBytes(index);
+ }
+ public Builder SetRepeatedBytes(int index, pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedBytes_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedBytes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBytes(scg::IEnumerable<pb::ByteString> values) {
+ PrepareBuilder();
+ result.repeatedBytes_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedBytes() {
+ PrepareBuilder();
+ result.repeatedBytes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> RepeatedGroupList {
+ get { return PrepareBuilder().repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return result.RepeatedGroupCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return result.GetRepeatedGroup(index);
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedGroup(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> values) {
+ PrepareBuilder();
+ result.repeatedGroup_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedGroup() {
+ PrepareBuilder();
+ result.repeatedGroup_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return PrepareBuilder().repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return result.RepeatedNestedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return result.GetRepeatedNestedMessage(index);
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedNestedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedNestedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> values) {
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedNestedMessage() {
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedForeignMessageList {
+ get { return PrepareBuilder().repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return result.RepeatedForeignMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedForeignMessage(int index) {
+ return result.GetRepeatedForeignMessage(index);
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedForeignMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedForeignMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedForeignMessage() {
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> RepeatedImportMessageList {
+ get { return PrepareBuilder().repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return result.RepeatedImportMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage GetRepeatedImportMessage(int index) {
+ return result.GetRepeatedImportMessage(index);
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedImportMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedImportMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedImportMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportMessage> values) {
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedImportMessage() {
+ PrepareBuilder();
+ result.repeatedImportMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return PrepareBuilder().repeatedNestedEnum_; }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return result.RepeatedNestedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return result.GetRepeatedNestedEnum(index);
+ }
+ public Builder SetRepeatedNestedEnum(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> values) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedNestedEnum() {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedForeignEnumList {
+ get { return PrepareBuilder().repeatedForeignEnum_; }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return result.RepeatedForeignEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedForeignEnum(int index) {
+ return result.GetRepeatedForeignEnum(index);
+ }
+ public Builder SetRepeatedForeignEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedForeignEnum() {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> RepeatedImportEnumList {
+ get { return PrepareBuilder().repeatedImportEnum_; }
+ }
+ public int RepeatedImportEnumCount {
+ get { return result.RepeatedImportEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum GetRepeatedImportEnum(int index) {
+ return result.GetRepeatedImportEnum(index);
+ }
+ public Builder SetRepeatedImportEnum(int index, global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.repeatedImportEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedImportEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportEnum> values) {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedImportEnum() {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceList {
+ get { return PrepareBuilder().repeatedStringPiece_; }
+ }
+ public int RepeatedStringPieceCount {
+ get { return result.RepeatedStringPieceCount; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return result.GetRepeatedStringPiece(index);
+ }
+ public Builder SetRepeatedStringPiece(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPiece_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPiece_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPiece(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringPiece_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringPiece() {
+ PrepareBuilder();
+ result.repeatedStringPiece_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordList {
+ get { return PrepareBuilder().repeatedCord_; }
+ }
+ public int RepeatedCordCount {
+ get { return result.RepeatedCordCount; }
+ }
+ public string GetRepeatedCord(int index) {
+ return result.GetRepeatedCord(index);
+ }
+ public Builder SetRepeatedCord(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCord_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCord_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCord(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedCord_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedCord() {
+ PrepareBuilder();
+ result.repeatedCord_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedLazyMessageList {
+ get { return PrepareBuilder().repeatedLazyMessage_; }
+ }
+ public int RepeatedLazyMessageCount {
+ get { return result.RepeatedLazyMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedLazyMessage(int index) {
+ return result.GetRepeatedLazyMessage(index);
+ }
+ public Builder SetRepeatedLazyMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedLazyMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedLazyMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedLazyMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedLazyMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> values) {
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedLazyMessage() {
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Clear();
+ return this;
+ }
+
+ public bool HasDefaultInt32 {
+ get { return result.hasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return result.DefaultInt32; }
+ set { SetDefaultInt32(value); }
+ }
+ public Builder SetDefaultInt32(int value) {
+ PrepareBuilder();
+ result.hasDefaultInt32 = true;
+ result.defaultInt32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt32() {
+ PrepareBuilder();
+ result.hasDefaultInt32 = false;
+ result.defaultInt32_ = 41;
+ return this;
+ }
+
+ public bool HasDefaultInt64 {
+ get { return result.hasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return result.DefaultInt64; }
+ set { SetDefaultInt64(value); }
+ }
+ public Builder SetDefaultInt64(long value) {
+ PrepareBuilder();
+ result.hasDefaultInt64 = true;
+ result.defaultInt64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt64() {
+ PrepareBuilder();
+ result.hasDefaultInt64 = false;
+ result.defaultInt64_ = 42L;
+ return this;
+ }
+
+ public bool HasDefaultUint32 {
+ get { return result.hasDefaultUint32; }
+ }
+ public uint DefaultUint32 {
+ get { return result.DefaultUint32; }
+ set { SetDefaultUint32(value); }
+ }
+ public Builder SetDefaultUint32(uint value) {
+ PrepareBuilder();
+ result.hasDefaultUint32 = true;
+ result.defaultUint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint32() {
+ PrepareBuilder();
+ result.hasDefaultUint32 = false;
+ result.defaultUint32_ = 43;
+ return this;
+ }
+
+ public bool HasDefaultUint64 {
+ get { return result.hasDefaultUint64; }
+ }
+ public ulong DefaultUint64 {
+ get { return result.DefaultUint64; }
+ set { SetDefaultUint64(value); }
+ }
+ public Builder SetDefaultUint64(ulong value) {
+ PrepareBuilder();
+ result.hasDefaultUint64 = true;
+ result.defaultUint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint64() {
+ PrepareBuilder();
+ result.hasDefaultUint64 = false;
+ result.defaultUint64_ = 44UL;
+ return this;
+ }
+
+ public bool HasDefaultSint32 {
+ get { return result.hasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return result.DefaultSint32; }
+ set { SetDefaultSint32(value); }
+ }
+ public Builder SetDefaultSint32(int value) {
+ PrepareBuilder();
+ result.hasDefaultSint32 = true;
+ result.defaultSint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint32() {
+ PrepareBuilder();
+ result.hasDefaultSint32 = false;
+ result.defaultSint32_ = -45;
+ return this;
+ }
+
+ public bool HasDefaultSint64 {
+ get { return result.hasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return result.DefaultSint64; }
+ set { SetDefaultSint64(value); }
+ }
+ public Builder SetDefaultSint64(long value) {
+ PrepareBuilder();
+ result.hasDefaultSint64 = true;
+ result.defaultSint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint64() {
+ PrepareBuilder();
+ result.hasDefaultSint64 = false;
+ result.defaultSint64_ = 46L;
+ return this;
+ }
+
+ public bool HasDefaultFixed32 {
+ get { return result.hasDefaultFixed32; }
+ }
+ public uint DefaultFixed32 {
+ get { return result.DefaultFixed32; }
+ set { SetDefaultFixed32(value); }
+ }
+ public Builder SetDefaultFixed32(uint value) {
+ PrepareBuilder();
+ result.hasDefaultFixed32 = true;
+ result.defaultFixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed32() {
+ PrepareBuilder();
+ result.hasDefaultFixed32 = false;
+ result.defaultFixed32_ = 47;
+ return this;
+ }
+
+ public bool HasDefaultFixed64 {
+ get { return result.hasDefaultFixed64; }
+ }
+ public ulong DefaultFixed64 {
+ get { return result.DefaultFixed64; }
+ set { SetDefaultFixed64(value); }
+ }
+ public Builder SetDefaultFixed64(ulong value) {
+ PrepareBuilder();
+ result.hasDefaultFixed64 = true;
+ result.defaultFixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed64() {
+ PrepareBuilder();
+ result.hasDefaultFixed64 = false;
+ result.defaultFixed64_ = 48UL;
+ return this;
+ }
+
+ public bool HasDefaultSfixed32 {
+ get { return result.hasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return result.DefaultSfixed32; }
+ set { SetDefaultSfixed32(value); }
+ }
+ public Builder SetDefaultSfixed32(int value) {
+ PrepareBuilder();
+ result.hasDefaultSfixed32 = true;
+ result.defaultSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed32() {
+ PrepareBuilder();
+ result.hasDefaultSfixed32 = false;
+ result.defaultSfixed32_ = 49;
+ return this;
+ }
+
+ public bool HasDefaultSfixed64 {
+ get { return result.hasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return result.DefaultSfixed64; }
+ set { SetDefaultSfixed64(value); }
+ }
+ public Builder SetDefaultSfixed64(long value) {
+ PrepareBuilder();
+ result.hasDefaultSfixed64 = true;
+ result.defaultSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed64() {
+ PrepareBuilder();
+ result.hasDefaultSfixed64 = false;
+ result.defaultSfixed64_ = -50L;
+ return this;
+ }
+
+ public bool HasDefaultFloat {
+ get { return result.hasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return result.DefaultFloat; }
+ set { SetDefaultFloat(value); }
+ }
+ public Builder SetDefaultFloat(float value) {
+ PrepareBuilder();
+ result.hasDefaultFloat = true;
+ result.defaultFloat_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFloat() {
+ PrepareBuilder();
+ result.hasDefaultFloat = false;
+ result.defaultFloat_ = 51.5F;
+ return this;
+ }
+
+ public bool HasDefaultDouble {
+ get { return result.hasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return result.DefaultDouble; }
+ set { SetDefaultDouble(value); }
+ }
+ public Builder SetDefaultDouble(double value) {
+ PrepareBuilder();
+ result.hasDefaultDouble = true;
+ result.defaultDouble_ = value;
+ return this;
+ }
+ public Builder ClearDefaultDouble() {
+ PrepareBuilder();
+ result.hasDefaultDouble = false;
+ result.defaultDouble_ = 52000D;
+ return this;
+ }
+
+ public bool HasDefaultBool {
+ get { return result.hasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return result.DefaultBool; }
+ set { SetDefaultBool(value); }
+ }
+ public Builder SetDefaultBool(bool value) {
+ PrepareBuilder();
+ result.hasDefaultBool = true;
+ result.defaultBool_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBool() {
+ PrepareBuilder();
+ result.hasDefaultBool = false;
+ result.defaultBool_ = true;
+ return this;
+ }
+
+ public bool HasDefaultString {
+ get { return result.hasDefaultString; }
+ }
+ public string DefaultString {
+ get { return result.DefaultString; }
+ set { SetDefaultString(value); }
+ }
+ public Builder SetDefaultString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultString = true;
+ result.defaultString_ = value;
+ return this;
+ }
+ public Builder ClearDefaultString() {
+ PrepareBuilder();
+ result.hasDefaultString = false;
+ result.defaultString_ = "hello";
+ return this;
+ }
+
+ public bool HasDefaultBytes {
+ get { return result.hasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return result.DefaultBytes; }
+ set { SetDefaultBytes(value); }
+ }
+ public Builder SetDefaultBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultBytes = true;
+ result.defaultBytes_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBytes() {
+ PrepareBuilder();
+ result.hasDefaultBytes = false;
+ result.defaultBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor.Fields[65].DefaultValue;
+ return this;
+ }
+
+ public bool HasDefaultNestedEnum {
+ get { return result.hasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum DefaultNestedEnum {
+ get { return result.DefaultNestedEnum; }
+ set { SetDefaultNestedEnum(value); }
+ }
+ public Builder SetDefaultNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.hasDefaultNestedEnum = true;
+ result.defaultNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultNestedEnum() {
+ PrepareBuilder();
+ result.hasDefaultNestedEnum = false;
+ result.defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.BAR;
+ return this;
+ }
+
+ public bool HasDefaultForeignEnum {
+ get { return result.hasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum DefaultForeignEnum {
+ get { return result.DefaultForeignEnum; }
+ set { SetDefaultForeignEnum(value); }
+ }
+ public Builder SetDefaultForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasDefaultForeignEnum = true;
+ result.defaultForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultForeignEnum() {
+ PrepareBuilder();
+ result.hasDefaultForeignEnum = false;
+ result.defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_BAR;
+ return this;
+ }
+
+ public bool HasDefaultImportEnum {
+ get { return result.hasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum DefaultImportEnum {
+ get { return result.DefaultImportEnum; }
+ set { SetDefaultImportEnum(value); }
+ }
+ public Builder SetDefaultImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ PrepareBuilder();
+ result.hasDefaultImportEnum = true;
+ result.defaultImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultImportEnum() {
+ PrepareBuilder();
+ result.hasDefaultImportEnum = false;
+ result.defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_BAR;
+ return this;
+ }
+
+ public bool HasDefaultStringPiece {
+ get { return result.hasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return result.DefaultStringPiece; }
+ set { SetDefaultStringPiece(value); }
+ }
+ public Builder SetDefaultStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultStringPiece = true;
+ result.defaultStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearDefaultStringPiece() {
+ PrepareBuilder();
+ result.hasDefaultStringPiece = false;
+ result.defaultStringPiece_ = "abc";
+ return this;
+ }
+
+ public bool HasDefaultCord {
+ get { return result.hasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return result.DefaultCord; }
+ set { SetDefaultCord(value); }
+ }
+ public Builder SetDefaultCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultCord = true;
+ result.defaultCord_ = value;
+ return this;
+ }
+ public Builder ClearDefaultCord() {
+ PrepareBuilder();
+ result.hasDefaultCord = false;
+ result.defaultCord_ = "123";
+ return this;
+ }
+
+ public bool HasOneofUint32 {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32; }
+ }
+ public uint OneofUint32 {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) result.oneofField_ : 0; }
+ set { SetOneofUint32(value); }
+ }
+ public Builder SetOneofUint32(uint value) {
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
+ return this;
+ }
+ public Builder ClearOneofUint32() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasOneofNestedMessage {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OneofNestedMessage {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage) result.oneofField_ : global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ set { SetOneofNestedMessage(value); }
+ }
+ public Builder SetOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ result.oneofField_ = value;
+ return this;
+ }
+ public Builder SetOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ result.oneofField_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage &&
+ result.OneofNestedMessage != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.oneofField_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.OneofNestedMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.oneofField_ = value;
+ }
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ return this;
+ }
+ public Builder ClearOneofNestedMessage() {
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ result.oneofField_ = null;
+ }
+ return this;
+ }
+
+ public bool HasOneofString {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofString; }
+ }
+ public string OneofString {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) result.oneofField_ : ""; }
+ set { SetOneofString(value); }
+ }
+ public Builder SetOneofString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofString;
+ return this;
+ }
+ public Builder ClearOneofString() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasOneofBytes {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofBytes; }
+ }
+ public pb::ByteString OneofBytes {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofBytes ? (pb::ByteString) result.oneofField_ : pb::ByteString.Empty; }
+ set { SetOneofBytes(value); }
+ }
+ public Builder SetOneofBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;
+ return this;
+ }
+ public Builder ClearOneofBytes() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public OneofFieldOneofCase OneofFieldCase {
+ get { return result.oneofFieldCase_; }
+ }
+ public Builder ClearOneofField() {
+ PrepareBuilder();
+ result.oneofField_ = null;
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ return this;
+ }
+ }
+ static TestAllTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedTestAllTypes : pb::GeneratedMessage<NestedTestAllTypes, NestedTestAllTypes.Builder> {
+ private NestedTestAllTypes() { }
+ private static readonly NestedTestAllTypes defaultInstance = new NestedTestAllTypes().MakeReadOnly();
+ private static readonly string[] _nestedTestAllTypesFieldNames = new string[] { "child", "payload", "repeated_child" };
+ private static readonly uint[] _nestedTestAllTypesFieldTags = new uint[] { 10, 18, 26 };
+ public static NestedTestAllTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedTestAllTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedTestAllTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_NestedTestAllTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedTestAllTypes, NestedTestAllTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_NestedTestAllTypes__FieldAccessorTable; }
+ }
+
+ public const int ChildFieldNumber = 1;
+ private bool hasChild;
+ private global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes child_;
+ public bool HasChild {
+ get { return hasChild; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes Child {
+ get { return child_ ?? global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance; }
+ }
+
+ public const int PayloadFieldNumber = 2;
+ private bool hasPayload;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes payload_;
+ public bool HasPayload {
+ get { return hasPayload; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Payload {
+ get { return payload_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int RepeatedChildFieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes> repeatedChild_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes> RepeatedChildList {
+ get { return repeatedChild_; }
+ }
+ public int RepeatedChildCount {
+ get { return repeatedChild_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes GetRepeatedChild(int index) {
+ return repeatedChild_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedTestAllTypesFieldNames;
+ if (hasChild) {
+ output.WriteMessage(1, field_names[0], Child);
+ }
+ if (hasPayload) {
+ output.WriteMessage(2, field_names[1], Payload);
+ }
+ if (repeatedChild_.Count > 0) {
+ output.WriteMessageArray(3, field_names[2], repeatedChild_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasChild) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Child);
+ }
+ if (hasPayload) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, Payload);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes element in RepeatedChildList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedTestAllTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedTestAllTypes MakeReadOnly() {
+ repeatedChild_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedTestAllTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedTestAllTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedTestAllTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedTestAllTypes result;
+
+ private NestedTestAllTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedTestAllTypes original = result;
+ result = new NestedTestAllTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedTestAllTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Descriptor; }
+ }
+
+ public override NestedTestAllTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance; }
+ }
+
+ public override NestedTestAllTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedTestAllTypes) {
+ return MergeFrom((NestedTestAllTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedTestAllTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasChild) {
+ MergeChild(other.Child);
+ }
+ if (other.HasPayload) {
+ MergePayload(other.Payload);
+ }
+ if (other.repeatedChild_.Count != 0) {
+ result.repeatedChild_.Add(other.repeatedChild_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedTestAllTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedTestAllTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.CreateBuilder();
+ if (result.hasChild) {
+ subBuilder.MergeFrom(Child);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Child = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasPayload) {
+ subBuilder.MergeFrom(Payload);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Payload = subBuilder.BuildPartial();
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.repeatedChild_, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasChild {
+ get { return result.hasChild; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes Child {
+ get { return result.Child; }
+ set { SetChild(value); }
+ }
+ public Builder SetChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasChild = true;
+ result.child_ = value;
+ return this;
+ }
+ public Builder SetChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasChild = true;
+ result.child_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasChild &&
+ result.child_ != global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.DefaultInstance) {
+ result.child_ = global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.CreateBuilder(result.child_).MergeFrom(value).BuildPartial();
+ } else {
+ result.child_ = value;
+ }
+ result.hasChild = true;
+ return this;
+ }
+ public Builder ClearChild() {
+ PrepareBuilder();
+ result.hasChild = false;
+ result.child_ = null;
+ return this;
+ }
+
+ public bool HasPayload {
+ get { return result.hasPayload; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Payload {
+ get { return result.Payload; }
+ set { SetPayload(value); }
+ }
+ public Builder SetPayload(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasPayload = true;
+ result.payload_ = value;
+ return this;
+ }
+ public Builder SetPayload(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasPayload = true;
+ result.payload_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergePayload(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasPayload &&
+ result.payload_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.payload_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.payload_).MergeFrom(value).BuildPartial();
+ } else {
+ result.payload_ = value;
+ }
+ result.hasPayload = true;
+ return this;
+ }
+ public Builder ClearPayload() {
+ PrepareBuilder();
+ result.hasPayload = false;
+ result.payload_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes> RepeatedChildList {
+ get { return PrepareBuilder().repeatedChild_; }
+ }
+ public int RepeatedChildCount {
+ get { return result.RepeatedChildCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes GetRepeatedChild(int index) {
+ return result.GetRepeatedChild(index);
+ }
+ public Builder SetRepeatedChild(int index, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedChild_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedChild(int index, global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedChild_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedChild_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedChild(global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedChild_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedChild(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.NestedTestAllTypes> values) {
+ PrepareBuilder();
+ result.repeatedChild_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedChild() {
+ PrepareBuilder();
+ result.repeatedChild_.Clear();
+ return this;
+ }
+ }
+ static NestedTestAllTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestDeprecatedFields : pb::GeneratedMessage<TestDeprecatedFields, TestDeprecatedFields.Builder> {
+ private TestDeprecatedFields() { }
+ private static readonly TestDeprecatedFields defaultInstance = new TestDeprecatedFields().MakeReadOnly();
+ private static readonly string[] _testDeprecatedFieldsFieldNames = new string[] { "deprecated_int32" };
+ private static readonly uint[] _testDeprecatedFieldsFieldTags = new uint[] { 8 };
+ public static TestDeprecatedFields DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDeprecatedFields DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestDeprecatedFields ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDeprecatedFields, TestDeprecatedFields.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable; }
+ }
+
+ public const int DeprecatedInt32FieldNumber = 1;
+ private bool hasDeprecatedInt32;
+ private int deprecatedInt32_;
+ [global::System.ObsoleteAttribute()]
+ public bool HasDeprecatedInt32 {
+ get { return hasDeprecatedInt32; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int DeprecatedInt32 {
+ get { return deprecatedInt32_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testDeprecatedFieldsFieldNames;
+ if (hasDeprecatedInt32) {
+ output.WriteInt32(1, field_names[0], DeprecatedInt32);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasDeprecatedInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, DeprecatedInt32);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestDeprecatedFields MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDeprecatedFields prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDeprecatedFields, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestDeprecatedFields cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestDeprecatedFields result;
+
+ private TestDeprecatedFields PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestDeprecatedFields original = result;
+ result = new TestDeprecatedFields();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestDeprecatedFields MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Descriptor; }
+ }
+
+ public override TestDeprecatedFields DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.DefaultInstance; }
+ }
+
+ public override TestDeprecatedFields BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDeprecatedFields) {
+ return MergeFrom((TestDeprecatedFields) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDeprecatedFields other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasDeprecatedInt32) {
+ DeprecatedInt32 = other.DeprecatedInt32;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testDeprecatedFieldsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testDeprecatedFieldsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasDeprecatedInt32 = input.ReadInt32(ref result.deprecatedInt32_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ [global::System.ObsoleteAttribute()]
+ public bool HasDeprecatedInt32 {
+ get { return result.hasDeprecatedInt32; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int DeprecatedInt32 {
+ get { return result.DeprecatedInt32; }
+ set { SetDeprecatedInt32(value); }
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetDeprecatedInt32(int value) {
+ PrepareBuilder();
+ result.hasDeprecatedInt32 = true;
+ result.deprecatedInt32_ = value;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder ClearDeprecatedInt32() {
+ PrepareBuilder();
+ result.hasDeprecatedInt32 = false;
+ result.deprecatedInt32_ = 0;
+ return this;
+ }
+ }
+ static TestDeprecatedFields() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ForeignMessage : pb::GeneratedMessage<ForeignMessage, ForeignMessage.Builder> {
+ private ForeignMessage() { }
+ private static readonly ForeignMessage defaultInstance = new ForeignMessage().MakeReadOnly();
+ private static readonly string[] _foreignMessageFieldNames = new string[] { "c" };
+ private static readonly uint[] _foreignMessageFieldTags = new uint[] { 8 };
+ public static ForeignMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ForeignMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ForeignMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_ForeignMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ForeignMessage, ForeignMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable; }
+ }
+
+ public const int CFieldNumber = 1;
+ private bool hasC;
+ private int c_;
+ public bool HasC {
+ get { return hasC; }
+ }
+ public int C {
+ get { return c_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _foreignMessageFieldNames;
+ if (hasC) {
+ output.WriteInt32(1, field_names[0], C);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasC) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, C);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ForeignMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ForeignMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ForeignMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ForeignMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ForeignMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ForeignMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ForeignMessage result;
+
+ private ForeignMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ForeignMessage original = result;
+ result = new ForeignMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ForeignMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Descriptor; }
+ }
+
+ public override ForeignMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public override ForeignMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ForeignMessage) {
+ return MergeFrom((ForeignMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ForeignMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasC) {
+ C = other.C;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_foreignMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _foreignMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasC = input.ReadInt32(ref result.c_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasC {
+ get { return result.hasC; }
+ }
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ PrepareBuilder();
+ result.hasC = true;
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ PrepareBuilder();
+ result.hasC = false;
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static ForeignMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestReservedFields : pb::GeneratedMessage<TestReservedFields, TestReservedFields.Builder> {
+ private TestReservedFields() { }
+ private static readonly TestReservedFields defaultInstance = new TestReservedFields().MakeReadOnly();
+ private static readonly string[] _testReservedFieldsFieldNames = new string[] { };
+ private static readonly uint[] _testReservedFieldsFieldTags = new uint[] { };
+ public static TestReservedFields DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestReservedFields DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestReservedFields ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestReservedFields__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestReservedFields, TestReservedFields.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestReservedFields__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testReservedFieldsFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestReservedFields ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestReservedFields ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestReservedFields ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReservedFields ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestReservedFields MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestReservedFields prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestReservedFields, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestReservedFields cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestReservedFields result;
+
+ private TestReservedFields PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestReservedFields original = result;
+ result = new TestReservedFields();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestReservedFields MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReservedFields.Descriptor; }
+ }
+
+ public override TestReservedFields DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReservedFields.DefaultInstance; }
+ }
+
+ public override TestReservedFields BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestReservedFields) {
+ return MergeFrom((TestReservedFields) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestReservedFields other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestReservedFields.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testReservedFieldsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testReservedFieldsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestReservedFields() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestAllExtensions : pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder> {
+ private TestAllExtensions() { }
+ private static readonly TestAllExtensions defaultInstance = new TestAllExtensions().MakeReadOnly();
+ private static readonly string[] _testAllExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testAllExtensionsFieldTags = new uint[] { };
+ public static TestAllExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestAllExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestAllExtensions, TestAllExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testAllExtensionsFieldNames;
+ pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestAllExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestAllExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestAllExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestAllExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestAllExtensions result;
+
+ private TestAllExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestAllExtensions original = result;
+ result = new TestAllExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestAllExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Descriptor; }
+ }
+
+ public override TestAllExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.DefaultInstance; }
+ }
+
+ public override TestAllExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestAllExtensions) {
+ return MergeFrom((TestAllExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testAllExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testAllExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestAllExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup_extension : pb::GeneratedMessage<OptionalGroup_extension, OptionalGroup_extension.Builder> {
+ private OptionalGroup_extension() { }
+ private static readonly OptionalGroup_extension defaultInstance = new OptionalGroup_extension().MakeReadOnly();
+ private static readonly string[] _optionalGroupExtensionFieldNames = new string[] { "a" };
+ private static readonly uint[] _optionalGroupExtensionFieldTags = new uint[] { 136 };
+ public static OptionalGroup_extension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup_extension DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup_extension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup_extension, OptionalGroup_extension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupExtensionFieldNames;
+ if (hasA) {
+ output.WriteInt32(17, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup_extension MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup_extension prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup_extension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup_extension cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup_extension result;
+
+ private OptionalGroup_extension PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup_extension original = result;
+ result = new OptionalGroup_extension();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup_extension MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Descriptor; }
+ }
+
+ public override OptionalGroup_extension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.DefaultInstance; }
+ }
+
+ public override OptionalGroup_extension BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup_extension) {
+ return MergeFrom((OptionalGroup_extension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup_extension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupExtensionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupExtensionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 136: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup_extension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup_extension : pb::GeneratedMessage<RepeatedGroup_extension, RepeatedGroup_extension.Builder> {
+ private RepeatedGroup_extension() { }
+ private static readonly RepeatedGroup_extension defaultInstance = new RepeatedGroup_extension().MakeReadOnly();
+ private static readonly string[] _repeatedGroupExtensionFieldNames = new string[] { "a" };
+ private static readonly uint[] _repeatedGroupExtensionFieldTags = new uint[] { 376 };
+ public static RepeatedGroup_extension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup_extension DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup_extension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup_extension, RepeatedGroup_extension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupExtensionFieldNames;
+ if (hasA) {
+ output.WriteInt32(47, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup_extension MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup_extension prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup_extension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup_extension cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup_extension result;
+
+ private RepeatedGroup_extension PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup_extension original = result;
+ result = new RepeatedGroup_extension();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup_extension MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Descriptor; }
+ }
+
+ public override RepeatedGroup_extension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.DefaultInstance; }
+ }
+
+ public override RepeatedGroup_extension BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup_extension) {
+ return MergeFrom((RepeatedGroup_extension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup_extension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupExtensionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupExtensionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 376: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup_extension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestNestedExtension : pb::GeneratedMessage<TestNestedExtension, TestNestedExtension.Builder> {
+ private TestNestedExtension() { }
+ private static readonly TestNestedExtension defaultInstance = new TestNestedExtension().MakeReadOnly();
+ private static readonly string[] _testNestedExtensionFieldNames = new string[] { };
+ private static readonly uint[] _testNestedExtensionFieldTags = new uint[] { };
+ public static TestNestedExtension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedExtension DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestNestedExtension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedExtension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestNestedExtension, TestNestedExtension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable; }
+ }
+
+ public const int TestFieldNumber = 1002;
+ public static pb::GeneratedExtensionBase<string> Test;
+ public const int NestedStringExtensionFieldNumber = 1003;
+ public static pb::GeneratedExtensionBase<string> NestedStringExtension;
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testNestedExtensionFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestNestedExtension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedExtension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestNestedExtension MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedExtension prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestNestedExtension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestNestedExtension cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestNestedExtension result;
+
+ private TestNestedExtension PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestNestedExtension original = result;
+ result = new TestNestedExtension();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestNestedExtension MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor; }
+ }
+
+ public override TestNestedExtension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.DefaultInstance; }
+ }
+
+ public override TestNestedExtension BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestNestedExtension) {
+ return MergeFrom((TestNestedExtension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedExtension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testNestedExtensionFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testNestedExtensionFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestNestedExtension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequired : pb::GeneratedMessage<TestRequired, TestRequired.Builder> {
+ private TestRequired() { }
+ private static readonly TestRequired defaultInstance = new TestRequired().MakeReadOnly();
+ private static readonly string[] _testRequiredFieldNames = new string[] { "a", "b", "c", "dummy10", "dummy11", "dummy12", "dummy13", "dummy14", "dummy15", "dummy16", "dummy17", "dummy18", "dummy19", "dummy2", "dummy20", "dummy21", "dummy22", "dummy23", "dummy24", "dummy25", "dummy26", "dummy27", "dummy28", "dummy29", "dummy30", "dummy31", "dummy32", "dummy4", "dummy5", "dummy6", "dummy7", "dummy8", "dummy9" };
+ private static readonly uint[] _testRequiredFieldTags = new uint[] { 8, 24, 264, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 16, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 256, 32, 40, 48, 56, 64, 72 };
+ public static TestRequired DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequired DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequired ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequired__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequired, TestRequired.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequired__FieldAccessorTable; }
+ }
+
+ public const int SingleFieldNumber = 1000;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestRequired> Single;
+ public const int MultiFieldNumber = 1001;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestRequired>> Multi;
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int Dummy2FieldNumber = 2;
+ private bool hasDummy2;
+ private int dummy2_;
+ public bool HasDummy2 {
+ get { return hasDummy2; }
+ }
+ public int Dummy2 {
+ get { return dummy2_; }
+ }
+
+ public const int BFieldNumber = 3;
+ private bool hasB;
+ private int b_;
+ public bool HasB {
+ get { return hasB; }
+ }
+ public int B {
+ get { return b_; }
+ }
+
+ public const int Dummy4FieldNumber = 4;
+ private bool hasDummy4;
+ private int dummy4_;
+ public bool HasDummy4 {
+ get { return hasDummy4; }
+ }
+ public int Dummy4 {
+ get { return dummy4_; }
+ }
+
+ public const int Dummy5FieldNumber = 5;
+ private bool hasDummy5;
+ private int dummy5_;
+ public bool HasDummy5 {
+ get { return hasDummy5; }
+ }
+ public int Dummy5 {
+ get { return dummy5_; }
+ }
+
+ public const int Dummy6FieldNumber = 6;
+ private bool hasDummy6;
+ private int dummy6_;
+ public bool HasDummy6 {
+ get { return hasDummy6; }
+ }
+ public int Dummy6 {
+ get { return dummy6_; }
+ }
+
+ public const int Dummy7FieldNumber = 7;
+ private bool hasDummy7;
+ private int dummy7_;
+ public bool HasDummy7 {
+ get { return hasDummy7; }
+ }
+ public int Dummy7 {
+ get { return dummy7_; }
+ }
+
+ public const int Dummy8FieldNumber = 8;
+ private bool hasDummy8;
+ private int dummy8_;
+ public bool HasDummy8 {
+ get { return hasDummy8; }
+ }
+ public int Dummy8 {
+ get { return dummy8_; }
+ }
+
+ public const int Dummy9FieldNumber = 9;
+ private bool hasDummy9;
+ private int dummy9_;
+ public bool HasDummy9 {
+ get { return hasDummy9; }
+ }
+ public int Dummy9 {
+ get { return dummy9_; }
+ }
+
+ public const int Dummy10FieldNumber = 10;
+ private bool hasDummy10;
+ private int dummy10_;
+ public bool HasDummy10 {
+ get { return hasDummy10; }
+ }
+ public int Dummy10 {
+ get { return dummy10_; }
+ }
+
+ public const int Dummy11FieldNumber = 11;
+ private bool hasDummy11;
+ private int dummy11_;
+ public bool HasDummy11 {
+ get { return hasDummy11; }
+ }
+ public int Dummy11 {
+ get { return dummy11_; }
+ }
+
+ public const int Dummy12FieldNumber = 12;
+ private bool hasDummy12;
+ private int dummy12_;
+ public bool HasDummy12 {
+ get { return hasDummy12; }
+ }
+ public int Dummy12 {
+ get { return dummy12_; }
+ }
+
+ public const int Dummy13FieldNumber = 13;
+ private bool hasDummy13;
+ private int dummy13_;
+ public bool HasDummy13 {
+ get { return hasDummy13; }
+ }
+ public int Dummy13 {
+ get { return dummy13_; }
+ }
+
+ public const int Dummy14FieldNumber = 14;
+ private bool hasDummy14;
+ private int dummy14_;
+ public bool HasDummy14 {
+ get { return hasDummy14; }
+ }
+ public int Dummy14 {
+ get { return dummy14_; }
+ }
+
+ public const int Dummy15FieldNumber = 15;
+ private bool hasDummy15;
+ private int dummy15_;
+ public bool HasDummy15 {
+ get { return hasDummy15; }
+ }
+ public int Dummy15 {
+ get { return dummy15_; }
+ }
+
+ public const int Dummy16FieldNumber = 16;
+ private bool hasDummy16;
+ private int dummy16_;
+ public bool HasDummy16 {
+ get { return hasDummy16; }
+ }
+ public int Dummy16 {
+ get { return dummy16_; }
+ }
+
+ public const int Dummy17FieldNumber = 17;
+ private bool hasDummy17;
+ private int dummy17_;
+ public bool HasDummy17 {
+ get { return hasDummy17; }
+ }
+ public int Dummy17 {
+ get { return dummy17_; }
+ }
+
+ public const int Dummy18FieldNumber = 18;
+ private bool hasDummy18;
+ private int dummy18_;
+ public bool HasDummy18 {
+ get { return hasDummy18; }
+ }
+ public int Dummy18 {
+ get { return dummy18_; }
+ }
+
+ public const int Dummy19FieldNumber = 19;
+ private bool hasDummy19;
+ private int dummy19_;
+ public bool HasDummy19 {
+ get { return hasDummy19; }
+ }
+ public int Dummy19 {
+ get { return dummy19_; }
+ }
+
+ public const int Dummy20FieldNumber = 20;
+ private bool hasDummy20;
+ private int dummy20_;
+ public bool HasDummy20 {
+ get { return hasDummy20; }
+ }
+ public int Dummy20 {
+ get { return dummy20_; }
+ }
+
+ public const int Dummy21FieldNumber = 21;
+ private bool hasDummy21;
+ private int dummy21_;
+ public bool HasDummy21 {
+ get { return hasDummy21; }
+ }
+ public int Dummy21 {
+ get { return dummy21_; }
+ }
+
+ public const int Dummy22FieldNumber = 22;
+ private bool hasDummy22;
+ private int dummy22_;
+ public bool HasDummy22 {
+ get { return hasDummy22; }
+ }
+ public int Dummy22 {
+ get { return dummy22_; }
+ }
+
+ public const int Dummy23FieldNumber = 23;
+ private bool hasDummy23;
+ private int dummy23_;
+ public bool HasDummy23 {
+ get { return hasDummy23; }
+ }
+ public int Dummy23 {
+ get { return dummy23_; }
+ }
+
+ public const int Dummy24FieldNumber = 24;
+ private bool hasDummy24;
+ private int dummy24_;
+ public bool HasDummy24 {
+ get { return hasDummy24; }
+ }
+ public int Dummy24 {
+ get { return dummy24_; }
+ }
+
+ public const int Dummy25FieldNumber = 25;
+ private bool hasDummy25;
+ private int dummy25_;
+ public bool HasDummy25 {
+ get { return hasDummy25; }
+ }
+ public int Dummy25 {
+ get { return dummy25_; }
+ }
+
+ public const int Dummy26FieldNumber = 26;
+ private bool hasDummy26;
+ private int dummy26_;
+ public bool HasDummy26 {
+ get { return hasDummy26; }
+ }
+ public int Dummy26 {
+ get { return dummy26_; }
+ }
+
+ public const int Dummy27FieldNumber = 27;
+ private bool hasDummy27;
+ private int dummy27_;
+ public bool HasDummy27 {
+ get { return hasDummy27; }
+ }
+ public int Dummy27 {
+ get { return dummy27_; }
+ }
+
+ public const int Dummy28FieldNumber = 28;
+ private bool hasDummy28;
+ private int dummy28_;
+ public bool HasDummy28 {
+ get { return hasDummy28; }
+ }
+ public int Dummy28 {
+ get { return dummy28_; }
+ }
+
+ public const int Dummy29FieldNumber = 29;
+ private bool hasDummy29;
+ private int dummy29_;
+ public bool HasDummy29 {
+ get { return hasDummy29; }
+ }
+ public int Dummy29 {
+ get { return dummy29_; }
+ }
+
+ public const int Dummy30FieldNumber = 30;
+ private bool hasDummy30;
+ private int dummy30_;
+ public bool HasDummy30 {
+ get { return hasDummy30; }
+ }
+ public int Dummy30 {
+ get { return dummy30_; }
+ }
+
+ public const int Dummy31FieldNumber = 31;
+ private bool hasDummy31;
+ private int dummy31_;
+ public bool HasDummy31 {
+ get { return hasDummy31; }
+ }
+ public int Dummy31 {
+ get { return dummy31_; }
+ }
+
+ public const int Dummy32FieldNumber = 32;
+ private bool hasDummy32;
+ private int dummy32_;
+ public bool HasDummy32 {
+ get { return hasDummy32; }
+ }
+ public int Dummy32 {
+ get { return dummy32_; }
+ }
+
+ public const int CFieldNumber = 33;
+ private bool hasC;
+ private int c_;
+ public bool HasC {
+ get { return hasC; }
+ }
+ public int C {
+ get { return c_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasA) return false;
+ if (!hasB) return false;
+ if (!hasC) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRequiredFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ if (hasDummy2) {
+ output.WriteInt32(2, field_names[13], Dummy2);
+ }
+ if (hasB) {
+ output.WriteInt32(3, field_names[1], B);
+ }
+ if (hasDummy4) {
+ output.WriteInt32(4, field_names[27], Dummy4);
+ }
+ if (hasDummy5) {
+ output.WriteInt32(5, field_names[28], Dummy5);
+ }
+ if (hasDummy6) {
+ output.WriteInt32(6, field_names[29], Dummy6);
+ }
+ if (hasDummy7) {
+ output.WriteInt32(7, field_names[30], Dummy7);
+ }
+ if (hasDummy8) {
+ output.WriteInt32(8, field_names[31], Dummy8);
+ }
+ if (hasDummy9) {
+ output.WriteInt32(9, field_names[32], Dummy9);
+ }
+ if (hasDummy10) {
+ output.WriteInt32(10, field_names[3], Dummy10);
+ }
+ if (hasDummy11) {
+ output.WriteInt32(11, field_names[4], Dummy11);
+ }
+ if (hasDummy12) {
+ output.WriteInt32(12, field_names[5], Dummy12);
+ }
+ if (hasDummy13) {
+ output.WriteInt32(13, field_names[6], Dummy13);
+ }
+ if (hasDummy14) {
+ output.WriteInt32(14, field_names[7], Dummy14);
+ }
+ if (hasDummy15) {
+ output.WriteInt32(15, field_names[8], Dummy15);
+ }
+ if (hasDummy16) {
+ output.WriteInt32(16, field_names[9], Dummy16);
+ }
+ if (hasDummy17) {
+ output.WriteInt32(17, field_names[10], Dummy17);
+ }
+ if (hasDummy18) {
+ output.WriteInt32(18, field_names[11], Dummy18);
+ }
+ if (hasDummy19) {
+ output.WriteInt32(19, field_names[12], Dummy19);
+ }
+ if (hasDummy20) {
+ output.WriteInt32(20, field_names[14], Dummy20);
+ }
+ if (hasDummy21) {
+ output.WriteInt32(21, field_names[15], Dummy21);
+ }
+ if (hasDummy22) {
+ output.WriteInt32(22, field_names[16], Dummy22);
+ }
+ if (hasDummy23) {
+ output.WriteInt32(23, field_names[17], Dummy23);
+ }
+ if (hasDummy24) {
+ output.WriteInt32(24, field_names[18], Dummy24);
+ }
+ if (hasDummy25) {
+ output.WriteInt32(25, field_names[19], Dummy25);
+ }
+ if (hasDummy26) {
+ output.WriteInt32(26, field_names[20], Dummy26);
+ }
+ if (hasDummy27) {
+ output.WriteInt32(27, field_names[21], Dummy27);
+ }
+ if (hasDummy28) {
+ output.WriteInt32(28, field_names[22], Dummy28);
+ }
+ if (hasDummy29) {
+ output.WriteInt32(29, field_names[23], Dummy29);
+ }
+ if (hasDummy30) {
+ output.WriteInt32(30, field_names[24], Dummy30);
+ }
+ if (hasDummy31) {
+ output.WriteInt32(31, field_names[25], Dummy31);
+ }
+ if (hasDummy32) {
+ output.WriteInt32(32, field_names[26], Dummy32);
+ }
+ if (hasC) {
+ output.WriteInt32(33, field_names[2], C);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (hasDummy2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Dummy2);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, B);
+ }
+ if (hasDummy4) {
+ size += pb::CodedOutputStream.ComputeInt32Size(4, Dummy4);
+ }
+ if (hasDummy5) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, Dummy5);
+ }
+ if (hasDummy6) {
+ size += pb::CodedOutputStream.ComputeInt32Size(6, Dummy6);
+ }
+ if (hasDummy7) {
+ size += pb::CodedOutputStream.ComputeInt32Size(7, Dummy7);
+ }
+ if (hasDummy8) {
+ size += pb::CodedOutputStream.ComputeInt32Size(8, Dummy8);
+ }
+ if (hasDummy9) {
+ size += pb::CodedOutputStream.ComputeInt32Size(9, Dummy9);
+ }
+ if (hasDummy10) {
+ size += pb::CodedOutputStream.ComputeInt32Size(10, Dummy10);
+ }
+ if (hasDummy11) {
+ size += pb::CodedOutputStream.ComputeInt32Size(11, Dummy11);
+ }
+ if (hasDummy12) {
+ size += pb::CodedOutputStream.ComputeInt32Size(12, Dummy12);
+ }
+ if (hasDummy13) {
+ size += pb::CodedOutputStream.ComputeInt32Size(13, Dummy13);
+ }
+ if (hasDummy14) {
+ size += pb::CodedOutputStream.ComputeInt32Size(14, Dummy14);
+ }
+ if (hasDummy15) {
+ size += pb::CodedOutputStream.ComputeInt32Size(15, Dummy15);
+ }
+ if (hasDummy16) {
+ size += pb::CodedOutputStream.ComputeInt32Size(16, Dummy16);
+ }
+ if (hasDummy17) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, Dummy17);
+ }
+ if (hasDummy18) {
+ size += pb::CodedOutputStream.ComputeInt32Size(18, Dummy18);
+ }
+ if (hasDummy19) {
+ size += pb::CodedOutputStream.ComputeInt32Size(19, Dummy19);
+ }
+ if (hasDummy20) {
+ size += pb::CodedOutputStream.ComputeInt32Size(20, Dummy20);
+ }
+ if (hasDummy21) {
+ size += pb::CodedOutputStream.ComputeInt32Size(21, Dummy21);
+ }
+ if (hasDummy22) {
+ size += pb::CodedOutputStream.ComputeInt32Size(22, Dummy22);
+ }
+ if (hasDummy23) {
+ size += pb::CodedOutputStream.ComputeInt32Size(23, Dummy23);
+ }
+ if (hasDummy24) {
+ size += pb::CodedOutputStream.ComputeInt32Size(24, Dummy24);
+ }
+ if (hasDummy25) {
+ size += pb::CodedOutputStream.ComputeInt32Size(25, Dummy25);
+ }
+ if (hasDummy26) {
+ size += pb::CodedOutputStream.ComputeInt32Size(26, Dummy26);
+ }
+ if (hasDummy27) {
+ size += pb::CodedOutputStream.ComputeInt32Size(27, Dummy27);
+ }
+ if (hasDummy28) {
+ size += pb::CodedOutputStream.ComputeInt32Size(28, Dummy28);
+ }
+ if (hasDummy29) {
+ size += pb::CodedOutputStream.ComputeInt32Size(29, Dummy29);
+ }
+ if (hasDummy30) {
+ size += pb::CodedOutputStream.ComputeInt32Size(30, Dummy30);
+ }
+ if (hasDummy31) {
+ size += pb::CodedOutputStream.ComputeInt32Size(31, Dummy31);
+ }
+ if (hasDummy32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(32, Dummy32);
+ }
+ if (hasC) {
+ size += pb::CodedOutputStream.ComputeInt32Size(33, C);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRequired ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequired ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequired MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequired prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequired, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequired cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequired result;
+
+ private TestRequired PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequired original = result;
+ result = new TestRequired();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequired MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor; }
+ }
+
+ public override TestRequired DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance; }
+ }
+
+ public override TestRequired BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequired) {
+ return MergeFrom((TestRequired) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequired other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasDummy2) {
+ Dummy2 = other.Dummy2;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ if (other.HasDummy4) {
+ Dummy4 = other.Dummy4;
+ }
+ if (other.HasDummy5) {
+ Dummy5 = other.Dummy5;
+ }
+ if (other.HasDummy6) {
+ Dummy6 = other.Dummy6;
+ }
+ if (other.HasDummy7) {
+ Dummy7 = other.Dummy7;
+ }
+ if (other.HasDummy8) {
+ Dummy8 = other.Dummy8;
+ }
+ if (other.HasDummy9) {
+ Dummy9 = other.Dummy9;
+ }
+ if (other.HasDummy10) {
+ Dummy10 = other.Dummy10;
+ }
+ if (other.HasDummy11) {
+ Dummy11 = other.Dummy11;
+ }
+ if (other.HasDummy12) {
+ Dummy12 = other.Dummy12;
+ }
+ if (other.HasDummy13) {
+ Dummy13 = other.Dummy13;
+ }
+ if (other.HasDummy14) {
+ Dummy14 = other.Dummy14;
+ }
+ if (other.HasDummy15) {
+ Dummy15 = other.Dummy15;
+ }
+ if (other.HasDummy16) {
+ Dummy16 = other.Dummy16;
+ }
+ if (other.HasDummy17) {
+ Dummy17 = other.Dummy17;
+ }
+ if (other.HasDummy18) {
+ Dummy18 = other.Dummy18;
+ }
+ if (other.HasDummy19) {
+ Dummy19 = other.Dummy19;
+ }
+ if (other.HasDummy20) {
+ Dummy20 = other.Dummy20;
+ }
+ if (other.HasDummy21) {
+ Dummy21 = other.Dummy21;
+ }
+ if (other.HasDummy22) {
+ Dummy22 = other.Dummy22;
+ }
+ if (other.HasDummy23) {
+ Dummy23 = other.Dummy23;
+ }
+ if (other.HasDummy24) {
+ Dummy24 = other.Dummy24;
+ }
+ if (other.HasDummy25) {
+ Dummy25 = other.Dummy25;
+ }
+ if (other.HasDummy26) {
+ Dummy26 = other.Dummy26;
+ }
+ if (other.HasDummy27) {
+ Dummy27 = other.Dummy27;
+ }
+ if (other.HasDummy28) {
+ Dummy28 = other.Dummy28;
+ }
+ if (other.HasDummy29) {
+ Dummy29 = other.Dummy29;
+ }
+ if (other.HasDummy30) {
+ Dummy30 = other.Dummy30;
+ }
+ if (other.HasDummy31) {
+ Dummy31 = other.Dummy31;
+ }
+ if (other.HasDummy32) {
+ Dummy32 = other.Dummy32;
+ }
+ if (other.HasC) {
+ C = other.C;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRequiredFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRequiredFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 16: {
+ result.hasDummy2 = input.ReadInt32(ref result.dummy2_);
+ break;
+ }
+ case 24: {
+ result.hasB = input.ReadInt32(ref result.b_);
+ break;
+ }
+ case 32: {
+ result.hasDummy4 = input.ReadInt32(ref result.dummy4_);
+ break;
+ }
+ case 40: {
+ result.hasDummy5 = input.ReadInt32(ref result.dummy5_);
+ break;
+ }
+ case 48: {
+ result.hasDummy6 = input.ReadInt32(ref result.dummy6_);
+ break;
+ }
+ case 56: {
+ result.hasDummy7 = input.ReadInt32(ref result.dummy7_);
+ break;
+ }
+ case 64: {
+ result.hasDummy8 = input.ReadInt32(ref result.dummy8_);
+ break;
+ }
+ case 72: {
+ result.hasDummy9 = input.ReadInt32(ref result.dummy9_);
+ break;
+ }
+ case 80: {
+ result.hasDummy10 = input.ReadInt32(ref result.dummy10_);
+ break;
+ }
+ case 88: {
+ result.hasDummy11 = input.ReadInt32(ref result.dummy11_);
+ break;
+ }
+ case 96: {
+ result.hasDummy12 = input.ReadInt32(ref result.dummy12_);
+ break;
+ }
+ case 104: {
+ result.hasDummy13 = input.ReadInt32(ref result.dummy13_);
+ break;
+ }
+ case 112: {
+ result.hasDummy14 = input.ReadInt32(ref result.dummy14_);
+ break;
+ }
+ case 120: {
+ result.hasDummy15 = input.ReadInt32(ref result.dummy15_);
+ break;
+ }
+ case 128: {
+ result.hasDummy16 = input.ReadInt32(ref result.dummy16_);
+ break;
+ }
+ case 136: {
+ result.hasDummy17 = input.ReadInt32(ref result.dummy17_);
+ break;
+ }
+ case 144: {
+ result.hasDummy18 = input.ReadInt32(ref result.dummy18_);
+ break;
+ }
+ case 152: {
+ result.hasDummy19 = input.ReadInt32(ref result.dummy19_);
+ break;
+ }
+ case 160: {
+ result.hasDummy20 = input.ReadInt32(ref result.dummy20_);
+ break;
+ }
+ case 168: {
+ result.hasDummy21 = input.ReadInt32(ref result.dummy21_);
+ break;
+ }
+ case 176: {
+ result.hasDummy22 = input.ReadInt32(ref result.dummy22_);
+ break;
+ }
+ case 184: {
+ result.hasDummy23 = input.ReadInt32(ref result.dummy23_);
+ break;
+ }
+ case 192: {
+ result.hasDummy24 = input.ReadInt32(ref result.dummy24_);
+ break;
+ }
+ case 200: {
+ result.hasDummy25 = input.ReadInt32(ref result.dummy25_);
+ break;
+ }
+ case 208: {
+ result.hasDummy26 = input.ReadInt32(ref result.dummy26_);
+ break;
+ }
+ case 216: {
+ result.hasDummy27 = input.ReadInt32(ref result.dummy27_);
+ break;
+ }
+ case 224: {
+ result.hasDummy28 = input.ReadInt32(ref result.dummy28_);
+ break;
+ }
+ case 232: {
+ result.hasDummy29 = input.ReadInt32(ref result.dummy29_);
+ break;
+ }
+ case 240: {
+ result.hasDummy30 = input.ReadInt32(ref result.dummy30_);
+ break;
+ }
+ case 248: {
+ result.hasDummy31 = input.ReadInt32(ref result.dummy31_);
+ break;
+ }
+ case 256: {
+ result.hasDummy32 = input.ReadInt32(ref result.dummy32_);
+ break;
+ }
+ case 264: {
+ result.hasC = input.ReadInt32(ref result.c_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasDummy2 {
+ get { return result.hasDummy2; }
+ }
+ public int Dummy2 {
+ get { return result.Dummy2; }
+ set { SetDummy2(value); }
+ }
+ public Builder SetDummy2(int value) {
+ PrepareBuilder();
+ result.hasDummy2 = true;
+ result.dummy2_ = value;
+ return this;
+ }
+ public Builder ClearDummy2() {
+ PrepareBuilder();
+ result.hasDummy2 = false;
+ result.dummy2_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public int B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(int value) {
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = 0;
+ return this;
+ }
+
+ public bool HasDummy4 {
+ get { return result.hasDummy4; }
+ }
+ public int Dummy4 {
+ get { return result.Dummy4; }
+ set { SetDummy4(value); }
+ }
+ public Builder SetDummy4(int value) {
+ PrepareBuilder();
+ result.hasDummy4 = true;
+ result.dummy4_ = value;
+ return this;
+ }
+ public Builder ClearDummy4() {
+ PrepareBuilder();
+ result.hasDummy4 = false;
+ result.dummy4_ = 0;
+ return this;
+ }
+
+ public bool HasDummy5 {
+ get { return result.hasDummy5; }
+ }
+ public int Dummy5 {
+ get { return result.Dummy5; }
+ set { SetDummy5(value); }
+ }
+ public Builder SetDummy5(int value) {
+ PrepareBuilder();
+ result.hasDummy5 = true;
+ result.dummy5_ = value;
+ return this;
+ }
+ public Builder ClearDummy5() {
+ PrepareBuilder();
+ result.hasDummy5 = false;
+ result.dummy5_ = 0;
+ return this;
+ }
+
+ public bool HasDummy6 {
+ get { return result.hasDummy6; }
+ }
+ public int Dummy6 {
+ get { return result.Dummy6; }
+ set { SetDummy6(value); }
+ }
+ public Builder SetDummy6(int value) {
+ PrepareBuilder();
+ result.hasDummy6 = true;
+ result.dummy6_ = value;
+ return this;
+ }
+ public Builder ClearDummy6() {
+ PrepareBuilder();
+ result.hasDummy6 = false;
+ result.dummy6_ = 0;
+ return this;
+ }
+
+ public bool HasDummy7 {
+ get { return result.hasDummy7; }
+ }
+ public int Dummy7 {
+ get { return result.Dummy7; }
+ set { SetDummy7(value); }
+ }
+ public Builder SetDummy7(int value) {
+ PrepareBuilder();
+ result.hasDummy7 = true;
+ result.dummy7_ = value;
+ return this;
+ }
+ public Builder ClearDummy7() {
+ PrepareBuilder();
+ result.hasDummy7 = false;
+ result.dummy7_ = 0;
+ return this;
+ }
+
+ public bool HasDummy8 {
+ get { return result.hasDummy8; }
+ }
+ public int Dummy8 {
+ get { return result.Dummy8; }
+ set { SetDummy8(value); }
+ }
+ public Builder SetDummy8(int value) {
+ PrepareBuilder();
+ result.hasDummy8 = true;
+ result.dummy8_ = value;
+ return this;
+ }
+ public Builder ClearDummy8() {
+ PrepareBuilder();
+ result.hasDummy8 = false;
+ result.dummy8_ = 0;
+ return this;
+ }
+
+ public bool HasDummy9 {
+ get { return result.hasDummy9; }
+ }
+ public int Dummy9 {
+ get { return result.Dummy9; }
+ set { SetDummy9(value); }
+ }
+ public Builder SetDummy9(int value) {
+ PrepareBuilder();
+ result.hasDummy9 = true;
+ result.dummy9_ = value;
+ return this;
+ }
+ public Builder ClearDummy9() {
+ PrepareBuilder();
+ result.hasDummy9 = false;
+ result.dummy9_ = 0;
+ return this;
+ }
+
+ public bool HasDummy10 {
+ get { return result.hasDummy10; }
+ }
+ public int Dummy10 {
+ get { return result.Dummy10; }
+ set { SetDummy10(value); }
+ }
+ public Builder SetDummy10(int value) {
+ PrepareBuilder();
+ result.hasDummy10 = true;
+ result.dummy10_ = value;
+ return this;
+ }
+ public Builder ClearDummy10() {
+ PrepareBuilder();
+ result.hasDummy10 = false;
+ result.dummy10_ = 0;
+ return this;
+ }
+
+ public bool HasDummy11 {
+ get { return result.hasDummy11; }
+ }
+ public int Dummy11 {
+ get { return result.Dummy11; }
+ set { SetDummy11(value); }
+ }
+ public Builder SetDummy11(int value) {
+ PrepareBuilder();
+ result.hasDummy11 = true;
+ result.dummy11_ = value;
+ return this;
+ }
+ public Builder ClearDummy11() {
+ PrepareBuilder();
+ result.hasDummy11 = false;
+ result.dummy11_ = 0;
+ return this;
+ }
+
+ public bool HasDummy12 {
+ get { return result.hasDummy12; }
+ }
+ public int Dummy12 {
+ get { return result.Dummy12; }
+ set { SetDummy12(value); }
+ }
+ public Builder SetDummy12(int value) {
+ PrepareBuilder();
+ result.hasDummy12 = true;
+ result.dummy12_ = value;
+ return this;
+ }
+ public Builder ClearDummy12() {
+ PrepareBuilder();
+ result.hasDummy12 = false;
+ result.dummy12_ = 0;
+ return this;
+ }
+
+ public bool HasDummy13 {
+ get { return result.hasDummy13; }
+ }
+ public int Dummy13 {
+ get { return result.Dummy13; }
+ set { SetDummy13(value); }
+ }
+ public Builder SetDummy13(int value) {
+ PrepareBuilder();
+ result.hasDummy13 = true;
+ result.dummy13_ = value;
+ return this;
+ }
+ public Builder ClearDummy13() {
+ PrepareBuilder();
+ result.hasDummy13 = false;
+ result.dummy13_ = 0;
+ return this;
+ }
+
+ public bool HasDummy14 {
+ get { return result.hasDummy14; }
+ }
+ public int Dummy14 {
+ get { return result.Dummy14; }
+ set { SetDummy14(value); }
+ }
+ public Builder SetDummy14(int value) {
+ PrepareBuilder();
+ result.hasDummy14 = true;
+ result.dummy14_ = value;
+ return this;
+ }
+ public Builder ClearDummy14() {
+ PrepareBuilder();
+ result.hasDummy14 = false;
+ result.dummy14_ = 0;
+ return this;
+ }
+
+ public bool HasDummy15 {
+ get { return result.hasDummy15; }
+ }
+ public int Dummy15 {
+ get { return result.Dummy15; }
+ set { SetDummy15(value); }
+ }
+ public Builder SetDummy15(int value) {
+ PrepareBuilder();
+ result.hasDummy15 = true;
+ result.dummy15_ = value;
+ return this;
+ }
+ public Builder ClearDummy15() {
+ PrepareBuilder();
+ result.hasDummy15 = false;
+ result.dummy15_ = 0;
+ return this;
+ }
+
+ public bool HasDummy16 {
+ get { return result.hasDummy16; }
+ }
+ public int Dummy16 {
+ get { return result.Dummy16; }
+ set { SetDummy16(value); }
+ }
+ public Builder SetDummy16(int value) {
+ PrepareBuilder();
+ result.hasDummy16 = true;
+ result.dummy16_ = value;
+ return this;
+ }
+ public Builder ClearDummy16() {
+ PrepareBuilder();
+ result.hasDummy16 = false;
+ result.dummy16_ = 0;
+ return this;
+ }
+
+ public bool HasDummy17 {
+ get { return result.hasDummy17; }
+ }
+ public int Dummy17 {
+ get { return result.Dummy17; }
+ set { SetDummy17(value); }
+ }
+ public Builder SetDummy17(int value) {
+ PrepareBuilder();
+ result.hasDummy17 = true;
+ result.dummy17_ = value;
+ return this;
+ }
+ public Builder ClearDummy17() {
+ PrepareBuilder();
+ result.hasDummy17 = false;
+ result.dummy17_ = 0;
+ return this;
+ }
+
+ public bool HasDummy18 {
+ get { return result.hasDummy18; }
+ }
+ public int Dummy18 {
+ get { return result.Dummy18; }
+ set { SetDummy18(value); }
+ }
+ public Builder SetDummy18(int value) {
+ PrepareBuilder();
+ result.hasDummy18 = true;
+ result.dummy18_ = value;
+ return this;
+ }
+ public Builder ClearDummy18() {
+ PrepareBuilder();
+ result.hasDummy18 = false;
+ result.dummy18_ = 0;
+ return this;
+ }
+
+ public bool HasDummy19 {
+ get { return result.hasDummy19; }
+ }
+ public int Dummy19 {
+ get { return result.Dummy19; }
+ set { SetDummy19(value); }
+ }
+ public Builder SetDummy19(int value) {
+ PrepareBuilder();
+ result.hasDummy19 = true;
+ result.dummy19_ = value;
+ return this;
+ }
+ public Builder ClearDummy19() {
+ PrepareBuilder();
+ result.hasDummy19 = false;
+ result.dummy19_ = 0;
+ return this;
+ }
+
+ public bool HasDummy20 {
+ get { return result.hasDummy20; }
+ }
+ public int Dummy20 {
+ get { return result.Dummy20; }
+ set { SetDummy20(value); }
+ }
+ public Builder SetDummy20(int value) {
+ PrepareBuilder();
+ result.hasDummy20 = true;
+ result.dummy20_ = value;
+ return this;
+ }
+ public Builder ClearDummy20() {
+ PrepareBuilder();
+ result.hasDummy20 = false;
+ result.dummy20_ = 0;
+ return this;
+ }
+
+ public bool HasDummy21 {
+ get { return result.hasDummy21; }
+ }
+ public int Dummy21 {
+ get { return result.Dummy21; }
+ set { SetDummy21(value); }
+ }
+ public Builder SetDummy21(int value) {
+ PrepareBuilder();
+ result.hasDummy21 = true;
+ result.dummy21_ = value;
+ return this;
+ }
+ public Builder ClearDummy21() {
+ PrepareBuilder();
+ result.hasDummy21 = false;
+ result.dummy21_ = 0;
+ return this;
+ }
+
+ public bool HasDummy22 {
+ get { return result.hasDummy22; }
+ }
+ public int Dummy22 {
+ get { return result.Dummy22; }
+ set { SetDummy22(value); }
+ }
+ public Builder SetDummy22(int value) {
+ PrepareBuilder();
+ result.hasDummy22 = true;
+ result.dummy22_ = value;
+ return this;
+ }
+ public Builder ClearDummy22() {
+ PrepareBuilder();
+ result.hasDummy22 = false;
+ result.dummy22_ = 0;
+ return this;
+ }
+
+ public bool HasDummy23 {
+ get { return result.hasDummy23; }
+ }
+ public int Dummy23 {
+ get { return result.Dummy23; }
+ set { SetDummy23(value); }
+ }
+ public Builder SetDummy23(int value) {
+ PrepareBuilder();
+ result.hasDummy23 = true;
+ result.dummy23_ = value;
+ return this;
+ }
+ public Builder ClearDummy23() {
+ PrepareBuilder();
+ result.hasDummy23 = false;
+ result.dummy23_ = 0;
+ return this;
+ }
+
+ public bool HasDummy24 {
+ get { return result.hasDummy24; }
+ }
+ public int Dummy24 {
+ get { return result.Dummy24; }
+ set { SetDummy24(value); }
+ }
+ public Builder SetDummy24(int value) {
+ PrepareBuilder();
+ result.hasDummy24 = true;
+ result.dummy24_ = value;
+ return this;
+ }
+ public Builder ClearDummy24() {
+ PrepareBuilder();
+ result.hasDummy24 = false;
+ result.dummy24_ = 0;
+ return this;
+ }
+
+ public bool HasDummy25 {
+ get { return result.hasDummy25; }
+ }
+ public int Dummy25 {
+ get { return result.Dummy25; }
+ set { SetDummy25(value); }
+ }
+ public Builder SetDummy25(int value) {
+ PrepareBuilder();
+ result.hasDummy25 = true;
+ result.dummy25_ = value;
+ return this;
+ }
+ public Builder ClearDummy25() {
+ PrepareBuilder();
+ result.hasDummy25 = false;
+ result.dummy25_ = 0;
+ return this;
+ }
+
+ public bool HasDummy26 {
+ get { return result.hasDummy26; }
+ }
+ public int Dummy26 {
+ get { return result.Dummy26; }
+ set { SetDummy26(value); }
+ }
+ public Builder SetDummy26(int value) {
+ PrepareBuilder();
+ result.hasDummy26 = true;
+ result.dummy26_ = value;
+ return this;
+ }
+ public Builder ClearDummy26() {
+ PrepareBuilder();
+ result.hasDummy26 = false;
+ result.dummy26_ = 0;
+ return this;
+ }
+
+ public bool HasDummy27 {
+ get { return result.hasDummy27; }
+ }
+ public int Dummy27 {
+ get { return result.Dummy27; }
+ set { SetDummy27(value); }
+ }
+ public Builder SetDummy27(int value) {
+ PrepareBuilder();
+ result.hasDummy27 = true;
+ result.dummy27_ = value;
+ return this;
+ }
+ public Builder ClearDummy27() {
+ PrepareBuilder();
+ result.hasDummy27 = false;
+ result.dummy27_ = 0;
+ return this;
+ }
+
+ public bool HasDummy28 {
+ get { return result.hasDummy28; }
+ }
+ public int Dummy28 {
+ get { return result.Dummy28; }
+ set { SetDummy28(value); }
+ }
+ public Builder SetDummy28(int value) {
+ PrepareBuilder();
+ result.hasDummy28 = true;
+ result.dummy28_ = value;
+ return this;
+ }
+ public Builder ClearDummy28() {
+ PrepareBuilder();
+ result.hasDummy28 = false;
+ result.dummy28_ = 0;
+ return this;
+ }
+
+ public bool HasDummy29 {
+ get { return result.hasDummy29; }
+ }
+ public int Dummy29 {
+ get { return result.Dummy29; }
+ set { SetDummy29(value); }
+ }
+ public Builder SetDummy29(int value) {
+ PrepareBuilder();
+ result.hasDummy29 = true;
+ result.dummy29_ = value;
+ return this;
+ }
+ public Builder ClearDummy29() {
+ PrepareBuilder();
+ result.hasDummy29 = false;
+ result.dummy29_ = 0;
+ return this;
+ }
+
+ public bool HasDummy30 {
+ get { return result.hasDummy30; }
+ }
+ public int Dummy30 {
+ get { return result.Dummy30; }
+ set { SetDummy30(value); }
+ }
+ public Builder SetDummy30(int value) {
+ PrepareBuilder();
+ result.hasDummy30 = true;
+ result.dummy30_ = value;
+ return this;
+ }
+ public Builder ClearDummy30() {
+ PrepareBuilder();
+ result.hasDummy30 = false;
+ result.dummy30_ = 0;
+ return this;
+ }
+
+ public bool HasDummy31 {
+ get { return result.hasDummy31; }
+ }
+ public int Dummy31 {
+ get { return result.Dummy31; }
+ set { SetDummy31(value); }
+ }
+ public Builder SetDummy31(int value) {
+ PrepareBuilder();
+ result.hasDummy31 = true;
+ result.dummy31_ = value;
+ return this;
+ }
+ public Builder ClearDummy31() {
+ PrepareBuilder();
+ result.hasDummy31 = false;
+ result.dummy31_ = 0;
+ return this;
+ }
+
+ public bool HasDummy32 {
+ get { return result.hasDummy32; }
+ }
+ public int Dummy32 {
+ get { return result.Dummy32; }
+ set { SetDummy32(value); }
+ }
+ public Builder SetDummy32(int value) {
+ PrepareBuilder();
+ result.hasDummy32 = true;
+ result.dummy32_ = value;
+ return this;
+ }
+ public Builder ClearDummy32() {
+ PrepareBuilder();
+ result.hasDummy32 = false;
+ result.dummy32_ = 0;
+ return this;
+ }
+
+ public bool HasC {
+ get { return result.hasC; }
+ }
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ PrepareBuilder();
+ result.hasC = true;
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ PrepareBuilder();
+ result.hasC = false;
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static TestRequired() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequiredForeign : pb::GeneratedMessage<TestRequiredForeign, TestRequiredForeign.Builder> {
+ private TestRequiredForeign() { }
+ private static readonly TestRequiredForeign defaultInstance = new TestRequiredForeign().MakeReadOnly();
+ private static readonly string[] _testRequiredForeignFieldNames = new string[] { "dummy", "optional_message", "repeated_message" };
+ private static readonly uint[] _testRequiredForeignFieldTags = new uint[] { 24, 10, 18 };
+ public static TestRequiredForeign DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequiredForeign DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequiredForeign ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredForeign__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequiredForeign, TestRequiredForeign.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable; }
+ }
+
+ public const int OptionalMessageFieldNumber = 1;
+ private bool hasOptionalMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestRequired optionalMessage_;
+ public bool HasOptionalMessage {
+ get { return hasOptionalMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {
+ get { return optionalMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance; }
+ }
+
+ public const int RepeatedMessageFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired> repeatedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestRequired> RepeatedMessageList {
+ get { return repeatedMessage_; }
+ }
+ public int RepeatedMessageCount {
+ get { return repeatedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired GetRepeatedMessage(int index) {
+ return repeatedMessage_[index];
+ }
+
+ public const int DummyFieldNumber = 3;
+ private bool hasDummy;
+ private int dummy_;
+ public bool HasDummy {
+ get { return hasDummy; }
+ }
+ public int Dummy {
+ get { return dummy_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasOptionalMessage) {
+ if (!OptionalMessage.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRequiredForeignFieldNames;
+ if (hasOptionalMessage) {
+ output.WriteMessage(1, field_names[1], OptionalMessage);
+ }
+ if (repeatedMessage_.Count > 0) {
+ output.WriteMessageArray(2, field_names[2], repeatedMessage_);
+ }
+ if (hasDummy) {
+ output.WriteInt32(3, field_names[0], Dummy);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalMessage);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ if (hasDummy) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Dummy);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRequiredForeign ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequiredForeign ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequiredForeign MakeReadOnly() {
+ repeatedMessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequiredForeign prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredForeign, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequiredForeign cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequiredForeign result;
+
+ private TestRequiredForeign PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequiredForeign original = result;
+ result = new TestRequiredForeign();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequiredForeign MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Descriptor; }
+ }
+
+ public override TestRequiredForeign DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.DefaultInstance; }
+ }
+
+ public override TestRequiredForeign BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequiredForeign) {
+ return MergeFrom((TestRequiredForeign) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequiredForeign other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalMessage) {
+ MergeOptionalMessage(other.OptionalMessage);
+ }
+ if (other.repeatedMessage_.Count != 0) {
+ result.repeatedMessage_.Add(other.repeatedMessage_);
+ }
+ if (other.HasDummy) {
+ Dummy = other.Dummy;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRequiredForeignFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRequiredForeignFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder();
+ if (result.hasOptionalMessage) {
+ subBuilder.MergeFrom(OptionalMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.repeatedMessage_, global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 24: {
+ result.hasDummy = input.ReadInt32(ref result.dummy_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalMessage {
+ get { return result.hasOptionalMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {
+ get { return result.OptionalMessage; }
+ set { SetOptionalMessage(value); }
+ }
+ public Builder SetOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalMessage = true;
+ result.optionalMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalMessage = true;
+ result.optionalMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalMessage &&
+ result.optionalMessage_ != global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) {
+ result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder(result.optionalMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalMessage_ = value;
+ }
+ result.hasOptionalMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalMessage() {
+ PrepareBuilder();
+ result.hasOptionalMessage = false;
+ result.optionalMessage_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired> RepeatedMessageList {
+ get { return PrepareBuilder().repeatedMessage_; }
+ }
+ public int RepeatedMessageCount {
+ get { return result.RepeatedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired GetRepeatedMessage(int index) {
+ return result.GetRepeatedMessage(index);
+ }
+ public Builder SetRepeatedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestRequired> values) {
+ PrepareBuilder();
+ result.repeatedMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedMessage() {
+ PrepareBuilder();
+ result.repeatedMessage_.Clear();
+ return this;
+ }
+
+ public bool HasDummy {
+ get { return result.hasDummy; }
+ }
+ public int Dummy {
+ get { return result.Dummy; }
+ set { SetDummy(value); }
+ }
+ public Builder SetDummy(int value) {
+ PrepareBuilder();
+ result.hasDummy = true;
+ result.dummy_ = value;
+ return this;
+ }
+ public Builder ClearDummy() {
+ PrepareBuilder();
+ result.hasDummy = false;
+ result.dummy_ = 0;
+ return this;
+ }
+ }
+ static TestRequiredForeign() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestForeignNested : pb::GeneratedMessage<TestForeignNested, TestForeignNested.Builder> {
+ private TestForeignNested() { }
+ private static readonly TestForeignNested defaultInstance = new TestForeignNested().MakeReadOnly();
+ private static readonly string[] _testForeignNestedFieldNames = new string[] { "foreign_nested" };
+ private static readonly uint[] _testForeignNestedFieldTags = new uint[] { 10 };
+ public static TestForeignNested DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestForeignNested DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestForeignNested ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestForeignNested__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestForeignNested, TestForeignNested.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable; }
+ }
+
+ public const int ForeignNestedFieldNumber = 1;
+ private bool hasForeignNested;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_;
+ public bool HasForeignNested {
+ get { return hasForeignNested; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
+ get { return foreignNested_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testForeignNestedFieldNames;
+ if (hasForeignNested) {
+ output.WriteMessage(1, field_names[0], ForeignNested);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasForeignNested) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, ForeignNested);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestForeignNested ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestForeignNested ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestForeignNested MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestForeignNested prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestForeignNested, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestForeignNested cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestForeignNested result;
+
+ private TestForeignNested PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestForeignNested original = result;
+ result = new TestForeignNested();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestForeignNested MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Descriptor; }
+ }
+
+ public override TestForeignNested DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestForeignNested.DefaultInstance; }
+ }
+
+ public override TestForeignNested BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestForeignNested) {
+ return MergeFrom((TestForeignNested) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestForeignNested other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestForeignNested.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasForeignNested) {
+ MergeForeignNested(other.ForeignNested);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testForeignNestedFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testForeignNestedFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (result.hasForeignNested) {
+ subBuilder.MergeFrom(ForeignNested);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ ForeignNested = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasForeignNested {
+ get { return result.hasForeignNested; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
+ get { return result.ForeignNested; }
+ set { SetForeignNested(value); }
+ }
+ public Builder SetForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasForeignNested = true;
+ result.foreignNested_ = value;
+ return this;
+ }
+ public Builder SetForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasForeignNested = true;
+ result.foreignNested_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasForeignNested &&
+ result.foreignNested_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.foreignNested_).MergeFrom(value).BuildPartial();
+ } else {
+ result.foreignNested_ = value;
+ }
+ result.hasForeignNested = true;
+ return this;
+ }
+ public Builder ClearForeignNested() {
+ PrepareBuilder();
+ result.hasForeignNested = false;
+ result.foreignNested_ = null;
+ return this;
+ }
+ }
+ static TestForeignNested() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEmptyMessage : pb::GeneratedMessage<TestEmptyMessage, TestEmptyMessage.Builder> {
+ private TestEmptyMessage() { }
+ private static readonly TestEmptyMessage defaultInstance = new TestEmptyMessage().MakeReadOnly();
+ private static readonly string[] _testEmptyMessageFieldNames = new string[] { };
+ private static readonly uint[] _testEmptyMessageFieldTags = new uint[] { };
+ public static TestEmptyMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEmptyMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEmptyMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEmptyMessage, TestEmptyMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEmptyMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestEmptyMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEmptyMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEmptyMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEmptyMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestEmptyMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEmptyMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEmptyMessage result;
+
+ private TestEmptyMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEmptyMessage original = result;
+ result = new TestEmptyMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEmptyMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Descriptor; }
+ }
+
+ public override TestEmptyMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.DefaultInstance; }
+ }
+
+ public override TestEmptyMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEmptyMessage) {
+ return MergeFrom((TestEmptyMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEmptyMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEmptyMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEmptyMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestEmptyMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEmptyMessageWithExtensions : pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> {
+ private TestEmptyMessageWithExtensions() { }
+ private static readonly TestEmptyMessageWithExtensions defaultInstance = new TestEmptyMessageWithExtensions().MakeReadOnly();
+ private static readonly string[] _testEmptyMessageWithExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testEmptyMessageWithExtensionsFieldTags = new uint[] { };
+ public static TestEmptyMessageWithExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEmptyMessageWithExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEmptyMessageWithExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEmptyMessageWithExtensionsFieldNames;
+ pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEmptyMessageWithExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEmptyMessageWithExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestEmptyMessageWithExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEmptyMessageWithExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEmptyMessageWithExtensions result;
+
+ private TestEmptyMessageWithExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEmptyMessageWithExtensions original = result;
+ result = new TestEmptyMessageWithExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEmptyMessageWithExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Descriptor; }
+ }
+
+ public override TestEmptyMessageWithExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.DefaultInstance; }
+ }
+
+ public override TestEmptyMessageWithExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEmptyMessageWithExtensions) {
+ return MergeFrom((TestEmptyMessageWithExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEmptyMessageWithExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEmptyMessageWithExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEmptyMessageWithExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestEmptyMessageWithExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMultipleExtensionRanges : pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> {
+ private TestMultipleExtensionRanges() { }
+ private static readonly TestMultipleExtensionRanges defaultInstance = new TestMultipleExtensionRanges().MakeReadOnly();
+ private static readonly string[] _testMultipleExtensionRangesFieldNames = new string[] { };
+ private static readonly uint[] _testMultipleExtensionRangesFieldTags = new uint[] { };
+ public static TestMultipleExtensionRanges DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMultipleExtensionRanges DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMultipleExtensionRanges ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMultipleExtensionRangesFieldNames;
+ pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(43, output);
+ extensionWriter.WriteUntil(4244, output);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMultipleExtensionRanges MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMultipleExtensionRanges prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestMultipleExtensionRanges, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMultipleExtensionRanges cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMultipleExtensionRanges result;
+
+ private TestMultipleExtensionRanges PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMultipleExtensionRanges original = result;
+ result = new TestMultipleExtensionRanges();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMultipleExtensionRanges MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Descriptor; }
+ }
+
+ public override TestMultipleExtensionRanges DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.DefaultInstance; }
+ }
+
+ public override TestMultipleExtensionRanges BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMultipleExtensionRanges) {
+ return MergeFrom((TestMultipleExtensionRanges) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMultipleExtensionRanges other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMultipleExtensionRangesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMultipleExtensionRangesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestMultipleExtensionRanges() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestReallyLargeTagNumber : pb::GeneratedMessage<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> {
+ private TestReallyLargeTagNumber() { }
+ private static readonly TestReallyLargeTagNumber defaultInstance = new TestReallyLargeTagNumber().MakeReadOnly();
+ private static readonly string[] _testReallyLargeTagNumberFieldNames = new string[] { "a", "bb" };
+ private static readonly uint[] _testReallyLargeTagNumberFieldTags = new uint[] { 8, 2147483640 };
+ public static TestReallyLargeTagNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestReallyLargeTagNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestReallyLargeTagNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BbFieldNumber = 268435455;
+ private bool hasBb;
+ private int bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testReallyLargeTagNumberFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ if (hasBb) {
+ output.WriteInt32(268435455, field_names[1], Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(268435455, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestReallyLargeTagNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestReallyLargeTagNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestReallyLargeTagNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestReallyLargeTagNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestReallyLargeTagNumber result;
+
+ private TestReallyLargeTagNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestReallyLargeTagNumber original = result;
+ result = new TestReallyLargeTagNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestReallyLargeTagNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Descriptor; }
+ }
+
+ public override TestReallyLargeTagNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.DefaultInstance; }
+ }
+
+ public override TestReallyLargeTagNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestReallyLargeTagNumber) {
+ return MergeFrom((TestReallyLargeTagNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestReallyLargeTagNumber other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testReallyLargeTagNumberFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testReallyLargeTagNumberFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 2147483640: {
+ result.hasBb = input.ReadInt32(ref result.bb_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static TestReallyLargeTagNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRecursiveMessage : pb::GeneratedMessage<TestRecursiveMessage, TestRecursiveMessage.Builder> {
+ private TestRecursiveMessage() { }
+ private static readonly TestRecursiveMessage defaultInstance = new TestRecursiveMessage().MakeReadOnly();
+ private static readonly string[] _testRecursiveMessageFieldNames = new string[] { "a", "i" };
+ private static readonly uint[] _testRecursiveMessageFieldTags = new uint[] { 10, 16 };
+ public static TestRecursiveMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRecursiveMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRecursiveMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRecursiveMessage, TestRecursiveMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {
+ get { return a_ ?? global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance; }
+ }
+
+ public const int IFieldNumber = 2;
+ private bool hasI;
+ private int i_;
+ public bool HasI {
+ get { return hasI; }
+ }
+ public int I {
+ get { return i_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRecursiveMessageFieldNames;
+ if (hasA) {
+ output.WriteMessage(1, field_names[0], A);
+ }
+ if (hasI) {
+ output.WriteInt32(2, field_names[1], I);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, A);
+ }
+ if (hasI) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, I);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRecursiveMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRecursiveMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRecursiveMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRecursiveMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRecursiveMessage result;
+
+ private TestRecursiveMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRecursiveMessage original = result;
+ result = new TestRecursiveMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRecursiveMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Descriptor; }
+ }
+
+ public override TestRecursiveMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance; }
+ }
+
+ public override TestRecursiveMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRecursiveMessage) {
+ return MergeFrom((TestRecursiveMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRecursiveMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ MergeA(other.A);
+ }
+ if (other.HasI) {
+ I = other.I;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRecursiveMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRecursiveMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder();
+ if (result.hasA) {
+ subBuilder.MergeFrom(A);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ A = subBuilder.BuildPartial();
+ break;
+ }
+ case 16: {
+ result.hasI = input.ReadInt32(ref result.i_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasA &&
+ result.a_ != global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance) {
+ result.a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();
+ } else {
+ result.a_ = value;
+ }
+ result.hasA = true;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = null;
+ return this;
+ }
+
+ public bool HasI {
+ get { return result.hasI; }
+ }
+ public int I {
+ get { return result.I; }
+ set { SetI(value); }
+ }
+ public Builder SetI(int value) {
+ PrepareBuilder();
+ result.hasI = true;
+ result.i_ = value;
+ return this;
+ }
+ public Builder ClearI() {
+ PrepareBuilder();
+ result.hasI = false;
+ result.i_ = 0;
+ return this;
+ }
+ }
+ static TestRecursiveMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMutualRecursionA : pb::GeneratedMessage<TestMutualRecursionA, TestMutualRecursionA.Builder> {
+ private TestMutualRecursionA() { }
+ private static readonly TestMutualRecursionA defaultInstance = new TestMutualRecursionA().MakeReadOnly();
+ private static readonly string[] _testMutualRecursionAFieldNames = new string[] { "bb" };
+ private static readonly uint[] _testMutualRecursionAFieldTags = new uint[] { 10 };
+ public static TestMutualRecursionA DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMutualRecursionA DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMutualRecursionA ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMutualRecursionA, TestMutualRecursionA.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {
+ get { return bb_ ?? global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMutualRecursionAFieldNames;
+ if (hasBb) {
+ output.WriteMessage(1, field_names[0], Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMutualRecursionA MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMutualRecursionA prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionA, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMutualRecursionA cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMutualRecursionA result;
+
+ private TestMutualRecursionA PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMutualRecursionA original = result;
+ result = new TestMutualRecursionA();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMutualRecursionA MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Descriptor; }
+ }
+
+ public override TestMutualRecursionA DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance; }
+ }
+
+ public override TestMutualRecursionA BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMutualRecursionA) {
+ return MergeFrom((TestMutualRecursionA) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMutualRecursionA other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasBb) {
+ MergeBb(other.Bb);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMutualRecursionAFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMutualRecursionAFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder();
+ if (result.hasBb) {
+ subBuilder.MergeFrom(Bb);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Bb = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder SetBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasBb &&
+ result.bb_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance) {
+ result.bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder(result.bb_).MergeFrom(value).BuildPartial();
+ } else {
+ result.bb_ = value;
+ }
+ result.hasBb = true;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = null;
+ return this;
+ }
+ }
+ static TestMutualRecursionA() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMutualRecursionB : pb::GeneratedMessage<TestMutualRecursionB, TestMutualRecursionB.Builder> {
+ private TestMutualRecursionB() { }
+ private static readonly TestMutualRecursionB defaultInstance = new TestMutualRecursionB().MakeReadOnly();
+ private static readonly string[] _testMutualRecursionBFieldNames = new string[] { "a", "optional_int32" };
+ private static readonly uint[] _testMutualRecursionBFieldTags = new uint[] { 10, 16 };
+ public static TestMutualRecursionB DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMutualRecursionB DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMutualRecursionB ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMutualRecursionB, TestMutualRecursionB.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {
+ get { return a_ ?? global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance; }
+ }
+
+ public const int OptionalInt32FieldNumber = 2;
+ private bool hasOptionalInt32;
+ private int optionalInt32_;
+ public bool HasOptionalInt32 {
+ get { return hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testMutualRecursionBFieldNames;
+ if (hasA) {
+ output.WriteMessage(1, field_names[0], A);
+ }
+ if (hasOptionalInt32) {
+ output.WriteInt32(2, field_names[1], OptionalInt32);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, A);
+ }
+ if (hasOptionalInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, OptionalInt32);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMutualRecursionB MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMutualRecursionB prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionB, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMutualRecursionB cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMutualRecursionB result;
+
+ private TestMutualRecursionB PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMutualRecursionB original = result;
+ result = new TestMutualRecursionB();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMutualRecursionB MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Descriptor; }
+ }
+
+ public override TestMutualRecursionB DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance; }
+ }
+
+ public override TestMutualRecursionB BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMutualRecursionB) {
+ return MergeFrom((TestMutualRecursionB) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMutualRecursionB other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ MergeA(other.A);
+ }
+ if (other.HasOptionalInt32) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testMutualRecursionBFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testMutualRecursionBFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder();
+ if (result.hasA) {
+ subBuilder.MergeFrom(A);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ A = subBuilder.BuildPartial();
+ break;
+ }
+ case 16: {
+ result.hasOptionalInt32 = input.ReadInt32(ref result.optionalInt32_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasA &&
+ result.a_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance) {
+ result.a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();
+ } else {
+ result.a_ = value;
+ }
+ result.hasA = true;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = null;
+ return this;
+ }
+
+ public bool HasOptionalInt32 {
+ get { return result.hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ PrepareBuilder();
+ result.hasOptionalInt32 = true;
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ PrepareBuilder();
+ result.hasOptionalInt32 = false;
+ result.optionalInt32_ = 0;
+ return this;
+ }
+ }
+ static TestMutualRecursionB() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestDupFieldNumber : pb::GeneratedMessage<TestDupFieldNumber, TestDupFieldNumber.Builder> {
+ private TestDupFieldNumber() { }
+ private static readonly TestDupFieldNumber defaultInstance = new TestDupFieldNumber().MakeReadOnly();
+ private static readonly string[] _testDupFieldNumberFieldNames = new string[] { "a", "bar", "foo" };
+ private static readonly uint[] _testDupFieldNumberFieldTags = new uint[] { 8, 27, 19 };
+ public static TestDupFieldNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDupFieldNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestDupFieldNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDupFieldNumber, TestDupFieldNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Foo : pb::GeneratedMessage<Foo, Foo.Builder> {
+ private Foo() { }
+ private static readonly Foo defaultInstance = new Foo().MakeReadOnly();
+ private static readonly string[] _fooFieldNames = new string[] { "a" };
+ private static readonly uint[] _fooFieldTags = new uint[] { 8 };
+ public static Foo DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Foo DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Foo ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Foo, Foo.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Foo ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Foo ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Foo ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Foo ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Foo MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Foo prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Foo, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Foo cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Foo result;
+
+ private Foo PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Foo original = result;
+ result = new Foo();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Foo MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Descriptor; }
+ }
+
+ public override Foo DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance; }
+ }
+
+ public override Foo BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Foo) {
+ return MergeFrom((Foo) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Foo other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static Foo() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Bar : pb::GeneratedMessage<Bar, Bar.Builder> {
+ private Bar() { }
+ private static readonly Bar defaultInstance = new Bar().MakeReadOnly();
+ private static readonly string[] _barFieldNames = new string[] { "a" };
+ private static readonly uint[] _barFieldTags = new uint[] { 8 };
+ public static Bar DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Bar DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Bar ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Bar, Bar.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _barFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Bar ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Bar ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Bar ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Bar ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Bar MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Bar prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Bar, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Bar cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Bar result;
+
+ private Bar PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Bar original = result;
+ result = new Bar();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Bar MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Descriptor; }
+ }
+
+ public override Bar DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance; }
+ }
+
+ public override Bar BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Bar) {
+ return MergeFrom((Bar) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Bar other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_barFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _barFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static Bar() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int FooFieldNumber = 2;
+ private bool hasFoo;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo foo_;
+ public bool HasFoo {
+ get { return hasFoo; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {
+ get { return foo_ ?? global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance; }
+ }
+
+ public const int BarFieldNumber = 3;
+ private bool hasBar;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar bar_;
+ public bool HasBar {
+ get { return hasBar; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {
+ get { return bar_ ?? global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testDupFieldNumberFieldNames;
+ if (hasA) {
+ output.WriteInt32(1, field_names[0], A);
+ }
+ if (hasFoo) {
+ output.WriteGroup(2, field_names[2], Foo);
+ }
+ if (hasBar) {
+ output.WriteGroup(3, field_names[1], Bar);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (hasFoo) {
+ size += pb::CodedOutputStream.ComputeGroupSize(2, Foo);
+ }
+ if (hasBar) {
+ size += pb::CodedOutputStream.ComputeGroupSize(3, Bar);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestDupFieldNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDupFieldNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDupFieldNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestDupFieldNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestDupFieldNumber result;
+
+ private TestDupFieldNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestDupFieldNumber original = result;
+ result = new TestDupFieldNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestDupFieldNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Descriptor; }
+ }
+
+ public override TestDupFieldNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.DefaultInstance; }
+ }
+
+ public override TestDupFieldNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDupFieldNumber) {
+ return MergeFrom((TestDupFieldNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDupFieldNumber other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasFoo) {
+ MergeFoo(other.Foo);
+ }
+ if (other.HasBar) {
+ MergeBar(other.Bar);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testDupFieldNumberFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testDupFieldNumberFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 19: {
+ global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder();
+ if (result.hasFoo) {
+ subBuilder.MergeFrom(Foo);
+ }
+ input.ReadGroup(2, subBuilder, extensionRegistry);
+ Foo = subBuilder.BuildPartial();
+ break;
+ }
+ case 27: {
+ global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder();
+ if (result.hasBar) {
+ subBuilder.MergeFrom(Bar);
+ }
+ input.ReadGroup(3, subBuilder, extensionRegistry);
+ Bar = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasFoo {
+ get { return result.hasFoo; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {
+ get { return result.Foo; }
+ set { SetFoo(value); }
+ }
+ public Builder SetFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFoo = true;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFoo = true;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFoo &&
+ result.foo_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder(result.foo_).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.hasFoo = true;
+ return this;
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.hasFoo = false;
+ result.foo_ = null;
+ return this;
+ }
+
+ public bool HasBar {
+ get { return result.hasBar; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {
+ get { return result.Bar; }
+ set { SetBar(value); }
+ }
+ public Builder SetBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBar = true;
+ result.bar_ = value;
+ return this;
+ }
+ public Builder SetBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasBar = true;
+ result.bar_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasBar &&
+ result.bar_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance) {
+ result.bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder(result.bar_).MergeFrom(value).BuildPartial();
+ } else {
+ result.bar_ = value;
+ }
+ result.hasBar = true;
+ return this;
+ }
+ public Builder ClearBar() {
+ PrepareBuilder();
+ result.hasBar = false;
+ result.bar_ = null;
+ return this;
+ }
+ }
+ static TestDupFieldNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEagerMessage : pb::GeneratedMessage<TestEagerMessage, TestEagerMessage.Builder> {
+ private TestEagerMessage() { }
+ private static readonly TestEagerMessage defaultInstance = new TestEagerMessage().MakeReadOnly();
+ private static readonly string[] _testEagerMessageFieldNames = new string[] { "sub_message" };
+ private static readonly uint[] _testEagerMessageFieldTags = new uint[] { 10 };
+ public static TestEagerMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEagerMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEagerMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEagerMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEagerMessage, TestEagerMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestEagerMessage__FieldAccessorTable; }
+ }
+
+ public const int SubMessageFieldNumber = 1;
+ private bool hasSubMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes subMessage_;
+ public bool HasSubMessage {
+ get { return hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return subMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEagerMessageFieldNames;
+ if (hasSubMessage) {
+ output.WriteMessage(1, field_names[0], SubMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSubMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, SubMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestEagerMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEagerMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEagerMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEagerMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEagerMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEagerMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestEagerMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEagerMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEagerMessage result;
+
+ private TestEagerMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEagerMessage original = result;
+ result = new TestEagerMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEagerMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.Descriptor; }
+ }
+
+ public override TestEagerMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.DefaultInstance; }
+ }
+
+ public override TestEagerMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEagerMessage) {
+ return MergeFrom((TestEagerMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEagerMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEagerMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasSubMessage) {
+ MergeSubMessage(other.SubMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEagerMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEagerMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasSubMessage) {
+ subBuilder.MergeFrom(SubMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ SubMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasSubMessage {
+ get { return result.hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return result.SubMessage; }
+ set { SetSubMessage(value); }
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = value;
+ return this;
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasSubMessage &&
+ result.subMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.subMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.subMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.subMessage_ = value;
+ }
+ result.hasSubMessage = true;
+ return this;
+ }
+ public Builder ClearSubMessage() {
+ PrepareBuilder();
+ result.hasSubMessage = false;
+ result.subMessage_ = null;
+ return this;
+ }
+ }
+ static TestEagerMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestLazyMessage : pb::GeneratedMessage<TestLazyMessage, TestLazyMessage.Builder> {
+ private TestLazyMessage() { }
+ private static readonly TestLazyMessage defaultInstance = new TestLazyMessage().MakeReadOnly();
+ private static readonly string[] _testLazyMessageFieldNames = new string[] { "sub_message" };
+ private static readonly uint[] _testLazyMessageFieldTags = new uint[] { 10 };
+ public static TestLazyMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestLazyMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestLazyMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestLazyMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestLazyMessage, TestLazyMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestLazyMessage__FieldAccessorTable; }
+ }
+
+ public const int SubMessageFieldNumber = 1;
+ private bool hasSubMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes subMessage_;
+ public bool HasSubMessage {
+ get { return hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return subMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testLazyMessageFieldNames;
+ if (hasSubMessage) {
+ output.WriteMessage(1, field_names[0], SubMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSubMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, SubMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestLazyMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestLazyMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestLazyMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestLazyMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestLazyMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestLazyMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestLazyMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestLazyMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestLazyMessage result;
+
+ private TestLazyMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestLazyMessage original = result;
+ result = new TestLazyMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestLazyMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.Descriptor; }
+ }
+
+ public override TestLazyMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.DefaultInstance; }
+ }
+
+ public override TestLazyMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestLazyMessage) {
+ return MergeFrom((TestLazyMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestLazyMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestLazyMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasSubMessage) {
+ MergeSubMessage(other.SubMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testLazyMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testLazyMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasSubMessage) {
+ subBuilder.MergeFrom(SubMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ SubMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasSubMessage {
+ get { return result.hasSubMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes SubMessage {
+ get { return result.SubMessage; }
+ set { SetSubMessage(value); }
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = value;
+ return this;
+ }
+ public Builder SetSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasSubMessage = true;
+ result.subMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeSubMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasSubMessage &&
+ result.subMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.subMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.subMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.subMessage_ = value;
+ }
+ result.hasSubMessage = true;
+ return this;
+ }
+ public Builder ClearSubMessage() {
+ PrepareBuilder();
+ result.hasSubMessage = false;
+ result.subMessage_ = null;
+ return this;
+ }
+ }
+ static TestLazyMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestNestedMessageHasBits : pb::GeneratedMessage<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> {
+ private TestNestedMessageHasBits() { }
+ private static readonly TestNestedMessageHasBits defaultInstance = new TestNestedMessageHasBits().MakeReadOnly();
+ private static readonly string[] _testNestedMessageHasBitsFieldNames = new string[] { "optional_nested_message" };
+ private static readonly uint[] _testNestedMessageHasBitsFieldTags = new uint[] { 10 };
+ public static TestNestedMessageHasBits DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedMessageHasBits DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestNestedMessageHasBits ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "nestedmessage_repeated_foreignmessage", "nestedmessage_repeated_int32" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 18, 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int NestedmessageRepeatedInt32FieldNumber = 1;
+ private pbc::PopsicleList<int> nestedmessageRepeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> NestedmessageRepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(nestedmessageRepeatedInt32_); }
+ }
+ public int NestedmessageRepeatedInt32Count {
+ get { return nestedmessageRepeatedInt32_.Count; }
+ }
+ public int GetNestedmessageRepeatedInt32(int index) {
+ return nestedmessageRepeatedInt32_[index];
+ }
+
+ public const int NestedmessageRepeatedForeignmessageFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> nestedmessageRepeatedForeignmessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> NestedmessageRepeatedForeignmessageList {
+ get { return nestedmessageRepeatedForeignmessage_; }
+ }
+ public int NestedmessageRepeatedForeignmessageCount {
+ get { return nestedmessageRepeatedForeignmessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetNestedmessageRepeatedForeignmessage(int index) {
+ return nestedmessageRepeatedForeignmessage_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (nestedmessageRepeatedInt32_.Count > 0) {
+ output.WriteInt32Array(1, field_names[1], nestedmessageRepeatedInt32_);
+ }
+ if (nestedmessageRepeatedForeignmessage_.Count > 0) {
+ output.WriteMessageArray(2, field_names[0], nestedmessageRepeatedForeignmessage_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in NestedmessageRepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * nestedmessageRepeatedInt32_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in NestedmessageRepeatedForeignmessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ nestedmessageRepeatedInt32_.MakeReadOnly();
+ nestedmessageRepeatedForeignmessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.nestedmessageRepeatedInt32_.Count != 0) {
+ result.nestedmessageRepeatedInt32_.Add(other.nestedmessageRepeatedInt32_);
+ }
+ if (other.nestedmessageRepeatedForeignmessage_.Count != 0) {
+ result.nestedmessageRepeatedForeignmessage_.Add(other.nestedmessageRepeatedForeignmessage_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10:
+ case 8: {
+ input.ReadInt32Array(tag, field_name, result.nestedmessageRepeatedInt32_);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.nestedmessageRepeatedForeignmessage_, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> NestedmessageRepeatedInt32List {
+ get { return PrepareBuilder().nestedmessageRepeatedInt32_; }
+ }
+ public int NestedmessageRepeatedInt32Count {
+ get { return result.NestedmessageRepeatedInt32Count; }
+ }
+ public int GetNestedmessageRepeatedInt32(int index) {
+ return result.GetNestedmessageRepeatedInt32(index);
+ }
+ public Builder SetNestedmessageRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeNestedmessageRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearNestedmessageRepeatedInt32() {
+ PrepareBuilder();
+ result.nestedmessageRepeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> NestedmessageRepeatedForeignmessageList {
+ get { return PrepareBuilder().nestedmessageRepeatedForeignmessage_; }
+ }
+ public int NestedmessageRepeatedForeignmessageCount {
+ get { return result.NestedmessageRepeatedForeignmessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetNestedmessageRepeatedForeignmessage(int index) {
+ return result.GetNestedmessageRepeatedForeignmessage(index);
+ }
+ public Builder SetNestedmessageRepeatedForeignmessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_[index] = value;
+ return this;
+ }
+ public Builder SetNestedmessageRepeatedForeignmessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedForeignmessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Add(value);
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedForeignmessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeNestedmessageRepeatedForeignmessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Add(values);
+ return this;
+ }
+ public Builder ClearNestedmessageRepeatedForeignmessage() {
+ PrepareBuilder();
+ result.nestedmessageRepeatedForeignmessage_.Clear();
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int OptionalNestedMessageFieldNumber = 1;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testNestedMessageHasBitsFieldNames;
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(1, field_names[0], OptionalNestedMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalNestedMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestNestedMessageHasBits MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedMessageHasBits prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestNestedMessageHasBits, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestNestedMessageHasBits cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestNestedMessageHasBits result;
+
+ private TestNestedMessageHasBits PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestNestedMessageHasBits original = result;
+ result = new TestNestedMessageHasBits();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestNestedMessageHasBits MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Descriptor; }
+ }
+
+ public override TestNestedMessageHasBits DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.DefaultInstance; }
+ }
+
+ public override TestNestedMessageHasBits BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestNestedMessageHasBits) {
+ return MergeFrom((TestNestedMessageHasBits) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedMessageHasBits other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testNestedMessageHasBitsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testNestedMessageHasBitsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+ }
+ static TestNestedMessageHasBits() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestCamelCaseFieldNames : pb::GeneratedMessage<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> {
+ private TestCamelCaseFieldNames() { }
+ private static readonly TestCamelCaseFieldNames defaultInstance = new TestCamelCaseFieldNames().MakeReadOnly();
+ private static readonly string[] _testCamelCaseFieldNamesFieldNames = new string[] { "CordField", "EnumField", "MessageField", "PrimitiveField", "RepeatedCordField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedStringPieceField", "StringField", "StringPieceField" };
+ private static readonly uint[] _testCamelCaseFieldNamesFieldTags = new uint[] { 50, 24, 34, 8, 98, 72, 82, 56, 66, 90, 18, 42 };
+ public static TestCamelCaseFieldNames DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestCamelCaseFieldNames DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestCamelCaseFieldNames ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable; }
+ }
+
+ public const int PrimitiveFieldFieldNumber = 1;
+ private bool hasPrimitiveField;
+ private int primitiveField_;
+ public bool HasPrimitiveField {
+ get { return hasPrimitiveField; }
+ }
+ public int PrimitiveField {
+ get { return primitiveField_; }
+ }
+
+ public const int StringFieldFieldNumber = 2;
+ private bool hasStringField;
+ private string stringField_ = "";
+ public bool HasStringField {
+ get { return hasStringField; }
+ }
+ public string StringField {
+ get { return stringField_; }
+ }
+
+ public const int EnumFieldFieldNumber = 3;
+ private bool hasEnumField;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum enumField_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasEnumField {
+ get { return hasEnumField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumField {
+ get { return enumField_; }
+ }
+
+ public const int MessageFieldFieldNumber = 4;
+ private bool hasMessageField;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageField_;
+ public bool HasMessageField {
+ get { return hasMessageField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {
+ get { return messageField_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int StringPieceFieldFieldNumber = 5;
+ private bool hasStringPieceField;
+ private string stringPieceField_ = "";
+ public bool HasStringPieceField {
+ get { return hasStringPieceField; }
+ }
+ public string StringPieceField {
+ get { return stringPieceField_; }
+ }
+
+ public const int CordFieldFieldNumber = 6;
+ private bool hasCordField;
+ private string cordField_ = "";
+ public bool HasCordField {
+ get { return hasCordField; }
+ }
+ public string CordField {
+ get { return cordField_; }
+ }
+
+ public const int RepeatedPrimitiveFieldFieldNumber = 7;
+ private pbc::PopsicleList<int> repeatedPrimitiveField_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedPrimitiveFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedPrimitiveField_); }
+ }
+ public int RepeatedPrimitiveFieldCount {
+ get { return repeatedPrimitiveField_.Count; }
+ }
+ public int GetRepeatedPrimitiveField(int index) {
+ return repeatedPrimitiveField_[index];
+ }
+
+ public const int RepeatedStringFieldFieldNumber = 8;
+ private pbc::PopsicleList<string> repeatedStringField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringField_); }
+ }
+ public int RepeatedStringFieldCount {
+ get { return repeatedStringField_.Count; }
+ }
+ public string GetRepeatedStringField(int index) {
+ return repeatedStringField_[index];
+ }
+
+ public const int RepeatedEnumFieldFieldNumber = 9;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> repeatedEnumField_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedEnumFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedEnumField_); }
+ }
+ public int RepeatedEnumFieldCount {
+ get { return repeatedEnumField_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedEnumField(int index) {
+ return repeatedEnumField_[index];
+ }
+
+ public const int RepeatedMessageFieldFieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> repeatedMessageField_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedMessageFieldList {
+ get { return repeatedMessageField_; }
+ }
+ public int RepeatedMessageFieldCount {
+ get { return repeatedMessageField_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedMessageField(int index) {
+ return repeatedMessageField_[index];
+ }
+
+ public const int RepeatedStringPieceFieldFieldNumber = 11;
+ private pbc::PopsicleList<string> repeatedStringPieceField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPieceField_); }
+ }
+ public int RepeatedStringPieceFieldCount {
+ get { return repeatedStringPieceField_.Count; }
+ }
+ public string GetRepeatedStringPieceField(int index) {
+ return repeatedStringPieceField_[index];
+ }
+
+ public const int RepeatedCordFieldFieldNumber = 12;
+ private pbc::PopsicleList<string> repeatedCordField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedCordField_); }
+ }
+ public int RepeatedCordFieldCount {
+ get { return repeatedCordField_.Count; }
+ }
+ public string GetRepeatedCordField(int index) {
+ return repeatedCordField_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testCamelCaseFieldNamesFieldNames;
+ if (hasPrimitiveField) {
+ output.WriteInt32(1, field_names[3], PrimitiveField);
+ }
+ if (hasStringField) {
+ output.WriteString(2, field_names[10], StringField);
+ }
+ if (hasEnumField) {
+ output.WriteEnum(3, field_names[1], (int) EnumField, EnumField);
+ }
+ if (hasMessageField) {
+ output.WriteMessage(4, field_names[2], MessageField);
+ }
+ if (hasStringPieceField) {
+ output.WriteString(5, field_names[11], StringPieceField);
+ }
+ if (hasCordField) {
+ output.WriteString(6, field_names[0], CordField);
+ }
+ if (repeatedPrimitiveField_.Count > 0) {
+ output.WriteInt32Array(7, field_names[7], repeatedPrimitiveField_);
+ }
+ if (repeatedStringField_.Count > 0) {
+ output.WriteStringArray(8, field_names[8], repeatedStringField_);
+ }
+ if (repeatedEnumField_.Count > 0) {
+ output.WriteEnumArray(9, field_names[5], repeatedEnumField_);
+ }
+ if (repeatedMessageField_.Count > 0) {
+ output.WriteMessageArray(10, field_names[6], repeatedMessageField_);
+ }
+ if (repeatedStringPieceField_.Count > 0) {
+ output.WriteStringArray(11, field_names[9], repeatedStringPieceField_);
+ }
+ if (repeatedCordField_.Count > 0) {
+ output.WriteStringArray(12, field_names[4], repeatedCordField_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasPrimitiveField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, PrimitiveField);
+ }
+ if (hasStringField) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, StringField);
+ }
+ if (hasEnumField) {
+ size += pb::CodedOutputStream.ComputeEnumSize(3, (int) EnumField);
+ }
+ if (hasMessageField) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, MessageField);
+ }
+ if (hasStringPieceField) {
+ size += pb::CodedOutputStream.ComputeStringSize(5, StringPieceField);
+ }
+ if (hasCordField) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, CordField);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedPrimitiveFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedPrimitiveField_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedStringField_.Count;
+ }
+ {
+ int dataSize = 0;
+ if (repeatedEnumField_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in repeatedEnumField_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1 * repeatedEnumField_.Count;
+ }
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in RepeatedMessageFieldList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(10, element);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedStringPieceField_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedCordField_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestCamelCaseFieldNames MakeReadOnly() {
+ repeatedPrimitiveField_.MakeReadOnly();
+ repeatedStringField_.MakeReadOnly();
+ repeatedEnumField_.MakeReadOnly();
+ repeatedMessageField_.MakeReadOnly();
+ repeatedStringPieceField_.MakeReadOnly();
+ repeatedCordField_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestCamelCaseFieldNames prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestCamelCaseFieldNames, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestCamelCaseFieldNames cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestCamelCaseFieldNames result;
+
+ private TestCamelCaseFieldNames PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestCamelCaseFieldNames original = result;
+ result = new TestCamelCaseFieldNames();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestCamelCaseFieldNames MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Descriptor; }
+ }
+
+ public override TestCamelCaseFieldNames DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.DefaultInstance; }
+ }
+
+ public override TestCamelCaseFieldNames BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestCamelCaseFieldNames) {
+ return MergeFrom((TestCamelCaseFieldNames) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestCamelCaseFieldNames other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasPrimitiveField) {
+ PrimitiveField = other.PrimitiveField;
+ }
+ if (other.HasStringField) {
+ StringField = other.StringField;
+ }
+ if (other.HasEnumField) {
+ EnumField = other.EnumField;
+ }
+ if (other.HasMessageField) {
+ MergeMessageField(other.MessageField);
+ }
+ if (other.HasStringPieceField) {
+ StringPieceField = other.StringPieceField;
+ }
+ if (other.HasCordField) {
+ CordField = other.CordField;
+ }
+ if (other.repeatedPrimitiveField_.Count != 0) {
+ result.repeatedPrimitiveField_.Add(other.repeatedPrimitiveField_);
+ }
+ if (other.repeatedStringField_.Count != 0) {
+ result.repeatedStringField_.Add(other.repeatedStringField_);
+ }
+ if (other.repeatedEnumField_.Count != 0) {
+ result.repeatedEnumField_.Add(other.repeatedEnumField_);
+ }
+ if (other.repeatedMessageField_.Count != 0) {
+ result.repeatedMessageField_.Add(other.repeatedMessageField_);
+ }
+ if (other.repeatedStringPieceField_.Count != 0) {
+ result.repeatedStringPieceField_.Add(other.repeatedStringPieceField_);
+ }
+ if (other.repeatedCordField_.Count != 0) {
+ result.repeatedCordField_.Add(other.repeatedCordField_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testCamelCaseFieldNamesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testCamelCaseFieldNamesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasPrimitiveField = input.ReadInt32(ref result.primitiveField_);
+ break;
+ }
+ case 18: {
+ result.hasStringField = input.ReadString(ref result.stringField_);
+ break;
+ }
+ case 24: {
+ object unknown;
+ if(input.ReadEnum(ref result.enumField_, out unknown)) {
+ result.hasEnumField = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(3, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 34: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (result.hasMessageField) {
+ subBuilder.MergeFrom(MessageField);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageField = subBuilder.BuildPartial();
+ break;
+ }
+ case 42: {
+ result.hasStringPieceField = input.ReadString(ref result.stringPieceField_);
+ break;
+ }
+ case 50: {
+ result.hasCordField = input.ReadString(ref result.cordField_);
+ break;
+ }
+ case 58:
+ case 56: {
+ input.ReadInt32Array(tag, field_name, result.repeatedPrimitiveField_);
+ break;
+ }
+ case 66: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringField_);
+ break;
+ }
+ case 74:
+ case 72: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.repeatedEnumField_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(9, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ case 82: {
+ input.ReadMessageArray(tag, field_name, result.repeatedMessageField_, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 90: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringPieceField_);
+ break;
+ }
+ case 98: {
+ input.ReadStringArray(tag, field_name, result.repeatedCordField_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasPrimitiveField {
+ get { return result.hasPrimitiveField; }
+ }
+ public int PrimitiveField {
+ get { return result.PrimitiveField; }
+ set { SetPrimitiveField(value); }
+ }
+ public Builder SetPrimitiveField(int value) {
+ PrepareBuilder();
+ result.hasPrimitiveField = true;
+ result.primitiveField_ = value;
+ return this;
+ }
+ public Builder ClearPrimitiveField() {
+ PrepareBuilder();
+ result.hasPrimitiveField = false;
+ result.primitiveField_ = 0;
+ return this;
+ }
+
+ public bool HasStringField {
+ get { return result.hasStringField; }
+ }
+ public string StringField {
+ get { return result.StringField; }
+ set { SetStringField(value); }
+ }
+ public Builder SetStringField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringField = true;
+ result.stringField_ = value;
+ return this;
+ }
+ public Builder ClearStringField() {
+ PrepareBuilder();
+ result.hasStringField = false;
+ result.stringField_ = "";
+ return this;
+ }
+
+ public bool HasEnumField {
+ get { return result.hasEnumField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumField {
+ get { return result.EnumField; }
+ set { SetEnumField(value); }
+ }
+ public Builder SetEnumField(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasEnumField = true;
+ result.enumField_ = value;
+ return this;
+ }
+ public Builder ClearEnumField() {
+ PrepareBuilder();
+ result.hasEnumField = false;
+ result.enumField_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasMessageField {
+ get { return result.hasMessageField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {
+ get { return result.MessageField; }
+ set { SetMessageField(value); }
+ }
+ public Builder SetMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMessageField = true;
+ result.messageField_ = value;
+ return this;
+ }
+ public Builder SetMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMessageField = true;
+ result.messageField_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMessageField &&
+ result.messageField_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageField_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageField_ = value;
+ }
+ result.hasMessageField = true;
+ return this;
+ }
+ public Builder ClearMessageField() {
+ PrepareBuilder();
+ result.hasMessageField = false;
+ result.messageField_ = null;
+ return this;
+ }
+
+ public bool HasStringPieceField {
+ get { return result.hasStringPieceField; }
+ }
+ public string StringPieceField {
+ get { return result.StringPieceField; }
+ set { SetStringPieceField(value); }
+ }
+ public Builder SetStringPieceField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringPieceField = true;
+ result.stringPieceField_ = value;
+ return this;
+ }
+ public Builder ClearStringPieceField() {
+ PrepareBuilder();
+ result.hasStringPieceField = false;
+ result.stringPieceField_ = "";
+ return this;
+ }
+
+ public bool HasCordField {
+ get { return result.hasCordField; }
+ }
+ public string CordField {
+ get { return result.CordField; }
+ set { SetCordField(value); }
+ }
+ public Builder SetCordField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCordField = true;
+ result.cordField_ = value;
+ return this;
+ }
+ public Builder ClearCordField() {
+ PrepareBuilder();
+ result.hasCordField = false;
+ result.cordField_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedPrimitiveFieldList {
+ get { return PrepareBuilder().repeatedPrimitiveField_; }
+ }
+ public int RepeatedPrimitiveFieldCount {
+ get { return result.RepeatedPrimitiveFieldCount; }
+ }
+ public int GetRepeatedPrimitiveField(int index) {
+ return result.GetRepeatedPrimitiveField(index);
+ }
+ public Builder SetRepeatedPrimitiveField(int index, int value) {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedPrimitiveField(int value) {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedPrimitiveField(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedPrimitiveField() {
+ PrepareBuilder();
+ result.repeatedPrimitiveField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringFieldList {
+ get { return PrepareBuilder().repeatedStringField_; }
+ }
+ public int RepeatedStringFieldCount {
+ get { return result.RepeatedStringFieldCount; }
+ }
+ public string GetRepeatedStringField(int index) {
+ return result.GetRepeatedStringField(index);
+ }
+ public Builder SetRepeatedStringField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringField(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringField() {
+ PrepareBuilder();
+ result.repeatedStringField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedEnumFieldList {
+ get { return PrepareBuilder().repeatedEnumField_; }
+ }
+ public int RepeatedEnumFieldCount {
+ get { return result.RepeatedEnumFieldCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedEnumField(int index) {
+ return result.GetRepeatedEnumField(index);
+ }
+ public Builder SetRepeatedEnumField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedEnumField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedEnumField(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.repeatedEnumField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedEnumField(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.repeatedEnumField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedEnumField() {
+ PrepareBuilder();
+ result.repeatedEnumField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedMessageFieldList {
+ get { return PrepareBuilder().repeatedMessageField_; }
+ }
+ public int RepeatedMessageFieldCount {
+ get { return result.RepeatedMessageFieldCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedMessageField(int index) {
+ return result.GetRepeatedMessageField(index);
+ }
+ public Builder SetRepeatedMessageField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessageField_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedMessageField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessageField_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedMessageField_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedMessageField_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedMessageField(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ PrepareBuilder();
+ result.repeatedMessageField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedMessageField() {
+ PrepareBuilder();
+ result.repeatedMessageField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceFieldList {
+ get { return PrepareBuilder().repeatedStringPieceField_; }
+ }
+ public int RepeatedStringPieceFieldCount {
+ get { return result.RepeatedStringPieceFieldCount; }
+ }
+ public string GetRepeatedStringPieceField(int index) {
+ return result.GetRepeatedStringPieceField(index);
+ }
+ public Builder SetRepeatedStringPieceField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPieceField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPieceField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPieceField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPieceField(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringPieceField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringPieceField() {
+ PrepareBuilder();
+ result.repeatedStringPieceField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordFieldList {
+ get { return PrepareBuilder().repeatedCordField_; }
+ }
+ public int RepeatedCordFieldCount {
+ get { return result.RepeatedCordFieldCount; }
+ }
+ public string GetRepeatedCordField(int index) {
+ return result.GetRepeatedCordField(index);
+ }
+ public Builder SetRepeatedCordField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCordField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCordField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCordField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCordField(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedCordField_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedCordField() {
+ PrepareBuilder();
+ result.repeatedCordField_.Clear();
+ return this;
+ }
+ }
+ static TestCamelCaseFieldNames() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestFieldOrderings : pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder> {
+ private TestFieldOrderings() { }
+ private static readonly TestFieldOrderings defaultInstance = new TestFieldOrderings().MakeReadOnly();
+ private static readonly string[] _testFieldOrderingsFieldNames = new string[] { "my_float", "my_int", "my_string", "optional_nested_message" };
+ private static readonly uint[] _testFieldOrderingsFieldTags = new uint[] { 813, 8, 90, 1602 };
+ public static TestFieldOrderings DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestFieldOrderings DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestFieldOrderings ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestFieldOrderings, TestFieldOrderings.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "bb", "oo" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8, 16 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestFieldOrderings_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int OoFieldNumber = 2;
+ private bool hasOo;
+ private long oo_;
+ public bool HasOo {
+ get { return hasOo; }
+ }
+ public long Oo {
+ get { return oo_; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private int bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasBb) {
+ output.WriteInt32(1, field_names[0], Bb);
+ }
+ if (hasOo) {
+ output.WriteInt64(2, field_names[1], Oo);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOo) {
+ size += pb::CodedOutputStream.ComputeInt64Size(2, Oo);
+ }
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOo) {
+ Oo = other.Oo;
+ }
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasBb = input.ReadInt32(ref result.bb_);
+ break;
+ }
+ case 16: {
+ result.hasOo = input.ReadInt64(ref result.oo_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOo {
+ get { return result.hasOo; }
+ }
+ public long Oo {
+ get { return result.Oo; }
+ set { SetOo(value); }
+ }
+ public Builder SetOo(long value) {
+ PrepareBuilder();
+ result.hasOo = true;
+ result.oo_ = value;
+ return this;
+ }
+ public Builder ClearOo() {
+ PrepareBuilder();
+ result.hasOo = false;
+ result.oo_ = 0L;
+ return this;
+ }
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int MyStringFieldNumber = 11;
+ private bool hasMyString;
+ private string myString_ = "";
+ public bool HasMyString {
+ get { return hasMyString; }
+ }
+ public string MyString {
+ get { return myString_; }
+ }
+
+ public const int MyIntFieldNumber = 1;
+ private bool hasMyInt;
+ private long myInt_;
+ public bool HasMyInt {
+ get { return hasMyInt; }
+ }
+ public long MyInt {
+ get { return myInt_; }
+ }
+
+ public const int MyFloatFieldNumber = 101;
+ private bool hasMyFloat;
+ private float myFloat_;
+ public bool HasMyFloat {
+ get { return hasMyFloat; }
+ }
+ public float MyFloat {
+ get { return myFloat_; }
+ }
+
+ public const int OptionalNestedMessageFieldNumber = 200;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testFieldOrderingsFieldNames;
+ pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasMyInt) {
+ output.WriteInt64(1, field_names[1], MyInt);
+ }
+ extensionWriter.WriteUntil(11, output);
+ if (hasMyString) {
+ output.WriteString(11, field_names[2], MyString);
+ }
+ extensionWriter.WriteUntil(101, output);
+ if (hasMyFloat) {
+ output.WriteFloat(101, field_names[0], MyFloat);
+ }
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(200, field_names[3], OptionalNestedMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMyString) {
+ size += pb::CodedOutputStream.ComputeStringSize(11, MyString);
+ }
+ if (hasMyInt) {
+ size += pb::CodedOutputStream.ComputeInt64Size(1, MyInt);
+ }
+ if (hasMyFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(101, MyFloat);
+ }
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(200, OptionalNestedMessage);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestFieldOrderings ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestFieldOrderings ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestFieldOrderings MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestFieldOrderings prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestFieldOrderings, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestFieldOrderings cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestFieldOrderings result;
+
+ private TestFieldOrderings PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestFieldOrderings original = result;
+ result = new TestFieldOrderings();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestFieldOrderings MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Descriptor; }
+ }
+
+ public override TestFieldOrderings DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.DefaultInstance; }
+ }
+
+ public override TestFieldOrderings BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestFieldOrderings) {
+ return MergeFrom((TestFieldOrderings) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestFieldOrderings other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasMyString) {
+ MyString = other.MyString;
+ }
+ if (other.HasMyInt) {
+ MyInt = other.MyInt;
+ }
+ if (other.HasMyFloat) {
+ MyFloat = other.MyFloat;
+ }
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testFieldOrderingsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testFieldOrderingsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasMyInt = input.ReadInt64(ref result.myInt_);
+ break;
+ }
+ case 90: {
+ result.hasMyString = input.ReadString(ref result.myString_);
+ break;
+ }
+ case 813: {
+ result.hasMyFloat = input.ReadFloat(ref result.myFloat_);
+ break;
+ }
+ case 1602: {
+ global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasMyString {
+ get { return result.hasMyString; }
+ }
+ public string MyString {
+ get { return result.MyString; }
+ set { SetMyString(value); }
+ }
+ public Builder SetMyString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMyString = true;
+ result.myString_ = value;
+ return this;
+ }
+ public Builder ClearMyString() {
+ PrepareBuilder();
+ result.hasMyString = false;
+ result.myString_ = "";
+ return this;
+ }
+
+ public bool HasMyInt {
+ get { return result.hasMyInt; }
+ }
+ public long MyInt {
+ get { return result.MyInt; }
+ set { SetMyInt(value); }
+ }
+ public Builder SetMyInt(long value) {
+ PrepareBuilder();
+ result.hasMyInt = true;
+ result.myInt_ = value;
+ return this;
+ }
+ public Builder ClearMyInt() {
+ PrepareBuilder();
+ result.hasMyInt = false;
+ result.myInt_ = 0L;
+ return this;
+ }
+
+ public bool HasMyFloat {
+ get { return result.hasMyFloat; }
+ }
+ public float MyFloat {
+ get { return result.MyFloat; }
+ set { SetMyFloat(value); }
+ }
+ public Builder SetMyFloat(float value) {
+ PrepareBuilder();
+ result.hasMyFloat = true;
+ result.myFloat_ = value;
+ return this;
+ }
+ public Builder ClearMyFloat() {
+ PrepareBuilder();
+ result.hasMyFloat = false;
+ result.myFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+ }
+ static TestFieldOrderings() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestExtremeDefaultValues : pb::GeneratedMessage<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> {
+ private TestExtremeDefaultValues() { }
+ private static readonly TestExtremeDefaultValues defaultInstance = new TestExtremeDefaultValues().MakeReadOnly();
+ private static readonly string[] _testExtremeDefaultValuesFieldNames = new string[] { "bytes_with_zero", "cord_with_zero", "cpp_trigraph", "escaped_bytes", "inf_double", "inf_float", "large_float", "large_uint32", "large_uint64", "nan_double", "nan_float", "neg_inf_double", "neg_inf_float", "negative_float", "negative_one_float", "one_float", "really_small_int32", "really_small_int64", "replacement_string", "small_float", "small_int32", "small_int64", "small_negative_float", "string_piece_with_zero", "string_with_zero", "utf8_string", "zero_float" };
+ private static readonly uint[] _testExtremeDefaultValuesFieldTags = new uint[] { 194, 210, 162, 10, 113, 141, 101, 16, 24, 129, 157, 121, 149, 93, 85, 69, 168, 176, 218, 77, 32, 40, 109, 202, 186, 50, 61 };
+ public static TestExtremeDefaultValues DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestExtremeDefaultValues DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestExtremeDefaultValues ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable; }
+ }
+
+ public const int EscapedBytesFieldNumber = 1;
+ private bool hasEscapedBytes;
+ private pb::ByteString escapedBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[0].DefaultValue;
+ public bool HasEscapedBytes {
+ get { return hasEscapedBytes; }
+ }
+ public pb::ByteString EscapedBytes {
+ get { return escapedBytes_; }
+ }
+
+ public const int LargeUint32FieldNumber = 2;
+ private bool hasLargeUint32;
+ private uint largeUint32_ = 4294967295;
+ public bool HasLargeUint32 {
+ get { return hasLargeUint32; }
+ }
+ public uint LargeUint32 {
+ get { return largeUint32_; }
+ }
+
+ public const int LargeUint64FieldNumber = 3;
+ private bool hasLargeUint64;
+ private ulong largeUint64_ = 18446744073709551615UL;
+ public bool HasLargeUint64 {
+ get { return hasLargeUint64; }
+ }
+ public ulong LargeUint64 {
+ get { return largeUint64_; }
+ }
+
+ public const int SmallInt32FieldNumber = 4;
+ private bool hasSmallInt32;
+ private int smallInt32_ = -2147483647;
+ public bool HasSmallInt32 {
+ get { return hasSmallInt32; }
+ }
+ public int SmallInt32 {
+ get { return smallInt32_; }
+ }
+
+ public const int SmallInt64FieldNumber = 5;
+ private bool hasSmallInt64;
+ private long smallInt64_ = -9223372036854775807L;
+ public bool HasSmallInt64 {
+ get { return hasSmallInt64; }
+ }
+ public long SmallInt64 {
+ get { return smallInt64_; }
+ }
+
+ public const int ReallySmallInt32FieldNumber = 21;
+ private bool hasReallySmallInt32;
+ private int reallySmallInt32_ = -2147483648;
+ public bool HasReallySmallInt32 {
+ get { return hasReallySmallInt32; }
+ }
+ public int ReallySmallInt32 {
+ get { return reallySmallInt32_; }
+ }
+
+ public const int ReallySmallInt64FieldNumber = 22;
+ private bool hasReallySmallInt64;
+ private long reallySmallInt64_ = -9223372036854775808L;
+ public bool HasReallySmallInt64 {
+ get { return hasReallySmallInt64; }
+ }
+ public long ReallySmallInt64 {
+ get { return reallySmallInt64_; }
+ }
+
+ public const int Utf8StringFieldNumber = 6;
+ private bool hasUtf8String;
+ private string utf8String_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[7].DefaultValue;
+ public bool HasUtf8String {
+ get { return hasUtf8String; }
+ }
+ public string Utf8String {
+ get { return utf8String_; }
+ }
+
+ public const int ZeroFloatFieldNumber = 7;
+ private bool hasZeroFloat;
+ private float zeroFloat_;
+ public bool HasZeroFloat {
+ get { return hasZeroFloat; }
+ }
+ public float ZeroFloat {
+ get { return zeroFloat_; }
+ }
+
+ public const int OneFloatFieldNumber = 8;
+ private bool hasOneFloat;
+ private float oneFloat_ = 1F;
+ public bool HasOneFloat {
+ get { return hasOneFloat; }
+ }
+ public float OneFloat {
+ get { return oneFloat_; }
+ }
+
+ public const int SmallFloatFieldNumber = 9;
+ private bool hasSmallFloat;
+ private float smallFloat_ = 1.5F;
+ public bool HasSmallFloat {
+ get { return hasSmallFloat; }
+ }
+ public float SmallFloat {
+ get { return smallFloat_; }
+ }
+
+ public const int NegativeOneFloatFieldNumber = 10;
+ private bool hasNegativeOneFloat;
+ private float negativeOneFloat_ = -1F;
+ public bool HasNegativeOneFloat {
+ get { return hasNegativeOneFloat; }
+ }
+ public float NegativeOneFloat {
+ get { return negativeOneFloat_; }
+ }
+
+ public const int NegativeFloatFieldNumber = 11;
+ private bool hasNegativeFloat;
+ private float negativeFloat_ = -1.5F;
+ public bool HasNegativeFloat {
+ get { return hasNegativeFloat; }
+ }
+ public float NegativeFloat {
+ get { return negativeFloat_; }
+ }
+
+ public const int LargeFloatFieldNumber = 12;
+ private bool hasLargeFloat;
+ private float largeFloat_ = 2e+08F;
+ public bool HasLargeFloat {
+ get { return hasLargeFloat; }
+ }
+ public float LargeFloat {
+ get { return largeFloat_; }
+ }
+
+ public const int SmallNegativeFloatFieldNumber = 13;
+ private bool hasSmallNegativeFloat;
+ private float smallNegativeFloat_ = -8e-28F;
+ public bool HasSmallNegativeFloat {
+ get { return hasSmallNegativeFloat; }
+ }
+ public float SmallNegativeFloat {
+ get { return smallNegativeFloat_; }
+ }
+
+ public const int InfDoubleFieldNumber = 14;
+ private bool hasInfDouble;
+ private double infDouble_ = double.PositiveInfinity;
+ public bool HasInfDouble {
+ get { return hasInfDouble; }
+ }
+ public double InfDouble {
+ get { return infDouble_; }
+ }
+
+ public const int NegInfDoubleFieldNumber = 15;
+ private bool hasNegInfDouble;
+ private double negInfDouble_ = double.NegativeInfinity;
+ public bool HasNegInfDouble {
+ get { return hasNegInfDouble; }
+ }
+ public double NegInfDouble {
+ get { return negInfDouble_; }
+ }
+
+ public const int NanDoubleFieldNumber = 16;
+ private bool hasNanDouble;
+ private double nanDouble_ = double.NaN;
+ public bool HasNanDouble {
+ get { return hasNanDouble; }
+ }
+ public double NanDouble {
+ get { return nanDouble_; }
+ }
+
+ public const int InfFloatFieldNumber = 17;
+ private bool hasInfFloat;
+ private float infFloat_ = float.PositiveInfinity;
+ public bool HasInfFloat {
+ get { return hasInfFloat; }
+ }
+ public float InfFloat {
+ get { return infFloat_; }
+ }
+
+ public const int NegInfFloatFieldNumber = 18;
+ private bool hasNegInfFloat;
+ private float negInfFloat_ = float.NegativeInfinity;
+ public bool HasNegInfFloat {
+ get { return hasNegInfFloat; }
+ }
+ public float NegInfFloat {
+ get { return negInfFloat_; }
+ }
+
+ public const int NanFloatFieldNumber = 19;
+ private bool hasNanFloat;
+ private float nanFloat_ = float.NaN;
+ public bool HasNanFloat {
+ get { return hasNanFloat; }
+ }
+ public float NanFloat {
+ get { return nanFloat_; }
+ }
+
+ public const int CppTrigraphFieldNumber = 20;
+ private bool hasCppTrigraph;
+ private string cppTrigraph_ = "? ? ?? ?? ??? ??/ ??-";
+ public bool HasCppTrigraph {
+ get { return hasCppTrigraph; }
+ }
+ public string CppTrigraph {
+ get { return cppTrigraph_; }
+ }
+
+ public const int StringWithZeroFieldNumber = 23;
+ private bool hasStringWithZero;
+ private string stringWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[22].DefaultValue;
+ public bool HasStringWithZero {
+ get { return hasStringWithZero; }
+ }
+ public string StringWithZero {
+ get { return stringWithZero_; }
+ }
+
+ public const int BytesWithZeroFieldNumber = 24;
+ private bool hasBytesWithZero;
+ private pb::ByteString bytesWithZero_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[23].DefaultValue;
+ public bool HasBytesWithZero {
+ get { return hasBytesWithZero; }
+ }
+ public pb::ByteString BytesWithZero {
+ get { return bytesWithZero_; }
+ }
+
+ public const int StringPieceWithZeroFieldNumber = 25;
+ private bool hasStringPieceWithZero;
+ private string stringPieceWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[24].DefaultValue;
+ public bool HasStringPieceWithZero {
+ get { return hasStringPieceWithZero; }
+ }
+ public string StringPieceWithZero {
+ get { return stringPieceWithZero_; }
+ }
+
+ public const int CordWithZeroFieldNumber = 26;
+ private bool hasCordWithZero;
+ private string cordWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[25].DefaultValue;
+ public bool HasCordWithZero {
+ get { return hasCordWithZero; }
+ }
+ public string CordWithZero {
+ get { return cordWithZero_; }
+ }
+
+ public const int ReplacementStringFieldNumber = 27;
+ private bool hasReplacementString;
+ private string replacementString_ = "${unknown}";
+ public bool HasReplacementString {
+ get { return hasReplacementString; }
+ }
+ public string ReplacementString {
+ get { return replacementString_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testExtremeDefaultValuesFieldNames;
+ if (hasEscapedBytes) {
+ output.WriteBytes(1, field_names[3], EscapedBytes);
+ }
+ if (hasLargeUint32) {
+ output.WriteUInt32(2, field_names[7], LargeUint32);
+ }
+ if (hasLargeUint64) {
+ output.WriteUInt64(3, field_names[8], LargeUint64);
+ }
+ if (hasSmallInt32) {
+ output.WriteInt32(4, field_names[20], SmallInt32);
+ }
+ if (hasSmallInt64) {
+ output.WriteInt64(5, field_names[21], SmallInt64);
+ }
+ if (hasUtf8String) {
+ output.WriteString(6, field_names[25], Utf8String);
+ }
+ if (hasZeroFloat) {
+ output.WriteFloat(7, field_names[26], ZeroFloat);
+ }
+ if (hasOneFloat) {
+ output.WriteFloat(8, field_names[15], OneFloat);
+ }
+ if (hasSmallFloat) {
+ output.WriteFloat(9, field_names[19], SmallFloat);
+ }
+ if (hasNegativeOneFloat) {
+ output.WriteFloat(10, field_names[14], NegativeOneFloat);
+ }
+ if (hasNegativeFloat) {
+ output.WriteFloat(11, field_names[13], NegativeFloat);
+ }
+ if (hasLargeFloat) {
+ output.WriteFloat(12, field_names[6], LargeFloat);
+ }
+ if (hasSmallNegativeFloat) {
+ output.WriteFloat(13, field_names[22], SmallNegativeFloat);
+ }
+ if (hasInfDouble) {
+ output.WriteDouble(14, field_names[4], InfDouble);
+ }
+ if (hasNegInfDouble) {
+ output.WriteDouble(15, field_names[11], NegInfDouble);
+ }
+ if (hasNanDouble) {
+ output.WriteDouble(16, field_names[9], NanDouble);
+ }
+ if (hasInfFloat) {
+ output.WriteFloat(17, field_names[5], InfFloat);
+ }
+ if (hasNegInfFloat) {
+ output.WriteFloat(18, field_names[12], NegInfFloat);
+ }
+ if (hasNanFloat) {
+ output.WriteFloat(19, field_names[10], NanFloat);
+ }
+ if (hasCppTrigraph) {
+ output.WriteString(20, field_names[2], CppTrigraph);
+ }
+ if (hasReallySmallInt32) {
+ output.WriteInt32(21, field_names[16], ReallySmallInt32);
+ }
+ if (hasReallySmallInt64) {
+ output.WriteInt64(22, field_names[17], ReallySmallInt64);
+ }
+ if (hasStringWithZero) {
+ output.WriteString(23, field_names[24], StringWithZero);
+ }
+ if (hasBytesWithZero) {
+ output.WriteBytes(24, field_names[0], BytesWithZero);
+ }
+ if (hasStringPieceWithZero) {
+ output.WriteString(25, field_names[23], StringPieceWithZero);
+ }
+ if (hasCordWithZero) {
+ output.WriteString(26, field_names[1], CordWithZero);
+ }
+ if (hasReplacementString) {
+ output.WriteString(27, field_names[18], ReplacementString);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasEscapedBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, EscapedBytes);
+ }
+ if (hasLargeUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(2, LargeUint32);
+ }
+ if (hasLargeUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(3, LargeUint64);
+ }
+ if (hasSmallInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(4, SmallInt32);
+ }
+ if (hasSmallInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(5, SmallInt64);
+ }
+ if (hasReallySmallInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(21, ReallySmallInt32);
+ }
+ if (hasReallySmallInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(22, ReallySmallInt64);
+ }
+ if (hasUtf8String) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, Utf8String);
+ }
+ if (hasZeroFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(7, ZeroFloat);
+ }
+ if (hasOneFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(8, OneFloat);
+ }
+ if (hasSmallFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(9, SmallFloat);
+ }
+ if (hasNegativeOneFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(10, NegativeOneFloat);
+ }
+ if (hasNegativeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, NegativeFloat);
+ }
+ if (hasLargeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(12, LargeFloat);
+ }
+ if (hasSmallNegativeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(13, SmallNegativeFloat);
+ }
+ if (hasInfDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(14, InfDouble);
+ }
+ if (hasNegInfDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(15, NegInfDouble);
+ }
+ if (hasNanDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(16, NanDouble);
+ }
+ if (hasInfFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(17, InfFloat);
+ }
+ if (hasNegInfFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(18, NegInfFloat);
+ }
+ if (hasNanFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(19, NanFloat);
+ }
+ if (hasCppTrigraph) {
+ size += pb::CodedOutputStream.ComputeStringSize(20, CppTrigraph);
+ }
+ if (hasStringWithZero) {
+ size += pb::CodedOutputStream.ComputeStringSize(23, StringWithZero);
+ }
+ if (hasBytesWithZero) {
+ size += pb::CodedOutputStream.ComputeBytesSize(24, BytesWithZero);
+ }
+ if (hasStringPieceWithZero) {
+ size += pb::CodedOutputStream.ComputeStringSize(25, StringPieceWithZero);
+ }
+ if (hasCordWithZero) {
+ size += pb::CodedOutputStream.ComputeStringSize(26, CordWithZero);
+ }
+ if (hasReplacementString) {
+ size += pb::CodedOutputStream.ComputeStringSize(27, ReplacementString);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestExtremeDefaultValues MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestExtremeDefaultValues prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestExtremeDefaultValues, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestExtremeDefaultValues cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestExtremeDefaultValues result;
+
+ private TestExtremeDefaultValues PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestExtremeDefaultValues original = result;
+ result = new TestExtremeDefaultValues();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestExtremeDefaultValues MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor; }
+ }
+
+ public override TestExtremeDefaultValues DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.DefaultInstance; }
+ }
+
+ public override TestExtremeDefaultValues BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestExtremeDefaultValues) {
+ return MergeFrom((TestExtremeDefaultValues) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestExtremeDefaultValues other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasEscapedBytes) {
+ EscapedBytes = other.EscapedBytes;
+ }
+ if (other.HasLargeUint32) {
+ LargeUint32 = other.LargeUint32;
+ }
+ if (other.HasLargeUint64) {
+ LargeUint64 = other.LargeUint64;
+ }
+ if (other.HasSmallInt32) {
+ SmallInt32 = other.SmallInt32;
+ }
+ if (other.HasSmallInt64) {
+ SmallInt64 = other.SmallInt64;
+ }
+ if (other.HasReallySmallInt32) {
+ ReallySmallInt32 = other.ReallySmallInt32;
+ }
+ if (other.HasReallySmallInt64) {
+ ReallySmallInt64 = other.ReallySmallInt64;
+ }
+ if (other.HasUtf8String) {
+ Utf8String = other.Utf8String;
+ }
+ if (other.HasZeroFloat) {
+ ZeroFloat = other.ZeroFloat;
+ }
+ if (other.HasOneFloat) {
+ OneFloat = other.OneFloat;
+ }
+ if (other.HasSmallFloat) {
+ SmallFloat = other.SmallFloat;
+ }
+ if (other.HasNegativeOneFloat) {
+ NegativeOneFloat = other.NegativeOneFloat;
+ }
+ if (other.HasNegativeFloat) {
+ NegativeFloat = other.NegativeFloat;
+ }
+ if (other.HasLargeFloat) {
+ LargeFloat = other.LargeFloat;
+ }
+ if (other.HasSmallNegativeFloat) {
+ SmallNegativeFloat = other.SmallNegativeFloat;
+ }
+ if (other.HasInfDouble) {
+ InfDouble = other.InfDouble;
+ }
+ if (other.HasNegInfDouble) {
+ NegInfDouble = other.NegInfDouble;
+ }
+ if (other.HasNanDouble) {
+ NanDouble = other.NanDouble;
+ }
+ if (other.HasInfFloat) {
+ InfFloat = other.InfFloat;
+ }
+ if (other.HasNegInfFloat) {
+ NegInfFloat = other.NegInfFloat;
+ }
+ if (other.HasNanFloat) {
+ NanFloat = other.NanFloat;
+ }
+ if (other.HasCppTrigraph) {
+ CppTrigraph = other.CppTrigraph;
+ }
+ if (other.HasStringWithZero) {
+ StringWithZero = other.StringWithZero;
+ }
+ if (other.HasBytesWithZero) {
+ BytesWithZero = other.BytesWithZero;
+ }
+ if (other.HasStringPieceWithZero) {
+ StringPieceWithZero = other.StringPieceWithZero;
+ }
+ if (other.HasCordWithZero) {
+ CordWithZero = other.CordWithZero;
+ }
+ if (other.HasReplacementString) {
+ ReplacementString = other.ReplacementString;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testExtremeDefaultValuesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testExtremeDefaultValuesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasEscapedBytes = input.ReadBytes(ref result.escapedBytes_);
+ break;
+ }
+ case 16: {
+ result.hasLargeUint32 = input.ReadUInt32(ref result.largeUint32_);
+ break;
+ }
+ case 24: {
+ result.hasLargeUint64 = input.ReadUInt64(ref result.largeUint64_);
+ break;
+ }
+ case 32: {
+ result.hasSmallInt32 = input.ReadInt32(ref result.smallInt32_);
+ break;
+ }
+ case 40: {
+ result.hasSmallInt64 = input.ReadInt64(ref result.smallInt64_);
+ break;
+ }
+ case 50: {
+ result.hasUtf8String = input.ReadString(ref result.utf8String_);
+ break;
+ }
+ case 61: {
+ result.hasZeroFloat = input.ReadFloat(ref result.zeroFloat_);
+ break;
+ }
+ case 69: {
+ result.hasOneFloat = input.ReadFloat(ref result.oneFloat_);
+ break;
+ }
+ case 77: {
+ result.hasSmallFloat = input.ReadFloat(ref result.smallFloat_);
+ break;
+ }
+ case 85: {
+ result.hasNegativeOneFloat = input.ReadFloat(ref result.negativeOneFloat_);
+ break;
+ }
+ case 93: {
+ result.hasNegativeFloat = input.ReadFloat(ref result.negativeFloat_);
+ break;
+ }
+ case 101: {
+ result.hasLargeFloat = input.ReadFloat(ref result.largeFloat_);
+ break;
+ }
+ case 109: {
+ result.hasSmallNegativeFloat = input.ReadFloat(ref result.smallNegativeFloat_);
+ break;
+ }
+ case 113: {
+ result.hasInfDouble = input.ReadDouble(ref result.infDouble_);
+ break;
+ }
+ case 121: {
+ result.hasNegInfDouble = input.ReadDouble(ref result.negInfDouble_);
+ break;
+ }
+ case 129: {
+ result.hasNanDouble = input.ReadDouble(ref result.nanDouble_);
+ break;
+ }
+ case 141: {
+ result.hasInfFloat = input.ReadFloat(ref result.infFloat_);
+ break;
+ }
+ case 149: {
+ result.hasNegInfFloat = input.ReadFloat(ref result.negInfFloat_);
+ break;
+ }
+ case 157: {
+ result.hasNanFloat = input.ReadFloat(ref result.nanFloat_);
+ break;
+ }
+ case 162: {
+ result.hasCppTrigraph = input.ReadString(ref result.cppTrigraph_);
+ break;
+ }
+ case 168: {
+ result.hasReallySmallInt32 = input.ReadInt32(ref result.reallySmallInt32_);
+ break;
+ }
+ case 176: {
+ result.hasReallySmallInt64 = input.ReadInt64(ref result.reallySmallInt64_);
+ break;
+ }
+ case 186: {
+ result.hasStringWithZero = input.ReadString(ref result.stringWithZero_);
+ break;
+ }
+ case 194: {
+ result.hasBytesWithZero = input.ReadBytes(ref result.bytesWithZero_);
+ break;
+ }
+ case 202: {
+ result.hasStringPieceWithZero = input.ReadString(ref result.stringPieceWithZero_);
+ break;
+ }
+ case 210: {
+ result.hasCordWithZero = input.ReadString(ref result.cordWithZero_);
+ break;
+ }
+ case 218: {
+ result.hasReplacementString = input.ReadString(ref result.replacementString_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasEscapedBytes {
+ get { return result.hasEscapedBytes; }
+ }
+ public pb::ByteString EscapedBytes {
+ get { return result.EscapedBytes; }
+ set { SetEscapedBytes(value); }
+ }
+ public Builder SetEscapedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasEscapedBytes = true;
+ result.escapedBytes_ = value;
+ return this;
+ }
+ public Builder ClearEscapedBytes() {
+ PrepareBuilder();
+ result.hasEscapedBytes = false;
+ result.escapedBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[0].DefaultValue;
+ return this;
+ }
+
+ public bool HasLargeUint32 {
+ get { return result.hasLargeUint32; }
+ }
+ public uint LargeUint32 {
+ get { return result.LargeUint32; }
+ set { SetLargeUint32(value); }
+ }
+ public Builder SetLargeUint32(uint value) {
+ PrepareBuilder();
+ result.hasLargeUint32 = true;
+ result.largeUint32_ = value;
+ return this;
+ }
+ public Builder ClearLargeUint32() {
+ PrepareBuilder();
+ result.hasLargeUint32 = false;
+ result.largeUint32_ = 4294967295;
+ return this;
+ }
+
+ public bool HasLargeUint64 {
+ get { return result.hasLargeUint64; }
+ }
+ public ulong LargeUint64 {
+ get { return result.LargeUint64; }
+ set { SetLargeUint64(value); }
+ }
+ public Builder SetLargeUint64(ulong value) {
+ PrepareBuilder();
+ result.hasLargeUint64 = true;
+ result.largeUint64_ = value;
+ return this;
+ }
+ public Builder ClearLargeUint64() {
+ PrepareBuilder();
+ result.hasLargeUint64 = false;
+ result.largeUint64_ = 18446744073709551615UL;
+ return this;
+ }
+
+ public bool HasSmallInt32 {
+ get { return result.hasSmallInt32; }
+ }
+ public int SmallInt32 {
+ get { return result.SmallInt32; }
+ set { SetSmallInt32(value); }
+ }
+ public Builder SetSmallInt32(int value) {
+ PrepareBuilder();
+ result.hasSmallInt32 = true;
+ result.smallInt32_ = value;
+ return this;
+ }
+ public Builder ClearSmallInt32() {
+ PrepareBuilder();
+ result.hasSmallInt32 = false;
+ result.smallInt32_ = -2147483647;
+ return this;
+ }
+
+ public bool HasSmallInt64 {
+ get { return result.hasSmallInt64; }
+ }
+ public long SmallInt64 {
+ get { return result.SmallInt64; }
+ set { SetSmallInt64(value); }
+ }
+ public Builder SetSmallInt64(long value) {
+ PrepareBuilder();
+ result.hasSmallInt64 = true;
+ result.smallInt64_ = value;
+ return this;
+ }
+ public Builder ClearSmallInt64() {
+ PrepareBuilder();
+ result.hasSmallInt64 = false;
+ result.smallInt64_ = -9223372036854775807L;
+ return this;
+ }
+
+ public bool HasReallySmallInt32 {
+ get { return result.hasReallySmallInt32; }
+ }
+ public int ReallySmallInt32 {
+ get { return result.ReallySmallInt32; }
+ set { SetReallySmallInt32(value); }
+ }
+ public Builder SetReallySmallInt32(int value) {
+ PrepareBuilder();
+ result.hasReallySmallInt32 = true;
+ result.reallySmallInt32_ = value;
+ return this;
+ }
+ public Builder ClearReallySmallInt32() {
+ PrepareBuilder();
+ result.hasReallySmallInt32 = false;
+ result.reallySmallInt32_ = -2147483648;
+ return this;
+ }
+
+ public bool HasReallySmallInt64 {
+ get { return result.hasReallySmallInt64; }
+ }
+ public long ReallySmallInt64 {
+ get { return result.ReallySmallInt64; }
+ set { SetReallySmallInt64(value); }
+ }
+ public Builder SetReallySmallInt64(long value) {
+ PrepareBuilder();
+ result.hasReallySmallInt64 = true;
+ result.reallySmallInt64_ = value;
+ return this;
+ }
+ public Builder ClearReallySmallInt64() {
+ PrepareBuilder();
+ result.hasReallySmallInt64 = false;
+ result.reallySmallInt64_ = -9223372036854775808L;
+ return this;
+ }
+
+ public bool HasUtf8String {
+ get { return result.hasUtf8String; }
+ }
+ public string Utf8String {
+ get { return result.Utf8String; }
+ set { SetUtf8String(value); }
+ }
+ public Builder SetUtf8String(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasUtf8String = true;
+ result.utf8String_ = value;
+ return this;
+ }
+ public Builder ClearUtf8String() {
+ PrepareBuilder();
+ result.hasUtf8String = false;
+ result.utf8String_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[7].DefaultValue;
+ return this;
+ }
+
+ public bool HasZeroFloat {
+ get { return result.hasZeroFloat; }
+ }
+ public float ZeroFloat {
+ get { return result.ZeroFloat; }
+ set { SetZeroFloat(value); }
+ }
+ public Builder SetZeroFloat(float value) {
+ PrepareBuilder();
+ result.hasZeroFloat = true;
+ result.zeroFloat_ = value;
+ return this;
+ }
+ public Builder ClearZeroFloat() {
+ PrepareBuilder();
+ result.hasZeroFloat = false;
+ result.zeroFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOneFloat {
+ get { return result.hasOneFloat; }
+ }
+ public float OneFloat {
+ get { return result.OneFloat; }
+ set { SetOneFloat(value); }
+ }
+ public Builder SetOneFloat(float value) {
+ PrepareBuilder();
+ result.hasOneFloat = true;
+ result.oneFloat_ = value;
+ return this;
+ }
+ public Builder ClearOneFloat() {
+ PrepareBuilder();
+ result.hasOneFloat = false;
+ result.oneFloat_ = 1F;
+ return this;
+ }
+
+ public bool HasSmallFloat {
+ get { return result.hasSmallFloat; }
+ }
+ public float SmallFloat {
+ get { return result.SmallFloat; }
+ set { SetSmallFloat(value); }
+ }
+ public Builder SetSmallFloat(float value) {
+ PrepareBuilder();
+ result.hasSmallFloat = true;
+ result.smallFloat_ = value;
+ return this;
+ }
+ public Builder ClearSmallFloat() {
+ PrepareBuilder();
+ result.hasSmallFloat = false;
+ result.smallFloat_ = 1.5F;
+ return this;
+ }
+
+ public bool HasNegativeOneFloat {
+ get { return result.hasNegativeOneFloat; }
+ }
+ public float NegativeOneFloat {
+ get { return result.NegativeOneFloat; }
+ set { SetNegativeOneFloat(value); }
+ }
+ public Builder SetNegativeOneFloat(float value) {
+ PrepareBuilder();
+ result.hasNegativeOneFloat = true;
+ result.negativeOneFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegativeOneFloat() {
+ PrepareBuilder();
+ result.hasNegativeOneFloat = false;
+ result.negativeOneFloat_ = -1F;
+ return this;
+ }
+
+ public bool HasNegativeFloat {
+ get { return result.hasNegativeFloat; }
+ }
+ public float NegativeFloat {
+ get { return result.NegativeFloat; }
+ set { SetNegativeFloat(value); }
+ }
+ public Builder SetNegativeFloat(float value) {
+ PrepareBuilder();
+ result.hasNegativeFloat = true;
+ result.negativeFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegativeFloat() {
+ PrepareBuilder();
+ result.hasNegativeFloat = false;
+ result.negativeFloat_ = -1.5F;
+ return this;
+ }
+
+ public bool HasLargeFloat {
+ get { return result.hasLargeFloat; }
+ }
+ public float LargeFloat {
+ get { return result.LargeFloat; }
+ set { SetLargeFloat(value); }
+ }
+ public Builder SetLargeFloat(float value) {
+ PrepareBuilder();
+ result.hasLargeFloat = true;
+ result.largeFloat_ = value;
+ return this;
+ }
+ public Builder ClearLargeFloat() {
+ PrepareBuilder();
+ result.hasLargeFloat = false;
+ result.largeFloat_ = 2e+08F;
+ return this;
+ }
+
+ public bool HasSmallNegativeFloat {
+ get { return result.hasSmallNegativeFloat; }
+ }
+ public float SmallNegativeFloat {
+ get { return result.SmallNegativeFloat; }
+ set { SetSmallNegativeFloat(value); }
+ }
+ public Builder SetSmallNegativeFloat(float value) {
+ PrepareBuilder();
+ result.hasSmallNegativeFloat = true;
+ result.smallNegativeFloat_ = value;
+ return this;
+ }
+ public Builder ClearSmallNegativeFloat() {
+ PrepareBuilder();
+ result.hasSmallNegativeFloat = false;
+ result.smallNegativeFloat_ = -8e-28F;
+ return this;
+ }
+
+ public bool HasInfDouble {
+ get { return result.hasInfDouble; }
+ }
+ public double InfDouble {
+ get { return result.InfDouble; }
+ set { SetInfDouble(value); }
+ }
+ public Builder SetInfDouble(double value) {
+ PrepareBuilder();
+ result.hasInfDouble = true;
+ result.infDouble_ = value;
+ return this;
+ }
+ public Builder ClearInfDouble() {
+ PrepareBuilder();
+ result.hasInfDouble = false;
+ result.infDouble_ = double.PositiveInfinity;
+ return this;
+ }
+
+ public bool HasNegInfDouble {
+ get { return result.hasNegInfDouble; }
+ }
+ public double NegInfDouble {
+ get { return result.NegInfDouble; }
+ set { SetNegInfDouble(value); }
+ }
+ public Builder SetNegInfDouble(double value) {
+ PrepareBuilder();
+ result.hasNegInfDouble = true;
+ result.negInfDouble_ = value;
+ return this;
+ }
+ public Builder ClearNegInfDouble() {
+ PrepareBuilder();
+ result.hasNegInfDouble = false;
+ result.negInfDouble_ = double.NegativeInfinity;
+ return this;
+ }
+
+ public bool HasNanDouble {
+ get { return result.hasNanDouble; }
+ }
+ public double NanDouble {
+ get { return result.NanDouble; }
+ set { SetNanDouble(value); }
+ }
+ public Builder SetNanDouble(double value) {
+ PrepareBuilder();
+ result.hasNanDouble = true;
+ result.nanDouble_ = value;
+ return this;
+ }
+ public Builder ClearNanDouble() {
+ PrepareBuilder();
+ result.hasNanDouble = false;
+ result.nanDouble_ = double.NaN;
+ return this;
+ }
+
+ public bool HasInfFloat {
+ get { return result.hasInfFloat; }
+ }
+ public float InfFloat {
+ get { return result.InfFloat; }
+ set { SetInfFloat(value); }
+ }
+ public Builder SetInfFloat(float value) {
+ PrepareBuilder();
+ result.hasInfFloat = true;
+ result.infFloat_ = value;
+ return this;
+ }
+ public Builder ClearInfFloat() {
+ PrepareBuilder();
+ result.hasInfFloat = false;
+ result.infFloat_ = float.PositiveInfinity;
+ return this;
+ }
+
+ public bool HasNegInfFloat {
+ get { return result.hasNegInfFloat; }
+ }
+ public float NegInfFloat {
+ get { return result.NegInfFloat; }
+ set { SetNegInfFloat(value); }
+ }
+ public Builder SetNegInfFloat(float value) {
+ PrepareBuilder();
+ result.hasNegInfFloat = true;
+ result.negInfFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegInfFloat() {
+ PrepareBuilder();
+ result.hasNegInfFloat = false;
+ result.negInfFloat_ = float.NegativeInfinity;
+ return this;
+ }
+
+ public bool HasNanFloat {
+ get { return result.hasNanFloat; }
+ }
+ public float NanFloat {
+ get { return result.NanFloat; }
+ set { SetNanFloat(value); }
+ }
+ public Builder SetNanFloat(float value) {
+ PrepareBuilder();
+ result.hasNanFloat = true;
+ result.nanFloat_ = value;
+ return this;
+ }
+ public Builder ClearNanFloat() {
+ PrepareBuilder();
+ result.hasNanFloat = false;
+ result.nanFloat_ = float.NaN;
+ return this;
+ }
+
+ public bool HasCppTrigraph {
+ get { return result.hasCppTrigraph; }
+ }
+ public string CppTrigraph {
+ get { return result.CppTrigraph; }
+ set { SetCppTrigraph(value); }
+ }
+ public Builder SetCppTrigraph(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCppTrigraph = true;
+ result.cppTrigraph_ = value;
+ return this;
+ }
+ public Builder ClearCppTrigraph() {
+ PrepareBuilder();
+ result.hasCppTrigraph = false;
+ result.cppTrigraph_ = "? ? ?? ?? ??? ??/ ??-";
+ return this;
+ }
+
+ public bool HasStringWithZero {
+ get { return result.hasStringWithZero; }
+ }
+ public string StringWithZero {
+ get { return result.StringWithZero; }
+ set { SetStringWithZero(value); }
+ }
+ public Builder SetStringWithZero(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringWithZero = true;
+ result.stringWithZero_ = value;
+ return this;
+ }
+ public Builder ClearStringWithZero() {
+ PrepareBuilder();
+ result.hasStringWithZero = false;
+ result.stringWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[22].DefaultValue;
+ return this;
+ }
+
+ public bool HasBytesWithZero {
+ get { return result.hasBytesWithZero; }
+ }
+ public pb::ByteString BytesWithZero {
+ get { return result.BytesWithZero; }
+ set { SetBytesWithZero(value); }
+ }
+ public Builder SetBytesWithZero(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBytesWithZero = true;
+ result.bytesWithZero_ = value;
+ return this;
+ }
+ public Builder ClearBytesWithZero() {
+ PrepareBuilder();
+ result.hasBytesWithZero = false;
+ result.bytesWithZero_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[23].DefaultValue;
+ return this;
+ }
+
+ public bool HasStringPieceWithZero {
+ get { return result.hasStringPieceWithZero; }
+ }
+ public string StringPieceWithZero {
+ get { return result.StringPieceWithZero; }
+ set { SetStringPieceWithZero(value); }
+ }
+ public Builder SetStringPieceWithZero(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasStringPieceWithZero = true;
+ result.stringPieceWithZero_ = value;
+ return this;
+ }
+ public Builder ClearStringPieceWithZero() {
+ PrepareBuilder();
+ result.hasStringPieceWithZero = false;
+ result.stringPieceWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[24].DefaultValue;
+ return this;
+ }
+
+ public bool HasCordWithZero {
+ get { return result.hasCordWithZero; }
+ }
+ public string CordWithZero {
+ get { return result.CordWithZero; }
+ set { SetCordWithZero(value); }
+ }
+ public Builder SetCordWithZero(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCordWithZero = true;
+ result.cordWithZero_ = value;
+ return this;
+ }
+ public Builder ClearCordWithZero() {
+ PrepareBuilder();
+ result.hasCordWithZero = false;
+ result.cordWithZero_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[25].DefaultValue;
+ return this;
+ }
+
+ public bool HasReplacementString {
+ get { return result.hasReplacementString; }
+ }
+ public string ReplacementString {
+ get { return result.ReplacementString; }
+ set { SetReplacementString(value); }
+ }
+ public Builder SetReplacementString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasReplacementString = true;
+ result.replacementString_ = value;
+ return this;
+ }
+ public Builder ClearReplacementString() {
+ PrepareBuilder();
+ result.hasReplacementString = false;
+ result.replacementString_ = "${unknown}";
+ return this;
+ }
+ }
+ static TestExtremeDefaultValues() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SparseEnumMessage : pb::GeneratedMessage<SparseEnumMessage, SparseEnumMessage.Builder> {
+ private SparseEnumMessage() { }
+ private static readonly SparseEnumMessage defaultInstance = new SparseEnumMessage().MakeReadOnly();
+ private static readonly string[] _sparseEnumMessageFieldNames = new string[] { "sparse_enum" };
+ private static readonly uint[] _sparseEnumMessageFieldTags = new uint[] { 8 };
+ public static SparseEnumMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SparseEnumMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SparseEnumMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_SparseEnumMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SparseEnumMessage, SparseEnumMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_SparseEnumMessage__FieldAccessorTable; }
+ }
+
+ public const int SparseEnumFieldNumber = 1;
+ private bool hasSparseEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestSparseEnum sparseEnum_ = global::Google.ProtocolBuffers.TestProtos.TestSparseEnum.SPARSE_A;
+ public bool HasSparseEnum {
+ get { return hasSparseEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestSparseEnum SparseEnum {
+ get { return sparseEnum_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _sparseEnumMessageFieldNames;
+ if (hasSparseEnum) {
+ output.WriteEnum(1, field_names[0], (int) SparseEnum, SparseEnum);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasSparseEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(1, (int) SparseEnum);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SparseEnumMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SparseEnumMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SparseEnumMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SparseEnumMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SparseEnumMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SparseEnumMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SparseEnumMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SparseEnumMessage result;
+
+ private SparseEnumMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SparseEnumMessage original = result;
+ result = new SparseEnumMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SparseEnumMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.Descriptor; }
+ }
+
+ public override SparseEnumMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.DefaultInstance; }
+ }
+
+ public override SparseEnumMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SparseEnumMessage) {
+ return MergeFrom((SparseEnumMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SparseEnumMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.SparseEnumMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasSparseEnum) {
+ SparseEnum = other.SparseEnum;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_sparseEnumMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _sparseEnumMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ object unknown;
+ if(input.ReadEnum(ref result.sparseEnum_, out unknown)) {
+ result.hasSparseEnum = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(1, (ulong)(int)unknown);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasSparseEnum {
+ get { return result.hasSparseEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestSparseEnum SparseEnum {
+ get { return result.SparseEnum; }
+ set { SetSparseEnum(value); }
+ }
+ public Builder SetSparseEnum(global::Google.ProtocolBuffers.TestProtos.TestSparseEnum value) {
+ PrepareBuilder();
+ result.hasSparseEnum = true;
+ result.sparseEnum_ = value;
+ return this;
+ }
+ public Builder ClearSparseEnum() {
+ PrepareBuilder();
+ result.hasSparseEnum = false;
+ result.sparseEnum_ = global::Google.ProtocolBuffers.TestProtos.TestSparseEnum.SPARSE_A;
+ return this;
+ }
+ }
+ static SparseEnumMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OneString : pb::GeneratedMessage<OneString, OneString.Builder> {
+ private OneString() { }
+ private static readonly OneString defaultInstance = new OneString().MakeReadOnly();
+ private static readonly string[] _oneStringFieldNames = new string[] { "data" };
+ private static readonly uint[] _oneStringFieldTags = new uint[] { 10 };
+ public static OneString DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneString DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OneString ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneString__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneString, OneString.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneString__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private string data_ = "";
+ public bool HasData {
+ get { return hasData; }
+ }
+ public string Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _oneStringFieldNames;
+ if (hasData) {
+ output.WriteString(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OneString ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneString ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneString ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneString ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OneString MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneString prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OneString, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OneString cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OneString result;
+
+ private OneString PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OneString original = result;
+ result = new OneString();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OneString MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneString.Descriptor; }
+ }
+
+ public override OneString DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneString.DefaultInstance; }
+ }
+
+ public override OneString BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneString) {
+ return MergeFrom((OneString) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneString other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OneString.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_oneStringFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _oneStringFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasData = input.ReadString(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public string Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = "";
+ return this;
+ }
+ }
+ static OneString() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MoreString : pb::GeneratedMessage<MoreString, MoreString.Builder> {
+ private MoreString() { }
+ private static readonly MoreString defaultInstance = new MoreString().MakeReadOnly();
+ private static readonly string[] _moreStringFieldNames = new string[] { "data" };
+ private static readonly uint[] _moreStringFieldTags = new uint[] { 10 };
+ public static MoreString DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MoreString DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MoreString ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreString__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MoreString, MoreString.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreString__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private pbc::PopsicleList<string> data_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> DataList {
+ get { return pbc::Lists.AsReadOnly(data_); }
+ }
+ public int DataCount {
+ get { return data_.Count; }
+ }
+ public string GetData(int index) {
+ return data_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _moreStringFieldNames;
+ if (data_.Count > 0) {
+ output.WriteStringArray(1, field_names[0], data_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (string element in DataList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * data_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MoreString ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreString ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreString ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreString ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreString ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreString ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MoreString ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MoreString ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MoreString ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreString ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MoreString MakeReadOnly() {
+ data_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MoreString prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<MoreString, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MoreString cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MoreString result;
+
+ private MoreString PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MoreString original = result;
+ result = new MoreString();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MoreString MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreString.Descriptor; }
+ }
+
+ public override MoreString DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreString.DefaultInstance; }
+ }
+
+ public override MoreString BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MoreString) {
+ return MergeFrom((MoreString) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MoreString other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.MoreString.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.data_.Count != 0) {
+ result.data_.Add(other.data_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_moreStringFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _moreStringFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadStringArray(tag, field_name, result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<string> DataList {
+ get { return PrepareBuilder().data_; }
+ }
+ public int DataCount {
+ get { return result.DataCount; }
+ }
+ public string GetData(int index) {
+ return result.GetData(index);
+ }
+ public Builder SetData(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_[index] = value;
+ return this;
+ }
+ public Builder AddData(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_.Add(value);
+ return this;
+ }
+ public Builder AddRangeData(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.data_.Add(values);
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.data_.Clear();
+ return this;
+ }
+ }
+ static MoreString() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OneBytes : pb::GeneratedMessage<OneBytes, OneBytes.Builder> {
+ private OneBytes() { }
+ private static readonly OneBytes defaultInstance = new OneBytes().MakeReadOnly();
+ private static readonly string[] _oneBytesFieldNames = new string[] { "data" };
+ private static readonly uint[] _oneBytesFieldTags = new uint[] { 10 };
+ public static OneBytes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneBytes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OneBytes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneBytes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneBytes, OneBytes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_OneBytes__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private pb::ByteString data_ = pb::ByteString.Empty;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public pb::ByteString Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _oneBytesFieldNames;
+ if (hasData) {
+ output.WriteBytes(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OneBytes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneBytes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OneBytes MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneBytes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OneBytes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OneBytes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OneBytes result;
+
+ private OneBytes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OneBytes original = result;
+ result = new OneBytes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OneBytes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneBytes.Descriptor; }
+ }
+
+ public override OneBytes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneBytes.DefaultInstance; }
+ }
+
+ public override OneBytes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneBytes) {
+ return MergeFrom((OneBytes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneBytes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OneBytes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_oneBytesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _oneBytesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasData = input.ReadBytes(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public pb::ByteString Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static OneBytes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class MoreBytes : pb::GeneratedMessage<MoreBytes, MoreBytes.Builder> {
+ private MoreBytes() { }
+ private static readonly MoreBytes defaultInstance = new MoreBytes().MakeReadOnly();
+ private static readonly string[] _moreBytesFieldNames = new string[] { "data" };
+ private static readonly uint[] _moreBytesFieldTags = new uint[] { 10 };
+ public static MoreBytes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override MoreBytes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override MoreBytes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreBytes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<MoreBytes, MoreBytes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_MoreBytes__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private pbc::PopsicleList<pb::ByteString> data_ = new pbc::PopsicleList<pb::ByteString>();
+ public scg::IList<pb::ByteString> DataList {
+ get { return pbc::Lists.AsReadOnly(data_); }
+ }
+ public int DataCount {
+ get { return data_.Count; }
+ }
+ public pb::ByteString GetData(int index) {
+ return data_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _moreBytesFieldNames;
+ if (data_.Count > 0) {
+ output.WriteBytesArray(1, field_names[0], data_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (pb::ByteString element in DataList) {
+ dataSize += pb::CodedOutputStream.ComputeBytesSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * data_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static MoreBytes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static MoreBytes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static MoreBytes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static MoreBytes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private MoreBytes MakeReadOnly() {
+ data_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(MoreBytes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<MoreBytes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(MoreBytes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private MoreBytes result;
+
+ private MoreBytes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ MoreBytes original = result;
+ result = new MoreBytes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override MoreBytes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreBytes.Descriptor; }
+ }
+
+ public override MoreBytes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.MoreBytes.DefaultInstance; }
+ }
+
+ public override MoreBytes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is MoreBytes) {
+ return MergeFrom((MoreBytes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(MoreBytes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.MoreBytes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.data_.Count != 0) {
+ result.data_.Add(other.data_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_moreBytesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _moreBytesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadBytesArray(tag, field_name, result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<pb::ByteString> DataList {
+ get { return PrepareBuilder().data_; }
+ }
+ public int DataCount {
+ get { return result.DataCount; }
+ }
+ public pb::ByteString GetData(int index) {
+ return result.GetData(index);
+ }
+ public Builder SetData(int index, pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_[index] = value;
+ return this;
+ }
+ public Builder AddData(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.data_.Add(value);
+ return this;
+ }
+ public Builder AddRangeData(scg::IEnumerable<pb::ByteString> values) {
+ PrepareBuilder();
+ result.data_.Add(values);
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.data_.Clear();
+ return this;
+ }
+ }
+ static MoreBytes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Int32Message : pb::GeneratedMessage<Int32Message, Int32Message.Builder> {
+ private Int32Message() { }
+ private static readonly Int32Message defaultInstance = new Int32Message().MakeReadOnly();
+ private static readonly string[] _int32MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _int32MessageFieldTags = new uint[] { 8 };
+ public static Int32Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Int32Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Int32Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int32Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Int32Message, Int32Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int32Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private int data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public int Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _int32MessageFieldNames;
+ if (hasData) {
+ output.WriteInt32(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Int32Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Int32Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Int32Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Int32Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int32Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Int32Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Int32Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Int32Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Int32Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Int32Message result;
+
+ private Int32Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Int32Message original = result;
+ result = new Int32Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Int32Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int32Message.Descriptor; }
+ }
+
+ public override Int32Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int32Message.DefaultInstance; }
+ }
+
+ public override Int32Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Int32Message) {
+ return MergeFrom((Int32Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Int32Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Int32Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_int32MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _int32MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadInt32(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public int Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(int value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0;
+ return this;
+ }
+ }
+ static Int32Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Uint32Message : pb::GeneratedMessage<Uint32Message, Uint32Message.Builder> {
+ private Uint32Message() { }
+ private static readonly Uint32Message defaultInstance = new Uint32Message().MakeReadOnly();
+ private static readonly string[] _uint32MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _uint32MessageFieldTags = new uint[] { 8 };
+ public static Uint32Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Uint32Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Uint32Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint32Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Uint32Message, Uint32Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint32Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private uint data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public uint Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _uint32MessageFieldNames;
+ if (hasData) {
+ output.WriteUInt32(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Uint32Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Uint32Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Uint32Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint32Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Uint32Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Uint32Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Uint32Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Uint32Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Uint32Message result;
+
+ private Uint32Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Uint32Message original = result;
+ result = new Uint32Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Uint32Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint32Message.Descriptor; }
+ }
+
+ public override Uint32Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint32Message.DefaultInstance; }
+ }
+
+ public override Uint32Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Uint32Message) {
+ return MergeFrom((Uint32Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Uint32Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Uint32Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_uint32MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _uint32MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadUInt32(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public uint Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(uint value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0;
+ return this;
+ }
+ }
+ static Uint32Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Int64Message : pb::GeneratedMessage<Int64Message, Int64Message.Builder> {
+ private Int64Message() { }
+ private static readonly Int64Message defaultInstance = new Int64Message().MakeReadOnly();
+ private static readonly string[] _int64MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _int64MessageFieldTags = new uint[] { 8 };
+ public static Int64Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Int64Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Int64Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int64Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Int64Message, Int64Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Int64Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private long data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public long Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _int64MessageFieldNames;
+ if (hasData) {
+ output.WriteInt64(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeInt64Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Int64Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Int64Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Int64Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Int64Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Int64Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Int64Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Int64Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Int64Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Int64Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Int64Message result;
+
+ private Int64Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Int64Message original = result;
+ result = new Int64Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Int64Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int64Message.Descriptor; }
+ }
+
+ public override Int64Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Int64Message.DefaultInstance; }
+ }
+
+ public override Int64Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Int64Message) {
+ return MergeFrom((Int64Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Int64Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Int64Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_int64MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _int64MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadInt64(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public long Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(long value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0L;
+ return this;
+ }
+ }
+ static Int64Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Uint64Message : pb::GeneratedMessage<Uint64Message, Uint64Message.Builder> {
+ private Uint64Message() { }
+ private static readonly Uint64Message defaultInstance = new Uint64Message().MakeReadOnly();
+ private static readonly string[] _uint64MessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _uint64MessageFieldTags = new uint[] { 8 };
+ public static Uint64Message DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Uint64Message DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Uint64Message ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint64Message__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Uint64Message, Uint64Message.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_Uint64Message__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private ulong data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public ulong Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _uint64MessageFieldNames;
+ if (hasData) {
+ output.WriteUInt64(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Uint64Message ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Uint64Message ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Uint64Message ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Uint64Message ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Uint64Message MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Uint64Message prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Uint64Message, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Uint64Message cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Uint64Message result;
+
+ private Uint64Message PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Uint64Message original = result;
+ result = new Uint64Message();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Uint64Message MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint64Message.Descriptor; }
+ }
+
+ public override Uint64Message DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.Uint64Message.DefaultInstance; }
+ }
+
+ public override Uint64Message BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Uint64Message) {
+ return MergeFrom((Uint64Message) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Uint64Message other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.Uint64Message.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_uint64MessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _uint64MessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadUInt64(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public ulong Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(ulong value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = 0UL;
+ return this;
+ }
+ }
+ static Uint64Message() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BoolMessage : pb::GeneratedMessage<BoolMessage, BoolMessage.Builder> {
+ private BoolMessage() { }
+ private static readonly BoolMessage defaultInstance = new BoolMessage().MakeReadOnly();
+ private static readonly string[] _boolMessageFieldNames = new string[] { "data" };
+ private static readonly uint[] _boolMessageFieldTags = new uint[] { 8 };
+ public static BoolMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BoolMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BoolMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BoolMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BoolMessage, BoolMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BoolMessage__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private bool data_;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public bool Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _boolMessageFieldNames;
+ if (hasData) {
+ output.WriteBool(1, field_names[0], Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasData) {
+ size += pb::CodedOutputStream.ComputeBoolSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static BoolMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BoolMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BoolMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BoolMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BoolMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BoolMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<BoolMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BoolMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BoolMessage result;
+
+ private BoolMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BoolMessage original = result;
+ result = new BoolMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BoolMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BoolMessage.Descriptor; }
+ }
+
+ public override BoolMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BoolMessage.DefaultInstance; }
+ }
+
+ public override BoolMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BoolMessage) {
+ return MergeFrom((BoolMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BoolMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BoolMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_boolMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _boolMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasData = input.ReadBool(ref result.data_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasData {
+ get { return result.hasData; }
+ }
+ public bool Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(bool value) {
+ PrepareBuilder();
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ PrepareBuilder();
+ result.hasData = false;
+ result.data_ = false;
+ return this;
+ }
+ }
+ static BoolMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOneof : pb::GeneratedMessage<TestOneof, TestOneof.Builder> {
+ private TestOneof() { }
+ private static readonly TestOneof defaultInstance = new TestOneof().MakeReadOnly();
+ private static readonly string[] _testOneofFieldNames = new string[] { "foo_int", "foo_message", "foo_string", "foogroup" };
+ private static readonly uint[] _testOneofFieldTags = new uint[] { 8, 26, 18, 35 };
+ public static TestOneof DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOneof DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOneof ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOneof, TestOneof.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooGroup : pb::GeneratedMessage<FooGroup, FooGroup.Builder> {
+ private FooGroup() { }
+ private static readonly FooGroup defaultInstance = new FooGroup().MakeReadOnly();
+ private static readonly string[] _fooGroupFieldNames = new string[] { "a", "b" };
+ private static readonly uint[] _fooGroupFieldTags = new uint[] { 40, 50 };
+ public static FooGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof_FooGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooGroup, FooGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof_FooGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 5;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BFieldNumber = 6;
+ private bool hasB;
+ private string b_ = "";
+ public bool HasB {
+ get { return hasB; }
+ }
+ public string B {
+ get { return b_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(5, field_names[0], A);
+ }
+ if (hasB) {
+ output.WriteString(6, field_names[1], B);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, A);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, B);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooGroup result;
+
+ private FooGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooGroup original = result;
+ result = new FooGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Descriptor; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override FooGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooGroup) {
+ return MergeFrom((FooGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 40: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 50: {
+ result.hasB = input.ReadString(ref result.b_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public string B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = "";
+ return this;
+ }
+ }
+ static FooGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ private object foo_;
+ public enum FooOneofCase {
+ FooInt = 1,
+ FooString = 2,
+ FooMessage = 3,
+ FooGroup = 4,
+ None = 0,
+ }
+ private FooOneofCase fooCase_ = FooOneofCase.None;
+ public FooOneofCase FooCase {
+ get { return fooCase_; }
+ }
+
+ public const int FooIntFieldNumber = 1;
+ public bool HasFooInt {
+ get { return fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return fooCase_ == FooOneofCase.FooInt ? (int) foo_ : 0; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ public bool HasFooString {
+ get { return fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return fooCase_ == FooOneofCase.FooString ? (string) foo_ : ""; }
+ }
+
+ public const int FooMessageFieldNumber = 3;
+ public bool HasFooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestAllTypes) foo_ : global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int FooGroupFieldNumber = 4;
+ public bool HasFooGroup {
+ get { return fooCase_ == FooOneofCase.FooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup FooGroup {
+ get { return fooCase_ == FooOneofCase.FooGroup ? (global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup) foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testOneofFieldNames;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ output.WriteInt32(1, field_names[0], FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ output.WriteString(2, field_names[2], FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ output.WriteMessage(3, field_names[1], FooMessage);
+ }
+ if (fooCase_ == FooOneofCase.FooGroup) {
+ output.WriteGroup(4, field_names[3], FooGroup);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, FooMessage);
+ }
+ if (fooCase_ == FooOneofCase.FooGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(4, FooGroup);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestOneof ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOneof ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOneof ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOneof MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOneof prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestOneof, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOneof cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOneof result;
+
+ private TestOneof PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOneof original = result;
+ result = new TestOneof();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOneof MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.Descriptor; }
+ }
+
+ public override TestOneof DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof.DefaultInstance; }
+ }
+
+ public override TestOneof BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestOneof) {
+ return MergeFrom((TestOneof) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestOneof other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof.DefaultInstance) return this;
+ PrepareBuilder();
+ switch (other.FooCase) {
+ case FooOneofCase.FooInt: {
+ SetFooInt(other.FooInt);
+ break;
+ }
+ case FooOneofCase.FooString: {
+ SetFooString(other.FooString);
+ break;
+ }
+ case FooOneofCase.FooMessage: {
+ MergeFooMessage(other.FooMessage);
+ break;
+ }
+ case FooOneofCase.FooGroup: {
+ MergeFooGroup(other.FooGroup);
+ break;
+ }
+ case FooOneofCase.None: { break; }
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testOneofFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testOneofFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ int value = 0;
+ if (input.ReadInt32(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ }
+ break;
+ }
+ case 18: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ }
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ break;
+ }
+ case 35: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooGroup) {
+ subBuilder.MergeFrom(FooGroup);
+ }
+ input.ReadGroup(4, subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt ? (int) result.foo_ : 0; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooInt) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return result.fooCase_ == FooOneofCase.FooString ? (string) result.foo_ : ""; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooString) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestAllTypes) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage &&
+ result.FooMessage != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.FooMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooMessage;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public bool HasFooGroup {
+ get { return result.fooCase_ == FooOneofCase.FooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup FooGroup {
+ get { return result.fooCase_ == FooOneofCase.FooGroup ? (global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance; }
+ set { SetFooGroup(value); }
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooGroup &&
+ result.FooGroup != global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestOneof.Types.FooGroup.CreateBuilder(result.FooGroup).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooGroup;
+ return this;
+ }
+ public Builder ClearFooGroup() {
+ if (result.fooCase_ == FooOneofCase.FooGroup) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public FooOneofCase FooCase {
+ get { return result.fooCase_; }
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.foo_ = null;
+ result.fooCase_ = FooOneofCase.None;
+ return this;
+ }
+ }
+ static TestOneof() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOneofBackwardsCompatible : pb::GeneratedMessage<TestOneofBackwardsCompatible, TestOneofBackwardsCompatible.Builder> {
+ private TestOneofBackwardsCompatible() { }
+ private static readonly TestOneofBackwardsCompatible defaultInstance = new TestOneofBackwardsCompatible().MakeReadOnly();
+ private static readonly string[] _testOneofBackwardsCompatibleFieldNames = new string[] { "foo_int", "foo_message", "foo_string", "foogroup" };
+ private static readonly uint[] _testOneofBackwardsCompatibleFieldTags = new uint[] { 8, 26, 18, 35 };
+ public static TestOneofBackwardsCompatible DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOneofBackwardsCompatible DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOneofBackwardsCompatible ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOneofBackwardsCompatible, TestOneofBackwardsCompatible.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooGroup : pb::GeneratedMessage<FooGroup, FooGroup.Builder> {
+ private FooGroup() { }
+ private static readonly FooGroup defaultInstance = new FooGroup().MakeReadOnly();
+ private static readonly string[] _fooGroupFieldNames = new string[] { "a", "b" };
+ private static readonly uint[] _fooGroupFieldTags = new uint[] { 40, 50 };
+ public static FooGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooGroup, FooGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneofBackwardsCompatible_FooGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 5;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BFieldNumber = 6;
+ private bool hasB;
+ private string b_ = "";
+ public bool HasB {
+ get { return hasB; }
+ }
+ public string B {
+ get { return b_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(5, field_names[0], A);
+ }
+ if (hasB) {
+ output.WriteString(6, field_names[1], B);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, A);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, B);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooGroup result;
+
+ private FooGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooGroup original = result;
+ result = new FooGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Descriptor; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override FooGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooGroup) {
+ return MergeFrom((FooGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 40: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 50: {
+ result.hasB = input.ReadString(ref result.b_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public string B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = "";
+ return this;
+ }
+ }
+ static FooGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int FooIntFieldNumber = 1;
+ private bool hasFooInt;
+ private int fooInt_;
+ public bool HasFooInt {
+ get { return hasFooInt; }
+ }
+ public int FooInt {
+ get { return fooInt_; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ private bool hasFooString;
+ private string fooString_ = "";
+ public bool HasFooString {
+ get { return hasFooString; }
+ }
+ public string FooString {
+ get { return fooString_; }
+ }
+
+ public const int FooMessageFieldNumber = 3;
+ private bool hasFooMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes fooMessage_;
+ public bool HasFooMessage {
+ get { return hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return fooMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int FooGroupFieldNumber = 4;
+ private bool hasFooGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup fooGroup_;
+ public bool HasFooGroup {
+ get { return hasFooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup FooGroup {
+ get { return fooGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testOneofBackwardsCompatibleFieldNames;
+ if (hasFooInt) {
+ output.WriteInt32(1, field_names[0], FooInt);
+ }
+ if (hasFooString) {
+ output.WriteString(2, field_names[2], FooString);
+ }
+ if (hasFooMessage) {
+ output.WriteMessage(3, field_names[1], FooMessage);
+ }
+ if (hasFooGroup) {
+ output.WriteGroup(4, field_names[3], FooGroup);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasFooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (hasFooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (hasFooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, FooMessage);
+ }
+ if (hasFooGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(4, FooGroup);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneofBackwardsCompatible ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOneofBackwardsCompatible MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOneofBackwardsCompatible prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestOneofBackwardsCompatible, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOneofBackwardsCompatible cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOneofBackwardsCompatible result;
+
+ private TestOneofBackwardsCompatible PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOneofBackwardsCompatible original = result;
+ result = new TestOneofBackwardsCompatible();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOneofBackwardsCompatible MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Descriptor; }
+ }
+
+ public override TestOneofBackwardsCompatible DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.DefaultInstance; }
+ }
+
+ public override TestOneofBackwardsCompatible BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestOneofBackwardsCompatible) {
+ return MergeFrom((TestOneofBackwardsCompatible) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestOneofBackwardsCompatible other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasFooInt) {
+ FooInt = other.FooInt;
+ }
+ if (other.HasFooString) {
+ FooString = other.FooString;
+ }
+ if (other.HasFooMessage) {
+ MergeFooMessage(other.FooMessage);
+ }
+ if (other.HasFooGroup) {
+ MergeFooGroup(other.FooGroup);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testOneofBackwardsCompatibleFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testOneofBackwardsCompatibleFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasFooInt = input.ReadInt32(ref result.fooInt_);
+ break;
+ }
+ case 18: {
+ result.hasFooString = input.ReadString(ref result.fooString_);
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasFooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ FooMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 35: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.CreateBuilder();
+ if (result.hasFooGroup) {
+ subBuilder.MergeFrom(FooGroup);
+ }
+ input.ReadGroup(4, subBuilder, extensionRegistry);
+ FooGroup = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.hasFooInt; }
+ }
+ public int FooInt {
+ get { return result.FooInt; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.hasFooInt = true;
+ result.fooInt_ = value;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ result.hasFooInt = false;
+ result.fooInt_ = 0;
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.hasFooString; }
+ }
+ public string FooString {
+ get { return result.FooString; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooString = true;
+ result.fooString_ = value;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ result.hasFooString = false;
+ result.fooString_ = "";
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.hasFooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes FooMessage {
+ get { return result.FooMessage; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooMessage = true;
+ result.fooMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooMessage &&
+ result.fooMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.fooMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.fooMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooMessage_ = value;
+ }
+ result.hasFooMessage = true;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ PrepareBuilder();
+ result.hasFooMessage = false;
+ result.fooMessage_ = null;
+ return this;
+ }
+
+ public bool HasFooGroup {
+ get { return result.hasFooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup FooGroup {
+ get { return result.FooGroup; }
+ set { SetFooGroup(value); }
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasFooGroup = true;
+ result.fooGroup_ = value;
+ return this;
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasFooGroup = true;
+ result.fooGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasFooGroup &&
+ result.fooGroup_ != global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.DefaultInstance) {
+ result.fooGroup_ = global::Google.ProtocolBuffers.TestProtos.TestOneofBackwardsCompatible.Types.FooGroup.CreateBuilder(result.fooGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.fooGroup_ = value;
+ }
+ result.hasFooGroup = true;
+ return this;
+ }
+ public Builder ClearFooGroup() {
+ PrepareBuilder();
+ result.hasFooGroup = false;
+ result.fooGroup_ = null;
+ return this;
+ }
+ }
+ static TestOneofBackwardsCompatible() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestOneof2 : pb::GeneratedMessage<TestOneof2, TestOneof2.Builder> {
+ private TestOneof2() { }
+ private static readonly TestOneof2 defaultInstance = new TestOneof2().MakeReadOnly();
+ private static readonly string[] _testOneof2FieldNames = new string[] { "bar_bytes", "bar_cord", "bar_enum", "bar_int", "bar_string", "bar_string_piece", "baz_int", "baz_string", "foo_bytes", "foo_cord", "foo_enum", "foo_int", "foo_lazy_message", "foo_message", "foo_string", "foo_string_piece", "foogroup" };
+ private static readonly uint[] _testOneof2FieldTags = new uint[] { 130, 114, 136, 96, 106, 122, 144, 154, 42, 26, 48, 8, 90, 58, 18, 34, 67 };
+ public static TestOneof2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestOneof2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestOneof2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestOneof2, TestOneof2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ FOO = 1,
+ BAR = 2,
+ BAZ = 3,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooGroup : pb::GeneratedMessage<FooGroup, FooGroup.Builder> {
+ private FooGroup() { }
+ private static readonly FooGroup defaultInstance = new FooGroup().MakeReadOnly();
+ private static readonly string[] _fooGroupFieldNames = new string[] { "a", "b" };
+ private static readonly uint[] _fooGroupFieldTags = new uint[] { 72, 82 };
+ public static FooGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_FooGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooGroup, FooGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_FooGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 9;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BFieldNumber = 10;
+ private bool hasB;
+ private string b_ = "";
+ public bool HasB {
+ get { return hasB; }
+ }
+ public string B {
+ get { return b_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(9, field_names[0], A);
+ }
+ if (hasB) {
+ output.WriteString(10, field_names[1], B);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(9, A);
+ }
+ if (hasB) {
+ size += pb::CodedOutputStream.ComputeStringSize(10, B);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooGroup result;
+
+ private FooGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooGroup original = result;
+ result = new FooGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Descriptor; }
+ }
+
+ public override FooGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance; }
+ }
+
+ public override FooGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooGroup) {
+ return MergeFrom((FooGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 72: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ case 82: {
+ result.hasB = input.ReadString(ref result.b_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.hasB; }
+ }
+ public string B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ PrepareBuilder();
+ result.hasB = false;
+ result.b_ = "";
+ return this;
+ }
+ }
+ static FooGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "corge_int", "qux_int" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 16, 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestOneof2_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int QuxIntFieldNumber = 1;
+ private bool hasQuxInt;
+ private long quxInt_;
+ public bool HasQuxInt {
+ get { return hasQuxInt; }
+ }
+ public long QuxInt {
+ get { return quxInt_; }
+ }
+
+ public const int CorgeIntFieldNumber = 2;
+ private pbc::PopsicleList<int> corgeInt_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> CorgeIntList {
+ get { return pbc::Lists.AsReadOnly(corgeInt_); }
+ }
+ public int CorgeIntCount {
+ get { return corgeInt_.Count; }
+ }
+ public int GetCorgeInt(int index) {
+ return corgeInt_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasQuxInt) {
+ output.WriteInt64(1, field_names[1], QuxInt);
+ }
+ if (corgeInt_.Count > 0) {
+ output.WriteInt32Array(2, field_names[0], corgeInt_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasQuxInt) {
+ size += pb::CodedOutputStream.ComputeInt64Size(1, QuxInt);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in CorgeIntList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * corgeInt_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ corgeInt_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasQuxInt) {
+ QuxInt = other.QuxInt;
+ }
+ if (other.corgeInt_.Count != 0) {
+ result.corgeInt_.Add(other.corgeInt_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasQuxInt = input.ReadInt64(ref result.quxInt_);
+ break;
+ }
+ case 18:
+ case 16: {
+ input.ReadInt32Array(tag, field_name, result.corgeInt_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasQuxInt {
+ get { return result.hasQuxInt; }
+ }
+ public long QuxInt {
+ get { return result.QuxInt; }
+ set { SetQuxInt(value); }
+ }
+ public Builder SetQuxInt(long value) {
+ PrepareBuilder();
+ result.hasQuxInt = true;
+ result.quxInt_ = value;
+ return this;
+ }
+ public Builder ClearQuxInt() {
+ PrepareBuilder();
+ result.hasQuxInt = false;
+ result.quxInt_ = 0L;
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> CorgeIntList {
+ get { return PrepareBuilder().corgeInt_; }
+ }
+ public int CorgeIntCount {
+ get { return result.CorgeIntCount; }
+ }
+ public int GetCorgeInt(int index) {
+ return result.GetCorgeInt(index);
+ }
+ public Builder SetCorgeInt(int index, int value) {
+ PrepareBuilder();
+ result.corgeInt_[index] = value;
+ return this;
+ }
+ public Builder AddCorgeInt(int value) {
+ PrepareBuilder();
+ result.corgeInt_.Add(value);
+ return this;
+ }
+ public Builder AddRangeCorgeInt(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.corgeInt_.Add(values);
+ return this;
+ }
+ public Builder ClearCorgeInt() {
+ PrepareBuilder();
+ result.corgeInt_.Clear();
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ private object foo_;
+ public enum FooOneofCase {
+ FooInt = 1,
+ FooString = 2,
+ FooCord = 3,
+ FooStringPiece = 4,
+ FooBytes = 5,
+ FooEnum = 6,
+ FooMessage = 7,
+ FooGroup = 8,
+ FooLazyMessage = 11,
+ None = 0,
+ }
+ private FooOneofCase fooCase_ = FooOneofCase.None;
+ public FooOneofCase FooCase {
+ get { return fooCase_; }
+ }
+
+ private object bar_;
+ public enum BarOneofCase {
+ BarInt = 12,
+ BarString = 13,
+ BarCord = 14,
+ BarStringPiece = 15,
+ BarBytes = 16,
+ BarEnum = 17,
+ None = 0,
+ }
+ private BarOneofCase barCase_ = BarOneofCase.None;
+ public BarOneofCase BarCase {
+ get { return barCase_; }
+ }
+
+ public const int FooIntFieldNumber = 1;
+ public bool HasFooInt {
+ get { return fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return fooCase_ == FooOneofCase.FooInt ? (int) foo_ : 0; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ public bool HasFooString {
+ get { return fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return fooCase_ == FooOneofCase.FooString ? (string) foo_ : ""; }
+ }
+
+ public const int FooCordFieldNumber = 3;
+ public bool HasFooCord {
+ get { return fooCase_ == FooOneofCase.FooCord; }
+ }
+ public string FooCord {
+ get { return fooCase_ == FooOneofCase.FooCord ? (string) foo_ : ""; }
+ }
+
+ public const int FooStringPieceFieldNumber = 4;
+ public bool HasFooStringPiece {
+ get { return fooCase_ == FooOneofCase.FooStringPiece; }
+ }
+ public string FooStringPiece {
+ get { return fooCase_ == FooOneofCase.FooStringPiece ? (string) foo_ : ""; }
+ }
+
+ public const int FooBytesFieldNumber = 5;
+ public bool HasFooBytes {
+ get { return fooCase_ == FooOneofCase.FooBytes; }
+ }
+ public pb::ByteString FooBytes {
+ get { return fooCase_ == FooOneofCase.FooBytes ? (pb::ByteString) foo_ : pb::ByteString.Empty; }
+ }
+
+ public const int FooEnumFieldNumber = 6;
+ public bool HasFooEnum {
+ get { return fooCase_ == FooOneofCase.FooEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum FooEnum {
+ get { return fooCase_ == FooOneofCase.FooEnum ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum) foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.FOO; }
+ }
+
+ public const int FooMessageFieldNumber = 7;
+ public bool HasFooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage) foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int FooGroupFieldNumber = 8;
+ public bool HasFooGroup {
+ get { return fooCase_ == FooOneofCase.FooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup FooGroup {
+ get { return fooCase_ == FooOneofCase.FooGroup ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup) foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance; }
+ }
+
+ public const int FooLazyMessageFieldNumber = 11;
+ public bool HasFooLazyMessage {
+ get { return fooCase_ == FooOneofCase.FooLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooLazyMessage {
+ get { return fooCase_ == FooOneofCase.FooLazyMessage ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage) foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int BarIntFieldNumber = 12;
+ public bool HasBarInt {
+ get { return barCase_ == BarOneofCase.BarInt; }
+ }
+ public int BarInt {
+ get { return barCase_ == BarOneofCase.BarInt ? (int) bar_ : 5; }
+ }
+
+ public const int BarStringFieldNumber = 13;
+ public bool HasBarString {
+ get { return barCase_ == BarOneofCase.BarString; }
+ }
+ public string BarString {
+ get { return barCase_ == BarOneofCase.BarString ? (string) bar_ : "STRING"; }
+ }
+
+ public const int BarCordFieldNumber = 14;
+ public bool HasBarCord {
+ get { return barCase_ == BarOneofCase.BarCord; }
+ }
+ public string BarCord {
+ get { return barCase_ == BarOneofCase.BarCord ? (string) bar_ : "CORD"; }
+ }
+
+ public const int BarStringPieceFieldNumber = 15;
+ public bool HasBarStringPiece {
+ get { return barCase_ == BarOneofCase.BarStringPiece; }
+ }
+ public string BarStringPiece {
+ get { return barCase_ == BarOneofCase.BarStringPiece ? (string) bar_ : "SPIECE"; }
+ }
+
+ public const int BarBytesFieldNumber = 16;
+ public bool HasBarBytes {
+ get { return barCase_ == BarOneofCase.BarBytes; }
+ }
+ public pb::ByteString BarBytes {
+ get { return barCase_ == BarOneofCase.BarBytes ? (pb::ByteString) bar_ : (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor.Fields[13].DefaultValue; }
+ }
+
+ public const int BarEnumFieldNumber = 17;
+ public bool HasBarEnum {
+ get { return barCase_ == BarOneofCase.BarEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum BarEnum {
+ get { return barCase_ == BarOneofCase.BarEnum ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum) bar_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.BAR; }
+ }
+
+ public const int BazIntFieldNumber = 18;
+ private bool hasBazInt;
+ private int bazInt_;
+ public bool HasBazInt {
+ get { return hasBazInt; }
+ }
+ public int BazInt {
+ get { return bazInt_; }
+ }
+
+ public const int BazStringFieldNumber = 19;
+ private bool hasBazString;
+ private string bazString_ = "BAZ";
+ public bool HasBazString {
+ get { return hasBazString; }
+ }
+ public string BazString {
+ get { return bazString_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testOneof2FieldNames;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ output.WriteInt32(1, field_names[11], FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ output.WriteString(2, field_names[14], FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooCord) {
+ output.WriteString(3, field_names[9], FooCord);
+ }
+ if (fooCase_ == FooOneofCase.FooStringPiece) {
+ output.WriteString(4, field_names[15], FooStringPiece);
+ }
+ if (fooCase_ == FooOneofCase.FooBytes) {
+ output.WriteBytes(5, field_names[8], FooBytes);
+ }
+ if (fooCase_ == FooOneofCase.FooEnum) {
+ output.WriteEnum(6, field_names[10], (int) FooEnum, FooEnum);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ output.WriteMessage(7, field_names[13], FooMessage);
+ }
+ if (fooCase_ == FooOneofCase.FooGroup) {
+ output.WriteGroup(8, field_names[16], FooGroup);
+ }
+ if (fooCase_ == FooOneofCase.FooLazyMessage) {
+ output.WriteMessage(11, field_names[12], FooLazyMessage);
+ }
+ if (barCase_ == BarOneofCase.BarInt) {
+ output.WriteInt32(12, field_names[3], BarInt);
+ }
+ if (barCase_ == BarOneofCase.BarString) {
+ output.WriteString(13, field_names[4], BarString);
+ }
+ if (barCase_ == BarOneofCase.BarCord) {
+ output.WriteString(14, field_names[1], BarCord);
+ }
+ if (barCase_ == BarOneofCase.BarStringPiece) {
+ output.WriteString(15, field_names[5], BarStringPiece);
+ }
+ if (barCase_ == BarOneofCase.BarBytes) {
+ output.WriteBytes(16, field_names[0], BarBytes);
+ }
+ if (barCase_ == BarOneofCase.BarEnum) {
+ output.WriteEnum(17, field_names[2], (int) BarEnum, BarEnum);
+ }
+ if (hasBazInt) {
+ output.WriteInt32(18, field_names[6], BazInt);
+ }
+ if (hasBazString) {
+ output.WriteString(19, field_names[7], BazString);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, FooCord);
+ }
+ if (fooCase_ == FooOneofCase.FooStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(4, FooStringPiece);
+ }
+ if (fooCase_ == FooOneofCase.FooBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(5, FooBytes);
+ }
+ if (fooCase_ == FooOneofCase.FooEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(6, (int) FooEnum);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(7, FooMessage);
+ }
+ if (fooCase_ == FooOneofCase.FooGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(8, FooGroup);
+ }
+ if (fooCase_ == FooOneofCase.FooLazyMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, FooLazyMessage);
+ }
+ if (barCase_ == BarOneofCase.BarInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(12, BarInt);
+ }
+ if (barCase_ == BarOneofCase.BarString) {
+ size += pb::CodedOutputStream.ComputeStringSize(13, BarString);
+ }
+ if (barCase_ == BarOneofCase.BarCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(14, BarCord);
+ }
+ if (barCase_ == BarOneofCase.BarStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(15, BarStringPiece);
+ }
+ if (barCase_ == BarOneofCase.BarBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(16, BarBytes);
+ }
+ if (barCase_ == BarOneofCase.BarEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(17, (int) BarEnum);
+ }
+ if (hasBazInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(18, BazInt);
+ }
+ if (hasBazString) {
+ size += pb::CodedOutputStream.ComputeStringSize(19, BazString);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestOneof2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestOneof2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestOneof2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestOneof2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestOneof2 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestOneof2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestOneof2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestOneof2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestOneof2 result;
+
+ private TestOneof2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestOneof2 original = result;
+ result = new TestOneof2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestOneof2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor; }
+ }
+
+ public override TestOneof2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestOneof2.DefaultInstance; }
+ }
+
+ public override TestOneof2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestOneof2) {
+ return MergeFrom((TestOneof2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestOneof2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestOneof2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasBazInt) {
+ BazInt = other.BazInt;
+ }
+ if (other.HasBazString) {
+ BazString = other.BazString;
+ }
+ switch (other.FooCase) {
+ case FooOneofCase.FooInt: {
+ SetFooInt(other.FooInt);
+ break;
+ }
+ case FooOneofCase.FooString: {
+ SetFooString(other.FooString);
+ break;
+ }
+ case FooOneofCase.FooCord: {
+ SetFooCord(other.FooCord);
+ break;
+ }
+ case FooOneofCase.FooStringPiece: {
+ SetFooStringPiece(other.FooStringPiece);
+ break;
+ }
+ case FooOneofCase.FooBytes: {
+ SetFooBytes(other.FooBytes);
+ break;
+ }
+ case FooOneofCase.FooEnum: {
+ SetFooEnum(other.FooEnum);
+ break;
+ }
+ case FooOneofCase.FooMessage: {
+ MergeFooMessage(other.FooMessage);
+ break;
+ }
+ case FooOneofCase.FooGroup: {
+ MergeFooGroup(other.FooGroup);
+ break;
+ }
+ case FooOneofCase.FooLazyMessage: {
+ MergeFooLazyMessage(other.FooLazyMessage);
+ break;
+ }
+ case FooOneofCase.None: { break; }
+ }
+ switch (other.BarCase) {
+ case BarOneofCase.BarInt: {
+ SetBarInt(other.BarInt);
+ break;
+ }
+ case BarOneofCase.BarString: {
+ SetBarString(other.BarString);
+ break;
+ }
+ case BarOneofCase.BarCord: {
+ SetBarCord(other.BarCord);
+ break;
+ }
+ case BarOneofCase.BarStringPiece: {
+ SetBarStringPiece(other.BarStringPiece);
+ break;
+ }
+ case BarOneofCase.BarBytes: {
+ SetBarBytes(other.BarBytes);
+ break;
+ }
+ case BarOneofCase.BarEnum: {
+ SetBarEnum(other.BarEnum);
+ break;
+ }
+ case BarOneofCase.None: { break; }
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testOneof2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testOneof2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ int value = 0;
+ if (input.ReadInt32(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ }
+ break;
+ }
+ case 18: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ }
+ break;
+ }
+ case 26: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooCord;
+ }
+ break;
+ }
+ case 34: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooStringPiece;
+ }
+ break;
+ }
+ case 42: {
+ pb::ByteString value = pb::ByteString.Empty;
+ if (input.ReadBytes(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooBytes;
+ }
+ break;
+ }
+ case 48: {
+ object unknown;
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum enumValue = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.FOO;
+ if(input.ReadEnum(ref enumValue, out unknown)) {
+ result.foo_ = enumValue;
+ result.fooCase_ = FooOneofCase.FooEnum;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(6, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 58: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ break;
+ }
+ case 67: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooGroup) {
+ subBuilder.MergeFrom(FooGroup);
+ }
+ input.ReadGroup(8, subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooLazyMessage) {
+ subBuilder.MergeFrom(FooLazyMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooLazyMessage;
+ break;
+ }
+ case 96: {
+ int value = 5;
+ if (input.ReadInt32(ref value)) {
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarInt;
+ }
+ break;
+ }
+ case 106: {
+ string value = "STRING";
+ if (input.ReadString(ref value)) {
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarString;
+ }
+ break;
+ }
+ case 114: {
+ string value = "CORD";
+ if (input.ReadString(ref value)) {
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarCord;
+ }
+ break;
+ }
+ case 122: {
+ string value = "SPIECE";
+ if (input.ReadString(ref value)) {
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarStringPiece;
+ }
+ break;
+ }
+ case 130: {
+ pb::ByteString value = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor.Fields[13].DefaultValue;
+ if (input.ReadBytes(ref value)) {
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarBytes;
+ }
+ break;
+ }
+ case 136: {
+ object unknown;
+ global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum enumValue = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.BAR;
+ if(input.ReadEnum(ref enumValue, out unknown)) {
+ result.bar_ = enumValue;
+ result.barCase_ = BarOneofCase.BarEnum;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(17, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 144: {
+ result.hasBazInt = input.ReadInt32(ref result.bazInt_);
+ break;
+ }
+ case 154: {
+ result.hasBazString = input.ReadString(ref result.bazString_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt ? (int) result.foo_ : 0; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooInt) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return result.fooCase_ == FooOneofCase.FooString ? (string) result.foo_ : ""; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooString) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooCord {
+ get { return result.fooCase_ == FooOneofCase.FooCord; }
+ }
+ public string FooCord {
+ get { return result.fooCase_ == FooOneofCase.FooCord ? (string) result.foo_ : ""; }
+ set { SetFooCord(value); }
+ }
+ public Builder SetFooCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooCord;
+ return this;
+ }
+ public Builder ClearFooCord() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooCord) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooStringPiece {
+ get { return result.fooCase_ == FooOneofCase.FooStringPiece; }
+ }
+ public string FooStringPiece {
+ get { return result.fooCase_ == FooOneofCase.FooStringPiece ? (string) result.foo_ : ""; }
+ set { SetFooStringPiece(value); }
+ }
+ public Builder SetFooStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooStringPiece;
+ return this;
+ }
+ public Builder ClearFooStringPiece() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooStringPiece) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooBytes {
+ get { return result.fooCase_ == FooOneofCase.FooBytes; }
+ }
+ public pb::ByteString FooBytes {
+ get { return result.fooCase_ == FooOneofCase.FooBytes ? (pb::ByteString) result.foo_ : pb::ByteString.Empty; }
+ set { SetFooBytes(value); }
+ }
+ public Builder SetFooBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooBytes;
+ return this;
+ }
+ public Builder ClearFooBytes() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooBytes) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooEnum {
+ get { return result.fooCase_ == FooOneofCase.FooEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum FooEnum {
+ get { return result.fooCase_ == FooOneofCase.FooEnum ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.FOO; }
+ set { SetFooEnum(value); }
+ }
+ public Builder SetFooEnum(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooEnum;
+ return this;
+ }
+ public Builder ClearFooEnum() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooEnum) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage &&
+ result.FooMessage != global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder(result.FooMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooMessage;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public bool HasFooGroup {
+ get { return result.fooCase_ == FooOneofCase.FooGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup FooGroup {
+ get { return result.fooCase_ == FooOneofCase.FooGroup ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance; }
+ set { SetFooGroup(value); }
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooGroup;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooGroup(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooGroup &&
+ result.FooGroup != global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.FooGroup.CreateBuilder(result.FooGroup).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooGroup;
+ return this;
+ }
+ public Builder ClearFooGroup() {
+ if (result.fooCase_ == FooOneofCase.FooGroup) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public bool HasFooLazyMessage {
+ get { return result.fooCase_ == FooOneofCase.FooLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage FooLazyMessage {
+ get { return result.fooCase_ == FooOneofCase.FooLazyMessage ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance; }
+ set { SetFooLazyMessage(value); }
+ }
+ public Builder SetFooLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooLazyMessage;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooLazyMessage;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooLazyMessage &&
+ result.FooLazyMessage != global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedMessage.CreateBuilder(result.FooLazyMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooLazyMessage;
+ return this;
+ }
+ public Builder ClearFooLazyMessage() {
+ if (result.fooCase_ == FooOneofCase.FooLazyMessage) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public bool HasBarInt {
+ get { return result.barCase_ == BarOneofCase.BarInt; }
+ }
+ public int BarInt {
+ get { return result.barCase_ == BarOneofCase.BarInt ? (int) result.bar_ : 5; }
+ set { SetBarInt(value); }
+ }
+ public Builder SetBarInt(int value) {
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarInt;
+ return this;
+ }
+ public Builder ClearBarInt() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarInt) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBarString {
+ get { return result.barCase_ == BarOneofCase.BarString; }
+ }
+ public string BarString {
+ get { return result.barCase_ == BarOneofCase.BarString ? (string) result.bar_ : "STRING"; }
+ set { SetBarString(value); }
+ }
+ public Builder SetBarString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarString;
+ return this;
+ }
+ public Builder ClearBarString() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarString) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBarCord {
+ get { return result.barCase_ == BarOneofCase.BarCord; }
+ }
+ public string BarCord {
+ get { return result.barCase_ == BarOneofCase.BarCord ? (string) result.bar_ : "CORD"; }
+ set { SetBarCord(value); }
+ }
+ public Builder SetBarCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarCord;
+ return this;
+ }
+ public Builder ClearBarCord() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarCord) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBarStringPiece {
+ get { return result.barCase_ == BarOneofCase.BarStringPiece; }
+ }
+ public string BarStringPiece {
+ get { return result.barCase_ == BarOneofCase.BarStringPiece ? (string) result.bar_ : "SPIECE"; }
+ set { SetBarStringPiece(value); }
+ }
+ public Builder SetBarStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarStringPiece;
+ return this;
+ }
+ public Builder ClearBarStringPiece() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarStringPiece) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBarBytes {
+ get { return result.barCase_ == BarOneofCase.BarBytes; }
+ }
+ public pb::ByteString BarBytes {
+ get { return result.barCase_ == BarOneofCase.BarBytes ? (pb::ByteString) result.bar_ : (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestOneof2.Descriptor.Fields[13].DefaultValue; }
+ set { SetBarBytes(value); }
+ }
+ public Builder SetBarBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarBytes;
+ return this;
+ }
+ public Builder ClearBarBytes() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarBytes) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBarEnum {
+ get { return result.barCase_ == BarOneofCase.BarEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum BarEnum {
+ get { return result.barCase_ == BarOneofCase.BarEnum ? (global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum) result.bar_ : global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum.BAR; }
+ set { SetBarEnum(value); }
+ }
+ public Builder SetBarEnum(global::Google.ProtocolBuffers.TestProtos.TestOneof2.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.bar_ = value;
+ result.barCase_ = BarOneofCase.BarEnum;
+ return this;
+ }
+ public Builder ClearBarEnum() {
+ PrepareBuilder();
+ if (result.barCase_ == BarOneofCase.BarEnum) {
+ result.barCase_ = BarOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasBazInt {
+ get { return result.hasBazInt; }
+ }
+ public int BazInt {
+ get { return result.BazInt; }
+ set { SetBazInt(value); }
+ }
+ public Builder SetBazInt(int value) {
+ PrepareBuilder();
+ result.hasBazInt = true;
+ result.bazInt_ = value;
+ return this;
+ }
+ public Builder ClearBazInt() {
+ PrepareBuilder();
+ result.hasBazInt = false;
+ result.bazInt_ = 0;
+ return this;
+ }
+
+ public bool HasBazString {
+ get { return result.hasBazString; }
+ }
+ public string BazString {
+ get { return result.BazString; }
+ set { SetBazString(value); }
+ }
+ public Builder SetBazString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasBazString = true;
+ result.bazString_ = value;
+ return this;
+ }
+ public Builder ClearBazString() {
+ PrepareBuilder();
+ result.hasBazString = false;
+ result.bazString_ = "BAZ";
+ return this;
+ }
+
+ public FooOneofCase FooCase {
+ get { return result.fooCase_; }
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.foo_ = null;
+ result.fooCase_ = FooOneofCase.None;
+ return this;
+ }
+
+ public BarOneofCase BarCase {
+ get { return result.barCase_; }
+ }
+ public Builder ClearBar() {
+ PrepareBuilder();
+ result.bar_ = null;
+ result.barCase_ = BarOneofCase.None;
+ return this;
+ }
+ }
+ static TestOneof2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequiredOneof : pb::GeneratedMessage<TestRequiredOneof, TestRequiredOneof.Builder> {
+ private TestRequiredOneof() { }
+ private static readonly TestRequiredOneof defaultInstance = new TestRequiredOneof().MakeReadOnly();
+ private static readonly string[] _testRequiredOneofFieldNames = new string[] { "foo_int", "foo_message", "foo_string" };
+ private static readonly uint[] _testRequiredOneofFieldTags = new uint[] { 8, 26, 18 };
+ public static TestRequiredOneof DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequiredOneof DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequiredOneof ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequiredOneof, TestRequiredOneof.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "required_double" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 9 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRequiredOneof_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int RequiredDoubleFieldNumber = 1;
+ private bool hasRequiredDouble;
+ private double requiredDouble_;
+ public bool HasRequiredDouble {
+ get { return hasRequiredDouble; }
+ }
+ public double RequiredDouble {
+ get { return requiredDouble_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasRequiredDouble) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasRequiredDouble) {
+ output.WriteDouble(1, field_names[0], RequiredDouble);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRequiredDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(1, RequiredDouble);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRequiredDouble) {
+ RequiredDouble = other.RequiredDouble;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 9: {
+ result.hasRequiredDouble = input.ReadDouble(ref result.requiredDouble_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasRequiredDouble {
+ get { return result.hasRequiredDouble; }
+ }
+ public double RequiredDouble {
+ get { return result.RequiredDouble; }
+ set { SetRequiredDouble(value); }
+ }
+ public Builder SetRequiredDouble(double value) {
+ PrepareBuilder();
+ result.hasRequiredDouble = true;
+ result.requiredDouble_ = value;
+ return this;
+ }
+ public Builder ClearRequiredDouble() {
+ PrepareBuilder();
+ result.hasRequiredDouble = false;
+ result.requiredDouble_ = 0D;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ private object foo_;
+ public enum FooOneofCase {
+ FooInt = 1,
+ FooString = 2,
+ FooMessage = 3,
+ None = 0,
+ }
+ private FooOneofCase fooCase_ = FooOneofCase.None;
+ public FooOneofCase FooCase {
+ get { return fooCase_; }
+ }
+
+ public const int FooIntFieldNumber = 1;
+ public bool HasFooInt {
+ get { return fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return fooCase_ == FooOneofCase.FooInt ? (int) foo_ : 0; }
+ }
+
+ public const int FooStringFieldNumber = 2;
+ public bool HasFooString {
+ get { return fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return fooCase_ == FooOneofCase.FooString ? (string) foo_ : ""; }
+ }
+
+ public const int FooMessageFieldNumber = 3;
+ public bool HasFooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage FooMessage {
+ get { return fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage) foo_ : global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasFooMessage) {
+ if (!FooMessage.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRequiredOneofFieldNames;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ output.WriteInt32(1, field_names[0], FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ output.WriteString(2, field_names[2], FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ output.WriteMessage(3, field_names[1], FooMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (fooCase_ == FooOneofCase.FooInt) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, FooInt);
+ }
+ if (fooCase_ == FooOneofCase.FooString) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, FooString);
+ }
+ if (fooCase_ == FooOneofCase.FooMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, FooMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRequiredOneof ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequiredOneof ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredOneof ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequiredOneof MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequiredOneof prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredOneof, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequiredOneof cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequiredOneof result;
+
+ private TestRequiredOneof PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequiredOneof original = result;
+ result = new TestRequiredOneof();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequiredOneof MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Descriptor; }
+ }
+
+ public override TestRequiredOneof DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.DefaultInstance; }
+ }
+
+ public override TestRequiredOneof BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequiredOneof) {
+ return MergeFrom((TestRequiredOneof) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequiredOneof other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.DefaultInstance) return this;
+ PrepareBuilder();
+ switch (other.FooCase) {
+ case FooOneofCase.FooInt: {
+ SetFooInt(other.FooInt);
+ break;
+ }
+ case FooOneofCase.FooString: {
+ SetFooString(other.FooString);
+ break;
+ }
+ case FooOneofCase.FooMessage: {
+ MergeFooMessage(other.FooMessage);
+ break;
+ }
+ case FooOneofCase.None: { break; }
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRequiredOneofFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRequiredOneofFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ int value = 0;
+ if (input.ReadInt32(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ }
+ break;
+ }
+ case 18: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ }
+ break;
+ }
+ case 26: {
+ global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.CreateBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ subBuilder.MergeFrom(FooMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.foo_ = subBuilder.BuildPartial();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasFooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt; }
+ }
+ public int FooInt {
+ get { return result.fooCase_ == FooOneofCase.FooInt ? (int) result.foo_ : 0; }
+ set { SetFooInt(value); }
+ }
+ public Builder SetFooInt(int value) {
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooInt;
+ return this;
+ }
+ public Builder ClearFooInt() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooInt) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooString {
+ get { return result.fooCase_ == FooOneofCase.FooString; }
+ }
+ public string FooString {
+ get { return result.fooCase_ == FooOneofCase.FooString ? (string) result.foo_ : ""; }
+ set { SetFooString(value); }
+ }
+ public Builder SetFooString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.foo_ = value;
+ result.fooCase_ = FooOneofCase.FooString;
+ return this;
+ }
+ public Builder ClearFooString() {
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooString) {
+ result.fooCase_ = FooOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasFooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage FooMessage {
+ get { return result.fooCase_ == FooOneofCase.FooMessage ? (global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage) result.foo_ : global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance; }
+ set { SetFooMessage(value); }
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFooMessage(global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.FooMessage;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFooMessage(global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.fooCase_ == FooOneofCase.FooMessage &&
+ result.FooMessage != global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestRequiredOneof.Types.NestedMessage.CreateBuilder(result.FooMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.fooCase_ = FooOneofCase.FooMessage;
+ return this;
+ }
+ public Builder ClearFooMessage() {
+ if (result.fooCase_ == FooOneofCase.FooMessage) {
+ PrepareBuilder();
+ result.fooCase_ = FooOneofCase.None;
+ result.foo_ = null;
+ }
+ return this;
+ }
+
+ public FooOneofCase FooCase {
+ get { return result.fooCase_; }
+ }
+ public Builder ClearFoo() {
+ PrepareBuilder();
+ result.foo_ = null;
+ result.fooCase_ = FooOneofCase.None;
+ return this;
+ }
+ }
+ static TestRequiredOneof() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestPackedTypes : pb::GeneratedMessage<TestPackedTypes, TestPackedTypes.Builder> {
+ private TestPackedTypes() { }
+ private static readonly TestPackedTypes defaultInstance = new TestPackedTypes().MakeReadOnly();
+ private static readonly string[] _testPackedTypesFieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
+ private static readonly uint[] _testPackedTypesFieldTags = new uint[] { 818, 810, 826, 770, 778, 802, 722, 730, 786, 794, 754, 762, 738, 746 };
+ public static TestPackedTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestPackedTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestPackedTypes, TestPackedTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable; }
+ }
+
+ public const int PackedInt32FieldNumber = 90;
+ private int packedInt32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedInt32List {
+ get { return pbc::Lists.AsReadOnly(packedInt32_); }
+ }
+ public int PackedInt32Count {
+ get { return packedInt32_.Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return packedInt32_[index];
+ }
+
+ public const int PackedInt64FieldNumber = 91;
+ private int packedInt64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedInt64List {
+ get { return pbc::Lists.AsReadOnly(packedInt64_); }
+ }
+ public int PackedInt64Count {
+ get { return packedInt64_.Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return packedInt64_[index];
+ }
+
+ public const int PackedUint32FieldNumber = 92;
+ private int packedUint32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedUint32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> PackedUint32List {
+ get { return pbc::Lists.AsReadOnly(packedUint32_); }
+ }
+ public int PackedUint32Count {
+ get { return packedUint32_.Count; }
+ }
+ public uint GetPackedUint32(int index) {
+ return packedUint32_[index];
+ }
+
+ public const int PackedUint64FieldNumber = 93;
+ private int packedUint64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> PackedUint64List {
+ get { return pbc::Lists.AsReadOnly(packedUint64_); }
+ }
+ public int PackedUint64Count {
+ get { return packedUint64_.Count; }
+ }
+ public ulong GetPackedUint64(int index) {
+ return packedUint64_[index];
+ }
+
+ public const int PackedSint32FieldNumber = 94;
+ private int packedSint32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSint32List {
+ get { return pbc::Lists.AsReadOnly(packedSint32_); }
+ }
+ public int PackedSint32Count {
+ get { return packedSint32_.Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return packedSint32_[index];
+ }
+
+ public const int PackedSint64FieldNumber = 95;
+ private int packedSint64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSint64List {
+ get { return pbc::Lists.AsReadOnly(packedSint64_); }
+ }
+ public int PackedSint64Count {
+ get { return packedSint64_.Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return packedSint64_[index];
+ }
+
+ public const int PackedFixed32FieldNumber = 96;
+ private int packedFixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> PackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(packedFixed32_); }
+ }
+ public int PackedFixed32Count {
+ get { return packedFixed32_.Count; }
+ }
+ public uint GetPackedFixed32(int index) {
+ return packedFixed32_[index];
+ }
+
+ public const int PackedFixed64FieldNumber = 97;
+ private int packedFixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> PackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(packedFixed64_); }
+ }
+ public int PackedFixed64Count {
+ get { return packedFixed64_.Count; }
+ }
+ public ulong GetPackedFixed64(int index) {
+ return packedFixed64_[index];
+ }
+
+ public const int PackedSfixed32FieldNumber = 98;
+ private int packedSfixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed32_); }
+ }
+ public int PackedSfixed32Count {
+ get { return packedSfixed32_.Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return packedSfixed32_[index];
+ }
+
+ public const int PackedSfixed64FieldNumber = 99;
+ private int packedSfixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed64_); }
+ }
+ public int PackedSfixed64Count {
+ get { return packedSfixed64_.Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return packedSfixed64_[index];
+ }
+
+ public const int PackedFloatFieldNumber = 100;
+ private int packedFloatMemoizedSerializedSize;
+ private pbc::PopsicleList<float> packedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> PackedFloatList {
+ get { return pbc::Lists.AsReadOnly(packedFloat_); }
+ }
+ public int PackedFloatCount {
+ get { return packedFloat_.Count; }
+ }
+ public float GetPackedFloat(int index) {
+ return packedFloat_[index];
+ }
+
+ public const int PackedDoubleFieldNumber = 101;
+ private int packedDoubleMemoizedSerializedSize;
+ private pbc::PopsicleList<double> packedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> PackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(packedDouble_); }
+ }
+ public int PackedDoubleCount {
+ get { return packedDouble_.Count; }
+ }
+ public double GetPackedDouble(int index) {
+ return packedDouble_[index];
+ }
+
+ public const int PackedBoolFieldNumber = 102;
+ private int packedBoolMemoizedSerializedSize;
+ private pbc::PopsicleList<bool> packedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> PackedBoolList {
+ get { return pbc::Lists.AsReadOnly(packedBool_); }
+ }
+ public int PackedBoolCount {
+ get { return packedBool_.Count; }
+ }
+ public bool GetPackedBool(int index) {
+ return packedBool_[index];
+ }
+
+ public const int PackedEnumFieldNumber = 103;
+ private int packedEnumMemoizedSerializedSize;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> packedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> PackedEnumList {
+ get { return pbc::Lists.AsReadOnly(packedEnum_); }
+ }
+ public int PackedEnumCount {
+ get { return packedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetPackedEnum(int index) {
+ return packedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testPackedTypesFieldNames;
+ if (packedInt32_.Count > 0) {
+ output.WritePackedInt32Array(90, field_names[6], packedInt32MemoizedSerializedSize, packedInt32_);
+ }
+ if (packedInt64_.Count > 0) {
+ output.WritePackedInt64Array(91, field_names[7], packedInt64MemoizedSerializedSize, packedInt64_);
+ }
+ if (packedUint32_.Count > 0) {
+ output.WritePackedUInt32Array(92, field_names[12], packedUint32MemoizedSerializedSize, packedUint32_);
+ }
+ if (packedUint64_.Count > 0) {
+ output.WritePackedUInt64Array(93, field_names[13], packedUint64MemoizedSerializedSize, packedUint64_);
+ }
+ if (packedSint32_.Count > 0) {
+ output.WritePackedSInt32Array(94, field_names[10], packedSint32MemoizedSerializedSize, packedSint32_);
+ }
+ if (packedSint64_.Count > 0) {
+ output.WritePackedSInt64Array(95, field_names[11], packedSint64MemoizedSerializedSize, packedSint64_);
+ }
+ if (packedFixed32_.Count > 0) {
+ output.WritePackedFixed32Array(96, field_names[3], packedFixed32MemoizedSerializedSize, packedFixed32_);
+ }
+ if (packedFixed64_.Count > 0) {
+ output.WritePackedFixed64Array(97, field_names[4], packedFixed64MemoizedSerializedSize, packedFixed64_);
+ }
+ if (packedSfixed32_.Count > 0) {
+ output.WritePackedSFixed32Array(98, field_names[8], packedSfixed32MemoizedSerializedSize, packedSfixed32_);
+ }
+ if (packedSfixed64_.Count > 0) {
+ output.WritePackedSFixed64Array(99, field_names[9], packedSfixed64MemoizedSerializedSize, packedSfixed64_);
+ }
+ if (packedFloat_.Count > 0) {
+ output.WritePackedFloatArray(100, field_names[5], packedFloatMemoizedSerializedSize, packedFloat_);
+ }
+ if (packedDouble_.Count > 0) {
+ output.WritePackedDoubleArray(101, field_names[1], packedDoubleMemoizedSerializedSize, packedDouble_);
+ }
+ if (packedBool_.Count > 0) {
+ output.WritePackedBoolArray(102, field_names[0], packedBoolMemoizedSerializedSize, packedBool_);
+ }
+ if (packedEnum_.Count > 0) {
+ output.WritePackedEnumArray(103, field_names[2], packedEnumMemoizedSerializedSize, packedEnum_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in PackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in PackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in PackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFixed32_.Count;
+ size += dataSize;
+ if (packedFixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedFixed64_.Count;
+ size += dataSize;
+ if (packedFixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedSfixed32_.Count;
+ size += dataSize;
+ if (packedSfixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedSfixed64_.Count;
+ size += dataSize;
+ if (packedSfixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFloat_.Count;
+ size += dataSize;
+ if (packedFloat_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFloatMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedDouble_.Count;
+ size += dataSize;
+ if (packedDouble_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedDoubleMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * packedBool_.Count;
+ size += dataSize;
+ if (packedBool_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedBoolMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ if (packedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in packedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2;
+ size += pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ packedEnumMemoizedSerializedSize = dataSize;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestPackedTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestPackedTypes MakeReadOnly() {
+ packedInt32_.MakeReadOnly();
+ packedInt64_.MakeReadOnly();
+ packedUint32_.MakeReadOnly();
+ packedUint64_.MakeReadOnly();
+ packedSint32_.MakeReadOnly();
+ packedSint64_.MakeReadOnly();
+ packedFixed32_.MakeReadOnly();
+ packedFixed64_.MakeReadOnly();
+ packedSfixed32_.MakeReadOnly();
+ packedSfixed64_.MakeReadOnly();
+ packedFloat_.MakeReadOnly();
+ packedDouble_.MakeReadOnly();
+ packedBool_.MakeReadOnly();
+ packedEnum_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestPackedTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestPackedTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestPackedTypes result;
+
+ private TestPackedTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestPackedTypes original = result;
+ result = new TestPackedTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestPackedTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Descriptor; }
+ }
+
+ public override TestPackedTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.DefaultInstance; }
+ }
+
+ public override TestPackedTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestPackedTypes) {
+ return MergeFrom((TestPackedTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.packedInt32_.Count != 0) {
+ result.packedInt32_.Add(other.packedInt32_);
+ }
+ if (other.packedInt64_.Count != 0) {
+ result.packedInt64_.Add(other.packedInt64_);
+ }
+ if (other.packedUint32_.Count != 0) {
+ result.packedUint32_.Add(other.packedUint32_);
+ }
+ if (other.packedUint64_.Count != 0) {
+ result.packedUint64_.Add(other.packedUint64_);
+ }
+ if (other.packedSint32_.Count != 0) {
+ result.packedSint32_.Add(other.packedSint32_);
+ }
+ if (other.packedSint64_.Count != 0) {
+ result.packedSint64_.Add(other.packedSint64_);
+ }
+ if (other.packedFixed32_.Count != 0) {
+ result.packedFixed32_.Add(other.packedFixed32_);
+ }
+ if (other.packedFixed64_.Count != 0) {
+ result.packedFixed64_.Add(other.packedFixed64_);
+ }
+ if (other.packedSfixed32_.Count != 0) {
+ result.packedSfixed32_.Add(other.packedSfixed32_);
+ }
+ if (other.packedSfixed64_.Count != 0) {
+ result.packedSfixed64_.Add(other.packedSfixed64_);
+ }
+ if (other.packedFloat_.Count != 0) {
+ result.packedFloat_.Add(other.packedFloat_);
+ }
+ if (other.packedDouble_.Count != 0) {
+ result.packedDouble_.Add(other.packedDouble_);
+ }
+ if (other.packedBool_.Count != 0) {
+ result.packedBool_.Add(other.packedBool_);
+ }
+ if (other.packedEnum_.Count != 0) {
+ result.packedEnum_.Add(other.packedEnum_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testPackedTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testPackedTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 722:
+ case 720: {
+ input.ReadInt32Array(tag, field_name, result.packedInt32_);
+ break;
+ }
+ case 730:
+ case 728: {
+ input.ReadInt64Array(tag, field_name, result.packedInt64_);
+ break;
+ }
+ case 738:
+ case 736: {
+ input.ReadUInt32Array(tag, field_name, result.packedUint32_);
+ break;
+ }
+ case 746:
+ case 744: {
+ input.ReadUInt64Array(tag, field_name, result.packedUint64_);
+ break;
+ }
+ case 754:
+ case 752: {
+ input.ReadSInt32Array(tag, field_name, result.packedSint32_);
+ break;
+ }
+ case 762:
+ case 760: {
+ input.ReadSInt64Array(tag, field_name, result.packedSint64_);
+ break;
+ }
+ case 770:
+ case 773: {
+ input.ReadFixed32Array(tag, field_name, result.packedFixed32_);
+ break;
+ }
+ case 778:
+ case 777: {
+ input.ReadFixed64Array(tag, field_name, result.packedFixed64_);
+ break;
+ }
+ case 786:
+ case 789: {
+ input.ReadSFixed32Array(tag, field_name, result.packedSfixed32_);
+ break;
+ }
+ case 794:
+ case 793: {
+ input.ReadSFixed64Array(tag, field_name, result.packedSfixed64_);
+ break;
+ }
+ case 802:
+ case 805: {
+ input.ReadFloatArray(tag, field_name, result.packedFloat_);
+ break;
+ }
+ case 810:
+ case 809: {
+ input.ReadDoubleArray(tag, field_name, result.packedDouble_);
+ break;
+ }
+ case 818:
+ case 816: {
+ input.ReadBoolArray(tag, field_name, result.packedBool_);
+ break;
+ }
+ case 826:
+ case 824: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.packedEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(103, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> PackedInt32List {
+ get { return PrepareBuilder().packedInt32_; }
+ }
+ public int PackedInt32Count {
+ get { return result.PackedInt32Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return result.GetPackedInt32(index);
+ }
+ public Builder SetPackedInt32(int index, int value) {
+ PrepareBuilder();
+ result.packedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt32(int value) {
+ PrepareBuilder();
+ result.packedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedInt32() {
+ PrepareBuilder();
+ result.packedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedInt64List {
+ get { return PrepareBuilder().packedInt64_; }
+ }
+ public int PackedInt64Count {
+ get { return result.PackedInt64Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return result.GetPackedInt64(index);
+ }
+ public Builder SetPackedInt64(int index, long value) {
+ PrepareBuilder();
+ result.packedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt64(long value) {
+ PrepareBuilder();
+ result.packedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedInt64() {
+ PrepareBuilder();
+ result.packedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> PackedUint32List {
+ get { return PrepareBuilder().packedUint32_; }
+ }
+ public int PackedUint32Count {
+ get { return result.PackedUint32Count; }
+ }
+ public uint GetPackedUint32(int index) {
+ return result.GetPackedUint32(index);
+ }
+ public Builder SetPackedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.packedUint32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedUint32(uint value) {
+ PrepareBuilder();
+ result.packedUint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.packedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedUint32() {
+ PrepareBuilder();
+ result.packedUint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> PackedUint64List {
+ get { return PrepareBuilder().packedUint64_; }
+ }
+ public int PackedUint64Count {
+ get { return result.PackedUint64Count; }
+ }
+ public ulong GetPackedUint64(int index) {
+ return result.GetPackedUint64(index);
+ }
+ public Builder SetPackedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.packedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedUint64(ulong value) {
+ PrepareBuilder();
+ result.packedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.packedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedUint64() {
+ PrepareBuilder();
+ result.packedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSint32List {
+ get { return PrepareBuilder().packedSint32_; }
+ }
+ public int PackedSint32Count {
+ get { return result.PackedSint32Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return result.GetPackedSint32(index);
+ }
+ public Builder SetPackedSint32(int index, int value) {
+ PrepareBuilder();
+ result.packedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint32(int value) {
+ PrepareBuilder();
+ result.packedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSint32() {
+ PrepareBuilder();
+ result.packedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSint64List {
+ get { return PrepareBuilder().packedSint64_; }
+ }
+ public int PackedSint64Count {
+ get { return result.PackedSint64Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return result.GetPackedSint64(index);
+ }
+ public Builder SetPackedSint64(int index, long value) {
+ PrepareBuilder();
+ result.packedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint64(long value) {
+ PrepareBuilder();
+ result.packedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSint64() {
+ PrepareBuilder();
+ result.packedSint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> PackedFixed32List {
+ get { return PrepareBuilder().packedFixed32_; }
+ }
+ public int PackedFixed32Count {
+ get { return result.PackedFixed32Count; }
+ }
+ public uint GetPackedFixed32(int index) {
+ return result.GetPackedFixed32(index);
+ }
+ public Builder SetPackedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.packedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFixed32(uint value) {
+ PrepareBuilder();
+ result.packedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.packedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFixed32() {
+ PrepareBuilder();
+ result.packedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> PackedFixed64List {
+ get { return PrepareBuilder().packedFixed64_; }
+ }
+ public int PackedFixed64Count {
+ get { return result.PackedFixed64Count; }
+ }
+ public ulong GetPackedFixed64(int index) {
+ return result.GetPackedFixed64(index);
+ }
+ public Builder SetPackedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.packedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFixed64(ulong value) {
+ PrepareBuilder();
+ result.packedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.packedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFixed64() {
+ PrepareBuilder();
+ result.packedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSfixed32List {
+ get { return PrepareBuilder().packedSfixed32_; }
+ }
+ public int PackedSfixed32Count {
+ get { return result.PackedSfixed32Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return result.GetPackedSfixed32(index);
+ }
+ public Builder SetPackedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.packedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed32(int value) {
+ PrepareBuilder();
+ result.packedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSfixed32() {
+ PrepareBuilder();
+ result.packedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSfixed64List {
+ get { return PrepareBuilder().packedSfixed64_; }
+ }
+ public int PackedSfixed64Count {
+ get { return result.PackedSfixed64Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return result.GetPackedSfixed64(index);
+ }
+ public Builder SetPackedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.packedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed64(long value) {
+ PrepareBuilder();
+ result.packedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSfixed64() {
+ PrepareBuilder();
+ result.packedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> PackedFloatList {
+ get { return PrepareBuilder().packedFloat_; }
+ }
+ public int PackedFloatCount {
+ get { return result.PackedFloatCount; }
+ }
+ public float GetPackedFloat(int index) {
+ return result.GetPackedFloat(index);
+ }
+ public Builder SetPackedFloat(int index, float value) {
+ PrepareBuilder();
+ result.packedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFloat(float value) {
+ PrepareBuilder();
+ result.packedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.packedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFloat() {
+ PrepareBuilder();
+ result.packedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> PackedDoubleList {
+ get { return PrepareBuilder().packedDouble_; }
+ }
+ public int PackedDoubleCount {
+ get { return result.PackedDoubleCount; }
+ }
+ public double GetPackedDouble(int index) {
+ return result.GetPackedDouble(index);
+ }
+ public Builder SetPackedDouble(int index, double value) {
+ PrepareBuilder();
+ result.packedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddPackedDouble(double value) {
+ PrepareBuilder();
+ result.packedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.packedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedDouble() {
+ PrepareBuilder();
+ result.packedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> PackedBoolList {
+ get { return PrepareBuilder().packedBool_; }
+ }
+ public int PackedBoolCount {
+ get { return result.PackedBoolCount; }
+ }
+ public bool GetPackedBool(int index) {
+ return result.GetPackedBool(index);
+ }
+ public Builder SetPackedBool(int index, bool value) {
+ PrepareBuilder();
+ result.packedBool_[index] = value;
+ return this;
+ }
+ public Builder AddPackedBool(bool value) {
+ PrepareBuilder();
+ result.packedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.packedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedBool() {
+ PrepareBuilder();
+ result.packedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> PackedEnumList {
+ get { return PrepareBuilder().packedEnum_; }
+ }
+ public int PackedEnumCount {
+ get { return result.PackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetPackedEnum(int index) {
+ return result.GetPackedEnum(index);
+ }
+ public Builder SetPackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.packedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddPackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.packedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.packedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedEnum() {
+ PrepareBuilder();
+ result.packedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestPackedTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestUnpackedTypes : pb::GeneratedMessage<TestUnpackedTypes, TestUnpackedTypes.Builder> {
+ private TestUnpackedTypes() { }
+ private static readonly TestUnpackedTypes defaultInstance = new TestUnpackedTypes().MakeReadOnly();
+ private static readonly string[] _testUnpackedTypesFieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
+ private static readonly uint[] _testUnpackedTypesFieldTags = new uint[] { 816, 809, 824, 773, 777, 805, 720, 728, 789, 793, 752, 760, 736, 744 };
+ public static TestUnpackedTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestUnpackedTypes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestUnpackedTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestUnpackedTypes, TestUnpackedTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable; }
+ }
+
+ public const int UnpackedInt32FieldNumber = 90;
+ private pbc::PopsicleList<int> unpackedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedInt32List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt32_); }
+ }
+ public int UnpackedInt32Count {
+ get { return unpackedInt32_.Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return unpackedInt32_[index];
+ }
+
+ public const int UnpackedInt64FieldNumber = 91;
+ private pbc::PopsicleList<long> unpackedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedInt64List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt64_); }
+ }
+ public int UnpackedInt64Count {
+ get { return unpackedInt64_.Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return unpackedInt64_[index];
+ }
+
+ public const int UnpackedUint32FieldNumber = 92;
+ private pbc::PopsicleList<uint> unpackedUint32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> UnpackedUint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint32_); }
+ }
+ public int UnpackedUint32Count {
+ get { return unpackedUint32_.Count; }
+ }
+ public uint GetUnpackedUint32(int index) {
+ return unpackedUint32_[index];
+ }
+
+ public const int UnpackedUint64FieldNumber = 93;
+ private pbc::PopsicleList<ulong> unpackedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> UnpackedUint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint64_); }
+ }
+ public int UnpackedUint64Count {
+ get { return unpackedUint64_.Count; }
+ }
+ public ulong GetUnpackedUint64(int index) {
+ return unpackedUint64_[index];
+ }
+
+ public const int UnpackedSint32FieldNumber = 94;
+ private pbc::PopsicleList<int> unpackedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint32_); }
+ }
+ public int UnpackedSint32Count {
+ get { return unpackedSint32_.Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return unpackedSint32_[index];
+ }
+
+ public const int UnpackedSint64FieldNumber = 95;
+ private pbc::PopsicleList<long> unpackedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint64_); }
+ }
+ public int UnpackedSint64Count {
+ get { return unpackedSint64_.Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return unpackedSint64_[index];
+ }
+
+ public const int UnpackedFixed32FieldNumber = 96;
+ private pbc::PopsicleList<uint> unpackedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> UnpackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed32_); }
+ }
+ public int UnpackedFixed32Count {
+ get { return unpackedFixed32_.Count; }
+ }
+ public uint GetUnpackedFixed32(int index) {
+ return unpackedFixed32_[index];
+ }
+
+ public const int UnpackedFixed64FieldNumber = 97;
+ private pbc::PopsicleList<ulong> unpackedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> UnpackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed64_); }
+ }
+ public int UnpackedFixed64Count {
+ get { return unpackedFixed64_.Count; }
+ }
+ public ulong GetUnpackedFixed64(int index) {
+ return unpackedFixed64_[index];
+ }
+
+ public const int UnpackedSfixed32FieldNumber = 98;
+ private pbc::PopsicleList<int> unpackedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed32_); }
+ }
+ public int UnpackedSfixed32Count {
+ get { return unpackedSfixed32_.Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return unpackedSfixed32_[index];
+ }
+
+ public const int UnpackedSfixed64FieldNumber = 99;
+ private pbc::PopsicleList<long> unpackedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed64_); }
+ }
+ public int UnpackedSfixed64Count {
+ get { return unpackedSfixed64_.Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return unpackedSfixed64_[index];
+ }
+
+ public const int UnpackedFloatFieldNumber = 100;
+ private pbc::PopsicleList<float> unpackedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> UnpackedFloatList {
+ get { return pbc::Lists.AsReadOnly(unpackedFloat_); }
+ }
+ public int UnpackedFloatCount {
+ get { return unpackedFloat_.Count; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return unpackedFloat_[index];
+ }
+
+ public const int UnpackedDoubleFieldNumber = 101;
+ private pbc::PopsicleList<double> unpackedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> UnpackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(unpackedDouble_); }
+ }
+ public int UnpackedDoubleCount {
+ get { return unpackedDouble_.Count; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return unpackedDouble_[index];
+ }
+
+ public const int UnpackedBoolFieldNumber = 102;
+ private pbc::PopsicleList<bool> unpackedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> UnpackedBoolList {
+ get { return pbc::Lists.AsReadOnly(unpackedBool_); }
+ }
+ public int UnpackedBoolCount {
+ get { return unpackedBool_.Count; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return unpackedBool_[index];
+ }
+
+ public const int UnpackedEnumFieldNumber = 103;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> unpackedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> UnpackedEnumList {
+ get { return pbc::Lists.AsReadOnly(unpackedEnum_); }
+ }
+ public int UnpackedEnumCount {
+ get { return unpackedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetUnpackedEnum(int index) {
+ return unpackedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testUnpackedTypesFieldNames;
+ if (unpackedInt32_.Count > 0) {
+ output.WriteInt32Array(90, field_names[6], unpackedInt32_);
+ }
+ if (unpackedInt64_.Count > 0) {
+ output.WriteInt64Array(91, field_names[7], unpackedInt64_);
+ }
+ if (unpackedUint32_.Count > 0) {
+ output.WriteUInt32Array(92, field_names[12], unpackedUint32_);
+ }
+ if (unpackedUint64_.Count > 0) {
+ output.WriteUInt64Array(93, field_names[13], unpackedUint64_);
+ }
+ if (unpackedSint32_.Count > 0) {
+ output.WriteSInt32Array(94, field_names[10], unpackedSint32_);
+ }
+ if (unpackedSint64_.Count > 0) {
+ output.WriteSInt64Array(95, field_names[11], unpackedSint64_);
+ }
+ if (unpackedFixed32_.Count > 0) {
+ output.WriteFixed32Array(96, field_names[3], unpackedFixed32_);
+ }
+ if (unpackedFixed64_.Count > 0) {
+ output.WriteFixed64Array(97, field_names[4], unpackedFixed64_);
+ }
+ if (unpackedSfixed32_.Count > 0) {
+ output.WriteSFixed32Array(98, field_names[8], unpackedSfixed32_);
+ }
+ if (unpackedSfixed64_.Count > 0) {
+ output.WriteSFixed64Array(99, field_names[9], unpackedSfixed64_);
+ }
+ if (unpackedFloat_.Count > 0) {
+ output.WriteFloatArray(100, field_names[5], unpackedFloat_);
+ }
+ if (unpackedDouble_.Count > 0) {
+ output.WriteDoubleArray(101, field_names[1], unpackedDouble_);
+ }
+ if (unpackedBool_.Count > 0) {
+ output.WriteBoolArray(102, field_names[0], unpackedBool_);
+ }
+ if (unpackedEnum_.Count > 0) {
+ output.WriteEnumArray(103, field_names[2], unpackedEnum_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in UnpackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in UnpackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedFixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFloat_.Count;
+ size += dataSize;
+ size += 2 * unpackedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedDouble_.Count;
+ size += dataSize;
+ size += 2 * unpackedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * unpackedBool_.Count;
+ size += dataSize;
+ size += 2 * unpackedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ if (unpackedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in unpackedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * unpackedEnum_.Count;
+ }
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestUnpackedTypes MakeReadOnly() {
+ unpackedInt32_.MakeReadOnly();
+ unpackedInt64_.MakeReadOnly();
+ unpackedUint32_.MakeReadOnly();
+ unpackedUint64_.MakeReadOnly();
+ unpackedSint32_.MakeReadOnly();
+ unpackedSint64_.MakeReadOnly();
+ unpackedFixed32_.MakeReadOnly();
+ unpackedFixed64_.MakeReadOnly();
+ unpackedSfixed32_.MakeReadOnly();
+ unpackedSfixed64_.MakeReadOnly();
+ unpackedFloat_.MakeReadOnly();
+ unpackedDouble_.MakeReadOnly();
+ unpackedBool_.MakeReadOnly();
+ unpackedEnum_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestUnpackedTypes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestUnpackedTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestUnpackedTypes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestUnpackedTypes result;
+
+ private TestUnpackedTypes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestUnpackedTypes original = result;
+ result = new TestUnpackedTypes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestUnpackedTypes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Descriptor; }
+ }
+
+ public override TestUnpackedTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.DefaultInstance; }
+ }
+
+ public override TestUnpackedTypes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestUnpackedTypes) {
+ return MergeFrom((TestUnpackedTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestUnpackedTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.unpackedInt32_.Count != 0) {
+ result.unpackedInt32_.Add(other.unpackedInt32_);
+ }
+ if (other.unpackedInt64_.Count != 0) {
+ result.unpackedInt64_.Add(other.unpackedInt64_);
+ }
+ if (other.unpackedUint32_.Count != 0) {
+ result.unpackedUint32_.Add(other.unpackedUint32_);
+ }
+ if (other.unpackedUint64_.Count != 0) {
+ result.unpackedUint64_.Add(other.unpackedUint64_);
+ }
+ if (other.unpackedSint32_.Count != 0) {
+ result.unpackedSint32_.Add(other.unpackedSint32_);
+ }
+ if (other.unpackedSint64_.Count != 0) {
+ result.unpackedSint64_.Add(other.unpackedSint64_);
+ }
+ if (other.unpackedFixed32_.Count != 0) {
+ result.unpackedFixed32_.Add(other.unpackedFixed32_);
+ }
+ if (other.unpackedFixed64_.Count != 0) {
+ result.unpackedFixed64_.Add(other.unpackedFixed64_);
+ }
+ if (other.unpackedSfixed32_.Count != 0) {
+ result.unpackedSfixed32_.Add(other.unpackedSfixed32_);
+ }
+ if (other.unpackedSfixed64_.Count != 0) {
+ result.unpackedSfixed64_.Add(other.unpackedSfixed64_);
+ }
+ if (other.unpackedFloat_.Count != 0) {
+ result.unpackedFloat_.Add(other.unpackedFloat_);
+ }
+ if (other.unpackedDouble_.Count != 0) {
+ result.unpackedDouble_.Add(other.unpackedDouble_);
+ }
+ if (other.unpackedBool_.Count != 0) {
+ result.unpackedBool_.Add(other.unpackedBool_);
+ }
+ if (other.unpackedEnum_.Count != 0) {
+ result.unpackedEnum_.Add(other.unpackedEnum_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testUnpackedTypesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testUnpackedTypesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 722:
+ case 720: {
+ input.ReadInt32Array(tag, field_name, result.unpackedInt32_);
+ break;
+ }
+ case 730:
+ case 728: {
+ input.ReadInt64Array(tag, field_name, result.unpackedInt64_);
+ break;
+ }
+ case 738:
+ case 736: {
+ input.ReadUInt32Array(tag, field_name, result.unpackedUint32_);
+ break;
+ }
+ case 746:
+ case 744: {
+ input.ReadUInt64Array(tag, field_name, result.unpackedUint64_);
+ break;
+ }
+ case 754:
+ case 752: {
+ input.ReadSInt32Array(tag, field_name, result.unpackedSint32_);
+ break;
+ }
+ case 762:
+ case 760: {
+ input.ReadSInt64Array(tag, field_name, result.unpackedSint64_);
+ break;
+ }
+ case 770:
+ case 773: {
+ input.ReadFixed32Array(tag, field_name, result.unpackedFixed32_);
+ break;
+ }
+ case 778:
+ case 777: {
+ input.ReadFixed64Array(tag, field_name, result.unpackedFixed64_);
+ break;
+ }
+ case 786:
+ case 789: {
+ input.ReadSFixed32Array(tag, field_name, result.unpackedSfixed32_);
+ break;
+ }
+ case 794:
+ case 793: {
+ input.ReadSFixed64Array(tag, field_name, result.unpackedSfixed64_);
+ break;
+ }
+ case 802:
+ case 805: {
+ input.ReadFloatArray(tag, field_name, result.unpackedFloat_);
+ break;
+ }
+ case 810:
+ case 809: {
+ input.ReadDoubleArray(tag, field_name, result.unpackedDouble_);
+ break;
+ }
+ case 818:
+ case 816: {
+ input.ReadBoolArray(tag, field_name, result.unpackedBool_);
+ break;
+ }
+ case 826:
+ case 824: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>(tag, field_name, result.unpackedEnum_, out unknownItems);
+ if (unknownItems != null) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ foreach (object rawValue in unknownItems)
+ if (rawValue is int)
+ unknownFields.MergeVarintField(103, (ulong)(int)rawValue);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> UnpackedInt32List {
+ get { return PrepareBuilder().unpackedInt32_; }
+ }
+ public int UnpackedInt32Count {
+ get { return result.UnpackedInt32Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return result.GetUnpackedInt32(index);
+ }
+ public Builder SetUnpackedInt32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt32(int value) {
+ PrepareBuilder();
+ result.unpackedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedInt32() {
+ PrepareBuilder();
+ result.unpackedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedInt64List {
+ get { return PrepareBuilder().unpackedInt64_; }
+ }
+ public int UnpackedInt64Count {
+ get { return result.UnpackedInt64Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return result.GetUnpackedInt64(index);
+ }
+ public Builder SetUnpackedInt64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt64(long value) {
+ PrepareBuilder();
+ result.unpackedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedInt64() {
+ PrepareBuilder();
+ result.unpackedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> UnpackedUint32List {
+ get { return PrepareBuilder().unpackedUint32_; }
+ }
+ public int UnpackedUint32Count {
+ get { return result.UnpackedUint32Count; }
+ }
+ public uint GetUnpackedUint32(int index) {
+ return result.GetUnpackedUint32(index);
+ }
+ public Builder SetUnpackedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.unpackedUint32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedUint32(uint value) {
+ PrepareBuilder();
+ result.unpackedUint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.unpackedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedUint32() {
+ PrepareBuilder();
+ result.unpackedUint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> UnpackedUint64List {
+ get { return PrepareBuilder().unpackedUint64_; }
+ }
+ public int UnpackedUint64Count {
+ get { return result.UnpackedUint64Count; }
+ }
+ public ulong GetUnpackedUint64(int index) {
+ return result.GetUnpackedUint64(index);
+ }
+ public Builder SetUnpackedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.unpackedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedUint64(ulong value) {
+ PrepareBuilder();
+ result.unpackedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.unpackedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedUint64() {
+ PrepareBuilder();
+ result.unpackedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSint32List {
+ get { return PrepareBuilder().unpackedSint32_; }
+ }
+ public int UnpackedSint32Count {
+ get { return result.UnpackedSint32Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return result.GetUnpackedSint32(index);
+ }
+ public Builder SetUnpackedSint32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint32(int value) {
+ PrepareBuilder();
+ result.unpackedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSint32() {
+ PrepareBuilder();
+ result.unpackedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSint64List {
+ get { return PrepareBuilder().unpackedSint64_; }
+ }
+ public int UnpackedSint64Count {
+ get { return result.UnpackedSint64Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return result.GetUnpackedSint64(index);
+ }
+ public Builder SetUnpackedSint64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint64(long value) {
+ PrepareBuilder();
+ result.unpackedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSint64() {
+ PrepareBuilder();
+ result.unpackedSint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> UnpackedFixed32List {
+ get { return PrepareBuilder().unpackedFixed32_; }
+ }
+ public int UnpackedFixed32Count {
+ get { return result.UnpackedFixed32Count; }
+ }
+ public uint GetUnpackedFixed32(int index) {
+ return result.GetUnpackedFixed32(index);
+ }
+ public Builder SetUnpackedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.unpackedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFixed32(uint value) {
+ PrepareBuilder();
+ result.unpackedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.unpackedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFixed32() {
+ PrepareBuilder();
+ result.unpackedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> UnpackedFixed64List {
+ get { return PrepareBuilder().unpackedFixed64_; }
+ }
+ public int UnpackedFixed64Count {
+ get { return result.UnpackedFixed64Count; }
+ }
+ public ulong GetUnpackedFixed64(int index) {
+ return result.GetUnpackedFixed64(index);
+ }
+ public Builder SetUnpackedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.unpackedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFixed64(ulong value) {
+ PrepareBuilder();
+ result.unpackedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.unpackedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFixed64() {
+ PrepareBuilder();
+ result.unpackedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSfixed32List {
+ get { return PrepareBuilder().unpackedSfixed32_; }
+ }
+ public int UnpackedSfixed32Count {
+ get { return result.UnpackedSfixed32Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return result.GetUnpackedSfixed32(index);
+ }
+ public Builder SetUnpackedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed32(int value) {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed32() {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSfixed64List {
+ get { return PrepareBuilder().unpackedSfixed64_; }
+ }
+ public int UnpackedSfixed64Count {
+ get { return result.UnpackedSfixed64Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return result.GetUnpackedSfixed64(index);
+ }
+ public Builder SetUnpackedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed64(long value) {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed64() {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> UnpackedFloatList {
+ get { return PrepareBuilder().unpackedFloat_; }
+ }
+ public int UnpackedFloatCount {
+ get { return result.UnpackedFloatCount; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return result.GetUnpackedFloat(index);
+ }
+ public Builder SetUnpackedFloat(int index, float value) {
+ PrepareBuilder();
+ result.unpackedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFloat(float value) {
+ PrepareBuilder();
+ result.unpackedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.unpackedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFloat() {
+ PrepareBuilder();
+ result.unpackedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> UnpackedDoubleList {
+ get { return PrepareBuilder().unpackedDouble_; }
+ }
+ public int UnpackedDoubleCount {
+ get { return result.UnpackedDoubleCount; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return result.GetUnpackedDouble(index);
+ }
+ public Builder SetUnpackedDouble(int index, double value) {
+ PrepareBuilder();
+ result.unpackedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedDouble(double value) {
+ PrepareBuilder();
+ result.unpackedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.unpackedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedDouble() {
+ PrepareBuilder();
+ result.unpackedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> UnpackedBoolList {
+ get { return PrepareBuilder().unpackedBool_; }
+ }
+ public int UnpackedBoolCount {
+ get { return result.UnpackedBoolCount; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return result.GetUnpackedBool(index);
+ }
+ public Builder SetUnpackedBool(int index, bool value) {
+ PrepareBuilder();
+ result.unpackedBool_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedBool(bool value) {
+ PrepareBuilder();
+ result.unpackedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.unpackedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedBool() {
+ PrepareBuilder();
+ result.unpackedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> UnpackedEnumList {
+ get { return PrepareBuilder().unpackedEnum_; }
+ }
+ public int UnpackedEnumCount {
+ get { return result.UnpackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetUnpackedEnum(int index) {
+ return result.GetUnpackedEnum(index);
+ }
+ public Builder SetUnpackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.unpackedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.unpackedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ PrepareBuilder();
+ result.unpackedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedEnum() {
+ PrepareBuilder();
+ result.unpackedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestUnpackedTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestPackedExtensions : pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder> {
+ private TestPackedExtensions() { }
+ private static readonly TestPackedExtensions defaultInstance = new TestPackedExtensions().MakeReadOnly();
+ private static readonly string[] _testPackedExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testPackedExtensionsFieldTags = new uint[] { };
+ public static TestPackedExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestPackedExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestPackedExtensions, TestPackedExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testPackedExtensionsFieldNames;
+ pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestPackedExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestPackedExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestPackedExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestPackedExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestPackedExtensions result;
+
+ private TestPackedExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestPackedExtensions original = result;
+ result = new TestPackedExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestPackedExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Descriptor; }
+ }
+
+ public override TestPackedExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.DefaultInstance; }
+ }
+
+ public override TestPackedExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestPackedExtensions) {
+ return MergeFrom((TestPackedExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testPackedExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testPackedExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestPackedExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestUnpackedExtensions : pb::ExtendableMessage<TestUnpackedExtensions, TestUnpackedExtensions.Builder> {
+ private TestUnpackedExtensions() { }
+ private static readonly TestUnpackedExtensions defaultInstance = new TestUnpackedExtensions().MakeReadOnly();
+ private static readonly string[] _testUnpackedExtensionsFieldNames = new string[] { };
+ private static readonly uint[] _testUnpackedExtensionsFieldTags = new uint[] { };
+ public static TestUnpackedExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestUnpackedExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestUnpackedExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestUnpackedExtensions, TestUnpackedExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestUnpackedExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testUnpackedExtensionsFieldNames;
+ pb::ExtendableMessage<TestUnpackedExtensions, TestUnpackedExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestUnpackedExtensions MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestUnpackedExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestUnpackedExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestUnpackedExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestUnpackedExtensions result;
+
+ private TestUnpackedExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestUnpackedExtensions original = result;
+ result = new TestUnpackedExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestUnpackedExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.Descriptor; }
+ }
+
+ public override TestUnpackedExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.DefaultInstance; }
+ }
+
+ public override TestUnpackedExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestUnpackedExtensions) {
+ return MergeFrom((TestUnpackedExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestUnpackedExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testUnpackedExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testUnpackedExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static TestUnpackedExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestDynamicExtensions : pb::GeneratedMessage<TestDynamicExtensions, TestDynamicExtensions.Builder> {
+ private TestDynamicExtensions() { }
+ private static readonly TestDynamicExtensions defaultInstance = new TestDynamicExtensions().MakeReadOnly();
+ private static readonly string[] _testDynamicExtensionsFieldNames = new string[] { "dynamic_enum_extension", "dynamic_message_extension", "enum_extension", "message_extension", "packed_extension", "repeated_extension", "scalar_extension" };
+ private static readonly uint[] _testDynamicExtensionsFieldTags = new uint[] { 16016, 16034, 16008, 16026, 16050, 16042, 16005 };
+ public static TestDynamicExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDynamicExtensions DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestDynamicExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDynamicExtensions, TestDynamicExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum DynamicEnumType {
+ DYNAMIC_FOO = 2200,
+ DYNAMIC_BAR = 2201,
+ DYNAMIC_BAZ = 2202,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class DynamicMessageType : pb::GeneratedMessage<DynamicMessageType, DynamicMessageType.Builder> {
+ private DynamicMessageType() { }
+ private static readonly DynamicMessageType defaultInstance = new DynamicMessageType().MakeReadOnly();
+ private static readonly string[] _dynamicMessageTypeFieldNames = new string[] { "dynamic_field" };
+ private static readonly uint[] _dynamicMessageTypeFieldTags = new uint[] { 16800 };
+ public static DynamicMessageType DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DynamicMessageType DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override DynamicMessageType ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DynamicMessageType, DynamicMessageType.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable; }
+ }
+
+ public const int DynamicFieldFieldNumber = 2100;
+ private bool hasDynamicField;
+ private int dynamicField_;
+ public bool HasDynamicField {
+ get { return hasDynamicField; }
+ }
+ public int DynamicField {
+ get { return dynamicField_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _dynamicMessageTypeFieldNames;
+ if (hasDynamicField) {
+ output.WriteInt32(2100, field_names[0], DynamicField);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasDynamicField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2100, DynamicField);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static DynamicMessageType ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DynamicMessageType ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private DynamicMessageType MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DynamicMessageType prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<DynamicMessageType, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(DynamicMessageType cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private DynamicMessageType result;
+
+ private DynamicMessageType PrepareBuilder() {
+ if (resultIsReadOnly) {
+ DynamicMessageType original = result;
+ result = new DynamicMessageType();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override DynamicMessageType MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Descriptor; }
+ }
+
+ public override DynamicMessageType DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance; }
+ }
+
+ public override DynamicMessageType BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DynamicMessageType) {
+ return MergeFrom((DynamicMessageType) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DynamicMessageType other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasDynamicField) {
+ DynamicField = other.DynamicField;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_dynamicMessageTypeFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _dynamicMessageTypeFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 16800: {
+ result.hasDynamicField = input.ReadInt32(ref result.dynamicField_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasDynamicField {
+ get { return result.hasDynamicField; }
+ }
+ public int DynamicField {
+ get { return result.DynamicField; }
+ set { SetDynamicField(value); }
+ }
+ public Builder SetDynamicField(int value) {
+ PrepareBuilder();
+ result.hasDynamicField = true;
+ result.dynamicField_ = value;
+ return this;
+ }
+ public Builder ClearDynamicField() {
+ PrepareBuilder();
+ result.hasDynamicField = false;
+ result.dynamicField_ = 0;
+ return this;
+ }
+ }
+ static DynamicMessageType() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int ScalarExtensionFieldNumber = 2000;
+ private bool hasScalarExtension;
+ private uint scalarExtension_;
+ public bool HasScalarExtension {
+ get { return hasScalarExtension; }
+ }
+ public uint ScalarExtension {
+ get { return scalarExtension_; }
+ }
+
+ public const int EnumExtensionFieldNumber = 2001;
+ private bool hasEnumExtension;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum enumExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasEnumExtension {
+ get { return hasEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {
+ get { return enumExtension_; }
+ }
+
+ public const int DynamicEnumExtensionFieldNumber = 2002;
+ private bool hasDynamicEnumExtension;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType dynamicEnumExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType.DYNAMIC_FOO;
+ public bool HasDynamicEnumExtension {
+ get { return hasDynamicEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
+ get { return dynamicEnumExtension_; }
+ }
+
+ public const int MessageExtensionFieldNumber = 2003;
+ private bool hasMessageExtension;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageExtension_;
+ public bool HasMessageExtension {
+ get { return hasMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
+ get { return messageExtension_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public const int DynamicMessageExtensionFieldNumber = 2004;
+ private bool hasDynamicMessageExtension;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType dynamicMessageExtension_;
+ public bool HasDynamicMessageExtension {
+ get { return hasDynamicMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
+ get { return dynamicMessageExtension_ ?? global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance; }
+ }
+
+ public const int RepeatedExtensionFieldNumber = 2005;
+ private pbc::PopsicleList<string> repeatedExtension_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedExtensionList {
+ get { return pbc::Lists.AsReadOnly(repeatedExtension_); }
+ }
+ public int RepeatedExtensionCount {
+ get { return repeatedExtension_.Count; }
+ }
+ public string GetRepeatedExtension(int index) {
+ return repeatedExtension_[index];
+ }
+
+ public const int PackedExtensionFieldNumber = 2006;
+ private int packedExtensionMemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedExtension_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedExtensionList {
+ get { return pbc::Lists.AsReadOnly(packedExtension_); }
+ }
+ public int PackedExtensionCount {
+ get { return packedExtension_.Count; }
+ }
+ public int GetPackedExtension(int index) {
+ return packedExtension_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testDynamicExtensionsFieldNames;
+ if (hasScalarExtension) {
+ output.WriteFixed32(2000, field_names[6], ScalarExtension);
+ }
+ if (hasEnumExtension) {
+ output.WriteEnum(2001, field_names[2], (int) EnumExtension, EnumExtension);
+ }
+ if (hasDynamicEnumExtension) {
+ output.WriteEnum(2002, field_names[0], (int) DynamicEnumExtension, DynamicEnumExtension);
+ }
+ if (hasMessageExtension) {
+ output.WriteMessage(2003, field_names[3], MessageExtension);
+ }
+ if (hasDynamicMessageExtension) {
+ output.WriteMessage(2004, field_names[1], DynamicMessageExtension);
+ }
+ if (repeatedExtension_.Count > 0) {
+ output.WriteStringArray(2005, field_names[5], repeatedExtension_);
+ }
+ if (packedExtension_.Count > 0) {
+ output.WritePackedSInt32Array(2006, field_names[4], packedExtensionMemoizedSerializedSize, packedExtension_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasScalarExtension) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(2000, ScalarExtension);
+ }
+ if (hasEnumExtension) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2001, (int) EnumExtension);
+ }
+ if (hasDynamicEnumExtension) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2002, (int) DynamicEnumExtension);
+ }
+ if (hasMessageExtension) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2003, MessageExtension);
+ }
+ if (hasDynamicMessageExtension) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2004, DynamicMessageExtension);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedExtensionList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedExtension_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedExtensionList) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedExtension_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedExtensionMemoizedSerializedSize = dataSize;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestDynamicExtensions MakeReadOnly() {
+ repeatedExtension_.MakeReadOnly();
+ packedExtension_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDynamicExtensions prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDynamicExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestDynamicExtensions cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestDynamicExtensions result;
+
+ private TestDynamicExtensions PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestDynamicExtensions original = result;
+ result = new TestDynamicExtensions();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestDynamicExtensions MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Descriptor; }
+ }
+
+ public override TestDynamicExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.DefaultInstance; }
+ }
+
+ public override TestDynamicExtensions BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDynamicExtensions) {
+ return MergeFrom((TestDynamicExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDynamicExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasScalarExtension) {
+ ScalarExtension = other.ScalarExtension;
+ }
+ if (other.HasEnumExtension) {
+ EnumExtension = other.EnumExtension;
+ }
+ if (other.HasDynamicEnumExtension) {
+ DynamicEnumExtension = other.DynamicEnumExtension;
+ }
+ if (other.HasMessageExtension) {
+ MergeMessageExtension(other.MessageExtension);
+ }
+ if (other.HasDynamicMessageExtension) {
+ MergeDynamicMessageExtension(other.DynamicMessageExtension);
+ }
+ if (other.repeatedExtension_.Count != 0) {
+ result.repeatedExtension_.Add(other.repeatedExtension_);
+ }
+ if (other.packedExtension_.Count != 0) {
+ result.packedExtension_.Add(other.packedExtension_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testDynamicExtensionsFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testDynamicExtensionsFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 16005: {
+ result.hasScalarExtension = input.ReadFixed32(ref result.scalarExtension_);
+ break;
+ }
+ case 16008: {
+ object unknown;
+ if(input.ReadEnum(ref result.enumExtension_, out unknown)) {
+ result.hasEnumExtension = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2001, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 16016: {
+ object unknown;
+ if(input.ReadEnum(ref result.dynamicEnumExtension_, out unknown)) {
+ result.hasDynamicEnumExtension = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2002, (ulong)(int)unknown);
+ }
+ break;
+ }
+ case 16026: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (result.hasMessageExtension) {
+ subBuilder.MergeFrom(MessageExtension);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageExtension = subBuilder.BuildPartial();
+ break;
+ }
+ case 16034: {
+ global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder();
+ if (result.hasDynamicMessageExtension) {
+ subBuilder.MergeFrom(DynamicMessageExtension);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ DynamicMessageExtension = subBuilder.BuildPartial();
+ break;
+ }
+ case 16042: {
+ input.ReadStringArray(tag, field_name, result.repeatedExtension_);
+ break;
+ }
+ case 16050:
+ case 16048: {
+ input.ReadSInt32Array(tag, field_name, result.packedExtension_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasScalarExtension {
+ get { return result.hasScalarExtension; }
+ }
+ public uint ScalarExtension {
+ get { return result.ScalarExtension; }
+ set { SetScalarExtension(value); }
+ }
+ public Builder SetScalarExtension(uint value) {
+ PrepareBuilder();
+ result.hasScalarExtension = true;
+ result.scalarExtension_ = value;
+ return this;
+ }
+ public Builder ClearScalarExtension() {
+ PrepareBuilder();
+ result.hasScalarExtension = false;
+ result.scalarExtension_ = 0;
+ return this;
+ }
+
+ public bool HasEnumExtension {
+ get { return result.hasEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {
+ get { return result.EnumExtension; }
+ set { SetEnumExtension(value); }
+ }
+ public Builder SetEnumExtension(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ PrepareBuilder();
+ result.hasEnumExtension = true;
+ result.enumExtension_ = value;
+ return this;
+ }
+ public Builder ClearEnumExtension() {
+ PrepareBuilder();
+ result.hasEnumExtension = false;
+ result.enumExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasDynamicEnumExtension {
+ get { return result.hasDynamicEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
+ get { return result.DynamicEnumExtension; }
+ set { SetDynamicEnumExtension(value); }
+ }
+ public Builder SetDynamicEnumExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType value) {
+ PrepareBuilder();
+ result.hasDynamicEnumExtension = true;
+ result.dynamicEnumExtension_ = value;
+ return this;
+ }
+ public Builder ClearDynamicEnumExtension() {
+ PrepareBuilder();
+ result.hasDynamicEnumExtension = false;
+ result.dynamicEnumExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType.DYNAMIC_FOO;
+ return this;
+ }
+
+ public bool HasMessageExtension {
+ get { return result.hasMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
+ get { return result.MessageExtension; }
+ set { SetMessageExtension(value); }
+ }
+ public Builder SetMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMessageExtension = true;
+ result.messageExtension_ = value;
+ return this;
+ }
+ public Builder SetMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMessageExtension = true;
+ result.messageExtension_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMessageExtension &&
+ result.messageExtension_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageExtension_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageExtension_ = value;
+ }
+ result.hasMessageExtension = true;
+ return this;
+ }
+ public Builder ClearMessageExtension() {
+ PrepareBuilder();
+ result.hasMessageExtension = false;
+ result.messageExtension_ = null;
+ return this;
+ }
+
+ public bool HasDynamicMessageExtension {
+ get { return result.hasDynamicMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
+ get { return result.DynamicMessageExtension; }
+ set { SetDynamicMessageExtension(value); }
+ }
+ public Builder SetDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDynamicMessageExtension = true;
+ result.dynamicMessageExtension_ = value;
+ return this;
+ }
+ public Builder SetDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasDynamicMessageExtension = true;
+ result.dynamicMessageExtension_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasDynamicMessageExtension &&
+ result.dynamicMessageExtension_ != global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) {
+ result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder(result.dynamicMessageExtension_).MergeFrom(value).BuildPartial();
+ } else {
+ result.dynamicMessageExtension_ = value;
+ }
+ result.hasDynamicMessageExtension = true;
+ return this;
+ }
+ public Builder ClearDynamicMessageExtension() {
+ PrepareBuilder();
+ result.hasDynamicMessageExtension = false;
+ result.dynamicMessageExtension_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedExtensionList {
+ get { return PrepareBuilder().repeatedExtension_; }
+ }
+ public int RepeatedExtensionCount {
+ get { return result.RepeatedExtensionCount; }
+ }
+ public string GetRepeatedExtension(int index) {
+ return result.GetRepeatedExtension(index);
+ }
+ public Builder SetRepeatedExtension(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedExtension_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedExtension(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedExtension_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedExtension(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedExtension_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedExtension() {
+ PrepareBuilder();
+ result.repeatedExtension_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedExtensionList {
+ get { return PrepareBuilder().packedExtension_; }
+ }
+ public int PackedExtensionCount {
+ get { return result.PackedExtensionCount; }
+ }
+ public int GetPackedExtension(int index) {
+ return result.GetPackedExtension(index);
+ }
+ public Builder SetPackedExtension(int index, int value) {
+ PrepareBuilder();
+ result.packedExtension_[index] = value;
+ return this;
+ }
+ public Builder AddPackedExtension(int value) {
+ PrepareBuilder();
+ result.packedExtension_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedExtension(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedExtension_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedExtension() {
+ PrepareBuilder();
+ result.packedExtension_.Clear();
+ return this;
+ }
+ }
+ static TestDynamicExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::GeneratedMessage<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> {
+ private TestRepeatedScalarDifferentTagSizes() { }
+ private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new TestRepeatedScalarDifferentTagSizes().MakeReadOnly();
+ private static readonly string[] _testRepeatedScalarDifferentTagSizesFieldNames = new string[] { "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_int32", "repeated_int64", "repeated_uint64" };
+ private static readonly uint[] _testRepeatedScalarDifferentTagSizesFieldTags = new uint[] { 101, 16369, 2097141, 104, 16376, 2097144 };
+ public static TestRepeatedScalarDifferentTagSizes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRepeatedScalarDifferentTagSizes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable; }
+ }
+
+ public const int RepeatedFixed32FieldNumber = 12;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedInt32FieldNumber = 13;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 2046;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 2047;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 262142;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 262143;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRepeatedScalarDifferentTagSizesFieldNames;
+ if (repeatedFixed32_.Count > 0) {
+ output.WriteFixed32Array(12, field_names[0], repeatedFixed32_);
+ }
+ if (repeatedInt32_.Count > 0) {
+ output.WriteInt32Array(13, field_names[3], repeatedInt32_);
+ }
+ if (repeatedFixed64_.Count > 0) {
+ output.WriteFixed64Array(2046, field_names[1], repeatedFixed64_);
+ }
+ if (repeatedInt64_.Count > 0) {
+ output.WriteInt64Array(2047, field_names[4], repeatedInt64_);
+ }
+ if (repeatedFloat_.Count > 0) {
+ output.WriteFloatArray(262142, field_names[2], repeatedFloat_);
+ }
+ if (repeatedUint64_.Count > 0) {
+ output.WriteUInt64Array(262143, field_names[5], repeatedUint64_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 1 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 3 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 3 * repeatedUint64_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRepeatedScalarDifferentTagSizes MakeReadOnly() {
+ repeatedFixed32_.MakeReadOnly();
+ repeatedInt32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRepeatedScalarDifferentTagSizes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRepeatedScalarDifferentTagSizes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRepeatedScalarDifferentTagSizes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRepeatedScalarDifferentTagSizes result;
+
+ private TestRepeatedScalarDifferentTagSizes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRepeatedScalarDifferentTagSizes original = result;
+ result = new TestRepeatedScalarDifferentTagSizes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRepeatedScalarDifferentTagSizes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Descriptor; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.DefaultInstance; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRepeatedScalarDifferentTagSizes) {
+ return MergeFrom((TestRepeatedScalarDifferentTagSizes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRepeatedScalarDifferentTagSizes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.repeatedFixed32_.Count != 0) {
+ result.repeatedFixed32_.Add(other.repeatedFixed32_);
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ result.repeatedInt32_.Add(other.repeatedInt32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ result.repeatedFixed64_.Add(other.repeatedFixed64_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ result.repeatedInt64_.Add(other.repeatedInt64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ result.repeatedFloat_.Add(other.repeatedFloat_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ result.repeatedUint64_.Add(other.repeatedUint64_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRepeatedScalarDifferentTagSizesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRepeatedScalarDifferentTagSizesFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 98:
+ case 101: {
+ input.ReadFixed32Array(tag, field_name, result.repeatedFixed32_);
+ break;
+ }
+ case 106:
+ case 104: {
+ input.ReadInt32Array(tag, field_name, result.repeatedInt32_);
+ break;
+ }
+ case 16370:
+ case 16369: {
+ input.ReadFixed64Array(tag, field_name, result.repeatedFixed64_);
+ break;
+ }
+ case 16378:
+ case 16376: {
+ input.ReadInt64Array(tag, field_name, result.repeatedInt64_);
+ break;
+ }
+ case 2097138:
+ case 2097141: {
+ input.ReadFloatArray(tag, field_name, result.repeatedFloat_);
+ break;
+ }
+ case 2097146:
+ case 2097144: {
+ input.ReadUInt64Array(tag, field_name, result.repeatedUint64_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return PrepareBuilder().repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed32(uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ PrepareBuilder();
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return PrepareBuilder().repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ PrepareBuilder();
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return PrepareBuilder().repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed64(ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ PrepareBuilder();
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return PrepareBuilder().repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ PrepareBuilder();
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return PrepareBuilder().repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ PrepareBuilder();
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ PrepareBuilder();
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return PrepareBuilder().repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedUint64(ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ PrepareBuilder();
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+ }
+ static TestRepeatedScalarDifferentTagSizes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestParsingMerge : pb::ExtendableMessage<TestParsingMerge, TestParsingMerge.Builder> {
+ private TestParsingMerge() { }
+ private static readonly TestParsingMerge defaultInstance = new TestParsingMerge().MakeReadOnly();
+ private static readonly string[] _testParsingMergeFieldNames = new string[] { "optional_all_types", "optionalgroup", "repeated_all_types", "repeatedgroup", "required_all_types" };
+ private static readonly uint[] _testParsingMergeFieldTags = new uint[] { 18, 83, 26, 163, 10 };
+ public static TestParsingMerge DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestParsingMerge DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestParsingMerge ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestParsingMerge, TestParsingMerge.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge__FieldAccessorTable; }
+ }
+
+ public const int OptionalExtFieldNumber = 1000;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> OptionalExt;
+ public const int RepeatedExtFieldNumber = 1001;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>> RepeatedExt;
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedFieldsGenerator : pb::GeneratedMessage<RepeatedFieldsGenerator, RepeatedFieldsGenerator.Builder> {
+ private RepeatedFieldsGenerator() { }
+ private static readonly RepeatedFieldsGenerator defaultInstance = new RepeatedFieldsGenerator().MakeReadOnly();
+ private static readonly string[] _repeatedFieldsGeneratorFieldNames = new string[] { "ext1", "ext2", "field1", "field2", "field3", "group1", "group2" };
+ private static readonly uint[] _repeatedFieldsGeneratorFieldTags = new uint[] { 8002, 8010, 10, 18, 26, 83, 163 };
+ public static RepeatedFieldsGenerator DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedFieldsGenerator DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedFieldsGenerator ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedFieldsGenerator, RepeatedFieldsGenerator.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group1 : pb::GeneratedMessage<Group1, Group1.Builder> {
+ private Group1() { }
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
+ private static readonly string[] _group1FieldNames = new string[] { "field1" };
+ private static readonly uint[] _group1FieldTags = new uint[] { 90 };
+ public static Group1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Group1, Group1.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group1__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 11;
+ private bool hasField1;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return field1_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group1FieldNames;
+ if (hasField1) {
+ output.WriteMessage(11, field_names[0], Field1);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, Field1);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Group1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group1 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Group1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group1 result;
+
+ private Group1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group1 original = result;
+ result = new Group1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Descriptor; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance; }
+ }
+
+ public override Group1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Group1) {
+ return MergeFrom((Group1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group1 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ MergeField1(other.Field1);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasField1) {
+ subBuilder.MergeFrom(Field1);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field1 = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField1 &&
+ result.field1_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.field1_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.field1_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field1_ = value;
+ }
+ result.hasField1 = true;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = null;
+ return this;
+ }
+ }
+ static Group1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group2 : pb::GeneratedMessage<Group2, Group2.Builder> {
+ private Group2() { }
+ private static readonly Group2 defaultInstance = new Group2().MakeReadOnly();
+ private static readonly string[] _group2FieldNames = new string[] { "field1" };
+ private static readonly uint[] _group2FieldTags = new uint[] { 170 };
+ public static Group2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Group2, Group2.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedFieldsGenerator_Group2__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 21;
+ private bool hasField1;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return field1_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group2FieldNames;
+ if (hasField1) {
+ output.WriteMessage(21, field_names[0], Field1);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeMessageSize(21, Field1);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Group2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group2 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Group2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group2 result;
+
+ private Group2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group2 original = result;
+ result = new Group2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Descriptor; }
+ }
+
+ public override Group2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance; }
+ }
+
+ public override Group2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Group2) {
+ return MergeFrom((Group2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ MergeField1(other.Field1);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 170: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasField1) {
+ subBuilder.MergeFrom(Field1);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field1 = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField1 &&
+ result.field1_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.field1_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.field1_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field1_ = value;
+ }
+ result.hasField1 = true;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = null;
+ return this;
+ }
+ }
+ static Group2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> field1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field1List {
+ get { return field1_; }
+ }
+ public int Field1Count {
+ get { return field1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField1(int index) {
+ return field1_[index];
+ }
+
+ public const int Field2FieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> field2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field2List {
+ get { return field2_; }
+ }
+ public int Field2Count {
+ get { return field2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField2(int index) {
+ return field2_[index];
+ }
+
+ public const int Field3FieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> field3_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field3List {
+ get { return field3_; }
+ }
+ public int Field3Count {
+ get { return field3_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField3(int index) {
+ return field3_[index];
+ }
+
+ public const int Group1FieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> group1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> Group1List {
+ get { return group1_; }
+ }
+ public int Group1Count {
+ get { return group1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 GetGroup1(int index) {
+ return group1_[index];
+ }
+
+ public const int Group2FieldNumber = 20;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> group2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> Group2List {
+ get { return group2_; }
+ }
+ public int Group2Count {
+ get { return group2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 GetGroup2(int index) {
+ return group2_[index];
+ }
+
+ public const int Ext1FieldNumber = 1000;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> ext1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext1List {
+ get { return ext1_; }
+ }
+ public int Ext1Count {
+ get { return ext1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt1(int index) {
+ return ext1_[index];
+ }
+
+ public const int Ext2FieldNumber = 1001;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> ext2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext2List {
+ get { return ext2_; }
+ }
+ public int Ext2Count {
+ get { return ext2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt2(int index) {
+ return ext2_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedFieldsGeneratorFieldNames;
+ if (field1_.Count > 0) {
+ output.WriteMessageArray(1, field_names[2], field1_);
+ }
+ if (field2_.Count > 0) {
+ output.WriteMessageArray(2, field_names[3], field2_);
+ }
+ if (field3_.Count > 0) {
+ output.WriteMessageArray(3, field_names[4], field3_);
+ }
+ if (group1_.Count > 0) {
+ output.WriteGroupArray(10, field_names[5], group1_);
+ }
+ if (group2_.Count > 0) {
+ output.WriteGroupArray(20, field_names[6], group2_);
+ }
+ if (ext1_.Count > 0) {
+ output.WriteMessageArray(1000, field_names[0], ext1_);
+ }
+ if (ext2_.Count > 0) {
+ output.WriteMessageArray(1001, field_names[1], ext2_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Field1List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Field2List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Field3List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 element in Group1List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 element in Group2List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(20, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Ext1List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1000, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in Ext2List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1001, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedFieldsGenerator MakeReadOnly() {
+ field1_.MakeReadOnly();
+ field2_.MakeReadOnly();
+ field3_.MakeReadOnly();
+ group1_.MakeReadOnly();
+ group2_.MakeReadOnly();
+ ext1_.MakeReadOnly();
+ ext2_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedFieldsGenerator prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedFieldsGenerator, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedFieldsGenerator cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedFieldsGenerator result;
+
+ private RepeatedFieldsGenerator PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedFieldsGenerator original = result;
+ result = new RepeatedFieldsGenerator();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedFieldsGenerator MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Descriptor; }
+ }
+
+ public override RepeatedFieldsGenerator DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.DefaultInstance; }
+ }
+
+ public override RepeatedFieldsGenerator BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedFieldsGenerator) {
+ return MergeFrom((RepeatedFieldsGenerator) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedFieldsGenerator other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.field1_.Count != 0) {
+ result.field1_.Add(other.field1_);
+ }
+ if (other.field2_.Count != 0) {
+ result.field2_.Add(other.field2_);
+ }
+ if (other.field3_.Count != 0) {
+ result.field3_.Add(other.field3_);
+ }
+ if (other.group1_.Count != 0) {
+ result.group1_.Add(other.group1_);
+ }
+ if (other.group2_.Count != 0) {
+ result.group2_.Add(other.group2_);
+ }
+ if (other.ext1_.Count != 0) {
+ result.ext1_.Add(other.ext1_);
+ }
+ if (other.ext2_.Count != 0) {
+ result.ext2_.Add(other.ext2_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedFieldsGeneratorFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedFieldsGeneratorFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadMessageArray(tag, field_name, result.field1_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.field2_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.field3_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 83: {
+ input.ReadGroupArray(tag, field_name, result.group1_, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 163: {
+ input.ReadGroupArray(tag, field_name, result.group2_, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 8002: {
+ input.ReadMessageArray(tag, field_name, result.ext1_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 8010: {
+ input.ReadMessageArray(tag, field_name, result.ext2_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field1List {
+ get { return PrepareBuilder().field1_; }
+ }
+ public int Field1Count {
+ get { return result.Field1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField1(int index) {
+ return result.GetField1(index);
+ }
+ public Builder SetField1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field1_[index] = value;
+ return this;
+ }
+ public Builder SetField1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field1_.Add(value);
+ return this;
+ }
+ public Builder AddField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.field1_.Add(values);
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.field1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field2List {
+ get { return PrepareBuilder().field2_; }
+ }
+ public int Field2Count {
+ get { return result.Field2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField2(int index) {
+ return result.GetField2(index);
+ }
+ public Builder SetField2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field2_[index] = value;
+ return this;
+ }
+ public Builder SetField2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field2_.Add(value);
+ return this;
+ }
+ public Builder AddField2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.field2_.Add(values);
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.field2_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Field3List {
+ get { return PrepareBuilder().field3_; }
+ }
+ public int Field3Count {
+ get { return result.Field3Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetField3(int index) {
+ return result.GetField3(index);
+ }
+ public Builder SetField3(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field3_[index] = value;
+ return this;
+ }
+ public Builder SetField3(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field3_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField3(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field3_.Add(value);
+ return this;
+ }
+ public Builder AddField3(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field3_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField3(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.field3_.Add(values);
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.field3_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> Group1List {
+ get { return PrepareBuilder().group1_; }
+ }
+ public int Group1Count {
+ get { return result.Group1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 GetGroup1(int index) {
+ return result.GetGroup1(index);
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_[index] = value;
+ return this;
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_.Add(value);
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group1> values) {
+ PrepareBuilder();
+ result.group1_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup1() {
+ PrepareBuilder();
+ result.group1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> Group2List {
+ get { return PrepareBuilder().group2_; }
+ }
+ public int Group2Count {
+ get { return result.Group2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 GetGroup2(int index) {
+ return result.GetGroup2(index);
+ }
+ public Builder SetGroup2(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group2_[index] = value;
+ return this;
+ }
+ public Builder SetGroup2(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup2(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group2_.Add(value);
+ return this;
+ }
+ public Builder AddGroup2(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedFieldsGenerator.Types.Group2> values) {
+ PrepareBuilder();
+ result.group2_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup2() {
+ PrepareBuilder();
+ result.group2_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext1List {
+ get { return PrepareBuilder().ext1_; }
+ }
+ public int Ext1Count {
+ get { return result.Ext1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt1(int index) {
+ return result.GetExt1(index);
+ }
+ public Builder SetExt1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext1_[index] = value;
+ return this;
+ }
+ public Builder SetExt1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExt1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext1_.Add(value);
+ return this;
+ }
+ public Builder AddExt1(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExt1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.ext1_.Add(values);
+ return this;
+ }
+ public Builder ClearExt1() {
+ PrepareBuilder();
+ result.ext1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> Ext2List {
+ get { return PrepareBuilder().ext2_; }
+ }
+ public int Ext2Count {
+ get { return result.Ext2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetExt2(int index) {
+ return result.GetExt2(index);
+ }
+ public Builder SetExt2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext2_[index] = value;
+ return this;
+ }
+ public Builder SetExt2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExt2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext2_.Add(value);
+ return this;
+ }
+ public Builder AddExt2(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExt2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.ext2_.Add(values);
+ return this;
+ }
+ public Builder ClearExt2() {
+ PrepareBuilder();
+ result.ext2_.Clear();
+ return this;
+ }
+ }
+ static RepeatedFieldsGenerator() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
+ private OptionalGroup() { }
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
+ private static readonly string[] _optionalGroupFieldNames = new string[] { "optional_group_all_types" };
+ private static readonly uint[] _optionalGroupFieldTags = new uint[] { 90 };
+ public static OptionalGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup, OptionalGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_OptionalGroup__FieldAccessorTable; }
+ }
+
+ public const int OptionalGroupAllTypesFieldNumber = 11;
+ private bool hasOptionalGroupAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes optionalGroupAllTypes_;
+ public bool HasOptionalGroupAllTypes {
+ get { return hasOptionalGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalGroupAllTypes {
+ get { return optionalGroupAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupFieldNames;
+ if (hasOptionalGroupAllTypes) {
+ output.WriteMessage(11, field_names[0], OptionalGroupAllTypes);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalGroupAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, OptionalGroupAllTypes);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
+
+ private OptionalGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup original = result;
+ result = new OptionalGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Descriptor; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public override OptionalGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup) {
+ return MergeFrom((OptionalGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalGroupAllTypes) {
+ MergeOptionalGroupAllTypes(other.OptionalGroupAllTypes);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasOptionalGroupAllTypes) {
+ subBuilder.MergeFrom(OptionalGroupAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalGroupAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasOptionalGroupAllTypes {
+ get { return result.hasOptionalGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalGroupAllTypes {
+ get { return result.OptionalGroupAllTypes; }
+ set { SetOptionalGroupAllTypes(value); }
+ }
+ public Builder SetOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = true;
+ result.optionalGroupAllTypes_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = true;
+ result.optionalGroupAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroupAllTypes &&
+ result.optionalGroupAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.optionalGroupAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.optionalGroupAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroupAllTypes_ = value;
+ }
+ result.hasOptionalGroupAllTypes = true;
+ return this;
+ }
+ public Builder ClearOptionalGroupAllTypes() {
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = false;
+ result.optionalGroupAllTypes_ = null;
+ return this;
+ }
+ }
+ static OptionalGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
+ private RepeatedGroup() { }
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
+ private static readonly string[] _repeatedGroupFieldNames = new string[] { "repeated_group_all_types" };
+ private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 170 };
+ public static RepeatedGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup, RepeatedGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestParsingMerge_RepeatedGroup__FieldAccessorTable; }
+ }
+
+ public const int RepeatedGroupAllTypesFieldNumber = 21;
+ private bool hasRepeatedGroupAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes repeatedGroupAllTypes_;
+ public bool HasRepeatedGroupAllTypes {
+ get { return hasRepeatedGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RepeatedGroupAllTypes {
+ get { return repeatedGroupAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupFieldNames;
+ if (hasRepeatedGroupAllTypes) {
+ output.WriteMessage(21, field_names[0], RepeatedGroupAllTypes);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRepeatedGroupAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(21, RepeatedGroupAllTypes);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
+
+ private RepeatedGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup original = result;
+ result = new RepeatedGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Descriptor; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.DefaultInstance; }
+ }
+
+ public override RepeatedGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup) {
+ return MergeFrom((RepeatedGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRepeatedGroupAllTypes) {
+ MergeRepeatedGroupAllTypes(other.RepeatedGroupAllTypes);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 170: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasRepeatedGroupAllTypes) {
+ subBuilder.MergeFrom(RepeatedGroupAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ RepeatedGroupAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasRepeatedGroupAllTypes {
+ get { return result.hasRepeatedGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RepeatedGroupAllTypes {
+ get { return result.RepeatedGroupAllTypes; }
+ set { SetRepeatedGroupAllTypes(value); }
+ }
+ public Builder SetRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = true;
+ result.repeatedGroupAllTypes_ = value;
+ return this;
+ }
+ public Builder SetRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = true;
+ result.repeatedGroupAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasRepeatedGroupAllTypes &&
+ result.repeatedGroupAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.repeatedGroupAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.repeatedGroupAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.repeatedGroupAllTypes_ = value;
+ }
+ result.hasRepeatedGroupAllTypes = true;
+ return this;
+ }
+ public Builder ClearRepeatedGroupAllTypes() {
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = false;
+ result.repeatedGroupAllTypes_ = null;
+ return this;
+ }
+ }
+ static RepeatedGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int RequiredAllTypesFieldNumber = 1;
+ private bool hasRequiredAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes requiredAllTypes_;
+ public bool HasRequiredAllTypes {
+ get { return hasRequiredAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RequiredAllTypes {
+ get { return requiredAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int OptionalAllTypesFieldNumber = 2;
+ private bool hasOptionalAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes optionalAllTypes_;
+ public bool HasOptionalAllTypes {
+ get { return hasOptionalAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalAllTypes {
+ get { return optionalAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public const int RepeatedAllTypesFieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> repeatedAllTypes_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> RepeatedAllTypesList {
+ get { return repeatedAllTypes_; }
+ }
+ public int RepeatedAllTypesCount {
+ get { return repeatedAllTypes_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetRepeatedAllTypes(int index) {
+ return repeatedAllTypes_[index];
+ }
+
+ public const int OptionalGroupFieldNumber = 10;
+ private bool hasOptionalGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup optionalGroup_;
+ public bool HasOptionalGroup {
+ get { return hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup OptionalGroup {
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public const int RepeatedGroupFieldNumber = 20;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> repeatedGroup_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> RepeatedGroupList {
+ get { return repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return repeatedGroup_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return repeatedGroup_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasRequiredAllTypes) return false;
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testParsingMergeFieldNames;
+ pb::ExtendableMessage<TestParsingMerge, TestParsingMerge.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasRequiredAllTypes) {
+ output.WriteMessage(1, field_names[4], RequiredAllTypes);
+ }
+ if (hasOptionalAllTypes) {
+ output.WriteMessage(2, field_names[0], OptionalAllTypes);
+ }
+ if (repeatedAllTypes_.Count > 0) {
+ output.WriteMessageArray(3, field_names[2], repeatedAllTypes_);
+ }
+ if (hasOptionalGroup) {
+ output.WriteGroup(10, field_names[1], OptionalGroup);
+ }
+ if (repeatedGroup_.Count > 0) {
+ output.WriteGroupArray(20, field_names[3], repeatedGroup_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRequiredAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, RequiredAllTypes);
+ }
+ if (hasOptionalAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, OptionalAllTypes);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes element in RepeatedAllTypesList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ if (hasOptionalGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, OptionalGroup);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup element in RepeatedGroupList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(20, element);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestParsingMerge ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMerge ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestParsingMerge ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestParsingMerge ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestParsingMerge MakeReadOnly() {
+ repeatedAllTypes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestParsingMerge prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestParsingMerge, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestParsingMerge cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestParsingMerge result;
+
+ private TestParsingMerge PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestParsingMerge original = result;
+ result = new TestParsingMerge();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestParsingMerge MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Descriptor; }
+ }
+
+ public override TestParsingMerge DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.DefaultInstance; }
+ }
+
+ public override TestParsingMerge BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestParsingMerge) {
+ return MergeFrom((TestParsingMerge) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestParsingMerge other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRequiredAllTypes) {
+ MergeRequiredAllTypes(other.RequiredAllTypes);
+ }
+ if (other.HasOptionalAllTypes) {
+ MergeOptionalAllTypes(other.OptionalAllTypes);
+ }
+ if (other.repeatedAllTypes_.Count != 0) {
+ result.repeatedAllTypes_.Add(other.repeatedAllTypes_);
+ }
+ if (other.HasOptionalGroup) {
+ MergeOptionalGroup(other.OptionalGroup);
+ }
+ if (other.repeatedGroup_.Count != 0) {
+ result.repeatedGroup_.Add(other.repeatedGroup_);
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testParsingMergeFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testParsingMergeFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasRequiredAllTypes) {
+ subBuilder.MergeFrom(RequiredAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ RequiredAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasOptionalAllTypes) {
+ subBuilder.MergeFrom(OptionalAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.repeatedAllTypes_, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 83: {
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.CreateBuilder();
+ if (result.hasOptionalGroup) {
+ subBuilder.MergeFrom(OptionalGroup);
+ }
+ input.ReadGroup(10, subBuilder, extensionRegistry);
+ OptionalGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 163: {
+ input.ReadGroupArray(tag, field_name, result.repeatedGroup_, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasRequiredAllTypes {
+ get { return result.hasRequiredAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes RequiredAllTypes {
+ get { return result.RequiredAllTypes; }
+ set { SetRequiredAllTypes(value); }
+ }
+ public Builder SetRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasRequiredAllTypes = true;
+ result.requiredAllTypes_ = value;
+ return this;
+ }
+ public Builder SetRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasRequiredAllTypes = true;
+ result.requiredAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasRequiredAllTypes &&
+ result.requiredAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.requiredAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.requiredAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.requiredAllTypes_ = value;
+ }
+ result.hasRequiredAllTypes = true;
+ return this;
+ }
+ public Builder ClearRequiredAllTypes() {
+ PrepareBuilder();
+ result.hasRequiredAllTypes = false;
+ result.requiredAllTypes_ = null;
+ return this;
+ }
+
+ public bool HasOptionalAllTypes {
+ get { return result.hasOptionalAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes OptionalAllTypes {
+ get { return result.OptionalAllTypes; }
+ set { SetOptionalAllTypes(value); }
+ }
+ public Builder SetOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalAllTypes = true;
+ result.optionalAllTypes_ = value;
+ return this;
+ }
+ public Builder SetOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalAllTypes = true;
+ result.optionalAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalAllTypes &&
+ result.optionalAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.optionalAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.optionalAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalAllTypes_ = value;
+ }
+ result.hasOptionalAllTypes = true;
+ return this;
+ }
+ public Builder ClearOptionalAllTypes() {
+ PrepareBuilder();
+ result.hasOptionalAllTypes = false;
+ result.optionalAllTypes_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> RepeatedAllTypesList {
+ get { return PrepareBuilder().repeatedAllTypes_; }
+ }
+ public int RepeatedAllTypesCount {
+ get { return result.RepeatedAllTypesCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes GetRepeatedAllTypes(int index) {
+ return result.GetRepeatedAllTypes(index);
+ }
+ public Builder SetRepeatedAllTypes(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedAllTypes_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedAllTypes(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedAllTypes_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedAllTypes(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes> values) {
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedAllTypes() {
+ PrepareBuilder();
+ result.repeatedAllTypes_.Clear();
+ return this;
+ }
+
+ public bool HasOptionalGroup {
+ get { return result.hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup OptionalGroup {
+ get { return result.OptionalGroup; }
+ set { SetOptionalGroup(value); }
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroup &&
+ result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.DefaultInstance) {
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroup_ = value;
+ }
+ result.hasOptionalGroup = true;
+ return this;
+ }
+ public Builder ClearOptionalGroup() {
+ PrepareBuilder();
+ result.hasOptionalGroup = false;
+ result.optionalGroup_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> RepeatedGroupList {
+ get { return PrepareBuilder().repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return result.RepeatedGroupCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return result.GetRepeatedGroup(index);
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedGroup(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMerge.Types.RepeatedGroup> values) {
+ PrepareBuilder();
+ result.repeatedGroup_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedGroup() {
+ PrepareBuilder();
+ result.repeatedGroup_.Clear();
+ return this;
+ }
+ }
+ static TestParsingMerge() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestCommentInjectionMessage : pb::GeneratedMessage<TestCommentInjectionMessage, TestCommentInjectionMessage.Builder> {
+ private TestCommentInjectionMessage() { }
+ private static readonly TestCommentInjectionMessage defaultInstance = new TestCommentInjectionMessage().MakeReadOnly();
+ private static readonly string[] _testCommentInjectionMessageFieldNames = new string[] { "a" };
+ private static readonly uint[] _testCommentInjectionMessageFieldTags = new uint[] { 10 };
+ public static TestCommentInjectionMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestCommentInjectionMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestCommentInjectionMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCommentInjectionMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestCommentInjectionMessage, TestCommentInjectionMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_TestCommentInjectionMessage__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private string a_ = "*/ <- Neither should this.";
+ public bool HasA {
+ get { return hasA; }
+ }
+ public string A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testCommentInjectionMessageFieldNames;
+ if (hasA) {
+ output.WriteString(1, field_names[0], A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCommentInjectionMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestCommentInjectionMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestCommentInjectionMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestCommentInjectionMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestCommentInjectionMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestCommentInjectionMessage result;
+
+ private TestCommentInjectionMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestCommentInjectionMessage original = result;
+ result = new TestCommentInjectionMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestCommentInjectionMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.Descriptor; }
+ }
+
+ public override TestCommentInjectionMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.DefaultInstance; }
+ }
+
+ public override TestCommentInjectionMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestCommentInjectionMessage) {
+ return MergeFrom((TestCommentInjectionMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestCommentInjectionMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestCommentInjectionMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testCommentInjectionMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testCommentInjectionMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasA = input.ReadString(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public string A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = "*/ <- Neither should this.";
+ return this;
+ }
+ }
+ static TestCommentInjectionMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooRequest : pb::GeneratedMessage<FooRequest, FooRequest.Builder> {
+ private FooRequest() { }
+ private static readonly FooRequest defaultInstance = new FooRequest().MakeReadOnly();
+ private static readonly string[] _fooRequestFieldNames = new string[] { };
+ private static readonly uint[] _fooRequestFieldTags = new uint[] { };
+ public static FooRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooRequest DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooRequest, FooRequest.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooRequest__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooRequestFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooRequest MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooRequest prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooRequest, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooRequest cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooRequest result;
+
+ private FooRequest PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooRequest original = result;
+ result = new FooRequest();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooRequest MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooRequest.Descriptor; }
+ }
+
+ public override FooRequest DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooRequest.DefaultInstance; }
+ }
+
+ public override FooRequest BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooRequest) {
+ return MergeFrom((FooRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooRequest other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooRequest.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooRequestFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooRequestFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooRequest() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooResponse : pb::GeneratedMessage<FooResponse, FooResponse.Builder> {
+ private FooResponse() { }
+ private static readonly FooResponse defaultInstance = new FooResponse().MakeReadOnly();
+ private static readonly string[] _fooResponseFieldNames = new string[] { };
+ private static readonly uint[] _fooResponseFieldTags = new uint[] { };
+ public static FooResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooResponse DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooResponse, FooResponse.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooResponse__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooResponseFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooResponse MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooResponse prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooResponse, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooResponse cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooResponse result;
+
+ private FooResponse PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooResponse original = result;
+ result = new FooResponse();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooResponse MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooResponse.Descriptor; }
+ }
+
+ public override FooResponse DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance; }
+ }
+
+ public override FooResponse BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooResponse) {
+ return MergeFrom((FooResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooResponse other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooResponseFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooResponseFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooResponse() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooClientMessage : pb::GeneratedMessage<FooClientMessage, FooClientMessage.Builder> {
+ private FooClientMessage() { }
+ private static readonly FooClientMessage defaultInstance = new FooClientMessage().MakeReadOnly();
+ private static readonly string[] _fooClientMessageFieldNames = new string[] { };
+ private static readonly uint[] _fooClientMessageFieldTags = new uint[] { };
+ public static FooClientMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooClientMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooClientMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooClientMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooClientMessage, FooClientMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooClientMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooClientMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooClientMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooClientMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooClientMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooClientMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooClientMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooClientMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooClientMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooClientMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooClientMessage result;
+
+ private FooClientMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooClientMessage original = result;
+ result = new FooClientMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooClientMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooClientMessage.Descriptor; }
+ }
+
+ public override FooClientMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooClientMessage.DefaultInstance; }
+ }
+
+ public override FooClientMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooClientMessage) {
+ return MergeFrom((FooClientMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooClientMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooClientMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooClientMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooClientMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooClientMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class FooServerMessage : pb::GeneratedMessage<FooServerMessage, FooServerMessage.Builder> {
+ private FooServerMessage() { }
+ private static readonly FooServerMessage defaultInstance = new FooServerMessage().MakeReadOnly();
+ private static readonly string[] _fooServerMessageFieldNames = new string[] { };
+ private static readonly uint[] _fooServerMessageFieldTags = new uint[] { };
+ public static FooServerMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooServerMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override FooServerMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooServerMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooServerMessage, FooServerMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_FooServerMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _fooServerMessageFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static FooServerMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooServerMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooServerMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooServerMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private FooServerMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooServerMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<FooServerMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(FooServerMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private FooServerMessage result;
+
+ private FooServerMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ FooServerMessage original = result;
+ result = new FooServerMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override FooServerMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooServerMessage.Descriptor; }
+ }
+
+ public override FooServerMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooServerMessage.DefaultInstance; }
+ }
+
+ public override FooServerMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooServerMessage) {
+ return MergeFrom((FooServerMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooServerMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooServerMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_fooServerMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _fooServerMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static FooServerMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BarRequest : pb::GeneratedMessage<BarRequest, BarRequest.Builder> {
+ private BarRequest() { }
+ private static readonly BarRequest defaultInstance = new BarRequest().MakeReadOnly();
+ private static readonly string[] _barRequestFieldNames = new string[] { };
+ private static readonly uint[] _barRequestFieldTags = new uint[] { };
+ public static BarRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BarRequest DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BarRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BarRequest, BarRequest.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarRequest__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _barRequestFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static BarRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BarRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BarRequest MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BarRequest prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<BarRequest, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BarRequest cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BarRequest result;
+
+ private BarRequest PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BarRequest original = result;
+ result = new BarRequest();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BarRequest MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarRequest.Descriptor; }
+ }
+
+ public override BarRequest DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarRequest.DefaultInstance; }
+ }
+
+ public override BarRequest BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BarRequest) {
+ return MergeFrom((BarRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BarRequest other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BarRequest.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_barRequestFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _barRequestFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static BarRequest() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BarResponse : pb::GeneratedMessage<BarResponse, BarResponse.Builder> {
+ private BarResponse() { }
+ private static readonly BarResponse defaultInstance = new BarResponse().MakeReadOnly();
+ private static readonly string[] _barResponseFieldNames = new string[] { };
+ private static readonly uint[] _barResponseFieldTags = new uint[] { };
+ public static BarResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BarResponse DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BarResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BarResponse, BarResponse.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.Unittest.internal__static_protobuf_unittest_BarResponse__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _barResponseFieldNames;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static BarResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BarResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BarResponse MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BarResponse prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<BarResponse, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BarResponse cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BarResponse result;
+
+ private BarResponse PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BarResponse original = result;
+ result = new BarResponse();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BarResponse MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarResponse.Descriptor; }
+ }
+
+ public override BarResponse DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance; }
+ }
+
+ public override BarResponse BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BarResponse) {
+ return MergeFrom((BarResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BarResponse other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_barResponseFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _barResponseFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+ }
+ static BarResponse() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.Unittest.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasFull.cs b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasFull.cs
new file mode 100644
index 00000000..73c4b182
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasFull.cs
@@ -0,0 +1,2138 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: unittest_extras_full.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestExtrasFull {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.EmployeeId);
+ }
+ #endregion
+ #region Extensions
+ public const int EmployeeIdFieldNumber = 126;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId> EmployeeId;
+ #endregion
+
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Builder> internal__static_protobuf_unittest_extra_TestInteropPerson__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Builder> internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Builder> internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId, global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId.Builder> internal__static_protobuf_unittest_extra_TestInteropEmployeeId__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestMissingFieldsA__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Builder> internal__static_protobuf_unittest_extra_TestMissingFieldsA__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.Builder> internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestMissingFieldsB__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Builder> internal__static_protobuf_unittest_extra_TestMissingFieldsB__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.Builder> internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestExtrasFull() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Chp1bml0dGVzdF9leHRyYXNfZnVsbC5wcm90bxIXcHJvdG9idWZfdW5pdHRl",
+ "c3RfZXh0cmEi1gMKEVRlc3RJbnRlcm9wUGVyc29uEgwKBG5hbWUYASACKAkS",
+ "CgoCaWQYAiACKAUSDQoFZW1haWwYAyABKAkSEQoFY29kZXMYCiADKAVCAhAB",
+ "EkUKBXBob25lGAQgAygLMjYucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVz",
+ "dEludGVyb3BQZXJzb24uUGhvbmVOdW1iZXISRwoJYWRkcmVzc2VzGAUgAygK",
+ "MjQucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVzdEludGVyb3BQZXJzb24u",
+ "QWRkcmVzc2VzGmcKC1Bob25lTnVtYmVyEg4KBm51bWJlchgBIAIoCRJICgR0",
+ "eXBlGAIgASgOMjQucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVzdEludGVy",
+ "b3BQZXJzb24uUGhvbmVUeXBlOgRIT01FGlgKCUFkZHJlc3NlcxIPCgdhZGRy",
+ "ZXNzGAEgAigJEhAKCGFkZHJlc3MyGAIgASgJEgwKBGNpdHkYAyACKAkSDQoF",
+ "c3RhdGUYBCACKAkSCwoDemlwGAUgAigHIisKCVBob25lVHlwZRIKCgZNT0JJ",
+ "TEUQABIICgRIT01FEAESCAoEV09SSxACKgUIZBDIASInChVUZXN0SW50ZXJv",
+ "cEVtcGxveWVlSWQSDgoGbnVtYmVyGAEgAigJIqUBChJUZXN0TWlzc2luZ0Zp",
+ "ZWxkc0ESDAoEbmFtZRgBIAIoCRIKCgJpZBgCIAIoBRINCgVlbWFpbBgDIAEo",
+ "CRI/CgV0ZXN0QRgLIAEoCzIwLnByb3RvYnVmX3VuaXR0ZXN0X2V4dHJhLlRl",
+ "c3RNaXNzaW5nRmllbGRzQS5TdWJBGiUKBFN1YkESDQoFY291bnQYBSACKAUS",
+ "DgoGdmFsdWVzGAYgAygJIpgBChJUZXN0TWlzc2luZ0ZpZWxkc0ISDAoEbmFt",
+ "ZRgBIAIoCRIKCgJpZBgCIAIoBRIPCgd3ZWJzaXRlGAQgASgJEj8KBXRlc3RC",
+ "GAwgASgLMjAucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVzdE1pc3NpbmdG",
+ "aWVsZHNCLlN1YkIaFgoEU3ViQhIOCgZ2YWx1ZXMYByADKAk6bwoLZW1wbG95",
+ "ZWVfaWQSKi5wcm90b2J1Zl91bml0dGVzdF9leHRyYS5UZXN0SW50ZXJvcFBl",
+ "cnNvbhh+IAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2V4dHJhLlRlc3RJbnRl",
+ "cm9wRW1wbG95ZWVJZEI7ChNjb20uZ29vZ2xlLnByb3RvYnVmSAKqAiFHb29n",
+ "bGUuUHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3M="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_extra_TestInteropPerson__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Builder>(internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor,
+ new string[] { "Name", "Id", "Email", "Codes", "Phone", "Addresses", });
+ internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor = internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Builder>(internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor,
+ new string[] { "Number", "Type", });
+ internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor = internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Builder>(internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor,
+ new string[] { "Address", "Address2", "City", "State", "Zip", });
+ internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_extra_TestInteropEmployeeId__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId, global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId.Builder>(internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor,
+ new string[] { "Number", });
+ internal__static_protobuf_unittest_extra_TestMissingFieldsA__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_extra_TestMissingFieldsA__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Builder>(internal__static_protobuf_unittest_extra_TestMissingFieldsA__Descriptor,
+ new string[] { "Name", "Id", "Email", "TestA", });
+ internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__Descriptor = internal__static_protobuf_unittest_extra_TestMissingFieldsA__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.Builder>(internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__Descriptor,
+ new string[] { "Count", "Values", });
+ internal__static_protobuf_unittest_extra_TestMissingFieldsB__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_extra_TestMissingFieldsB__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Builder>(internal__static_protobuf_unittest_extra_TestMissingFieldsB__Descriptor,
+ new string[] { "Name", "Id", "Website", "TestB", });
+ internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__Descriptor = internal__static_protobuf_unittest_extra_TestMissingFieldsB__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.Builder>(internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__Descriptor,
+ new string[] { "Values", });
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.EmployeeId = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.Descriptor.Extensions[0]);
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestInteropPerson : pb::ExtendableMessage<TestInteropPerson, TestInteropPerson.Builder> {
+ private TestInteropPerson() { }
+ private static readonly TestInteropPerson defaultInstance = new TestInteropPerson().MakeReadOnly();
+ public static TestInteropPerson DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestInteropPerson DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestInteropPerson ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestInteropPerson, TestInteropPerson.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestInteropPerson__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum PhoneType {
+ MOBILE = 0,
+ HOME = 1,
+ WORK = 2,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class PhoneNumber : pb::GeneratedMessage<PhoneNumber, PhoneNumber.Builder> {
+ private PhoneNumber() { }
+ private static readonly PhoneNumber defaultInstance = new PhoneNumber().MakeReadOnly();
+ public static PhoneNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override PhoneNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<PhoneNumber, PhoneNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__FieldAccessorTable; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public const int TypeFieldNumber = 2;
+ private bool hasType;
+ private global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType.HOME;
+ public bool HasType {
+ get { return hasType; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType Type {
+ get { return type_; }
+ }
+
+ public static PhoneNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private PhoneNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PhoneNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<PhoneNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(PhoneNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private PhoneNumber result;
+
+ private PhoneNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ PhoneNumber original = result;
+ result = new PhoneNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override PhoneNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Descriptor; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.DefaultInstance; }
+ }
+
+ public override PhoneNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+
+ public bool HasType {
+ get { return result.hasType; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType Type {
+ get { return result.Type; }
+ set { SetType(value); }
+ }
+ public Builder SetType(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType value) {
+ PrepareBuilder();
+ result.hasType = true;
+ result.type_ = value;
+ return this;
+ }
+ public Builder ClearType() {
+ PrepareBuilder();
+ result.hasType = false;
+ result.type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType.HOME;
+ return this;
+ }
+ }
+ static PhoneNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Addresses : pb::GeneratedMessage<Addresses, Addresses.Builder> {
+ private Addresses() { }
+ private static readonly Addresses defaultInstance = new Addresses().MakeReadOnly();
+ public static Addresses DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Addresses DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Addresses ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Addresses, Addresses.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__FieldAccessorTable; }
+ }
+
+ public const int AddressFieldNumber = 1;
+ private bool hasAddress;
+ private string address_ = "";
+ public bool HasAddress {
+ get { return hasAddress; }
+ }
+ public string Address {
+ get { return address_; }
+ }
+
+ public const int Address2FieldNumber = 2;
+ private bool hasAddress2;
+ private string address2_ = "";
+ public bool HasAddress2 {
+ get { return hasAddress2; }
+ }
+ public string Address2 {
+ get { return address2_; }
+ }
+
+ public const int CityFieldNumber = 3;
+ private bool hasCity;
+ private string city_ = "";
+ public bool HasCity {
+ get { return hasCity; }
+ }
+ public string City {
+ get { return city_; }
+ }
+
+ public const int StateFieldNumber = 4;
+ private bool hasState;
+ private string state_ = "";
+ public bool HasState {
+ get { return hasState; }
+ }
+ public string State {
+ get { return state_; }
+ }
+
+ public const int ZipFieldNumber = 5;
+ private bool hasZip;
+ private uint zip_;
+ public bool HasZip {
+ get { return hasZip; }
+ }
+ public uint Zip {
+ get { return zip_; }
+ }
+
+ public static Addresses ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Addresses ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Addresses ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Addresses ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Addresses MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Addresses prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<Addresses, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Addresses cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Addresses result;
+
+ private Addresses PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Addresses original = result;
+ result = new Addresses();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Addresses MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Descriptor; }
+ }
+
+ public override Addresses DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.DefaultInstance; }
+ }
+
+ public override Addresses BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasAddress {
+ get { return result.hasAddress; }
+ }
+ public string Address {
+ get { return result.Address; }
+ set { SetAddress(value); }
+ }
+ public Builder SetAddress(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasAddress = true;
+ result.address_ = value;
+ return this;
+ }
+ public Builder ClearAddress() {
+ PrepareBuilder();
+ result.hasAddress = false;
+ result.address_ = "";
+ return this;
+ }
+
+ public bool HasAddress2 {
+ get { return result.hasAddress2; }
+ }
+ public string Address2 {
+ get { return result.Address2; }
+ set { SetAddress2(value); }
+ }
+ public Builder SetAddress2(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasAddress2 = true;
+ result.address2_ = value;
+ return this;
+ }
+ public Builder ClearAddress2() {
+ PrepareBuilder();
+ result.hasAddress2 = false;
+ result.address2_ = "";
+ return this;
+ }
+
+ public bool HasCity {
+ get { return result.hasCity; }
+ }
+ public string City {
+ get { return result.City; }
+ set { SetCity(value); }
+ }
+ public Builder SetCity(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCity = true;
+ result.city_ = value;
+ return this;
+ }
+ public Builder ClearCity() {
+ PrepareBuilder();
+ result.hasCity = false;
+ result.city_ = "";
+ return this;
+ }
+
+ public bool HasState {
+ get { return result.hasState; }
+ }
+ public string State {
+ get { return result.State; }
+ set { SetState(value); }
+ }
+ public Builder SetState(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasState = true;
+ result.state_ = value;
+ return this;
+ }
+ public Builder ClearState() {
+ PrepareBuilder();
+ result.hasState = false;
+ result.state_ = "";
+ return this;
+ }
+
+ public bool HasZip {
+ get { return result.hasZip; }
+ }
+ public uint Zip {
+ get { return result.Zip; }
+ set { SetZip(value); }
+ }
+ public Builder SetZip(uint value) {
+ PrepareBuilder();
+ result.hasZip = true;
+ result.zip_ = value;
+ return this;
+ }
+ public Builder ClearZip() {
+ PrepareBuilder();
+ result.hasZip = false;
+ result.zip_ = 0;
+ return this;
+ }
+ }
+ static Addresses() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int EmailFieldNumber = 3;
+ private bool hasEmail;
+ private string email_ = "";
+ public bool HasEmail {
+ get { return hasEmail; }
+ }
+ public string Email {
+ get { return email_; }
+ }
+
+ public const int CodesFieldNumber = 10;
+ private pbc::PopsicleList<int> codes_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> CodesList {
+ get { return pbc::Lists.AsReadOnly(codes_); }
+ }
+ public int CodesCount {
+ get { return codes_.Count; }
+ }
+ public int GetCodes(int index) {
+ return codes_[index];
+ }
+
+ public const int PhoneFieldNumber = 4;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber> phone_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber> PhoneList {
+ get { return phone_; }
+ }
+ public int PhoneCount {
+ get { return phone_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber GetPhone(int index) {
+ return phone_[index];
+ }
+
+ public const int AddressesFieldNumber = 5;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses> addresses_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses> AddressesList {
+ get { return addresses_; }
+ }
+ public int AddressesCount {
+ get { return addresses_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses GetAddresses(int index) {
+ return addresses_[index];
+ }
+
+ public static TestInteropPerson ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPerson ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestInteropPerson ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestInteropPerson MakeReadOnly() {
+ codes_.MakeReadOnly();
+ phone_.MakeReadOnly();
+ addresses_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestInteropPerson prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilder<TestInteropPerson, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestInteropPerson cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestInteropPerson result;
+
+ private TestInteropPerson PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestInteropPerson original = result;
+ result = new TestInteropPerson();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestInteropPerson MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Descriptor; }
+ }
+
+ public override TestInteropPerson DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.DefaultInstance; }
+ }
+
+ public override TestInteropPerson BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.hasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ PrepareBuilder();
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ PrepareBuilder();
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasEmail {
+ get { return result.hasEmail; }
+ }
+ public string Email {
+ get { return result.Email; }
+ set { SetEmail(value); }
+ }
+ public Builder SetEmail(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasEmail = true;
+ result.email_ = value;
+ return this;
+ }
+ public Builder ClearEmail() {
+ PrepareBuilder();
+ result.hasEmail = false;
+ result.email_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> CodesList {
+ get { return PrepareBuilder().codes_; }
+ }
+ public int CodesCount {
+ get { return result.CodesCount; }
+ }
+ public int GetCodes(int index) {
+ return result.GetCodes(index);
+ }
+ public Builder SetCodes(int index, int value) {
+ PrepareBuilder();
+ result.codes_[index] = value;
+ return this;
+ }
+ public Builder AddCodes(int value) {
+ PrepareBuilder();
+ result.codes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeCodes(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.codes_.Add(values);
+ return this;
+ }
+ public Builder ClearCodes() {
+ PrepareBuilder();
+ result.codes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber> PhoneList {
+ get { return PrepareBuilder().phone_; }
+ }
+ public int PhoneCount {
+ get { return result.PhoneCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber GetPhone(int index) {
+ return result.GetPhone(index);
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.phone_[index] = value;
+ return this;
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.phone_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.phone_.Add(value);
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.phone_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangePhone(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber> values) {
+ PrepareBuilder();
+ result.phone_.Add(values);
+ return this;
+ }
+ public Builder ClearPhone() {
+ PrepareBuilder();
+ result.phone_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses> AddressesList {
+ get { return PrepareBuilder().addresses_; }
+ }
+ public int AddressesCount {
+ get { return result.AddressesCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses GetAddresses(int index) {
+ return result.GetAddresses(index);
+ }
+ public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.addresses_[index] = value;
+ return this;
+ }
+ public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.addresses_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.addresses_.Add(value);
+ return this;
+ }
+ public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.addresses_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeAddresses(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses> values) {
+ PrepareBuilder();
+ result.addresses_.Add(values);
+ return this;
+ }
+ public Builder ClearAddresses() {
+ PrepareBuilder();
+ result.addresses_.Clear();
+ return this;
+ }
+ }
+ static TestInteropPerson() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestInteropEmployeeId : pb::GeneratedMessage<TestInteropEmployeeId, TestInteropEmployeeId.Builder> {
+ private TestInteropEmployeeId() { }
+ private static readonly TestInteropEmployeeId defaultInstance = new TestInteropEmployeeId().MakeReadOnly();
+ public static TestInteropEmployeeId DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestInteropEmployeeId DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestInteropEmployeeId ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestInteropEmployeeId, TestInteropEmployeeId.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestInteropEmployeeId__FieldAccessorTable; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public static TestInteropEmployeeId ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestInteropEmployeeId MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestInteropEmployeeId prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestInteropEmployeeId, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestInteropEmployeeId cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestInteropEmployeeId result;
+
+ private TestInteropEmployeeId PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestInteropEmployeeId original = result;
+ result = new TestInteropEmployeeId();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestInteropEmployeeId MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId.Descriptor; }
+ }
+
+ public override TestInteropEmployeeId DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId.DefaultInstance; }
+ }
+
+ public override TestInteropEmployeeId BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+ }
+ static TestInteropEmployeeId() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMissingFieldsA : pb::GeneratedMessage<TestMissingFieldsA, TestMissingFieldsA.Builder> {
+ private TestMissingFieldsA() { }
+ private static readonly TestMissingFieldsA defaultInstance = new TestMissingFieldsA().MakeReadOnly();
+ public static TestMissingFieldsA DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMissingFieldsA DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMissingFieldsA ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestMissingFieldsA__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMissingFieldsA, TestMissingFieldsA.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestMissingFieldsA__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SubA : pb::GeneratedMessage<SubA, SubA.Builder> {
+ private SubA() { }
+ private static readonly SubA defaultInstance = new SubA().MakeReadOnly();
+ public static SubA DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SubA DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SubA ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SubA, SubA.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__FieldAccessorTable; }
+ }
+
+ public const int CountFieldNumber = 5;
+ private bool hasCount;
+ private int count_;
+ public bool HasCount {
+ get { return hasCount; }
+ }
+ public int Count {
+ get { return count_; }
+ }
+
+ public const int ValuesFieldNumber = 6;
+ private pbc::PopsicleList<string> values_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> ValuesList {
+ get { return pbc::Lists.AsReadOnly(values_); }
+ }
+ public int ValuesCount {
+ get { return values_.Count; }
+ }
+ public string GetValues(int index) {
+ return values_[index];
+ }
+
+ public static SubA ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SubA ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SubA ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SubA ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SubA ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SubA ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SubA ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SubA ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SubA ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SubA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SubA MakeReadOnly() {
+ values_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SubA prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SubA, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SubA cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SubA result;
+
+ private SubA PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SubA original = result;
+ result = new SubA();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SubA MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.Descriptor; }
+ }
+
+ public override SubA DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance; }
+ }
+
+ public override SubA BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasCount {
+ get { return result.hasCount; }
+ }
+ public int Count {
+ get { return result.Count; }
+ set { SetCount(value); }
+ }
+ public Builder SetCount(int value) {
+ PrepareBuilder();
+ result.hasCount = true;
+ result.count_ = value;
+ return this;
+ }
+ public Builder ClearCount() {
+ PrepareBuilder();
+ result.hasCount = false;
+ result.count_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> ValuesList {
+ get { return PrepareBuilder().values_; }
+ }
+ public int ValuesCount {
+ get { return result.ValuesCount; }
+ }
+ public string GetValues(int index) {
+ return result.GetValues(index);
+ }
+ public Builder SetValues(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.values_[index] = value;
+ return this;
+ }
+ public Builder AddValues(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.values_.Add(value);
+ return this;
+ }
+ public Builder AddRangeValues(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.values_.Add(values);
+ return this;
+ }
+ public Builder ClearValues() {
+ PrepareBuilder();
+ result.values_.Clear();
+ return this;
+ }
+ }
+ static SubA() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int EmailFieldNumber = 3;
+ private bool hasEmail;
+ private string email_ = "";
+ public bool HasEmail {
+ get { return hasEmail; }
+ }
+ public string Email {
+ get { return email_; }
+ }
+
+ public const int TestAFieldNumber = 11;
+ private bool hasTestA;
+ private global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA testA_;
+ public bool HasTestA {
+ get { return hasTestA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA TestA {
+ get { return testA_ ?? global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance; }
+ }
+
+ public static TestMissingFieldsA ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMissingFieldsA MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMissingFieldsA prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMissingFieldsA, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMissingFieldsA cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMissingFieldsA result;
+
+ private TestMissingFieldsA PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMissingFieldsA original = result;
+ result = new TestMissingFieldsA();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMissingFieldsA MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Descriptor; }
+ }
+
+ public override TestMissingFieldsA DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.DefaultInstance; }
+ }
+
+ public override TestMissingFieldsA BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.hasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ PrepareBuilder();
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ PrepareBuilder();
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasEmail {
+ get { return result.hasEmail; }
+ }
+ public string Email {
+ get { return result.Email; }
+ set { SetEmail(value); }
+ }
+ public Builder SetEmail(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasEmail = true;
+ result.email_ = value;
+ return this;
+ }
+ public Builder ClearEmail() {
+ PrepareBuilder();
+ result.hasEmail = false;
+ result.email_ = "";
+ return this;
+ }
+
+ public bool HasTestA {
+ get { return result.hasTestA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA TestA {
+ get { return result.TestA; }
+ set { SetTestA(value); }
+ }
+ public Builder SetTestA(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasTestA = true;
+ result.testA_ = value;
+ return this;
+ }
+ public Builder SetTestA(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasTestA = true;
+ result.testA_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeTestA(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasTestA &&
+ result.testA_ != global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance) {
+ result.testA_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.CreateBuilder(result.testA_).MergeFrom(value).BuildPartial();
+ } else {
+ result.testA_ = value;
+ }
+ result.hasTestA = true;
+ return this;
+ }
+ public Builder ClearTestA() {
+ PrepareBuilder();
+ result.hasTestA = false;
+ result.testA_ = null;
+ return this;
+ }
+ }
+ static TestMissingFieldsA() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestMissingFieldsB : pb::GeneratedMessage<TestMissingFieldsB, TestMissingFieldsB.Builder> {
+ private TestMissingFieldsB() { }
+ private static readonly TestMissingFieldsB defaultInstance = new TestMissingFieldsB().MakeReadOnly();
+ public static TestMissingFieldsB DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMissingFieldsB DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestMissingFieldsB ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestMissingFieldsB__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMissingFieldsB, TestMissingFieldsB.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestMissingFieldsB__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SubB : pb::GeneratedMessage<SubB, SubB.Builder> {
+ private SubB() { }
+ private static readonly SubB defaultInstance = new SubB().MakeReadOnly();
+ public static SubB DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SubB DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SubB ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SubB, SubB.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__FieldAccessorTable; }
+ }
+
+ public const int ValuesFieldNumber = 7;
+ private pbc::PopsicleList<string> values_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> ValuesList {
+ get { return pbc::Lists.AsReadOnly(values_); }
+ }
+ public int ValuesCount {
+ get { return values_.Count; }
+ }
+ public string GetValues(int index) {
+ return values_[index];
+ }
+
+ public static SubB ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SubB ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SubB ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SubB ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SubB ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SubB ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SubB ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SubB ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SubB ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SubB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SubB MakeReadOnly() {
+ values_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SubB prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<SubB, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SubB cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SubB result;
+
+ private SubB PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SubB original = result;
+ result = new SubB();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SubB MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.Descriptor; }
+ }
+
+ public override SubB DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance; }
+ }
+
+ public override SubB BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public pbc::IPopsicleList<string> ValuesList {
+ get { return PrepareBuilder().values_; }
+ }
+ public int ValuesCount {
+ get { return result.ValuesCount; }
+ }
+ public string GetValues(int index) {
+ return result.GetValues(index);
+ }
+ public Builder SetValues(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.values_[index] = value;
+ return this;
+ }
+ public Builder AddValues(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.values_.Add(value);
+ return this;
+ }
+ public Builder AddRangeValues(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.values_.Add(values);
+ return this;
+ }
+ public Builder ClearValues() {
+ PrepareBuilder();
+ result.values_.Clear();
+ return this;
+ }
+ }
+ static SubB() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int WebsiteFieldNumber = 4;
+ private bool hasWebsite;
+ private string website_ = "";
+ public bool HasWebsite {
+ get { return hasWebsite; }
+ }
+ public string Website {
+ get { return website_; }
+ }
+
+ public const int TestBFieldNumber = 12;
+ private bool hasTestB;
+ private global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB testB_;
+ public bool HasTestB {
+ get { return hasTestB; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB TestB {
+ get { return testB_ ?? global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance; }
+ }
+
+ public static TestMissingFieldsB ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestMissingFieldsB MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMissingFieldsB prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMissingFieldsB, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestMissingFieldsB cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestMissingFieldsB result;
+
+ private TestMissingFieldsB PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestMissingFieldsB original = result;
+ result = new TestMissingFieldsB();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestMissingFieldsB MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Descriptor; }
+ }
+
+ public override TestMissingFieldsB DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.DefaultInstance; }
+ }
+
+ public override TestMissingFieldsB BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.hasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ PrepareBuilder();
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ PrepareBuilder();
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasWebsite {
+ get { return result.hasWebsite; }
+ }
+ public string Website {
+ get { return result.Website; }
+ set { SetWebsite(value); }
+ }
+ public Builder SetWebsite(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasWebsite = true;
+ result.website_ = value;
+ return this;
+ }
+ public Builder ClearWebsite() {
+ PrepareBuilder();
+ result.hasWebsite = false;
+ result.website_ = "";
+ return this;
+ }
+
+ public bool HasTestB {
+ get { return result.hasTestB; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB TestB {
+ get { return result.TestB; }
+ set { SetTestB(value); }
+ }
+ public Builder SetTestB(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasTestB = true;
+ result.testB_ = value;
+ return this;
+ }
+ public Builder SetTestB(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasTestB = true;
+ result.testB_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeTestB(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasTestB &&
+ result.testB_ != global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance) {
+ result.testB_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.CreateBuilder(result.testB_).MergeFrom(value).BuildPartial();
+ } else {
+ result.testB_ = value;
+ }
+ result.hasTestB = true;
+ return this;
+ }
+ public Builder ClearTestB() {
+ PrepareBuilder();
+ result.hasTestB = false;
+ result.testB_ = null;
+ return this;
+ }
+ }
+ static TestMissingFieldsB() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasFull.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasLite.cs b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasLite.cs
new file mode 100644
index 00000000..ceb9e861
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestExtrasLite.cs
@@ -0,0 +1,4206 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: unittest_extras_lite.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestExtrasLite {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.EmployeeIdLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedInt32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedInt64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedUint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedUint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedFixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedFixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSfixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSfixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedFloatExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedDoubleExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedBoolExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedEnumExtensionLite);
+ }
+ #endregion
+ #region Extensions
+ public const int EmployeeIdLiteFieldNumber = 126;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite, global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite> EmployeeIdLite;
+ public const int UnpackedInt32ExtensionLiteFieldNumber = 90;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, int> UnpackedInt32ExtensionLite;
+ public const int UnpackedInt64ExtensionLiteFieldNumber = 91;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, long> UnpackedInt64ExtensionLite;
+ public const int UnpackedUint32ExtensionLiteFieldNumber = 92;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, uint> UnpackedUint32ExtensionLite;
+ public const int UnpackedUint64ExtensionLiteFieldNumber = 93;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, ulong> UnpackedUint64ExtensionLite;
+ public const int UnpackedSint32ExtensionLiteFieldNumber = 94;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, int> UnpackedSint32ExtensionLite;
+ public const int UnpackedSint64ExtensionLiteFieldNumber = 95;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, long> UnpackedSint64ExtensionLite;
+ public const int UnpackedFixed32ExtensionLiteFieldNumber = 96;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, uint> UnpackedFixed32ExtensionLite;
+ public const int UnpackedFixed64ExtensionLiteFieldNumber = 97;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, ulong> UnpackedFixed64ExtensionLite;
+ public const int UnpackedSfixed32ExtensionLiteFieldNumber = 98;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, int> UnpackedSfixed32ExtensionLite;
+ public const int UnpackedSfixed64ExtensionLiteFieldNumber = 99;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, long> UnpackedSfixed64ExtensionLite;
+ public const int UnpackedFloatExtensionLiteFieldNumber = 100;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, float> UnpackedFloatExtensionLite;
+ public const int UnpackedDoubleExtensionLiteFieldNumber = 101;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, double> UnpackedDoubleExtensionLite;
+ public const int UnpackedBoolExtensionLiteFieldNumber = 102;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, bool> UnpackedBoolExtensionLite;
+ public const int UnpackedEnumExtensionLiteFieldNumber = 103;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite> UnpackedEnumExtensionLite;
+ #endregion
+
+ #region Static variables
+ #endregion
+ #region Extensions
+ internal static readonly object Descriptor;
+ static UnittestExtrasLite() {
+ Descriptor = null;
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.EmployeeIdLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite, global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite>(
+ "protobuf_unittest_extra.employee_id_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.EmployeeIdLiteFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedInt32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, int>(
+ "protobuf_unittest_extra.unpacked_int32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedInt32ExtensionLiteFieldNumber,
+ pbd::FieldType.Int32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedInt64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, long>(
+ "protobuf_unittest_extra.unpacked_int64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedInt64ExtensionLiteFieldNumber,
+ pbd::FieldType.Int64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedUint32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, uint>(
+ "protobuf_unittest_extra.unpacked_uint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedUint32ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedUint64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, ulong>(
+ "protobuf_unittest_extra.unpacked_uint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedUint64ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSint32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, int>(
+ "protobuf_unittest_extra.unpacked_sint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSint32ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSint64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, long>(
+ "protobuf_unittest_extra.unpacked_sint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSint64ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedFixed32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, uint>(
+ "protobuf_unittest_extra.unpacked_fixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedFixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedFixed64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, ulong>(
+ "protobuf_unittest_extra.unpacked_fixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedFixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSfixed32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, int>(
+ "protobuf_unittest_extra.unpacked_sfixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSfixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSfixed64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, long>(
+ "protobuf_unittest_extra.unpacked_sfixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedSfixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedFloatExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, float>(
+ "protobuf_unittest_extra.unpacked_float_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedFloatExtensionLiteFieldNumber,
+ pbd::FieldType.Float,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedDoubleExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, double>(
+ "protobuf_unittest_extra.unpacked_double_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedDoubleExtensionLiteFieldNumber,
+ pbd::FieldType.Double,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedBoolExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, bool>(
+ "protobuf_unittest_extra.unpacked_bool_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedBoolExtensionLiteFieldNumber,
+ pbd::FieldType.Bool,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedEnumExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite, global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite>(
+ "protobuf_unittest_extra.unpacked_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.UnpackedEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum,
+ false);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ExtraEnum {
+ DEFAULT = 10,
+ EXLITE_FOO = 7,
+ EXLITE_BAR = 8,
+ EXLITE_BAZ = 9,
+ }
+
+ public enum UnpackedTypesForeignEnumLite {
+ FOREIGN_LITE_FOO = 4,
+ FOREIGN_LITE_BAR = 5,
+ FOREIGN_LITE_BAZ = 6,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestRequiredLite : pb::GeneratedMessageLite<TestRequiredLite, TestRequiredLite.Builder> {
+ private TestRequiredLite() { }
+ private static readonly TestRequiredLite defaultInstance = new TestRequiredLite().MakeReadOnly();
+ private static readonly string[] _testRequiredLiteFieldNames = new string[] { "d", "en" };
+ private static readonly uint[] _testRequiredLiteFieldTags = new uint[] { 8, 16 };
+ public static TestRequiredLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequiredLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestRequiredLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int DFieldNumber = 1;
+ private bool hasD;
+ private int d_;
+ public bool HasD {
+ get { return hasD; }
+ }
+ public int D {
+ get { return d_; }
+ }
+
+ public const int EnFieldNumber = 2;
+ private bool hasEn;
+ private global::Google.ProtocolBuffers.TestProtos.ExtraEnum en_ = global::Google.ProtocolBuffers.TestProtos.ExtraEnum.DEFAULT;
+ public bool HasEn {
+ get { return hasEn; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ExtraEnum En {
+ get { return en_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasD) return false;
+ if (!hasEn) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testRequiredLiteFieldNames;
+ if (hasD) {
+ output.WriteInt32(1, field_names[0], D);
+ }
+ if (hasEn) {
+ output.WriteEnum(2, field_names[1], (int) En, En);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasD) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, D);
+ }
+ if (hasEn) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2, (int) En);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasD) {
+ hash ^= d_.GetHashCode();
+ }
+ if (hasEn) {
+ hash ^= en_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestRequiredLite other = obj as TestRequiredLite;
+ if (other == null) return false;
+ if (hasD != other.hasD || (hasD && !d_.Equals(other.d_))) return false;
+ if (hasEn != other.hasEn || (hasEn && !en_.Equals(other.en_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("d", hasD, d_, writer);
+ PrintField("en", hasEn, en_, writer);
+ }
+ #endregion
+
+ public static TestRequiredLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequiredLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestRequiredLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequiredLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestRequiredLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestRequiredLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestRequiredLite result;
+
+ private TestRequiredLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestRequiredLite original = result;
+ result = new TestRequiredLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestRequiredLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestRequiredLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredLite.DefaultInstance; }
+ }
+
+ public override TestRequiredLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestRequiredLite) {
+ return MergeFrom((TestRequiredLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequiredLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasD) {
+ D = other.D;
+ }
+ if (other.HasEn) {
+ En = other.En;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testRequiredLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testRequiredLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasD = input.ReadInt32(ref result.d_);
+ break;
+ }
+ case 16: {
+ object unknown;
+ if(input.ReadEnum(ref result.en_, out unknown)) {
+ result.hasEn = true;
+ } else if(unknown is int) {
+ }
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasD {
+ get { return result.hasD; }
+ }
+ public int D {
+ get { return result.D; }
+ set { SetD(value); }
+ }
+ public Builder SetD(int value) {
+ PrepareBuilder();
+ result.hasD = true;
+ result.d_ = value;
+ return this;
+ }
+ public Builder ClearD() {
+ PrepareBuilder();
+ result.hasD = false;
+ result.d_ = 0;
+ return this;
+ }
+
+ public bool HasEn {
+ get { return result.hasEn; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ExtraEnum En {
+ get { return result.En; }
+ set { SetEn(value); }
+ }
+ public Builder SetEn(global::Google.ProtocolBuffers.TestProtos.ExtraEnum value) {
+ PrepareBuilder();
+ result.hasEn = true;
+ result.en_ = value;
+ return this;
+ }
+ public Builder ClearEn() {
+ PrepareBuilder();
+ result.hasEn = false;
+ result.en_ = global::Google.ProtocolBuffers.TestProtos.ExtraEnum.DEFAULT;
+ return this;
+ }
+ }
+ static TestRequiredLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestInteropPersonLite : pb::ExtendableMessageLite<TestInteropPersonLite, TestInteropPersonLite.Builder> {
+ private TestInteropPersonLite() { }
+ private static readonly TestInteropPersonLite defaultInstance = new TestInteropPersonLite().MakeReadOnly();
+ private static readonly string[] _testInteropPersonLiteFieldNames = new string[] { "addresses", "codes", "email", "id", "name", "phone" };
+ private static readonly uint[] _testInteropPersonLiteFieldTags = new uint[] { 43, 82, 26, 16, 10, 34 };
+ public static TestInteropPersonLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestInteropPersonLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestInteropPersonLite ThisMessage {
+ get { return this; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum PhoneType {
+ MOBILE = 0,
+ HOME = 1,
+ WORK = 2,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class PhoneNumber : pb::GeneratedMessageLite<PhoneNumber, PhoneNumber.Builder> {
+ private PhoneNumber() { }
+ private static readonly PhoneNumber defaultInstance = new PhoneNumber().MakeReadOnly();
+ private static readonly string[] _phoneNumberFieldNames = new string[] { "number", "type" };
+ private static readonly uint[] _phoneNumberFieldTags = new uint[] { 10, 16 };
+ public static PhoneNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override PhoneNumber ThisMessage {
+ get { return this; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public const int TypeFieldNumber = 2;
+ private bool hasType;
+ private global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType.HOME;
+ public bool HasType {
+ get { return hasType; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType Type {
+ get { return type_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasNumber) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _phoneNumberFieldNames;
+ if (hasNumber) {
+ output.WriteString(1, field_names[0], Number);
+ }
+ if (hasType) {
+ output.WriteEnum(2, field_names[1], (int) Type, Type);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasNumber) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Number);
+ }
+ if (hasType) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2, (int) Type);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasNumber) {
+ hash ^= number_.GetHashCode();
+ }
+ if (hasType) {
+ hash ^= type_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ PhoneNumber other = obj as PhoneNumber;
+ if (other == null) return false;
+ if (hasNumber != other.hasNumber || (hasNumber && !number_.Equals(other.number_))) return false;
+ if (hasType != other.hasType || (hasType && !type_.Equals(other.type_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("number", hasNumber, number_, writer);
+ PrintField("type", hasType, type_, writer);
+ }
+ #endregion
+
+ public static PhoneNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private PhoneNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PhoneNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<PhoneNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(PhoneNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private PhoneNumber result;
+
+ private PhoneNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ PhoneNumber original = result;
+ result = new PhoneNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override PhoneNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.DefaultInstance; }
+ }
+
+ public override PhoneNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is PhoneNumber) {
+ return MergeFrom((PhoneNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(PhoneNumber other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ if (other.HasType) {
+ Type = other.Type;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_phoneNumberFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _phoneNumberFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasNumber = input.ReadString(ref result.number_);
+ break;
+ }
+ case 16: {
+ object unknown;
+ if(input.ReadEnum(ref result.type_, out unknown)) {
+ result.hasType = true;
+ } else if(unknown is int) {
+ }
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+
+ public bool HasType {
+ get { return result.hasType; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType Type {
+ get { return result.Type; }
+ set { SetType(value); }
+ }
+ public Builder SetType(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType value) {
+ PrepareBuilder();
+ result.hasType = true;
+ result.type_ = value;
+ return this;
+ }
+ public Builder ClearType() {
+ PrepareBuilder();
+ result.hasType = false;
+ result.type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType.HOME;
+ return this;
+ }
+ }
+ static PhoneNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Addresses : pb::GeneratedMessageLite<Addresses, Addresses.Builder> {
+ private Addresses() { }
+ private static readonly Addresses defaultInstance = new Addresses().MakeReadOnly();
+ private static readonly string[] _addressesFieldNames = new string[] { "address", "address2", "city", "state", "zip" };
+ private static readonly uint[] _addressesFieldTags = new uint[] { 10, 18, 26, 34, 45 };
+ public static Addresses DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Addresses DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Addresses ThisMessage {
+ get { return this; }
+ }
+
+ public const int AddressFieldNumber = 1;
+ private bool hasAddress;
+ private string address_ = "";
+ public bool HasAddress {
+ get { return hasAddress; }
+ }
+ public string Address {
+ get { return address_; }
+ }
+
+ public const int Address2FieldNumber = 2;
+ private bool hasAddress2;
+ private string address2_ = "";
+ public bool HasAddress2 {
+ get { return hasAddress2; }
+ }
+ public string Address2 {
+ get { return address2_; }
+ }
+
+ public const int CityFieldNumber = 3;
+ private bool hasCity;
+ private string city_ = "";
+ public bool HasCity {
+ get { return hasCity; }
+ }
+ public string City {
+ get { return city_; }
+ }
+
+ public const int StateFieldNumber = 4;
+ private bool hasState;
+ private string state_ = "";
+ public bool HasState {
+ get { return hasState; }
+ }
+ public string State {
+ get { return state_; }
+ }
+
+ public const int ZipFieldNumber = 5;
+ private bool hasZip;
+ private uint zip_;
+ public bool HasZip {
+ get { return hasZip; }
+ }
+ public uint Zip {
+ get { return zip_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasAddress) return false;
+ if (!hasCity) return false;
+ if (!hasState) return false;
+ if (!hasZip) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _addressesFieldNames;
+ if (hasAddress) {
+ output.WriteString(1, field_names[0], Address);
+ }
+ if (hasAddress2) {
+ output.WriteString(2, field_names[1], Address2);
+ }
+ if (hasCity) {
+ output.WriteString(3, field_names[2], City);
+ }
+ if (hasState) {
+ output.WriteString(4, field_names[3], State);
+ }
+ if (hasZip) {
+ output.WriteFixed32(5, field_names[4], Zip);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasAddress) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Address);
+ }
+ if (hasAddress2) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, Address2);
+ }
+ if (hasCity) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, City);
+ }
+ if (hasState) {
+ size += pb::CodedOutputStream.ComputeStringSize(4, State);
+ }
+ if (hasZip) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(5, Zip);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasAddress) {
+ hash ^= address_.GetHashCode();
+ }
+ if (hasAddress2) {
+ hash ^= address2_.GetHashCode();
+ }
+ if (hasCity) {
+ hash ^= city_.GetHashCode();
+ }
+ if (hasState) {
+ hash ^= state_.GetHashCode();
+ }
+ if (hasZip) {
+ hash ^= zip_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ Addresses other = obj as Addresses;
+ if (other == null) return false;
+ if (hasAddress != other.hasAddress || (hasAddress && !address_.Equals(other.address_))) return false;
+ if (hasAddress2 != other.hasAddress2 || (hasAddress2 && !address2_.Equals(other.address2_))) return false;
+ if (hasCity != other.hasCity || (hasCity && !city_.Equals(other.city_))) return false;
+ if (hasState != other.hasState || (hasState && !state_.Equals(other.state_))) return false;
+ if (hasZip != other.hasZip || (hasZip && !zip_.Equals(other.zip_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("address", hasAddress, address_, writer);
+ PrintField("address2", hasAddress2, address2_, writer);
+ PrintField("city", hasCity, city_, writer);
+ PrintField("state", hasState, state_, writer);
+ PrintField("zip", hasZip, zip_, writer);
+ }
+ #endregion
+
+ public static Addresses ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Addresses ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Addresses ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Addresses ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Addresses MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Addresses prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<Addresses, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Addresses cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Addresses result;
+
+ private Addresses PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Addresses original = result;
+ result = new Addresses();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Addresses MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override Addresses DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.DefaultInstance; }
+ }
+
+ public override Addresses BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is Addresses) {
+ return MergeFrom((Addresses) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Addresses other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasAddress) {
+ Address = other.Address;
+ }
+ if (other.HasAddress2) {
+ Address2 = other.Address2;
+ }
+ if (other.HasCity) {
+ City = other.City;
+ }
+ if (other.HasState) {
+ State = other.State;
+ }
+ if (other.HasZip) {
+ Zip = other.Zip;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_addressesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _addressesFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasAddress = input.ReadString(ref result.address_);
+ break;
+ }
+ case 18: {
+ result.hasAddress2 = input.ReadString(ref result.address2_);
+ break;
+ }
+ case 26: {
+ result.hasCity = input.ReadString(ref result.city_);
+ break;
+ }
+ case 34: {
+ result.hasState = input.ReadString(ref result.state_);
+ break;
+ }
+ case 45: {
+ result.hasZip = input.ReadFixed32(ref result.zip_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasAddress {
+ get { return result.hasAddress; }
+ }
+ public string Address {
+ get { return result.Address; }
+ set { SetAddress(value); }
+ }
+ public Builder SetAddress(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasAddress = true;
+ result.address_ = value;
+ return this;
+ }
+ public Builder ClearAddress() {
+ PrepareBuilder();
+ result.hasAddress = false;
+ result.address_ = "";
+ return this;
+ }
+
+ public bool HasAddress2 {
+ get { return result.hasAddress2; }
+ }
+ public string Address2 {
+ get { return result.Address2; }
+ set { SetAddress2(value); }
+ }
+ public Builder SetAddress2(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasAddress2 = true;
+ result.address2_ = value;
+ return this;
+ }
+ public Builder ClearAddress2() {
+ PrepareBuilder();
+ result.hasAddress2 = false;
+ result.address2_ = "";
+ return this;
+ }
+
+ public bool HasCity {
+ get { return result.hasCity; }
+ }
+ public string City {
+ get { return result.City; }
+ set { SetCity(value); }
+ }
+ public Builder SetCity(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasCity = true;
+ result.city_ = value;
+ return this;
+ }
+ public Builder ClearCity() {
+ PrepareBuilder();
+ result.hasCity = false;
+ result.city_ = "";
+ return this;
+ }
+
+ public bool HasState {
+ get { return result.hasState; }
+ }
+ public string State {
+ get { return result.State; }
+ set { SetState(value); }
+ }
+ public Builder SetState(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasState = true;
+ result.state_ = value;
+ return this;
+ }
+ public Builder ClearState() {
+ PrepareBuilder();
+ result.hasState = false;
+ result.state_ = "";
+ return this;
+ }
+
+ public bool HasZip {
+ get { return result.hasZip; }
+ }
+ public uint Zip {
+ get { return result.Zip; }
+ set { SetZip(value); }
+ }
+ public Builder SetZip(uint value) {
+ PrepareBuilder();
+ result.hasZip = true;
+ result.zip_ = value;
+ return this;
+ }
+ public Builder ClearZip() {
+ PrepareBuilder();
+ result.hasZip = false;
+ result.zip_ = 0;
+ return this;
+ }
+ }
+ static Addresses() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int EmailFieldNumber = 3;
+ private bool hasEmail;
+ private string email_ = "";
+ public bool HasEmail {
+ get { return hasEmail; }
+ }
+ public string Email {
+ get { return email_; }
+ }
+
+ public const int CodesFieldNumber = 10;
+ private int codesMemoizedSerializedSize;
+ private pbc::PopsicleList<int> codes_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> CodesList {
+ get { return pbc::Lists.AsReadOnly(codes_); }
+ }
+ public int CodesCount {
+ get { return codes_.Count; }
+ }
+ public int GetCodes(int index) {
+ return codes_[index];
+ }
+
+ public const int PhoneFieldNumber = 4;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber> phone_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber> PhoneList {
+ get { return phone_; }
+ }
+ public int PhoneCount {
+ get { return phone_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber GetPhone(int index) {
+ return phone_[index];
+ }
+
+ public const int AddressesFieldNumber = 5;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses> addresses_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses> AddressesList {
+ get { return addresses_; }
+ }
+ public int AddressesCount {
+ get { return addresses_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses GetAddresses(int index) {
+ return addresses_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasName) return false;
+ if (!hasId) return false;
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber element in PhoneList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testInteropPersonLiteFieldNames;
+ pb::ExtendableMessageLite<TestInteropPersonLite, TestInteropPersonLite.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasName) {
+ output.WriteString(1, field_names[4], Name);
+ }
+ if (hasId) {
+ output.WriteInt32(2, field_names[3], Id);
+ }
+ if (hasEmail) {
+ output.WriteString(3, field_names[2], Email);
+ }
+ if (phone_.Count > 0) {
+ output.WriteMessageArray(4, field_names[5], phone_);
+ }
+ if (addresses_.Count > 0) {
+ output.WriteGroupArray(5, field_names[0], addresses_);
+ }
+ if (codes_.Count > 0) {
+ output.WritePackedInt32Array(10, field_names[1], codesMemoizedSerializedSize, codes_);
+ }
+ extensionWriter.WriteUntil(200, output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ if (hasId) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Id);
+ }
+ if (hasEmail) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, Email);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in CodesList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (codes_.Count != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ codesMemoizedSerializedSize = dataSize;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber element in PhoneList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses element in AddressesList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(5, element);
+ }
+ size += ExtensionsSerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasName) {
+ hash ^= name_.GetHashCode();
+ }
+ if (hasId) {
+ hash ^= id_.GetHashCode();
+ }
+ if (hasEmail) {
+ hash ^= email_.GetHashCode();
+ }
+ foreach(int i in codes_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber i in phone_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses i in addresses_)
+ hash ^= i.GetHashCode();
+ hash ^= base.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestInteropPersonLite other = obj as TestInteropPersonLite;
+ if (other == null) return false;
+ if (hasName != other.hasName || (hasName && !name_.Equals(other.name_))) return false;
+ if (hasId != other.hasId || (hasId && !id_.Equals(other.id_))) return false;
+ if (hasEmail != other.hasEmail || (hasEmail && !email_.Equals(other.email_))) return false;
+ if(codes_.Count != other.codes_.Count) return false;
+ for(int ix=0; ix < codes_.Count; ix++)
+ if(!codes_[ix].Equals(other.codes_[ix])) return false;
+ if(phone_.Count != other.phone_.Count) return false;
+ for(int ix=0; ix < phone_.Count; ix++)
+ if(!phone_[ix].Equals(other.phone_[ix])) return false;
+ if(addresses_.Count != other.addresses_.Count) return false;
+ for(int ix=0; ix < addresses_.Count; ix++)
+ if(!addresses_[ix].Equals(other.addresses_[ix])) return false;
+ if (!base.Equals(other)) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("name", hasName, name_, writer);
+ PrintField("id", hasId, id_, writer);
+ PrintField("email", hasEmail, email_, writer);
+ PrintField("phone", phone_, writer);
+ PrintField("Addresses", addresses_, writer);
+ PrintField("codes", codes_, writer);
+ base.PrintTo(writer);
+ }
+ #endregion
+
+ public static TestInteropPersonLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestInteropPersonLite MakeReadOnly() {
+ codes_.MakeReadOnly();
+ phone_.MakeReadOnly();
+ addresses_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestInteropPersonLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilderLite<TestInteropPersonLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestInteropPersonLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestInteropPersonLite result;
+
+ private TestInteropPersonLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestInteropPersonLite original = result;
+ result = new TestInteropPersonLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestInteropPersonLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestInteropPersonLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.DefaultInstance; }
+ }
+
+ public override TestInteropPersonLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestInteropPersonLite) {
+ return MergeFrom((TestInteropPersonLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestInteropPersonLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.HasId) {
+ Id = other.Id;
+ }
+ if (other.HasEmail) {
+ Email = other.Email;
+ }
+ if (other.codes_.Count != 0) {
+ result.codes_.Add(other.codes_);
+ }
+ if (other.phone_.Count != 0) {
+ result.phone_.Add(other.phone_);
+ }
+ if (other.addresses_.Count != 0) {
+ result.addresses_.Add(other.addresses_);
+ }
+ this.MergeExtensionFields(other);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testInteropPersonLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testInteropPersonLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 16: {
+ result.hasId = input.ReadInt32(ref result.id_);
+ break;
+ }
+ case 26: {
+ result.hasEmail = input.ReadString(ref result.email_);
+ break;
+ }
+ case 34: {
+ input.ReadMessageArray(tag, field_name, result.phone_, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 43: {
+ input.ReadGroupArray(tag, field_name, result.addresses_, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 82:
+ case 80: {
+ input.ReadInt32Array(tag, field_name, result.codes_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.hasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ PrepareBuilder();
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ PrepareBuilder();
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasEmail {
+ get { return result.hasEmail; }
+ }
+ public string Email {
+ get { return result.Email; }
+ set { SetEmail(value); }
+ }
+ public Builder SetEmail(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasEmail = true;
+ result.email_ = value;
+ return this;
+ }
+ public Builder ClearEmail() {
+ PrepareBuilder();
+ result.hasEmail = false;
+ result.email_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> CodesList {
+ get { return PrepareBuilder().codes_; }
+ }
+ public int CodesCount {
+ get { return result.CodesCount; }
+ }
+ public int GetCodes(int index) {
+ return result.GetCodes(index);
+ }
+ public Builder SetCodes(int index, int value) {
+ PrepareBuilder();
+ result.codes_[index] = value;
+ return this;
+ }
+ public Builder AddCodes(int value) {
+ PrepareBuilder();
+ result.codes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeCodes(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.codes_.Add(values);
+ return this;
+ }
+ public Builder ClearCodes() {
+ PrepareBuilder();
+ result.codes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber> PhoneList {
+ get { return PrepareBuilder().phone_; }
+ }
+ public int PhoneCount {
+ get { return result.PhoneCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber GetPhone(int index) {
+ return result.GetPhone(index);
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.phone_[index] = value;
+ return this;
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.phone_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.phone_.Add(value);
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.phone_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangePhone(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber> values) {
+ PrepareBuilder();
+ result.phone_.Add(values);
+ return this;
+ }
+ public Builder ClearPhone() {
+ PrepareBuilder();
+ result.phone_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses> AddressesList {
+ get { return PrepareBuilder().addresses_; }
+ }
+ public int AddressesCount {
+ get { return result.AddressesCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses GetAddresses(int index) {
+ return result.GetAddresses(index);
+ }
+ public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.addresses_[index] = value;
+ return this;
+ }
+ public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.addresses_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.addresses_.Add(value);
+ return this;
+ }
+ public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.addresses_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeAddresses(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses> values) {
+ PrepareBuilder();
+ result.addresses_.Add(values);
+ return this;
+ }
+ public Builder ClearAddresses() {
+ PrepareBuilder();
+ result.addresses_.Clear();
+ return this;
+ }
+ }
+ static TestInteropPersonLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestInteropEmployeeIdLite : pb::GeneratedMessageLite<TestInteropEmployeeIdLite, TestInteropEmployeeIdLite.Builder> {
+ private TestInteropEmployeeIdLite() { }
+ private static readonly TestInteropEmployeeIdLite defaultInstance = new TestInteropEmployeeIdLite().MakeReadOnly();
+ private static readonly string[] _testInteropEmployeeIdLiteFieldNames = new string[] { "number" };
+ private static readonly uint[] _testInteropEmployeeIdLiteFieldTags = new uint[] { 10 };
+ public static TestInteropEmployeeIdLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestInteropEmployeeIdLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestInteropEmployeeIdLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasNumber) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testInteropEmployeeIdLiteFieldNames;
+ if (hasNumber) {
+ output.WriteString(1, field_names[0], Number);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasNumber) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Number);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasNumber) {
+ hash ^= number_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestInteropEmployeeIdLite other = obj as TestInteropEmployeeIdLite;
+ if (other == null) return false;
+ if (hasNumber != other.hasNumber || (hasNumber && !number_.Equals(other.number_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("number", hasNumber, number_, writer);
+ }
+ #endregion
+
+ public static TestInteropEmployeeIdLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestInteropEmployeeIdLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestInteropEmployeeIdLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestInteropEmployeeIdLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestInteropEmployeeIdLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestInteropEmployeeIdLite result;
+
+ private TestInteropEmployeeIdLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestInteropEmployeeIdLite original = result;
+ result = new TestInteropEmployeeIdLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestInteropEmployeeIdLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestInteropEmployeeIdLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite.DefaultInstance; }
+ }
+
+ public override TestInteropEmployeeIdLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestInteropEmployeeIdLite) {
+ return MergeFrom((TestInteropEmployeeIdLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestInteropEmployeeIdLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testInteropEmployeeIdLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testInteropEmployeeIdLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasNumber = input.ReadString(ref result.number_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+ }
+ static TestInteropEmployeeIdLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestUnpackedExtensionsLite : pb::ExtendableMessageLite<TestUnpackedExtensionsLite, TestUnpackedExtensionsLite.Builder> {
+ private TestUnpackedExtensionsLite() { }
+ private static readonly TestUnpackedExtensionsLite defaultInstance = new TestUnpackedExtensionsLite().MakeReadOnly();
+ private static readonly string[] _testUnpackedExtensionsLiteFieldNames = new string[] { };
+ private static readonly uint[] _testUnpackedExtensionsLiteFieldTags = new uint[] { };
+ public static TestUnpackedExtensionsLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestUnpackedExtensionsLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestUnpackedExtensionsLite ThisMessage {
+ get { return this; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testUnpackedExtensionsLiteFieldNames;
+ pb::ExtendableMessageLite<TestUnpackedExtensionsLite, TestUnpackedExtensionsLite.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ hash ^= base.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestUnpackedExtensionsLite other = obj as TestUnpackedExtensionsLite;
+ if (other == null) return false;
+ if (!base.Equals(other)) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ base.PrintTo(writer);
+ }
+ #endregion
+
+ public static TestUnpackedExtensionsLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedExtensionsLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensionsLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedExtensionsLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensionsLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedExtensionsLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestUnpackedExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestUnpackedExtensionsLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedExtensionsLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestUnpackedExtensionsLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestUnpackedExtensionsLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilderLite<TestUnpackedExtensionsLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestUnpackedExtensionsLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestUnpackedExtensionsLite result;
+
+ private TestUnpackedExtensionsLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestUnpackedExtensionsLite original = result;
+ result = new TestUnpackedExtensionsLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestUnpackedExtensionsLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestUnpackedExtensionsLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance; }
+ }
+
+ public override TestUnpackedExtensionsLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestUnpackedExtensionsLite) {
+ return MergeFrom((TestUnpackedExtensionsLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestUnpackedExtensionsLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestUnpackedExtensionsLite.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testUnpackedExtensionsLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testUnpackedExtensionsLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+ }
+ static TestUnpackedExtensionsLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestUnpackedTypesLite : pb::GeneratedMessageLite<TestUnpackedTypesLite, TestUnpackedTypesLite.Builder> {
+ private TestUnpackedTypesLite() { }
+ private static readonly TestUnpackedTypesLite defaultInstance = new TestUnpackedTypesLite().MakeReadOnly();
+ private static readonly string[] _testUnpackedTypesLiteFieldNames = new string[] { "unpacked_bool", "unpacked_double", "unpacked_enum", "unpacked_fixed32", "unpacked_fixed64", "unpacked_float", "unpacked_int32", "unpacked_int64", "unpacked_sfixed32", "unpacked_sfixed64", "unpacked_sint32", "unpacked_sint64", "unpacked_uint32", "unpacked_uint64" };
+ private static readonly uint[] _testUnpackedTypesLiteFieldTags = new uint[] { 816, 809, 824, 773, 777, 805, 720, 728, 789, 793, 752, 760, 736, 744 };
+ public static TestUnpackedTypesLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestUnpackedTypesLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestUnpackedTypesLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int UnpackedInt32FieldNumber = 90;
+ private pbc::PopsicleList<int> unpackedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedInt32List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt32_); }
+ }
+ public int UnpackedInt32Count {
+ get { return unpackedInt32_.Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return unpackedInt32_[index];
+ }
+
+ public const int UnpackedInt64FieldNumber = 91;
+ private pbc::PopsicleList<long> unpackedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedInt64List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt64_); }
+ }
+ public int UnpackedInt64Count {
+ get { return unpackedInt64_.Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return unpackedInt64_[index];
+ }
+
+ public const int UnpackedUint32FieldNumber = 92;
+ private pbc::PopsicleList<uint> unpackedUint32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> UnpackedUint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint32_); }
+ }
+ public int UnpackedUint32Count {
+ get { return unpackedUint32_.Count; }
+ }
+ public uint GetUnpackedUint32(int index) {
+ return unpackedUint32_[index];
+ }
+
+ public const int UnpackedUint64FieldNumber = 93;
+ private pbc::PopsicleList<ulong> unpackedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> UnpackedUint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint64_); }
+ }
+ public int UnpackedUint64Count {
+ get { return unpackedUint64_.Count; }
+ }
+ public ulong GetUnpackedUint64(int index) {
+ return unpackedUint64_[index];
+ }
+
+ public const int UnpackedSint32FieldNumber = 94;
+ private pbc::PopsicleList<int> unpackedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint32_); }
+ }
+ public int UnpackedSint32Count {
+ get { return unpackedSint32_.Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return unpackedSint32_[index];
+ }
+
+ public const int UnpackedSint64FieldNumber = 95;
+ private pbc::PopsicleList<long> unpackedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint64_); }
+ }
+ public int UnpackedSint64Count {
+ get { return unpackedSint64_.Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return unpackedSint64_[index];
+ }
+
+ public const int UnpackedFixed32FieldNumber = 96;
+ private pbc::PopsicleList<uint> unpackedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> UnpackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed32_); }
+ }
+ public int UnpackedFixed32Count {
+ get { return unpackedFixed32_.Count; }
+ }
+ public uint GetUnpackedFixed32(int index) {
+ return unpackedFixed32_[index];
+ }
+
+ public const int UnpackedFixed64FieldNumber = 97;
+ private pbc::PopsicleList<ulong> unpackedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> UnpackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed64_); }
+ }
+ public int UnpackedFixed64Count {
+ get { return unpackedFixed64_.Count; }
+ }
+ public ulong GetUnpackedFixed64(int index) {
+ return unpackedFixed64_[index];
+ }
+
+ public const int UnpackedSfixed32FieldNumber = 98;
+ private pbc::PopsicleList<int> unpackedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed32_); }
+ }
+ public int UnpackedSfixed32Count {
+ get { return unpackedSfixed32_.Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return unpackedSfixed32_[index];
+ }
+
+ public const int UnpackedSfixed64FieldNumber = 99;
+ private pbc::PopsicleList<long> unpackedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed64_); }
+ }
+ public int UnpackedSfixed64Count {
+ get { return unpackedSfixed64_.Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return unpackedSfixed64_[index];
+ }
+
+ public const int UnpackedFloatFieldNumber = 100;
+ private pbc::PopsicleList<float> unpackedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> UnpackedFloatList {
+ get { return pbc::Lists.AsReadOnly(unpackedFloat_); }
+ }
+ public int UnpackedFloatCount {
+ get { return unpackedFloat_.Count; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return unpackedFloat_[index];
+ }
+
+ public const int UnpackedDoubleFieldNumber = 101;
+ private pbc::PopsicleList<double> unpackedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> UnpackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(unpackedDouble_); }
+ }
+ public int UnpackedDoubleCount {
+ get { return unpackedDouble_.Count; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return unpackedDouble_[index];
+ }
+
+ public const int UnpackedBoolFieldNumber = 102;
+ private pbc::PopsicleList<bool> unpackedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> UnpackedBoolList {
+ get { return pbc::Lists.AsReadOnly(unpackedBool_); }
+ }
+ public int UnpackedBoolCount {
+ get { return unpackedBool_.Count; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return unpackedBool_[index];
+ }
+
+ public const int UnpackedEnumFieldNumber = 103;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite> unpackedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite> UnpackedEnumList {
+ get { return pbc::Lists.AsReadOnly(unpackedEnum_); }
+ }
+ public int UnpackedEnumCount {
+ get { return unpackedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite GetUnpackedEnum(int index) {
+ return unpackedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testUnpackedTypesLiteFieldNames;
+ if (unpackedInt32_.Count > 0) {
+ output.WriteInt32Array(90, field_names[6], unpackedInt32_);
+ }
+ if (unpackedInt64_.Count > 0) {
+ output.WriteInt64Array(91, field_names[7], unpackedInt64_);
+ }
+ if (unpackedUint32_.Count > 0) {
+ output.WriteUInt32Array(92, field_names[12], unpackedUint32_);
+ }
+ if (unpackedUint64_.Count > 0) {
+ output.WriteUInt64Array(93, field_names[13], unpackedUint64_);
+ }
+ if (unpackedSint32_.Count > 0) {
+ output.WriteSInt32Array(94, field_names[10], unpackedSint32_);
+ }
+ if (unpackedSint64_.Count > 0) {
+ output.WriteSInt64Array(95, field_names[11], unpackedSint64_);
+ }
+ if (unpackedFixed32_.Count > 0) {
+ output.WriteFixed32Array(96, field_names[3], unpackedFixed32_);
+ }
+ if (unpackedFixed64_.Count > 0) {
+ output.WriteFixed64Array(97, field_names[4], unpackedFixed64_);
+ }
+ if (unpackedSfixed32_.Count > 0) {
+ output.WriteSFixed32Array(98, field_names[8], unpackedSfixed32_);
+ }
+ if (unpackedSfixed64_.Count > 0) {
+ output.WriteSFixed64Array(99, field_names[9], unpackedSfixed64_);
+ }
+ if (unpackedFloat_.Count > 0) {
+ output.WriteFloatArray(100, field_names[5], unpackedFloat_);
+ }
+ if (unpackedDouble_.Count > 0) {
+ output.WriteDoubleArray(101, field_names[1], unpackedDouble_);
+ }
+ if (unpackedBool_.Count > 0) {
+ output.WriteBoolArray(102, field_names[0], unpackedBool_);
+ }
+ if (unpackedEnum_.Count > 0) {
+ output.WriteEnumArray(103, field_names[2], unpackedEnum_);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in UnpackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in UnpackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedFixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFloat_.Count;
+ size += dataSize;
+ size += 2 * unpackedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedDouble_.Count;
+ size += dataSize;
+ size += 2 * unpackedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * unpackedBool_.Count;
+ size += dataSize;
+ size += 2 * unpackedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ if (unpackedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite element in unpackedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * unpackedEnum_.Count;
+ }
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ foreach(int i in unpackedInt32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in unpackedInt64_)
+ hash ^= i.GetHashCode();
+ foreach(uint i in unpackedUint32_)
+ hash ^= i.GetHashCode();
+ foreach(ulong i in unpackedUint64_)
+ hash ^= i.GetHashCode();
+ foreach(int i in unpackedSint32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in unpackedSint64_)
+ hash ^= i.GetHashCode();
+ foreach(uint i in unpackedFixed32_)
+ hash ^= i.GetHashCode();
+ foreach(ulong i in unpackedFixed64_)
+ hash ^= i.GetHashCode();
+ foreach(int i in unpackedSfixed32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in unpackedSfixed64_)
+ hash ^= i.GetHashCode();
+ foreach(float i in unpackedFloat_)
+ hash ^= i.GetHashCode();
+ foreach(double i in unpackedDouble_)
+ hash ^= i.GetHashCode();
+ foreach(bool i in unpackedBool_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite i in unpackedEnum_)
+ hash ^= i.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestUnpackedTypesLite other = obj as TestUnpackedTypesLite;
+ if (other == null) return false;
+ if(unpackedInt32_.Count != other.unpackedInt32_.Count) return false;
+ for(int ix=0; ix < unpackedInt32_.Count; ix++)
+ if(!unpackedInt32_[ix].Equals(other.unpackedInt32_[ix])) return false;
+ if(unpackedInt64_.Count != other.unpackedInt64_.Count) return false;
+ for(int ix=0; ix < unpackedInt64_.Count; ix++)
+ if(!unpackedInt64_[ix].Equals(other.unpackedInt64_[ix])) return false;
+ if(unpackedUint32_.Count != other.unpackedUint32_.Count) return false;
+ for(int ix=0; ix < unpackedUint32_.Count; ix++)
+ if(!unpackedUint32_[ix].Equals(other.unpackedUint32_[ix])) return false;
+ if(unpackedUint64_.Count != other.unpackedUint64_.Count) return false;
+ for(int ix=0; ix < unpackedUint64_.Count; ix++)
+ if(!unpackedUint64_[ix].Equals(other.unpackedUint64_[ix])) return false;
+ if(unpackedSint32_.Count != other.unpackedSint32_.Count) return false;
+ for(int ix=0; ix < unpackedSint32_.Count; ix++)
+ if(!unpackedSint32_[ix].Equals(other.unpackedSint32_[ix])) return false;
+ if(unpackedSint64_.Count != other.unpackedSint64_.Count) return false;
+ for(int ix=0; ix < unpackedSint64_.Count; ix++)
+ if(!unpackedSint64_[ix].Equals(other.unpackedSint64_[ix])) return false;
+ if(unpackedFixed32_.Count != other.unpackedFixed32_.Count) return false;
+ for(int ix=0; ix < unpackedFixed32_.Count; ix++)
+ if(!unpackedFixed32_[ix].Equals(other.unpackedFixed32_[ix])) return false;
+ if(unpackedFixed64_.Count != other.unpackedFixed64_.Count) return false;
+ for(int ix=0; ix < unpackedFixed64_.Count; ix++)
+ if(!unpackedFixed64_[ix].Equals(other.unpackedFixed64_[ix])) return false;
+ if(unpackedSfixed32_.Count != other.unpackedSfixed32_.Count) return false;
+ for(int ix=0; ix < unpackedSfixed32_.Count; ix++)
+ if(!unpackedSfixed32_[ix].Equals(other.unpackedSfixed32_[ix])) return false;
+ if(unpackedSfixed64_.Count != other.unpackedSfixed64_.Count) return false;
+ for(int ix=0; ix < unpackedSfixed64_.Count; ix++)
+ if(!unpackedSfixed64_[ix].Equals(other.unpackedSfixed64_[ix])) return false;
+ if(unpackedFloat_.Count != other.unpackedFloat_.Count) return false;
+ for(int ix=0; ix < unpackedFloat_.Count; ix++)
+ if(!unpackedFloat_[ix].Equals(other.unpackedFloat_[ix])) return false;
+ if(unpackedDouble_.Count != other.unpackedDouble_.Count) return false;
+ for(int ix=0; ix < unpackedDouble_.Count; ix++)
+ if(!unpackedDouble_[ix].Equals(other.unpackedDouble_[ix])) return false;
+ if(unpackedBool_.Count != other.unpackedBool_.Count) return false;
+ for(int ix=0; ix < unpackedBool_.Count; ix++)
+ if(!unpackedBool_[ix].Equals(other.unpackedBool_[ix])) return false;
+ if(unpackedEnum_.Count != other.unpackedEnum_.Count) return false;
+ for(int ix=0; ix < unpackedEnum_.Count; ix++)
+ if(!unpackedEnum_[ix].Equals(other.unpackedEnum_[ix])) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("unpacked_int32", unpackedInt32_, writer);
+ PrintField("unpacked_int64", unpackedInt64_, writer);
+ PrintField("unpacked_uint32", unpackedUint32_, writer);
+ PrintField("unpacked_uint64", unpackedUint64_, writer);
+ PrintField("unpacked_sint32", unpackedSint32_, writer);
+ PrintField("unpacked_sint64", unpackedSint64_, writer);
+ PrintField("unpacked_fixed32", unpackedFixed32_, writer);
+ PrintField("unpacked_fixed64", unpackedFixed64_, writer);
+ PrintField("unpacked_sfixed32", unpackedSfixed32_, writer);
+ PrintField("unpacked_sfixed64", unpackedSfixed64_, writer);
+ PrintField("unpacked_float", unpackedFloat_, writer);
+ PrintField("unpacked_double", unpackedDouble_, writer);
+ PrintField("unpacked_bool", unpackedBool_, writer);
+ PrintField("unpacked_enum", unpackedEnum_, writer);
+ }
+ #endregion
+
+ public static TestUnpackedTypesLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypesLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypesLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypesLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypesLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypesLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypesLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestUnpackedTypesLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestUnpackedTypesLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypesLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestUnpackedTypesLite MakeReadOnly() {
+ unpackedInt32_.MakeReadOnly();
+ unpackedInt64_.MakeReadOnly();
+ unpackedUint32_.MakeReadOnly();
+ unpackedUint64_.MakeReadOnly();
+ unpackedSint32_.MakeReadOnly();
+ unpackedSint64_.MakeReadOnly();
+ unpackedFixed32_.MakeReadOnly();
+ unpackedFixed64_.MakeReadOnly();
+ unpackedSfixed32_.MakeReadOnly();
+ unpackedSfixed64_.MakeReadOnly();
+ unpackedFloat_.MakeReadOnly();
+ unpackedDouble_.MakeReadOnly();
+ unpackedBool_.MakeReadOnly();
+ unpackedEnum_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestUnpackedTypesLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestUnpackedTypesLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestUnpackedTypesLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestUnpackedTypesLite result;
+
+ private TestUnpackedTypesLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestUnpackedTypesLite original = result;
+ result = new TestUnpackedTypesLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestUnpackedTypesLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestUnpackedTypesLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypesLite.DefaultInstance; }
+ }
+
+ public override TestUnpackedTypesLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestUnpackedTypesLite) {
+ return MergeFrom((TestUnpackedTypesLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestUnpackedTypesLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypesLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.unpackedInt32_.Count != 0) {
+ result.unpackedInt32_.Add(other.unpackedInt32_);
+ }
+ if (other.unpackedInt64_.Count != 0) {
+ result.unpackedInt64_.Add(other.unpackedInt64_);
+ }
+ if (other.unpackedUint32_.Count != 0) {
+ result.unpackedUint32_.Add(other.unpackedUint32_);
+ }
+ if (other.unpackedUint64_.Count != 0) {
+ result.unpackedUint64_.Add(other.unpackedUint64_);
+ }
+ if (other.unpackedSint32_.Count != 0) {
+ result.unpackedSint32_.Add(other.unpackedSint32_);
+ }
+ if (other.unpackedSint64_.Count != 0) {
+ result.unpackedSint64_.Add(other.unpackedSint64_);
+ }
+ if (other.unpackedFixed32_.Count != 0) {
+ result.unpackedFixed32_.Add(other.unpackedFixed32_);
+ }
+ if (other.unpackedFixed64_.Count != 0) {
+ result.unpackedFixed64_.Add(other.unpackedFixed64_);
+ }
+ if (other.unpackedSfixed32_.Count != 0) {
+ result.unpackedSfixed32_.Add(other.unpackedSfixed32_);
+ }
+ if (other.unpackedSfixed64_.Count != 0) {
+ result.unpackedSfixed64_.Add(other.unpackedSfixed64_);
+ }
+ if (other.unpackedFloat_.Count != 0) {
+ result.unpackedFloat_.Add(other.unpackedFloat_);
+ }
+ if (other.unpackedDouble_.Count != 0) {
+ result.unpackedDouble_.Add(other.unpackedDouble_);
+ }
+ if (other.unpackedBool_.Count != 0) {
+ result.unpackedBool_.Add(other.unpackedBool_);
+ }
+ if (other.unpackedEnum_.Count != 0) {
+ result.unpackedEnum_.Add(other.unpackedEnum_);
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testUnpackedTypesLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testUnpackedTypesLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 722:
+ case 720: {
+ input.ReadInt32Array(tag, field_name, result.unpackedInt32_);
+ break;
+ }
+ case 730:
+ case 728: {
+ input.ReadInt64Array(tag, field_name, result.unpackedInt64_);
+ break;
+ }
+ case 738:
+ case 736: {
+ input.ReadUInt32Array(tag, field_name, result.unpackedUint32_);
+ break;
+ }
+ case 746:
+ case 744: {
+ input.ReadUInt64Array(tag, field_name, result.unpackedUint64_);
+ break;
+ }
+ case 754:
+ case 752: {
+ input.ReadSInt32Array(tag, field_name, result.unpackedSint32_);
+ break;
+ }
+ case 762:
+ case 760: {
+ input.ReadSInt64Array(tag, field_name, result.unpackedSint64_);
+ break;
+ }
+ case 770:
+ case 773: {
+ input.ReadFixed32Array(tag, field_name, result.unpackedFixed32_);
+ break;
+ }
+ case 778:
+ case 777: {
+ input.ReadFixed64Array(tag, field_name, result.unpackedFixed64_);
+ break;
+ }
+ case 786:
+ case 789: {
+ input.ReadSFixed32Array(tag, field_name, result.unpackedSfixed32_);
+ break;
+ }
+ case 794:
+ case 793: {
+ input.ReadSFixed64Array(tag, field_name, result.unpackedSfixed64_);
+ break;
+ }
+ case 802:
+ case 805: {
+ input.ReadFloatArray(tag, field_name, result.unpackedFloat_);
+ break;
+ }
+ case 810:
+ case 809: {
+ input.ReadDoubleArray(tag, field_name, result.unpackedDouble_);
+ break;
+ }
+ case 818:
+ case 816: {
+ input.ReadBoolArray(tag, field_name, result.unpackedBool_);
+ break;
+ }
+ case 826:
+ case 824: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite>(tag, field_name, result.unpackedEnum_, out unknownItems);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> UnpackedInt32List {
+ get { return PrepareBuilder().unpackedInt32_; }
+ }
+ public int UnpackedInt32Count {
+ get { return result.UnpackedInt32Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return result.GetUnpackedInt32(index);
+ }
+ public Builder SetUnpackedInt32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt32(int value) {
+ PrepareBuilder();
+ result.unpackedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedInt32() {
+ PrepareBuilder();
+ result.unpackedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedInt64List {
+ get { return PrepareBuilder().unpackedInt64_; }
+ }
+ public int UnpackedInt64Count {
+ get { return result.UnpackedInt64Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return result.GetUnpackedInt64(index);
+ }
+ public Builder SetUnpackedInt64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt64(long value) {
+ PrepareBuilder();
+ result.unpackedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedInt64() {
+ PrepareBuilder();
+ result.unpackedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> UnpackedUint32List {
+ get { return PrepareBuilder().unpackedUint32_; }
+ }
+ public int UnpackedUint32Count {
+ get { return result.UnpackedUint32Count; }
+ }
+ public uint GetUnpackedUint32(int index) {
+ return result.GetUnpackedUint32(index);
+ }
+ public Builder SetUnpackedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.unpackedUint32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedUint32(uint value) {
+ PrepareBuilder();
+ result.unpackedUint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.unpackedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedUint32() {
+ PrepareBuilder();
+ result.unpackedUint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> UnpackedUint64List {
+ get { return PrepareBuilder().unpackedUint64_; }
+ }
+ public int UnpackedUint64Count {
+ get { return result.UnpackedUint64Count; }
+ }
+ public ulong GetUnpackedUint64(int index) {
+ return result.GetUnpackedUint64(index);
+ }
+ public Builder SetUnpackedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.unpackedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedUint64(ulong value) {
+ PrepareBuilder();
+ result.unpackedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.unpackedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedUint64() {
+ PrepareBuilder();
+ result.unpackedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSint32List {
+ get { return PrepareBuilder().unpackedSint32_; }
+ }
+ public int UnpackedSint32Count {
+ get { return result.UnpackedSint32Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return result.GetUnpackedSint32(index);
+ }
+ public Builder SetUnpackedSint32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint32(int value) {
+ PrepareBuilder();
+ result.unpackedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSint32() {
+ PrepareBuilder();
+ result.unpackedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSint64List {
+ get { return PrepareBuilder().unpackedSint64_; }
+ }
+ public int UnpackedSint64Count {
+ get { return result.UnpackedSint64Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return result.GetUnpackedSint64(index);
+ }
+ public Builder SetUnpackedSint64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint64(long value) {
+ PrepareBuilder();
+ result.unpackedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSint64() {
+ PrepareBuilder();
+ result.unpackedSint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> UnpackedFixed32List {
+ get { return PrepareBuilder().unpackedFixed32_; }
+ }
+ public int UnpackedFixed32Count {
+ get { return result.UnpackedFixed32Count; }
+ }
+ public uint GetUnpackedFixed32(int index) {
+ return result.GetUnpackedFixed32(index);
+ }
+ public Builder SetUnpackedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.unpackedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFixed32(uint value) {
+ PrepareBuilder();
+ result.unpackedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.unpackedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFixed32() {
+ PrepareBuilder();
+ result.unpackedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> UnpackedFixed64List {
+ get { return PrepareBuilder().unpackedFixed64_; }
+ }
+ public int UnpackedFixed64Count {
+ get { return result.UnpackedFixed64Count; }
+ }
+ public ulong GetUnpackedFixed64(int index) {
+ return result.GetUnpackedFixed64(index);
+ }
+ public Builder SetUnpackedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.unpackedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFixed64(ulong value) {
+ PrepareBuilder();
+ result.unpackedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.unpackedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFixed64() {
+ PrepareBuilder();
+ result.unpackedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSfixed32List {
+ get { return PrepareBuilder().unpackedSfixed32_; }
+ }
+ public int UnpackedSfixed32Count {
+ get { return result.UnpackedSfixed32Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return result.GetUnpackedSfixed32(index);
+ }
+ public Builder SetUnpackedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.unpackedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed32(int value) {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed32() {
+ PrepareBuilder();
+ result.unpackedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSfixed64List {
+ get { return PrepareBuilder().unpackedSfixed64_; }
+ }
+ public int UnpackedSfixed64Count {
+ get { return result.UnpackedSfixed64Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return result.GetUnpackedSfixed64(index);
+ }
+ public Builder SetUnpackedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.unpackedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed64(long value) {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed64() {
+ PrepareBuilder();
+ result.unpackedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> UnpackedFloatList {
+ get { return PrepareBuilder().unpackedFloat_; }
+ }
+ public int UnpackedFloatCount {
+ get { return result.UnpackedFloatCount; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return result.GetUnpackedFloat(index);
+ }
+ public Builder SetUnpackedFloat(int index, float value) {
+ PrepareBuilder();
+ result.unpackedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFloat(float value) {
+ PrepareBuilder();
+ result.unpackedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.unpackedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedFloat() {
+ PrepareBuilder();
+ result.unpackedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> UnpackedDoubleList {
+ get { return PrepareBuilder().unpackedDouble_; }
+ }
+ public int UnpackedDoubleCount {
+ get { return result.UnpackedDoubleCount; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return result.GetUnpackedDouble(index);
+ }
+ public Builder SetUnpackedDouble(int index, double value) {
+ PrepareBuilder();
+ result.unpackedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedDouble(double value) {
+ PrepareBuilder();
+ result.unpackedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.unpackedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedDouble() {
+ PrepareBuilder();
+ result.unpackedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> UnpackedBoolList {
+ get { return PrepareBuilder().unpackedBool_; }
+ }
+ public int UnpackedBoolCount {
+ get { return result.UnpackedBoolCount; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return result.GetUnpackedBool(index);
+ }
+ public Builder SetUnpackedBool(int index, bool value) {
+ PrepareBuilder();
+ result.unpackedBool_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedBool(bool value) {
+ PrepareBuilder();
+ result.unpackedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.unpackedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedBool() {
+ PrepareBuilder();
+ result.unpackedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite> UnpackedEnumList {
+ get { return PrepareBuilder().unpackedEnum_; }
+ }
+ public int UnpackedEnumCount {
+ get { return result.UnpackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite GetUnpackedEnum(int index) {
+ return result.GetUnpackedEnum(index);
+ }
+ public Builder SetUnpackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite value) {
+ PrepareBuilder();
+ result.unpackedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedEnum(global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite value) {
+ PrepareBuilder();
+ result.unpackedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.UnpackedTypesForeignEnumLite> values) {
+ PrepareBuilder();
+ result.unpackedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearUnpackedEnum() {
+ PrepareBuilder();
+ result.unpackedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestUnpackedTypesLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BucketOfBytes : pb::GeneratedMessageLite<BucketOfBytes, BucketOfBytes.Builder> {
+ private BucketOfBytes() { }
+ private static readonly BucketOfBytes defaultInstance = new BucketOfBytes().MakeReadOnly();
+ private static readonly string[] _bucketOfBytesFieldNames = new string[] { "value" };
+ private static readonly uint[] _bucketOfBytesFieldTags = new uint[] { 10 };
+ public static BucketOfBytes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BucketOfBytes DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BucketOfBytes ThisMessage {
+ get { return this; }
+ }
+
+ public const int ValueFieldNumber = 1;
+ private bool hasValue;
+ private pb::ByteString value_ = pb::ByteString.Empty;
+ public bool HasValue {
+ get { return hasValue; }
+ }
+ public pb::ByteString Value {
+ get { return value_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _bucketOfBytesFieldNames;
+ if (hasValue) {
+ output.WriteBytes(1, field_names[0], Value);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasValue) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, Value);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasValue) {
+ hash ^= value_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ BucketOfBytes other = obj as BucketOfBytes;
+ if (other == null) return false;
+ if (hasValue != other.hasValue || (hasValue && !value_.Equals(other.value_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("value", hasValue, value_, writer);
+ }
+ #endregion
+
+ public static BucketOfBytes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BucketOfBytes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BucketOfBytes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BucketOfBytes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BucketOfBytes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BucketOfBytes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BucketOfBytes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BucketOfBytes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BucketOfBytes ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BucketOfBytes ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BucketOfBytes MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BucketOfBytes prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<BucketOfBytes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BucketOfBytes cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BucketOfBytes result;
+
+ private BucketOfBytes PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BucketOfBytes original = result;
+ result = new BucketOfBytes();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BucketOfBytes MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override BucketOfBytes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BucketOfBytes.DefaultInstance; }
+ }
+
+ public override BucketOfBytes BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is BucketOfBytes) {
+ return MergeFrom((BucketOfBytes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BucketOfBytes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BucketOfBytes.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasValue) {
+ Value = other.Value;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_bucketOfBytesFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _bucketOfBytesFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasValue = input.ReadBytes(ref result.value_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasValue {
+ get { return result.hasValue; }
+ }
+ public pb::ByteString Value {
+ get { return result.Value; }
+ set { SetValue(value); }
+ }
+ public Builder SetValue(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = value;
+ return this;
+ }
+ public Builder ClearValue() {
+ PrepareBuilder();
+ result.hasValue = false;
+ result.value_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static BucketOfBytes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class BucketOfBytesEx : pb::GeneratedMessageLite<BucketOfBytesEx, BucketOfBytesEx.Builder> {
+ private BucketOfBytesEx() { }
+ private static readonly BucketOfBytesEx defaultInstance = new BucketOfBytesEx().MakeReadOnly();
+ private static readonly string[] _bucketOfBytesExFieldNames = new string[] { "value", "value2" };
+ private static readonly uint[] _bucketOfBytesExFieldTags = new uint[] { 10, 2042 };
+ public static BucketOfBytesEx DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BucketOfBytesEx DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override BucketOfBytesEx ThisMessage {
+ get { return this; }
+ }
+
+ public const int ValueFieldNumber = 1;
+ private bool hasValue;
+ private pb::ByteString value_ = pb::ByteString.Empty;
+ public bool HasValue {
+ get { return hasValue; }
+ }
+ public pb::ByteString Value {
+ get { return value_; }
+ }
+
+ public const int Value2FieldNumber = 255;
+ private bool hasValue2;
+ private pb::ByteString value2_ = pb::ByteString.Empty;
+ public bool HasValue2 {
+ get { return hasValue2; }
+ }
+ public pb::ByteString Value2 {
+ get { return value2_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _bucketOfBytesExFieldNames;
+ if (hasValue) {
+ output.WriteBytes(1, field_names[0], Value);
+ }
+ if (hasValue2) {
+ output.WriteBytes(255, field_names[1], Value2);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasValue) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, Value);
+ }
+ if (hasValue2) {
+ size += pb::CodedOutputStream.ComputeBytesSize(255, Value2);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasValue) {
+ hash ^= value_.GetHashCode();
+ }
+ if (hasValue2) {
+ hash ^= value2_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ BucketOfBytesEx other = obj as BucketOfBytesEx;
+ if (other == null) return false;
+ if (hasValue != other.hasValue || (hasValue && !value_.Equals(other.value_))) return false;
+ if (hasValue2 != other.hasValue2 || (hasValue2 && !value2_.Equals(other.value2_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("value", hasValue, value_, writer);
+ PrintField("value2", hasValue2, value2_, writer);
+ }
+ #endregion
+
+ public static BucketOfBytesEx ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BucketOfBytesEx ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BucketOfBytesEx ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BucketOfBytesEx ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BucketOfBytesEx ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BucketOfBytesEx ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BucketOfBytesEx ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BucketOfBytesEx ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BucketOfBytesEx ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BucketOfBytesEx ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private BucketOfBytesEx MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BucketOfBytesEx prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<BucketOfBytesEx, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(BucketOfBytesEx cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private BucketOfBytesEx result;
+
+ private BucketOfBytesEx PrepareBuilder() {
+ if (resultIsReadOnly) {
+ BucketOfBytesEx original = result;
+ result = new BucketOfBytesEx();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override BucketOfBytesEx MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override BucketOfBytesEx DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BucketOfBytesEx.DefaultInstance; }
+ }
+
+ public override BucketOfBytesEx BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is BucketOfBytesEx) {
+ return MergeFrom((BucketOfBytesEx) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BucketOfBytesEx other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BucketOfBytesEx.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasValue) {
+ Value = other.Value;
+ }
+ if (other.HasValue2) {
+ Value2 = other.Value2;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_bucketOfBytesExFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _bucketOfBytesExFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasValue = input.ReadBytes(ref result.value_);
+ break;
+ }
+ case 2042: {
+ result.hasValue2 = input.ReadBytes(ref result.value2_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasValue {
+ get { return result.hasValue; }
+ }
+ public pb::ByteString Value {
+ get { return result.Value; }
+ set { SetValue(value); }
+ }
+ public Builder SetValue(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasValue = true;
+ result.value_ = value;
+ return this;
+ }
+ public Builder ClearValue() {
+ PrepareBuilder();
+ result.hasValue = false;
+ result.value_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasValue2 {
+ get { return result.hasValue2; }
+ }
+ public pb::ByteString Value2 {
+ get { return result.Value2; }
+ set { SetValue2(value); }
+ }
+ public Builder SetValue2(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasValue2 = true;
+ result.value2_ = value;
+ return this;
+ }
+ public Builder ClearValue2() {
+ PrepareBuilder();
+ result.hasValue2 = false;
+ result.value2_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static BucketOfBytesEx() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestExtrasLite.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImport.cs b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImport.cs
new file mode 100644
index 00000000..81f9ee53
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImport.cs
@@ -0,0 +1,347 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_import.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestImport {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_import_ImportMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ImportMessage, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder> internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestImport() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0LnByb3RvEhhwcm90",
+ "b2J1Zl91bml0dGVzdF9pbXBvcnQaLGdvb2dsZS9wcm90b2J1Zi91bml0dGVz",
+ "dF9pbXBvcnRfcHVibGljLnByb3RvIhoKDUltcG9ydE1lc3NhZ2USCQoBZBgB",
+ "IAEoBSo8CgpJbXBvcnRFbnVtEg4KCklNUE9SVF9GT08QBxIOCgpJTVBPUlRf",
+ "QkFSEAgSDgoKSU1QT1JUX0JBWhAJQkMKGGNvbS5nb29nbGUucHJvdG9idWYu",
+ "dGVzdEgB+AEBqgIhR29vZ2xlLlByb3RvY29sQnVmZmVycy5UZXN0UHJvdG9z",
+ "UAA="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_import_ImportMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ImportMessage, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder>(internal__static_protobuf_unittest_import_ImportMessage__Descriptor,
+ new string[] { "D", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ImportEnum {
+ IMPORT_FOO = 7,
+ IMPORT_BAR = 8,
+ IMPORT_BAZ = 9,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ImportMessage : pb::GeneratedMessage<ImportMessage, ImportMessage.Builder> {
+ private ImportMessage() { }
+ private static readonly ImportMessage defaultInstance = new ImportMessage().MakeReadOnly();
+ private static readonly string[] _importMessageFieldNames = new string[] { "d" };
+ private static readonly uint[] _importMessageFieldTags = new uint[] { 8 };
+ public static ImportMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ImportMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ImportMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImport.internal__static_protobuf_unittest_import_ImportMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ImportMessage, ImportMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImport.internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable; }
+ }
+
+ public const int DFieldNumber = 1;
+ private bool hasD;
+ private int d_;
+ public bool HasD {
+ get { return hasD; }
+ }
+ public int D {
+ get { return d_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _importMessageFieldNames;
+ if (hasD) {
+ output.WriteInt32(1, field_names[0], D);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasD) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, D);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ImportMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ImportMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ImportMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ImportMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<ImportMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ImportMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ImportMessage result;
+
+ private ImportMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ImportMessage original = result;
+ result = new ImportMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ImportMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessage.Descriptor; }
+ }
+
+ public override ImportMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance; }
+ }
+
+ public override ImportMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ImportMessage) {
+ return MergeFrom((ImportMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ImportMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasD) {
+ D = other.D;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_importMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _importMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasD = input.ReadInt32(ref result.d_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasD {
+ get { return result.hasD; }
+ }
+ public int D {
+ get { return result.D; }
+ set { SetD(value); }
+ }
+ public Builder SetD(int value) {
+ PrepareBuilder();
+ result.hasD = true;
+ result.d_ = value;
+ return this;
+ }
+ public Builder ClearD() {
+ PrepareBuilder();
+ result.hasD = false;
+ result.d_ = 0;
+ return this;
+ }
+ }
+ static ImportMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestImport.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportLite.cs b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportLite.cs
new file mode 100644
index 00000000..1fee16e0
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportLite.cs
@@ -0,0 +1,311 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_import_lite.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestImportLite {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ #endregion
+ #region Extensions
+ internal static readonly object Descriptor;
+ static UnittestImportLite() {
+ Descriptor = null;
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ImportEnumLite {
+ IMPORT_LITE_FOO = 7,
+ IMPORT_LITE_BAR = 8,
+ IMPORT_LITE_BAZ = 9,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ImportMessageLite : pb::GeneratedMessageLite<ImportMessageLite, ImportMessageLite.Builder> {
+ private ImportMessageLite() { }
+ private static readonly ImportMessageLite defaultInstance = new ImportMessageLite().MakeReadOnly();
+ private static readonly string[] _importMessageLiteFieldNames = new string[] { "d" };
+ private static readonly uint[] _importMessageLiteFieldTags = new uint[] { 8 };
+ public static ImportMessageLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ImportMessageLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ImportMessageLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int DFieldNumber = 1;
+ private bool hasD;
+ private int d_;
+ public bool HasD {
+ get { return hasD; }
+ }
+ public int D {
+ get { return d_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _importMessageLiteFieldNames;
+ if (hasD) {
+ output.WriteInt32(1, field_names[0], D);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasD) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, D);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasD) {
+ hash ^= d_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ ImportMessageLite other = obj as ImportMessageLite;
+ if (other == null) return false;
+ if (hasD != other.hasD || (hasD && !d_.Equals(other.d_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("d", hasD, d_, writer);
+ }
+ #endregion
+
+ public static ImportMessageLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessageLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ImportMessageLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ImportMessageLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ImportMessageLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<ImportMessageLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ImportMessageLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ImportMessageLite result;
+
+ private ImportMessageLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ImportMessageLite original = result;
+ result = new ImportMessageLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ImportMessageLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override ImportMessageLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance; }
+ }
+
+ public override ImportMessageLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is ImportMessageLite) {
+ return MergeFrom((ImportMessageLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ImportMessageLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasD) {
+ D = other.D;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_importMessageLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _importMessageLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasD = input.ReadInt32(ref result.d_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasD {
+ get { return result.hasD; }
+ }
+ public int D {
+ get { return result.D; }
+ set { SetD(value); }
+ }
+ public Builder SetD(int value) {
+ PrepareBuilder();
+ result.hasD = true;
+ result.d_ = value;
+ return this;
+ }
+ public Builder ClearD() {
+ PrepareBuilder();
+ result.hasD = false;
+ result.d_ = 0;
+ return this;
+ }
+ }
+ static ImportMessageLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestImportLite.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublic.cs b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublic.cs
new file mode 100644
index 00000000..4185cac7
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublic.cs
@@ -0,0 +1,333 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_import_public.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestImportPublic {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage, global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder> internal__static_protobuf_unittest_import_PublicImportMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnittestImportPublic() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Cixnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90",
+ "bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0IiAKE1B1YmxpY0ltcG9ydE1l",
+ "c3NhZ2USCQoBZRgBIAEoBUI+Chhjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3Sq",
+ "AiFHb29nbGUuUHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3M="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_import_PublicImportMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.PublicImportMessage, global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Builder>(internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor,
+ new string[] { "E", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class PublicImportMessage : pb::GeneratedMessage<PublicImportMessage, PublicImportMessage.Builder> {
+ private PublicImportMessage() { }
+ private static readonly PublicImportMessage defaultInstance = new PublicImportMessage().MakeReadOnly();
+ private static readonly string[] _publicImportMessageFieldNames = new string[] { "e" };
+ private static readonly uint[] _publicImportMessageFieldTags = new uint[] { 8 };
+ public static PublicImportMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PublicImportMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override PublicImportMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.internal__static_protobuf_unittest_import_PublicImportMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<PublicImportMessage, PublicImportMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.internal__static_protobuf_unittest_import_PublicImportMessage__FieldAccessorTable; }
+ }
+
+ public const int EFieldNumber = 1;
+ private bool hasE;
+ private int e_;
+ public bool HasE {
+ get { return hasE; }
+ }
+ public int E {
+ get { return e_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _publicImportMessageFieldNames;
+ if (hasE) {
+ output.WriteInt32(1, field_names[0], E);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasE) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, E);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static PublicImportMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PublicImportMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PublicImportMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private PublicImportMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PublicImportMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder<PublicImportMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(PublicImportMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private PublicImportMessage result;
+
+ private PublicImportMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ PublicImportMessage original = result;
+ result = new PublicImportMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override PublicImportMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.Descriptor; }
+ }
+
+ public override PublicImportMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance; }
+ }
+
+ public override PublicImportMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is PublicImportMessage) {
+ return MergeFrom((PublicImportMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(PublicImportMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.PublicImportMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasE) {
+ E = other.E;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_publicImportMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _publicImportMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasE = input.ReadInt32(ref result.e_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasE {
+ get { return result.hasE; }
+ }
+ public int E {
+ get { return result.E; }
+ set { SetE(value); }
+ }
+ public Builder SetE(int value) {
+ PrepareBuilder();
+ result.hasE = true;
+ result.e_ = value;
+ return this;
+ }
+ public Builder ClearE() {
+ PrepareBuilder();
+ result.hasE = false;
+ result.e_ = 0;
+ return this;
+ }
+ }
+ static PublicImportMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestImportPublic.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublicLite.cs b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublicLite.cs
new file mode 100644
index 00000000..6dabfcdb
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestImportPublicLite.cs
@@ -0,0 +1,302 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_import_public_lite.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestImportPublicLite {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ #endregion
+ #region Extensions
+ internal static readonly object Descriptor;
+ static UnittestImportPublicLite() {
+ Descriptor = null;
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class PublicImportMessageLite : pb::GeneratedMessageLite<PublicImportMessageLite, PublicImportMessageLite.Builder> {
+ private PublicImportMessageLite() { }
+ private static readonly PublicImportMessageLite defaultInstance = new PublicImportMessageLite().MakeReadOnly();
+ private static readonly string[] _publicImportMessageLiteFieldNames = new string[] { "e" };
+ private static readonly uint[] _publicImportMessageLiteFieldTags = new uint[] { 8 };
+ public static PublicImportMessageLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PublicImportMessageLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override PublicImportMessageLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int EFieldNumber = 1;
+ private bool hasE;
+ private int e_;
+ public bool HasE {
+ get { return hasE; }
+ }
+ public int E {
+ get { return e_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _publicImportMessageLiteFieldNames;
+ if (hasE) {
+ output.WriteInt32(1, field_names[0], E);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasE) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, E);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasE) {
+ hash ^= e_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ PublicImportMessageLite other = obj as PublicImportMessageLite;
+ if (other == null) return false;
+ if (hasE != other.hasE || (hasE && !e_.Equals(other.e_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("e", hasE, e_, writer);
+ }
+ #endregion
+
+ public static PublicImportMessageLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PublicImportMessageLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessageLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PublicImportMessageLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessageLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PublicImportMessageLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PublicImportMessageLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PublicImportMessageLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PublicImportMessageLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PublicImportMessageLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private PublicImportMessageLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PublicImportMessageLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<PublicImportMessageLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(PublicImportMessageLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private PublicImportMessageLite result;
+
+ private PublicImportMessageLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ PublicImportMessageLite original = result;
+ result = new PublicImportMessageLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override PublicImportMessageLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override PublicImportMessageLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite.DefaultInstance; }
+ }
+
+ public override PublicImportMessageLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is PublicImportMessageLite) {
+ return MergeFrom((PublicImportMessageLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(PublicImportMessageLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasE) {
+ E = other.E;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_publicImportMessageLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _publicImportMessageLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasE = input.ReadInt32(ref result.e_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasE {
+ get { return result.hasE; }
+ }
+ public int E {
+ get { return result.E; }
+ set { SetE(value); }
+ }
+ public Builder SetE(int value) {
+ PrepareBuilder();
+ result.hasE = true;
+ result.e_ = value;
+ return this;
+ }
+ public Builder ClearE() {
+ PrepareBuilder();
+ result.hasE = false;
+ result.e_ = 0;
+ return this;
+ }
+ }
+ static PublicImportMessageLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestImportPublicLite.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLite.cs b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLite.cs
new file mode 100644
index 00000000..bf0da956
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLite.cs
@@ -0,0 +1,12493 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_lite.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestLite {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalInt32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalInt64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalUint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalUint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalFixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalFixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSfixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSfixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalFloatExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalDoubleExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalBoolExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalStringExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalBytesExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalGroupExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalNestedMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalForeignMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalImportMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalNestedEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalForeignEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalImportEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalStringPieceExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalCordExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalPublicImportMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalLazyMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedInt32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedInt64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedUint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedUint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedFixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedFixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSfixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSfixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedFloatExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedDoubleExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedBoolExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedStringExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedBytesExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedGroupExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedNestedMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedForeignMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedImportMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedNestedEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedForeignEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedImportEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedStringPieceExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedCordExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedLazyMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultInt32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultInt64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultUint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultUint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultFixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultFixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSfixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSfixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultFloatExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultDoubleExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultBoolExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultStringExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultBytesExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultNestedEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultForeignEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultImportEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultStringPieceExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultCordExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofUint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofNestedMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofStringExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofBytesExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedInt32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedInt64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedUint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedUint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedFixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedFixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSfixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSfixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedFloatExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedDoubleExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedBoolExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtensionLite.NestedExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.OptionalExt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.RepeatedExt);
+ }
+ #endregion
+ #region Extensions
+ public const int OptionalInt32ExtensionLiteFieldNumber = 1;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> OptionalInt32ExtensionLite;
+ public const int OptionalInt64ExtensionLiteFieldNumber = 2;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> OptionalInt64ExtensionLite;
+ public const int OptionalUint32ExtensionLiteFieldNumber = 3;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> OptionalUint32ExtensionLite;
+ public const int OptionalUint64ExtensionLiteFieldNumber = 4;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> OptionalUint64ExtensionLite;
+ public const int OptionalSint32ExtensionLiteFieldNumber = 5;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> OptionalSint32ExtensionLite;
+ public const int OptionalSint64ExtensionLiteFieldNumber = 6;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> OptionalSint64ExtensionLite;
+ public const int OptionalFixed32ExtensionLiteFieldNumber = 7;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> OptionalFixed32ExtensionLite;
+ public const int OptionalFixed64ExtensionLiteFieldNumber = 8;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> OptionalFixed64ExtensionLite;
+ public const int OptionalSfixed32ExtensionLiteFieldNumber = 9;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> OptionalSfixed32ExtensionLite;
+ public const int OptionalSfixed64ExtensionLiteFieldNumber = 10;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> OptionalSfixed64ExtensionLite;
+ public const int OptionalFloatExtensionLiteFieldNumber = 11;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float> OptionalFloatExtensionLite;
+ public const int OptionalDoubleExtensionLiteFieldNumber = 12;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double> OptionalDoubleExtensionLite;
+ public const int OptionalBoolExtensionLiteFieldNumber = 13;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool> OptionalBoolExtensionLite;
+ public const int OptionalStringExtensionLiteFieldNumber = 14;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> OptionalStringExtensionLite;
+ public const int OptionalBytesExtensionLiteFieldNumber = 15;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString> OptionalBytesExtensionLite;
+ public const int OptionalGroupExtensionLiteFieldNumber = 16;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension_lite> OptionalGroupExtensionLite;
+ public const int OptionalNestedMessageExtensionLiteFieldNumber = 18;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> OptionalNestedMessageExtensionLite;
+ public const int OptionalForeignMessageExtensionLiteFieldNumber = 19;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> OptionalForeignMessageExtensionLite;
+ public const int OptionalImportMessageExtensionLiteFieldNumber = 20;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> OptionalImportMessageExtensionLite;
+ public const int OptionalNestedEnumExtensionLiteFieldNumber = 21;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> OptionalNestedEnumExtensionLite;
+ public const int OptionalForeignEnumExtensionLiteFieldNumber = 22;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> OptionalForeignEnumExtensionLite;
+ public const int OptionalImportEnumExtensionLiteFieldNumber = 23;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> OptionalImportEnumExtensionLite;
+ public const int OptionalStringPieceExtensionLiteFieldNumber = 24;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> OptionalStringPieceExtensionLite;
+ public const int OptionalCordExtensionLiteFieldNumber = 25;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> OptionalCordExtensionLite;
+ public const int OptionalPublicImportMessageExtensionLiteFieldNumber = 26;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite> OptionalPublicImportMessageExtensionLite;
+ public const int OptionalLazyMessageExtensionLiteFieldNumber = 27;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> OptionalLazyMessageExtensionLite;
+ public const int RepeatedInt32ExtensionLiteFieldNumber = 31;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> RepeatedInt32ExtensionLite;
+ public const int RepeatedInt64ExtensionLiteFieldNumber = 32;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> RepeatedInt64ExtensionLite;
+ public const int RepeatedUint32ExtensionLiteFieldNumber = 33;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> RepeatedUint32ExtensionLite;
+ public const int RepeatedUint64ExtensionLiteFieldNumber = 34;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> RepeatedUint64ExtensionLite;
+ public const int RepeatedSint32ExtensionLiteFieldNumber = 35;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> RepeatedSint32ExtensionLite;
+ public const int RepeatedSint64ExtensionLiteFieldNumber = 36;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> RepeatedSint64ExtensionLite;
+ public const int RepeatedFixed32ExtensionLiteFieldNumber = 37;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> RepeatedFixed32ExtensionLite;
+ public const int RepeatedFixed64ExtensionLiteFieldNumber = 38;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> RepeatedFixed64ExtensionLite;
+ public const int RepeatedSfixed32ExtensionLiteFieldNumber = 39;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> RepeatedSfixed32ExtensionLite;
+ public const int RepeatedSfixed64ExtensionLiteFieldNumber = 40;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> RepeatedSfixed64ExtensionLite;
+ public const int RepeatedFloatExtensionLiteFieldNumber = 41;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float> RepeatedFloatExtensionLite;
+ public const int RepeatedDoubleExtensionLiteFieldNumber = 42;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double> RepeatedDoubleExtensionLite;
+ public const int RepeatedBoolExtensionLiteFieldNumber = 43;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool> RepeatedBoolExtensionLite;
+ public const int RepeatedStringExtensionLiteFieldNumber = 44;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> RepeatedStringExtensionLite;
+ public const int RepeatedBytesExtensionLiteFieldNumber = 45;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString> RepeatedBytesExtensionLite;
+ public const int RepeatedGroupExtensionLiteFieldNumber = 46;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension_lite> RepeatedGroupExtensionLite;
+ public const int RepeatedNestedMessageExtensionLiteFieldNumber = 48;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> RepeatedNestedMessageExtensionLite;
+ public const int RepeatedForeignMessageExtensionLiteFieldNumber = 49;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> RepeatedForeignMessageExtensionLite;
+ public const int RepeatedImportMessageExtensionLiteFieldNumber = 50;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> RepeatedImportMessageExtensionLite;
+ public const int RepeatedNestedEnumExtensionLiteFieldNumber = 51;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> RepeatedNestedEnumExtensionLite;
+ public const int RepeatedForeignEnumExtensionLiteFieldNumber = 52;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> RepeatedForeignEnumExtensionLite;
+ public const int RepeatedImportEnumExtensionLiteFieldNumber = 53;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> RepeatedImportEnumExtensionLite;
+ public const int RepeatedStringPieceExtensionLiteFieldNumber = 54;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> RepeatedStringPieceExtensionLite;
+ public const int RepeatedCordExtensionLiteFieldNumber = 55;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> RepeatedCordExtensionLite;
+ public const int RepeatedLazyMessageExtensionLiteFieldNumber = 57;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> RepeatedLazyMessageExtensionLite;
+ public const int DefaultInt32ExtensionLiteFieldNumber = 61;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> DefaultInt32ExtensionLite;
+ public const int DefaultInt64ExtensionLiteFieldNumber = 62;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> DefaultInt64ExtensionLite;
+ public const int DefaultUint32ExtensionLiteFieldNumber = 63;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> DefaultUint32ExtensionLite;
+ public const int DefaultUint64ExtensionLiteFieldNumber = 64;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> DefaultUint64ExtensionLite;
+ public const int DefaultSint32ExtensionLiteFieldNumber = 65;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> DefaultSint32ExtensionLite;
+ public const int DefaultSint64ExtensionLiteFieldNumber = 66;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> DefaultSint64ExtensionLite;
+ public const int DefaultFixed32ExtensionLiteFieldNumber = 67;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> DefaultFixed32ExtensionLite;
+ public const int DefaultFixed64ExtensionLiteFieldNumber = 68;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> DefaultFixed64ExtensionLite;
+ public const int DefaultSfixed32ExtensionLiteFieldNumber = 69;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> DefaultSfixed32ExtensionLite;
+ public const int DefaultSfixed64ExtensionLiteFieldNumber = 70;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> DefaultSfixed64ExtensionLite;
+ public const int DefaultFloatExtensionLiteFieldNumber = 71;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float> DefaultFloatExtensionLite;
+ public const int DefaultDoubleExtensionLiteFieldNumber = 72;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double> DefaultDoubleExtensionLite;
+ public const int DefaultBoolExtensionLiteFieldNumber = 73;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool> DefaultBoolExtensionLite;
+ public const int DefaultStringExtensionLiteFieldNumber = 74;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> DefaultStringExtensionLite;
+ public const int DefaultBytesExtensionLiteFieldNumber = 75;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString> DefaultBytesExtensionLite;
+ public const int DefaultNestedEnumExtensionLiteFieldNumber = 81;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> DefaultNestedEnumExtensionLite;
+ public const int DefaultForeignEnumExtensionLiteFieldNumber = 82;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> DefaultForeignEnumExtensionLite;
+ public const int DefaultImportEnumExtensionLiteFieldNumber = 83;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> DefaultImportEnumExtensionLite;
+ public const int DefaultStringPieceExtensionLiteFieldNumber = 84;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> DefaultStringPieceExtensionLite;
+ public const int DefaultCordExtensionLiteFieldNumber = 85;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> DefaultCordExtensionLite;
+ public const int OneofUint32ExtensionLiteFieldNumber = 111;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> OneofUint32ExtensionLite;
+ public const int OneofNestedMessageExtensionLiteFieldNumber = 112;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> OneofNestedMessageExtensionLite;
+ public const int OneofStringExtensionLiteFieldNumber = 113;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> OneofStringExtensionLite;
+ public const int OneofBytesExtensionLiteFieldNumber = 114;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString> OneofBytesExtensionLite;
+ public const int PackedInt32ExtensionLiteFieldNumber = 90;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int> PackedInt32ExtensionLite;
+ public const int PackedInt64ExtensionLiteFieldNumber = 91;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long> PackedInt64ExtensionLite;
+ public const int PackedUint32ExtensionLiteFieldNumber = 92;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, uint> PackedUint32ExtensionLite;
+ public const int PackedUint64ExtensionLiteFieldNumber = 93;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, ulong> PackedUint64ExtensionLite;
+ public const int PackedSint32ExtensionLiteFieldNumber = 94;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int> PackedSint32ExtensionLite;
+ public const int PackedSint64ExtensionLiteFieldNumber = 95;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long> PackedSint64ExtensionLite;
+ public const int PackedFixed32ExtensionLiteFieldNumber = 96;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, uint> PackedFixed32ExtensionLite;
+ public const int PackedFixed64ExtensionLiteFieldNumber = 97;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, ulong> PackedFixed64ExtensionLite;
+ public const int PackedSfixed32ExtensionLiteFieldNumber = 98;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int> PackedSfixed32ExtensionLite;
+ public const int PackedSfixed64ExtensionLiteFieldNumber = 99;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long> PackedSfixed64ExtensionLite;
+ public const int PackedFloatExtensionLiteFieldNumber = 100;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, float> PackedFloatExtensionLite;
+ public const int PackedDoubleExtensionLiteFieldNumber = 101;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, double> PackedDoubleExtensionLite;
+ public const int PackedBoolExtensionLiteFieldNumber = 102;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, bool> PackedBoolExtensionLite;
+ public const int PackedEnumExtensionLiteFieldNumber = 103;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> PackedEnumExtensionLite;
+ #endregion
+
+ #region Static variables
+ #endregion
+ #region Extensions
+ internal static readonly object Descriptor;
+ static UnittestLite() {
+ Descriptor = null;
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtensionLite.NestedExtension =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.TestNestedExtensionLite.nested_extension",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(int),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtensionLite.NestedExtensionFieldNumber,
+ pbd::FieldType.Int32);
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.OptionalExt =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite>(
+ "protobuf_unittest.TestParsingMergeLite.optional_ext",
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.OptionalExtFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.RepeatedExt =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite>(
+ "protobuf_unittest.TestParsingMergeLite.repeated_ext",
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.RepeatedExtFieldNumber,
+ pbd::FieldType.Message,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalInt32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.optional_int32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(int),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalInt32ExtensionLiteFieldNumber,
+ pbd::FieldType.Int32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalInt64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.optional_int64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(long),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalInt64ExtensionLiteFieldNumber,
+ pbd::FieldType.Int64);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalUint32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.optional_uint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(uint),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalUint32ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalUint64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.optional_uint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(ulong),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalUint64ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt64);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSint32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.optional_sint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(int),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSint32ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSint64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.optional_sint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(long),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSint64ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt64);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalFixed32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.optional_fixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(uint),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalFixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalFixed64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.optional_fixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(ulong),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalFixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed64);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSfixed32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.optional_sfixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(int),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSfixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSfixed64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.optional_sfixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(long),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalSfixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed64);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalFloatExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float>(
+ "protobuf_unittest.optional_float_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(float),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalFloatExtensionLiteFieldNumber,
+ pbd::FieldType.Float);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalDoubleExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double>(
+ "protobuf_unittest.optional_double_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(double),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalDoubleExtensionLiteFieldNumber,
+ pbd::FieldType.Double);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalBoolExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool>(
+ "protobuf_unittest.optional_bool_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(bool),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalBoolExtensionLiteFieldNumber,
+ pbd::FieldType.Bool);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalStringExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.optional_string_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalStringExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalBytesExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString>(
+ "protobuf_unittest.optional_bytes_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalBytesExtensionLiteFieldNumber,
+ pbd::FieldType.Bytes);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalGroupExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension_lite>(
+ "protobuf_unittest.optionalgroup_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension_lite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalGroupExtensionLiteFieldNumber,
+ pbd::FieldType.Group);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalNestedMessageExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage>(
+ "protobuf_unittest.optional_nested_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalNestedMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalForeignMessageExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite>(
+ "protobuf_unittest.optional_foreign_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalForeignMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalImportMessageExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite>(
+ "protobuf_unittest.optional_import_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalImportMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalNestedEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(
+ "protobuf_unittest.optional_nested_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum),
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalNestedEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalForeignEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(
+ "protobuf_unittest.optional_foreign_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite),
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalForeignEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalImportEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(
+ "protobuf_unittest.optional_import_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite),
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalImportEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalStringPieceExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.optional_string_piece_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalStringPieceExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalCordExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.optional_cord_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalCordExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalPublicImportMessageExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite>(
+ "protobuf_unittest.optional_public_import_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalPublicImportMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalLazyMessageExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage>(
+ "protobuf_unittest.optional_lazy_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OptionalLazyMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedInt32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.repeated_int32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedInt32ExtensionLiteFieldNumber,
+ pbd::FieldType.Int32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedInt64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.repeated_int64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedInt64ExtensionLiteFieldNumber,
+ pbd::FieldType.Int64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedUint32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.repeated_uint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedUint32ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedUint64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.repeated_uint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedUint64ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSint32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.repeated_sint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSint32ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSint64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.repeated_sint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSint64ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedFixed32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.repeated_fixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedFixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedFixed64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.repeated_fixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedFixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSfixed32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.repeated_sfixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSfixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSfixed64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.repeated_sfixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedSfixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedFloatExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float>(
+ "protobuf_unittest.repeated_float_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedFloatExtensionLiteFieldNumber,
+ pbd::FieldType.Float,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedDoubleExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double>(
+ "protobuf_unittest.repeated_double_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedDoubleExtensionLiteFieldNumber,
+ pbd::FieldType.Double,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedBoolExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool>(
+ "protobuf_unittest.repeated_bool_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedBoolExtensionLiteFieldNumber,
+ pbd::FieldType.Bool,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedStringExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.repeated_string_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedStringExtensionLiteFieldNumber,
+ pbd::FieldType.String,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedBytesExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString>(
+ "protobuf_unittest.repeated_bytes_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedBytesExtensionLiteFieldNumber,
+ pbd::FieldType.Bytes,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedGroupExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension_lite>(
+ "protobuf_unittest.repeatedgroup_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension_lite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedGroupExtensionLiteFieldNumber,
+ pbd::FieldType.Group,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedNestedMessageExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage>(
+ "protobuf_unittest.repeated_nested_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedNestedMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedForeignMessageExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite>(
+ "protobuf_unittest.repeated_foreign_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedForeignMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedImportMessageExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite>(
+ "protobuf_unittest.repeated_import_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedImportMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedNestedEnumExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(
+ "protobuf_unittest.repeated_nested_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedNestedEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedForeignEnumExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(
+ "protobuf_unittest.repeated_foreign_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedForeignEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedImportEnumExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(
+ "protobuf_unittest.repeated_import_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedImportEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedStringPieceExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.repeated_string_piece_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedStringPieceExtensionLiteFieldNumber,
+ pbd::FieldType.String,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedCordExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.repeated_cord_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedCordExtensionLiteFieldNumber,
+ pbd::FieldType.String,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedLazyMessageExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage>(
+ "protobuf_unittest.repeated_lazy_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.RepeatedLazyMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultInt32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.default_int32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 41,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultInt32ExtensionLiteFieldNumber,
+ pbd::FieldType.Int32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultInt64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.default_int64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 42L,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultInt64ExtensionLiteFieldNumber,
+ pbd::FieldType.Int64);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultUint32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.default_uint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 43,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultUint32ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultUint64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.default_uint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 44UL,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultUint64ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt64);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSint32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.default_sint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ -45,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSint32ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSint64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.default_sint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 46L,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSint64ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt64);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultFixed32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.default_fixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 47,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultFixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultFixed64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.default_fixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 48UL,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultFixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed64);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSfixed32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.default_sfixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 49,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSfixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSfixed64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.default_sfixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ -50L,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultSfixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed64);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultFloatExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float>(
+ "protobuf_unittest.default_float_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 51.5F,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultFloatExtensionLiteFieldNumber,
+ pbd::FieldType.Float);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultDoubleExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double>(
+ "protobuf_unittest.default_double_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 52000D,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultDoubleExtensionLiteFieldNumber,
+ pbd::FieldType.Double);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultBoolExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool>(
+ "protobuf_unittest.default_bool_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ true,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultBoolExtensionLiteFieldNumber,
+ pbd::FieldType.Bool);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultStringExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.default_string_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ "hello",
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultStringExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultBytesExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString>(
+ "protobuf_unittest.default_bytes_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ pb::ByteString.FromBase64("d29ybGQ="),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultBytesExtensionLiteFieldNumber,
+ pbd::FieldType.Bytes);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultNestedEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(
+ "protobuf_unittest.default_nested_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum.BAR,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultNestedEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultForeignEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(
+ "protobuf_unittest.default_foreign_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite.FOREIGN_LITE_BAR,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultForeignEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultImportEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(
+ "protobuf_unittest.default_import_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.ImportEnumLite.IMPORT_LITE_BAR,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultImportEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultStringPieceExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.default_string_piece_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ "abc",
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultStringPieceExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultCordExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.default_cord_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ "123",
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.DefaultCordExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofUint32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.oneof_uint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(uint),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofUint32ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt32);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofNestedMessageExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage>(
+ "protobuf_unittest.oneof_nested_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofNestedMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofStringExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.oneof_string_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofStringExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofBytesExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString>(
+ "protobuf_unittest.oneof_bytes_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.OneofBytesExtensionLiteFieldNumber,
+ pbd::FieldType.Bytes);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedInt32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int>(
+ "protobuf_unittest.packed_int32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedInt32ExtensionLiteFieldNumber,
+ pbd::FieldType.Int32,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedInt64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long>(
+ "protobuf_unittest.packed_int64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedInt64ExtensionLiteFieldNumber,
+ pbd::FieldType.Int64,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedUint32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, uint>(
+ "protobuf_unittest.packed_uint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedUint32ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt32,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedUint64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, ulong>(
+ "protobuf_unittest.packed_uint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedUint64ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt64,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSint32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int>(
+ "protobuf_unittest.packed_sint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSint32ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt32,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSint64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long>(
+ "protobuf_unittest.packed_sint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSint64ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt64,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedFixed32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, uint>(
+ "protobuf_unittest.packed_fixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedFixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed32,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedFixed64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, ulong>(
+ "protobuf_unittest.packed_fixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedFixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed64,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSfixed32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int>(
+ "protobuf_unittest.packed_sfixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSfixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed32,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSfixed64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long>(
+ "protobuf_unittest.packed_sfixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedSfixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed64,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedFloatExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, float>(
+ "protobuf_unittest.packed_float_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedFloatExtensionLiteFieldNumber,
+ pbd::FieldType.Float,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedDoubleExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, double>(
+ "protobuf_unittest.packed_double_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedDoubleExtensionLiteFieldNumber,
+ pbd::FieldType.Double,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedBoolExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, bool>(
+ "protobuf_unittest.packed_bool_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedBoolExtensionLiteFieldNumber,
+ pbd::FieldType.Bool,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedEnumExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(
+ "protobuf_unittest.packed_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnittestLite.PackedEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum,
+ true);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ForeignEnumLite {
+ FOREIGN_LITE_FOO = 4,
+ FOREIGN_LITE_BAR = 5,
+ FOREIGN_LITE_BAZ = 6,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestAllTypesLite : pb::GeneratedMessageLite<TestAllTypesLite, TestAllTypesLite.Builder> {
+ private TestAllTypesLite() { }
+ private static readonly TestAllTypesLite defaultInstance = new TestAllTypesLite().MakeReadOnly();
+ private static readonly string[] _testAllTypesLiteFieldNames = new string[] { "default_bool", "default_bytes", "default_cord", "default_double", "default_fixed32", "default_fixed64", "default_float", "default_foreign_enum", "default_import_enum", "default_int32", "default_int64", "default_nested_enum", "default_sfixed32", "default_sfixed64", "default_sint32", "default_sint64", "default_string", "default_string_piece", "default_uint32", "default_uint64", "oneof_bytes", "oneof_nested_message", "oneof_string", "oneof_uint32", "optional_bool", "optional_bytes", "optional_cord", "optional_double", "optional_fixed32", "optional_fixed64", "optional_float", "optional_foreign_enum", "optional_foreign_message", "optional_import_enum", "optional_import_message", "optional_int32", "optional_int64", "optional_lazy_message", "optional_nested_enum", "optional_nested_message", "optional_public_import_message", "optional_sfixed32", "optional_sfixed64", "optional_sint32", "optional_sint64", "optional_string", "optional_string_piece", "optional_uint32", "optional_uint64", "optionalgroup", "repeated_bool", "repeated_bytes", "repeated_cord", "repeated_double", "repeated_fixed32", "repeated_fixed64", "repeated_float", "repeated_foreign_enum", "repeated_foreign_message", "repeated_import_enum", "repeated_import_message", "repeated_int32", "repeated_int64", "repeated_lazy_message", "repeated_nested_enum", "repeated_nested_message", "repeated_sfixed32", "repeated_sfixed64", "repeated_sint32", "repeated_sint64", "repeated_string", "repeated_string_piece", "repeated_uint32", "repeated_uint64", "repeatedgroup" };
+ private static readonly uint[] _testAllTypesLiteFieldTags = new uint[] { 584, 602, 682, 577, 541, 545, 573, 656, 664, 488, 496, 648, 557, 561, 520, 528, 594, 674, 504, 512, 914, 898, 906, 888, 104, 122, 202, 97, 61, 65, 93, 176, 154, 184, 162, 8, 16, 218, 168, 146, 210, 77, 81, 40, 48, 114, 194, 24, 32, 131, 344, 362, 442, 337, 301, 305, 333, 416, 394, 424, 402, 248, 256, 458, 408, 386, 317, 321, 280, 288, 354, 434, 264, 272, 371 };
+ public static TestAllTypesLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllTypesLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestAllTypesLite ThisMessage {
+ get { return this; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum NestedEnum {
+ FOO = 1,
+ BAR = 2,
+ BAZ = 3,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class NestedMessage : pb::GeneratedMessageLite<NestedMessage, NestedMessage.Builder> {
+ private NestedMessage() { }
+ private static readonly NestedMessage defaultInstance = new NestedMessage().MakeReadOnly();
+ private static readonly string[] _nestedMessageFieldNames = new string[] { "bb" };
+ private static readonly uint[] _nestedMessageFieldTags = new uint[] { 8 };
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private int bb_;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _nestedMessageFieldNames;
+ if (hasBb) {
+ output.WriteInt32(1, field_names[0], Bb);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasBb) {
+ hash ^= bb_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ NestedMessage other = obj as NestedMessage;
+ if (other == null) return false;
+ if (hasBb != other.hasBb || (hasBb && !bb_.Equals(other.bb_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("bb", hasBb, bb_, writer);
+ }
+ #endregion
+
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private NestedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(NestedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private NestedMessage result;
+
+ private NestedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ NestedMessage original = result;
+ result = new NestedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_nestedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _nestedMessageFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasBb = input.ReadInt32(ref result.bb_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasBb {
+ get { return result.hasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ PrepareBuilder();
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ PrepareBuilder();
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup : pb::GeneratedMessageLite<OptionalGroup, OptionalGroup.Builder> {
+ private OptionalGroup() { }
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
+ private static readonly string[] _optionalGroupFieldNames = new string[] { "a" };
+ private static readonly uint[] _optionalGroupFieldTags = new uint[] { 136 };
+ public static OptionalGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup ThisMessage {
+ get { return this; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(17, field_names[0], A);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasA) {
+ hash ^= a_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ OptionalGroup other = obj as OptionalGroup;
+ if (other == null) return false;
+ if (hasA != other.hasA || (hasA && !a_.Equals(other.a_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("a", hasA, a_, writer);
+ }
+ #endregion
+
+ public static OptionalGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<OptionalGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
+
+ private OptionalGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup original = result;
+ result = new OptionalGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public override OptionalGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is OptionalGroup) {
+ return MergeFrom((OptionalGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 136: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup : pb::GeneratedMessageLite<RepeatedGroup, RepeatedGroup.Builder> {
+ private RepeatedGroup() { }
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
+ private static readonly string[] _repeatedGroupFieldNames = new string[] { "a" };
+ private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 376 };
+ public static RepeatedGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup ThisMessage {
+ get { return this; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupFieldNames;
+ if (hasA) {
+ output.WriteInt32(47, field_names[0], A);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasA) {
+ hash ^= a_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ RepeatedGroup other = obj as RepeatedGroup;
+ if (other == null) return false;
+ if (hasA != other.hasA || (hasA && !a_.Equals(other.a_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("a", hasA, a_, writer);
+ }
+ #endregion
+
+ public static RepeatedGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<RepeatedGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
+
+ private RepeatedGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup original = result;
+ result = new RepeatedGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.DefaultInstance; }
+ }
+
+ public override RepeatedGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is RepeatedGroup) {
+ return MergeFrom((RepeatedGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 376: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ private object oneofField_;
+ public enum OneofFieldOneofCase {
+ OneofUint32 = 111,
+ OneofNestedMessage = 112,
+ OneofString = 113,
+ OneofBytes = 114,
+ None = 0,
+ }
+ private OneofFieldOneofCase oneofFieldCase_ = OneofFieldOneofCase.None;
+ public OneofFieldOneofCase OneofFieldCase {
+ get { return oneofFieldCase_; }
+ }
+
+ public const int OptionalInt32FieldNumber = 1;
+ private bool hasOptionalInt32;
+ private int optionalInt32_;
+ public bool HasOptionalInt32 {
+ get { return hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public const int OptionalInt64FieldNumber = 2;
+ private bool hasOptionalInt64;
+ private long optionalInt64_;
+ public bool HasOptionalInt64 {
+ get { return hasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return optionalInt64_; }
+ }
+
+ public const int OptionalUint32FieldNumber = 3;
+ private bool hasOptionalUint32;
+ private uint optionalUint32_;
+ public bool HasOptionalUint32 {
+ get { return hasOptionalUint32; }
+ }
+ public uint OptionalUint32 {
+ get { return optionalUint32_; }
+ }
+
+ public const int OptionalUint64FieldNumber = 4;
+ private bool hasOptionalUint64;
+ private ulong optionalUint64_;
+ public bool HasOptionalUint64 {
+ get { return hasOptionalUint64; }
+ }
+ public ulong OptionalUint64 {
+ get { return optionalUint64_; }
+ }
+
+ public const int OptionalSint32FieldNumber = 5;
+ private bool hasOptionalSint32;
+ private int optionalSint32_;
+ public bool HasOptionalSint32 {
+ get { return hasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return optionalSint32_; }
+ }
+
+ public const int OptionalSint64FieldNumber = 6;
+ private bool hasOptionalSint64;
+ private long optionalSint64_;
+ public bool HasOptionalSint64 {
+ get { return hasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return optionalSint64_; }
+ }
+
+ public const int OptionalFixed32FieldNumber = 7;
+ private bool hasOptionalFixed32;
+ private uint optionalFixed32_;
+ public bool HasOptionalFixed32 {
+ get { return hasOptionalFixed32; }
+ }
+ public uint OptionalFixed32 {
+ get { return optionalFixed32_; }
+ }
+
+ public const int OptionalFixed64FieldNumber = 8;
+ private bool hasOptionalFixed64;
+ private ulong optionalFixed64_;
+ public bool HasOptionalFixed64 {
+ get { return hasOptionalFixed64; }
+ }
+ public ulong OptionalFixed64 {
+ get { return optionalFixed64_; }
+ }
+
+ public const int OptionalSfixed32FieldNumber = 9;
+ private bool hasOptionalSfixed32;
+ private int optionalSfixed32_;
+ public bool HasOptionalSfixed32 {
+ get { return hasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return optionalSfixed32_; }
+ }
+
+ public const int OptionalSfixed64FieldNumber = 10;
+ private bool hasOptionalSfixed64;
+ private long optionalSfixed64_;
+ public bool HasOptionalSfixed64 {
+ get { return hasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return optionalSfixed64_; }
+ }
+
+ public const int OptionalFloatFieldNumber = 11;
+ private bool hasOptionalFloat;
+ private float optionalFloat_;
+ public bool HasOptionalFloat {
+ get { return hasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return optionalFloat_; }
+ }
+
+ public const int OptionalDoubleFieldNumber = 12;
+ private bool hasOptionalDouble;
+ private double optionalDouble_;
+ public bool HasOptionalDouble {
+ get { return hasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return optionalDouble_; }
+ }
+
+ public const int OptionalBoolFieldNumber = 13;
+ private bool hasOptionalBool;
+ private bool optionalBool_;
+ public bool HasOptionalBool {
+ get { return hasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return optionalBool_; }
+ }
+
+ public const int OptionalStringFieldNumber = 14;
+ private bool hasOptionalString;
+ private string optionalString_ = "";
+ public bool HasOptionalString {
+ get { return hasOptionalString; }
+ }
+ public string OptionalString {
+ get { return optionalString_; }
+ }
+
+ public const int OptionalBytesFieldNumber = 15;
+ private bool hasOptionalBytes;
+ private pb::ByteString optionalBytes_ = pb::ByteString.Empty;
+ public bool HasOptionalBytes {
+ get { return hasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return optionalBytes_; }
+ }
+
+ public const int OptionalGroupFieldNumber = 16;
+ private bool hasOptionalGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup optionalGroup_;
+ public bool HasOptionalGroup {
+ get { return hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup OptionalGroup {
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public const int OptionalNestedMessageFieldNumber = 18;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage optionalNestedMessage_;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int OptionalForeignMessageFieldNumber = 19;
+ private bool hasOptionalForeignMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite optionalForeignMessage_;
+ public bool HasOptionalForeignMessage {
+ get { return hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite OptionalForeignMessage {
+ get { return optionalForeignMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance; }
+ }
+
+ public const int OptionalImportMessageFieldNumber = 20;
+ private bool hasOptionalImportMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ImportMessageLite optionalImportMessage_;
+ public bool HasOptionalImportMessage {
+ get { return hasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessageLite OptionalImportMessage {
+ get { return optionalImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance; }
+ }
+
+ public const int OptionalNestedEnumFieldNumber = 21;
+ private bool hasOptionalNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum.FOO;
+ public bool HasOptionalNestedEnum {
+ get { return hasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum OptionalNestedEnum {
+ get { return optionalNestedEnum_; }
+ }
+
+ public const int OptionalForeignEnumFieldNumber = 22;
+ private bool hasOptionalForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite.FOREIGN_LITE_FOO;
+ public bool HasOptionalForeignEnum {
+ get { return hasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite OptionalForeignEnum {
+ get { return optionalForeignEnum_; }
+ }
+
+ public const int OptionalImportEnumFieldNumber = 23;
+ private bool hasOptionalImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnumLite optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnumLite.IMPORT_LITE_FOO;
+ public bool HasOptionalImportEnum {
+ get { return hasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite OptionalImportEnum {
+ get { return optionalImportEnum_; }
+ }
+
+ public const int OptionalStringPieceFieldNumber = 24;
+ private bool hasOptionalStringPiece;
+ private string optionalStringPiece_ = "";
+ public bool HasOptionalStringPiece {
+ get { return hasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return optionalStringPiece_; }
+ }
+
+ public const int OptionalCordFieldNumber = 25;
+ private bool hasOptionalCord;
+ private string optionalCord_ = "";
+ public bool HasOptionalCord {
+ get { return hasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return optionalCord_; }
+ }
+
+ public const int OptionalPublicImportMessageFieldNumber = 26;
+ private bool hasOptionalPublicImportMessage;
+ private global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite optionalPublicImportMessage_;
+ public bool HasOptionalPublicImportMessage {
+ get { return hasOptionalPublicImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite OptionalPublicImportMessage {
+ get { return optionalPublicImportMessage_ ?? global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite.DefaultInstance; }
+ }
+
+ public const int OptionalLazyMessageFieldNumber = 27;
+ private bool hasOptionalLazyMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage optionalLazyMessage_;
+ public bool HasOptionalLazyMessage {
+ get { return hasOptionalLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage OptionalLazyMessage {
+ get { return optionalLazyMessage_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int RepeatedInt32FieldNumber = 31;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 32;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedUint32FieldNumber = 33;
+ private pbc::PopsicleList<uint> repeatedUint32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> RepeatedUint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint32_); }
+ }
+ public int RepeatedUint32Count {
+ get { return repeatedUint32_.Count; }
+ }
+ public uint GetRepeatedUint32(int index) {
+ return repeatedUint32_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 34;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public const int RepeatedSint32FieldNumber = 35;
+ private pbc::PopsicleList<int> repeatedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint32_); }
+ }
+ public int RepeatedSint32Count {
+ get { return repeatedSint32_.Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return repeatedSint32_[index];
+ }
+
+ public const int RepeatedSint64FieldNumber = 36;
+ private pbc::PopsicleList<long> repeatedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint64_); }
+ }
+ public int RepeatedSint64Count {
+ get { return repeatedSint64_.Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return repeatedSint64_[index];
+ }
+
+ public const int RepeatedFixed32FieldNumber = 37;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 38;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedSfixed32FieldNumber = 39;
+ private pbc::PopsicleList<int> repeatedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed32_); }
+ }
+ public int RepeatedSfixed32Count {
+ get { return repeatedSfixed32_.Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return repeatedSfixed32_[index];
+ }
+
+ public const int RepeatedSfixed64FieldNumber = 40;
+ private pbc::PopsicleList<long> repeatedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed64_); }
+ }
+ public int RepeatedSfixed64Count {
+ get { return repeatedSfixed64_.Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return repeatedSfixed64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 41;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedDoubleFieldNumber = 42;
+ private pbc::PopsicleList<double> repeatedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> RepeatedDoubleList {
+ get { return pbc::Lists.AsReadOnly(repeatedDouble_); }
+ }
+ public int RepeatedDoubleCount {
+ get { return repeatedDouble_.Count; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return repeatedDouble_[index];
+ }
+
+ public const int RepeatedBoolFieldNumber = 43;
+ private pbc::PopsicleList<bool> repeatedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> RepeatedBoolList {
+ get { return pbc::Lists.AsReadOnly(repeatedBool_); }
+ }
+ public int RepeatedBoolCount {
+ get { return repeatedBool_.Count; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return repeatedBool_[index];
+ }
+
+ public const int RepeatedStringFieldNumber = 44;
+ private pbc::PopsicleList<string> repeatedString_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringList {
+ get { return pbc::Lists.AsReadOnly(repeatedString_); }
+ }
+ public int RepeatedStringCount {
+ get { return repeatedString_.Count; }
+ }
+ public string GetRepeatedString(int index) {
+ return repeatedString_[index];
+ }
+
+ public const int RepeatedBytesFieldNumber = 45;
+ private pbc::PopsicleList<pb::ByteString> repeatedBytes_ = new pbc::PopsicleList<pb::ByteString>();
+ public scg::IList<pb::ByteString> RepeatedBytesList {
+ get { return pbc::Lists.AsReadOnly(repeatedBytes_); }
+ }
+ public int RepeatedBytesCount {
+ get { return repeatedBytes_.Count; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return repeatedBytes_[index];
+ }
+
+ public const int RepeatedGroupFieldNumber = 46;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup> repeatedGroup_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup> RepeatedGroupList {
+ get { return repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return repeatedGroup_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return repeatedGroup_[index];
+ }
+
+ public const int RepeatedNestedMessageFieldNumber = 48;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> repeatedNestedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return repeatedNestedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return repeatedNestedMessage_[index];
+ }
+
+ public const int RepeatedForeignMessageFieldNumber = 49;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> repeatedForeignMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> RepeatedForeignMessageList {
+ get { return repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return repeatedForeignMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite GetRepeatedForeignMessage(int index) {
+ return repeatedForeignMessage_[index];
+ }
+
+ public const int RepeatedImportMessageFieldNumber = 50;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> repeatedImportMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> RepeatedImportMessageList {
+ get { return repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return repeatedImportMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessageLite GetRepeatedImportMessage(int index) {
+ return repeatedImportMessage_[index];
+ }
+
+ public const int RepeatedNestedEnumFieldNumber = 51;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> repeatedNestedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedNestedEnum_); }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return repeatedNestedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return repeatedNestedEnum_[index];
+ }
+
+ public const int RepeatedForeignEnumFieldNumber = 52;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> repeatedForeignEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> RepeatedForeignEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedForeignEnum_); }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return repeatedForeignEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite GetRepeatedForeignEnum(int index) {
+ return repeatedForeignEnum_[index];
+ }
+
+ public const int RepeatedImportEnumFieldNumber = 53;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> repeatedImportEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> RepeatedImportEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedImportEnum_); }
+ }
+ public int RepeatedImportEnumCount {
+ get { return repeatedImportEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite GetRepeatedImportEnum(int index) {
+ return repeatedImportEnum_[index];
+ }
+
+ public const int RepeatedStringPieceFieldNumber = 54;
+ private pbc::PopsicleList<string> repeatedStringPiece_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPiece_); }
+ }
+ public int RepeatedStringPieceCount {
+ get { return repeatedStringPiece_.Count; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return repeatedStringPiece_[index];
+ }
+
+ public const int RepeatedCordFieldNumber = 55;
+ private pbc::PopsicleList<string> repeatedCord_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordList {
+ get { return pbc::Lists.AsReadOnly(repeatedCord_); }
+ }
+ public int RepeatedCordCount {
+ get { return repeatedCord_.Count; }
+ }
+ public string GetRepeatedCord(int index) {
+ return repeatedCord_[index];
+ }
+
+ public const int RepeatedLazyMessageFieldNumber = 57;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> repeatedLazyMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> RepeatedLazyMessageList {
+ get { return repeatedLazyMessage_; }
+ }
+ public int RepeatedLazyMessageCount {
+ get { return repeatedLazyMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage GetRepeatedLazyMessage(int index) {
+ return repeatedLazyMessage_[index];
+ }
+
+ public const int DefaultInt32FieldNumber = 61;
+ private bool hasDefaultInt32;
+ private int defaultInt32_ = 41;
+ public bool HasDefaultInt32 {
+ get { return hasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return defaultInt32_; }
+ }
+
+ public const int DefaultInt64FieldNumber = 62;
+ private bool hasDefaultInt64;
+ private long defaultInt64_ = 42L;
+ public bool HasDefaultInt64 {
+ get { return hasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return defaultInt64_; }
+ }
+
+ public const int DefaultUint32FieldNumber = 63;
+ private bool hasDefaultUint32;
+ private uint defaultUint32_ = 43;
+ public bool HasDefaultUint32 {
+ get { return hasDefaultUint32; }
+ }
+ public uint DefaultUint32 {
+ get { return defaultUint32_; }
+ }
+
+ public const int DefaultUint64FieldNumber = 64;
+ private bool hasDefaultUint64;
+ private ulong defaultUint64_ = 44UL;
+ public bool HasDefaultUint64 {
+ get { return hasDefaultUint64; }
+ }
+ public ulong DefaultUint64 {
+ get { return defaultUint64_; }
+ }
+
+ public const int DefaultSint32FieldNumber = 65;
+ private bool hasDefaultSint32;
+ private int defaultSint32_ = -45;
+ public bool HasDefaultSint32 {
+ get { return hasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return defaultSint32_; }
+ }
+
+ public const int DefaultSint64FieldNumber = 66;
+ private bool hasDefaultSint64;
+ private long defaultSint64_ = 46L;
+ public bool HasDefaultSint64 {
+ get { return hasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return defaultSint64_; }
+ }
+
+ public const int DefaultFixed32FieldNumber = 67;
+ private bool hasDefaultFixed32;
+ private uint defaultFixed32_ = 47;
+ public bool HasDefaultFixed32 {
+ get { return hasDefaultFixed32; }
+ }
+ public uint DefaultFixed32 {
+ get { return defaultFixed32_; }
+ }
+
+ public const int DefaultFixed64FieldNumber = 68;
+ private bool hasDefaultFixed64;
+ private ulong defaultFixed64_ = 48UL;
+ public bool HasDefaultFixed64 {
+ get { return hasDefaultFixed64; }
+ }
+ public ulong DefaultFixed64 {
+ get { return defaultFixed64_; }
+ }
+
+ public const int DefaultSfixed32FieldNumber = 69;
+ private bool hasDefaultSfixed32;
+ private int defaultSfixed32_ = 49;
+ public bool HasDefaultSfixed32 {
+ get { return hasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return defaultSfixed32_; }
+ }
+
+ public const int DefaultSfixed64FieldNumber = 70;
+ private bool hasDefaultSfixed64;
+ private long defaultSfixed64_ = -50L;
+ public bool HasDefaultSfixed64 {
+ get { return hasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return defaultSfixed64_; }
+ }
+
+ public const int DefaultFloatFieldNumber = 71;
+ private bool hasDefaultFloat;
+ private float defaultFloat_ = 51.5F;
+ public bool HasDefaultFloat {
+ get { return hasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return defaultFloat_; }
+ }
+
+ public const int DefaultDoubleFieldNumber = 72;
+ private bool hasDefaultDouble;
+ private double defaultDouble_ = 52000D;
+ public bool HasDefaultDouble {
+ get { return hasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return defaultDouble_; }
+ }
+
+ public const int DefaultBoolFieldNumber = 73;
+ private bool hasDefaultBool;
+ private bool defaultBool_ = true;
+ public bool HasDefaultBool {
+ get { return hasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return defaultBool_; }
+ }
+
+ public const int DefaultStringFieldNumber = 74;
+ private bool hasDefaultString;
+ private string defaultString_ = "hello";
+ public bool HasDefaultString {
+ get { return hasDefaultString; }
+ }
+ public string DefaultString {
+ get { return defaultString_; }
+ }
+
+ public const int DefaultBytesFieldNumber = 75;
+ private bool hasDefaultBytes;
+ private pb::ByteString defaultBytes_ = pb::ByteString.FromBase64("d29ybGQ=");
+ public bool HasDefaultBytes {
+ get { return hasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return defaultBytes_; }
+ }
+
+ public const int DefaultNestedEnumFieldNumber = 81;
+ private bool hasDefaultNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum.BAR;
+ public bool HasDefaultNestedEnum {
+ get { return hasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum DefaultNestedEnum {
+ get { return defaultNestedEnum_; }
+ }
+
+ public const int DefaultForeignEnumFieldNumber = 82;
+ private bool hasDefaultForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite.FOREIGN_LITE_BAR;
+ public bool HasDefaultForeignEnum {
+ get { return hasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite DefaultForeignEnum {
+ get { return defaultForeignEnum_; }
+ }
+
+ public const int DefaultImportEnumFieldNumber = 83;
+ private bool hasDefaultImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnumLite defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnumLite.IMPORT_LITE_BAR;
+ public bool HasDefaultImportEnum {
+ get { return hasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite DefaultImportEnum {
+ get { return defaultImportEnum_; }
+ }
+
+ public const int DefaultStringPieceFieldNumber = 84;
+ private bool hasDefaultStringPiece;
+ private string defaultStringPiece_ = "abc";
+ public bool HasDefaultStringPiece {
+ get { return hasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return defaultStringPiece_; }
+ }
+
+ public const int DefaultCordFieldNumber = 85;
+ private bool hasDefaultCord;
+ private string defaultCord_ = "123";
+ public bool HasDefaultCord {
+ get { return hasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return defaultCord_; }
+ }
+
+ public const int OneofUint32FieldNumber = 111;
+ public bool HasOneofUint32 {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32; }
+ }
+ public uint OneofUint32 {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) oneofField_ : 0; }
+ }
+
+ public const int OneofNestedMessageFieldNumber = 112;
+ public bool HasOneofNestedMessage {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage OneofNestedMessage {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage) oneofField_ : global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public const int OneofStringFieldNumber = 113;
+ public bool HasOneofString {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString; }
+ }
+ public string OneofString {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) oneofField_ : ""; }
+ }
+
+ public const int OneofBytesFieldNumber = 114;
+ public bool HasOneofBytes {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes; }
+ }
+ public pb::ByteString OneofBytes {
+ get { return oneofFieldCase_ == OneofFieldOneofCase.OneofBytes ? (pb::ByteString) oneofField_ : pb::ByteString.Empty; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testAllTypesLiteFieldNames;
+ if (hasOptionalInt32) {
+ output.WriteInt32(1, field_names[35], OptionalInt32);
+ }
+ if (hasOptionalInt64) {
+ output.WriteInt64(2, field_names[36], OptionalInt64);
+ }
+ if (hasOptionalUint32) {
+ output.WriteUInt32(3, field_names[47], OptionalUint32);
+ }
+ if (hasOptionalUint64) {
+ output.WriteUInt64(4, field_names[48], OptionalUint64);
+ }
+ if (hasOptionalSint32) {
+ output.WriteSInt32(5, field_names[43], OptionalSint32);
+ }
+ if (hasOptionalSint64) {
+ output.WriteSInt64(6, field_names[44], OptionalSint64);
+ }
+ if (hasOptionalFixed32) {
+ output.WriteFixed32(7, field_names[28], OptionalFixed32);
+ }
+ if (hasOptionalFixed64) {
+ output.WriteFixed64(8, field_names[29], OptionalFixed64);
+ }
+ if (hasOptionalSfixed32) {
+ output.WriteSFixed32(9, field_names[41], OptionalSfixed32);
+ }
+ if (hasOptionalSfixed64) {
+ output.WriteSFixed64(10, field_names[42], OptionalSfixed64);
+ }
+ if (hasOptionalFloat) {
+ output.WriteFloat(11, field_names[30], OptionalFloat);
+ }
+ if (hasOptionalDouble) {
+ output.WriteDouble(12, field_names[27], OptionalDouble);
+ }
+ if (hasOptionalBool) {
+ output.WriteBool(13, field_names[24], OptionalBool);
+ }
+ if (hasOptionalString) {
+ output.WriteString(14, field_names[45], OptionalString);
+ }
+ if (hasOptionalBytes) {
+ output.WriteBytes(15, field_names[25], OptionalBytes);
+ }
+ if (hasOptionalGroup) {
+ output.WriteGroup(16, field_names[49], OptionalGroup);
+ }
+ if (hasOptionalNestedMessage) {
+ output.WriteMessage(18, field_names[39], OptionalNestedMessage);
+ }
+ if (hasOptionalForeignMessage) {
+ output.WriteMessage(19, field_names[32], OptionalForeignMessage);
+ }
+ if (hasOptionalImportMessage) {
+ output.WriteMessage(20, field_names[34], OptionalImportMessage);
+ }
+ if (hasOptionalNestedEnum) {
+ output.WriteEnum(21, field_names[38], (int) OptionalNestedEnum, OptionalNestedEnum);
+ }
+ if (hasOptionalForeignEnum) {
+ output.WriteEnum(22, field_names[31], (int) OptionalForeignEnum, OptionalForeignEnum);
+ }
+ if (hasOptionalImportEnum) {
+ output.WriteEnum(23, field_names[33], (int) OptionalImportEnum, OptionalImportEnum);
+ }
+ if (hasOptionalStringPiece) {
+ output.WriteString(24, field_names[46], OptionalStringPiece);
+ }
+ if (hasOptionalCord) {
+ output.WriteString(25, field_names[26], OptionalCord);
+ }
+ if (hasOptionalPublicImportMessage) {
+ output.WriteMessage(26, field_names[40], OptionalPublicImportMessage);
+ }
+ if (hasOptionalLazyMessage) {
+ output.WriteMessage(27, field_names[37], OptionalLazyMessage);
+ }
+ if (repeatedInt32_.Count > 0) {
+ output.WriteInt32Array(31, field_names[61], repeatedInt32_);
+ }
+ if (repeatedInt64_.Count > 0) {
+ output.WriteInt64Array(32, field_names[62], repeatedInt64_);
+ }
+ if (repeatedUint32_.Count > 0) {
+ output.WriteUInt32Array(33, field_names[72], repeatedUint32_);
+ }
+ if (repeatedUint64_.Count > 0) {
+ output.WriteUInt64Array(34, field_names[73], repeatedUint64_);
+ }
+ if (repeatedSint32_.Count > 0) {
+ output.WriteSInt32Array(35, field_names[68], repeatedSint32_);
+ }
+ if (repeatedSint64_.Count > 0) {
+ output.WriteSInt64Array(36, field_names[69], repeatedSint64_);
+ }
+ if (repeatedFixed32_.Count > 0) {
+ output.WriteFixed32Array(37, field_names[54], repeatedFixed32_);
+ }
+ if (repeatedFixed64_.Count > 0) {
+ output.WriteFixed64Array(38, field_names[55], repeatedFixed64_);
+ }
+ if (repeatedSfixed32_.Count > 0) {
+ output.WriteSFixed32Array(39, field_names[66], repeatedSfixed32_);
+ }
+ if (repeatedSfixed64_.Count > 0) {
+ output.WriteSFixed64Array(40, field_names[67], repeatedSfixed64_);
+ }
+ if (repeatedFloat_.Count > 0) {
+ output.WriteFloatArray(41, field_names[56], repeatedFloat_);
+ }
+ if (repeatedDouble_.Count > 0) {
+ output.WriteDoubleArray(42, field_names[53], repeatedDouble_);
+ }
+ if (repeatedBool_.Count > 0) {
+ output.WriteBoolArray(43, field_names[50], repeatedBool_);
+ }
+ if (repeatedString_.Count > 0) {
+ output.WriteStringArray(44, field_names[70], repeatedString_);
+ }
+ if (repeatedBytes_.Count > 0) {
+ output.WriteBytesArray(45, field_names[51], repeatedBytes_);
+ }
+ if (repeatedGroup_.Count > 0) {
+ output.WriteGroupArray(46, field_names[74], repeatedGroup_);
+ }
+ if (repeatedNestedMessage_.Count > 0) {
+ output.WriteMessageArray(48, field_names[65], repeatedNestedMessage_);
+ }
+ if (repeatedForeignMessage_.Count > 0) {
+ output.WriteMessageArray(49, field_names[58], repeatedForeignMessage_);
+ }
+ if (repeatedImportMessage_.Count > 0) {
+ output.WriteMessageArray(50, field_names[60], repeatedImportMessage_);
+ }
+ if (repeatedNestedEnum_.Count > 0) {
+ output.WriteEnumArray(51, field_names[64], repeatedNestedEnum_);
+ }
+ if (repeatedForeignEnum_.Count > 0) {
+ output.WriteEnumArray(52, field_names[57], repeatedForeignEnum_);
+ }
+ if (repeatedImportEnum_.Count > 0) {
+ output.WriteEnumArray(53, field_names[59], repeatedImportEnum_);
+ }
+ if (repeatedStringPiece_.Count > 0) {
+ output.WriteStringArray(54, field_names[71], repeatedStringPiece_);
+ }
+ if (repeatedCord_.Count > 0) {
+ output.WriteStringArray(55, field_names[52], repeatedCord_);
+ }
+ if (repeatedLazyMessage_.Count > 0) {
+ output.WriteMessageArray(57, field_names[63], repeatedLazyMessage_);
+ }
+ if (hasDefaultInt32) {
+ output.WriteInt32(61, field_names[9], DefaultInt32);
+ }
+ if (hasDefaultInt64) {
+ output.WriteInt64(62, field_names[10], DefaultInt64);
+ }
+ if (hasDefaultUint32) {
+ output.WriteUInt32(63, field_names[18], DefaultUint32);
+ }
+ if (hasDefaultUint64) {
+ output.WriteUInt64(64, field_names[19], DefaultUint64);
+ }
+ if (hasDefaultSint32) {
+ output.WriteSInt32(65, field_names[14], DefaultSint32);
+ }
+ if (hasDefaultSint64) {
+ output.WriteSInt64(66, field_names[15], DefaultSint64);
+ }
+ if (hasDefaultFixed32) {
+ output.WriteFixed32(67, field_names[4], DefaultFixed32);
+ }
+ if (hasDefaultFixed64) {
+ output.WriteFixed64(68, field_names[5], DefaultFixed64);
+ }
+ if (hasDefaultSfixed32) {
+ output.WriteSFixed32(69, field_names[12], DefaultSfixed32);
+ }
+ if (hasDefaultSfixed64) {
+ output.WriteSFixed64(70, field_names[13], DefaultSfixed64);
+ }
+ if (hasDefaultFloat) {
+ output.WriteFloat(71, field_names[6], DefaultFloat);
+ }
+ if (hasDefaultDouble) {
+ output.WriteDouble(72, field_names[3], DefaultDouble);
+ }
+ if (hasDefaultBool) {
+ output.WriteBool(73, field_names[0], DefaultBool);
+ }
+ if (hasDefaultString) {
+ output.WriteString(74, field_names[16], DefaultString);
+ }
+ if (hasDefaultBytes) {
+ output.WriteBytes(75, field_names[1], DefaultBytes);
+ }
+ if (hasDefaultNestedEnum) {
+ output.WriteEnum(81, field_names[11], (int) DefaultNestedEnum, DefaultNestedEnum);
+ }
+ if (hasDefaultForeignEnum) {
+ output.WriteEnum(82, field_names[7], (int) DefaultForeignEnum, DefaultForeignEnum);
+ }
+ if (hasDefaultImportEnum) {
+ output.WriteEnum(83, field_names[8], (int) DefaultImportEnum, DefaultImportEnum);
+ }
+ if (hasDefaultStringPiece) {
+ output.WriteString(84, field_names[17], DefaultStringPiece);
+ }
+ if (hasDefaultCord) {
+ output.WriteString(85, field_names[2], DefaultCord);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ output.WriteUInt32(111, field_names[23], OneofUint32);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ output.WriteMessage(112, field_names[21], OneofNestedMessage);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ output.WriteString(113, field_names[22], OneofString);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
+ output.WriteBytes(114, field_names[20], OneofBytes);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, OptionalInt32);
+ }
+ if (hasOptionalInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(2, OptionalInt64);
+ }
+ if (hasOptionalUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(3, OptionalUint32);
+ }
+ if (hasOptionalUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(4, OptionalUint64);
+ }
+ if (hasOptionalSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(5, OptionalSint32);
+ }
+ if (hasOptionalSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(6, OptionalSint64);
+ }
+ if (hasOptionalFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(7, OptionalFixed32);
+ }
+ if (hasOptionalFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(8, OptionalFixed64);
+ }
+ if (hasOptionalSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(9, OptionalSfixed32);
+ }
+ if (hasOptionalSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(10, OptionalSfixed64);
+ }
+ if (hasOptionalFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, OptionalFloat);
+ }
+ if (hasOptionalDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(12, OptionalDouble);
+ }
+ if (hasOptionalBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(13, OptionalBool);
+ }
+ if (hasOptionalString) {
+ size += pb::CodedOutputStream.ComputeStringSize(14, OptionalString);
+ }
+ if (hasOptionalBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(15, OptionalBytes);
+ }
+ if (hasOptionalGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(16, OptionalGroup);
+ }
+ if (hasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(18, OptionalNestedMessage);
+ }
+ if (hasOptionalForeignMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(19, OptionalForeignMessage);
+ }
+ if (hasOptionalImportMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(20, OptionalImportMessage);
+ }
+ if (hasOptionalNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(21, (int) OptionalNestedEnum);
+ }
+ if (hasOptionalForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(22, (int) OptionalForeignEnum);
+ }
+ if (hasOptionalImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(23, (int) OptionalImportEnum);
+ }
+ if (hasOptionalStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(24, OptionalStringPiece);
+ }
+ if (hasOptionalCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(25, OptionalCord);
+ }
+ if (hasOptionalPublicImportMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(26, OptionalPublicImportMessage);
+ }
+ if (hasOptionalLazyMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(27, OptionalLazyMessage);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in RepeatedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 2 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedDouble_.Count;
+ size += dataSize;
+ size += 2 * repeatedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * repeatedBool_.Count;
+ size += dataSize;
+ size += 2 * repeatedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedString_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (pb::ByteString element in RepeatedBytesList) {
+ dataSize += pb::CodedOutputStream.ComputeBytesSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedBytes_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup element in RepeatedGroupList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(46, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage element in RepeatedNestedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(48, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite element in RepeatedForeignMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(49, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportMessageLite element in RepeatedImportMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(50, element);
+ }
+ {
+ int dataSize = 0;
+ if (repeatedNestedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum element in repeatedNestedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedNestedEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedForeignEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite element in repeatedForeignEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedForeignEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedImportEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportEnumLite element in repeatedImportEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedImportEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedStringPiece_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedCord_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage element in RepeatedLazyMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(57, element);
+ }
+ if (hasDefaultInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(61, DefaultInt32);
+ }
+ if (hasDefaultInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(62, DefaultInt64);
+ }
+ if (hasDefaultUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(63, DefaultUint32);
+ }
+ if (hasDefaultUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(64, DefaultUint64);
+ }
+ if (hasDefaultSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(65, DefaultSint32);
+ }
+ if (hasDefaultSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(66, DefaultSint64);
+ }
+ if (hasDefaultFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(67, DefaultFixed32);
+ }
+ if (hasDefaultFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(68, DefaultFixed64);
+ }
+ if (hasDefaultSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(69, DefaultSfixed32);
+ }
+ if (hasDefaultSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(70, DefaultSfixed64);
+ }
+ if (hasDefaultFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(71, DefaultFloat);
+ }
+ if (hasDefaultDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(72, DefaultDouble);
+ }
+ if (hasDefaultBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(73, DefaultBool);
+ }
+ if (hasDefaultString) {
+ size += pb::CodedOutputStream.ComputeStringSize(74, DefaultString);
+ }
+ if (hasDefaultBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(75, DefaultBytes);
+ }
+ if (hasDefaultNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(81, (int) DefaultNestedEnum);
+ }
+ if (hasDefaultForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(82, (int) DefaultForeignEnum);
+ }
+ if (hasDefaultImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(83, (int) DefaultImportEnum);
+ }
+ if (hasDefaultStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(84, DefaultStringPiece);
+ }
+ if (hasDefaultCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(85, DefaultCord);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(111, OneofUint32);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(112, OneofNestedMessage);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ size += pb::CodedOutputStream.ComputeStringSize(113, OneofString);
+ }
+ if (oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(114, OneofBytes);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasOptionalInt32) {
+ hash ^= optionalInt32_.GetHashCode();
+ }
+ if (hasOptionalInt64) {
+ hash ^= optionalInt64_.GetHashCode();
+ }
+ if (hasOptionalUint32) {
+ hash ^= optionalUint32_.GetHashCode();
+ }
+ if (hasOptionalUint64) {
+ hash ^= optionalUint64_.GetHashCode();
+ }
+ if (hasOptionalSint32) {
+ hash ^= optionalSint32_.GetHashCode();
+ }
+ if (hasOptionalSint64) {
+ hash ^= optionalSint64_.GetHashCode();
+ }
+ if (hasOptionalFixed32) {
+ hash ^= optionalFixed32_.GetHashCode();
+ }
+ if (hasOptionalFixed64) {
+ hash ^= optionalFixed64_.GetHashCode();
+ }
+ if (hasOptionalSfixed32) {
+ hash ^= optionalSfixed32_.GetHashCode();
+ }
+ if (hasOptionalSfixed64) {
+ hash ^= optionalSfixed64_.GetHashCode();
+ }
+ if (hasOptionalFloat) {
+ hash ^= optionalFloat_.GetHashCode();
+ }
+ if (hasOptionalDouble) {
+ hash ^= optionalDouble_.GetHashCode();
+ }
+ if (hasOptionalBool) {
+ hash ^= optionalBool_.GetHashCode();
+ }
+ if (hasOptionalString) {
+ hash ^= optionalString_.GetHashCode();
+ }
+ if (hasOptionalBytes) {
+ hash ^= optionalBytes_.GetHashCode();
+ }
+ if (hasOptionalGroup) hash ^= optionalGroup_.GetHashCode();
+ if (hasOptionalNestedMessage) hash ^= optionalNestedMessage_.GetHashCode();
+ if (hasOptionalForeignMessage) hash ^= optionalForeignMessage_.GetHashCode();
+ if (hasOptionalImportMessage) hash ^= optionalImportMessage_.GetHashCode();
+ if (hasOptionalNestedEnum) {
+ hash ^= optionalNestedEnum_.GetHashCode();
+ }
+ if (hasOptionalForeignEnum) {
+ hash ^= optionalForeignEnum_.GetHashCode();
+ }
+ if (hasOptionalImportEnum) {
+ hash ^= optionalImportEnum_.GetHashCode();
+ }
+ if (hasOptionalStringPiece) {
+ hash ^= optionalStringPiece_.GetHashCode();
+ }
+ if (hasOptionalCord) {
+ hash ^= optionalCord_.GetHashCode();
+ }
+ if (hasOptionalPublicImportMessage) hash ^= optionalPublicImportMessage_.GetHashCode();
+ if (hasOptionalLazyMessage) hash ^= optionalLazyMessage_.GetHashCode();
+ foreach(int i in repeatedInt32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in repeatedInt64_)
+ hash ^= i.GetHashCode();
+ foreach(uint i in repeatedUint32_)
+ hash ^= i.GetHashCode();
+ foreach(ulong i in repeatedUint64_)
+ hash ^= i.GetHashCode();
+ foreach(int i in repeatedSint32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in repeatedSint64_)
+ hash ^= i.GetHashCode();
+ foreach(uint i in repeatedFixed32_)
+ hash ^= i.GetHashCode();
+ foreach(ulong i in repeatedFixed64_)
+ hash ^= i.GetHashCode();
+ foreach(int i in repeatedSfixed32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in repeatedSfixed64_)
+ hash ^= i.GetHashCode();
+ foreach(float i in repeatedFloat_)
+ hash ^= i.GetHashCode();
+ foreach(double i in repeatedDouble_)
+ hash ^= i.GetHashCode();
+ foreach(bool i in repeatedBool_)
+ hash ^= i.GetHashCode();
+ foreach(string i in repeatedString_)
+ hash ^= i.GetHashCode();
+ foreach(pb::ByteString i in repeatedBytes_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup i in repeatedGroup_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage i in repeatedNestedMessage_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite i in repeatedForeignMessage_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite i in repeatedImportMessage_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum i in repeatedNestedEnum_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite i in repeatedForeignEnum_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite i in repeatedImportEnum_)
+ hash ^= i.GetHashCode();
+ foreach(string i in repeatedStringPiece_)
+ hash ^= i.GetHashCode();
+ foreach(string i in repeatedCord_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage i in repeatedLazyMessage_)
+ hash ^= i.GetHashCode();
+ if (hasDefaultInt32) {
+ hash ^= defaultInt32_.GetHashCode();
+ }
+ if (hasDefaultInt64) {
+ hash ^= defaultInt64_.GetHashCode();
+ }
+ if (hasDefaultUint32) {
+ hash ^= defaultUint32_.GetHashCode();
+ }
+ if (hasDefaultUint64) {
+ hash ^= defaultUint64_.GetHashCode();
+ }
+ if (hasDefaultSint32) {
+ hash ^= defaultSint32_.GetHashCode();
+ }
+ if (hasDefaultSint64) {
+ hash ^= defaultSint64_.GetHashCode();
+ }
+ if (hasDefaultFixed32) {
+ hash ^= defaultFixed32_.GetHashCode();
+ }
+ if (hasDefaultFixed64) {
+ hash ^= defaultFixed64_.GetHashCode();
+ }
+ if (hasDefaultSfixed32) {
+ hash ^= defaultSfixed32_.GetHashCode();
+ }
+ if (hasDefaultSfixed64) {
+ hash ^= defaultSfixed64_.GetHashCode();
+ }
+ if (hasDefaultFloat) {
+ hash ^= defaultFloat_.GetHashCode();
+ }
+ if (hasDefaultDouble) {
+ hash ^= defaultDouble_.GetHashCode();
+ }
+ if (hasDefaultBool) {
+ hash ^= defaultBool_.GetHashCode();
+ }
+ if (hasDefaultString) {
+ hash ^= defaultString_.GetHashCode();
+ }
+ if (hasDefaultBytes) {
+ hash ^= defaultBytes_.GetHashCode();
+ }
+ if (hasDefaultNestedEnum) {
+ hash ^= defaultNestedEnum_.GetHashCode();
+ }
+ if (hasDefaultForeignEnum) {
+ hash ^= defaultForeignEnum_.GetHashCode();
+ }
+ if (hasDefaultImportEnum) {
+ hash ^= defaultImportEnum_.GetHashCode();
+ }
+ if (hasDefaultStringPiece) {
+ hash ^= defaultStringPiece_.GetHashCode();
+ }
+ if (hasDefaultCord) {
+ hash ^= defaultCord_.GetHashCode();
+ }
+ if (oneofFieldCase_ != OneofFieldOneofCase.None) {
+ hash ^= oneofField_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestAllTypesLite other = obj as TestAllTypesLite;
+ if (other == null) return false;
+ if (hasOptionalInt32 != other.hasOptionalInt32 || (hasOptionalInt32 && !optionalInt32_.Equals(other.optionalInt32_))) return false;
+ if (hasOptionalInt64 != other.hasOptionalInt64 || (hasOptionalInt64 && !optionalInt64_.Equals(other.optionalInt64_))) return false;
+ if (hasOptionalUint32 != other.hasOptionalUint32 || (hasOptionalUint32 && !optionalUint32_.Equals(other.optionalUint32_))) return false;
+ if (hasOptionalUint64 != other.hasOptionalUint64 || (hasOptionalUint64 && !optionalUint64_.Equals(other.optionalUint64_))) return false;
+ if (hasOptionalSint32 != other.hasOptionalSint32 || (hasOptionalSint32 && !optionalSint32_.Equals(other.optionalSint32_))) return false;
+ if (hasOptionalSint64 != other.hasOptionalSint64 || (hasOptionalSint64 && !optionalSint64_.Equals(other.optionalSint64_))) return false;
+ if (hasOptionalFixed32 != other.hasOptionalFixed32 || (hasOptionalFixed32 && !optionalFixed32_.Equals(other.optionalFixed32_))) return false;
+ if (hasOptionalFixed64 != other.hasOptionalFixed64 || (hasOptionalFixed64 && !optionalFixed64_.Equals(other.optionalFixed64_))) return false;
+ if (hasOptionalSfixed32 != other.hasOptionalSfixed32 || (hasOptionalSfixed32 && !optionalSfixed32_.Equals(other.optionalSfixed32_))) return false;
+ if (hasOptionalSfixed64 != other.hasOptionalSfixed64 || (hasOptionalSfixed64 && !optionalSfixed64_.Equals(other.optionalSfixed64_))) return false;
+ if (hasOptionalFloat != other.hasOptionalFloat || (hasOptionalFloat && !optionalFloat_.Equals(other.optionalFloat_))) return false;
+ if (hasOptionalDouble != other.hasOptionalDouble || (hasOptionalDouble && !optionalDouble_.Equals(other.optionalDouble_))) return false;
+ if (hasOptionalBool != other.hasOptionalBool || (hasOptionalBool && !optionalBool_.Equals(other.optionalBool_))) return false;
+ if (hasOptionalString != other.hasOptionalString || (hasOptionalString && !optionalString_.Equals(other.optionalString_))) return false;
+ if (hasOptionalBytes != other.hasOptionalBytes || (hasOptionalBytes && !optionalBytes_.Equals(other.optionalBytes_))) return false;
+ if (hasOptionalGroup != other.hasOptionalGroup || (hasOptionalGroup && !optionalGroup_.Equals(other.optionalGroup_))) return false;
+ if (hasOptionalNestedMessage != other.hasOptionalNestedMessage || (hasOptionalNestedMessage && !optionalNestedMessage_.Equals(other.optionalNestedMessage_))) return false;
+ if (hasOptionalForeignMessage != other.hasOptionalForeignMessage || (hasOptionalForeignMessage && !optionalForeignMessage_.Equals(other.optionalForeignMessage_))) return false;
+ if (hasOptionalImportMessage != other.hasOptionalImportMessage || (hasOptionalImportMessage && !optionalImportMessage_.Equals(other.optionalImportMessage_))) return false;
+ if (hasOptionalNestedEnum != other.hasOptionalNestedEnum || (hasOptionalNestedEnum && !optionalNestedEnum_.Equals(other.optionalNestedEnum_))) return false;
+ if (hasOptionalForeignEnum != other.hasOptionalForeignEnum || (hasOptionalForeignEnum && !optionalForeignEnum_.Equals(other.optionalForeignEnum_))) return false;
+ if (hasOptionalImportEnum != other.hasOptionalImportEnum || (hasOptionalImportEnum && !optionalImportEnum_.Equals(other.optionalImportEnum_))) return false;
+ if (hasOptionalStringPiece != other.hasOptionalStringPiece || (hasOptionalStringPiece && !optionalStringPiece_.Equals(other.optionalStringPiece_))) return false;
+ if (hasOptionalCord != other.hasOptionalCord || (hasOptionalCord && !optionalCord_.Equals(other.optionalCord_))) return false;
+ if (hasOptionalPublicImportMessage != other.hasOptionalPublicImportMessage || (hasOptionalPublicImportMessage && !optionalPublicImportMessage_.Equals(other.optionalPublicImportMessage_))) return false;
+ if (hasOptionalLazyMessage != other.hasOptionalLazyMessage || (hasOptionalLazyMessage && !optionalLazyMessage_.Equals(other.optionalLazyMessage_))) return false;
+ if(repeatedInt32_.Count != other.repeatedInt32_.Count) return false;
+ for(int ix=0; ix < repeatedInt32_.Count; ix++)
+ if(!repeatedInt32_[ix].Equals(other.repeatedInt32_[ix])) return false;
+ if(repeatedInt64_.Count != other.repeatedInt64_.Count) return false;
+ for(int ix=0; ix < repeatedInt64_.Count; ix++)
+ if(!repeatedInt64_[ix].Equals(other.repeatedInt64_[ix])) return false;
+ if(repeatedUint32_.Count != other.repeatedUint32_.Count) return false;
+ for(int ix=0; ix < repeatedUint32_.Count; ix++)
+ if(!repeatedUint32_[ix].Equals(other.repeatedUint32_[ix])) return false;
+ if(repeatedUint64_.Count != other.repeatedUint64_.Count) return false;
+ for(int ix=0; ix < repeatedUint64_.Count; ix++)
+ if(!repeatedUint64_[ix].Equals(other.repeatedUint64_[ix])) return false;
+ if(repeatedSint32_.Count != other.repeatedSint32_.Count) return false;
+ for(int ix=0; ix < repeatedSint32_.Count; ix++)
+ if(!repeatedSint32_[ix].Equals(other.repeatedSint32_[ix])) return false;
+ if(repeatedSint64_.Count != other.repeatedSint64_.Count) return false;
+ for(int ix=0; ix < repeatedSint64_.Count; ix++)
+ if(!repeatedSint64_[ix].Equals(other.repeatedSint64_[ix])) return false;
+ if(repeatedFixed32_.Count != other.repeatedFixed32_.Count) return false;
+ for(int ix=0; ix < repeatedFixed32_.Count; ix++)
+ if(!repeatedFixed32_[ix].Equals(other.repeatedFixed32_[ix])) return false;
+ if(repeatedFixed64_.Count != other.repeatedFixed64_.Count) return false;
+ for(int ix=0; ix < repeatedFixed64_.Count; ix++)
+ if(!repeatedFixed64_[ix].Equals(other.repeatedFixed64_[ix])) return false;
+ if(repeatedSfixed32_.Count != other.repeatedSfixed32_.Count) return false;
+ for(int ix=0; ix < repeatedSfixed32_.Count; ix++)
+ if(!repeatedSfixed32_[ix].Equals(other.repeatedSfixed32_[ix])) return false;
+ if(repeatedSfixed64_.Count != other.repeatedSfixed64_.Count) return false;
+ for(int ix=0; ix < repeatedSfixed64_.Count; ix++)
+ if(!repeatedSfixed64_[ix].Equals(other.repeatedSfixed64_[ix])) return false;
+ if(repeatedFloat_.Count != other.repeatedFloat_.Count) return false;
+ for(int ix=0; ix < repeatedFloat_.Count; ix++)
+ if(!repeatedFloat_[ix].Equals(other.repeatedFloat_[ix])) return false;
+ if(repeatedDouble_.Count != other.repeatedDouble_.Count) return false;
+ for(int ix=0; ix < repeatedDouble_.Count; ix++)
+ if(!repeatedDouble_[ix].Equals(other.repeatedDouble_[ix])) return false;
+ if(repeatedBool_.Count != other.repeatedBool_.Count) return false;
+ for(int ix=0; ix < repeatedBool_.Count; ix++)
+ if(!repeatedBool_[ix].Equals(other.repeatedBool_[ix])) return false;
+ if(repeatedString_.Count != other.repeatedString_.Count) return false;
+ for(int ix=0; ix < repeatedString_.Count; ix++)
+ if(!repeatedString_[ix].Equals(other.repeatedString_[ix])) return false;
+ if(repeatedBytes_.Count != other.repeatedBytes_.Count) return false;
+ for(int ix=0; ix < repeatedBytes_.Count; ix++)
+ if(!repeatedBytes_[ix].Equals(other.repeatedBytes_[ix])) return false;
+ if(repeatedGroup_.Count != other.repeatedGroup_.Count) return false;
+ for(int ix=0; ix < repeatedGroup_.Count; ix++)
+ if(!repeatedGroup_[ix].Equals(other.repeatedGroup_[ix])) return false;
+ if(repeatedNestedMessage_.Count != other.repeatedNestedMessage_.Count) return false;
+ for(int ix=0; ix < repeatedNestedMessage_.Count; ix++)
+ if(!repeatedNestedMessage_[ix].Equals(other.repeatedNestedMessage_[ix])) return false;
+ if(repeatedForeignMessage_.Count != other.repeatedForeignMessage_.Count) return false;
+ for(int ix=0; ix < repeatedForeignMessage_.Count; ix++)
+ if(!repeatedForeignMessage_[ix].Equals(other.repeatedForeignMessage_[ix])) return false;
+ if(repeatedImportMessage_.Count != other.repeatedImportMessage_.Count) return false;
+ for(int ix=0; ix < repeatedImportMessage_.Count; ix++)
+ if(!repeatedImportMessage_[ix].Equals(other.repeatedImportMessage_[ix])) return false;
+ if(repeatedNestedEnum_.Count != other.repeatedNestedEnum_.Count) return false;
+ for(int ix=0; ix < repeatedNestedEnum_.Count; ix++)
+ if(!repeatedNestedEnum_[ix].Equals(other.repeatedNestedEnum_[ix])) return false;
+ if(repeatedForeignEnum_.Count != other.repeatedForeignEnum_.Count) return false;
+ for(int ix=0; ix < repeatedForeignEnum_.Count; ix++)
+ if(!repeatedForeignEnum_[ix].Equals(other.repeatedForeignEnum_[ix])) return false;
+ if(repeatedImportEnum_.Count != other.repeatedImportEnum_.Count) return false;
+ for(int ix=0; ix < repeatedImportEnum_.Count; ix++)
+ if(!repeatedImportEnum_[ix].Equals(other.repeatedImportEnum_[ix])) return false;
+ if(repeatedStringPiece_.Count != other.repeatedStringPiece_.Count) return false;
+ for(int ix=0; ix < repeatedStringPiece_.Count; ix++)
+ if(!repeatedStringPiece_[ix].Equals(other.repeatedStringPiece_[ix])) return false;
+ if(repeatedCord_.Count != other.repeatedCord_.Count) return false;
+ for(int ix=0; ix < repeatedCord_.Count; ix++)
+ if(!repeatedCord_[ix].Equals(other.repeatedCord_[ix])) return false;
+ if(repeatedLazyMessage_.Count != other.repeatedLazyMessage_.Count) return false;
+ for(int ix=0; ix < repeatedLazyMessage_.Count; ix++)
+ if(!repeatedLazyMessage_[ix].Equals(other.repeatedLazyMessage_[ix])) return false;
+ if (hasDefaultInt32 != other.hasDefaultInt32 || (hasDefaultInt32 && !defaultInt32_.Equals(other.defaultInt32_))) return false;
+ if (hasDefaultInt64 != other.hasDefaultInt64 || (hasDefaultInt64 && !defaultInt64_.Equals(other.defaultInt64_))) return false;
+ if (hasDefaultUint32 != other.hasDefaultUint32 || (hasDefaultUint32 && !defaultUint32_.Equals(other.defaultUint32_))) return false;
+ if (hasDefaultUint64 != other.hasDefaultUint64 || (hasDefaultUint64 && !defaultUint64_.Equals(other.defaultUint64_))) return false;
+ if (hasDefaultSint32 != other.hasDefaultSint32 || (hasDefaultSint32 && !defaultSint32_.Equals(other.defaultSint32_))) return false;
+ if (hasDefaultSint64 != other.hasDefaultSint64 || (hasDefaultSint64 && !defaultSint64_.Equals(other.defaultSint64_))) return false;
+ if (hasDefaultFixed32 != other.hasDefaultFixed32 || (hasDefaultFixed32 && !defaultFixed32_.Equals(other.defaultFixed32_))) return false;
+ if (hasDefaultFixed64 != other.hasDefaultFixed64 || (hasDefaultFixed64 && !defaultFixed64_.Equals(other.defaultFixed64_))) return false;
+ if (hasDefaultSfixed32 != other.hasDefaultSfixed32 || (hasDefaultSfixed32 && !defaultSfixed32_.Equals(other.defaultSfixed32_))) return false;
+ if (hasDefaultSfixed64 != other.hasDefaultSfixed64 || (hasDefaultSfixed64 && !defaultSfixed64_.Equals(other.defaultSfixed64_))) return false;
+ if (hasDefaultFloat != other.hasDefaultFloat || (hasDefaultFloat && !defaultFloat_.Equals(other.defaultFloat_))) return false;
+ if (hasDefaultDouble != other.hasDefaultDouble || (hasDefaultDouble && !defaultDouble_.Equals(other.defaultDouble_))) return false;
+ if (hasDefaultBool != other.hasDefaultBool || (hasDefaultBool && !defaultBool_.Equals(other.defaultBool_))) return false;
+ if (hasDefaultString != other.hasDefaultString || (hasDefaultString && !defaultString_.Equals(other.defaultString_))) return false;
+ if (hasDefaultBytes != other.hasDefaultBytes || (hasDefaultBytes && !defaultBytes_.Equals(other.defaultBytes_))) return false;
+ if (hasDefaultNestedEnum != other.hasDefaultNestedEnum || (hasDefaultNestedEnum && !defaultNestedEnum_.Equals(other.defaultNestedEnum_))) return false;
+ if (hasDefaultForeignEnum != other.hasDefaultForeignEnum || (hasDefaultForeignEnum && !defaultForeignEnum_.Equals(other.defaultForeignEnum_))) return false;
+ if (hasDefaultImportEnum != other.hasDefaultImportEnum || (hasDefaultImportEnum && !defaultImportEnum_.Equals(other.defaultImportEnum_))) return false;
+ if (hasDefaultStringPiece != other.hasDefaultStringPiece || (hasDefaultStringPiece && !defaultStringPiece_.Equals(other.defaultStringPiece_))) return false;
+ if (hasDefaultCord != other.hasDefaultCord || (hasDefaultCord && !defaultCord_.Equals(other.defaultCord_))) return false;
+ if (!OneofUint32.Equals(other.OneofUint32)) return false;
+ if (!OneofNestedMessage.Equals(other.OneofNestedMessage)) return false;
+ if (!OneofString.Equals(other.OneofString)) return false;
+ if (!OneofBytes.Equals(other.OneofBytes)) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("optional_int32", hasOptionalInt32, optionalInt32_, writer);
+ PrintField("optional_int64", hasOptionalInt64, optionalInt64_, writer);
+ PrintField("optional_uint32", hasOptionalUint32, optionalUint32_, writer);
+ PrintField("optional_uint64", hasOptionalUint64, optionalUint64_, writer);
+ PrintField("optional_sint32", hasOptionalSint32, optionalSint32_, writer);
+ PrintField("optional_sint64", hasOptionalSint64, optionalSint64_, writer);
+ PrintField("optional_fixed32", hasOptionalFixed32, optionalFixed32_, writer);
+ PrintField("optional_fixed64", hasOptionalFixed64, optionalFixed64_, writer);
+ PrintField("optional_sfixed32", hasOptionalSfixed32, optionalSfixed32_, writer);
+ PrintField("optional_sfixed64", hasOptionalSfixed64, optionalSfixed64_, writer);
+ PrintField("optional_float", hasOptionalFloat, optionalFloat_, writer);
+ PrintField("optional_double", hasOptionalDouble, optionalDouble_, writer);
+ PrintField("optional_bool", hasOptionalBool, optionalBool_, writer);
+ PrintField("optional_string", hasOptionalString, optionalString_, writer);
+ PrintField("optional_bytes", hasOptionalBytes, optionalBytes_, writer);
+ PrintField("OptionalGroup", hasOptionalGroup, optionalGroup_, writer);
+ PrintField("optional_nested_message", hasOptionalNestedMessage, optionalNestedMessage_, writer);
+ PrintField("optional_foreign_message", hasOptionalForeignMessage, optionalForeignMessage_, writer);
+ PrintField("optional_import_message", hasOptionalImportMessage, optionalImportMessage_, writer);
+ PrintField("optional_nested_enum", hasOptionalNestedEnum, optionalNestedEnum_, writer);
+ PrintField("optional_foreign_enum", hasOptionalForeignEnum, optionalForeignEnum_, writer);
+ PrintField("optional_import_enum", hasOptionalImportEnum, optionalImportEnum_, writer);
+ PrintField("optional_string_piece", hasOptionalStringPiece, optionalStringPiece_, writer);
+ PrintField("optional_cord", hasOptionalCord, optionalCord_, writer);
+ PrintField("optional_public_import_message", hasOptionalPublicImportMessage, optionalPublicImportMessage_, writer);
+ PrintField("optional_lazy_message", hasOptionalLazyMessage, optionalLazyMessage_, writer);
+ PrintField("repeated_int32", repeatedInt32_, writer);
+ PrintField("repeated_int64", repeatedInt64_, writer);
+ PrintField("repeated_uint32", repeatedUint32_, writer);
+ PrintField("repeated_uint64", repeatedUint64_, writer);
+ PrintField("repeated_sint32", repeatedSint32_, writer);
+ PrintField("repeated_sint64", repeatedSint64_, writer);
+ PrintField("repeated_fixed32", repeatedFixed32_, writer);
+ PrintField("repeated_fixed64", repeatedFixed64_, writer);
+ PrintField("repeated_sfixed32", repeatedSfixed32_, writer);
+ PrintField("repeated_sfixed64", repeatedSfixed64_, writer);
+ PrintField("repeated_float", repeatedFloat_, writer);
+ PrintField("repeated_double", repeatedDouble_, writer);
+ PrintField("repeated_bool", repeatedBool_, writer);
+ PrintField("repeated_string", repeatedString_, writer);
+ PrintField("repeated_bytes", repeatedBytes_, writer);
+ PrintField("RepeatedGroup", repeatedGroup_, writer);
+ PrintField("repeated_nested_message", repeatedNestedMessage_, writer);
+ PrintField("repeated_foreign_message", repeatedForeignMessage_, writer);
+ PrintField("repeated_import_message", repeatedImportMessage_, writer);
+ PrintField("repeated_nested_enum", repeatedNestedEnum_, writer);
+ PrintField("repeated_foreign_enum", repeatedForeignEnum_, writer);
+ PrintField("repeated_import_enum", repeatedImportEnum_, writer);
+ PrintField("repeated_string_piece", repeatedStringPiece_, writer);
+ PrintField("repeated_cord", repeatedCord_, writer);
+ PrintField("repeated_lazy_message", repeatedLazyMessage_, writer);
+ PrintField("default_int32", hasDefaultInt32, defaultInt32_, writer);
+ PrintField("default_int64", hasDefaultInt64, defaultInt64_, writer);
+ PrintField("default_uint32", hasDefaultUint32, defaultUint32_, writer);
+ PrintField("default_uint64", hasDefaultUint64, defaultUint64_, writer);
+ PrintField("default_sint32", hasDefaultSint32, defaultSint32_, writer);
+ PrintField("default_sint64", hasDefaultSint64, defaultSint64_, writer);
+ PrintField("default_fixed32", hasDefaultFixed32, defaultFixed32_, writer);
+ PrintField("default_fixed64", hasDefaultFixed64, defaultFixed64_, writer);
+ PrintField("default_sfixed32", hasDefaultSfixed32, defaultSfixed32_, writer);
+ PrintField("default_sfixed64", hasDefaultSfixed64, defaultSfixed64_, writer);
+ PrintField("default_float", hasDefaultFloat, defaultFloat_, writer);
+ PrintField("default_double", hasDefaultDouble, defaultDouble_, writer);
+ PrintField("default_bool", hasDefaultBool, defaultBool_, writer);
+ PrintField("default_string", hasDefaultString, defaultString_, writer);
+ PrintField("default_bytes", hasDefaultBytes, defaultBytes_, writer);
+ PrintField("default_nested_enum", hasDefaultNestedEnum, defaultNestedEnum_, writer);
+ PrintField("default_foreign_enum", hasDefaultForeignEnum, defaultForeignEnum_, writer);
+ PrintField("default_import_enum", hasDefaultImportEnum, defaultImportEnum_, writer);
+ PrintField("default_string_piece", hasDefaultStringPiece, defaultStringPiece_, writer);
+ PrintField("default_cord", hasDefaultCord, defaultCord_, writer);
+ PrintField("oneof_uint32", oneofFieldCase_ == OneofFieldOneofCase.OneofUint32, oneofField_, writer);
+ PrintField("oneof_nested_message", oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage, oneofField_, writer);
+ PrintField("oneof_string", oneofFieldCase_ == OneofFieldOneofCase.OneofString, oneofField_, writer);
+ PrintField("oneof_bytes", oneofFieldCase_ == OneofFieldOneofCase.OneofBytes, oneofField_, writer);
+ }
+ #endregion
+
+ public static TestAllTypesLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllTypesLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestAllTypesLite MakeReadOnly() {
+ repeatedInt32_.MakeReadOnly();
+ repeatedInt64_.MakeReadOnly();
+ repeatedUint32_.MakeReadOnly();
+ repeatedUint64_.MakeReadOnly();
+ repeatedSint32_.MakeReadOnly();
+ repeatedSint64_.MakeReadOnly();
+ repeatedFixed32_.MakeReadOnly();
+ repeatedFixed64_.MakeReadOnly();
+ repeatedSfixed32_.MakeReadOnly();
+ repeatedSfixed64_.MakeReadOnly();
+ repeatedFloat_.MakeReadOnly();
+ repeatedDouble_.MakeReadOnly();
+ repeatedBool_.MakeReadOnly();
+ repeatedString_.MakeReadOnly();
+ repeatedBytes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ repeatedNestedMessage_.MakeReadOnly();
+ repeatedForeignMessage_.MakeReadOnly();
+ repeatedImportMessage_.MakeReadOnly();
+ repeatedNestedEnum_.MakeReadOnly();
+ repeatedForeignEnum_.MakeReadOnly();
+ repeatedImportEnum_.MakeReadOnly();
+ repeatedStringPiece_.MakeReadOnly();
+ repeatedCord_.MakeReadOnly();
+ repeatedLazyMessage_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllTypesLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestAllTypesLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestAllTypesLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestAllTypesLite result;
+
+ private TestAllTypesLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestAllTypesLite original = result;
+ result = new TestAllTypesLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestAllTypesLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestAllTypesLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance; }
+ }
+
+ public override TestAllTypesLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestAllTypesLite) {
+ return MergeFrom((TestAllTypesLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllTypesLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalInt32) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ if (other.HasOptionalInt64) {
+ OptionalInt64 = other.OptionalInt64;
+ }
+ if (other.HasOptionalUint32) {
+ OptionalUint32 = other.OptionalUint32;
+ }
+ if (other.HasOptionalUint64) {
+ OptionalUint64 = other.OptionalUint64;
+ }
+ if (other.HasOptionalSint32) {
+ OptionalSint32 = other.OptionalSint32;
+ }
+ if (other.HasOptionalSint64) {
+ OptionalSint64 = other.OptionalSint64;
+ }
+ if (other.HasOptionalFixed32) {
+ OptionalFixed32 = other.OptionalFixed32;
+ }
+ if (other.HasOptionalFixed64) {
+ OptionalFixed64 = other.OptionalFixed64;
+ }
+ if (other.HasOptionalSfixed32) {
+ OptionalSfixed32 = other.OptionalSfixed32;
+ }
+ if (other.HasOptionalSfixed64) {
+ OptionalSfixed64 = other.OptionalSfixed64;
+ }
+ if (other.HasOptionalFloat) {
+ OptionalFloat = other.OptionalFloat;
+ }
+ if (other.HasOptionalDouble) {
+ OptionalDouble = other.OptionalDouble;
+ }
+ if (other.HasOptionalBool) {
+ OptionalBool = other.OptionalBool;
+ }
+ if (other.HasOptionalString) {
+ OptionalString = other.OptionalString;
+ }
+ if (other.HasOptionalBytes) {
+ OptionalBytes = other.OptionalBytes;
+ }
+ if (other.HasOptionalGroup) {
+ MergeOptionalGroup(other.OptionalGroup);
+ }
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ if (other.HasOptionalForeignMessage) {
+ MergeOptionalForeignMessage(other.OptionalForeignMessage);
+ }
+ if (other.HasOptionalImportMessage) {
+ MergeOptionalImportMessage(other.OptionalImportMessage);
+ }
+ if (other.HasOptionalNestedEnum) {
+ OptionalNestedEnum = other.OptionalNestedEnum;
+ }
+ if (other.HasOptionalForeignEnum) {
+ OptionalForeignEnum = other.OptionalForeignEnum;
+ }
+ if (other.HasOptionalImportEnum) {
+ OptionalImportEnum = other.OptionalImportEnum;
+ }
+ if (other.HasOptionalStringPiece) {
+ OptionalStringPiece = other.OptionalStringPiece;
+ }
+ if (other.HasOptionalCord) {
+ OptionalCord = other.OptionalCord;
+ }
+ if (other.HasOptionalPublicImportMessage) {
+ MergeOptionalPublicImportMessage(other.OptionalPublicImportMessage);
+ }
+ if (other.HasOptionalLazyMessage) {
+ MergeOptionalLazyMessage(other.OptionalLazyMessage);
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ result.repeatedInt32_.Add(other.repeatedInt32_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ result.repeatedInt64_.Add(other.repeatedInt64_);
+ }
+ if (other.repeatedUint32_.Count != 0) {
+ result.repeatedUint32_.Add(other.repeatedUint32_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ result.repeatedUint64_.Add(other.repeatedUint64_);
+ }
+ if (other.repeatedSint32_.Count != 0) {
+ result.repeatedSint32_.Add(other.repeatedSint32_);
+ }
+ if (other.repeatedSint64_.Count != 0) {
+ result.repeatedSint64_.Add(other.repeatedSint64_);
+ }
+ if (other.repeatedFixed32_.Count != 0) {
+ result.repeatedFixed32_.Add(other.repeatedFixed32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ result.repeatedFixed64_.Add(other.repeatedFixed64_);
+ }
+ if (other.repeatedSfixed32_.Count != 0) {
+ result.repeatedSfixed32_.Add(other.repeatedSfixed32_);
+ }
+ if (other.repeatedSfixed64_.Count != 0) {
+ result.repeatedSfixed64_.Add(other.repeatedSfixed64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ result.repeatedFloat_.Add(other.repeatedFloat_);
+ }
+ if (other.repeatedDouble_.Count != 0) {
+ result.repeatedDouble_.Add(other.repeatedDouble_);
+ }
+ if (other.repeatedBool_.Count != 0) {
+ result.repeatedBool_.Add(other.repeatedBool_);
+ }
+ if (other.repeatedString_.Count != 0) {
+ result.repeatedString_.Add(other.repeatedString_);
+ }
+ if (other.repeatedBytes_.Count != 0) {
+ result.repeatedBytes_.Add(other.repeatedBytes_);
+ }
+ if (other.repeatedGroup_.Count != 0) {
+ result.repeatedGroup_.Add(other.repeatedGroup_);
+ }
+ if (other.repeatedNestedMessage_.Count != 0) {
+ result.repeatedNestedMessage_.Add(other.repeatedNestedMessage_);
+ }
+ if (other.repeatedForeignMessage_.Count != 0) {
+ result.repeatedForeignMessage_.Add(other.repeatedForeignMessage_);
+ }
+ if (other.repeatedImportMessage_.Count != 0) {
+ result.repeatedImportMessage_.Add(other.repeatedImportMessage_);
+ }
+ if (other.repeatedNestedEnum_.Count != 0) {
+ result.repeatedNestedEnum_.Add(other.repeatedNestedEnum_);
+ }
+ if (other.repeatedForeignEnum_.Count != 0) {
+ result.repeatedForeignEnum_.Add(other.repeatedForeignEnum_);
+ }
+ if (other.repeatedImportEnum_.Count != 0) {
+ result.repeatedImportEnum_.Add(other.repeatedImportEnum_);
+ }
+ if (other.repeatedStringPiece_.Count != 0) {
+ result.repeatedStringPiece_.Add(other.repeatedStringPiece_);
+ }
+ if (other.repeatedCord_.Count != 0) {
+ result.repeatedCord_.Add(other.repeatedCord_);
+ }
+ if (other.repeatedLazyMessage_.Count != 0) {
+ result.repeatedLazyMessage_.Add(other.repeatedLazyMessage_);
+ }
+ if (other.HasDefaultInt32) {
+ DefaultInt32 = other.DefaultInt32;
+ }
+ if (other.HasDefaultInt64) {
+ DefaultInt64 = other.DefaultInt64;
+ }
+ if (other.HasDefaultUint32) {
+ DefaultUint32 = other.DefaultUint32;
+ }
+ if (other.HasDefaultUint64) {
+ DefaultUint64 = other.DefaultUint64;
+ }
+ if (other.HasDefaultSint32) {
+ DefaultSint32 = other.DefaultSint32;
+ }
+ if (other.HasDefaultSint64) {
+ DefaultSint64 = other.DefaultSint64;
+ }
+ if (other.HasDefaultFixed32) {
+ DefaultFixed32 = other.DefaultFixed32;
+ }
+ if (other.HasDefaultFixed64) {
+ DefaultFixed64 = other.DefaultFixed64;
+ }
+ if (other.HasDefaultSfixed32) {
+ DefaultSfixed32 = other.DefaultSfixed32;
+ }
+ if (other.HasDefaultSfixed64) {
+ DefaultSfixed64 = other.DefaultSfixed64;
+ }
+ if (other.HasDefaultFloat) {
+ DefaultFloat = other.DefaultFloat;
+ }
+ if (other.HasDefaultDouble) {
+ DefaultDouble = other.DefaultDouble;
+ }
+ if (other.HasDefaultBool) {
+ DefaultBool = other.DefaultBool;
+ }
+ if (other.HasDefaultString) {
+ DefaultString = other.DefaultString;
+ }
+ if (other.HasDefaultBytes) {
+ DefaultBytes = other.DefaultBytes;
+ }
+ if (other.HasDefaultNestedEnum) {
+ DefaultNestedEnum = other.DefaultNestedEnum;
+ }
+ if (other.HasDefaultForeignEnum) {
+ DefaultForeignEnum = other.DefaultForeignEnum;
+ }
+ if (other.HasDefaultImportEnum) {
+ DefaultImportEnum = other.DefaultImportEnum;
+ }
+ if (other.HasDefaultStringPiece) {
+ DefaultStringPiece = other.DefaultStringPiece;
+ }
+ if (other.HasDefaultCord) {
+ DefaultCord = other.DefaultCord;
+ }
+ switch (other.OneofFieldCase) {
+ case OneofFieldOneofCase.OneofUint32: {
+ SetOneofUint32(other.OneofUint32);
+ break;
+ }
+ case OneofFieldOneofCase.OneofNestedMessage: {
+ MergeOneofNestedMessage(other.OneofNestedMessage);
+ break;
+ }
+ case OneofFieldOneofCase.OneofString: {
+ SetOneofString(other.OneofString);
+ break;
+ }
+ case OneofFieldOneofCase.OneofBytes: {
+ SetOneofBytes(other.OneofBytes);
+ break;
+ }
+ case OneofFieldOneofCase.None: { break; }
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testAllTypesLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testAllTypesLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasOptionalInt32 = input.ReadInt32(ref result.optionalInt32_);
+ break;
+ }
+ case 16: {
+ result.hasOptionalInt64 = input.ReadInt64(ref result.optionalInt64_);
+ break;
+ }
+ case 24: {
+ result.hasOptionalUint32 = input.ReadUInt32(ref result.optionalUint32_);
+ break;
+ }
+ case 32: {
+ result.hasOptionalUint64 = input.ReadUInt64(ref result.optionalUint64_);
+ break;
+ }
+ case 40: {
+ result.hasOptionalSint32 = input.ReadSInt32(ref result.optionalSint32_);
+ break;
+ }
+ case 48: {
+ result.hasOptionalSint64 = input.ReadSInt64(ref result.optionalSint64_);
+ break;
+ }
+ case 61: {
+ result.hasOptionalFixed32 = input.ReadFixed32(ref result.optionalFixed32_);
+ break;
+ }
+ case 65: {
+ result.hasOptionalFixed64 = input.ReadFixed64(ref result.optionalFixed64_);
+ break;
+ }
+ case 77: {
+ result.hasOptionalSfixed32 = input.ReadSFixed32(ref result.optionalSfixed32_);
+ break;
+ }
+ case 81: {
+ result.hasOptionalSfixed64 = input.ReadSFixed64(ref result.optionalSfixed64_);
+ break;
+ }
+ case 93: {
+ result.hasOptionalFloat = input.ReadFloat(ref result.optionalFloat_);
+ break;
+ }
+ case 97: {
+ result.hasOptionalDouble = input.ReadDouble(ref result.optionalDouble_);
+ break;
+ }
+ case 104: {
+ result.hasOptionalBool = input.ReadBool(ref result.optionalBool_);
+ break;
+ }
+ case 114: {
+ result.hasOptionalString = input.ReadString(ref result.optionalString_);
+ break;
+ }
+ case 122: {
+ result.hasOptionalBytes = input.ReadBytes(ref result.optionalBytes_);
+ break;
+ }
+ case 131: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.CreateBuilder();
+ if (result.hasOptionalGroup) {
+ subBuilder.MergeFrom(OptionalGroup);
+ }
+ input.ReadGroup(16, subBuilder, extensionRegistry);
+ OptionalGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 146: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 154: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.CreateBuilder();
+ if (result.hasOptionalForeignMessage) {
+ subBuilder.MergeFrom(OptionalForeignMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalForeignMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 162: {
+ global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.CreateBuilder();
+ if (result.hasOptionalImportMessage) {
+ subBuilder.MergeFrom(OptionalImportMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalImportMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 168: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalNestedEnum_, out unknown)) {
+ result.hasOptionalNestedEnum = true;
+ } else if(unknown is int) {
+ }
+ break;
+ }
+ case 176: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalForeignEnum_, out unknown)) {
+ result.hasOptionalForeignEnum = true;
+ } else if(unknown is int) {
+ }
+ break;
+ }
+ case 184: {
+ object unknown;
+ if(input.ReadEnum(ref result.optionalImportEnum_, out unknown)) {
+ result.hasOptionalImportEnum = true;
+ } else if(unknown is int) {
+ }
+ break;
+ }
+ case 194: {
+ result.hasOptionalStringPiece = input.ReadString(ref result.optionalStringPiece_);
+ break;
+ }
+ case 202: {
+ result.hasOptionalCord = input.ReadString(ref result.optionalCord_);
+ break;
+ }
+ case 210: {
+ global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite.CreateBuilder();
+ if (result.hasOptionalPublicImportMessage) {
+ subBuilder.MergeFrom(OptionalPublicImportMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalPublicImportMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 218: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder();
+ if (result.hasOptionalLazyMessage) {
+ subBuilder.MergeFrom(OptionalLazyMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalLazyMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 250:
+ case 248: {
+ input.ReadInt32Array(tag, field_name, result.repeatedInt32_);
+ break;
+ }
+ case 258:
+ case 256: {
+ input.ReadInt64Array(tag, field_name, result.repeatedInt64_);
+ break;
+ }
+ case 266:
+ case 264: {
+ input.ReadUInt32Array(tag, field_name, result.repeatedUint32_);
+ break;
+ }
+ case 274:
+ case 272: {
+ input.ReadUInt64Array(tag, field_name, result.repeatedUint64_);
+ break;
+ }
+ case 282:
+ case 280: {
+ input.ReadSInt32Array(tag, field_name, result.repeatedSint32_);
+ break;
+ }
+ case 290:
+ case 288: {
+ input.ReadSInt64Array(tag, field_name, result.repeatedSint64_);
+ break;
+ }
+ case 298:
+ case 301: {
+ input.ReadFixed32Array(tag, field_name, result.repeatedFixed32_);
+ break;
+ }
+ case 306:
+ case 305: {
+ input.ReadFixed64Array(tag, field_name, result.repeatedFixed64_);
+ break;
+ }
+ case 314:
+ case 317: {
+ input.ReadSFixed32Array(tag, field_name, result.repeatedSfixed32_);
+ break;
+ }
+ case 322:
+ case 321: {
+ input.ReadSFixed64Array(tag, field_name, result.repeatedSfixed64_);
+ break;
+ }
+ case 330:
+ case 333: {
+ input.ReadFloatArray(tag, field_name, result.repeatedFloat_);
+ break;
+ }
+ case 338:
+ case 337: {
+ input.ReadDoubleArray(tag, field_name, result.repeatedDouble_);
+ break;
+ }
+ case 346:
+ case 344: {
+ input.ReadBoolArray(tag, field_name, result.repeatedBool_);
+ break;
+ }
+ case 354: {
+ input.ReadStringArray(tag, field_name, result.repeatedString_);
+ break;
+ }
+ case 362: {
+ input.ReadBytesArray(tag, field_name, result.repeatedBytes_);
+ break;
+ }
+ case 371: {
+ input.ReadGroupArray(tag, field_name, result.repeatedGroup_, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 386: {
+ input.ReadMessageArray(tag, field_name, result.repeatedNestedMessage_, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 394: {
+ input.ReadMessageArray(tag, field_name, result.repeatedForeignMessage_, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 402: {
+ input.ReadMessageArray(tag, field_name, result.repeatedImportMessage_, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 410:
+ case 408: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(tag, field_name, result.repeatedNestedEnum_, out unknownItems);
+ break;
+ }
+ case 418:
+ case 416: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(tag, field_name, result.repeatedForeignEnum_, out unknownItems);
+ break;
+ }
+ case 426:
+ case 424: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(tag, field_name, result.repeatedImportEnum_, out unknownItems);
+ break;
+ }
+ case 434: {
+ input.ReadStringArray(tag, field_name, result.repeatedStringPiece_);
+ break;
+ }
+ case 442: {
+ input.ReadStringArray(tag, field_name, result.repeatedCord_);
+ break;
+ }
+ case 458: {
+ input.ReadMessageArray(tag, field_name, result.repeatedLazyMessage_, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 488: {
+ result.hasDefaultInt32 = input.ReadInt32(ref result.defaultInt32_);
+ break;
+ }
+ case 496: {
+ result.hasDefaultInt64 = input.ReadInt64(ref result.defaultInt64_);
+ break;
+ }
+ case 504: {
+ result.hasDefaultUint32 = input.ReadUInt32(ref result.defaultUint32_);
+ break;
+ }
+ case 512: {
+ result.hasDefaultUint64 = input.ReadUInt64(ref result.defaultUint64_);
+ break;
+ }
+ case 520: {
+ result.hasDefaultSint32 = input.ReadSInt32(ref result.defaultSint32_);
+ break;
+ }
+ case 528: {
+ result.hasDefaultSint64 = input.ReadSInt64(ref result.defaultSint64_);
+ break;
+ }
+ case 541: {
+ result.hasDefaultFixed32 = input.ReadFixed32(ref result.defaultFixed32_);
+ break;
+ }
+ case 545: {
+ result.hasDefaultFixed64 = input.ReadFixed64(ref result.defaultFixed64_);
+ break;
+ }
+ case 557: {
+ result.hasDefaultSfixed32 = input.ReadSFixed32(ref result.defaultSfixed32_);
+ break;
+ }
+ case 561: {
+ result.hasDefaultSfixed64 = input.ReadSFixed64(ref result.defaultSfixed64_);
+ break;
+ }
+ case 573: {
+ result.hasDefaultFloat = input.ReadFloat(ref result.defaultFloat_);
+ break;
+ }
+ case 577: {
+ result.hasDefaultDouble = input.ReadDouble(ref result.defaultDouble_);
+ break;
+ }
+ case 584: {
+ result.hasDefaultBool = input.ReadBool(ref result.defaultBool_);
+ break;
+ }
+ case 594: {
+ result.hasDefaultString = input.ReadString(ref result.defaultString_);
+ break;
+ }
+ case 602: {
+ result.hasDefaultBytes = input.ReadBytes(ref result.defaultBytes_);
+ break;
+ }
+ case 648: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultNestedEnum_, out unknown)) {
+ result.hasDefaultNestedEnum = true;
+ } else if(unknown is int) {
+ }
+ break;
+ }
+ case 656: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultForeignEnum_, out unknown)) {
+ result.hasDefaultForeignEnum = true;
+ } else if(unknown is int) {
+ }
+ break;
+ }
+ case 664: {
+ object unknown;
+ if(input.ReadEnum(ref result.defaultImportEnum_, out unknown)) {
+ result.hasDefaultImportEnum = true;
+ } else if(unknown is int) {
+ }
+ break;
+ }
+ case 674: {
+ result.hasDefaultStringPiece = input.ReadString(ref result.defaultStringPiece_);
+ break;
+ }
+ case 682: {
+ result.hasDefaultCord = input.ReadString(ref result.defaultCord_);
+ break;
+ }
+ case 888: {
+ uint value = 0;
+ if (input.ReadUInt32(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
+ }
+ break;
+ }
+ case 898: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ subBuilder.MergeFrom(OneofNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ result.oneofField_ = subBuilder.BuildPartial();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ break;
+ }
+ case 906: {
+ string value = "";
+ if (input.ReadString(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofString;
+ }
+ break;
+ }
+ case 914: {
+ pb::ByteString value = pb::ByteString.Empty;
+ if (input.ReadBytes(ref value)) {
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;
+ }
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasOptionalInt32 {
+ get { return result.hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ PrepareBuilder();
+ result.hasOptionalInt32 = true;
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ PrepareBuilder();
+ result.hasOptionalInt32 = false;
+ result.optionalInt32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalInt64 {
+ get { return result.hasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return result.OptionalInt64; }
+ set { SetOptionalInt64(value); }
+ }
+ public Builder SetOptionalInt64(long value) {
+ PrepareBuilder();
+ result.hasOptionalInt64 = true;
+ result.optionalInt64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt64() {
+ PrepareBuilder();
+ result.hasOptionalInt64 = false;
+ result.optionalInt64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalUint32 {
+ get { return result.hasOptionalUint32; }
+ }
+ public uint OptionalUint32 {
+ get { return result.OptionalUint32; }
+ set { SetOptionalUint32(value); }
+ }
+ public Builder SetOptionalUint32(uint value) {
+ PrepareBuilder();
+ result.hasOptionalUint32 = true;
+ result.optionalUint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint32() {
+ PrepareBuilder();
+ result.hasOptionalUint32 = false;
+ result.optionalUint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalUint64 {
+ get { return result.hasOptionalUint64; }
+ }
+ public ulong OptionalUint64 {
+ get { return result.OptionalUint64; }
+ set { SetOptionalUint64(value); }
+ }
+ public Builder SetOptionalUint64(ulong value) {
+ PrepareBuilder();
+ result.hasOptionalUint64 = true;
+ result.optionalUint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint64() {
+ PrepareBuilder();
+ result.hasOptionalUint64 = false;
+ result.optionalUint64_ = 0UL;
+ return this;
+ }
+
+ public bool HasOptionalSint32 {
+ get { return result.hasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return result.OptionalSint32; }
+ set { SetOptionalSint32(value); }
+ }
+ public Builder SetOptionalSint32(int value) {
+ PrepareBuilder();
+ result.hasOptionalSint32 = true;
+ result.optionalSint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint32() {
+ PrepareBuilder();
+ result.hasOptionalSint32 = false;
+ result.optionalSint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSint64 {
+ get { return result.hasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return result.OptionalSint64; }
+ set { SetOptionalSint64(value); }
+ }
+ public Builder SetOptionalSint64(long value) {
+ PrepareBuilder();
+ result.hasOptionalSint64 = true;
+ result.optionalSint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint64() {
+ PrepareBuilder();
+ result.hasOptionalSint64 = false;
+ result.optionalSint64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalFixed32 {
+ get { return result.hasOptionalFixed32; }
+ }
+ public uint OptionalFixed32 {
+ get { return result.OptionalFixed32; }
+ set { SetOptionalFixed32(value); }
+ }
+ public Builder SetOptionalFixed32(uint value) {
+ PrepareBuilder();
+ result.hasOptionalFixed32 = true;
+ result.optionalFixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed32() {
+ PrepareBuilder();
+ result.hasOptionalFixed32 = false;
+ result.optionalFixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalFixed64 {
+ get { return result.hasOptionalFixed64; }
+ }
+ public ulong OptionalFixed64 {
+ get { return result.OptionalFixed64; }
+ set { SetOptionalFixed64(value); }
+ }
+ public Builder SetOptionalFixed64(ulong value) {
+ PrepareBuilder();
+ result.hasOptionalFixed64 = true;
+ result.optionalFixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed64() {
+ PrepareBuilder();
+ result.hasOptionalFixed64 = false;
+ result.optionalFixed64_ = 0UL;
+ return this;
+ }
+
+ public bool HasOptionalSfixed32 {
+ get { return result.hasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return result.OptionalSfixed32; }
+ set { SetOptionalSfixed32(value); }
+ }
+ public Builder SetOptionalSfixed32(int value) {
+ PrepareBuilder();
+ result.hasOptionalSfixed32 = true;
+ result.optionalSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed32() {
+ PrepareBuilder();
+ result.hasOptionalSfixed32 = false;
+ result.optionalSfixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSfixed64 {
+ get { return result.hasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return result.OptionalSfixed64; }
+ set { SetOptionalSfixed64(value); }
+ }
+ public Builder SetOptionalSfixed64(long value) {
+ PrepareBuilder();
+ result.hasOptionalSfixed64 = true;
+ result.optionalSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed64() {
+ PrepareBuilder();
+ result.hasOptionalSfixed64 = false;
+ result.optionalSfixed64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalFloat {
+ get { return result.hasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return result.OptionalFloat; }
+ set { SetOptionalFloat(value); }
+ }
+ public Builder SetOptionalFloat(float value) {
+ PrepareBuilder();
+ result.hasOptionalFloat = true;
+ result.optionalFloat_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFloat() {
+ PrepareBuilder();
+ result.hasOptionalFloat = false;
+ result.optionalFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOptionalDouble {
+ get { return result.hasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return result.OptionalDouble; }
+ set { SetOptionalDouble(value); }
+ }
+ public Builder SetOptionalDouble(double value) {
+ PrepareBuilder();
+ result.hasOptionalDouble = true;
+ result.optionalDouble_ = value;
+ return this;
+ }
+ public Builder ClearOptionalDouble() {
+ PrepareBuilder();
+ result.hasOptionalDouble = false;
+ result.optionalDouble_ = 0D;
+ return this;
+ }
+
+ public bool HasOptionalBool {
+ get { return result.hasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return result.OptionalBool; }
+ set { SetOptionalBool(value); }
+ }
+ public Builder SetOptionalBool(bool value) {
+ PrepareBuilder();
+ result.hasOptionalBool = true;
+ result.optionalBool_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBool() {
+ PrepareBuilder();
+ result.hasOptionalBool = false;
+ result.optionalBool_ = false;
+ return this;
+ }
+
+ public bool HasOptionalString {
+ get { return result.hasOptionalString; }
+ }
+ public string OptionalString {
+ get { return result.OptionalString; }
+ set { SetOptionalString(value); }
+ }
+ public Builder SetOptionalString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalString = true;
+ result.optionalString_ = value;
+ return this;
+ }
+ public Builder ClearOptionalString() {
+ PrepareBuilder();
+ result.hasOptionalString = false;
+ result.optionalString_ = "";
+ return this;
+ }
+
+ public bool HasOptionalBytes {
+ get { return result.hasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return result.OptionalBytes; }
+ set { SetOptionalBytes(value); }
+ }
+ public Builder SetOptionalBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalBytes = true;
+ result.optionalBytes_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBytes() {
+ PrepareBuilder();
+ result.hasOptionalBytes = false;
+ result.optionalBytes_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasOptionalGroup {
+ get { return result.hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup OptionalGroup {
+ get { return result.OptionalGroup; }
+ set { SetOptionalGroup(value); }
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroup &&
+ result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance) {
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroup_ = value;
+ }
+ result.hasOptionalGroup = true;
+ return this;
+ }
+ public Builder ClearOptionalGroup() {
+ PrepareBuilder();
+ result.hasOptionalGroup = false;
+ result.optionalGroup_ = null;
+ return this;
+ }
+
+ public bool HasOptionalNestedMessage {
+ get { return result.hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ PrepareBuilder();
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalForeignMessage {
+ get { return result.hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite OptionalForeignMessage {
+ get { return result.OptionalForeignMessage; }
+ set { SetOptionalForeignMessage(value); }
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalForeignMessage &&
+ result.optionalForeignMessage_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance) {
+ result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.CreateBuilder(result.optionalForeignMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalForeignMessage_ = value;
+ }
+ result.hasOptionalForeignMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalForeignMessage() {
+ PrepareBuilder();
+ result.hasOptionalForeignMessage = false;
+ result.optionalForeignMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalImportMessage {
+ get { return result.hasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessageLite OptionalImportMessage {
+ get { return result.OptionalImportMessage; }
+ set { SetOptionalImportMessage(value); }
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalImportMessage &&
+ result.optionalImportMessage_ != global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance) {
+ result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.CreateBuilder(result.optionalImportMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalImportMessage_ = value;
+ }
+ result.hasOptionalImportMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalImportMessage() {
+ PrepareBuilder();
+ result.hasOptionalImportMessage = false;
+ result.optionalImportMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalNestedEnum {
+ get { return result.hasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum OptionalNestedEnum {
+ get { return result.OptionalNestedEnum; }
+ set { SetOptionalNestedEnum(value); }
+ }
+ public Builder SetOptionalNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.hasOptionalNestedEnum = true;
+ result.optionalNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalNestedEnum() {
+ PrepareBuilder();
+ result.hasOptionalNestedEnum = false;
+ result.optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum.FOO;
+ return this;
+ }
+
+ public bool HasOptionalForeignEnum {
+ get { return result.hasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite OptionalForeignEnum {
+ get { return result.OptionalForeignEnum; }
+ set { SetOptionalForeignEnum(value); }
+ }
+ public Builder SetOptionalForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ PrepareBuilder();
+ result.hasOptionalForeignEnum = true;
+ result.optionalForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalForeignEnum() {
+ PrepareBuilder();
+ result.hasOptionalForeignEnum = false;
+ result.optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite.FOREIGN_LITE_FOO;
+ return this;
+ }
+
+ public bool HasOptionalImportEnum {
+ get { return result.hasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite OptionalImportEnum {
+ get { return result.OptionalImportEnum; }
+ set { SetOptionalImportEnum(value); }
+ }
+ public Builder SetOptionalImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite value) {
+ PrepareBuilder();
+ result.hasOptionalImportEnum = true;
+ result.optionalImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalImportEnum() {
+ PrepareBuilder();
+ result.hasOptionalImportEnum = false;
+ result.optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnumLite.IMPORT_LITE_FOO;
+ return this;
+ }
+
+ public bool HasOptionalStringPiece {
+ get { return result.hasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return result.OptionalStringPiece; }
+ set { SetOptionalStringPiece(value); }
+ }
+ public Builder SetOptionalStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalStringPiece = true;
+ result.optionalStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearOptionalStringPiece() {
+ PrepareBuilder();
+ result.hasOptionalStringPiece = false;
+ result.optionalStringPiece_ = "";
+ return this;
+ }
+
+ public bool HasOptionalCord {
+ get { return result.hasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return result.OptionalCord; }
+ set { SetOptionalCord(value); }
+ }
+ public Builder SetOptionalCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalCord = true;
+ result.optionalCord_ = value;
+ return this;
+ }
+ public Builder ClearOptionalCord() {
+ PrepareBuilder();
+ result.hasOptionalCord = false;
+ result.optionalCord_ = "";
+ return this;
+ }
+
+ public bool HasOptionalPublicImportMessage {
+ get { return result.hasOptionalPublicImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite OptionalPublicImportMessage {
+ get { return result.OptionalPublicImportMessage; }
+ set { SetOptionalPublicImportMessage(value); }
+ }
+ public Builder SetOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = true;
+ result.optionalPublicImportMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = true;
+ result.optionalPublicImportMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalPublicImportMessage(global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalPublicImportMessage &&
+ result.optionalPublicImportMessage_ != global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite.DefaultInstance) {
+ result.optionalPublicImportMessage_ = global::Google.ProtocolBuffers.TestProtos.PublicImportMessageLite.CreateBuilder(result.optionalPublicImportMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalPublicImportMessage_ = value;
+ }
+ result.hasOptionalPublicImportMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalPublicImportMessage() {
+ PrepareBuilder();
+ result.hasOptionalPublicImportMessage = false;
+ result.optionalPublicImportMessage_ = null;
+ return this;
+ }
+
+ public bool HasOptionalLazyMessage {
+ get { return result.hasOptionalLazyMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage OptionalLazyMessage {
+ get { return result.OptionalLazyMessage; }
+ set { SetOptionalLazyMessage(value); }
+ }
+ public Builder SetOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = true;
+ result.optionalLazyMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = true;
+ result.optionalLazyMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalLazyMessage &&
+ result.optionalLazyMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance) {
+ result.optionalLazyMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder(result.optionalLazyMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalLazyMessage_ = value;
+ }
+ result.hasOptionalLazyMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalLazyMessage() {
+ PrepareBuilder();
+ result.hasOptionalLazyMessage = false;
+ result.optionalLazyMessage_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return PrepareBuilder().repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ PrepareBuilder();
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return PrepareBuilder().repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ PrepareBuilder();
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> RepeatedUint32List {
+ get { return PrepareBuilder().repeatedUint32_; }
+ }
+ public int RepeatedUint32Count {
+ get { return result.RepeatedUint32Count; }
+ }
+ public uint GetRepeatedUint32(int index) {
+ return result.GetRepeatedUint32(index);
+ }
+ public Builder SetRepeatedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedUint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedUint32(uint value) {
+ PrepareBuilder();
+ result.repeatedUint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint32() {
+ PrepareBuilder();
+ result.repeatedUint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return PrepareBuilder().repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedUint64(ulong value) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ PrepareBuilder();
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSint32List {
+ get { return PrepareBuilder().repeatedSint32_; }
+ }
+ public int RepeatedSint32Count {
+ get { return result.RepeatedSint32Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return result.GetRepeatedSint32(index);
+ }
+ public Builder SetRepeatedSint32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint32(int value) {
+ PrepareBuilder();
+ result.repeatedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSint32() {
+ PrepareBuilder();
+ result.repeatedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSint64List {
+ get { return PrepareBuilder().repeatedSint64_; }
+ }
+ public int RepeatedSint64Count {
+ get { return result.RepeatedSint64Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return result.GetRepeatedSint64(index);
+ }
+ public Builder SetRepeatedSint64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint64(long value) {
+ PrepareBuilder();
+ result.repeatedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSint64() {
+ PrepareBuilder();
+ result.repeatedSint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return PrepareBuilder().repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed32(uint value) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.repeatedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ PrepareBuilder();
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return PrepareBuilder().repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFixed64(ulong value) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.repeatedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ PrepareBuilder();
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSfixed32List {
+ get { return PrepareBuilder().repeatedSfixed32_; }
+ }
+ public int RepeatedSfixed32Count {
+ get { return result.RepeatedSfixed32Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return result.GetRepeatedSfixed32(index);
+ }
+ public Builder SetRepeatedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.repeatedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed32(int value) {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed32() {
+ PrepareBuilder();
+ result.repeatedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSfixed64List {
+ get { return PrepareBuilder().repeatedSfixed64_; }
+ }
+ public int RepeatedSfixed64Count {
+ get { return result.RepeatedSfixed64Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return result.GetRepeatedSfixed64(index);
+ }
+ public Builder SetRepeatedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.repeatedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed64(long value) {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed64() {
+ PrepareBuilder();
+ result.repeatedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return PrepareBuilder().repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ PrepareBuilder();
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.repeatedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ PrepareBuilder();
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> RepeatedDoubleList {
+ get { return PrepareBuilder().repeatedDouble_; }
+ }
+ public int RepeatedDoubleCount {
+ get { return result.RepeatedDoubleCount; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return result.GetRepeatedDouble(index);
+ }
+ public Builder SetRepeatedDouble(int index, double value) {
+ PrepareBuilder();
+ result.repeatedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedDouble(double value) {
+ PrepareBuilder();
+ result.repeatedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.repeatedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedDouble() {
+ PrepareBuilder();
+ result.repeatedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> RepeatedBoolList {
+ get { return PrepareBuilder().repeatedBool_; }
+ }
+ public int RepeatedBoolCount {
+ get { return result.RepeatedBoolCount; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return result.GetRepeatedBool(index);
+ }
+ public Builder SetRepeatedBool(int index, bool value) {
+ PrepareBuilder();
+ result.repeatedBool_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBool(bool value) {
+ PrepareBuilder();
+ result.repeatedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.repeatedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedBool() {
+ PrepareBuilder();
+ result.repeatedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringList {
+ get { return PrepareBuilder().repeatedString_; }
+ }
+ public int RepeatedStringCount {
+ get { return result.RepeatedStringCount; }
+ }
+ public string GetRepeatedString(int index) {
+ return result.GetRepeatedString(index);
+ }
+ public Builder SetRepeatedString(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedString_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedString_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedString(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedString_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedString() {
+ PrepareBuilder();
+ result.repeatedString_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<pb::ByteString> RepeatedBytesList {
+ get { return PrepareBuilder().repeatedBytes_; }
+ }
+ public int RepeatedBytesCount {
+ get { return result.RepeatedBytesCount; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return result.GetRepeatedBytes(index);
+ }
+ public Builder SetRepeatedBytes(int index, pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedBytes_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedBytes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBytes(scg::IEnumerable<pb::ByteString> values) {
+ PrepareBuilder();
+ result.repeatedBytes_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedBytes() {
+ PrepareBuilder();
+ result.repeatedBytes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup> RepeatedGroupList {
+ get { return PrepareBuilder().repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return result.RepeatedGroupCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return result.GetRepeatedGroup(index);
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedGroup(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup> values) {
+ PrepareBuilder();
+ result.repeatedGroup_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedGroup() {
+ PrepareBuilder();
+ result.repeatedGroup_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return PrepareBuilder().repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return result.RepeatedNestedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return result.GetRepeatedNestedMessage(index);
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedNestedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedNestedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> values) {
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedNestedMessage() {
+ PrepareBuilder();
+ result.repeatedNestedMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> RepeatedForeignMessageList {
+ get { return PrepareBuilder().repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return result.RepeatedForeignMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite GetRepeatedForeignMessage(int index) {
+ return result.GetRepeatedForeignMessage(index);
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedForeignMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedForeignMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> values) {
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedForeignMessage() {
+ PrepareBuilder();
+ result.repeatedForeignMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> RepeatedImportMessageList {
+ get { return PrepareBuilder().repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return result.RepeatedImportMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessageLite GetRepeatedImportMessage(int index) {
+ return result.GetRepeatedImportMessage(index);
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedImportMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedImportMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedImportMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> values) {
+ PrepareBuilder();
+ result.repeatedImportMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedImportMessage() {
+ PrepareBuilder();
+ result.repeatedImportMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return PrepareBuilder().repeatedNestedEnum_; }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return result.RepeatedNestedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return result.GetRepeatedNestedEnum(index);
+ }
+ public Builder SetRepeatedNestedEnum(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> values) {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedNestedEnum() {
+ PrepareBuilder();
+ result.repeatedNestedEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> RepeatedForeignEnumList {
+ get { return PrepareBuilder().repeatedForeignEnum_; }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return result.RepeatedForeignEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite GetRepeatedForeignEnum(int index) {
+ return result.GetRepeatedForeignEnum(index);
+ }
+ public Builder SetRepeatedForeignEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> values) {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedForeignEnum() {
+ PrepareBuilder();
+ result.repeatedForeignEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> RepeatedImportEnumList {
+ get { return PrepareBuilder().repeatedImportEnum_; }
+ }
+ public int RepeatedImportEnumCount {
+ get { return result.RepeatedImportEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite GetRepeatedImportEnum(int index) {
+ return result.GetRepeatedImportEnum(index);
+ }
+ public Builder SetRepeatedImportEnum(int index, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite value) {
+ PrepareBuilder();
+ result.repeatedImportEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite value) {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedImportEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> values) {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedImportEnum() {
+ PrepareBuilder();
+ result.repeatedImportEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceList {
+ get { return PrepareBuilder().repeatedStringPiece_; }
+ }
+ public int RepeatedStringPieceCount {
+ get { return result.RepeatedStringPieceCount; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return result.GetRepeatedStringPiece(index);
+ }
+ public Builder SetRepeatedStringPiece(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPiece_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedStringPiece_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPiece(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedStringPiece_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedStringPiece() {
+ PrepareBuilder();
+ result.repeatedStringPiece_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordList {
+ get { return PrepareBuilder().repeatedCord_; }
+ }
+ public int RepeatedCordCount {
+ get { return result.RepeatedCordCount; }
+ }
+ public string GetRepeatedCord(int index) {
+ return result.GetRepeatedCord(index);
+ }
+ public Builder SetRepeatedCord(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCord_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedCord_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCord(scg::IEnumerable<string> values) {
+ PrepareBuilder();
+ result.repeatedCord_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedCord() {
+ PrepareBuilder();
+ result.repeatedCord_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> RepeatedLazyMessageList {
+ get { return PrepareBuilder().repeatedLazyMessage_; }
+ }
+ public int RepeatedLazyMessageCount {
+ get { return result.RepeatedLazyMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage GetRepeatedLazyMessage(int index) {
+ return result.GetRepeatedLazyMessage(index);
+ }
+ public Builder SetRepeatedLazyMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedLazyMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedLazyMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedLazyMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedLazyMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedLazyMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> values) {
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedLazyMessage() {
+ PrepareBuilder();
+ result.repeatedLazyMessage_.Clear();
+ return this;
+ }
+
+ public bool HasDefaultInt32 {
+ get { return result.hasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return result.DefaultInt32; }
+ set { SetDefaultInt32(value); }
+ }
+ public Builder SetDefaultInt32(int value) {
+ PrepareBuilder();
+ result.hasDefaultInt32 = true;
+ result.defaultInt32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt32() {
+ PrepareBuilder();
+ result.hasDefaultInt32 = false;
+ result.defaultInt32_ = 41;
+ return this;
+ }
+
+ public bool HasDefaultInt64 {
+ get { return result.hasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return result.DefaultInt64; }
+ set { SetDefaultInt64(value); }
+ }
+ public Builder SetDefaultInt64(long value) {
+ PrepareBuilder();
+ result.hasDefaultInt64 = true;
+ result.defaultInt64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt64() {
+ PrepareBuilder();
+ result.hasDefaultInt64 = false;
+ result.defaultInt64_ = 42L;
+ return this;
+ }
+
+ public bool HasDefaultUint32 {
+ get { return result.hasDefaultUint32; }
+ }
+ public uint DefaultUint32 {
+ get { return result.DefaultUint32; }
+ set { SetDefaultUint32(value); }
+ }
+ public Builder SetDefaultUint32(uint value) {
+ PrepareBuilder();
+ result.hasDefaultUint32 = true;
+ result.defaultUint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint32() {
+ PrepareBuilder();
+ result.hasDefaultUint32 = false;
+ result.defaultUint32_ = 43;
+ return this;
+ }
+
+ public bool HasDefaultUint64 {
+ get { return result.hasDefaultUint64; }
+ }
+ public ulong DefaultUint64 {
+ get { return result.DefaultUint64; }
+ set { SetDefaultUint64(value); }
+ }
+ public Builder SetDefaultUint64(ulong value) {
+ PrepareBuilder();
+ result.hasDefaultUint64 = true;
+ result.defaultUint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint64() {
+ PrepareBuilder();
+ result.hasDefaultUint64 = false;
+ result.defaultUint64_ = 44UL;
+ return this;
+ }
+
+ public bool HasDefaultSint32 {
+ get { return result.hasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return result.DefaultSint32; }
+ set { SetDefaultSint32(value); }
+ }
+ public Builder SetDefaultSint32(int value) {
+ PrepareBuilder();
+ result.hasDefaultSint32 = true;
+ result.defaultSint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint32() {
+ PrepareBuilder();
+ result.hasDefaultSint32 = false;
+ result.defaultSint32_ = -45;
+ return this;
+ }
+
+ public bool HasDefaultSint64 {
+ get { return result.hasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return result.DefaultSint64; }
+ set { SetDefaultSint64(value); }
+ }
+ public Builder SetDefaultSint64(long value) {
+ PrepareBuilder();
+ result.hasDefaultSint64 = true;
+ result.defaultSint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint64() {
+ PrepareBuilder();
+ result.hasDefaultSint64 = false;
+ result.defaultSint64_ = 46L;
+ return this;
+ }
+
+ public bool HasDefaultFixed32 {
+ get { return result.hasDefaultFixed32; }
+ }
+ public uint DefaultFixed32 {
+ get { return result.DefaultFixed32; }
+ set { SetDefaultFixed32(value); }
+ }
+ public Builder SetDefaultFixed32(uint value) {
+ PrepareBuilder();
+ result.hasDefaultFixed32 = true;
+ result.defaultFixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed32() {
+ PrepareBuilder();
+ result.hasDefaultFixed32 = false;
+ result.defaultFixed32_ = 47;
+ return this;
+ }
+
+ public bool HasDefaultFixed64 {
+ get { return result.hasDefaultFixed64; }
+ }
+ public ulong DefaultFixed64 {
+ get { return result.DefaultFixed64; }
+ set { SetDefaultFixed64(value); }
+ }
+ public Builder SetDefaultFixed64(ulong value) {
+ PrepareBuilder();
+ result.hasDefaultFixed64 = true;
+ result.defaultFixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed64() {
+ PrepareBuilder();
+ result.hasDefaultFixed64 = false;
+ result.defaultFixed64_ = 48UL;
+ return this;
+ }
+
+ public bool HasDefaultSfixed32 {
+ get { return result.hasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return result.DefaultSfixed32; }
+ set { SetDefaultSfixed32(value); }
+ }
+ public Builder SetDefaultSfixed32(int value) {
+ PrepareBuilder();
+ result.hasDefaultSfixed32 = true;
+ result.defaultSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed32() {
+ PrepareBuilder();
+ result.hasDefaultSfixed32 = false;
+ result.defaultSfixed32_ = 49;
+ return this;
+ }
+
+ public bool HasDefaultSfixed64 {
+ get { return result.hasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return result.DefaultSfixed64; }
+ set { SetDefaultSfixed64(value); }
+ }
+ public Builder SetDefaultSfixed64(long value) {
+ PrepareBuilder();
+ result.hasDefaultSfixed64 = true;
+ result.defaultSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed64() {
+ PrepareBuilder();
+ result.hasDefaultSfixed64 = false;
+ result.defaultSfixed64_ = -50L;
+ return this;
+ }
+
+ public bool HasDefaultFloat {
+ get { return result.hasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return result.DefaultFloat; }
+ set { SetDefaultFloat(value); }
+ }
+ public Builder SetDefaultFloat(float value) {
+ PrepareBuilder();
+ result.hasDefaultFloat = true;
+ result.defaultFloat_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFloat() {
+ PrepareBuilder();
+ result.hasDefaultFloat = false;
+ result.defaultFloat_ = 51.5F;
+ return this;
+ }
+
+ public bool HasDefaultDouble {
+ get { return result.hasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return result.DefaultDouble; }
+ set { SetDefaultDouble(value); }
+ }
+ public Builder SetDefaultDouble(double value) {
+ PrepareBuilder();
+ result.hasDefaultDouble = true;
+ result.defaultDouble_ = value;
+ return this;
+ }
+ public Builder ClearDefaultDouble() {
+ PrepareBuilder();
+ result.hasDefaultDouble = false;
+ result.defaultDouble_ = 52000D;
+ return this;
+ }
+
+ public bool HasDefaultBool {
+ get { return result.hasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return result.DefaultBool; }
+ set { SetDefaultBool(value); }
+ }
+ public Builder SetDefaultBool(bool value) {
+ PrepareBuilder();
+ result.hasDefaultBool = true;
+ result.defaultBool_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBool() {
+ PrepareBuilder();
+ result.hasDefaultBool = false;
+ result.defaultBool_ = true;
+ return this;
+ }
+
+ public bool HasDefaultString {
+ get { return result.hasDefaultString; }
+ }
+ public string DefaultString {
+ get { return result.DefaultString; }
+ set { SetDefaultString(value); }
+ }
+ public Builder SetDefaultString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultString = true;
+ result.defaultString_ = value;
+ return this;
+ }
+ public Builder ClearDefaultString() {
+ PrepareBuilder();
+ result.hasDefaultString = false;
+ result.defaultString_ = "hello";
+ return this;
+ }
+
+ public bool HasDefaultBytes {
+ get { return result.hasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return result.DefaultBytes; }
+ set { SetDefaultBytes(value); }
+ }
+ public Builder SetDefaultBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultBytes = true;
+ result.defaultBytes_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBytes() {
+ PrepareBuilder();
+ result.hasDefaultBytes = false;
+ result.defaultBytes_ = pb::ByteString.FromBase64("d29ybGQ=");
+ return this;
+ }
+
+ public bool HasDefaultNestedEnum {
+ get { return result.hasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum DefaultNestedEnum {
+ get { return result.DefaultNestedEnum; }
+ set { SetDefaultNestedEnum(value); }
+ }
+ public Builder SetDefaultNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum value) {
+ PrepareBuilder();
+ result.hasDefaultNestedEnum = true;
+ result.defaultNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultNestedEnum() {
+ PrepareBuilder();
+ result.hasDefaultNestedEnum = false;
+ result.defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum.BAR;
+ return this;
+ }
+
+ public bool HasDefaultForeignEnum {
+ get { return result.hasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite DefaultForeignEnum {
+ get { return result.DefaultForeignEnum; }
+ set { SetDefaultForeignEnum(value); }
+ }
+ public Builder SetDefaultForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ PrepareBuilder();
+ result.hasDefaultForeignEnum = true;
+ result.defaultForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultForeignEnum() {
+ PrepareBuilder();
+ result.hasDefaultForeignEnum = false;
+ result.defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite.FOREIGN_LITE_BAR;
+ return this;
+ }
+
+ public bool HasDefaultImportEnum {
+ get { return result.hasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite DefaultImportEnum {
+ get { return result.DefaultImportEnum; }
+ set { SetDefaultImportEnum(value); }
+ }
+ public Builder SetDefaultImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite value) {
+ PrepareBuilder();
+ result.hasDefaultImportEnum = true;
+ result.defaultImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultImportEnum() {
+ PrepareBuilder();
+ result.hasDefaultImportEnum = false;
+ result.defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnumLite.IMPORT_LITE_BAR;
+ return this;
+ }
+
+ public bool HasDefaultStringPiece {
+ get { return result.hasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return result.DefaultStringPiece; }
+ set { SetDefaultStringPiece(value); }
+ }
+ public Builder SetDefaultStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultStringPiece = true;
+ result.defaultStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearDefaultStringPiece() {
+ PrepareBuilder();
+ result.hasDefaultStringPiece = false;
+ result.defaultStringPiece_ = "abc";
+ return this;
+ }
+
+ public bool HasDefaultCord {
+ get { return result.hasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return result.DefaultCord; }
+ set { SetDefaultCord(value); }
+ }
+ public Builder SetDefaultCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasDefaultCord = true;
+ result.defaultCord_ = value;
+ return this;
+ }
+ public Builder ClearDefaultCord() {
+ PrepareBuilder();
+ result.hasDefaultCord = false;
+ result.defaultCord_ = "123";
+ return this;
+ }
+
+ public bool HasOneofUint32 {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32; }
+ }
+ public uint OneofUint32 {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32 ? (uint) result.oneofField_ : 0; }
+ set { SetOneofUint32(value); }
+ }
+ public Builder SetOneofUint32(uint value) {
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofUint32;
+ return this;
+ }
+ public Builder ClearOneofUint32() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofUint32) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasOneofNestedMessage {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage OneofNestedMessage {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage ? (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage) result.oneofField_ : global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance; }
+ set { SetOneofNestedMessage(value); }
+ }
+ public Builder SetOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ result.oneofField_ = value;
+ return this;
+ }
+ public Builder SetOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ result.oneofField_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOneofNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage &&
+ result.OneofNestedMessage != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance) {
+ result.oneofField_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder(result.OneofNestedMessage).MergeFrom(value).BuildPartial();
+ } else {
+ result.oneofField_ = value;
+ }
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofNestedMessage;
+ return this;
+ }
+ public Builder ClearOneofNestedMessage() {
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofNestedMessage) {
+ PrepareBuilder();
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ result.oneofField_ = null;
+ }
+ return this;
+ }
+
+ public bool HasOneofString {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofString; }
+ }
+ public string OneofString {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofString ? (string) result.oneofField_ : ""; }
+ set { SetOneofString(value); }
+ }
+ public Builder SetOneofString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofString;
+ return this;
+ }
+ public Builder ClearOneofString() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofString) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public bool HasOneofBytes {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofBytes; }
+ }
+ public pb::ByteString OneofBytes {
+ get { return result.oneofFieldCase_ == OneofFieldOneofCase.OneofBytes ? (pb::ByteString) result.oneofField_ : pb::ByteString.Empty; }
+ set { SetOneofBytes(value); }
+ }
+ public Builder SetOneofBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.oneofField_ = value;
+ result.oneofFieldCase_ = OneofFieldOneofCase.OneofBytes;
+ return this;
+ }
+ public Builder ClearOneofBytes() {
+ PrepareBuilder();
+ if (result.oneofFieldCase_ == OneofFieldOneofCase.OneofBytes) {
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ }
+ return this;
+ }
+
+ public OneofFieldOneofCase OneofFieldCase {
+ get { return result.oneofFieldCase_; }
+ }
+ public Builder ClearOneofField() {
+ PrepareBuilder();
+ result.oneofField_ = null;
+ result.oneofFieldCase_ = OneofFieldOneofCase.None;
+ return this;
+ }
+ }
+ static TestAllTypesLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ForeignMessageLite : pb::GeneratedMessageLite<ForeignMessageLite, ForeignMessageLite.Builder> {
+ private ForeignMessageLite() { }
+ private static readonly ForeignMessageLite defaultInstance = new ForeignMessageLite().MakeReadOnly();
+ private static readonly string[] _foreignMessageLiteFieldNames = new string[] { "c" };
+ private static readonly uint[] _foreignMessageLiteFieldTags = new uint[] { 8 };
+ public static ForeignMessageLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ForeignMessageLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ForeignMessageLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int CFieldNumber = 1;
+ private bool hasC;
+ private int c_;
+ public bool HasC {
+ get { return hasC; }
+ }
+ public int C {
+ get { return c_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _foreignMessageLiteFieldNames;
+ if (hasC) {
+ output.WriteInt32(1, field_names[0], C);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasC) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, C);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasC) {
+ hash ^= c_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ ForeignMessageLite other = obj as ForeignMessageLite;
+ if (other == null) return false;
+ if (hasC != other.hasC || (hasC && !c_.Equals(other.c_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("c", hasC, c_, writer);
+ }
+ #endregion
+
+ public static ForeignMessageLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ForeignMessageLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ForeignMessageLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ForeignMessageLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<ForeignMessageLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ForeignMessageLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ForeignMessageLite result;
+
+ private ForeignMessageLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ForeignMessageLite original = result;
+ result = new ForeignMessageLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ForeignMessageLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override ForeignMessageLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance; }
+ }
+
+ public override ForeignMessageLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is ForeignMessageLite) {
+ return MergeFrom((ForeignMessageLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ForeignMessageLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasC) {
+ C = other.C;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_foreignMessageLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _foreignMessageLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasC = input.ReadInt32(ref result.c_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasC {
+ get { return result.hasC; }
+ }
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ PrepareBuilder();
+ result.hasC = true;
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ PrepareBuilder();
+ result.hasC = false;
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static ForeignMessageLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestPackedTypesLite : pb::GeneratedMessageLite<TestPackedTypesLite, TestPackedTypesLite.Builder> {
+ private TestPackedTypesLite() { }
+ private static readonly TestPackedTypesLite defaultInstance = new TestPackedTypesLite().MakeReadOnly();
+ private static readonly string[] _testPackedTypesLiteFieldNames = new string[] { "packed_bool", "packed_double", "packed_enum", "packed_fixed32", "packed_fixed64", "packed_float", "packed_int32", "packed_int64", "packed_sfixed32", "packed_sfixed64", "packed_sint32", "packed_sint64", "packed_uint32", "packed_uint64" };
+ private static readonly uint[] _testPackedTypesLiteFieldTags = new uint[] { 818, 810, 826, 770, 778, 802, 722, 730, 786, 794, 754, 762, 738, 746 };
+ public static TestPackedTypesLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedTypesLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestPackedTypesLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int PackedInt32FieldNumber = 90;
+ private int packedInt32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedInt32List {
+ get { return pbc::Lists.AsReadOnly(packedInt32_); }
+ }
+ public int PackedInt32Count {
+ get { return packedInt32_.Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return packedInt32_[index];
+ }
+
+ public const int PackedInt64FieldNumber = 91;
+ private int packedInt64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedInt64List {
+ get { return pbc::Lists.AsReadOnly(packedInt64_); }
+ }
+ public int PackedInt64Count {
+ get { return packedInt64_.Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return packedInt64_[index];
+ }
+
+ public const int PackedUint32FieldNumber = 92;
+ private int packedUint32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedUint32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> PackedUint32List {
+ get { return pbc::Lists.AsReadOnly(packedUint32_); }
+ }
+ public int PackedUint32Count {
+ get { return packedUint32_.Count; }
+ }
+ public uint GetPackedUint32(int index) {
+ return packedUint32_[index];
+ }
+
+ public const int PackedUint64FieldNumber = 93;
+ private int packedUint64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedUint64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> PackedUint64List {
+ get { return pbc::Lists.AsReadOnly(packedUint64_); }
+ }
+ public int PackedUint64Count {
+ get { return packedUint64_.Count; }
+ }
+ public ulong GetPackedUint64(int index) {
+ return packedUint64_[index];
+ }
+
+ public const int PackedSint32FieldNumber = 94;
+ private int packedSint32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSint32List {
+ get { return pbc::Lists.AsReadOnly(packedSint32_); }
+ }
+ public int PackedSint32Count {
+ get { return packedSint32_.Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return packedSint32_[index];
+ }
+
+ public const int PackedSint64FieldNumber = 95;
+ private int packedSint64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSint64List {
+ get { return pbc::Lists.AsReadOnly(packedSint64_); }
+ }
+ public int PackedSint64Count {
+ get { return packedSint64_.Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return packedSint64_[index];
+ }
+
+ public const int PackedFixed32FieldNumber = 96;
+ private int packedFixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedFixed32_ = new pbc::PopsicleList<uint>();
+ public scg::IList<uint> PackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(packedFixed32_); }
+ }
+ public int PackedFixed32Count {
+ get { return packedFixed32_.Count; }
+ }
+ public uint GetPackedFixed32(int index) {
+ return packedFixed32_[index];
+ }
+
+ public const int PackedFixed64FieldNumber = 97;
+ private int packedFixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedFixed64_ = new pbc::PopsicleList<ulong>();
+ public scg::IList<ulong> PackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(packedFixed64_); }
+ }
+ public int PackedFixed64Count {
+ get { return packedFixed64_.Count; }
+ }
+ public ulong GetPackedFixed64(int index) {
+ return packedFixed64_[index];
+ }
+
+ public const int PackedSfixed32FieldNumber = 98;
+ private int packedSfixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed32_); }
+ }
+ public int PackedSfixed32Count {
+ get { return packedSfixed32_.Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return packedSfixed32_[index];
+ }
+
+ public const int PackedSfixed64FieldNumber = 99;
+ private int packedSfixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed64_); }
+ }
+ public int PackedSfixed64Count {
+ get { return packedSfixed64_.Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return packedSfixed64_[index];
+ }
+
+ public const int PackedFloatFieldNumber = 100;
+ private int packedFloatMemoizedSerializedSize;
+ private pbc::PopsicleList<float> packedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> PackedFloatList {
+ get { return pbc::Lists.AsReadOnly(packedFloat_); }
+ }
+ public int PackedFloatCount {
+ get { return packedFloat_.Count; }
+ }
+ public float GetPackedFloat(int index) {
+ return packedFloat_[index];
+ }
+
+ public const int PackedDoubleFieldNumber = 101;
+ private int packedDoubleMemoizedSerializedSize;
+ private pbc::PopsicleList<double> packedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> PackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(packedDouble_); }
+ }
+ public int PackedDoubleCount {
+ get { return packedDouble_.Count; }
+ }
+ public double GetPackedDouble(int index) {
+ return packedDouble_[index];
+ }
+
+ public const int PackedBoolFieldNumber = 102;
+ private int packedBoolMemoizedSerializedSize;
+ private pbc::PopsicleList<bool> packedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> PackedBoolList {
+ get { return pbc::Lists.AsReadOnly(packedBool_); }
+ }
+ public int PackedBoolCount {
+ get { return packedBool_.Count; }
+ }
+ public bool GetPackedBool(int index) {
+ return packedBool_[index];
+ }
+
+ public const int PackedEnumFieldNumber = 103;
+ private int packedEnumMemoizedSerializedSize;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> packedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> PackedEnumList {
+ get { return pbc::Lists.AsReadOnly(packedEnum_); }
+ }
+ public int PackedEnumCount {
+ get { return packedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite GetPackedEnum(int index) {
+ return packedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testPackedTypesLiteFieldNames;
+ if (packedInt32_.Count > 0) {
+ output.WritePackedInt32Array(90, field_names[6], packedInt32MemoizedSerializedSize, packedInt32_);
+ }
+ if (packedInt64_.Count > 0) {
+ output.WritePackedInt64Array(91, field_names[7], packedInt64MemoizedSerializedSize, packedInt64_);
+ }
+ if (packedUint32_.Count > 0) {
+ output.WritePackedUInt32Array(92, field_names[12], packedUint32MemoizedSerializedSize, packedUint32_);
+ }
+ if (packedUint64_.Count > 0) {
+ output.WritePackedUInt64Array(93, field_names[13], packedUint64MemoizedSerializedSize, packedUint64_);
+ }
+ if (packedSint32_.Count > 0) {
+ output.WritePackedSInt32Array(94, field_names[10], packedSint32MemoizedSerializedSize, packedSint32_);
+ }
+ if (packedSint64_.Count > 0) {
+ output.WritePackedSInt64Array(95, field_names[11], packedSint64MemoizedSerializedSize, packedSint64_);
+ }
+ if (packedFixed32_.Count > 0) {
+ output.WritePackedFixed32Array(96, field_names[3], packedFixed32MemoizedSerializedSize, packedFixed32_);
+ }
+ if (packedFixed64_.Count > 0) {
+ output.WritePackedFixed64Array(97, field_names[4], packedFixed64MemoizedSerializedSize, packedFixed64_);
+ }
+ if (packedSfixed32_.Count > 0) {
+ output.WritePackedSFixed32Array(98, field_names[8], packedSfixed32MemoizedSerializedSize, packedSfixed32_);
+ }
+ if (packedSfixed64_.Count > 0) {
+ output.WritePackedSFixed64Array(99, field_names[9], packedSfixed64MemoizedSerializedSize, packedSfixed64_);
+ }
+ if (packedFloat_.Count > 0) {
+ output.WritePackedFloatArray(100, field_names[5], packedFloatMemoizedSerializedSize, packedFloat_);
+ }
+ if (packedDouble_.Count > 0) {
+ output.WritePackedDoubleArray(101, field_names[1], packedDoubleMemoizedSerializedSize, packedDouble_);
+ }
+ if (packedBool_.Count > 0) {
+ output.WritePackedBoolArray(102, field_names[0], packedBoolMemoizedSerializedSize, packedBool_);
+ }
+ if (packedEnum_.Count > 0) {
+ output.WritePackedEnumArray(103, field_names[2], packedEnumMemoizedSerializedSize, packedEnum_);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in PackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in PackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in PackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFixed32_.Count;
+ size += dataSize;
+ if (packedFixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedFixed64_.Count;
+ size += dataSize;
+ if (packedFixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedSfixed32_.Count;
+ size += dataSize;
+ if (packedSfixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedSfixed64_.Count;
+ size += dataSize;
+ if (packedSfixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFloat_.Count;
+ size += dataSize;
+ if (packedFloat_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFloatMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedDouble_.Count;
+ size += dataSize;
+ if (packedDouble_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedDoubleMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * packedBool_.Count;
+ size += dataSize;
+ if (packedBool_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedBoolMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ if (packedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite element in packedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2;
+ size += pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ packedEnumMemoizedSerializedSize = dataSize;
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ foreach(int i in packedInt32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in packedInt64_)
+ hash ^= i.GetHashCode();
+ foreach(uint i in packedUint32_)
+ hash ^= i.GetHashCode();
+ foreach(ulong i in packedUint64_)
+ hash ^= i.GetHashCode();
+ foreach(int i in packedSint32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in packedSint64_)
+ hash ^= i.GetHashCode();
+ foreach(uint i in packedFixed32_)
+ hash ^= i.GetHashCode();
+ foreach(ulong i in packedFixed64_)
+ hash ^= i.GetHashCode();
+ foreach(int i in packedSfixed32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in packedSfixed64_)
+ hash ^= i.GetHashCode();
+ foreach(float i in packedFloat_)
+ hash ^= i.GetHashCode();
+ foreach(double i in packedDouble_)
+ hash ^= i.GetHashCode();
+ foreach(bool i in packedBool_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite i in packedEnum_)
+ hash ^= i.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestPackedTypesLite other = obj as TestPackedTypesLite;
+ if (other == null) return false;
+ if(packedInt32_.Count != other.packedInt32_.Count) return false;
+ for(int ix=0; ix < packedInt32_.Count; ix++)
+ if(!packedInt32_[ix].Equals(other.packedInt32_[ix])) return false;
+ if(packedInt64_.Count != other.packedInt64_.Count) return false;
+ for(int ix=0; ix < packedInt64_.Count; ix++)
+ if(!packedInt64_[ix].Equals(other.packedInt64_[ix])) return false;
+ if(packedUint32_.Count != other.packedUint32_.Count) return false;
+ for(int ix=0; ix < packedUint32_.Count; ix++)
+ if(!packedUint32_[ix].Equals(other.packedUint32_[ix])) return false;
+ if(packedUint64_.Count != other.packedUint64_.Count) return false;
+ for(int ix=0; ix < packedUint64_.Count; ix++)
+ if(!packedUint64_[ix].Equals(other.packedUint64_[ix])) return false;
+ if(packedSint32_.Count != other.packedSint32_.Count) return false;
+ for(int ix=0; ix < packedSint32_.Count; ix++)
+ if(!packedSint32_[ix].Equals(other.packedSint32_[ix])) return false;
+ if(packedSint64_.Count != other.packedSint64_.Count) return false;
+ for(int ix=0; ix < packedSint64_.Count; ix++)
+ if(!packedSint64_[ix].Equals(other.packedSint64_[ix])) return false;
+ if(packedFixed32_.Count != other.packedFixed32_.Count) return false;
+ for(int ix=0; ix < packedFixed32_.Count; ix++)
+ if(!packedFixed32_[ix].Equals(other.packedFixed32_[ix])) return false;
+ if(packedFixed64_.Count != other.packedFixed64_.Count) return false;
+ for(int ix=0; ix < packedFixed64_.Count; ix++)
+ if(!packedFixed64_[ix].Equals(other.packedFixed64_[ix])) return false;
+ if(packedSfixed32_.Count != other.packedSfixed32_.Count) return false;
+ for(int ix=0; ix < packedSfixed32_.Count; ix++)
+ if(!packedSfixed32_[ix].Equals(other.packedSfixed32_[ix])) return false;
+ if(packedSfixed64_.Count != other.packedSfixed64_.Count) return false;
+ for(int ix=0; ix < packedSfixed64_.Count; ix++)
+ if(!packedSfixed64_[ix].Equals(other.packedSfixed64_[ix])) return false;
+ if(packedFloat_.Count != other.packedFloat_.Count) return false;
+ for(int ix=0; ix < packedFloat_.Count; ix++)
+ if(!packedFloat_[ix].Equals(other.packedFloat_[ix])) return false;
+ if(packedDouble_.Count != other.packedDouble_.Count) return false;
+ for(int ix=0; ix < packedDouble_.Count; ix++)
+ if(!packedDouble_[ix].Equals(other.packedDouble_[ix])) return false;
+ if(packedBool_.Count != other.packedBool_.Count) return false;
+ for(int ix=0; ix < packedBool_.Count; ix++)
+ if(!packedBool_[ix].Equals(other.packedBool_[ix])) return false;
+ if(packedEnum_.Count != other.packedEnum_.Count) return false;
+ for(int ix=0; ix < packedEnum_.Count; ix++)
+ if(!packedEnum_[ix].Equals(other.packedEnum_[ix])) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("packed_int32", packedInt32_, writer);
+ PrintField("packed_int64", packedInt64_, writer);
+ PrintField("packed_uint32", packedUint32_, writer);
+ PrintField("packed_uint64", packedUint64_, writer);
+ PrintField("packed_sint32", packedSint32_, writer);
+ PrintField("packed_sint64", packedSint64_, writer);
+ PrintField("packed_fixed32", packedFixed32_, writer);
+ PrintField("packed_fixed64", packedFixed64_, writer);
+ PrintField("packed_sfixed32", packedSfixed32_, writer);
+ PrintField("packed_sfixed64", packedSfixed64_, writer);
+ PrintField("packed_float", packedFloat_, writer);
+ PrintField("packed_double", packedDouble_, writer);
+ PrintField("packed_bool", packedBool_, writer);
+ PrintField("packed_enum", packedEnum_, writer);
+ }
+ #endregion
+
+ public static TestPackedTypesLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestPackedTypesLite MakeReadOnly() {
+ packedInt32_.MakeReadOnly();
+ packedInt64_.MakeReadOnly();
+ packedUint32_.MakeReadOnly();
+ packedUint64_.MakeReadOnly();
+ packedSint32_.MakeReadOnly();
+ packedSint64_.MakeReadOnly();
+ packedFixed32_.MakeReadOnly();
+ packedFixed64_.MakeReadOnly();
+ packedSfixed32_.MakeReadOnly();
+ packedSfixed64_.MakeReadOnly();
+ packedFloat_.MakeReadOnly();
+ packedDouble_.MakeReadOnly();
+ packedBool_.MakeReadOnly();
+ packedEnum_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedTypesLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestPackedTypesLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestPackedTypesLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestPackedTypesLite result;
+
+ private TestPackedTypesLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestPackedTypesLite original = result;
+ result = new TestPackedTypesLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestPackedTypesLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestPackedTypesLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedTypesLite.DefaultInstance; }
+ }
+
+ public override TestPackedTypesLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestPackedTypesLite) {
+ return MergeFrom((TestPackedTypesLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedTypesLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedTypesLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.packedInt32_.Count != 0) {
+ result.packedInt32_.Add(other.packedInt32_);
+ }
+ if (other.packedInt64_.Count != 0) {
+ result.packedInt64_.Add(other.packedInt64_);
+ }
+ if (other.packedUint32_.Count != 0) {
+ result.packedUint32_.Add(other.packedUint32_);
+ }
+ if (other.packedUint64_.Count != 0) {
+ result.packedUint64_.Add(other.packedUint64_);
+ }
+ if (other.packedSint32_.Count != 0) {
+ result.packedSint32_.Add(other.packedSint32_);
+ }
+ if (other.packedSint64_.Count != 0) {
+ result.packedSint64_.Add(other.packedSint64_);
+ }
+ if (other.packedFixed32_.Count != 0) {
+ result.packedFixed32_.Add(other.packedFixed32_);
+ }
+ if (other.packedFixed64_.Count != 0) {
+ result.packedFixed64_.Add(other.packedFixed64_);
+ }
+ if (other.packedSfixed32_.Count != 0) {
+ result.packedSfixed32_.Add(other.packedSfixed32_);
+ }
+ if (other.packedSfixed64_.Count != 0) {
+ result.packedSfixed64_.Add(other.packedSfixed64_);
+ }
+ if (other.packedFloat_.Count != 0) {
+ result.packedFloat_.Add(other.packedFloat_);
+ }
+ if (other.packedDouble_.Count != 0) {
+ result.packedDouble_.Add(other.packedDouble_);
+ }
+ if (other.packedBool_.Count != 0) {
+ result.packedBool_.Add(other.packedBool_);
+ }
+ if (other.packedEnum_.Count != 0) {
+ result.packedEnum_.Add(other.packedEnum_);
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testPackedTypesLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testPackedTypesLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 722:
+ case 720: {
+ input.ReadInt32Array(tag, field_name, result.packedInt32_);
+ break;
+ }
+ case 730:
+ case 728: {
+ input.ReadInt64Array(tag, field_name, result.packedInt64_);
+ break;
+ }
+ case 738:
+ case 736: {
+ input.ReadUInt32Array(tag, field_name, result.packedUint32_);
+ break;
+ }
+ case 746:
+ case 744: {
+ input.ReadUInt64Array(tag, field_name, result.packedUint64_);
+ break;
+ }
+ case 754:
+ case 752: {
+ input.ReadSInt32Array(tag, field_name, result.packedSint32_);
+ break;
+ }
+ case 762:
+ case 760: {
+ input.ReadSInt64Array(tag, field_name, result.packedSint64_);
+ break;
+ }
+ case 770:
+ case 773: {
+ input.ReadFixed32Array(tag, field_name, result.packedFixed32_);
+ break;
+ }
+ case 778:
+ case 777: {
+ input.ReadFixed64Array(tag, field_name, result.packedFixed64_);
+ break;
+ }
+ case 786:
+ case 789: {
+ input.ReadSFixed32Array(tag, field_name, result.packedSfixed32_);
+ break;
+ }
+ case 794:
+ case 793: {
+ input.ReadSFixed64Array(tag, field_name, result.packedSfixed64_);
+ break;
+ }
+ case 802:
+ case 805: {
+ input.ReadFloatArray(tag, field_name, result.packedFloat_);
+ break;
+ }
+ case 810:
+ case 809: {
+ input.ReadDoubleArray(tag, field_name, result.packedDouble_);
+ break;
+ }
+ case 818:
+ case 816: {
+ input.ReadBoolArray(tag, field_name, result.packedBool_);
+ break;
+ }
+ case 826:
+ case 824: {
+ scg::ICollection<object> unknownItems;
+ input.ReadEnumArray<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(tag, field_name, result.packedEnum_, out unknownItems);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<int> PackedInt32List {
+ get { return PrepareBuilder().packedInt32_; }
+ }
+ public int PackedInt32Count {
+ get { return result.PackedInt32Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return result.GetPackedInt32(index);
+ }
+ public Builder SetPackedInt32(int index, int value) {
+ PrepareBuilder();
+ result.packedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt32(int value) {
+ PrepareBuilder();
+ result.packedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedInt32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedInt32() {
+ PrepareBuilder();
+ result.packedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedInt64List {
+ get { return PrepareBuilder().packedInt64_; }
+ }
+ public int PackedInt64Count {
+ get { return result.PackedInt64Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return result.GetPackedInt64(index);
+ }
+ public Builder SetPackedInt64(int index, long value) {
+ PrepareBuilder();
+ result.packedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt64(long value) {
+ PrepareBuilder();
+ result.packedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedInt64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedInt64() {
+ PrepareBuilder();
+ result.packedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> PackedUint32List {
+ get { return PrepareBuilder().packedUint32_; }
+ }
+ public int PackedUint32Count {
+ get { return result.PackedUint32Count; }
+ }
+ public uint GetPackedUint32(int index) {
+ return result.GetPackedUint32(index);
+ }
+ public Builder SetPackedUint32(int index, uint value) {
+ PrepareBuilder();
+ result.packedUint32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedUint32(uint value) {
+ PrepareBuilder();
+ result.packedUint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedUint32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.packedUint32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedUint32() {
+ PrepareBuilder();
+ result.packedUint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> PackedUint64List {
+ get { return PrepareBuilder().packedUint64_; }
+ }
+ public int PackedUint64Count {
+ get { return result.PackedUint64Count; }
+ }
+ public ulong GetPackedUint64(int index) {
+ return result.GetPackedUint64(index);
+ }
+ public Builder SetPackedUint64(int index, ulong value) {
+ PrepareBuilder();
+ result.packedUint64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedUint64(ulong value) {
+ PrepareBuilder();
+ result.packedUint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedUint64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.packedUint64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedUint64() {
+ PrepareBuilder();
+ result.packedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSint32List {
+ get { return PrepareBuilder().packedSint32_; }
+ }
+ public int PackedSint32Count {
+ get { return result.PackedSint32Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return result.GetPackedSint32(index);
+ }
+ public Builder SetPackedSint32(int index, int value) {
+ PrepareBuilder();
+ result.packedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint32(int value) {
+ PrepareBuilder();
+ result.packedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedSint32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSint32() {
+ PrepareBuilder();
+ result.packedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSint64List {
+ get { return PrepareBuilder().packedSint64_; }
+ }
+ public int PackedSint64Count {
+ get { return result.PackedSint64Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return result.GetPackedSint64(index);
+ }
+ public Builder SetPackedSint64(int index, long value) {
+ PrepareBuilder();
+ result.packedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint64(long value) {
+ PrepareBuilder();
+ result.packedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedSint64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSint64() {
+ PrepareBuilder();
+ result.packedSint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<uint> PackedFixed32List {
+ get { return PrepareBuilder().packedFixed32_; }
+ }
+ public int PackedFixed32Count {
+ get { return result.PackedFixed32Count; }
+ }
+ public uint GetPackedFixed32(int index) {
+ return result.GetPackedFixed32(index);
+ }
+ public Builder SetPackedFixed32(int index, uint value) {
+ PrepareBuilder();
+ result.packedFixed32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFixed32(uint value) {
+ PrepareBuilder();
+ result.packedFixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFixed32(scg::IEnumerable<uint> values) {
+ PrepareBuilder();
+ result.packedFixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFixed32() {
+ PrepareBuilder();
+ result.packedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<ulong> PackedFixed64List {
+ get { return PrepareBuilder().packedFixed64_; }
+ }
+ public int PackedFixed64Count {
+ get { return result.PackedFixed64Count; }
+ }
+ public ulong GetPackedFixed64(int index) {
+ return result.GetPackedFixed64(index);
+ }
+ public Builder SetPackedFixed64(int index, ulong value) {
+ PrepareBuilder();
+ result.packedFixed64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFixed64(ulong value) {
+ PrepareBuilder();
+ result.packedFixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFixed64(scg::IEnumerable<ulong> values) {
+ PrepareBuilder();
+ result.packedFixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFixed64() {
+ PrepareBuilder();
+ result.packedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSfixed32List {
+ get { return PrepareBuilder().packedSfixed32_; }
+ }
+ public int PackedSfixed32Count {
+ get { return result.PackedSfixed32Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return result.GetPackedSfixed32(index);
+ }
+ public Builder SetPackedSfixed32(int index, int value) {
+ PrepareBuilder();
+ result.packedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed32(int value) {
+ PrepareBuilder();
+ result.packedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed32(scg::IEnumerable<int> values) {
+ PrepareBuilder();
+ result.packedSfixed32_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSfixed32() {
+ PrepareBuilder();
+ result.packedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSfixed64List {
+ get { return PrepareBuilder().packedSfixed64_; }
+ }
+ public int PackedSfixed64Count {
+ get { return result.PackedSfixed64Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return result.GetPackedSfixed64(index);
+ }
+ public Builder SetPackedSfixed64(int index, long value) {
+ PrepareBuilder();
+ result.packedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed64(long value) {
+ PrepareBuilder();
+ result.packedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed64(scg::IEnumerable<long> values) {
+ PrepareBuilder();
+ result.packedSfixed64_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedSfixed64() {
+ PrepareBuilder();
+ result.packedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> PackedFloatList {
+ get { return PrepareBuilder().packedFloat_; }
+ }
+ public int PackedFloatCount {
+ get { return result.PackedFloatCount; }
+ }
+ public float GetPackedFloat(int index) {
+ return result.GetPackedFloat(index);
+ }
+ public Builder SetPackedFloat(int index, float value) {
+ PrepareBuilder();
+ result.packedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFloat(float value) {
+ PrepareBuilder();
+ result.packedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFloat(scg::IEnumerable<float> values) {
+ PrepareBuilder();
+ result.packedFloat_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedFloat() {
+ PrepareBuilder();
+ result.packedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> PackedDoubleList {
+ get { return PrepareBuilder().packedDouble_; }
+ }
+ public int PackedDoubleCount {
+ get { return result.PackedDoubleCount; }
+ }
+ public double GetPackedDouble(int index) {
+ return result.GetPackedDouble(index);
+ }
+ public Builder SetPackedDouble(int index, double value) {
+ PrepareBuilder();
+ result.packedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddPackedDouble(double value) {
+ PrepareBuilder();
+ result.packedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedDouble(scg::IEnumerable<double> values) {
+ PrepareBuilder();
+ result.packedDouble_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedDouble() {
+ PrepareBuilder();
+ result.packedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> PackedBoolList {
+ get { return PrepareBuilder().packedBool_; }
+ }
+ public int PackedBoolCount {
+ get { return result.PackedBoolCount; }
+ }
+ public bool GetPackedBool(int index) {
+ return result.GetPackedBool(index);
+ }
+ public Builder SetPackedBool(int index, bool value) {
+ PrepareBuilder();
+ result.packedBool_[index] = value;
+ return this;
+ }
+ public Builder AddPackedBool(bool value) {
+ PrepareBuilder();
+ result.packedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedBool(scg::IEnumerable<bool> values) {
+ PrepareBuilder();
+ result.packedBool_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedBool() {
+ PrepareBuilder();
+ result.packedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> PackedEnumList {
+ get { return PrepareBuilder().packedEnum_; }
+ }
+ public int PackedEnumCount {
+ get { return result.PackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite GetPackedEnum(int index) {
+ return result.GetPackedEnum(index);
+ }
+ public Builder SetPackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ PrepareBuilder();
+ result.packedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddPackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ PrepareBuilder();
+ result.packedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> values) {
+ PrepareBuilder();
+ result.packedEnum_.Add(values);
+ return this;
+ }
+ public Builder ClearPackedEnum() {
+ PrepareBuilder();
+ result.packedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestPackedTypesLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestAllExtensionsLite : pb::ExtendableMessageLite<TestAllExtensionsLite, TestAllExtensionsLite.Builder> {
+ private TestAllExtensionsLite() { }
+ private static readonly TestAllExtensionsLite defaultInstance = new TestAllExtensionsLite().MakeReadOnly();
+ private static readonly string[] _testAllExtensionsLiteFieldNames = new string[] { };
+ private static readonly uint[] _testAllExtensionsLiteFieldTags = new uint[] { };
+ public static TestAllExtensionsLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllExtensionsLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestAllExtensionsLite ThisMessage {
+ get { return this; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testAllExtensionsLiteFieldNames;
+ pb::ExtendableMessageLite<TestAllExtensionsLite, TestAllExtensionsLite.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ hash ^= base.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestAllExtensionsLite other = obj as TestAllExtensionsLite;
+ if (other == null) return false;
+ if (!base.Equals(other)) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ base.PrintTo(writer);
+ }
+ #endregion
+
+ public static TestAllExtensionsLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestAllExtensionsLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllExtensionsLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilderLite<TestAllExtensionsLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestAllExtensionsLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestAllExtensionsLite result;
+
+ private TestAllExtensionsLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestAllExtensionsLite original = result;
+ result = new TestAllExtensionsLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestAllExtensionsLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestAllExtensionsLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance; }
+ }
+
+ public override TestAllExtensionsLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestAllExtensionsLite) {
+ return MergeFrom((TestAllExtensionsLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllExtensionsLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testAllExtensionsLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testAllExtensionsLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+ }
+ static TestAllExtensionsLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup_extension_lite : pb::GeneratedMessageLite<OptionalGroup_extension_lite, OptionalGroup_extension_lite.Builder> {
+ private OptionalGroup_extension_lite() { }
+ private static readonly OptionalGroup_extension_lite defaultInstance = new OptionalGroup_extension_lite().MakeReadOnly();
+ private static readonly string[] _optionalGroupExtensionLiteFieldNames = new string[] { "a" };
+ private static readonly uint[] _optionalGroupExtensionLiteFieldTags = new uint[] { 136 };
+ public static OptionalGroup_extension_lite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup_extension_lite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup_extension_lite ThisMessage {
+ get { return this; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupExtensionLiteFieldNames;
+ if (hasA) {
+ output.WriteInt32(17, field_names[0], A);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasA) {
+ hash ^= a_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ OptionalGroup_extension_lite other = obj as OptionalGroup_extension_lite;
+ if (other == null) return false;
+ if (hasA != other.hasA || (hasA && !a_.Equals(other.a_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("a", hasA, a_, writer);
+ }
+ #endregion
+
+ public static OptionalGroup_extension_lite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup_extension_lite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup_extension_lite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<OptionalGroup_extension_lite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup_extension_lite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup_extension_lite result;
+
+ private OptionalGroup_extension_lite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup_extension_lite original = result;
+ result = new OptionalGroup_extension_lite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup_extension_lite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override OptionalGroup_extension_lite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension_lite.DefaultInstance; }
+ }
+
+ public override OptionalGroup_extension_lite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is OptionalGroup_extension_lite) {
+ return MergeFrom((OptionalGroup_extension_lite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup_extension_lite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension_lite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupExtensionLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupExtensionLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 136: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup_extension_lite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup_extension_lite : pb::GeneratedMessageLite<RepeatedGroup_extension_lite, RepeatedGroup_extension_lite.Builder> {
+ private RepeatedGroup_extension_lite() { }
+ private static readonly RepeatedGroup_extension_lite defaultInstance = new RepeatedGroup_extension_lite().MakeReadOnly();
+ private static readonly string[] _repeatedGroupExtensionLiteFieldNames = new string[] { "a" };
+ private static readonly uint[] _repeatedGroupExtensionLiteFieldTags = new uint[] { 376 };
+ public static RepeatedGroup_extension_lite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup_extension_lite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup_extension_lite ThisMessage {
+ get { return this; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupExtensionLiteFieldNames;
+ if (hasA) {
+ output.WriteInt32(47, field_names[0], A);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasA) {
+ hash ^= a_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ RepeatedGroup_extension_lite other = obj as RepeatedGroup_extension_lite;
+ if (other == null) return false;
+ if (hasA != other.hasA || (hasA && !a_.Equals(other.a_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("a", hasA, a_, writer);
+ }
+ #endregion
+
+ public static RepeatedGroup_extension_lite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup_extension_lite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup_extension_lite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<RepeatedGroup_extension_lite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup_extension_lite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup_extension_lite result;
+
+ private RepeatedGroup_extension_lite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup_extension_lite original = result;
+ result = new RepeatedGroup_extension_lite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup_extension_lite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override RepeatedGroup_extension_lite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension_lite.DefaultInstance; }
+ }
+
+ public override RepeatedGroup_extension_lite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is RepeatedGroup_extension_lite) {
+ return MergeFrom((RepeatedGroup_extension_lite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup_extension_lite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension_lite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasA) {
+ A = other.A;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupExtensionLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupExtensionLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 376: {
+ result.hasA = input.ReadInt32(ref result.a_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasA {
+ get { return result.hasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ PrepareBuilder();
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ PrepareBuilder();
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup_extension_lite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestPackedExtensionsLite : pb::ExtendableMessageLite<TestPackedExtensionsLite, TestPackedExtensionsLite.Builder> {
+ private TestPackedExtensionsLite() { }
+ private static readonly TestPackedExtensionsLite defaultInstance = new TestPackedExtensionsLite().MakeReadOnly();
+ private static readonly string[] _testPackedExtensionsLiteFieldNames = new string[] { };
+ private static readonly uint[] _testPackedExtensionsLiteFieldTags = new uint[] { };
+ public static TestPackedExtensionsLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedExtensionsLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestPackedExtensionsLite ThisMessage {
+ get { return this; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testPackedExtensionsLiteFieldNames;
+ pb::ExtendableMessageLite<TestPackedExtensionsLite, TestPackedExtensionsLite.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ hash ^= base.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestPackedExtensionsLite other = obj as TestPackedExtensionsLite;
+ if (other == null) return false;
+ if (!base.Equals(other)) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ base.PrintTo(writer);
+ }
+ #endregion
+
+ public static TestPackedExtensionsLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestPackedExtensionsLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedExtensionsLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilderLite<TestPackedExtensionsLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestPackedExtensionsLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestPackedExtensionsLite result;
+
+ private TestPackedExtensionsLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestPackedExtensionsLite original = result;
+ result = new TestPackedExtensionsLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestPackedExtensionsLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestPackedExtensionsLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance; }
+ }
+
+ public override TestPackedExtensionsLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestPackedExtensionsLite) {
+ return MergeFrom((TestPackedExtensionsLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedExtensionsLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testPackedExtensionsLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testPackedExtensionsLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+ }
+ static TestPackedExtensionsLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestNestedExtensionLite : pb::GeneratedMessageLite<TestNestedExtensionLite, TestNestedExtensionLite.Builder> {
+ private TestNestedExtensionLite() { }
+ private static readonly TestNestedExtensionLite defaultInstance = new TestNestedExtensionLite().MakeReadOnly();
+ private static readonly string[] _testNestedExtensionLiteFieldNames = new string[] { };
+ private static readonly uint[] _testNestedExtensionLiteFieldTags = new uint[] { };
+ public static TestNestedExtensionLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedExtensionLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestNestedExtensionLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int NestedExtensionFieldNumber = 12345;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> NestedExtension;
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testNestedExtensionLiteFieldNames;
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestNestedExtensionLite other = obj as TestNestedExtensionLite;
+ if (other == null) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ }
+ #endregion
+
+ public static TestNestedExtensionLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestNestedExtensionLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedExtensionLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestNestedExtensionLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestNestedExtensionLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestNestedExtensionLite result;
+
+ private TestNestedExtensionLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestNestedExtensionLite original = result;
+ result = new TestNestedExtensionLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestNestedExtensionLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestNestedExtensionLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtensionLite.DefaultInstance; }
+ }
+
+ public override TestNestedExtensionLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestNestedExtensionLite) {
+ return MergeFrom((TestNestedExtensionLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedExtensionLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedExtensionLite.DefaultInstance) return this;
+ PrepareBuilder();
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testNestedExtensionLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testNestedExtensionLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+ }
+ static TestNestedExtensionLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestDeprecatedLite : pb::GeneratedMessageLite<TestDeprecatedLite, TestDeprecatedLite.Builder> {
+ private TestDeprecatedLite() { }
+ private static readonly TestDeprecatedLite defaultInstance = new TestDeprecatedLite().MakeReadOnly();
+ private static readonly string[] _testDeprecatedLiteFieldNames = new string[] { "deprecated_field" };
+ private static readonly uint[] _testDeprecatedLiteFieldTags = new uint[] { 8 };
+ public static TestDeprecatedLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDeprecatedLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestDeprecatedLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int DeprecatedFieldFieldNumber = 1;
+ private bool hasDeprecatedField;
+ private int deprecatedField_;
+ [global::System.ObsoleteAttribute()]
+ public bool HasDeprecatedField {
+ get { return hasDeprecatedField; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int DeprecatedField {
+ get { return deprecatedField_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testDeprecatedLiteFieldNames;
+ if (hasDeprecatedField) {
+ output.WriteInt32(1, field_names[0], DeprecatedField);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasDeprecatedField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, DeprecatedField);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasDeprecatedField) {
+ hash ^= deprecatedField_.GetHashCode();
+ }
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestDeprecatedLite other = obj as TestDeprecatedLite;
+ if (other == null) return false;
+ if (hasDeprecatedField != other.hasDeprecatedField || (hasDeprecatedField && !deprecatedField_.Equals(other.deprecatedField_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("deprecated_field", hasDeprecatedField, deprecatedField_, writer);
+ }
+ #endregion
+
+ public static TestDeprecatedLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestDeprecatedLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDeprecatedLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestDeprecatedLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestDeprecatedLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestDeprecatedLite result;
+
+ private TestDeprecatedLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestDeprecatedLite original = result;
+ result = new TestDeprecatedLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestDeprecatedLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestDeprecatedLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedLite.DefaultInstance; }
+ }
+
+ public override TestDeprecatedLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestDeprecatedLite) {
+ return MergeFrom((TestDeprecatedLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDeprecatedLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDeprecatedLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasDeprecatedField) {
+ DeprecatedField = other.DeprecatedField;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testDeprecatedLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testDeprecatedLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasDeprecatedField = input.ReadInt32(ref result.deprecatedField_);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ [global::System.ObsoleteAttribute()]
+ public bool HasDeprecatedField {
+ get { return result.hasDeprecatedField; }
+ }
+ [global::System.ObsoleteAttribute()]
+ public int DeprecatedField {
+ get { return result.DeprecatedField; }
+ set { SetDeprecatedField(value); }
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder SetDeprecatedField(int value) {
+ PrepareBuilder();
+ result.hasDeprecatedField = true;
+ result.deprecatedField_ = value;
+ return this;
+ }
+ [global::System.ObsoleteAttribute()]
+ public Builder ClearDeprecatedField() {
+ PrepareBuilder();
+ result.hasDeprecatedField = false;
+ result.deprecatedField_ = 0;
+ return this;
+ }
+ }
+ static TestDeprecatedLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestParsingMergeLite : pb::ExtendableMessageLite<TestParsingMergeLite, TestParsingMergeLite.Builder> {
+ private TestParsingMergeLite() { }
+ private static readonly TestParsingMergeLite defaultInstance = new TestParsingMergeLite().MakeReadOnly();
+ private static readonly string[] _testParsingMergeLiteFieldNames = new string[] { "optional_all_types", "optionalgroup", "repeated_all_types", "repeatedgroup", "required_all_types" };
+ private static readonly uint[] _testParsingMergeLiteFieldTags = new uint[] { 18, 83, 26, 163, 10 };
+ public static TestParsingMergeLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestParsingMergeLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestParsingMergeLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int OptionalExtFieldNumber = 1000;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> OptionalExt;
+ public const int RepeatedExtFieldNumber = 1001;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> RepeatedExt;
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedFieldsGenerator : pb::GeneratedMessageLite<RepeatedFieldsGenerator, RepeatedFieldsGenerator.Builder> {
+ private RepeatedFieldsGenerator() { }
+ private static readonly RepeatedFieldsGenerator defaultInstance = new RepeatedFieldsGenerator().MakeReadOnly();
+ private static readonly string[] _repeatedFieldsGeneratorFieldNames = new string[] { "ext1", "ext2", "field1", "field2", "field3", "group1", "group2" };
+ private static readonly uint[] _repeatedFieldsGeneratorFieldTags = new uint[] { 8002, 8010, 10, 18, 26, 83, 163 };
+ public static RepeatedFieldsGenerator DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedFieldsGenerator DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedFieldsGenerator ThisMessage {
+ get { return this; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group1 : pb::GeneratedMessageLite<Group1, Group1.Builder> {
+ private Group1() { }
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
+ private static readonly string[] _group1FieldNames = new string[] { "field1" };
+ private static readonly uint[] _group1FieldTags = new uint[] { 90 };
+ public static Group1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group1 ThisMessage {
+ get { return this; }
+ }
+
+ public const int Field1FieldNumber = 11;
+ private bool hasField1;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite Field1 {
+ get { return field1_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group1FieldNames;
+ if (hasField1) {
+ output.WriteMessage(11, field_names[0], Field1);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, Field1);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasField1) hash ^= field1_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ Group1 other = obj as Group1;
+ if (other == null) return false;
+ if (hasField1 != other.hasField1 || (hasField1 && !field1_.Equals(other.field1_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("field1", hasField1, field1_, writer);
+ }
+ #endregion
+
+ public static Group1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group1 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<Group1, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group1 result;
+
+ private Group1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group1 original = result;
+ result = new Group1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance; }
+ }
+
+ public override Group1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is Group1) {
+ return MergeFrom((Group1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group1 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ MergeField1(other.Field1);
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group1FieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder();
+ if (result.hasField1) {
+ subBuilder.MergeFrom(Field1);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field1 = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField1 &&
+ result.field1_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance) {
+ result.field1_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder(result.field1_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field1_ = value;
+ }
+ result.hasField1 = true;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = null;
+ return this;
+ }
+ }
+ static Group1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group2 : pb::GeneratedMessageLite<Group2, Group2.Builder> {
+ private Group2() { }
+ private static readonly Group2 defaultInstance = new Group2().MakeReadOnly();
+ private static readonly string[] _group2FieldNames = new string[] { "field1" };
+ private static readonly uint[] _group2FieldTags = new uint[] { 170 };
+ public static Group2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group2 ThisMessage {
+ get { return this; }
+ }
+
+ public const int Field1FieldNumber = 21;
+ private bool hasField1;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite Field1 {
+ get { return field1_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group2FieldNames;
+ if (hasField1) {
+ output.WriteMessage(21, field_names[0], Field1);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeMessageSize(21, Field1);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasField1) hash ^= field1_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ Group2 other = obj as Group2;
+ if (other == null) return false;
+ if (hasField1 != other.hasField1 || (hasField1 && !field1_.Equals(other.field1_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("field1", hasField1, field1_, writer);
+ }
+ #endregion
+
+ public static Group2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group2 MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<Group2, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group2 result;
+
+ private Group2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group2 original = result;
+ result = new Group2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override Group2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance; }
+ }
+
+ public override Group2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is Group2) {
+ return MergeFrom((Group2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group2 other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ MergeField1(other.Field1);
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group2FieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 170: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder();
+ if (result.hasField1) {
+ subBuilder.MergeFrom(Field1);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field1 = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder SetField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField1 &&
+ result.field1_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance) {
+ result.field1_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder(result.field1_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field1_ = value;
+ }
+ result.hasField1 = true;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = null;
+ return this;
+ }
+ }
+ static Group2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> field1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> Field1List {
+ get { return field1_; }
+ }
+ public int Field1Count {
+ get { return field1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetField1(int index) {
+ return field1_[index];
+ }
+
+ public const int Field2FieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> field2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> Field2List {
+ get { return field2_; }
+ }
+ public int Field2Count {
+ get { return field2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetField2(int index) {
+ return field2_[index];
+ }
+
+ public const int Field3FieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> field3_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> Field3List {
+ get { return field3_; }
+ }
+ public int Field3Count {
+ get { return field3_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetField3(int index) {
+ return field3_[index];
+ }
+
+ public const int Group1FieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1> group1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1> Group1List {
+ get { return group1_; }
+ }
+ public int Group1Count {
+ get { return group1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1 GetGroup1(int index) {
+ return group1_[index];
+ }
+
+ public const int Group2FieldNumber = 20;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2> group2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2> Group2List {
+ get { return group2_; }
+ }
+ public int Group2Count {
+ get { return group2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2 GetGroup2(int index) {
+ return group2_[index];
+ }
+
+ public const int Ext1FieldNumber = 1000;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> ext1_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> Ext1List {
+ get { return ext1_; }
+ }
+ public int Ext1Count {
+ get { return ext1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetExt1(int index) {
+ return ext1_[index];
+ }
+
+ public const int Ext2FieldNumber = 1001;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> ext2_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> Ext2List {
+ get { return ext2_; }
+ }
+ public int Ext2Count {
+ get { return ext2_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetExt2(int index) {
+ return ext2_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedFieldsGeneratorFieldNames;
+ if (field1_.Count > 0) {
+ output.WriteMessageArray(1, field_names[2], field1_);
+ }
+ if (field2_.Count > 0) {
+ output.WriteMessageArray(2, field_names[3], field2_);
+ }
+ if (field3_.Count > 0) {
+ output.WriteMessageArray(3, field_names[4], field3_);
+ }
+ if (group1_.Count > 0) {
+ output.WriteGroupArray(10, field_names[5], group1_);
+ }
+ if (group2_.Count > 0) {
+ output.WriteGroupArray(20, field_names[6], group2_);
+ }
+ if (ext1_.Count > 0) {
+ output.WriteMessageArray(1000, field_names[0], ext1_);
+ }
+ if (ext2_.Count > 0) {
+ output.WriteMessageArray(1001, field_names[1], ext2_);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite element in Field1List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite element in Field2List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite element in Field3List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1 element in Group1List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2 element in Group2List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(20, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite element in Ext1List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1000, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite element in Ext2List) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1001, element);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite i in field1_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite i in field2_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite i in field3_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1 i in group1_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2 i in group2_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite i in ext1_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite i in ext2_)
+ hash ^= i.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ RepeatedFieldsGenerator other = obj as RepeatedFieldsGenerator;
+ if (other == null) return false;
+ if(field1_.Count != other.field1_.Count) return false;
+ for(int ix=0; ix < field1_.Count; ix++)
+ if(!field1_[ix].Equals(other.field1_[ix])) return false;
+ if(field2_.Count != other.field2_.Count) return false;
+ for(int ix=0; ix < field2_.Count; ix++)
+ if(!field2_[ix].Equals(other.field2_[ix])) return false;
+ if(field3_.Count != other.field3_.Count) return false;
+ for(int ix=0; ix < field3_.Count; ix++)
+ if(!field3_[ix].Equals(other.field3_[ix])) return false;
+ if(group1_.Count != other.group1_.Count) return false;
+ for(int ix=0; ix < group1_.Count; ix++)
+ if(!group1_[ix].Equals(other.group1_[ix])) return false;
+ if(group2_.Count != other.group2_.Count) return false;
+ for(int ix=0; ix < group2_.Count; ix++)
+ if(!group2_[ix].Equals(other.group2_[ix])) return false;
+ if(ext1_.Count != other.ext1_.Count) return false;
+ for(int ix=0; ix < ext1_.Count; ix++)
+ if(!ext1_[ix].Equals(other.ext1_[ix])) return false;
+ if(ext2_.Count != other.ext2_.Count) return false;
+ for(int ix=0; ix < ext2_.Count; ix++)
+ if(!ext2_[ix].Equals(other.ext2_[ix])) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("field1", field1_, writer);
+ PrintField("field2", field2_, writer);
+ PrintField("field3", field3_, writer);
+ PrintField("Group1", group1_, writer);
+ PrintField("Group2", group2_, writer);
+ PrintField("ext1", ext1_, writer);
+ PrintField("ext2", ext2_, writer);
+ }
+ #endregion
+
+ public static RepeatedFieldsGenerator ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedFieldsGenerator ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedFieldsGenerator MakeReadOnly() {
+ field1_.MakeReadOnly();
+ field2_.MakeReadOnly();
+ field3_.MakeReadOnly();
+ group1_.MakeReadOnly();
+ group2_.MakeReadOnly();
+ ext1_.MakeReadOnly();
+ ext2_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedFieldsGenerator prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<RepeatedFieldsGenerator, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedFieldsGenerator cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedFieldsGenerator result;
+
+ private RepeatedFieldsGenerator PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedFieldsGenerator original = result;
+ result = new RepeatedFieldsGenerator();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedFieldsGenerator MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override RepeatedFieldsGenerator DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.DefaultInstance; }
+ }
+
+ public override RepeatedFieldsGenerator BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is RepeatedFieldsGenerator) {
+ return MergeFrom((RepeatedFieldsGenerator) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedFieldsGenerator other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.field1_.Count != 0) {
+ result.field1_.Add(other.field1_);
+ }
+ if (other.field2_.Count != 0) {
+ result.field2_.Add(other.field2_);
+ }
+ if (other.field3_.Count != 0) {
+ result.field3_.Add(other.field3_);
+ }
+ if (other.group1_.Count != 0) {
+ result.group1_.Add(other.group1_);
+ }
+ if (other.group2_.Count != 0) {
+ result.group2_.Add(other.group2_);
+ }
+ if (other.ext1_.Count != 0) {
+ result.ext1_.Add(other.ext1_);
+ }
+ if (other.ext2_.Count != 0) {
+ result.ext2_.Add(other.ext2_);
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedFieldsGeneratorFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedFieldsGeneratorFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadMessageArray(tag, field_name, result.field1_, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 18: {
+ input.ReadMessageArray(tag, field_name, result.field2_, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.field3_, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 83: {
+ input.ReadGroupArray(tag, field_name, result.group1_, global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 163: {
+ input.ReadGroupArray(tag, field_name, result.group2_, global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 8002: {
+ input.ReadMessageArray(tag, field_name, result.ext1_, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 8010: {
+ input.ReadMessageArray(tag, field_name, result.ext2_, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> Field1List {
+ get { return PrepareBuilder().field1_; }
+ }
+ public int Field1Count {
+ get { return result.Field1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetField1(int index) {
+ return result.GetField1(index);
+ }
+ public Builder SetField1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field1_[index] = value;
+ return this;
+ }
+ public Builder SetField1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field1_.Add(value);
+ return this;
+ }
+ public Builder AddField1(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> values) {
+ PrepareBuilder();
+ result.field1_.Add(values);
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.field1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> Field2List {
+ get { return PrepareBuilder().field2_; }
+ }
+ public int Field2Count {
+ get { return result.Field2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetField2(int index) {
+ return result.GetField2(index);
+ }
+ public Builder SetField2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field2_[index] = value;
+ return this;
+ }
+ public Builder SetField2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField2(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field2_.Add(value);
+ return this;
+ }
+ public Builder AddField2(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> values) {
+ PrepareBuilder();
+ result.field2_.Add(values);
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.field2_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> Field3List {
+ get { return PrepareBuilder().field3_; }
+ }
+ public int Field3Count {
+ get { return result.Field3Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetField3(int index) {
+ return result.GetField3(index);
+ }
+ public Builder SetField3(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field3_[index] = value;
+ return this;
+ }
+ public Builder SetField3(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field3_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddField3(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field3_.Add(value);
+ return this;
+ }
+ public Builder AddField3(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.field3_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeField3(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> values) {
+ PrepareBuilder();
+ result.field3_.Add(values);
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.field3_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1> Group1List {
+ get { return PrepareBuilder().group1_; }
+ }
+ public int Group1Count {
+ get { return result.Group1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1 GetGroup1(int index) {
+ return result.GetGroup1(index);
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_[index] = value;
+ return this;
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_.Add(value);
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group1> values) {
+ PrepareBuilder();
+ result.group1_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup1() {
+ PrepareBuilder();
+ result.group1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2> Group2List {
+ get { return PrepareBuilder().group2_; }
+ }
+ public int Group2Count {
+ get { return result.Group2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2 GetGroup2(int index) {
+ return result.GetGroup2(index);
+ }
+ public Builder SetGroup2(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group2_[index] = value;
+ return this;
+ }
+ public Builder SetGroup2(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup2(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group2_.Add(value);
+ return this;
+ }
+ public Builder AddGroup2(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedFieldsGenerator.Types.Group2> values) {
+ PrepareBuilder();
+ result.group2_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup2() {
+ PrepareBuilder();
+ result.group2_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> Ext1List {
+ get { return PrepareBuilder().ext1_; }
+ }
+ public int Ext1Count {
+ get { return result.Ext1Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetExt1(int index) {
+ return result.GetExt1(index);
+ }
+ public Builder SetExt1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext1_[index] = value;
+ return this;
+ }
+ public Builder SetExt1(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExt1(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext1_.Add(value);
+ return this;
+ }
+ public Builder AddExt1(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExt1(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> values) {
+ PrepareBuilder();
+ result.ext1_.Add(values);
+ return this;
+ }
+ public Builder ClearExt1() {
+ PrepareBuilder();
+ result.ext1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> Ext2List {
+ get { return PrepareBuilder().ext2_; }
+ }
+ public int Ext2Count {
+ get { return result.Ext2Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetExt2(int index) {
+ return result.GetExt2(index);
+ }
+ public Builder SetExt2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext2_[index] = value;
+ return this;
+ }
+ public Builder SetExt2(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext2_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddExt2(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.ext2_.Add(value);
+ return this;
+ }
+ public Builder AddExt2(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.ext2_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeExt2(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> values) {
+ PrepareBuilder();
+ result.ext2_.Add(values);
+ return this;
+ }
+ public Builder ClearExt2() {
+ PrepareBuilder();
+ result.ext2_.Clear();
+ return this;
+ }
+ }
+ static RepeatedFieldsGenerator() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class OptionalGroup : pb::GeneratedMessageLite<OptionalGroup, OptionalGroup.Builder> {
+ private OptionalGroup() { }
+ private static readonly OptionalGroup defaultInstance = new OptionalGroup().MakeReadOnly();
+ private static readonly string[] _optionalGroupFieldNames = new string[] { "optional_group_all_types" };
+ private static readonly uint[] _optionalGroupFieldTags = new uint[] { 90 };
+ public static OptionalGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override OptionalGroup ThisMessage {
+ get { return this; }
+ }
+
+ public const int OptionalGroupAllTypesFieldNumber = 11;
+ private bool hasOptionalGroupAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite optionalGroupAllTypes_;
+ public bool HasOptionalGroupAllTypes {
+ get { return hasOptionalGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite OptionalGroupAllTypes {
+ get { return optionalGroupAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _optionalGroupFieldNames;
+ if (hasOptionalGroupAllTypes) {
+ output.WriteMessage(11, field_names[0], OptionalGroupAllTypes);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasOptionalGroupAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(11, OptionalGroupAllTypes);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasOptionalGroupAllTypes) hash ^= optionalGroupAllTypes_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ OptionalGroup other = obj as OptionalGroup;
+ if (other == null) return false;
+ if (hasOptionalGroupAllTypes != other.hasOptionalGroupAllTypes || (hasOptionalGroupAllTypes && !optionalGroupAllTypes_.Equals(other.optionalGroupAllTypes_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("optional_group_all_types", hasOptionalGroupAllTypes, optionalGroupAllTypes_, writer);
+ }
+ #endregion
+
+ public static OptionalGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private OptionalGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<OptionalGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(OptionalGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private OptionalGroup result;
+
+ private OptionalGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ OptionalGroup original = result;
+ result = new OptionalGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override OptionalGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public override OptionalGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is OptionalGroup) {
+ return MergeFrom((OptionalGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasOptionalGroupAllTypes) {
+ MergeOptionalGroupAllTypes(other.OptionalGroupAllTypes);
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_optionalGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _optionalGroupFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 90: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder();
+ if (result.hasOptionalGroupAllTypes) {
+ subBuilder.MergeFrom(OptionalGroupAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalGroupAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasOptionalGroupAllTypes {
+ get { return result.hasOptionalGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite OptionalGroupAllTypes {
+ get { return result.OptionalGroupAllTypes; }
+ set { SetOptionalGroupAllTypes(value); }
+ }
+ public Builder SetOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = true;
+ result.optionalGroupAllTypes_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = true;
+ result.optionalGroupAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroupAllTypes &&
+ result.optionalGroupAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance) {
+ result.optionalGroupAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder(result.optionalGroupAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroupAllTypes_ = value;
+ }
+ result.hasOptionalGroupAllTypes = true;
+ return this;
+ }
+ public Builder ClearOptionalGroupAllTypes() {
+ PrepareBuilder();
+ result.hasOptionalGroupAllTypes = false;
+ result.optionalGroupAllTypes_ = null;
+ return this;
+ }
+ }
+ static OptionalGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class RepeatedGroup : pb::GeneratedMessageLite<RepeatedGroup, RepeatedGroup.Builder> {
+ private RepeatedGroup() { }
+ private static readonly RepeatedGroup defaultInstance = new RepeatedGroup().MakeReadOnly();
+ private static readonly string[] _repeatedGroupFieldNames = new string[] { "repeated_group_all_types" };
+ private static readonly uint[] _repeatedGroupFieldTags = new uint[] { 170 };
+ public static RepeatedGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override RepeatedGroup ThisMessage {
+ get { return this; }
+ }
+
+ public const int RepeatedGroupAllTypesFieldNumber = 21;
+ private bool hasRepeatedGroupAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite repeatedGroupAllTypes_;
+ public bool HasRepeatedGroupAllTypes {
+ get { return hasRepeatedGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite RepeatedGroupAllTypes {
+ get { return repeatedGroupAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _repeatedGroupFieldNames;
+ if (hasRepeatedGroupAllTypes) {
+ output.WriteMessage(21, field_names[0], RepeatedGroupAllTypes);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRepeatedGroupAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(21, RepeatedGroupAllTypes);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasRepeatedGroupAllTypes) hash ^= repeatedGroupAllTypes_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ RepeatedGroup other = obj as RepeatedGroup;
+ if (other == null) return false;
+ if (hasRepeatedGroupAllTypes != other.hasRepeatedGroupAllTypes || (hasRepeatedGroupAllTypes && !repeatedGroupAllTypes_.Equals(other.repeatedGroupAllTypes_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("repeated_group_all_types", hasRepeatedGroupAllTypes, repeatedGroupAllTypes_, writer);
+ }
+ #endregion
+
+ public static RepeatedGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private RepeatedGroup MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<RepeatedGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(RepeatedGroup cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private RepeatedGroup result;
+
+ private RepeatedGroup PrepareBuilder() {
+ if (resultIsReadOnly) {
+ RepeatedGroup original = result;
+ result = new RepeatedGroup();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override RepeatedGroup MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup.DefaultInstance; }
+ }
+
+ public override RepeatedGroup BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is RepeatedGroup) {
+ return MergeFrom((RepeatedGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRepeatedGroupAllTypes) {
+ MergeRepeatedGroupAllTypes(other.RepeatedGroupAllTypes);
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_repeatedGroupFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _repeatedGroupFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 170: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder();
+ if (result.hasRepeatedGroupAllTypes) {
+ subBuilder.MergeFrom(RepeatedGroupAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ RepeatedGroupAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasRepeatedGroupAllTypes {
+ get { return result.hasRepeatedGroupAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite RepeatedGroupAllTypes {
+ get { return result.RepeatedGroupAllTypes; }
+ set { SetRepeatedGroupAllTypes(value); }
+ }
+ public Builder SetRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = true;
+ result.repeatedGroupAllTypes_ = value;
+ return this;
+ }
+ public Builder SetRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = true;
+ result.repeatedGroupAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeRepeatedGroupAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasRepeatedGroupAllTypes &&
+ result.repeatedGroupAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance) {
+ result.repeatedGroupAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder(result.repeatedGroupAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.repeatedGroupAllTypes_ = value;
+ }
+ result.hasRepeatedGroupAllTypes = true;
+ return this;
+ }
+ public Builder ClearRepeatedGroupAllTypes() {
+ PrepareBuilder();
+ result.hasRepeatedGroupAllTypes = false;
+ result.repeatedGroupAllTypes_ = null;
+ return this;
+ }
+ }
+ static RepeatedGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int RequiredAllTypesFieldNumber = 1;
+ private bool hasRequiredAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite requiredAllTypes_;
+ public bool HasRequiredAllTypes {
+ get { return hasRequiredAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite RequiredAllTypes {
+ get { return requiredAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance; }
+ }
+
+ public const int OptionalAllTypesFieldNumber = 2;
+ private bool hasOptionalAllTypes;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite optionalAllTypes_;
+ public bool HasOptionalAllTypes {
+ get { return hasOptionalAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite OptionalAllTypes {
+ get { return optionalAllTypes_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance; }
+ }
+
+ public const int RepeatedAllTypesFieldNumber = 3;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> repeatedAllTypes_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> RepeatedAllTypesList {
+ get { return repeatedAllTypes_; }
+ }
+ public int RepeatedAllTypesCount {
+ get { return repeatedAllTypes_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetRepeatedAllTypes(int index) {
+ return repeatedAllTypes_[index];
+ }
+
+ public const int OptionalGroupFieldNumber = 10;
+ private bool hasOptionalGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup optionalGroup_;
+ public bool HasOptionalGroup {
+ get { return hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup OptionalGroup {
+ get { return optionalGroup_ ?? global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public const int RepeatedGroupFieldNumber = 20;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup> repeatedGroup_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup> RepeatedGroupList {
+ get { return repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return repeatedGroup_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return repeatedGroup_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasRequiredAllTypes) return false;
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testParsingMergeLiteFieldNames;
+ pb::ExtendableMessageLite<TestParsingMergeLite, TestParsingMergeLite.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (hasRequiredAllTypes) {
+ output.WriteMessage(1, field_names[4], RequiredAllTypes);
+ }
+ if (hasOptionalAllTypes) {
+ output.WriteMessage(2, field_names[0], OptionalAllTypes);
+ }
+ if (repeatedAllTypes_.Count > 0) {
+ output.WriteMessageArray(3, field_names[2], repeatedAllTypes_);
+ }
+ if (hasOptionalGroup) {
+ output.WriteGroup(10, field_names[1], OptionalGroup);
+ }
+ if (repeatedGroup_.Count > 0) {
+ output.WriteGroupArray(20, field_names[3], repeatedGroup_);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasRequiredAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, RequiredAllTypes);
+ }
+ if (hasOptionalAllTypes) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, OptionalAllTypes);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite element in RepeatedAllTypesList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(3, element);
+ }
+ if (hasOptionalGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, OptionalGroup);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup element in RepeatedGroupList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(20, element);
+ }
+ size += ExtensionsSerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasRequiredAllTypes) hash ^= requiredAllTypes_.GetHashCode();
+ if (hasOptionalAllTypes) hash ^= optionalAllTypes_.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite i in repeatedAllTypes_)
+ hash ^= i.GetHashCode();
+ if (hasOptionalGroup) hash ^= optionalGroup_.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup i in repeatedGroup_)
+ hash ^= i.GetHashCode();
+ hash ^= base.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestParsingMergeLite other = obj as TestParsingMergeLite;
+ if (other == null) return false;
+ if (hasRequiredAllTypes != other.hasRequiredAllTypes || (hasRequiredAllTypes && !requiredAllTypes_.Equals(other.requiredAllTypes_))) return false;
+ if (hasOptionalAllTypes != other.hasOptionalAllTypes || (hasOptionalAllTypes && !optionalAllTypes_.Equals(other.optionalAllTypes_))) return false;
+ if(repeatedAllTypes_.Count != other.repeatedAllTypes_.Count) return false;
+ for(int ix=0; ix < repeatedAllTypes_.Count; ix++)
+ if(!repeatedAllTypes_[ix].Equals(other.repeatedAllTypes_[ix])) return false;
+ if (hasOptionalGroup != other.hasOptionalGroup || (hasOptionalGroup && !optionalGroup_.Equals(other.optionalGroup_))) return false;
+ if(repeatedGroup_.Count != other.repeatedGroup_.Count) return false;
+ for(int ix=0; ix < repeatedGroup_.Count; ix++)
+ if(!repeatedGroup_[ix].Equals(other.repeatedGroup_[ix])) return false;
+ if (!base.Equals(other)) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("required_all_types", hasRequiredAllTypes, requiredAllTypes_, writer);
+ PrintField("optional_all_types", hasOptionalAllTypes, optionalAllTypes_, writer);
+ PrintField("repeated_all_types", repeatedAllTypes_, writer);
+ PrintField("OptionalGroup", hasOptionalGroup, optionalGroup_, writer);
+ PrintField("RepeatedGroup", repeatedGroup_, writer);
+ base.PrintTo(writer);
+ }
+ #endregion
+
+ public static TestParsingMergeLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestParsingMergeLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMergeLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestParsingMergeLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMergeLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestParsingMergeLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestParsingMergeLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestParsingMergeLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestParsingMergeLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestParsingMergeLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestParsingMergeLite MakeReadOnly() {
+ repeatedAllTypes_.MakeReadOnly();
+ repeatedGroup_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestParsingMergeLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilderLite<TestParsingMergeLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestParsingMergeLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestParsingMergeLite result;
+
+ private TestParsingMergeLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestParsingMergeLite original = result;
+ result = new TestParsingMergeLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestParsingMergeLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestParsingMergeLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.DefaultInstance; }
+ }
+
+ public override TestParsingMergeLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestParsingMergeLite) {
+ return MergeFrom((TestParsingMergeLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestParsingMergeLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasRequiredAllTypes) {
+ MergeRequiredAllTypes(other.RequiredAllTypes);
+ }
+ if (other.HasOptionalAllTypes) {
+ MergeOptionalAllTypes(other.OptionalAllTypes);
+ }
+ if (other.repeatedAllTypes_.Count != 0) {
+ result.repeatedAllTypes_.Add(other.repeatedAllTypes_);
+ }
+ if (other.HasOptionalGroup) {
+ MergeOptionalGroup(other.OptionalGroup);
+ }
+ if (other.repeatedGroup_.Count != 0) {
+ result.repeatedGroup_.Add(other.repeatedGroup_);
+ }
+ this.MergeExtensionFields(other);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testParsingMergeLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testParsingMergeLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder();
+ if (result.hasRequiredAllTypes) {
+ subBuilder.MergeFrom(RequiredAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ RequiredAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder();
+ if (result.hasOptionalAllTypes) {
+ subBuilder.MergeFrom(OptionalAllTypes);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalAllTypes = subBuilder.BuildPartial();
+ break;
+ }
+ case 26: {
+ input.ReadMessageArray(tag, field_name, result.repeatedAllTypes_, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 83: {
+ global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup.CreateBuilder();
+ if (result.hasOptionalGroup) {
+ subBuilder.MergeFrom(OptionalGroup);
+ }
+ input.ReadGroup(10, subBuilder, extensionRegistry);
+ OptionalGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 163: {
+ input.ReadGroupArray(tag, field_name, result.repeatedGroup_, global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasRequiredAllTypes {
+ get { return result.hasRequiredAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite RequiredAllTypes {
+ get { return result.RequiredAllTypes; }
+ set { SetRequiredAllTypes(value); }
+ }
+ public Builder SetRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasRequiredAllTypes = true;
+ result.requiredAllTypes_ = value;
+ return this;
+ }
+ public Builder SetRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasRequiredAllTypes = true;
+ result.requiredAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeRequiredAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasRequiredAllTypes &&
+ result.requiredAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance) {
+ result.requiredAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder(result.requiredAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.requiredAllTypes_ = value;
+ }
+ result.hasRequiredAllTypes = true;
+ return this;
+ }
+ public Builder ClearRequiredAllTypes() {
+ PrepareBuilder();
+ result.hasRequiredAllTypes = false;
+ result.requiredAllTypes_ = null;
+ return this;
+ }
+
+ public bool HasOptionalAllTypes {
+ get { return result.hasOptionalAllTypes; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite OptionalAllTypes {
+ get { return result.OptionalAllTypes; }
+ set { SetOptionalAllTypes(value); }
+ }
+ public Builder SetOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalAllTypes = true;
+ result.optionalAllTypes_ = value;
+ return this;
+ }
+ public Builder SetOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalAllTypes = true;
+ result.optionalAllTypes_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalAllTypes &&
+ result.optionalAllTypes_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance) {
+ result.optionalAllTypes_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.CreateBuilder(result.optionalAllTypes_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalAllTypes_ = value;
+ }
+ result.hasOptionalAllTypes = true;
+ return this;
+ }
+ public Builder ClearOptionalAllTypes() {
+ PrepareBuilder();
+ result.hasOptionalAllTypes = false;
+ result.optionalAllTypes_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> RepeatedAllTypesList {
+ get { return PrepareBuilder().repeatedAllTypes_; }
+ }
+ public int RepeatedAllTypesCount {
+ get { return result.RepeatedAllTypesCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite GetRepeatedAllTypes(int index) {
+ return result.GetRepeatedAllTypes(index);
+ }
+ public Builder SetRepeatedAllTypes(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedAllTypes_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedAllTypes(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedAllTypes_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedAllTypes(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedAllTypes(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite> values) {
+ PrepareBuilder();
+ result.repeatedAllTypes_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedAllTypes() {
+ PrepareBuilder();
+ result.repeatedAllTypes_.Clear();
+ return this;
+ }
+
+ public bool HasOptionalGroup {
+ get { return result.hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup OptionalGroup {
+ get { return result.OptionalGroup; }
+ set { SetOptionalGroup(value); }
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasOptionalGroup &&
+ result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup.DefaultInstance) {
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroup_ = value;
+ }
+ result.hasOptionalGroup = true;
+ return this;
+ }
+ public Builder ClearOptionalGroup() {
+ PrepareBuilder();
+ result.hasOptionalGroup = false;
+ result.optionalGroup_ = null;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup> RepeatedGroupList {
+ get { return PrepareBuilder().repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return result.RepeatedGroupCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return result.GetRepeatedGroup(index);
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.repeatedGroup_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedGroup(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestParsingMergeLite.Types.RepeatedGroup> values) {
+ PrepareBuilder();
+ result.repeatedGroup_.Add(values);
+ return this;
+ }
+ public Builder ClearRepeatedGroup() {
+ PrepareBuilder();
+ result.repeatedGroup_.Clear();
+ return this;
+ }
+ }
+ static TestParsingMergeLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEmptyMessageLite : pb::GeneratedMessageLite<TestEmptyMessageLite, TestEmptyMessageLite.Builder> {
+ private TestEmptyMessageLite() { }
+ private static readonly TestEmptyMessageLite defaultInstance = new TestEmptyMessageLite().MakeReadOnly();
+ private static readonly string[] _testEmptyMessageLiteFieldNames = new string[] { };
+ private static readonly uint[] _testEmptyMessageLiteFieldTags = new uint[] { };
+ public static TestEmptyMessageLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEmptyMessageLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEmptyMessageLite ThisMessage {
+ get { return this; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEmptyMessageLiteFieldNames;
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestEmptyMessageLite other = obj as TestEmptyMessageLite;
+ if (other == null) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ }
+ #endregion
+
+ public static TestEmptyMessageLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEmptyMessageLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEmptyMessageLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEmptyMessageLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEmptyMessageLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestEmptyMessageLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEmptyMessageLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEmptyMessageLite result;
+
+ private TestEmptyMessageLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEmptyMessageLite original = result;
+ result = new TestEmptyMessageLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEmptyMessageLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestEmptyMessageLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageLite.DefaultInstance; }
+ }
+
+ public override TestEmptyMessageLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestEmptyMessageLite) {
+ return MergeFrom((TestEmptyMessageLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEmptyMessageLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageLite.DefaultInstance) return this;
+ PrepareBuilder();
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEmptyMessageLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEmptyMessageLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+ }
+ static TestEmptyMessageLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestEmptyMessageWithExtensionsLite : pb::ExtendableMessageLite<TestEmptyMessageWithExtensionsLite, TestEmptyMessageWithExtensionsLite.Builder> {
+ private TestEmptyMessageWithExtensionsLite() { }
+ private static readonly TestEmptyMessageWithExtensionsLite defaultInstance = new TestEmptyMessageWithExtensionsLite().MakeReadOnly();
+ private static readonly string[] _testEmptyMessageWithExtensionsLiteFieldNames = new string[] { };
+ private static readonly uint[] _testEmptyMessageWithExtensionsLiteFieldTags = new uint[] { };
+ public static TestEmptyMessageWithExtensionsLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEmptyMessageWithExtensionsLite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestEmptyMessageWithExtensionsLite ThisMessage {
+ get { return this; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testEmptyMessageWithExtensionsLiteFieldNames;
+ pb::ExtendableMessageLite<TestEmptyMessageWithExtensionsLite, TestEmptyMessageWithExtensionsLite.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ hash ^= base.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestEmptyMessageWithExtensionsLite other = obj as TestEmptyMessageWithExtensionsLite;
+ if (other == null) return false;
+ if (!base.Equals(other)) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ base.PrintTo(writer);
+ }
+ #endregion
+
+ public static TestEmptyMessageWithExtensionsLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensionsLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensionsLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensionsLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensionsLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensionsLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensionsLite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensionsLite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestEmptyMessageWithExtensionsLite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEmptyMessageWithExtensionsLite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::ExtendableBuilderLite<TestEmptyMessageWithExtensionsLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestEmptyMessageWithExtensionsLite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestEmptyMessageWithExtensionsLite result;
+
+ private TestEmptyMessageWithExtensionsLite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestEmptyMessageWithExtensionsLite original = result;
+ result = new TestEmptyMessageWithExtensionsLite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestEmptyMessageWithExtensionsLite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestEmptyMessageWithExtensionsLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensionsLite.DefaultInstance; }
+ }
+
+ public override TestEmptyMessageWithExtensionsLite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestEmptyMessageWithExtensionsLite) {
+ return MergeFrom((TestEmptyMessageWithExtensionsLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEmptyMessageWithExtensionsLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensionsLite.DefaultInstance) return this;
+ PrepareBuilder();
+ this.MergeExtensionFields(other);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testEmptyMessageWithExtensionsLiteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testEmptyMessageWithExtensionsLiteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+ }
+ static TestEmptyMessageWithExtensionsLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLite.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLiteImportsNonlite.cs b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLiteImportsNonlite.cs
new file mode 100644
index 00000000..f39ae644
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/TestProtos/UnittestLiteImportsNonlite.cs
@@ -0,0 +1,325 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/unittest_lite_imports_nonlite.proto
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnittestLiteImportsNonlite {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ #endregion
+ #region Extensions
+ internal static readonly object Descriptor;
+ static UnittestLiteImportsNonlite() {
+ Descriptor = null;
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class TestLiteImportsNonlite : pb::GeneratedMessageLite<TestLiteImportsNonlite, TestLiteImportsNonlite.Builder> {
+ private TestLiteImportsNonlite() { }
+ private static readonly TestLiteImportsNonlite defaultInstance = new TestLiteImportsNonlite().MakeReadOnly();
+ private static readonly string[] _testLiteImportsNonliteFieldNames = new string[] { "message" };
+ private static readonly uint[] _testLiteImportsNonliteFieldTags = new uint[] { 10 };
+ public static TestLiteImportsNonlite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestLiteImportsNonlite DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override TestLiteImportsNonlite ThisMessage {
+ get { return this; }
+ }
+
+ public const int MessageFieldNumber = 1;
+ private bool hasMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes message_;
+ public bool HasMessage {
+ get { return hasMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Message {
+ get { return message_ ?? global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _testLiteImportsNonliteFieldNames;
+ if (hasMessage) {
+ output.WriteMessage(1, field_names[0], Message);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Message);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasMessage) hash ^= message_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestLiteImportsNonlite other = obj as TestLiteImportsNonlite;
+ if (other == null) return false;
+ if (hasMessage != other.hasMessage || (hasMessage && !message_.Equals(other.message_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("message", hasMessage, message_, writer);
+ }
+ #endregion
+
+ public static TestLiteImportsNonlite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private TestLiteImportsNonlite MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestLiteImportsNonlite prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestLiteImportsNonlite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(TestLiteImportsNonlite cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private TestLiteImportsNonlite result;
+
+ private TestLiteImportsNonlite PrepareBuilder() {
+ if (resultIsReadOnly) {
+ TestLiteImportsNonlite original = result;
+ result = new TestLiteImportsNonlite();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override TestLiteImportsNonlite MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override TestLiteImportsNonlite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestLiteImportsNonlite.DefaultInstance; }
+ }
+
+ public override TestLiteImportsNonlite BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestLiteImportsNonlite) {
+ return MergeFrom((TestLiteImportsNonlite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestLiteImportsNonlite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestLiteImportsNonlite.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasMessage) {
+ MergeMessage(other.Message);
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_testLiteImportsNonliteFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _testLiteImportsNonliteFieldTags[field_ordinal];
+ else {
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (result.hasMessage) {
+ subBuilder.MergeFrom(Message);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Message = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+
+ return this;
+ }
+
+
+ public bool HasMessage {
+ get { return result.hasMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Message {
+ get { return result.Message; }
+ set { SetMessage(value); }
+ }
+ public Builder SetMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasMessage = true;
+ result.message_ = value;
+ return this;
+ }
+ public Builder SetMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasMessage = true;
+ result.message_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasMessage &&
+ result.message_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.message_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.message_).MergeFrom(value).BuildPartial();
+ } else {
+ result.message_ = value;
+ }
+ result.hasMessage = true;
+ return this;
+ }
+ public Builder ClearMessage() {
+ PrepareBuilder();
+ result.hasMessage = false;
+ result.message_ = null;
+ return this;
+ }
+ }
+ static TestLiteImportsNonlite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnittestLiteImportsNonlite.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtocolBuffersLite.Test/packages.config b/csharp/src/ProtocolBuffersLite.Test/packages.config
new file mode 100644
index 00000000..c7653992
--- /dev/null
+++ b/csharp/src/ProtocolBuffersLite.Test/packages.config
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="NUnit" version="2.6.4" targetFramework="net45" userInstalled="true" />
+ <package id="NUnitTestAdapter" version="2.0.0" targetFramework="net45" userInstalled="true" />
+</packages> \ No newline at end of file
diff --git a/csharp/src/packages/repositories.config b/csharp/src/packages/repositories.config
new file mode 100644
index 00000000..0117aa7c
--- /dev/null
+++ b/csharp/src/packages/repositories.config
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<repositories>
+ <repository path="..\ProtocolBuffers.Test\packages.config" />
+ <repository path="..\ProtocolBuffersLite.Test\packages.config" />
+</repositories> \ No newline at end of file
diff --git a/csharp/testdata/golden_message b/csharp/testdata/golden_message
new file mode 100644
index 00000000..94898e49
--- /dev/null
+++ b/csharp/testdata/golden_message
Binary files differ
diff --git a/csharp/testdata/golden_packed_fields_message b/csharp/testdata/golden_packed_fields_message
new file mode 100644
index 00000000..ee28d388
--- /dev/null
+++ b/csharp/testdata/golden_packed_fields_message
Binary files differ
diff --git a/csharp/testdata/text_format_unittest_data.txt b/csharp/testdata/text_format_unittest_data.txt
new file mode 100644
index 00000000..d3e27b71
--- /dev/null
+++ b/csharp/testdata/text_format_unittest_data.txt
@@ -0,0 +1,116 @@
+optional_int32: 101
+optional_int64: 102
+optional_uint32: 103
+optional_uint64: 104
+optional_sint32: 105
+optional_sint64: 106
+optional_fixed32: 107
+optional_fixed64: 108
+optional_sfixed32: 109
+optional_sfixed64: 110
+optional_float: 111
+optional_double: 112
+optional_bool: true
+optional_string: "115"
+optional_bytes: "116"
+OptionalGroup {
+ a: 117
+}
+optional_nested_message {
+ bb: 118
+}
+optional_foreign_message {
+ c: 119
+}
+optional_import_message {
+ d: 120
+}
+optional_nested_enum: BAZ
+optional_foreign_enum: FOREIGN_BAZ
+optional_import_enum: IMPORT_BAZ
+optional_string_piece: "124"
+optional_cord: "125"
+repeated_int32: 201
+repeated_int32: 301
+repeated_int64: 202
+repeated_int64: 302
+repeated_uint32: 203
+repeated_uint32: 303
+repeated_uint64: 204
+repeated_uint64: 304
+repeated_sint32: 205
+repeated_sint32: 305
+repeated_sint64: 206
+repeated_sint64: 306
+repeated_fixed32: 207
+repeated_fixed32: 307
+repeated_fixed64: 208
+repeated_fixed64: 308
+repeated_sfixed32: 209
+repeated_sfixed32: 309
+repeated_sfixed64: 210
+repeated_sfixed64: 310
+repeated_float: 211
+repeated_float: 311
+repeated_double: 212
+repeated_double: 312
+repeated_bool: true
+repeated_bool: false
+repeated_string: "215"
+repeated_string: "315"
+repeated_bytes: "216"
+repeated_bytes: "316"
+RepeatedGroup {
+ a: 217
+}
+RepeatedGroup {
+ a: 317
+}
+repeated_nested_message {
+ bb: 218
+}
+repeated_nested_message {
+ bb: 318
+}
+repeated_foreign_message {
+ c: 219
+}
+repeated_foreign_message {
+ c: 319
+}
+repeated_import_message {
+ d: 220
+}
+repeated_import_message {
+ d: 320
+}
+repeated_nested_enum: BAR
+repeated_nested_enum: BAZ
+repeated_foreign_enum: FOREIGN_BAR
+repeated_foreign_enum: FOREIGN_BAZ
+repeated_import_enum: IMPORT_BAR
+repeated_import_enum: IMPORT_BAZ
+repeated_string_piece: "224"
+repeated_string_piece: "324"
+repeated_cord: "225"
+repeated_cord: "325"
+default_int32: 401
+default_int64: 402
+default_uint32: 403
+default_uint64: 404
+default_sint32: 405
+default_sint64: 406
+default_fixed32: 407
+default_fixed64: 408
+default_sfixed32: 409
+default_sfixed64: 410
+default_float: 411
+default_double: 412
+default_bool: false
+default_string: "415"
+default_bytes: "416"
+default_nested_enum: FOO
+default_foreign_enum: FOREIGN_FOO
+default_import_enum: IMPORT_FOO
+default_string_piece: "424"
+default_cord: "425"
diff --git a/csharp/testdata/text_format_unittest_extensions_data.txt b/csharp/testdata/text_format_unittest_extensions_data.txt
new file mode 100644
index 00000000..4fc282c1
--- /dev/null
+++ b/csharp/testdata/text_format_unittest_extensions_data.txt
@@ -0,0 +1,116 @@
+[protobuf_unittest.optional_int32_extension]: 101
+[protobuf_unittest.optional_int64_extension]: 102
+[protobuf_unittest.optional_uint32_extension]: 103
+[protobuf_unittest.optional_uint64_extension]: 104
+[protobuf_unittest.optional_sint32_extension]: 105
+[protobuf_unittest.optional_sint64_extension]: 106
+[protobuf_unittest.optional_fixed32_extension]: 107
+[protobuf_unittest.optional_fixed64_extension]: 108
+[protobuf_unittest.optional_sfixed32_extension]: 109
+[protobuf_unittest.optional_sfixed64_extension]: 110
+[protobuf_unittest.optional_float_extension]: 111
+[protobuf_unittest.optional_double_extension]: 112
+[protobuf_unittest.optional_bool_extension]: true
+[protobuf_unittest.optional_string_extension]: "115"
+[protobuf_unittest.optional_bytes_extension]: "116"
+[protobuf_unittest.optionalgroup_extension] {
+ a: 117
+}
+[protobuf_unittest.optional_nested_message_extension] {
+ bb: 118
+}
+[protobuf_unittest.optional_foreign_message_extension] {
+ c: 119
+}
+[protobuf_unittest.optional_import_message_extension] {
+ d: 120
+}
+[protobuf_unittest.optional_nested_enum_extension]: BAZ
+[protobuf_unittest.optional_foreign_enum_extension]: FOREIGN_BAZ
+[protobuf_unittest.optional_import_enum_extension]: IMPORT_BAZ
+[protobuf_unittest.optional_string_piece_extension]: "124"
+[protobuf_unittest.optional_cord_extension]: "125"
+[protobuf_unittest.repeated_int32_extension]: 201
+[protobuf_unittest.repeated_int32_extension]: 301
+[protobuf_unittest.repeated_int64_extension]: 202
+[protobuf_unittest.repeated_int64_extension]: 302
+[protobuf_unittest.repeated_uint32_extension]: 203
+[protobuf_unittest.repeated_uint32_extension]: 303
+[protobuf_unittest.repeated_uint64_extension]: 204
+[protobuf_unittest.repeated_uint64_extension]: 304
+[protobuf_unittest.repeated_sint32_extension]: 205
+[protobuf_unittest.repeated_sint32_extension]: 305
+[protobuf_unittest.repeated_sint64_extension]: 206
+[protobuf_unittest.repeated_sint64_extension]: 306
+[protobuf_unittest.repeated_fixed32_extension]: 207
+[protobuf_unittest.repeated_fixed32_extension]: 307
+[protobuf_unittest.repeated_fixed64_extension]: 208
+[protobuf_unittest.repeated_fixed64_extension]: 308
+[protobuf_unittest.repeated_sfixed32_extension]: 209
+[protobuf_unittest.repeated_sfixed32_extension]: 309
+[protobuf_unittest.repeated_sfixed64_extension]: 210
+[protobuf_unittest.repeated_sfixed64_extension]: 310
+[protobuf_unittest.repeated_float_extension]: 211
+[protobuf_unittest.repeated_float_extension]: 311
+[protobuf_unittest.repeated_double_extension]: 212
+[protobuf_unittest.repeated_double_extension]: 312
+[protobuf_unittest.repeated_bool_extension]: true
+[protobuf_unittest.repeated_bool_extension]: false
+[protobuf_unittest.repeated_string_extension]: "215"
+[protobuf_unittest.repeated_string_extension]: "315"
+[protobuf_unittest.repeated_bytes_extension]: "216"
+[protobuf_unittest.repeated_bytes_extension]: "316"
+[protobuf_unittest.repeatedgroup_extension] {
+ a: 217
+}
+[protobuf_unittest.repeatedgroup_extension] {
+ a: 317
+}
+[protobuf_unittest.repeated_nested_message_extension] {
+ bb: 218
+}
+[protobuf_unittest.repeated_nested_message_extension] {
+ bb: 318
+}
+[protobuf_unittest.repeated_foreign_message_extension] {
+ c: 219
+}
+[protobuf_unittest.repeated_foreign_message_extension] {
+ c: 319
+}
+[protobuf_unittest.repeated_import_message_extension] {
+ d: 220
+}
+[protobuf_unittest.repeated_import_message_extension] {
+ d: 320
+}
+[protobuf_unittest.repeated_nested_enum_extension]: BAR
+[protobuf_unittest.repeated_nested_enum_extension]: BAZ
+[protobuf_unittest.repeated_foreign_enum_extension]: FOREIGN_BAR
+[protobuf_unittest.repeated_foreign_enum_extension]: FOREIGN_BAZ
+[protobuf_unittest.repeated_import_enum_extension]: IMPORT_BAR
+[protobuf_unittest.repeated_import_enum_extension]: IMPORT_BAZ
+[protobuf_unittest.repeated_string_piece_extension]: "224"
+[protobuf_unittest.repeated_string_piece_extension]: "324"
+[protobuf_unittest.repeated_cord_extension]: "225"
+[protobuf_unittest.repeated_cord_extension]: "325"
+[protobuf_unittest.default_int32_extension]: 401
+[protobuf_unittest.default_int64_extension]: 402
+[protobuf_unittest.default_uint32_extension]: 403
+[protobuf_unittest.default_uint64_extension]: 404
+[protobuf_unittest.default_sint32_extension]: 405
+[protobuf_unittest.default_sint64_extension]: 406
+[protobuf_unittest.default_fixed32_extension]: 407
+[protobuf_unittest.default_fixed64_extension]: 408
+[protobuf_unittest.default_sfixed32_extension]: 409
+[protobuf_unittest.default_sfixed64_extension]: 410
+[protobuf_unittest.default_float_extension]: 411
+[protobuf_unittest.default_double_extension]: 412
+[protobuf_unittest.default_bool_extension]: false
+[protobuf_unittest.default_string_extension]: "415"
+[protobuf_unittest.default_bytes_extension]: "416"
+[protobuf_unittest.default_nested_enum_extension]: FOO
+[protobuf_unittest.default_foreign_enum_extension]: FOREIGN_FOO
+[protobuf_unittest.default_import_enum_extension]: IMPORT_FOO
+[protobuf_unittest.default_string_piece_extension]: "424"
+[protobuf_unittest.default_cord_extension]: "425"
diff --git a/editors/proto.vim b/editors/proto.vim
index 23085a28..7f1aeb73 100644
--- a/editors/proto.vim
+++ b/editors/proto.vim
@@ -57,7 +57,7 @@ syn keyword pbSyntax syntax import option
syn keyword pbStructure package message group oneof
syn keyword pbRepeat optional required repeated
syn keyword pbDefault default
-syn keyword pbExtend extend extensions to max
+syn keyword pbExtend extend extensions to max reserved
syn keyword pbRPC service rpc returns
syn keyword pbType int32 int64 uint32 uint64 sint32 sint64
diff --git a/editors/protobuf-mode.el b/editors/protobuf-mode.el
index 09aecc93..f615a0af 100644
--- a/editors/protobuf-mode.el
+++ b/editors/protobuf-mode.el
@@ -106,7 +106,7 @@
;; cc-mode. So, we approximate as best we can.
(c-lang-defconst c-type-list-kwds
- protobuf '("extensions" "to"))
+ protobuf '("extensions" "to" "reserved"))
(c-lang-defconst c-typeless-decl-kwds
protobuf '("extend" "rpc" "option" "returns"))
diff --git a/examples/addressbook.proto b/examples/addressbook.proto
index b14829e9..91c9ffc4 100644
--- a/examples/addressbook.proto
+++ b/examples/addressbook.proto
@@ -1,9 +1,12 @@
// See README.txt for information and build instructions.
+syntax = "proto2";
+
package tutorial;
option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";
+option csharp_namespace = "Google.ProtocolBuffers.Examples.AddressBook";
message Person {
required string name = 1;
diff --git a/generate_descriptor_proto.sh b/generate_descriptor_proto.sh
index 2dad36ab..89449e10 100755
--- a/generate_descriptor_proto.sh
+++ b/generate_descriptor_proto.sh
@@ -28,27 +28,51 @@ fi
cd src
make $@ google/protobuf/stubs/pbconfig.h
+
+declare -a RUNTIME_PROTO_FILES=(\
+ google/protobuf/any.proto \
+ google/protobuf/api.proto \
+ google/protobuf/descriptor.proto \
+ google/protobuf/duration.proto \
+ google/protobuf/empty.proto \
+ google/protobuf/field_mask.proto \
+ google/protobuf/source_context.proto \
+ google/protobuf/struct.proto \
+ google/protobuf/timestamp.proto \
+ google/protobuf/type.proto \
+ google/protobuf/wrappers.proto)
+
CORE_PROTO_IS_CORRECT=0
+PROCESS_ROUND=1
+echo "Updating descriptor protos..."
while [ $CORE_PROTO_IS_CORRECT -ne 1 ]
do
+ echo "Round $PROCESS_ROUND"
CORE_PROTO_IS_CORRECT=1
- cp google/protobuf/descriptor.pb.h google/protobuf/descriptor.pb.h.tmp
- cp google/protobuf/descriptor.pb.cc google/protobuf/descriptor.pb.cc.tmp
+ for PROTO_FILE in ${RUNTIME_PROTO_FILES[@]}; do
+ BASE_NAME=${PROTO_FILE%.*}
+ cp ${BASE_NAME}.pb.h ${BASE_NAME}.pb.h.tmp
+ cp ${BASE_NAME}.pb.cc ${BASE_NAME}.pb.cc.tmp
+ done
cp google/protobuf/compiler/plugin.pb.h google/protobuf/compiler/plugin.pb.h.tmp
cp google/protobuf/compiler/plugin.pb.cc google/protobuf/compiler/plugin.pb.cc.tmp
make $@ protoc &&
- ./protoc --cpp_out=dllexport_decl=LIBPROTOBUF_EXPORT:. google/protobuf/descriptor.proto && \
+ ./protoc --cpp_out=dllexport_decl=LIBPROTOBUF_EXPORT:. ${RUNTIME_PROTO_FILES[@]} && \
./protoc --cpp_out=dllexport_decl=LIBPROTOC_EXPORT:. google/protobuf/compiler/plugin.proto
- diff google/protobuf/descriptor.pb.h google/protobuf/descriptor.pb.h.tmp > /dev/null
- if test $? -ne 0; then
- CORE_PROTO_IS_CORRECT=0
- fi
- diff google/protobuf/descriptor.pb.cc google/protobuf/descriptor.pb.cc.tmp > /dev/null
- if test $? -ne 0; then
- CORE_PROTO_IS_CORRECT=0
- fi
+ for PROTO_FILE in ${RUNTIME_PROTO_FILES[@]}; do
+ BASE_NAME=${PROTO_FILE%.*}
+ diff ${BASE_NAME}.pb.h ${BASE_NAME}.pb.h.tmp > /dev/null
+ if test $? -ne 0; then
+ CORE_PROTO_IS_CORRECT=0
+ fi
+ diff ${BASE_NAME}.pb.cc ${BASE_NAME}.pb.cc.tmp > /dev/null
+ if test $? -ne 0; then
+ CORE_PROTO_IS_CORRECT=0
+ fi
+ done
+
diff google/protobuf/compiler/plugin.pb.h google/protobuf/compiler/plugin.pb.h.tmp > /dev/null
if test $? -ne 0; then
CORE_PROTO_IS_CORRECT=0
@@ -58,9 +82,14 @@ do
CORE_PROTO_IS_CORRECT=0
fi
- rm google/protobuf/descriptor.pb.h.tmp
- rm google/protobuf/descriptor.pb.cc.tmp
+ for PROTO_FILE in ${RUNTIME_PROTO_FILES[@]}; do
+ BASE_NAME=${PROTO_FILE%.*}
+ rm ${BASE_NAME}.pb.h.tmp
+ rm ${BASE_NAME}.pb.cc.tmp
+ done
rm google/protobuf/compiler/plugin.pb.h.tmp
rm google/protobuf/compiler/plugin.pb.cc.tmp
+
+ PROCESS_ROUND=$((PROCESS_ROUND + 1))
done
cd ..
diff --git a/java/pom.xml b/java/pom.xml
index 3eb7a703..6877ac27 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -10,7 +10,7 @@
</parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
- <version>3.0.0-alpha-3-pre</version>
+ <version>3.0.0-alpha-4-pre</version>
<packaging>bundle</packaging>
<name>Protocol Buffer Java API</name>
<description>
@@ -81,7 +81,17 @@
<exec executable="../src/protoc">
<arg value="--java_out=target/generated-sources" />
<arg value="--proto_path=../src" />
+ <arg value="../src/google/protobuf/any.proto" />
+ <arg value="../src/google/protobuf/api.proto" />
<arg value="../src/google/protobuf/descriptor.proto" />
+ <arg value="../src/google/protobuf/duration.proto" />
+ <arg value="../src/google/protobuf/empty.proto" />
+ <arg value="../src/google/protobuf/field_mask.proto" />
+ <arg value="../src/google/protobuf/source_context.proto" />
+ <arg value="../src/google/protobuf/struct.proto" />
+ <arg value="../src/google/protobuf/timestamp.proto" />
+ <arg value="../src/google/protobuf/type.proto" />
+ <arg value="../src/google/protobuf/wrappers.proto" />
</exec>
</tasks>
<sourceRoot>target/generated-sources</sourceRoot>
@@ -130,10 +140,12 @@
<arg value="../src/google/protobuf/unittest_lite_imports_nonlite.proto" />
<arg value="../src/google/protobuf/unittest_enormous_descriptor.proto" />
<arg value="../src/google/protobuf/unittest_no_generic_services.proto" />
+ <arg value="../src/google/protobuf/unittest_well_known_types.proto" />
<arg value="src/test/java/com/google/protobuf/field_presence_test.proto" />
<arg value="src/test/java/com/google/protobuf/map_for_proto2_lite_test.proto" />
<arg value="src/test/java/com/google/protobuf/map_for_proto2_test.proto" />
<arg value="src/test/java/com/google/protobuf/map_test.proto" />
+ <arg value="src/test/java/com/google/protobuf/map_initialization_order_test.proto" />
</exec>
</tasks>
<testSourceRoot>target/generated-test-sources</testSourceRoot>
@@ -152,15 +164,43 @@
<instructions>
<Bundle-DocURL>https://developers.google.com/protocol-buffers/</Bundle-DocURL>
<Bundle-SymbolicName>com.google.protobuf</Bundle-SymbolicName>
- <Export-Package>com.google.protobuf;version=3.0.0-alpha-3-pre</Export-Package>
+ <Export-Package>com.google.protobuf;version=3.0.0-alpha-3</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
+ <resources>
+ <resource>
+ <directory>../src</directory>
+ <includes>
+ <include>google/protobuf/any.proto</include>
+ <include>google/protobuf/api.proto</include>
+ <include>google/protobuf/descriptor.proto</include>
+ <include>google/protobuf/duration.proto</include>
+ <include>google/protobuf/empty.proto</include>
+ <include>google/protobuf/field_mask.proto</include>
+ <include>google/protobuf/source_context.proto</include>
+ <include>google/protobuf/struct.proto</include>
+ <include>google/protobuf/timestamp.proto</include>
+ <include>google/protobuf/type.proto</include>
+ <include>google/protobuf/wrappers.proto</include>
+ </includes>
+ </resource>
+ </resources>
</build>
<profiles>
<profile>
<id>release</id>
+ <distributionManagement>
+ <snapshotRepository>
+ <id>sonatype-nexus-staging</id>
+ <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+ </snapshotRepository>
+ <repository>
+ <id>sonatype-nexus-staging</id>
+ <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
+ </repository>
+ </distributionManagement>
<build>
<plugins>
<plugin>
@@ -227,25 +267,33 @@
<includes>
<include>**/AbstractMessageLite.java</include>
<include>**/AbstractParser.java</include>
+ <include>**/AbstractProtobufList.java</include>
<include>**/BoundedByteString.java</include>
+ <include>**/BooleanArrayList.java</include>
<include>**/ByteString.java</include>
<include>**/CodedInputStream.java</include>
<include>**/CodedOutputStream.java</include>
+ <include>**/DoublerrayList.java</include>
<include>**/ExtensionLite.java</include>
<include>**/ExtensionRegistryLite.java</include>
<include>**/FieldSet.java</include>
+ <include>**/FloatArrayList.java</include>
<include>**/GeneratedMessageLite.java</include>
+ <include>**/IntArrayList.java</include>
<include>**/Internal.java</include>
<include>**/InvalidProtocolBufferException.java</include>
<include>**/LazyFieldLite.java</include>
<include>**/LazyStringArrayList.java</include>
<include>**/LazyStringList.java</include>
<include>**/LiteralByteString.java</include>
+ <include>**/LongArrayList.java</include>
<include>**/MapEntryLite.java</include>
<include>**/MapFieldLite.java</include>
<include>**/MessageLite.java</include>
<include>**/MessageLiteOrBuilder.java</include>
+ <include>**/MutabilityOracle.java</include>
<include>**/Parser.java</include>
+ <include>**/ProtobufArrayList.java</include>
<include>**/ProtocolStringList.java</include>
<include>**/RopeByteString.java</include>
<include>**/SmallSortedMap.java</include>
@@ -257,8 +305,14 @@
</includes>
<testIncludes>
<testInclude>**/*Lite.java</testInclude>
+ <testInclude>**/BooleanArrayListTest.java</testInclude>
+ <testInclude>**/DoubleArrayListTest.java</testInclude>
+ <testInclude>**/FloatArrayListTest.java</testInclude>
+ <testInclude>**/IntArrayListTest.java</testInclude>
<testInclude>**/LazyMessageLiteTest.java</testInclude>
<testInclude>**/LiteTest.java</testInclude>
+ <testInclude>**/LongArrayListTest.java</testInclude>
+ <testInclude>**/ProtobufArrayListTest.java</testInclude>
<testInclude>**/UnknownFieldSetLiteTest.java</testInclude>
</testIncludes>
</configuration>
diff --git a/java/src/main/java/com/google/protobuf/AbstractMessageLite.java b/java/src/main/java/com/google/protobuf/AbstractMessageLite.java
index aac4fa77..12384983 100644
--- a/java/src/main/java/com/google/protobuf/AbstractMessageLite.java
+++ b/java/src/main/java/com/google/protobuf/AbstractMessageLite.java
@@ -31,8 +31,8 @@
package com.google.protobuf;
import java.io.FilterInputStream;
-import java.io.InputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collection;
@@ -109,6 +109,11 @@ public abstract class AbstractMessageLite implements MessageLite {
}
}
+ protected static <T> void addAll(final Iterable<T> values,
+ final Collection<? super T> list) {
+ Builder.addAll(values, list);
+ }
+
/**
* A partial implementation of the {@link Message.Builder} interface which
* implements as many methods of that interface as possible in terms of
@@ -320,12 +325,15 @@ public abstract class AbstractMessageLite implements MessageLite {
* Adds the {@code values} to the {@code list}. This is a helper method
* used by generated code. Users should ignore it.
*
- * @throws NullPointerException if any of the elements of {@code values} is
- * null. When that happens, some elements of {@code values} may have already
- * been added to the result {@code list}.
+ * @throws NullPointerException if {@code values} or any of the elements of
+ * {@code values} is null. When that happens, some elements of
+ * {@code values} may have already been added to the result {@code list}.
*/
protected static <T> void addAll(final Iterable<T> values,
final Collection<? super T> list) {
+ if (values == null) {
+ throw new NullPointerException();
+ }
if (values instanceof LazyStringList) {
// For StringOrByteStringLists, check the underlying elements to avoid
// forcing conversions of ByteStrings to Strings.
diff --git a/java/src/main/java/com/google/protobuf/AbstractProtobufList.java b/java/src/main/java/com/google/protobuf/AbstractProtobufList.java
new file mode 100644
index 00000000..bb6446b2
--- /dev/null
+++ b/java/src/main/java/com/google/protobuf/AbstractProtobufList.java
@@ -0,0 +1,136 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import com.google.protobuf.Internal.ProtobufList;
+
+import java.util.AbstractList;
+import java.util.Collection;
+
+/**
+ * An abstract implementation of {@link ProtobufList} which manages mutability semantics. All mutate
+ * methods are check if the list is mutable before proceeding. Subclasses must invoke
+ * {@link #ensureIsMutable()} manually when overriding those methods.
+ */
+abstract class AbstractProtobufList<E> extends AbstractList<E> implements ProtobufList<E> {
+
+ /**
+ * Whether or not this list is modifiable.
+ */
+ private boolean isMutable;
+
+ /**
+ * Constructs a mutable list by default.
+ */
+ AbstractProtobufList() {
+ isMutable = true;
+ }
+
+ @Override
+ public boolean add(E e) {
+ ensureIsMutable();
+ return super.add(e);
+ }
+
+ @Override
+ public void add(int index, E element) {
+ ensureIsMutable();
+ super.add(index, element);
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends E> c) {
+ ensureIsMutable();
+ return super.addAll(c);
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends E> c) {
+ ensureIsMutable();
+ return super.addAll(index, c);
+ }
+
+ @Override
+ public void clear() {
+ ensureIsMutable();
+ super.clear();
+ }
+
+ @Override
+ public boolean isModifiable() {
+ return isMutable;
+ }
+
+ @Override
+ public final void makeImmutable() {
+ isMutable = false;
+ }
+
+ @Override
+ public E remove(int index) {
+ ensureIsMutable();
+ return super.remove(index);
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ ensureIsMutable();
+ return super.remove(o);
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ ensureIsMutable();
+ return super.removeAll(c);
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ ensureIsMutable();
+ return super.retainAll(c);
+ }
+
+ @Override
+ public E set(int index, E element) {
+ ensureIsMutable();
+ return super.set(index, element);
+ }
+
+ /**
+ * Throws an {@link UnsupportedOperationException} if the list is immutable. Subclasses are
+ * responsible for invoking this method on mutate operations.
+ */
+ protected void ensureIsMutable() {
+ if (!isMutable) {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
diff --git a/java/src/main/java/com/google/protobuf/BooleanArrayList.java b/java/src/main/java/com/google/protobuf/BooleanArrayList.java
new file mode 100644
index 00000000..45492d2f
--- /dev/null
+++ b/java/src/main/java/com/google/protobuf/BooleanArrayList.java
@@ -0,0 +1,244 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import com.google.protobuf.Internal.BooleanList;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.RandomAccess;
+
+/**
+ * An implementation of {@link BooleanList} on top of a primitive array.
+ *
+ * @author dweis@google.com (Daniel Weis)
+ */
+final class BooleanArrayList
+ extends AbstractProtobufList<Boolean> implements BooleanList, RandomAccess {
+
+ private static final int DEFAULT_CAPACITY = 10;
+
+ private static final BooleanArrayList EMPTY_LIST = new BooleanArrayList();
+ static {
+ EMPTY_LIST.makeImmutable();
+ }
+
+ public static BooleanArrayList emptyList() {
+ return EMPTY_LIST;
+ }
+
+ /**
+ * The backing store for the list.
+ */
+ private boolean[] array;
+
+ /**
+ * The size of the list distinct from the length of the array. That is, it is the number of
+ * elements set in the list.
+ */
+ private int size;
+
+ /**
+ * Constructs a new mutable {@code BooleanArrayList}.
+ */
+ BooleanArrayList() {
+ array = new boolean[DEFAULT_CAPACITY];
+ size = 0;
+ }
+
+ /**
+ * Constructs a new mutable {@code BooleanArrayList} containing the same elements as
+ * {@code other}.
+ */
+ BooleanArrayList(List<Boolean> other) {
+ if (other instanceof BooleanArrayList) {
+ BooleanArrayList list = (BooleanArrayList) other;
+ array = list.array.clone();
+ size = list.size;
+ } else {
+ size = other.size();
+ array = new boolean[size];
+ for (int i = 0; i < size; i++) {
+ array[i] = other.get(i);
+ }
+ }
+ }
+
+ @Override
+ public Boolean get(int index) {
+ return getBoolean(index);
+ }
+
+ @Override
+ public boolean getBoolean(int index) {
+ ensureIndexInRange(index);
+ return array[index];
+ }
+
+ @Override
+ public int size() {
+ return size;
+ }
+
+ @Override
+ public Boolean set(int index, Boolean element) {
+ return setBoolean(index, element);
+ }
+
+ @Override
+ public boolean setBoolean(int index, boolean element) {
+ ensureIsMutable();
+ ensureIndexInRange(index);
+ boolean previousValue = array[index];
+ array[index] = element;
+ return previousValue;
+ }
+
+ @Override
+ public void add(int index, Boolean element) {
+ addBoolean(index, element);
+ }
+
+ /**
+ * Like {@link #add(Boolean)} but more efficient in that it doesn't box the element.
+ */
+ @Override
+ public void addBoolean(boolean element) {
+ addBoolean(size, element);
+ }
+
+ /**
+ * Like {@link #add(int, Boolean)} but more efficient in that it doesn't box the element.
+ */
+ private void addBoolean(int index, boolean element) {
+ ensureIsMutable();
+ if (index < 0 || index > size) {
+ throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index));
+ }
+
+ if (size < array.length) {
+ // Shift everything over to make room
+ System.arraycopy(array, index, array, index + 1, size - index);
+ } else {
+ // Resize to 1.5x the size
+ int length = ((size * 3) / 2) + 1;
+ boolean[] newArray = new boolean[length];
+
+ // Copy the first part directly
+ System.arraycopy(array, 0, newArray, 0, index);
+
+ // Copy the rest shifted over by one to make room
+ System.arraycopy(array, index, newArray, index + 1, size - index);
+ array = newArray;
+ }
+
+ array[index] = element;
+ size++;
+ modCount++;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends Boolean> collection) {
+ ensureIsMutable();
+
+ if (collection == null) {
+ throw new NullPointerException();
+ }
+
+ // We specialize when adding another BooleanArrayList to avoid boxing elements.
+ if (!(collection instanceof BooleanArrayList)) {
+ return super.addAll(collection);
+ }
+
+ BooleanArrayList list = (BooleanArrayList) collection;
+ if (list.size == 0) {
+ return false;
+ }
+
+ int overflow = Integer.MAX_VALUE - size;
+ if (overflow < list.size) {
+ // We can't actually represent a list this large.
+ throw new OutOfMemoryError();
+ }
+
+ int newSize = size + list.size;
+ if (newSize > array.length) {
+ array = Arrays.copyOf(array, newSize);
+ }
+
+ System.arraycopy(list.array, 0, array, size, list.size);
+ size = newSize;
+ modCount++;
+ return true;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ ensureIsMutable();
+ for (int i = 0; i < size; i++) {
+ if (o.equals(array[i])) {
+ System.arraycopy(array, i + 1, array, i, size - i);
+ size--;
+ modCount++;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Boolean remove(int index) {
+ ensureIsMutable();
+ ensureIndexInRange(index);
+ boolean value = array[index];
+ System.arraycopy(array, index + 1, array, index, size - index);
+ size--;
+ modCount++;
+ return value;
+ }
+
+ /**
+ * Ensures that the provided {@code index} is within the range of {@code [0, size]}. Throws an
+ * {@link IndexOutOfBoundsException} if it is not.
+ *
+ * @param index the index to verify is in range
+ */
+ private void ensureIndexInRange(int index) {
+ if (index < 0 || index >= size) {
+ throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index));
+ }
+ }
+
+ private String makeOutOfBoundsExceptionMessage(int index) {
+ return "Index:" + index + ", Size:" + size;
+ }
+}
diff --git a/java/src/main/java/com/google/protobuf/Descriptors.java b/java/src/main/java/com/google/protobuf/Descriptors.java
index b60bd36b..3658410c 100644
--- a/java/src/main/java/com/google/protobuf/Descriptors.java
+++ b/java/src/main/java/com/google/protobuf/Descriptors.java
@@ -644,6 +644,30 @@ public final class Descriptors {
return false;
}
+ /** Determines if the given field number is reserved. */
+ public boolean isReservedNumber(final int number) {
+ for (final DescriptorProto.ReservedRange range :
+ proto.getReservedRangeList()) {
+ if (range.getStart() <= number && number < range.getEnd()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /** Determines if the given field name is reserved. */
+ public boolean isReservedName(final String name) {
+ if (name == null) {
+ throw new NullPointerException();
+ }
+ for (final String reservedName : proto.getReservedNameList()) {
+ if (reservedName.equals(name)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
/**
* Indicates whether the message can be extended. That is, whether it has
* any "extensions x to y" ranges declared on it.
@@ -917,9 +941,18 @@ public final class Descriptors {
return proto.getLabel() == FieldDescriptorProto.Label.LABEL_REPEATED;
}
- /** Does this field have the {@code [packed = true]} option? */
+ /** Does this field have the {@code [packed = true]} option or is this field
+ * packable in proto3 and not explicitly setted to unpacked?
+ */
public boolean isPacked() {
- return getOptions().getPacked();
+ if (!isPackable()) {
+ return false;
+ }
+ if (getFile().getSyntax() == FileDescriptor.Syntax.PROTO2) {
+ return getOptions().getPacked();
+ } else {
+ return !getOptions().hasPacked() || getOptions().getPacked();
+ }
}
/** Can this field be packed? i.e. is it a repeated primitive field? */
@@ -2317,6 +2350,11 @@ public final class Descriptors {
public int getFieldCount() { return fieldCount; }
+ /** Get a list of this message type's fields. */
+ public List<FieldDescriptor> getFields() {
+ return Collections.unmodifiableList(Arrays.asList(fields));
+ }
+
public FieldDescriptor getField(int index) {
return fields[index];
}
diff --git a/java/src/main/java/com/google/protobuf/DoubleArrayList.java b/java/src/main/java/com/google/protobuf/DoubleArrayList.java
new file mode 100644
index 00000000..90ebe109
--- /dev/null
+++ b/java/src/main/java/com/google/protobuf/DoubleArrayList.java
@@ -0,0 +1,243 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import com.google.protobuf.Internal.DoubleList;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.RandomAccess;
+
+/**
+ * An implementation of {@link DoubleList} on top of a primitive array.
+ *
+ * @author dweis@google.com (Daniel Weis)
+ */
+final class DoubleArrayList
+ extends AbstractProtobufList<Double> implements DoubleList, RandomAccess {
+
+ private static final int DEFAULT_CAPACITY = 10;
+
+ private static final DoubleArrayList EMPTY_LIST = new DoubleArrayList();
+ static {
+ EMPTY_LIST.makeImmutable();
+ }
+
+ public static DoubleArrayList emptyList() {
+ return EMPTY_LIST;
+ }
+
+ /**
+ * The backing store for the list.
+ */
+ private double[] array;
+
+ /**
+ * The size of the list distinct from the length of the array. That is, it is the number of
+ * elements set in the list.
+ */
+ private int size;
+
+ /**
+ * Constructs a new mutable {@code DoubleArrayList}.
+ */
+ DoubleArrayList() {
+ array = new double[DEFAULT_CAPACITY];
+ size = 0;
+ }
+
+ /**
+ * Constructs a new mutable {@code DoubleArrayList} containing the same elements as {@code other}.
+ */
+ DoubleArrayList(List<Double> other) {
+ if (other instanceof DoubleArrayList) {
+ DoubleArrayList list = (DoubleArrayList) other;
+ array = list.array.clone();
+ size = list.size;
+ } else {
+ size = other.size();
+ array = new double[size];
+ for (int i = 0; i < size; i++) {
+ array[i] = other.get(i);
+ }
+ }
+ }
+
+ @Override
+ public Double get(int index) {
+ return getDouble(index);
+ }
+
+ @Override
+ public double getDouble(int index) {
+ ensureIndexInRange(index);
+ return array[index];
+ }
+
+ @Override
+ public int size() {
+ return size;
+ }
+
+ @Override
+ public Double set(int index, Double element) {
+ return setDouble(index, element);
+ }
+
+ @Override
+ public double setDouble(int index, double element) {
+ ensureIsMutable();
+ ensureIndexInRange(index);
+ double previousValue = array[index];
+ array[index] = element;
+ return previousValue;
+ }
+
+ @Override
+ public void add(int index, Double element) {
+ addDouble(index, element);
+ }
+
+ /**
+ * Like {@link #add(Double)} but more efficient in that it doesn't box the element.
+ */
+ @Override
+ public void addDouble(double element) {
+ addDouble(size, element);
+ }
+
+ /**
+ * Like {@link #add(int, Double)} but more efficient in that it doesn't box the element.
+ */
+ private void addDouble(int index, double element) {
+ ensureIsMutable();
+ if (index < 0 || index > size) {
+ throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index));
+ }
+
+ if (size < array.length) {
+ // Shift everything over to make room
+ System.arraycopy(array, index, array, index + 1, size - index);
+ } else {
+ // Resize to 1.5x the size
+ int length = ((size * 3) / 2) + 1;
+ double[] newArray = new double[length];
+
+ // Copy the first part directly
+ System.arraycopy(array, 0, newArray, 0, index);
+
+ // Copy the rest shifted over by one to make room
+ System.arraycopy(array, index, newArray, index + 1, size - index);
+ array = newArray;
+ }
+
+ array[index] = element;
+ size++;
+ modCount++;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends Double> collection) {
+ ensureIsMutable();
+
+ if (collection == null) {
+ throw new NullPointerException();
+ }
+
+ // We specialize when adding another DoubleArrayList to avoid boxing elements.
+ if (!(collection instanceof DoubleArrayList)) {
+ return super.addAll(collection);
+ }
+
+ DoubleArrayList list = (DoubleArrayList) collection;
+ if (list.size == 0) {
+ return false;
+ }
+
+ int overflow = Integer.MAX_VALUE - size;
+ if (overflow < list.size) {
+ // We can't actually represent a list this large.
+ throw new OutOfMemoryError();
+ }
+
+ int newSize = size + list.size;
+ if (newSize > array.length) {
+ array = Arrays.copyOf(array, newSize);
+ }
+
+ System.arraycopy(list.array, 0, array, size, list.size);
+ size = newSize;
+ modCount++;
+ return true;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ ensureIsMutable();
+ for (int i = 0; i < size; i++) {
+ if (o.equals(array[i])) {
+ System.arraycopy(array, i + 1, array, i, size - i);
+ size--;
+ modCount++;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Double remove(int index) {
+ ensureIsMutable();
+ ensureIndexInRange(index);
+ double value = array[index];
+ System.arraycopy(array, index + 1, array, index, size - index);
+ size--;
+ modCount++;
+ return value;
+ }
+
+ /**
+ * Ensures that the provided {@code index} is within the range of {@code [0, size]}. Throws an
+ * {@link IndexOutOfBoundsException} if it is not.
+ *
+ * @param index the index to verify is in range
+ */
+ private void ensureIndexInRange(int index) {
+ if (index < 0 || index >= size) {
+ throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index));
+ }
+ }
+
+ private String makeOutOfBoundsExceptionMessage(int index) {
+ return "Index:" + index + ", Size:" + size;
+ }
+}
diff --git a/java/src/main/java/com/google/protobuf/FloatArrayList.java b/java/src/main/java/com/google/protobuf/FloatArrayList.java
new file mode 100644
index 00000000..293eaff6
--- /dev/null
+++ b/java/src/main/java/com/google/protobuf/FloatArrayList.java
@@ -0,0 +1,242 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import com.google.protobuf.Internal.FloatList;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.RandomAccess;
+
+/**
+ * An implementation of {@link FloatList} on top of a primitive array.
+ *
+ * @author dweis@google.com (Daniel Weis)
+ */
+final class FloatArrayList extends AbstractProtobufList<Float> implements FloatList, RandomAccess {
+
+ private static final int DEFAULT_CAPACITY = 10;
+
+ private static final FloatArrayList EMPTY_LIST = new FloatArrayList();
+ static {
+ EMPTY_LIST.makeImmutable();
+ }
+
+ public static FloatArrayList emptyList() {
+ return EMPTY_LIST;
+ }
+
+ /**
+ * The backing store for the list.
+ */
+ private float[] array;
+
+ /**
+ * The size of the list distinct from the length of the array. That is, it is the number of
+ * elements set in the list.
+ */
+ private int size;
+
+ /**
+ * Constructs a new mutable {@code FloatArrayList}.
+ */
+ FloatArrayList() {
+ array = new float[DEFAULT_CAPACITY];
+ size = 0;
+ }
+
+ /**
+ * Constructs a new mutable {@code FloatArrayList} containing the same elements as {@code other}.
+ */
+ FloatArrayList(List<Float> other) {
+ if (other instanceof FloatArrayList) {
+ FloatArrayList list = (FloatArrayList) other;
+ array = list.array.clone();
+ size = list.size;
+ } else {
+ size = other.size();
+ array = new float[size];
+ for (int i = 0; i < size; i++) {
+ array[i] = other.get(i);
+ }
+ }
+ }
+
+ @Override
+ public Float get(int index) {
+ return getFloat(index);
+ }
+
+ @Override
+ public float getFloat(int index) {
+ ensureIndexInRange(index);
+ return array[index];
+ }
+
+ @Override
+ public int size() {
+ return size;
+ }
+
+ @Override
+ public Float set(int index, Float element) {
+ return setFloat(index, element);
+ }
+
+ @Override
+ public float setFloat(int index, float element) {
+ ensureIsMutable();
+ ensureIndexInRange(index);
+ float previousValue = array[index];
+ array[index] = element;
+ return previousValue;
+ }
+
+ @Override
+ public void add(int index, Float element) {
+ addFloat(index, element);
+ }
+
+ /**
+ * Like {@link #add(Float)} but more efficient in that it doesn't box the element.
+ */
+ @Override
+ public void addFloat(float element) {
+ addFloat(size, element);
+ }
+
+ /**
+ * Like {@link #add(int, Float)} but more efficient in that it doesn't box the element.
+ */
+ private void addFloat(int index, float element) {
+ ensureIsMutable();
+ if (index < 0 || index > size) {
+ throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index));
+ }
+
+ if (size < array.length) {
+ // Shift everything over to make room
+ System.arraycopy(array, index, array, index + 1, size - index);
+ } else {
+ // Resize to 1.5x the size
+ int length = ((size * 3) / 2) + 1;
+ float[] newArray = new float[length];
+
+ // Copy the first part directly
+ System.arraycopy(array, 0, newArray, 0, index);
+
+ // Copy the rest shifted over by one to make room
+ System.arraycopy(array, index, newArray, index + 1, size - index);
+ array = newArray;
+ }
+
+ array[index] = element;
+ size++;
+ modCount++;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends Float> collection) {
+ ensureIsMutable();
+
+ if (collection == null) {
+ throw new NullPointerException();
+ }
+
+ // We specialize when adding another FloatArrayList to avoid boxing elements.
+ if (!(collection instanceof FloatArrayList)) {
+ return super.addAll(collection);
+ }
+
+ FloatArrayList list = (FloatArrayList) collection;
+ if (list.size == 0) {
+ return false;
+ }
+
+ int overflow = Integer.MAX_VALUE - size;
+ if (overflow < list.size) {
+ // We can't actually represent a list this large.
+ throw new OutOfMemoryError();
+ }
+
+ int newSize = size + list.size;
+ if (newSize > array.length) {
+ array = Arrays.copyOf(array, newSize);
+ }
+
+ System.arraycopy(list.array, 0, array, size, list.size);
+ size = newSize;
+ modCount++;
+ return true;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ ensureIsMutable();
+ for (int i = 0; i < size; i++) {
+ if (o.equals(array[i])) {
+ System.arraycopy(array, i + 1, array, i, size - i);
+ size--;
+ modCount++;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Float remove(int index) {
+ ensureIsMutable();
+ ensureIndexInRange(index);
+ float value = array[index];
+ System.arraycopy(array, index + 1, array, index, size - index);
+ size--;
+ modCount++;
+ return value;
+ }
+
+ /**
+ * Ensures that the provided {@code index} is within the range of {@code [0, size]}. Throws an
+ * {@link IndexOutOfBoundsException} if it is not.
+ *
+ * @param index the index to verify is in range
+ */
+ private void ensureIndexInRange(int index) {
+ if (index < 0 || index >= size) {
+ throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index));
+ }
+ }
+
+ private String makeOutOfBoundsExceptionMessage(int index) {
+ return "Index:" + index + ", Size:" + size;
+ }
+}
diff --git a/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java b/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java
index 6839c9dd..bd6bc463 100644
--- a/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java
+++ b/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java
@@ -30,6 +30,12 @@
package com.google.protobuf;
+import com.google.protobuf.Internal.BooleanList;
+import com.google.protobuf.Internal.DoubleList;
+import com.google.protobuf.Internal.FloatList;
+import com.google.protobuf.Internal.IntList;
+import com.google.protobuf.Internal.LongList;
+import com.google.protobuf.Internal.ProtobufList;
import com.google.protobuf.WireFormat.FieldType;
import java.io.IOException;
@@ -76,7 +82,11 @@ public abstract class GeneratedMessageLite<
private static final long serialVersionUID = 1L;
/** For use by generated code only. */
- protected UnknownFieldSetLite unknownFields;
+ protected UnknownFieldSetLite unknownFields =
+ UnknownFieldSetLite.getDefaultInstance();
+
+ /** For use by generated code only. */
+ protected int memoizedSerializedSize = -1;
@SuppressWarnings("unchecked") // Guaranteed by runtime.
public final Parser<MessageType> getParserForType() {
@@ -109,10 +119,67 @@ public abstract class GeneratedMessageLite<
return unknownFields.mergeFieldFrom(tag, input);
}
- // The default behavior. If a message has required fields in its subtree, the
- // generated code will override.
- public boolean isInitialized() {
- return true;
+ public final boolean isInitialized() {
+ return dynamicMethod(MethodToInvoke.IS_INITIALIZED, Boolean.TRUE) != null;
+ }
+
+ public final BuilderType toBuilder() {
+ BuilderType builder = (BuilderType) dynamicMethod(MethodToInvoke.NEW_BUILDER);
+ builder.mergeFrom((MessageType) this);
+ return builder;
+ }
+
+ /**
+ * Defines which method path to invoke in {@link GeneratedMessageLite
+ * #dynamicMethod(MethodToInvoke, Object...)}.
+ * <p>
+ * For use by generated code only.
+ */
+ public static enum MethodToInvoke {
+ IS_INITIALIZED,
+ PARSE_PARTIAL_FROM,
+ MERGE_FROM,
+ MAKE_IMMUTABLE,
+ NEW_INSTANCE,
+ NEW_BUILDER;
+ }
+
+ /**
+ * A method that implements different types of operations described in {@link MethodToInvoke}.
+ * Theses different kinds of operations are required to implement message-level operations for
+ * builders in the runtime. This method bundles those operations to reduce the generated methods
+ * count.
+ * <ul>
+ * <li>{@code PARSE_PARTIAL_FROM} is parameterized with an {@link CodedInputStream} and
+ * {@link ExtensionRegistryLite}. It consumes the input stream, parsing the contents into the
+ * returned protocol buffer. If parsing throws an {@link InvalidProtocolBufferException}, the
+ * implementation wraps it in a RuntimeException
+ * <li>{@code NEW_INSTANCE} returns a new instance of the protocol buffer
+ * <li>{@code IS_INITIALIZED} is parameterized with a {@code Boolean} detailing whether to
+ * memoize. It returns {@code null} for false and the default instance for true. We optionally
+ * memoize to support the Builder case, where memoization is not desired.
+ * <li>{@code NEW_BUILDER} returns a {@code BuilderType} instance.
+ * <li>{@code MERGE_FROM} is parameterized with a {@code MessageType} and merges the fields from
+ * that instance into this instance.
+ * <li>{@code MAKE_IMMUTABLE} sets all internal fields to an immutable state.
+ * </ul>
+ * This method, plus the implementation of the Builder, enables the Builder class to be proguarded
+ * away entirely on Android.
+ * <p>
+ * For use by generated code only.
+ */
+ protected abstract Object dynamicMethod(
+ MethodToInvoke method,
+ Object... args);
+
+ /**
+ * Merge some unknown fields into the {@link UnknownFieldSetLite} for this
+ * message.
+ *
+ * <p>For use by generated code only.
+ */
+ protected final void mergeUnknownFields(UnknownFieldSetLite unknownFields) {
+ this.unknownFields = UnknownFieldSetLite.concat(this.unknownFields, unknownFields);
}
@SuppressWarnings("unchecked")
@@ -122,24 +189,37 @@ public abstract class GeneratedMessageLite<
extends AbstractMessageLite.Builder<BuilderType> {
private final MessageType defaultInstance;
-
- /** For use by generated code only. */
- protected UnknownFieldSetLite unknownFields =
- UnknownFieldSetLite.getDefaultInstance();
+ protected MessageType instance;
+ protected boolean isBuilt;
protected Builder(MessageType defaultInstance) {
this.defaultInstance = defaultInstance;
+ this.instance = (MessageType) defaultInstance.dynamicMethod(MethodToInvoke.NEW_INSTANCE);
+ isBuilt = false;
}
- // The default behavior. If a message has required fields in its subtree,
- // the generated code will override.
- public boolean isInitialized() {
- return true;
+ /**
+ * Called before any method that would mutate the builder to ensure that it correctly copies
+ * any state before the write happens to preserve immutability guarantees.
+ */
+ protected void copyOnWrite() {
+ if (isBuilt) {
+ MessageType newInstance = (MessageType) instance.dynamicMethod(MethodToInvoke.NEW_INSTANCE);
+ newInstance.dynamicMethod(MethodToInvoke.MERGE_FROM, instance);
+ instance = newInstance;
+ isBuilt = false;
+ }
+ }
+
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
+ public final boolean isInitialized() {
+ return GeneratedMessageLite.isInitialized(instance, false /* shouldMemoize */);
}
//@Override (Java 1.6 override semantics, but we must support 1.5)
- public BuilderType clear() {
- unknownFields = UnknownFieldSetLite.getDefaultInstance();
+ public final BuilderType clear() {
+ // No need to copy on write since we're dropping the instance anyways.
+ instance = (MessageType) instance.dynamicMethod(MethodToInvoke.NEW_INSTANCE);
return (BuilderType) this;
}
@@ -151,8 +231,12 @@ public abstract class GeneratedMessageLite<
return builder;
}
- /** All subclasses implement this. */
- public abstract MessageType buildPartial();
+ //@Override (Java 1.6 override semantics, but we must support 1.5)
+ public MessageType buildPartial() {
+ instance.dynamicMethod(MethodToInvoke.MAKE_IMMUTABLE);
+ isBuilt = true;
+ return instance;
+ }
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final MessageType build() {
@@ -162,9 +246,13 @@ public abstract class GeneratedMessageLite<
}
return result;
}
-
+
/** All subclasses implement this. */
- public abstract BuilderType mergeFrom(MessageType message);
+ public BuilderType mergeFrom(MessageType message) {
+ copyOnWrite();
+ instance.dynamicMethod(MethodToInvoke.MERGE_FROM, message);
+ return (BuilderType) this;
+ }
public MessageType getDefaultInstanceForType() {
return defaultInstance;
@@ -181,18 +269,6 @@ public abstract class GeneratedMessageLite<
int tag) throws IOException {
return unknownFields.mergeFieldFrom(tag, input);
}
-
- /**
- * Merge some unknown fields into the {@link UnknownFieldSetLite} for this
- * message.
- *
- * <p>For use by generated code only.
- */
- protected final BuilderType mergeUnknownFields(
- final UnknownFieldSetLite unknownFields) {
- this.unknownFields = UnknownFieldSetLite.concat(this.unknownFields, unknownFields);
- return (BuilderType) this;
- }
public BuilderType mergeFrom(
com.google.protobuf.CodedInputStream input,
@@ -259,19 +335,13 @@ public abstract class GeneratedMessageLite<
*/
protected FieldSet<ExtensionDescriptor> extensions = FieldSet.newFieldSet();
- // -1 => not memoized, 0 => false, 1 => true.
- private byte memoizedIsInitialized = -1;
-
- // The default behavior. If a message has required fields in its subtree,
- // the generated code will override.
- public boolean isInitialized() {
- if (memoizedIsInitialized == -1) {
- memoizedIsInitialized = (byte) (extensions.isInitialized() ? 1 : 0);
+ protected final void mergeExtensionFields(final MessageType other) {
+ if (extensions.isImmutable()) {
+ extensions = extensions.clone();
}
-
- return memoizedIsInitialized == 1;
+ extensions.mergeFrom(((ExtendableMessage) other).extensions);
}
-
+
private void verifyExtensionContainingType(
final GeneratedExtension<MessageType, ?> extension) {
if (extension.getContainingTypeDefaultInstance() !=
@@ -420,46 +490,38 @@ public abstract class GeneratedMessageLite<
implements ExtendableMessageOrBuilder<MessageType, BuilderType> {
protected ExtendableBuilder(MessageType defaultInstance) {
super(defaultInstance);
- }
-
- private FieldSet<ExtensionDescriptor> extensions = FieldSet.emptySet();
- private boolean extensionsIsMutable;
-
- // The default behavior. If a message has required fields in its subtree,
- // the generated code will override.
- public boolean isInitialized() {
- return extensions.isInitialized();
+
+ // TODO(dweis): This is kind of an unnecessary clone since we construct a
+ // new instance in the parent constructor which makes the extensions
+ // immutable. This extra allocation shouldn't matter in practice
+ // though.
+ instance.extensions = instance.extensions.clone();
}
// For immutable message conversion.
void internalSetExtensionSet(FieldSet<ExtensionDescriptor> extensions) {
- this.extensions = extensions;
+ copyOnWrite();
+ instance.extensions = extensions;
}
- @Override
- public BuilderType clear() {
- extensions.clear();
- extensionsIsMutable = false;
- return super.clear();
+ // @Override (Java 1.6 override semantics, but we must support 1.5)
+ protected void copyOnWrite() {
+ if (!isBuilt) {
+ return;
+ }
+
+ super.copyOnWrite();
+ instance.extensions = instance.extensions.clone();
}
- private void ensureExtensionsIsMutable() {
- if (!extensionsIsMutable) {
- extensions = extensions.clone();
- extensionsIsMutable = true;
+ // @Override (Java 1.6 override semantics, but we must support 1.5)
+ public final MessageType buildPartial() {
+ if (isBuilt) {
+ return instance;
}
- }
- /**
- * Called by the build code path to create a copy of the extensions for
- * building the message.
- * <p>
- * For use by generated code only.
- */
- protected final FieldSet<ExtensionDescriptor> buildExtensions() {
- extensions.makeImmutable();
- extensionsIsMutable = false;
- return extensions;
+ instance.extensions.makeImmutable();
+ return super.buildPartial();
}
private void verifyExtensionContainingType(
@@ -477,22 +539,14 @@ public abstract class GeneratedMessageLite<
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> boolean hasExtension(
final ExtensionLite<MessageType, Type> extension) {
- GeneratedExtension<MessageType, Type> extensionLite =
- checkIsLite(extension);
-
- verifyExtensionContainingType(extensionLite);
- return extensions.hasField(extensionLite.descriptor);
+ return instance.hasExtension(extension);
}
/** Get the number of elements in a repeated extension. */
//@Override (Java 1.6 override semantics, but we must support 1.5)
public final <Type> int getExtensionCount(
final ExtensionLite<MessageType, List<Type>> extension) {
- GeneratedExtension<MessageType, List<Type>> extensionLite =
- checkIsLite(extension);
-
- verifyExtensionContainingType(extensionLite);
- return extensions.getRepeatedFieldCount(extensionLite.descriptor);
+ return instance.getExtensionCount(extension);
}
/** Get the value of an extension. */
@@ -500,16 +554,7 @@ public abstract class GeneratedMessageLite<
@SuppressWarnings("unchecked")
public final <Type> Type getExtension(
final ExtensionLite<MessageType, Type> extension) {
- GeneratedExtension<MessageType, Type> extensionLite =
- checkIsLite(extension);
-
- verifyExtensionContainingType(extensionLite);
- final Object value = extensions.getField(extensionLite.descriptor);
- if (value == null) {
- return extensionLite.defaultValue;
- } else {
- return (Type) extensionLite.fromFieldSetType(value);
- }
+ return instance.getExtension(extension);
}
/** Get one element of a repeated extension. */
@@ -518,12 +563,7 @@ public abstract class GeneratedMessageLite<
public final <Type> Type getExtension(
final ExtensionLite<MessageType, List<Type>> extension,
final int index) {
- GeneratedExtension<MessageType, List<Type>> extensionLite =
- checkIsLite(extension);
-
- verifyExtensionContainingType(extensionLite);
- return (Type) extensionLite.singularFromFieldSetType(
- extensions.getRepeatedField(extensionLite.descriptor, index));
+ return instance.getExtension(extension, index);
}
// This is implemented here only to work around an apparent bug in the
@@ -542,9 +582,8 @@ public abstract class GeneratedMessageLite<
checkIsLite(extension);
verifyExtensionContainingType(extensionLite);
- ensureExtensionsIsMutable();
- extensions.setField(extensionLite.descriptor,
- extensionLite.toFieldSetType(value));
+ copyOnWrite();
+ instance.extensions.setField(extensionLite.descriptor, extensionLite.toFieldSetType(value));
return (BuilderType) this;
}
@@ -556,9 +595,9 @@ public abstract class GeneratedMessageLite<
checkIsLite(extension);
verifyExtensionContainingType(extensionLite);
- ensureExtensionsIsMutable();
- extensions.setRepeatedField(extensionLite.descriptor, index,
- extensionLite.singularToFieldSetType(value));
+ copyOnWrite();
+ instance.extensions.setRepeatedField(
+ extensionLite.descriptor, index, extensionLite.singularToFieldSetType(value));
return (BuilderType) this;
}
@@ -570,9 +609,9 @@ public abstract class GeneratedMessageLite<
checkIsLite(extension);
verifyExtensionContainingType(extensionLite);
- ensureExtensionsIsMutable();
- extensions.addRepeatedField(extensionLite.descriptor,
- extensionLite.singularToFieldSetType(value));
+ copyOnWrite();
+ instance.extensions.addRepeatedField(
+ extensionLite.descriptor, extensionLite.singularToFieldSetType(value));
return (BuilderType) this;
}
@@ -582,20 +621,10 @@ public abstract class GeneratedMessageLite<
GeneratedExtension<MessageType, ?> extensionLite = checkIsLite(extension);
verifyExtensionContainingType(extensionLite);
- ensureExtensionsIsMutable();
- extensions.clearField(extensionLite.descriptor);
+ copyOnWrite();
+ instance.extensions.clearField(extensionLite.descriptor);
return (BuilderType) this;
}
-
- /** Called by subclasses to check if all extensions are initialized. */
- protected boolean extensionsAreInitialized() {
- return extensions.isInitialized();
- }
-
- protected final void mergeExtensionFields(final MessageType other) {
- ensureExtensionsIsMutable();
- extensions.mergeFrom(((ExtendableMessage) other).extensions);
- }
}
//-----------------------------------------------------------------
@@ -1113,4 +1142,133 @@ public abstract class GeneratedMessageLite<
return (BuilderType) defaultInstance.toBuilder();
}
}
+
+ /**
+ * A static helper method for checking if a message is initialized, optionally memoizing.
+ * <p>
+ * For use by generated code only.
+ */
+ protected static final <T extends GeneratedMessageLite<T, ?>> boolean isInitialized(
+ T message, boolean shouldMemoize) {
+ return message.dynamicMethod(MethodToInvoke.IS_INITIALIZED, shouldMemoize) != null;
+ }
+
+ protected static final <T extends GeneratedMessageLite<T, ?>> void makeImmutable(T message) {
+ message.dynamicMethod(MethodToInvoke.MAKE_IMMUTABLE);
+ }
+
+ /**
+ * A static helper method for parsing a partial from input using the extension registry and the
+ * instance.
+ */
+ static <T extends GeneratedMessageLite<T, ?>> T parsePartialFrom(
+ T instance, CodedInputStream input, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ try {
+ return (T) instance.dynamicMethod(
+ MethodToInvoke.PARSE_PARTIAL_FROM, input, extensionRegistry);
+ } catch (RuntimeException e) {
+ if (e.getCause() instanceof InvalidProtocolBufferException) {
+ throw (InvalidProtocolBufferException) e.getCause();
+ }
+ throw e;
+ }
+ }
+
+ /**
+ * A {@link Parser} implementation that delegates to the default instance.
+ * <p>
+ * For use by generated code only.
+ */
+ protected static class DefaultInstanceBasedParser<T extends GeneratedMessageLite<T, ?>>
+ extends AbstractParser<T> {
+
+ private T defaultInstance;
+
+ public DefaultInstanceBasedParser(T defaultInstance) {
+ this.defaultInstance = defaultInstance;
+ }
+
+ @Override
+ public T parsePartialFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
+ throws InvalidProtocolBufferException {
+ return GeneratedMessageLite.parsePartialFrom(defaultInstance, input, extensionRegistry);
+ }
+ }
+
+ protected static IntList newIntList() {
+ return new IntArrayList();
+ }
+
+ protected static IntList newIntList(List<Integer> toCopy) {
+ return new IntArrayList(toCopy);
+ }
+
+ protected static IntList emptyIntList() {
+ return IntArrayList.emptyList();
+ }
+
+ protected static LongList newLongList() {
+ return new LongArrayList();
+ }
+
+ protected static LongList newLongList(List<Long> toCopy) {
+ return new LongArrayList(toCopy);
+ }
+
+ protected static LongList emptyLongList() {
+ return LongArrayList.emptyList();
+ }
+
+ protected static FloatList newFloatList() {
+ return new FloatArrayList();
+ }
+
+ protected static FloatList newFloatList(List<Float> toCopy) {
+ return new FloatArrayList(toCopy);
+ }
+
+ protected static FloatList emptyFloatList() {
+ return FloatArrayList.emptyList();
+ }
+
+ protected static DoubleList newDoubleList() {
+ return new DoubleArrayList();
+ }
+
+ protected static DoubleList newDoubleList(List<Double> toCopy) {
+ return new DoubleArrayList(toCopy);
+ }
+
+ protected static DoubleList emptyDoubleList() {
+ return DoubleArrayList.emptyList();
+ }
+
+ protected static BooleanList newBooleanList() {
+ return new BooleanArrayList();
+ }
+
+ protected static BooleanList newBooleanList(List<Boolean> toCopy) {
+ return new BooleanArrayList(toCopy);
+ }
+
+ protected static BooleanList emptyBooleanList() {
+ return BooleanArrayList.emptyList();
+ }
+
+ protected static <E> ProtobufList<E> newProtobufList() {
+ return new ProtobufArrayList<E>();
+ }
+
+ protected static <E> ProtobufList<E> newProtobufList(List<E> toCopy) {
+ return new ProtobufArrayList<E>(toCopy);
+ }
+
+ protected static <E> ProtobufList<E> emptyProtobufList() {
+ return ProtobufArrayList.emptyList();
+ }
+
+ protected static LazyStringArrayList emptyLazyStringArrayList() {
+ return LazyStringArrayList.emptyList();
+ }
}
diff --git a/java/src/main/java/com/google/protobuf/IntArrayList.java b/java/src/main/java/com/google/protobuf/IntArrayList.java
new file mode 100644
index 00000000..f7609cc9
--- /dev/null
+++ b/java/src/main/java/com/google/protobuf/IntArrayList.java
@@ -0,0 +1,242 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import com.google.protobuf.Internal.IntList;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.RandomAccess;
+
+/**
+ * An implementation of {@link IntList} on top of a primitive array.
+ *
+ * @author dweis@google.com (Daniel Weis)
+ */
+final class IntArrayList extends AbstractProtobufList<Integer> implements IntList, RandomAccess {
+
+ private static final int DEFAULT_CAPACITY = 10;
+
+ private static final IntArrayList EMPTY_LIST = new IntArrayList();
+ static {
+ EMPTY_LIST.makeImmutable();
+ }
+
+ public static IntArrayList emptyList() {
+ return EMPTY_LIST;
+ }
+
+ /**
+ * The backing store for the list.
+ */
+ private int[] array;
+
+ /**
+ * The size of the list distinct from the length of the array. That is, it is the number of
+ * elements set in the list.
+ */
+ private int size;
+
+ /**
+ * Constructs a new mutable {@code IntArrayList}.
+ */
+ IntArrayList() {
+ array = new int[DEFAULT_CAPACITY];
+ size = 0;
+ }
+
+ /**
+ * Constructs a new mutable {@code IntArrayList} containing the same elements as {@code other}.
+ */
+ IntArrayList(List<Integer> other) {
+ if (other instanceof IntArrayList) {
+ IntArrayList list = (IntArrayList) other;
+ array = list.array.clone();
+ size = list.size;
+ } else {
+ size = other.size();
+ array = new int[size];
+ for (int i = 0; i < size; i++) {
+ array[i] = other.get(i);
+ }
+ }
+ }
+
+ @Override
+ public Integer get(int index) {
+ return getInt(index);
+ }
+
+ @Override
+ public int getInt(int index) {
+ ensureIndexInRange(index);
+ return array[index];
+ }
+
+ @Override
+ public int size() {
+ return size;
+ }
+
+ @Override
+ public Integer set(int index, Integer element) {
+ return setInt(index, element);
+ }
+
+ @Override
+ public int setInt(int index, int element) {
+ ensureIsMutable();
+ ensureIndexInRange(index);
+ int previousValue = array[index];
+ array[index] = element;
+ return previousValue;
+ }
+
+ @Override
+ public void add(int index, Integer element) {
+ addInt(index, element);
+ }
+
+ /**
+ * Like {@link #add(Integer)} but more efficient in that it doesn't box the element.
+ */
+ @Override
+ public void addInt(int element) {
+ addInt(size, element);
+ }
+
+ /**
+ * Like {@link #add(int, Integer)} but more efficient in that it doesn't box the element.
+ */
+ private void addInt(int index, int element) {
+ ensureIsMutable();
+ if (index < 0 || index > size) {
+ throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index));
+ }
+
+ if (size < array.length) {
+ // Shift everything over to make room
+ System.arraycopy(array, index, array, index + 1, size - index);
+ } else {
+ // Resize to 1.5x the size
+ int length = ((size * 3) / 2) + 1;
+ int[] newArray = new int[length];
+
+ // Copy the first part directly
+ System.arraycopy(array, 0, newArray, 0, index);
+
+ // Copy the rest shifted over by one to make room
+ System.arraycopy(array, index, newArray, index + 1, size - index);
+ array = newArray;
+ }
+
+ array[index] = element;
+ size++;
+ modCount++;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends Integer> collection) {
+ ensureIsMutable();
+
+ if (collection == null) {
+ throw new NullPointerException();
+ }
+
+ // We specialize when adding another IntArrayList to avoid boxing elements.
+ if (!(collection instanceof IntArrayList)) {
+ return super.addAll(collection);
+ }
+
+ IntArrayList list = (IntArrayList) collection;
+ if (list.size == 0) {
+ return false;
+ }
+
+ int overflow = Integer.MAX_VALUE - size;
+ if (overflow < list.size) {
+ // We can't actually represent a list this large.
+ throw new OutOfMemoryError();
+ }
+
+ int newSize = size + list.size;
+ if (newSize > array.length) {
+ array = Arrays.copyOf(array, newSize);
+ }
+
+ System.arraycopy(list.array, 0, array, size, list.size);
+ size = newSize;
+ modCount++;
+ return true;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ ensureIsMutable();
+ for (int i = 0; i < size; i++) {
+ if (o.equals(array[i])) {
+ System.arraycopy(array, i + 1, array, i, size - i);
+ size--;
+ modCount++;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Integer remove(int index) {
+ ensureIsMutable();
+ ensureIndexInRange(index);
+ int value = array[index];
+ System.arraycopy(array, index + 1, array, index, size - index);
+ size--;
+ modCount++;
+ return value;
+ }
+
+ /**
+ * Ensures that the provided {@code index} is within the range of {@code [0, size]}. Throws an
+ * {@link IndexOutOfBoundsException} if it is not.
+ *
+ * @param index the index to verify is in range
+ */
+ private void ensureIndexInRange(int index) {
+ if (index < 0 || index >= size) {
+ throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index));
+ }
+ }
+
+ private String makeOutOfBoundsExceptionMessage(int index) {
+ return "Index:" + index + ", Size:" + size;
+ }
+}
diff --git a/java/src/main/java/com/google/protobuf/Internal.java b/java/src/main/java/com/google/protobuf/Internal.java
index 74bf44c0..20054b79 100644
--- a/java/src/main/java/com/google/protobuf/Internal.java
+++ b/java/src/main/java/com/google/protobuf/Internal.java
@@ -30,6 +30,7 @@
package com.google.protobuf;
+import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.AbstractList;
@@ -532,4 +533,132 @@ public class Internal {
}
}
}
+
+ /**
+ * Extends {@link List} to add the capability to make the list immutable and inspect if it is
+ * modifiable.
+ */
+ public static interface ProtobufList<E> extends List<E> {
+
+ /**
+ * Makes this list immutable. All subsequent modifications will throw an
+ * {@link UnsupportedOperationException}.
+ */
+ void makeImmutable();
+
+ /**
+ * Returns whether this list can be modified via the publicly accessible {@link List} methods.
+ */
+ boolean isModifiable();
+ }
+
+ /**
+ * A {@link java.util.List} implementation that avoids boxing the elements into Integers if
+ * possible. Does not support null elements.
+ */
+ public static interface IntList extends ProtobufList<Integer> {
+
+ /**
+ * Like {@link #get(int)} but more efficient in that it doesn't box the returned value.
+ */
+ int getInt(int index);
+
+ /**
+ * Like {@link #add(Integer)} but more efficient in that it doesn't box the element.
+ */
+ void addInt(int element);
+
+ /**
+ * Like {@link #set(int, Integer)} but more efficient in that it doesn't box the element.
+ */
+ int setInt(int index, int element);
+ }
+
+ /**
+ * A {@link java.util.List} implementation that avoids boxing the elements into Booleans if
+ * possible. Does not support null elements.
+ */
+ public static interface BooleanList extends ProtobufList<Boolean> {
+
+ /**
+ * Like {@link #get(int)} but more efficient in that it doesn't box the returned value.
+ */
+ boolean getBoolean(int index);
+
+ /**
+ * Like {@link #add(Boolean)} but more efficient in that it doesn't box the element.
+ */
+ void addBoolean(boolean element);
+
+ /**
+ * Like {@link #set(int, Boolean)} but more efficient in that it doesn't box the element.
+ */
+ boolean setBoolean(int index, boolean element);
+ }
+
+ /**
+ * A {@link java.util.List} implementation that avoids boxing the elements into Longs if
+ * possible. Does not support null elements.
+ */
+ public static interface LongList extends ProtobufList<Long> {
+
+ /**
+ * Like {@link #get(int)} but more efficient in that it doesn't box the returned value.
+ */
+ long getLong(int index);
+
+ /**
+ * Like {@link #add(Long)} but more efficient in that it doesn't box the element.
+ */
+ void addLong(long element);
+
+ /**
+ * Like {@link #set(int, Long)} but more efficient in that it doesn't box the element.
+ */
+ long setLong(int index, long element);
+ }
+
+ /**
+ * A {@link java.util.List} implementation that avoids boxing the elements into Doubles if
+ * possible. Does not support null elements.
+ */
+ public static interface DoubleList extends ProtobufList<Double> {
+
+ /**
+ * Like {@link #get(int)} but more efficient in that it doesn't box the returned value.
+ */
+ double getDouble(int index);
+
+ /**
+ * Like {@link #add(Double)} but more efficient in that it doesn't box the element.
+ */
+ void addDouble(double element);
+
+ /**
+ * Like {@link #set(int, Double)} but more efficient in that it doesn't box the element.
+ */
+ double setDouble(int index, double element);
+ }
+
+ /**
+ * A {@link java.util.List} implementation that avoids boxing the elements into Floats if
+ * possible. Does not support null elements.
+ */
+ public static interface FloatList extends ProtobufList<Float> {
+
+ /**
+ * Like {@link #get(int)} but more efficient in that it doesn't box the returned value.
+ */
+ float getFloat(int index);
+
+ /**
+ * Like {@link #add(Float)} but more efficient in that it doesn't box the element.
+ */
+ void addFloat(float element);
+
+ /**
+ * Like {@link #set(int, Float)} but more efficient in that it doesn't box the element.
+ */
+ float setFloat(int index, float element);
+ }
}
diff --git a/java/src/main/java/com/google/protobuf/LazyStringArrayList.java b/java/src/main/java/com/google/protobuf/LazyStringArrayList.java
index 2d40a51f..a2997e1c 100644
--- a/java/src/main/java/com/google/protobuf/LazyStringArrayList.java
+++ b/java/src/main/java/com/google/protobuf/LazyStringArrayList.java
@@ -62,11 +62,20 @@ import java.util.RandomAccess;
*
* @author jonp@google.com (Jon Perlow)
*/
-public class LazyStringArrayList extends AbstractList<String>
+public class LazyStringArrayList extends AbstractProtobufList<String>
implements LazyStringList, RandomAccess {
+
+ private static final LazyStringArrayList EMPTY_LIST = new LazyStringArrayList();
+ static {
+ EMPTY_LIST.makeImmutable();
+ }
+
+ static LazyStringArrayList emptyList() {
+ return EMPTY_LIST;
+ }
- public static final LazyStringList EMPTY =
- new LazyStringArrayList().getUnmodifiableView();
+ // For compatibility with older runtimes.
+ public static final LazyStringList EMPTY = EMPTY_LIST;
private final List<Object> list;
@@ -116,12 +125,26 @@ public class LazyStringArrayList extends AbstractList<String>
@Override
public String set(int index, String s) {
+ ensureIsMutable();
Object o = list.set(index, s);
return asString(o);
}
@Override
public void add(int index, String element) {
+ ensureIsMutable();
+ list.add(index, element);
+ modCount++;
+ }
+
+ private void add(int index, ByteString element) {
+ ensureIsMutable();
+ list.add(index, element);
+ modCount++;
+ }
+
+ private void add(int index, byte[] element) {
+ ensureIsMutable();
list.add(index, element);
modCount++;
}
@@ -137,6 +160,7 @@ public class LazyStringArrayList extends AbstractList<String>
@Override
public boolean addAll(int index, Collection<? extends String> c) {
+ ensureIsMutable();
// When copying from another LazyStringList, directly copy the underlying
// elements rather than forcing each element to be decoded to a String.
Collection<?> collection = c instanceof LazyStringList
@@ -148,6 +172,7 @@ public class LazyStringArrayList extends AbstractList<String>
// @Override
public boolean addAllByteString(Collection<? extends ByteString> values) {
+ ensureIsMutable();
boolean ret = list.addAll(values);
modCount++;
return ret;
@@ -155,6 +180,7 @@ public class LazyStringArrayList extends AbstractList<String>
// @Override
public boolean addAllByteArray(Collection<byte[]> c) {
+ ensureIsMutable();
boolean ret = list.addAll(c);
modCount++;
return ret;
@@ -162,6 +188,7 @@ public class LazyStringArrayList extends AbstractList<String>
@Override
public String remove(int index) {
+ ensureIsMutable();
Object o = list.remove(index);
modCount++;
return asString(o);
@@ -169,18 +196,21 @@ public class LazyStringArrayList extends AbstractList<String>
@Override
public void clear() {
+ ensureIsMutable();
list.clear();
modCount++;
}
// @Override
public void add(ByteString element) {
+ ensureIsMutable();
list.add(element);
modCount++;
}
// @Override
public void add(byte[] element) {
+ ensureIsMutable();
list.add(element);
modCount++;
}
@@ -207,14 +237,23 @@ public class LazyStringArrayList extends AbstractList<String>
// @Override
public void set(int index, ByteString s) {
- list.set(index, s);
+ setAndReturn(index, s);
+ }
+
+ private Object setAndReturn(int index, ByteString s) {
+ ensureIsMutable();
+ return list.set(index, s);
}
// @Override
public void set(int index, byte[] s) {
- list.set(index, s);
+ setAndReturn(index, s);
+ }
+
+ private Object setAndReturn(int index, byte[] s) {
+ ensureIsMutable();
+ return list.set(index, s);
}
-
private static String asString(Object o) {
if (o instanceof String) {
@@ -253,6 +292,7 @@ public class LazyStringArrayList extends AbstractList<String>
// @Override
public void mergeFrom(LazyStringList other) {
+ ensureIsMutable();
for (Object o : other.getUnderlyingElements()) {
if (o instanceof byte[]) {
byte[] b = (byte[]) o;
@@ -267,20 +307,15 @@ public class LazyStringArrayList extends AbstractList<String>
private static class ByteArrayListView extends AbstractList<byte[]>
implements RandomAccess {
- private final List<Object> list;
+ private final LazyStringArrayList list;
- ByteArrayListView(List<Object> list) {
+ ByteArrayListView(LazyStringArrayList list) {
this.list = list;
}
@Override
public byte[] get(int index) {
- Object o = list.get(index);
- byte[] b = asByteArray(o);
- if (b != o) {
- list.set(index, b);
- }
- return b;
+ return list.getByteArray(index);
}
@Override
@@ -290,7 +325,7 @@ public class LazyStringArrayList extends AbstractList<String>
@Override
public byte[] set(int index, byte[] s) {
- Object o = list.set(index, s);
+ Object o = list.setAndReturn(index, s);
modCount++;
return asByteArray(o);
}
@@ -311,25 +346,20 @@ public class LazyStringArrayList extends AbstractList<String>
// @Override
public List<byte[]> asByteArrayList() {
- return new ByteArrayListView(list);
+ return new ByteArrayListView(this);
}
private static class ByteStringListView extends AbstractList<ByteString>
implements RandomAccess {
- private final List<Object> list;
+ private final LazyStringArrayList list;
- ByteStringListView(List<Object> list) {
+ ByteStringListView(LazyStringArrayList list) {
this.list = list;
}
@Override
public ByteString get(int index) {
- Object o = list.get(index);
- ByteString b = asByteString(o);
- if (b != o) {
- list.set(index, b);
- }
- return b;
+ return list.getByteString(index);
}
@Override
@@ -339,7 +369,7 @@ public class LazyStringArrayList extends AbstractList<String>
@Override
public ByteString set(int index, ByteString s) {
- Object o = list.set(index, s);
+ Object o = list.setAndReturn(index, s);
modCount++;
return asByteString(o);
}
@@ -360,12 +390,15 @@ public class LazyStringArrayList extends AbstractList<String>
// @Override
public List<ByteString> asByteStringList() {
- return new ByteStringListView(list);
+ return new ByteStringListView(this);
}
// @Override
public LazyStringList getUnmodifiableView() {
- return new UnmodifiableLazyStringList(this);
+ if (isModifiable()) {
+ return new UnmodifiableLazyStringList(this);
+ }
+ return this;
}
}
diff --git a/java/src/main/java/com/google/protobuf/LongArrayList.java b/java/src/main/java/com/google/protobuf/LongArrayList.java
new file mode 100644
index 00000000..298617ff
--- /dev/null
+++ b/java/src/main/java/com/google/protobuf/LongArrayList.java
@@ -0,0 +1,242 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import com.google.protobuf.Internal.LongList;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.RandomAccess;
+
+/**
+ * An implementation of {@link LongList} on top of a primitive array.
+ *
+ * @author dweis@google.com (Daniel Weis)
+ */
+final class LongArrayList extends AbstractProtobufList<Long> implements LongList, RandomAccess {
+
+ private static final int DEFAULT_CAPACITY = 10;
+
+ private static final LongArrayList EMPTY_LIST = new LongArrayList();
+ static {
+ EMPTY_LIST.makeImmutable();
+ }
+
+ public static LongArrayList emptyList() {
+ return EMPTY_LIST;
+ }
+
+ /**
+ * The backing store for the list.
+ */
+ private long[] array;
+
+ /**
+ * The size of the list distinct from the length of the array. That is, it is the number of
+ * elements set in the list.
+ */
+ private int size;
+
+ /**
+ * Constructs a new mutable {@code LongArrayList}.
+ */
+ LongArrayList() {
+ array = new long[DEFAULT_CAPACITY];
+ size = 0;
+ }
+
+ /**
+ * Constructs a new mutable {@code LongArrayList} containing the same elements as {@code other}.
+ */
+ LongArrayList(List<Long> other) {
+ if (other instanceof LongArrayList) {
+ LongArrayList list = (LongArrayList) other;
+ array = list.array.clone();
+ size = list.size;
+ } else {
+ size = other.size();
+ array = new long[size];
+ for (int i = 0; i < size; i++) {
+ array[i] = other.get(i);
+ }
+ }
+ }
+
+ @Override
+ public Long get(int index) {
+ return getLong(index);
+ }
+
+ @Override
+ public long getLong(int index) {
+ ensureIndexInRange(index);
+ return array[index];
+ }
+
+ @Override
+ public int size() {
+ return size;
+ }
+
+ @Override
+ public Long set(int index, Long element) {
+ return setLong(index, element);
+ }
+
+ @Override
+ public long setLong(int index, long element) {
+ ensureIsMutable();
+ ensureIndexInRange(index);
+ long previousValue = array[index];
+ array[index] = element;
+ return previousValue;
+ }
+
+ @Override
+ public void add(int index, Long element) {
+ addLong(index, element);
+ }
+
+ /**
+ * Like {@link #add(Long)} but more efficient in that it doesn't box the element.
+ */
+ @Override
+ public void addLong(long element) {
+ addLong(size, element);
+ }
+
+ /**
+ * Like {@link #add(int, Long)} but more efficient in that it doesn't box the element.
+ */
+ private void addLong(int index, long element) {
+ ensureIsMutable();
+ if (index < 0 || index > size) {
+ throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index));
+ }
+
+ if (size < array.length) {
+ // Shift everything over to make room
+ System.arraycopy(array, index, array, index + 1, size - index);
+ } else {
+ // Resize to 1.5x the size
+ int length = ((size * 3) / 2) + 1;
+ long[] newArray = new long[length];
+
+ // Copy the first part directly
+ System.arraycopy(array, 0, newArray, 0, index);
+
+ // Copy the rest shifted over by one to make room
+ System.arraycopy(array, index, newArray, index + 1, size - index);
+ array = newArray;
+ }
+
+ array[index] = element;
+ size++;
+ modCount++;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends Long> collection) {
+ ensureIsMutable();
+
+ if (collection == null) {
+ throw new NullPointerException();
+ }
+
+ // We specialize when adding another LongArrayList to avoid boxing elements.
+ if (!(collection instanceof LongArrayList)) {
+ return super.addAll(collection);
+ }
+
+ LongArrayList list = (LongArrayList) collection;
+ if (list.size == 0) {
+ return false;
+ }
+
+ int overflow = Integer.MAX_VALUE - size;
+ if (overflow < list.size) {
+ // We can't actually represent a list this large.
+ throw new OutOfMemoryError();
+ }
+
+ int newSize = size + list.size;
+ if (newSize > array.length) {
+ array = Arrays.copyOf(array, newSize);
+ }
+
+ System.arraycopy(list.array, 0, array, size, list.size);
+ size = newSize;
+ modCount++;
+ return true;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ ensureIsMutable();
+ for (int i = 0; i < size; i++) {
+ if (o.equals(array[i])) {
+ System.arraycopy(array, i + 1, array, i, size - i);
+ size--;
+ modCount++;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public Long remove(int index) {
+ ensureIsMutable();
+ ensureIndexInRange(index);
+ long value = array[index];
+ System.arraycopy(array, index + 1, array, index, size - index);
+ size--;
+ modCount++;
+ return value;
+ }
+
+ /**
+ * Ensures that the provided {@code index} is within the range of {@code [0, size]}. Throws an
+ * {@link IndexOutOfBoundsException} if it is not.
+ *
+ * @param index the index to verify is in range
+ */
+ private void ensureIndexInRange(int index) {
+ if (index < 0 || index >= size) {
+ throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index));
+ }
+ }
+
+ private String makeOutOfBoundsExceptionMessage(int index) {
+ return "Index:" + index + ", Size:" + size;
+ }
+}
diff --git a/java/src/main/java/com/google/protobuf/MapField.java b/java/src/main/java/com/google/protobuf/MapField.java
index 82906d37..b290993c 100644
--- a/java/src/main/java/com/google/protobuf/MapField.java
+++ b/java/src/main/java/com/google/protobuf/MapField.java
@@ -30,9 +30,11 @@
package com.google.protobuf;
+import com.google.protobuf.MapFieldLite.MutatabilityAwareMap;
+
import java.util.ArrayList;
import java.util.Collections;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -51,7 +53,7 @@ import java.util.Map;
* and getList() concurrently in multiple threads. If write-access is needed,
* all access must be synchronized.
*/
-public class MapField<K, V> {
+public class MapField<K, V> implements MutabilityOracle {
/**
* Indicates where the data of this map field is currently stored.
*
@@ -72,8 +74,9 @@ public class MapField<K, V> {
*/
private enum StorageMode {MAP, LIST, BOTH}
+ private volatile boolean isMutable;
private volatile StorageMode mode;
- private Map<K, V> mapData;
+ private MutatabilityAwareMap<K, V> mapData;
private List<Message> listData;
// Convert between a map entry Message and a key-value pair.
@@ -110,20 +113,19 @@ public class MapField<K, V> {
private MapField(
Converter<K, V> converter,
StorageMode mode,
- Map<K, V> mapData,
- List<Message> listData) {
+ Map<K, V> mapData) {
this.converter = converter;
+ this.isMutable = true;
this.mode = mode;
- this.mapData = mapData;
- this.listData = listData;
+ this.mapData = new MutatabilityAwareMap<K, V>(this, mapData);
+ this.listData = null;
}
private MapField(
MapEntry<K, V> defaultEntry,
StorageMode mode,
- Map<K, V> mapData,
- List<Message> listData) {
- this(new ImmutableMessageConverter<K, V>(defaultEntry), mode, mapData, listData);
+ Map<K, V> mapData) {
+ this(new ImmutableMessageConverter<K, V>(defaultEntry), mode, mapData);
}
@@ -131,14 +133,14 @@ public class MapField<K, V> {
public static <K, V> MapField<K, V> emptyMapField(
MapEntry<K, V> defaultEntry) {
return new MapField<K, V>(
- defaultEntry, StorageMode.MAP, Collections.<K, V>emptyMap(), null);
+ defaultEntry, StorageMode.MAP, Collections.<K, V>emptyMap());
}
/** Creates a new mutable empty MapField. */
public static <K, V> MapField<K, V> newMapField(MapEntry<K, V> defaultEntry) {
return new MapField<K, V>(
- defaultEntry, StorageMode.MAP, new HashMap<K, V>(), null);
+ defaultEntry, StorageMode.MAP, new LinkedHashMap<K, V>());
}
@@ -151,7 +153,7 @@ public class MapField<K, V> {
converter.convertMessageToKeyAndValue(message, map);
}
- private List<Message> convertMapToList(Map<K, V> mapData) {
+ private List<Message> convertMapToList(MutatabilityAwareMap<K, V> mapData) {
List<Message> listData = new ArrayList<Message>();
for (Map.Entry<K, V> entry : mapData.entrySet()) {
listData.add(
@@ -161,12 +163,12 @@ public class MapField<K, V> {
return listData;
}
- private Map<K, V> convertListToMap(List<Message> listData) {
- Map<K, V> mapData = new HashMap<K, V>();
+ private MutatabilityAwareMap<K, V> convertListToMap(List<Message> listData) {
+ Map<K, V> mapData = new LinkedHashMap<K, V>();
for (Message item : listData) {
convertMessageToKeyAndValue(item, mapData);
}
- return mapData;
+ return new MutatabilityAwareMap<K, V>(this, mapData);
}
/** Returns the content of this MapField as a read-only Map. */
@@ -199,7 +201,7 @@ public class MapField<K, V> {
}
public void clear() {
- mapData = new HashMap<K, V>();
+ mapData = new MutatabilityAwareMap<K, V>(this, new LinkedHashMap<K, V>());
mode = StorageMode.MAP;
}
@@ -221,7 +223,7 @@ public class MapField<K, V> {
/** Returns a deep copy of this MapField. */
public MapField<K, V> copy() {
return new MapField<K, V>(
- converter, StorageMode.MAP, MapFieldLite.copy(getMap()), null);
+ converter, StorageMode.MAP, MapFieldLite.copy(getMap()));
}
/** Gets the content of this MapField as a read-only List. */
@@ -256,4 +258,29 @@ public class MapField<K, V> {
Message getMapEntryMessageDefaultInstance() {
return converter.getMessageDefaultInstance();
}
+
+ /**
+ * Makes this list immutable. All subsequent modifications will throw an
+ * {@link UnsupportedOperationException}.
+ */
+ public void makeImmutable() {
+ isMutable = false;
+ }
+
+ /**
+ * Returns whether this field can be modified.
+ */
+ public boolean isMutable() {
+ return isMutable;
+ }
+
+ /* (non-Javadoc)
+ * @see com.google.protobuf.MutabilityOracle#ensureMutable()
+ */
+ @Override
+ public void ensureMutable() {
+ if (!isMutable()) {
+ throw new UnsupportedOperationException();
+ }
+ }
}
diff --git a/java/src/main/java/com/google/protobuf/MapFieldLite.java b/java/src/main/java/com/google/protobuf/MapFieldLite.java
index 7f94c690..c17fa7b1 100644
--- a/java/src/main/java/com/google/protobuf/MapFieldLite.java
+++ b/java/src/main/java/com/google/protobuf/MapFieldLite.java
@@ -31,9 +31,12 @@
package com.google.protobuf;
import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
-import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.Set;
/**
* Internal representation of map fields in generated lite-runtime messages.
@@ -41,16 +44,21 @@ import java.util.Map;
* This class is a protobuf implementation detail. Users shouldn't use this
* class directly.
*/
-public class MapFieldLite<K, V> {
- private Map<K, V> mapData;
+public class MapFieldLite<K, V> implements MutabilityOracle {
+ private MutatabilityAwareMap<K, V> mapData;
+ private boolean isMutable;
private MapFieldLite(Map<K, V> mapData) {
- this.mapData = mapData;
+ this.mapData = new MutatabilityAwareMap<K, V>(this, mapData);
+ this.isMutable = true;
}
@SuppressWarnings({"rawtypes", "unchecked"})
private static final MapFieldLite EMPTY_MAP_FIELD =
new MapFieldLite(Collections.emptyMap());
+ static {
+ EMPTY_MAP_FIELD.makeImmutable();
+ }
/** Returns an singleton immutable empty MapFieldLite instance. */
@SuppressWarnings({"unchecked", "cast"})
@@ -60,7 +68,7 @@ public class MapFieldLite<K, V> {
/** Creates a new MapFieldLite instance. */
public static <K, V> MapFieldLite<K, V> newMapField() {
- return new MapFieldLite<K, V>(new HashMap<K, V>());
+ return new MapFieldLite<K, V>(new LinkedHashMap<K, V>());
}
/** Gets the content of this MapField as a read-only Map. */
@@ -168,7 +176,7 @@ public class MapFieldLite<K, V> {
*/
@SuppressWarnings("unchecked")
static <K, V> Map<K, V> copy(Map<K, V> map) {
- Map<K, V> result = new HashMap<K, V>();
+ Map<K, V> result = new LinkedHashMap<K, V>();
for (Map.Entry<K, V> entry : map.entrySet()) {
result.put(entry.getKey(), (V) copy(entry.getValue()));
}
@@ -179,4 +187,360 @@ public class MapFieldLite<K, V> {
public MapFieldLite<K, V> copy() {
return new MapFieldLite<K, V>(copy(mapData));
}
+
+ /**
+ * Makes this field immutable. All subsequent modifications will throw an
+ * {@link UnsupportedOperationException}.
+ */
+ public void makeImmutable() {
+ isMutable = false;
+ }
+
+ /**
+ * Returns whether this field can be modified.
+ */
+ public boolean isMutable() {
+ return isMutable;
+ }
+
+ @Override
+ public void ensureMutable() {
+ if (!isMutable()) {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ /**
+ * An internal map that checks for mutability before delegating.
+ */
+ static class MutatabilityAwareMap<K, V> implements Map<K, V> {
+ private final MutabilityOracle mutabilityOracle;
+ private final Map<K, V> delegate;
+
+ MutatabilityAwareMap(MutabilityOracle mutabilityOracle, Map<K, V> delegate) {
+ this.mutabilityOracle = mutabilityOracle;
+ this.delegate = delegate;
+ }
+
+ @Override
+ public int size() {
+ return delegate.size();
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return delegate.isEmpty();
+ }
+
+ @Override
+ public boolean containsKey(Object key) {
+ return delegate.containsKey(key);
+ }
+
+ @Override
+ public boolean containsValue(Object value) {
+ return delegate.containsValue(value);
+ }
+
+ @Override
+ public V get(Object key) {
+ return delegate.get(key);
+ }
+
+ @Override
+ public V put(K key, V value) {
+ mutabilityOracle.ensureMutable();
+ return delegate.put(key, value);
+ }
+
+ @Override
+ public V remove(Object key) {
+ mutabilityOracle.ensureMutable();
+ return delegate.remove(key);
+ }
+
+ @Override
+ public void putAll(Map<? extends K, ? extends V> m) {
+ mutabilityOracle.ensureMutable();
+ delegate.putAll(m);
+ }
+
+ @Override
+ public void clear() {
+ mutabilityOracle.ensureMutable();
+ delegate.clear();
+ }
+
+ @Override
+ public Set<K> keySet() {
+ return new MutatabilityAwareSet<K>(mutabilityOracle, delegate.keySet());
+ }
+
+ @Override
+ public Collection<V> values() {
+ return new MutatabilityAwareCollection<V>(mutabilityOracle, delegate.values());
+ }
+
+ @Override
+ public Set<java.util.Map.Entry<K, V>> entrySet() {
+ return new MutatabilityAwareSet<Entry<K, V>>(mutabilityOracle, delegate.entrySet());
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return delegate.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return delegate.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return delegate.toString();
+ }
+ }
+
+ /**
+ * An internal collection that checks for mutability before delegating.
+ */
+ private static class MutatabilityAwareCollection<E> implements Collection<E> {
+ private final MutabilityOracle mutabilityOracle;
+ private final Collection<E> delegate;
+
+ MutatabilityAwareCollection(MutabilityOracle mutabilityOracle, Collection<E> delegate) {
+ this.mutabilityOracle = mutabilityOracle;
+ this.delegate = delegate;
+ }
+
+ @Override
+ public int size() {
+ return delegate.size();
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return delegate.isEmpty();
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return delegate.contains(o);
+ }
+
+ @Override
+ public Iterator<E> iterator() {
+ return new MutatabilityAwareIterator<E>(mutabilityOracle, delegate.iterator());
+ }
+
+ @Override
+ public Object[] toArray() {
+ return delegate.toArray();
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return delegate.toArray(a);
+ }
+
+ @Override
+ public boolean add(E e) {
+ // Unsupported operation in the delegate.
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ mutabilityOracle.ensureMutable();
+ return delegate.remove(o);
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return delegate.containsAll(c);
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends E> c) {
+ // Unsupported operation in the delegate.
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ mutabilityOracle.ensureMutable();
+ return delegate.removeAll(c);
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ mutabilityOracle.ensureMutable();
+ return delegate.retainAll(c);
+ }
+
+ @Override
+ public void clear() {
+ mutabilityOracle.ensureMutable();
+ delegate.clear();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return delegate.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return delegate.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return delegate.toString();
+ }
+ }
+
+ /**
+ * An internal set that checks for mutability before delegating.
+ */
+ private static class MutatabilityAwareSet<E> implements Set<E> {
+ private final MutabilityOracle mutabilityOracle;
+ private final Set<E> delegate;
+
+ MutatabilityAwareSet(MutabilityOracle mutabilityOracle, Set<E> delegate) {
+ this.mutabilityOracle = mutabilityOracle;
+ this.delegate = delegate;
+ }
+
+ @Override
+ public int size() {
+ return delegate.size();
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return delegate.isEmpty();
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return delegate.contains(o);
+ }
+
+ @Override
+ public Iterator<E> iterator() {
+ return new MutatabilityAwareIterator<E>(mutabilityOracle, delegate.iterator());
+ }
+
+ @Override
+ public Object[] toArray() {
+ return delegate.toArray();
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return delegate.toArray(a);
+ }
+
+ @Override
+ public boolean add(E e) {
+ mutabilityOracle.ensureMutable();
+ return delegate.add(e);
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ mutabilityOracle.ensureMutable();
+ return delegate.remove(o);
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return delegate.containsAll(c);
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends E> c) {
+ mutabilityOracle.ensureMutable();
+ return delegate.addAll(c);
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ mutabilityOracle.ensureMutable();
+ return delegate.retainAll(c);
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ mutabilityOracle.ensureMutable();
+ return delegate.removeAll(c);
+ }
+
+ @Override
+ public void clear() {
+ mutabilityOracle.ensureMutable();
+ delegate.clear();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return delegate.equals(o);
+ }
+
+ @Override
+ public int hashCode() {
+ return delegate.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return delegate.toString();
+ }
+ }
+
+ /**
+ * An internal iterator that checks for mutability before delegating.
+ */
+ private static class MutatabilityAwareIterator<E> implements Iterator<E> {
+ private final MutabilityOracle mutabilityOracle;
+ private final Iterator<E> delegate;
+
+ MutatabilityAwareIterator(MutabilityOracle mutabilityOracle, Iterator<E> delegate) {
+ this.mutabilityOracle = mutabilityOracle;
+ this.delegate = delegate;
+ }
+
+ @Override
+ public boolean hasNext() {
+ return delegate.hasNext();
+ }
+
+ @Override
+ public E next() {
+ return delegate.next();
+ }
+
+ @Override
+ public void remove() {
+ mutabilityOracle.ensureMutable();
+ delegate.remove();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return delegate.equals(obj);
+ }
+
+ @Override
+ public int hashCode() {
+ return delegate.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return delegate.toString();
+ }
+ }
}
diff --git a/java/src/main/java/com/google/protobuf/MutabilityOracle.java b/java/src/main/java/com/google/protobuf/MutabilityOracle.java
new file mode 100644
index 00000000..82b723c9
--- /dev/null
+++ b/java/src/main/java/com/google/protobuf/MutabilityOracle.java
@@ -0,0 +1,48 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+/**
+ * Verifies that an object is mutable, throwing if not.
+ */
+interface MutabilityOracle {
+ static final MutabilityOracle IMMUTABLE = new MutabilityOracle() {
+ @Override
+ public void ensureMutable() {
+ throw new UnsupportedOperationException();
+ }
+ };
+
+ /**
+ * Throws an {@link UnsupportedOperationException} if not mutable.
+ */
+ void ensureMutable();
+}
diff --git a/java/src/main/java/com/google/protobuf/ProtobufArrayList.java b/java/src/main/java/com/google/protobuf/ProtobufArrayList.java
new file mode 100644
index 00000000..759368c9
--- /dev/null
+++ b/java/src/main/java/com/google/protobuf/ProtobufArrayList.java
@@ -0,0 +1,95 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import com.google.protobuf.Internal.ProtobufList;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Implements {@link ProtobufList} for non-primitive and {@link String} types.
+ */
+class ProtobufArrayList<E> extends AbstractProtobufList<E> {
+
+ private static final ProtobufArrayList<Object> EMPTY_LIST = new ProtobufArrayList<Object>();
+ static {
+ EMPTY_LIST.makeImmutable();
+ }
+
+ @SuppressWarnings("unchecked") // Guaranteed safe by runtime.
+ public static <E> ProtobufArrayList<E> emptyList() {
+ return (ProtobufArrayList<E>) EMPTY_LIST;
+ }
+
+ private final List<E> list;
+
+ ProtobufArrayList() {
+ list = new ArrayList<E>();
+ }
+
+ ProtobufArrayList(List<E> toCopy) {
+ list = new ArrayList<E>(toCopy);
+ }
+
+ @Override
+ public void add(int index, E element) {
+ ensureIsMutable();
+ list.add(index, element);
+ modCount++;
+ }
+
+ @Override
+ public E get(int index) {
+ return list.get(index);
+ }
+
+ @Override
+ public E remove(int index) {
+ ensureIsMutable();
+ E toReturn = list.remove(index);
+ modCount++;
+ return toReturn;
+ }
+
+ @Override
+ public E set(int index, E element) {
+ ensureIsMutable();
+ E toReturn = list.set(index, element);
+ modCount++;
+ return toReturn;
+ }
+
+ @Override
+ public int size() {
+ return list.size();
+ }
+}
diff --git a/java/src/main/java/com/google/protobuf/TextFormat.java b/java/src/main/java/com/google/protobuf/TextFormat.java
index dd2b4600..a79ce559 100644
--- a/java/src/main/java/com/google/protobuf/TextFormat.java
+++ b/java/src/main/java/com/google/protobuf/TextFormat.java
@@ -1725,7 +1725,7 @@ public final class TextFormat {
* {@link #escapeBytes(ByteString)}. Two-digit hex escapes (starting with
* "\x") are also recognized.
*/
- static ByteString unescapeBytes(final CharSequence charString)
+ public static ByteString unescapeBytes(final CharSequence charString)
throws InvalidEscapeSequenceException {
// First convert the Java character sequence to UTF-8 bytes.
ByteString input = ByteString.copyFromUtf8(charString.toString());
@@ -1808,7 +1808,7 @@ public final class TextFormat {
* Thrown by {@link TextFormat#unescapeBytes} and
* {@link TextFormat#unescapeText} when an invalid escape sequence is seen.
*/
- static class InvalidEscapeSequenceException extends IOException {
+ public static class InvalidEscapeSequenceException extends IOException {
private static final long serialVersionUID = -8164033650142593304L;
InvalidEscapeSequenceException(final String description) {
diff --git a/java/src/test/java/com/google/protobuf/BooleanArrayListTest.java b/java/src/test/java/com/google/protobuf/BooleanArrayListTest.java
new file mode 100644
index 00000000..df89c263
--- /dev/null
+++ b/java/src/test/java/com/google/protobuf/BooleanArrayListTest.java
@@ -0,0 +1,473 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import static java.util.Arrays.asList;
+
+import junit.framework.TestCase;
+
+import java.util.Collections;
+import java.util.ConcurrentModificationException;
+import java.util.Iterator;
+
+/**
+ * Tests for {@link BooleanArrayList}.
+ *
+ * @author dweis@google.com (Daniel Weis)
+ */
+public class BooleanArrayListTest extends TestCase {
+
+ private static final BooleanArrayList UNARY_LIST = newImmutableBooleanArrayList(true);
+ private static final BooleanArrayList TERTIARY_LIST =
+ newImmutableBooleanArrayList(true, true, false);
+
+ private BooleanArrayList list;
+
+ @Override
+ protected void setUp() throws Exception {
+ list = new BooleanArrayList();
+ }
+
+ public void testEmptyListReturnsSameInstance() {
+ assertSame(BooleanArrayList.emptyList(), BooleanArrayList.emptyList());
+ }
+
+ public void testEmptyListIsImmutable() {
+ assertImmutable(BooleanArrayList.emptyList());
+ }
+
+ public void testMakeImmutable() {
+ list.addBoolean(true);
+ list.addBoolean(false);
+ list.addBoolean(true);
+ list.addBoolean(true);
+ list.makeImmutable();
+ assertImmutable(list);
+ }
+
+ public void testCopyConstructor() {
+ BooleanArrayList copy = new BooleanArrayList(TERTIARY_LIST);
+ assertEquals(TERTIARY_LIST, copy);
+
+ copy = new BooleanArrayList(BooleanArrayList.emptyList());
+ assertEquals(BooleanArrayList.emptyList(), copy);
+
+ copy = new BooleanArrayList(asList(false, false, true));
+ assertEquals(asList(false, false, true), copy);
+
+ copy = new BooleanArrayList(Collections.<Boolean>emptyList());
+ assertEquals(BooleanArrayList.emptyList(), copy);
+ }
+
+ public void testModificationWithIteration() {
+ list.addAll(asList(true, false, false, true));
+ Iterator<Boolean> iterator = list.iterator();
+ assertEquals(4, list.size());
+ assertEquals(true, (boolean) list.get(0));
+ assertEquals(true, (boolean) iterator.next());
+ list.set(0, true);
+ assertEquals(false, (boolean) iterator.next());
+
+ list.remove(0);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+
+ iterator = list.iterator();
+ list.add(0, false);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+ }
+
+ public void testGet() {
+ assertEquals(true, (boolean) TERTIARY_LIST.get(0));
+ assertEquals(true, (boolean) TERTIARY_LIST.get(1));
+ assertEquals(false, (boolean) TERTIARY_LIST.get(2));
+
+ try {
+ TERTIARY_LIST.get(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ TERTIARY_LIST.get(3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testGetInt() {
+ assertEquals(true, TERTIARY_LIST.getBoolean(0));
+ assertEquals(true, TERTIARY_LIST.getBoolean(1));
+ assertEquals(false, TERTIARY_LIST.getBoolean(2));
+
+ try {
+ TERTIARY_LIST.get(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ TERTIARY_LIST.get(3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testSize() {
+ assertEquals(0, BooleanArrayList.emptyList().size());
+ assertEquals(1, UNARY_LIST.size());
+ assertEquals(3, TERTIARY_LIST.size());
+
+ list.addBoolean(true);
+ list.addBoolean(false);
+ list.addBoolean(false);
+ list.addBoolean(false);
+ assertEquals(4, list.size());
+
+ list.remove(0);
+ assertEquals(3, list.size());
+
+ list.add(true);
+ assertEquals(4, list.size());
+ }
+
+ public void testSet() {
+ list.addBoolean(false);
+ list.addBoolean(false);
+
+ assertEquals(false, (boolean) list.set(0, true));
+ assertEquals(true, list.getBoolean(0));
+
+ assertEquals(false, (boolean) list.set(1, false));
+ assertEquals(false, list.getBoolean(1));
+
+ try {
+ list.set(-1, true);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.set(2, false);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testSetInt() {
+ list.addBoolean(true);
+ list.addBoolean(true);
+
+ assertEquals(true, list.setBoolean(0, false));
+ assertEquals(false, list.getBoolean(0));
+
+ assertEquals(true, list.setBoolean(1, false));
+ assertEquals(false, list.getBoolean(1));
+
+ try {
+ list.setBoolean(-1, false);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.setBoolean(2, true);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testAdd() {
+ assertEquals(0, list.size());
+
+ assertTrue(list.add(true));
+ assertEquals(asList(true), list);
+
+ assertTrue(list.add(false));
+ list.add(0, false);
+ assertEquals(asList(false, true, false), list);
+
+ list.add(0, false);
+ list.add(0, true);
+ // Force a resize by getting up to 11 elements.
+ for (int i = 0; i < 6; i++) {
+ list.add(true);
+ }
+ assertEquals(asList(true, false, false, true, false, true, true, true, true, true, true), list);
+
+ try {
+ list.add(-1, false);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.add(4, true);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testAddInt() {
+ assertEquals(0, list.size());
+
+ list.addBoolean(true);
+ assertEquals(asList(true), list);
+
+ list.addBoolean(false);
+ assertEquals(asList(true, false), list);
+ }
+
+ public void testAddAll() {
+ assertEquals(0, list.size());
+
+ assertTrue(list.addAll(Collections.singleton(false)));
+ assertEquals(1, list.size());
+ assertEquals(false, (boolean) list.get(0));
+ assertEquals(false, list.getBoolean(0));
+
+ assertTrue(list.addAll(asList(true, false, false, false, true)));
+ assertEquals(asList(false, true, false, false, false, true), list);
+
+ assertTrue(list.addAll(TERTIARY_LIST));
+ assertEquals(asList(false, true, false, false, false, true, true, true, false), list);
+
+ assertFalse(list.addAll(Collections.<Boolean>emptyList()));
+ assertFalse(list.addAll(BooleanArrayList.emptyList()));
+ }
+
+ public void testRemove() {
+ list.addAll(TERTIARY_LIST);
+ assertEquals(true, (boolean) list.remove(0));
+ assertEquals(asList(true, false), list);
+
+ assertTrue(list.remove(Boolean.TRUE));
+ assertEquals(asList(false), list);
+
+ assertFalse(list.remove(Boolean.TRUE));
+ assertEquals(asList(false), list);
+
+ assertEquals(false, (boolean) list.remove(0));
+ assertEquals(asList(), list);
+
+ try {
+ list.remove(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.remove(0);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ private void assertImmutable(BooleanArrayList list) {
+ if (list.contains(1)) {
+ throw new RuntimeException("Cannot test the immutability of lists that contain 1.");
+ }
+
+ try {
+ list.add(false);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.add(0, true);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.<Boolean>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.singletonList(false));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(new BooleanArrayList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.singleton(true));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.<Boolean>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addBoolean(true);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.clear();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(1);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.<Boolean>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.<Boolean>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.set(0, true);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.setBoolean(0, false);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ }
+
+ private static BooleanArrayList newImmutableBooleanArrayList(boolean... elements) {
+ BooleanArrayList list = new BooleanArrayList();
+ for (boolean element : elements) {
+ list.addBoolean(element);
+ }
+ list.makeImmutable();
+ return list;
+ }
+}
diff --git a/java/src/test/java/com/google/protobuf/DescriptorsTest.java b/java/src/test/java/com/google/protobuf/DescriptorsTest.java
index 6cfa18d5..edd7fc46 100644
--- a/java/src/test/java/com/google/protobuf/DescriptorsTest.java
+++ b/java/src/test/java/com/google/protobuf/DescriptorsTest.java
@@ -56,6 +56,7 @@ import protobuf_unittest.UnittestProto.TestAllTypes;
import protobuf_unittest.UnittestProto.TestExtremeDefaultValues;
import protobuf_unittest.UnittestProto.TestMultipleExtensionRanges;
import protobuf_unittest.UnittestProto.TestRequired;
+import protobuf_unittest.UnittestProto.TestReservedFields;
import protobuf_unittest.UnittestProto.TestService;
import junit.framework.TestCase;
@@ -687,6 +688,9 @@ public class DescriptorsTest extends TestCase {
assertEquals(4, oneofDescriptor.getFieldCount());
assertSame(oneofDescriptor.getField(1), field);
+
+ assertEquals(4, oneofDescriptor.getFields().size());
+ assertEquals(oneofDescriptor.getFields().get(1), field);
}
public void testMessageDescriptorExtensions() throws Exception {
@@ -702,6 +706,19 @@ public class DescriptorsTest extends TestCase {
assertTrue(TestMultipleExtensionRanges.getDescriptor().isExtensionNumber(4143));
}
+ public void testReservedFields() {
+ Descriptor d = TestReservedFields.getDescriptor();
+ assertTrue(d.isReservedNumber(2));
+ assertFalse(d.isReservedNumber(8));
+ assertTrue(d.isReservedNumber(9));
+ assertTrue(d.isReservedNumber(10));
+ assertTrue(d.isReservedNumber(11));
+ assertFalse(d.isReservedNumber(12));
+ assertFalse(d.isReservedName("foo"));
+ assertTrue(d.isReservedName("bar"));
+ assertTrue(d.isReservedName("baz"));
+ }
+
public void testToString() {
assertEquals("protobuf_unittest.TestAllTypes.optional_uint64",
UnittestProto.TestAllTypes.getDescriptor().findFieldByNumber(
diff --git a/java/src/test/java/com/google/protobuf/DoubleArrayListTest.java b/java/src/test/java/com/google/protobuf/DoubleArrayListTest.java
new file mode 100644
index 00000000..e7a73d70
--- /dev/null
+++ b/java/src/test/java/com/google/protobuf/DoubleArrayListTest.java
@@ -0,0 +1,473 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import static java.util.Arrays.asList;
+
+import junit.framework.TestCase;
+
+import java.util.Collections;
+import java.util.ConcurrentModificationException;
+import java.util.Iterator;
+
+/**
+ * Tests for {@link DoubleArrayList}.
+ *
+ * @author dweis@google.com (Daniel Weis)
+ */
+public class DoubleArrayListTest extends TestCase {
+
+ private static final DoubleArrayList UNARY_LIST = newImmutableDoubleArrayList(1);
+ private static final DoubleArrayList TERTIARY_LIST =
+ newImmutableDoubleArrayList(1, 2, 3);
+
+ private DoubleArrayList list;
+
+ @Override
+ protected void setUp() throws Exception {
+ list = new DoubleArrayList();
+ }
+
+ public void testEmptyListReturnsSameInstance() {
+ assertSame(DoubleArrayList.emptyList(), DoubleArrayList.emptyList());
+ }
+
+ public void testEmptyListIsImmutable() {
+ assertImmutable(DoubleArrayList.emptyList());
+ }
+
+ public void testMakeImmutable() {
+ list.addDouble(2);
+ list.addDouble(4);
+ list.addDouble(6);
+ list.addDouble(8);
+ list.makeImmutable();
+ assertImmutable(list);
+ }
+
+ public void testCopyConstructor() {
+ DoubleArrayList copy = new DoubleArrayList(TERTIARY_LIST);
+ assertEquals(TERTIARY_LIST, copy);
+
+ copy = new DoubleArrayList(DoubleArrayList.emptyList());
+ assertEquals(DoubleArrayList.emptyList(), copy);
+
+ copy = new DoubleArrayList(asList(1D, 2D, 3D));
+ assertEquals(asList(1D, 2D, 3D), copy);
+
+ copy = new DoubleArrayList(Collections.<Double>emptyList());
+ assertEquals(DoubleArrayList.emptyList(), copy);
+ }
+
+ public void testModificationWithIteration() {
+ list.addAll(asList(1D, 2D, 3D, 4D));
+ Iterator<Double> iterator = list.iterator();
+ assertEquals(4, list.size());
+ assertEquals(1D, (double) list.get(0));
+ assertEquals(1D, (double) iterator.next());
+ list.set(0, 1D);
+ assertEquals(2D, (double) iterator.next());
+
+ list.remove(0);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+
+ iterator = list.iterator();
+ list.add(0, 0D);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+ }
+
+ public void testGet() {
+ assertEquals(1D, (double) TERTIARY_LIST.get(0));
+ assertEquals(2D, (double) TERTIARY_LIST.get(1));
+ assertEquals(3D, (double) TERTIARY_LIST.get(2));
+
+ try {
+ TERTIARY_LIST.get(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ TERTIARY_LIST.get(3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testGetInt() {
+ assertEquals(1D, TERTIARY_LIST.getDouble(0));
+ assertEquals(2D, TERTIARY_LIST.getDouble(1));
+ assertEquals(3D, TERTIARY_LIST.getDouble(2));
+
+ try {
+ TERTIARY_LIST.get(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ TERTIARY_LIST.get(3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testSize() {
+ assertEquals(0, DoubleArrayList.emptyList().size());
+ assertEquals(1, UNARY_LIST.size());
+ assertEquals(3, TERTIARY_LIST.size());
+
+ list.addDouble(2);
+ list.addDouble(4);
+ list.addDouble(6);
+ list.addDouble(8);
+ assertEquals(4, list.size());
+
+ list.remove(0);
+ assertEquals(3, list.size());
+
+ list.add(16D);
+ assertEquals(4, list.size());
+ }
+
+ public void testSet() {
+ list.addDouble(2);
+ list.addDouble(4);
+
+ assertEquals(2D, (double) list.set(0, 0D));
+ assertEquals(0D, list.getDouble(0));
+
+ assertEquals(4D, (double) list.set(1, 0D));
+ assertEquals(0D, list.getDouble(1));
+
+ try {
+ list.set(-1, 0D);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.set(2, 0D);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testSetInt() {
+ list.addDouble(2);
+ list.addDouble(4);
+
+ assertEquals(2D, list.setDouble(0, 0));
+ assertEquals(0D, list.getDouble(0));
+
+ assertEquals(4D, list.setDouble(1, 0));
+ assertEquals(0D, list.getDouble(1));
+
+ try {
+ list.setDouble(-1, 0);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.setDouble(2, 0);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testAdd() {
+ assertEquals(0, list.size());
+
+ assertTrue(list.add(2D));
+ assertEquals(asList(2D), list);
+
+ assertTrue(list.add(3D));
+ list.add(0, 4D);
+ assertEquals(asList(4D, 2D, 3D), list);
+
+ list.add(0, 1D);
+ list.add(0, 0D);
+ // Force a resize by getting up to 11 elements.
+ for (int i = 0; i < 6; i++) {
+ list.add(Double.valueOf(5 + i));
+ }
+ assertEquals(asList(0D, 1D, 4D, 2D, 3D, 5D, 6D, 7D, 8D, 9D, 10D), list);
+
+ try {
+ list.add(-1, 5D);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.add(4, 5D);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testAddInt() {
+ assertEquals(0, list.size());
+
+ list.addDouble(2);
+ assertEquals(asList(2D), list);
+
+ list.addDouble(3);
+ assertEquals(asList(2D, 3D), list);
+ }
+
+ public void testAddAll() {
+ assertEquals(0, list.size());
+
+ assertTrue(list.addAll(Collections.singleton(1D)));
+ assertEquals(1, list.size());
+ assertEquals(1D, (double) list.get(0));
+ assertEquals(1D, list.getDouble(0));
+
+ assertTrue(list.addAll(asList(2D, 3D, 4D, 5D, 6D)));
+ assertEquals(asList(1D, 2D, 3D, 4D, 5D, 6D), list);
+
+ assertTrue(list.addAll(TERTIARY_LIST));
+ assertEquals(asList(1D, 2D, 3D, 4D, 5D, 6D, 1D, 2D, 3D), list);
+
+ assertFalse(list.addAll(Collections.<Double>emptyList()));
+ assertFalse(list.addAll(DoubleArrayList.emptyList()));
+ }
+
+ public void testRemove() {
+ list.addAll(TERTIARY_LIST);
+ assertEquals(1D, (double) list.remove(0));
+ assertEquals(asList(2D, 3D), list);
+
+ assertTrue(list.remove(Double.valueOf(3)));
+ assertEquals(asList(2D), list);
+
+ assertFalse(list.remove(Double.valueOf(3)));
+ assertEquals(asList(2D), list);
+
+ assertEquals(2D, (double) list.remove(0));
+ assertEquals(asList(), list);
+
+ try {
+ list.remove(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.remove(0);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ private void assertImmutable(DoubleArrayList list) {
+ if (list.contains(1)) {
+ throw new RuntimeException("Cannot test the immutability of lists that contain 1.");
+ }
+
+ try {
+ list.add(1D);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.add(0, 1D);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.<Double>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.singletonList(1D));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(new DoubleArrayList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.singleton(1D));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.<Double>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addDouble(0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.clear();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(1);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.<Double>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.<Double>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.set(0, 0D);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.setDouble(0, 0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ }
+
+ private static DoubleArrayList newImmutableDoubleArrayList(double... elements) {
+ DoubleArrayList list = new DoubleArrayList();
+ for (double element : elements) {
+ list.addDouble(element);
+ }
+ list.makeImmutable();
+ return list;
+ }
+}
diff --git a/java/src/test/java/com/google/protobuf/FloatArrayListTest.java b/java/src/test/java/com/google/protobuf/FloatArrayListTest.java
new file mode 100644
index 00000000..8f3e93dc
--- /dev/null
+++ b/java/src/test/java/com/google/protobuf/FloatArrayListTest.java
@@ -0,0 +1,473 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import static java.util.Arrays.asList;
+
+import junit.framework.TestCase;
+
+import java.util.Collections;
+import java.util.ConcurrentModificationException;
+import java.util.Iterator;
+
+/**
+ * Tests for {@link FloatArrayList}.
+ *
+ * @author dweis@google.com (Daniel Weis)
+ */
+public class FloatArrayListTest extends TestCase {
+
+ private static final FloatArrayList UNARY_LIST = newImmutableFloatArrayList(1);
+ private static final FloatArrayList TERTIARY_LIST =
+ newImmutableFloatArrayList(1, 2, 3);
+
+ private FloatArrayList list;
+
+ @Override
+ protected void setUp() throws Exception {
+ list = new FloatArrayList();
+ }
+
+ public void testEmptyListReturnsSameInstance() {
+ assertSame(FloatArrayList.emptyList(), FloatArrayList.emptyList());
+ }
+
+ public void testEmptyListIsImmutable() {
+ assertImmutable(FloatArrayList.emptyList());
+ }
+
+ public void testMakeImmutable() {
+ list.addFloat(2);
+ list.addFloat(4);
+ list.addFloat(6);
+ list.addFloat(8);
+ list.makeImmutable();
+ assertImmutable(list);
+ }
+
+ public void testCopyConstructor() {
+ FloatArrayList copy = new FloatArrayList(TERTIARY_LIST);
+ assertEquals(TERTIARY_LIST, copy);
+
+ copy = new FloatArrayList(FloatArrayList.emptyList());
+ assertEquals(FloatArrayList.emptyList(), copy);
+
+ copy = new FloatArrayList(asList(1F, 2F, 3F));
+ assertEquals(asList(1F, 2F, 3F), copy);
+
+ copy = new FloatArrayList(Collections.<Float>emptyList());
+ assertEquals(FloatArrayList.emptyList(), copy);
+ }
+
+ public void testModificationWithIteration() {
+ list.addAll(asList(1F, 2F, 3F, 4F));
+ Iterator<Float> iterator = list.iterator();
+ assertEquals(4, list.size());
+ assertEquals(1F, (float) list.get(0));
+ assertEquals(1F, (float) iterator.next());
+ list.set(0, 1F);
+ assertEquals(2F, (float) iterator.next());
+
+ list.remove(0);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+
+ iterator = list.iterator();
+ list.add(0, 0F);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+ }
+
+ public void testGet() {
+ assertEquals(1F, (float) TERTIARY_LIST.get(0));
+ assertEquals(2F, (float) TERTIARY_LIST.get(1));
+ assertEquals(3F, (float) TERTIARY_LIST.get(2));
+
+ try {
+ TERTIARY_LIST.get(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ TERTIARY_LIST.get(3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testGetFloat() {
+ assertEquals(1F, TERTIARY_LIST.getFloat(0));
+ assertEquals(2F, TERTIARY_LIST.getFloat(1));
+ assertEquals(3F, TERTIARY_LIST.getFloat(2));
+
+ try {
+ TERTIARY_LIST.get(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ TERTIARY_LIST.get(3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testSize() {
+ assertEquals(0, FloatArrayList.emptyList().size());
+ assertEquals(1, UNARY_LIST.size());
+ assertEquals(3, TERTIARY_LIST.size());
+
+ list.addFloat(2);
+ list.addFloat(4);
+ list.addFloat(6);
+ list.addFloat(8);
+ assertEquals(4, list.size());
+
+ list.remove(0);
+ assertEquals(3, list.size());
+
+ list.add(16F);
+ assertEquals(4, list.size());
+ }
+
+ public void testSet() {
+ list.addFloat(2);
+ list.addFloat(4);
+
+ assertEquals(2F, (float) list.set(0, 0F));
+ assertEquals(0F, list.getFloat(0));
+
+ assertEquals(4F, (float) list.set(1, 0F));
+ assertEquals(0F, list.getFloat(1));
+
+ try {
+ list.set(-1, 0F);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.set(2, 0F);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testSetFloat() {
+ list.addFloat(2);
+ list.addFloat(4);
+
+ assertEquals(2F, list.setFloat(0, 0));
+ assertEquals(0F, list.getFloat(0));
+
+ assertEquals(4F, list.setFloat(1, 0));
+ assertEquals(0F, list.getFloat(1));
+
+ try {
+ list.setFloat(-1, 0);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.setFloat(2, 0);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testAdd() {
+ assertEquals(0, list.size());
+
+ assertTrue(list.add(2F));
+ assertEquals(asList(2F), list);
+
+ assertTrue(list.add(3F));
+ list.add(0, 4F);
+ assertEquals(asList(4F, 2F, 3F), list);
+
+ list.add(0, 1F);
+ list.add(0, 0F);
+ // Force a resize by getting up to 11 elements.
+ for (int i = 0; i < 6; i++) {
+ list.add(Float.valueOf(5 + i));
+ }
+ assertEquals(asList(0F, 1F, 4F, 2F, 3F, 5F, 6F, 7F, 8F, 9F, 10F), list);
+
+ try {
+ list.add(-1, 5F);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.add(4, 5F);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testAddFloat() {
+ assertEquals(0, list.size());
+
+ list.addFloat(2);
+ assertEquals(asList(2F), list);
+
+ list.addFloat(3);
+ assertEquals(asList(2F, 3F), list);
+ }
+
+ public void testAddAll() {
+ assertEquals(0, list.size());
+
+ assertTrue(list.addAll(Collections.singleton(1F)));
+ assertEquals(1, list.size());
+ assertEquals(1F, (float) list.get(0));
+ assertEquals(1F, list.getFloat(0));
+
+ assertTrue(list.addAll(asList(2F, 3F, 4F, 5F, 6F)));
+ assertEquals(asList(1F, 2F, 3F, 4F, 5F, 6F), list);
+
+ assertTrue(list.addAll(TERTIARY_LIST));
+ assertEquals(asList(1F, 2F, 3F, 4F, 5F, 6F, 1F, 2F, 3F), list);
+
+ assertFalse(list.addAll(Collections.<Float>emptyList()));
+ assertFalse(list.addAll(FloatArrayList.emptyList()));
+ }
+
+ public void testRemove() {
+ list.addAll(TERTIARY_LIST);
+ assertEquals(1F, (float) list.remove(0));
+ assertEquals(asList(2F, 3F), list);
+
+ assertTrue(list.remove(Float.valueOf(3)));
+ assertEquals(asList(2F), list);
+
+ assertFalse(list.remove(Float.valueOf(3)));
+ assertEquals(asList(2F), list);
+
+ assertEquals(2F, (float) list.remove(0));
+ assertEquals(asList(), list);
+
+ try {
+ list.remove(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.remove(0);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ private void assertImmutable(FloatArrayList list) {
+ if (list.contains(1)) {
+ throw new RuntimeException("Cannot test the immutability of lists that contain 1.");
+ }
+
+ try {
+ list.add(1F);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.add(0, 1F);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.<Float>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.singletonList(1F));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(new FloatArrayList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.singleton(1F));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.<Float>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addFloat(0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.clear();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(1);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.<Float>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.<Float>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.set(0, 0F);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.setFloat(0, 0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ }
+
+ private static FloatArrayList newImmutableFloatArrayList(int... elements) {
+ FloatArrayList list = new FloatArrayList();
+ for (int element : elements) {
+ list.addFloat(element);
+ }
+ list.makeImmutable();
+ return list;
+ }
+}
diff --git a/java/src/test/java/com/google/protobuf/IntArrayListTest.java b/java/src/test/java/com/google/protobuf/IntArrayListTest.java
new file mode 100644
index 00000000..3733eb30
--- /dev/null
+++ b/java/src/test/java/com/google/protobuf/IntArrayListTest.java
@@ -0,0 +1,473 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import static java.util.Arrays.asList;
+
+import junit.framework.TestCase;
+
+import java.util.Collections;
+import java.util.ConcurrentModificationException;
+import java.util.Iterator;
+
+/**
+ * Tests for {@link IntArrayList}.
+ *
+ * @author dweis@google.com (Daniel Weis)
+ */
+public class IntArrayListTest extends TestCase {
+
+ private static final IntArrayList UNARY_LIST = newImmutableIntArrayList(1);
+ private static final IntArrayList TERTIARY_LIST =
+ newImmutableIntArrayList(1, 2, 3);
+
+ private IntArrayList list;
+
+ @Override
+ protected void setUp() throws Exception {
+ list = new IntArrayList();
+ }
+
+ public void testEmptyListReturnsSameInstance() {
+ assertSame(IntArrayList.emptyList(), IntArrayList.emptyList());
+ }
+
+ public void testEmptyListIsImmutable() {
+ assertImmutable(IntArrayList.emptyList());
+ }
+
+ public void testMakeImmutable() {
+ list.addInt(2);
+ list.addInt(4);
+ list.addInt(6);
+ list.addInt(8);
+ list.makeImmutable();
+ assertImmutable(list);
+ }
+
+ public void testCopyConstructor() {
+ IntArrayList copy = new IntArrayList(TERTIARY_LIST);
+ assertEquals(TERTIARY_LIST, copy);
+
+ copy = new IntArrayList(IntArrayList.emptyList());
+ assertEquals(IntArrayList.emptyList(), copy);
+
+ copy = new IntArrayList(asList(1, 2, 3));
+ assertEquals(asList(1, 2, 3), copy);
+
+ copy = new IntArrayList(Collections.<Integer>emptyList());
+ assertEquals(IntArrayList.emptyList(), copy);
+ }
+
+ public void testModificationWithIteration() {
+ list.addAll(asList(1, 2, 3, 4));
+ Iterator<Integer> iterator = list.iterator();
+ assertEquals(4, list.size());
+ assertEquals(1, (int) list.get(0));
+ assertEquals(1, (int) iterator.next());
+ list.set(0, 1);
+ assertEquals(2, (int) iterator.next());
+
+ list.remove(0);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+
+ iterator = list.iterator();
+ list.add(0, 0);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+ }
+
+ public void testGet() {
+ assertEquals(1, (int) TERTIARY_LIST.get(0));
+ assertEquals(2, (int) TERTIARY_LIST.get(1));
+ assertEquals(3, (int) TERTIARY_LIST.get(2));
+
+ try {
+ TERTIARY_LIST.get(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ TERTIARY_LIST.get(3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testGetInt() {
+ assertEquals(1, TERTIARY_LIST.getInt(0));
+ assertEquals(2, TERTIARY_LIST.getInt(1));
+ assertEquals(3, TERTIARY_LIST.getInt(2));
+
+ try {
+ TERTIARY_LIST.get(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ TERTIARY_LIST.get(3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testSize() {
+ assertEquals(0, IntArrayList.emptyList().size());
+ assertEquals(1, UNARY_LIST.size());
+ assertEquals(3, TERTIARY_LIST.size());
+
+ list.addInt(2);
+ list.addInt(4);
+ list.addInt(6);
+ list.addInt(8);
+ assertEquals(4, list.size());
+
+ list.remove(0);
+ assertEquals(3, list.size());
+
+ list.add(16);
+ assertEquals(4, list.size());
+ }
+
+ public void testSet() {
+ list.addInt(2);
+ list.addInt(4);
+
+ assertEquals(2, (int) list.set(0, 0));
+ assertEquals(0, list.getInt(0));
+
+ assertEquals(4, (int) list.set(1, 0));
+ assertEquals(0, list.getInt(1));
+
+ try {
+ list.set(-1, 0);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.set(2, 0);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testSetInt() {
+ list.addInt(2);
+ list.addInt(4);
+
+ assertEquals(2, list.setInt(0, 0));
+ assertEquals(0, list.getInt(0));
+
+ assertEquals(4, list.setInt(1, 0));
+ assertEquals(0, list.getInt(1));
+
+ try {
+ list.setInt(-1, 0);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.setInt(2, 0);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testAdd() {
+ assertEquals(0, list.size());
+
+ assertTrue(list.add(2));
+ assertEquals(asList(2), list);
+
+ assertTrue(list.add(3));
+ list.add(0, 4);
+ assertEquals(asList(4, 2, 3), list);
+
+ list.add(0, 1);
+ list.add(0, 0);
+ // Force a resize by getting up to 11 elements.
+ for (int i = 0; i < 6; i++) {
+ list.add(5 + i);
+ }
+ assertEquals(asList(0, 1, 4, 2, 3, 5, 6, 7, 8, 9, 10), list);
+
+ try {
+ list.add(-1, 5);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.add(4, 5);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testAddInt() {
+ assertEquals(0, list.size());
+
+ list.addInt(2);
+ assertEquals(asList(2), list);
+
+ list.addInt(3);
+ assertEquals(asList(2, 3), list);
+ }
+
+ public void testAddAll() {
+ assertEquals(0, list.size());
+
+ assertTrue(list.addAll(Collections.singleton(1)));
+ assertEquals(1, list.size());
+ assertEquals(1, (int) list.get(0));
+ assertEquals(1, list.getInt(0));
+
+ assertTrue(list.addAll(asList(2, 3, 4, 5, 6)));
+ assertEquals(asList(1, 2, 3, 4, 5, 6), list);
+
+ assertTrue(list.addAll(TERTIARY_LIST));
+ assertEquals(asList(1, 2, 3, 4, 5, 6, 1, 2, 3), list);
+
+ assertFalse(list.addAll(Collections.<Integer>emptyList()));
+ assertFalse(list.addAll(IntArrayList.emptyList()));
+ }
+
+ public void testRemove() {
+ list.addAll(TERTIARY_LIST);
+ assertEquals(1, (int) list.remove(0));
+ assertEquals(asList(2, 3), list);
+
+ assertTrue(list.remove(Integer.valueOf(3)));
+ assertEquals(asList(2), list);
+
+ assertFalse(list.remove(Integer.valueOf(3)));
+ assertEquals(asList(2), list);
+
+ assertEquals(2, (int) list.remove(0));
+ assertEquals(asList(), list);
+
+ try {
+ list.remove(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.remove(0);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ private void assertImmutable(IntArrayList list) {
+ if (list.contains(1)) {
+ throw new RuntimeException("Cannot test the immutability of lists that contain 1.");
+ }
+
+ try {
+ list.add(1);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.add(0, 1);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.<Integer>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.singletonList(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(new IntArrayList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.<Integer>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addInt(0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.clear();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(1);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.<Integer>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.<Integer>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.set(0, 0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.setInt(0, 0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ }
+
+ private static IntArrayList newImmutableIntArrayList(int... elements) {
+ IntArrayList list = new IntArrayList();
+ for (int element : elements) {
+ list.addInt(element);
+ }
+ list.makeImmutable();
+ return list;
+ }
+}
diff --git a/java/src/test/java/com/google/protobuf/LazyStringArrayListTest.java b/java/src/test/java/com/google/protobuf/LazyStringArrayListTest.java
index f3012b96..0f42ac50 100644
--- a/java/src/test/java/com/google/protobuf/LazyStringArrayListTest.java
+++ b/java/src/test/java/com/google/protobuf/LazyStringArrayListTest.java
@@ -30,9 +30,13 @@
package com.google.protobuf;
+import static java.util.Arrays.asList;
+
import junit.framework.TestCase;
import java.util.ArrayList;
+import java.util.ConcurrentModificationException;
+import java.util.Iterator;
import java.util.List;
/**
@@ -171,4 +175,188 @@ public class LazyStringArrayListTest extends TestCase {
assertSame(BYTE_STRING_B, list2.getByteString(1));
assertSame(BYTE_STRING_C, list2.getByteString(2));
}
+
+ public void testModificationWithIteration() {
+ LazyStringArrayList list = new LazyStringArrayList();
+ list.addAll(asList(STRING_A, STRING_B, STRING_C));
+ Iterator<String> iterator = list.iterator();
+ assertEquals(3, list.size());
+ assertEquals(STRING_A, list.get(0));
+ assertEquals(STRING_A, iterator.next());
+
+ // Does not structurally modify.
+ iterator = list.iterator();
+ list.set(0, STRING_B);
+ iterator.next();
+
+ list.remove(0);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+
+ iterator = list.iterator();
+ list.add(0, STRING_C);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+ }
+
+ public void testMakeImmutable() {
+ LazyStringArrayList list = new LazyStringArrayList();
+ list.add(STRING_A);
+ list.add(STRING_B);
+ list.add(STRING_C);
+ list.makeImmutable();
+ assertGenericListImmutable(list, STRING_A);
+
+ // LazyStringArrayList has extra methods not covered in the generic
+ // assertion.
+
+ try {
+ list.add(BYTE_STRING_A.toByteArray());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.add(BYTE_STRING_A);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAllByteArray(asList(BYTE_STRING_A.toByteArray()));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAllByteString(asList(BYTE_STRING_A));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.mergeFrom(new LazyStringArrayList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.set(0, BYTE_STRING_A.toByteArray());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.set(0, BYTE_STRING_A);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ }
+
+ public void testImmutabilityPropagation() {
+ LazyStringArrayList list = new LazyStringArrayList();
+ list.add(STRING_A);
+ list.makeImmutable();
+
+ assertGenericListImmutable(list.asByteStringList(), BYTE_STRING_A);
+
+ // Arrays use reference equality so need to retrieve the underlying value
+ // to properly test deep immutability.
+ List<byte[]> byteArrayList = list.asByteArrayList();
+ assertGenericListImmutable(byteArrayList, byteArrayList.get(0));
+ }
+
+ private static <T> void assertGenericListImmutable(List<T> list, T value) {
+ try {
+ list.add(value);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.add(0, value);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(asList(value));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, asList(value));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.clear();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(value);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(asList(value));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(asList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(asList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.set(0, value);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ }
}
diff --git a/java/src/test/java/com/google/protobuf/LiteTest.java b/java/src/test/java/com/google/protobuf/LiteTest.java
index 4d8037fc..8c3b5e5c 100644
--- a/java/src/test/java/com/google/protobuf/LiteTest.java
+++ b/java/src/test/java/com/google/protobuf/LiteTest.java
@@ -30,9 +30,18 @@
package com.google.protobuf;
+import static java.util.Collections.emptyList;
+import static java.util.Collections.singletonList;
+
import com.google.protobuf.UnittestLite;
-import com.google.protobuf.UnittestLite.TestAllTypesLite;
+import com.google.protobuf.UnittestLite.ForeignEnumLite;
+import com.google.protobuf.UnittestLite.ForeignMessageLite;
import com.google.protobuf.UnittestLite.TestAllExtensionsLite;
+import com.google.protobuf.UnittestLite.TestAllTypesLite;
+import com.google.protobuf.UnittestLite.TestAllTypesLite.NestedMessage;
+import com.google.protobuf.UnittestLite.TestAllTypesLite.OneofFieldCase;
+import com.google.protobuf.UnittestLite.TestAllTypesLite.OptionalGroup;
+import com.google.protobuf.UnittestLite.TestAllTypesLite.RepeatedGroup;
import com.google.protobuf.UnittestLite.TestNestedExtensionLite;
import junit.framework.TestCase;
@@ -149,13 +158,1302 @@ public class LiteTest extends TestCase {
public void testClone() {
TestAllTypesLite.Builder expected = TestAllTypesLite.newBuilder()
.setOptionalInt32(123);
- assertEquals(
- expected.getOptionalInt32(), expected.clone().getOptionalInt32());
+ assertEquals(
+ expected.getOptionalInt32(), expected.clone().getOptionalInt32());
- TestAllExtensionsLite.Builder expected2 = TestAllExtensionsLite.newBuilder()
- .setExtension(UnittestLite.optionalInt32ExtensionLite, 123);
- assertEquals(
- expected2.getExtension(UnittestLite.optionalInt32ExtensionLite),
- expected2.clone().getExtension(UnittestLite.optionalInt32ExtensionLite));
+ TestAllExtensionsLite.Builder expected2 = TestAllExtensionsLite.newBuilder()
+ .setExtension(UnittestLite.optionalInt32ExtensionLite, 123);
+ assertEquals(
+ expected2.getExtension(UnittestLite.optionalInt32ExtensionLite),
+ expected2.clone().getExtension(UnittestLite.optionalInt32ExtensionLite));
+ }
+
+ public void testAddAll() {
+ try {
+ TestAllTypesLite.newBuilder()
+ .addAllRepeatedBytes(null);
+ fail();
+ } catch (NullPointerException e) {
+ // expected.
+ }
+ }
+
+ public void testSanityCopyOnWrite() throws InvalidProtocolBufferException {
+ // Since builders are implemented as a thin wrapper around a message
+ // instance, we attempt to verify that we can't cause the builder to modify
+ // a produced message.
+
+ TestAllTypesLite.Builder builder = TestAllTypesLite.newBuilder();
+ TestAllTypesLite message = builder.build();
+ TestAllTypesLite messageAfterBuild;
+ builder.setOptionalBool(true);
+ assertEquals(false, message.getOptionalBool());
+ assertEquals(true, builder.getOptionalBool());
+ messageAfterBuild = builder.build();
+ assertEquals(true, messageAfterBuild.getOptionalBool());
+ assertEquals(false, message.getOptionalBool());
+ builder.clearOptionalBool();
+ assertEquals(false, builder.getOptionalBool());
+ assertEquals(true, messageAfterBuild.getOptionalBool());
+
+ message = builder.build();
+ builder.setOptionalBytes(ByteString.copyFromUtf8("hi"));
+ assertEquals(ByteString.EMPTY, message.getOptionalBytes());
+ assertEquals(ByteString.copyFromUtf8("hi"), builder.getOptionalBytes());
+ messageAfterBuild = builder.build();
+ assertEquals(
+ ByteString.copyFromUtf8("hi"), messageAfterBuild.getOptionalBytes());
+ assertEquals(ByteString.EMPTY, message.getOptionalBytes());
+ builder.clearOptionalBytes();
+ assertEquals(ByteString.EMPTY, builder.getOptionalBytes());
+ assertEquals(
+ ByteString.copyFromUtf8("hi"), messageAfterBuild.getOptionalBytes());
+
+ message = builder.build();
+ builder.setOptionalCord("hi");
+ assertEquals("", message.getOptionalCord());
+ assertEquals("hi", builder.getOptionalCord());
+ messageAfterBuild = builder.build();
+ assertEquals("hi", messageAfterBuild.getOptionalCord());
+ assertEquals("", message.getOptionalCord());
+ builder.clearOptionalCord();
+ assertEquals("", builder.getOptionalCord());
+ assertEquals("hi", messageAfterBuild.getOptionalCord());
+
+ message = builder.build();
+ builder.setOptionalCordBytes(ByteString.copyFromUtf8("no"));
+ assertEquals(ByteString.EMPTY, message.getOptionalCordBytes());
+ assertEquals(ByteString.copyFromUtf8("no"), builder.getOptionalCordBytes());
+ messageAfterBuild = builder.build();
+ assertEquals(
+ ByteString.copyFromUtf8("no"),
+ messageAfterBuild.getOptionalCordBytes());
+ assertEquals(ByteString.EMPTY, message.getOptionalCordBytes());
+ builder.clearOptionalCord();
+ assertEquals(ByteString.EMPTY, builder.getOptionalCordBytes());
+ assertEquals(
+ ByteString.copyFromUtf8("no"),
+ messageAfterBuild.getOptionalCordBytes());
+
+ message = builder.build();
+ builder.setOptionalDouble(1);
+ assertEquals(0D, message.getOptionalDouble());
+ assertEquals(1D, builder.getOptionalDouble());
+ messageAfterBuild = builder.build();
+ assertEquals(1D, messageAfterBuild.getOptionalDouble());
+ assertEquals(0D, message.getOptionalDouble());
+ builder.clearOptionalDouble();
+ assertEquals(0D, builder.getOptionalDouble());
+ assertEquals(1D, messageAfterBuild.getOptionalDouble());
+
+ message = builder.build();
+ builder.setOptionalFixed32(1);
+ assertEquals(0, message.getOptionalFixed32());
+ assertEquals(1, builder.getOptionalFixed32());
+ messageAfterBuild = builder.build();
+ assertEquals(1, messageAfterBuild.getOptionalFixed32());
+ assertEquals(0, message.getOptionalFixed32());
+ builder.clearOptionalFixed32();
+ assertEquals(0, builder.getOptionalFixed32());
+ assertEquals(1, messageAfterBuild.getOptionalFixed32());
+
+ message = builder.build();
+ builder.setOptionalFixed64(1);
+ assertEquals(0L, message.getOptionalFixed64());
+ assertEquals(1L, builder.getOptionalFixed64());
+ messageAfterBuild = builder.build();
+ assertEquals(1L, messageAfterBuild.getOptionalFixed64());
+ assertEquals(0L, message.getOptionalFixed64());
+ builder.clearOptionalFixed64();
+ assertEquals(0L, builder.getOptionalFixed64());
+ assertEquals(1L, messageAfterBuild.getOptionalFixed64());
+
+ message = builder.build();
+ builder.setOptionalFloat(1);
+ assertEquals(0F, message.getOptionalFloat());
+ assertEquals(1F, builder.getOptionalFloat());
+ messageAfterBuild = builder.build();
+ assertEquals(1F, messageAfterBuild.getOptionalFloat());
+ assertEquals(0F, message.getOptionalFloat());
+ builder.clearOptionalFloat();
+ assertEquals(0F, builder.getOptionalFloat());
+ assertEquals(1F, messageAfterBuild.getOptionalFloat());
+
+ message = builder.build();
+ builder.setOptionalForeignEnum(ForeignEnumLite.FOREIGN_LITE_BAR);
+ assertEquals(
+ ForeignEnumLite.FOREIGN_LITE_FOO, message.getOptionalForeignEnum());
+ assertEquals(
+ ForeignEnumLite.FOREIGN_LITE_BAR, builder.getOptionalForeignEnum());
+ messageAfterBuild = builder.build();
+ assertEquals(
+ ForeignEnumLite.FOREIGN_LITE_BAR,
+ messageAfterBuild.getOptionalForeignEnum());
+ assertEquals(
+ ForeignEnumLite.FOREIGN_LITE_FOO, message.getOptionalForeignEnum());
+ builder.clearOptionalForeignEnum();
+ assertEquals(
+ ForeignEnumLite.FOREIGN_LITE_FOO, builder.getOptionalForeignEnum());
+ assertEquals(
+ ForeignEnumLite.FOREIGN_LITE_BAR,
+ messageAfterBuild.getOptionalForeignEnum());
+
+ message = builder.build();
+ ForeignMessageLite foreignMessage = ForeignMessageLite.newBuilder()
+ .setC(1)
+ .build();
+ builder.setOptionalForeignMessage(foreignMessage);
+ assertEquals(
+ ForeignMessageLite.getDefaultInstance(),
+ message.getOptionalForeignMessage());
+ assertEquals(foreignMessage, builder.getOptionalForeignMessage());
+ messageAfterBuild = builder.build();
+ assertEquals(foreignMessage, messageAfterBuild.getOptionalForeignMessage());
+ assertEquals(
+ ForeignMessageLite.getDefaultInstance(),
+ message.getOptionalForeignMessage());
+ builder.clearOptionalForeignMessage();
+ assertEquals(
+ ForeignMessageLite.getDefaultInstance(),
+ builder.getOptionalForeignMessage());
+ assertEquals(foreignMessage, messageAfterBuild.getOptionalForeignMessage());
+
+ message = builder.build();
+ ForeignMessageLite.Builder foreignMessageBuilder =
+ ForeignMessageLite.newBuilder()
+ .setC(3);
+ builder.setOptionalForeignMessage(foreignMessageBuilder);
+ assertEquals(
+ ForeignMessageLite.getDefaultInstance(),
+ message.getOptionalForeignMessage());
+ // LITE_RUNTIME doesn't implement equals so we compare on a property and
+ // ensure the property isn't set on foreignMessage.
+ assertEquals(3, builder.getOptionalForeignMessage().getC());
+ messageAfterBuild = builder.build();
+ assertEquals(3, messageAfterBuild.getOptionalForeignMessage().getC());
+ assertEquals(
+ ForeignMessageLite.getDefaultInstance(),
+ message.getOptionalForeignMessage());
+ builder.clearOptionalForeignMessage();
+ assertEquals(
+ ForeignMessageLite.getDefaultInstance(),
+ builder.getOptionalForeignMessage());
+ assertEquals(3, messageAfterBuild.getOptionalForeignMessage().getC());
+
+ message = builder.build();
+ OptionalGroup optionalGroup = OptionalGroup.newBuilder()
+ .setA(1)
+ .build();
+ builder.setOptionalGroup(optionalGroup);
+ assertEquals(
+ OptionalGroup.getDefaultInstance(), message.getOptionalGroup());
+ assertEquals(optionalGroup, builder.getOptionalGroup());
+ messageAfterBuild = builder.build();
+ assertEquals(optionalGroup, messageAfterBuild.getOptionalGroup());
+ assertEquals(
+ OptionalGroup.getDefaultInstance(), message.getOptionalGroup());
+ builder.clearOptionalGroup();
+ assertEquals(
+ OptionalGroup.getDefaultInstance(), builder.getOptionalGroup());
+ assertEquals(optionalGroup, messageAfterBuild.getOptionalGroup());
+
+ message = builder.build();
+ OptionalGroup.Builder optionalGroupBuilder = OptionalGroup.newBuilder()
+ .setA(3);
+ builder.setOptionalGroup(optionalGroupBuilder);
+ assertEquals(
+ OptionalGroup.getDefaultInstance(), message.getOptionalGroup());
+ // LITE_RUNTIME doesn't implement equals so we compare on a property and
+ // ensure the property isn't set on optionalGroup.
+ assertEquals(3, builder.getOptionalGroup().getA());
+ messageAfterBuild = builder.build();
+ assertEquals(3, messageAfterBuild.getOptionalGroup().getA());
+ assertEquals(
+ OptionalGroup.getDefaultInstance(), message.getOptionalGroup());
+ builder.clearOptionalGroup();
+ assertEquals(
+ OptionalGroup.getDefaultInstance(), builder.getOptionalGroup());
+ assertEquals(3, messageAfterBuild.getOptionalGroup().getA());
+
+ message = builder.build();
+ builder.setOptionalInt32(1);
+ assertEquals(0, message.getOptionalInt32());
+ assertEquals(1, builder.getOptionalInt32());
+ messageAfterBuild = builder.build();
+ assertEquals(1, messageAfterBuild.getOptionalInt32());
+ assertEquals(0, message.getOptionalInt32());
+ builder.clearOptionalInt32();
+ assertEquals(0, builder.getOptionalInt32());
+ assertEquals(1, messageAfterBuild.getOptionalInt32());
+
+ message = builder.build();
+ builder.setOptionalInt64(1);
+ assertEquals(0L, message.getOptionalInt64());
+ assertEquals(1L, builder.getOptionalInt64());
+ messageAfterBuild = builder.build();
+ assertEquals(1L, messageAfterBuild.getOptionalInt64());
+ assertEquals(0L, message.getOptionalInt64());
+ builder.clearOptionalInt64();
+ assertEquals(0L, builder.getOptionalInt64());
+ assertEquals(1L, messageAfterBuild.getOptionalInt64());
+
+ message = builder.build();
+ NestedMessage nestedMessage = NestedMessage.newBuilder()
+ .setBb(1)
+ .build();
+ builder.setOptionalLazyMessage(nestedMessage);
+ assertEquals(
+ NestedMessage.getDefaultInstance(),
+ message.getOptionalLazyMessage());
+ assertEquals(nestedMessage, builder.getOptionalLazyMessage());
+ messageAfterBuild = builder.build();
+ assertEquals(nestedMessage, messageAfterBuild.getOptionalLazyMessage());
+ assertEquals(
+ NestedMessage.getDefaultInstance(),
+ message.getOptionalLazyMessage());
+ builder.clearOptionalLazyMessage();
+ assertEquals(
+ NestedMessage.getDefaultInstance(), builder.getOptionalLazyMessage());
+ assertEquals(nestedMessage, messageAfterBuild.getOptionalLazyMessage());
+
+ message = builder.build();
+ NestedMessage.Builder nestedMessageBuilder =
+ NestedMessage.newBuilder()
+ .setBb(3);
+ builder.setOptionalLazyMessage(nestedMessageBuilder);
+ assertEquals(
+ NestedMessage.getDefaultInstance(),
+ message.getOptionalLazyMessage());
+ // LITE_RUNTIME doesn't implement equals so we compare on a property.
+ assertEquals(3, builder.getOptionalLazyMessage().getBb());
+ messageAfterBuild = builder.build();
+ assertEquals(3, messageAfterBuild.getOptionalLazyMessage().getBb());
+ assertEquals(
+ NestedMessage.getDefaultInstance(),
+ message.getOptionalLazyMessage());
+ builder.clearOptionalLazyMessage();
+ assertEquals(
+ NestedMessage.getDefaultInstance(), builder.getOptionalLazyMessage());
+ assertEquals(3, messageAfterBuild.getOptionalLazyMessage().getBb());
+
+ message = builder.build();
+ builder.setOptionalSfixed32(1);
+ assertEquals(0, message.getOptionalSfixed32());
+ assertEquals(1, builder.getOptionalSfixed32());
+ messageAfterBuild = builder.build();
+ assertEquals(1, messageAfterBuild.getOptionalSfixed32());
+ assertEquals(0, message.getOptionalSfixed32());
+ builder.clearOptionalSfixed32();
+ assertEquals(0, builder.getOptionalSfixed32());
+ assertEquals(1, messageAfterBuild.getOptionalSfixed32());
+
+ message = builder.build();
+ builder.setOptionalSfixed64(1);
+ assertEquals(0L, message.getOptionalSfixed64());
+ assertEquals(1L, builder.getOptionalSfixed64());
+ messageAfterBuild = builder.build();
+ assertEquals(1L, messageAfterBuild.getOptionalSfixed64());
+ assertEquals(0L, message.getOptionalSfixed64());
+ builder.clearOptionalSfixed64();
+ assertEquals(0L, builder.getOptionalSfixed64());
+ assertEquals(1L, messageAfterBuild.getOptionalSfixed64());
+
+ message = builder.build();
+ builder.setOptionalSint32(1);
+ assertEquals(0, message.getOptionalSint32());
+ assertEquals(1, builder.getOptionalSint32());
+ messageAfterBuild = builder.build();
+ assertEquals(1, messageAfterBuild.getOptionalSint32());
+ builder.clearOptionalSint32();
+ assertEquals(0, builder.getOptionalSint32());
+ assertEquals(1, messageAfterBuild.getOptionalSint32());
+
+ message = builder.build();
+ builder.setOptionalSint64(1);
+ assertEquals(0L, message.getOptionalSint64());
+ assertEquals(1L, builder.getOptionalSint64());
+ messageAfterBuild = builder.build();
+ assertEquals(1L, messageAfterBuild.getOptionalSint64());
+ assertEquals(0L, message.getOptionalSint64());
+ builder.clearOptionalSint64();
+ assertEquals(0L, builder.getOptionalSint64());
+ assertEquals(1L, messageAfterBuild.getOptionalSint64());
+
+ message = builder.build();
+ builder.setOptionalString("hi");
+ assertEquals("", message.getOptionalString());
+ assertEquals("hi", builder.getOptionalString());
+ messageAfterBuild = builder.build();
+ assertEquals("hi", messageAfterBuild.getOptionalString());
+ assertEquals("", message.getOptionalString());
+ builder.clearOptionalString();
+ assertEquals("", builder.getOptionalString());
+ assertEquals("hi", messageAfterBuild.getOptionalString());
+
+ message = builder.build();
+ builder.setOptionalStringBytes(ByteString.copyFromUtf8("no"));
+ assertEquals(ByteString.EMPTY, message.getOptionalStringBytes());
+ assertEquals(
+ ByteString.copyFromUtf8("no"), builder.getOptionalStringBytes());
+ messageAfterBuild = builder.build();
+ assertEquals(
+ ByteString.copyFromUtf8("no"),
+ messageAfterBuild.getOptionalStringBytes());
+ assertEquals(ByteString.EMPTY, message.getOptionalStringBytes());
+ builder.clearOptionalString();
+ assertEquals(ByteString.EMPTY, builder.getOptionalStringBytes());
+ assertEquals(
+ ByteString.copyFromUtf8("no"),
+ messageAfterBuild.getOptionalStringBytes());
+
+ message = builder.build();
+ builder.setOptionalStringPiece("hi");
+ assertEquals("", message.getOptionalStringPiece());
+ assertEquals("hi", builder.getOptionalStringPiece());
+ messageAfterBuild = builder.build();
+ assertEquals("hi", messageAfterBuild.getOptionalStringPiece());
+ assertEquals("", message.getOptionalStringPiece());
+ builder.clearOptionalStringPiece();
+ assertEquals("", builder.getOptionalStringPiece());
+ assertEquals("hi", messageAfterBuild.getOptionalStringPiece());
+
+ message = builder.build();
+ builder.setOptionalStringPieceBytes(ByteString.copyFromUtf8("no"));
+ assertEquals(ByteString.EMPTY, message.getOptionalStringPieceBytes());
+ assertEquals(
+ ByteString.copyFromUtf8("no"), builder.getOptionalStringPieceBytes());
+ messageAfterBuild = builder.build();
+ assertEquals(
+ ByteString.copyFromUtf8("no"),
+ messageAfterBuild.getOptionalStringPieceBytes());
+ assertEquals(ByteString.EMPTY, message.getOptionalStringPieceBytes());
+ builder.clearOptionalStringPiece();
+ assertEquals(ByteString.EMPTY, builder.getOptionalStringPieceBytes());
+ assertEquals(
+ ByteString.copyFromUtf8("no"),
+ messageAfterBuild.getOptionalStringPieceBytes());
+
+ message = builder.build();
+ builder.setOptionalUint32(1);
+ assertEquals(0, message.getOptionalUint32());
+ assertEquals(1, builder.getOptionalUint32());
+ messageAfterBuild = builder.build();
+ assertEquals(1, messageAfterBuild.getOptionalUint32());
+ assertEquals(0, message.getOptionalUint32());
+ builder.clearOptionalUint32();
+ assertEquals(0, builder.getOptionalUint32());
+ assertEquals(1, messageAfterBuild.getOptionalUint32());
+
+ message = builder.build();
+ builder.setOptionalUint64(1);
+ assertEquals(0L, message.getOptionalUint64());
+ assertEquals(1L, builder.getOptionalUint64());
+ messageAfterBuild = builder.build();
+ assertEquals(1L, messageAfterBuild.getOptionalUint64());
+ assertEquals(0L, message.getOptionalUint64());
+ builder.clearOptionalUint64();
+ assertEquals(0L, builder.getOptionalUint64());
+ assertEquals(1L, messageAfterBuild.getOptionalUint64());
+
+ message = builder.build();
+ builder.addAllRepeatedBool(singletonList(true));
+ assertEquals(emptyList(), message.getRepeatedBoolList());
+ assertEquals(singletonList(true), builder.getRepeatedBoolList());
+ assertEquals(emptyList(), message.getRepeatedBoolList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedBool();
+ assertEquals(emptyList(), builder.getRepeatedBoolList());
+ assertEquals(singletonList(true), messageAfterBuild.getRepeatedBoolList());
+
+ message = builder.build();
+ builder.addAllRepeatedBytes(singletonList(ByteString.copyFromUtf8("hi")));
+ assertEquals(emptyList(), message.getRepeatedBytesList());
+ assertEquals(
+ singletonList(ByteString.copyFromUtf8("hi")),
+ builder.getRepeatedBytesList());
+ assertEquals(emptyList(), message.getRepeatedBytesList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedBytes();
+ assertEquals(emptyList(), builder.getRepeatedBytesList());
+ assertEquals(
+ singletonList(ByteString.copyFromUtf8("hi")),
+ messageAfterBuild.getRepeatedBytesList());
+
+ message = builder.build();
+ builder.addAllRepeatedCord(singletonList("hi"));
+ assertEquals(emptyList(), message.getRepeatedCordList());
+ assertEquals(singletonList("hi"), builder.getRepeatedCordList());
+ assertEquals(emptyList(), message.getRepeatedCordList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedCord();
+ assertEquals(emptyList(), builder.getRepeatedCordList());
+ assertEquals(singletonList("hi"), messageAfterBuild.getRepeatedCordList());
+
+ message = builder.build();
+ builder.addAllRepeatedDouble(singletonList(1D));
+ assertEquals(emptyList(), message.getRepeatedDoubleList());
+ assertEquals(singletonList(1D), builder.getRepeatedDoubleList());
+ assertEquals(emptyList(), message.getRepeatedDoubleList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedDouble();
+ assertEquals(emptyList(), builder.getRepeatedDoubleList());
+ assertEquals(singletonList(1D), messageAfterBuild.getRepeatedDoubleList());
+
+ message = builder.build();
+ builder.addAllRepeatedFixed32(singletonList(1));
+ assertEquals(emptyList(), message.getRepeatedFixed32List());
+ assertEquals(singletonList(1), builder.getRepeatedFixed32List());
+ assertEquals(emptyList(), message.getRepeatedFixed32List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedFixed32();
+ assertEquals(emptyList(), builder.getRepeatedFixed32List());
+ assertEquals(singletonList(1), messageAfterBuild.getRepeatedFixed32List());
+
+ message = builder.build();
+ builder.addAllRepeatedFixed64(singletonList(1L));
+ assertEquals(emptyList(), message.getRepeatedFixed64List());
+ assertEquals(singletonList(1L), builder.getRepeatedFixed64List());
+ assertEquals(emptyList(), message.getRepeatedFixed64List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedFixed64();
+ assertEquals(emptyList(), builder.getRepeatedFixed64List());
+ assertEquals(singletonList(1L), messageAfterBuild.getRepeatedFixed64List());
+
+ message = builder.build();
+ builder.addAllRepeatedFloat(singletonList(1F));
+ assertEquals(emptyList(), message.getRepeatedFloatList());
+ assertEquals(singletonList(1F), builder.getRepeatedFloatList());
+ assertEquals(emptyList(), message.getRepeatedFloatList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedFloat();
+ assertEquals(emptyList(), builder.getRepeatedFloatList());
+ assertEquals(singletonList(1F), messageAfterBuild.getRepeatedFloatList());
+
+ message = builder.build();
+ builder.addAllRepeatedForeignEnum(
+ singletonList(ForeignEnumLite.FOREIGN_LITE_BAR));
+ assertEquals(emptyList(), message.getRepeatedForeignEnumList());
+ assertEquals(
+ singletonList(ForeignEnumLite.FOREIGN_LITE_BAR),
+ builder.getRepeatedForeignEnumList());
+ assertEquals(emptyList(), message.getRepeatedForeignEnumList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedForeignEnum();
+ assertEquals(emptyList(), builder.getRepeatedForeignEnumList());
+ assertEquals(
+ singletonList(ForeignEnumLite.FOREIGN_LITE_BAR),
+ messageAfterBuild.getRepeatedForeignEnumList());
+
+ message = builder.build();
+ builder.addAllRepeatedForeignMessage(singletonList(foreignMessage));
+ assertEquals(emptyList(), message.getRepeatedForeignMessageList());
+ assertEquals(
+ singletonList(foreignMessage), builder.getRepeatedForeignMessageList());
+ assertEquals(emptyList(), message.getRepeatedForeignMessageList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedForeignMessage();
+ assertEquals(emptyList(), builder.getRepeatedForeignMessageList());
+ assertEquals(
+ singletonList(foreignMessage),
+ messageAfterBuild.getRepeatedForeignMessageList());
+
+ message = builder.build();
+ builder.addAllRepeatedGroup(
+ singletonList(RepeatedGroup.getDefaultInstance()));
+ assertEquals(emptyList(), message.getRepeatedGroupList());
+ assertEquals(
+ singletonList(RepeatedGroup.getDefaultInstance()),
+ builder.getRepeatedGroupList());
+ assertEquals(emptyList(), message.getRepeatedGroupList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedGroup();
+ assertEquals(emptyList(), builder.getRepeatedGroupList());
+ assertEquals(
+ singletonList(RepeatedGroup.getDefaultInstance()),
+ messageAfterBuild.getRepeatedGroupList());
+
+ message = builder.build();
+ builder.addAllRepeatedInt32(singletonList(1));
+ assertEquals(emptyList(), message.getRepeatedInt32List());
+ assertEquals(singletonList(1), builder.getRepeatedInt32List());
+ assertEquals(emptyList(), message.getRepeatedInt32List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedInt32();
+ assertEquals(emptyList(), builder.getRepeatedInt32List());
+ assertEquals(singletonList(1), messageAfterBuild.getRepeatedInt32List());
+
+ message = builder.build();
+ builder.addAllRepeatedInt64(singletonList(1L));
+ assertEquals(emptyList(), message.getRepeatedInt64List());
+ assertEquals(singletonList(1L), builder.getRepeatedInt64List());
+ assertEquals(emptyList(), message.getRepeatedInt64List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedInt64();
+ assertEquals(emptyList(), builder.getRepeatedInt64List());
+ assertEquals(singletonList(1L), messageAfterBuild.getRepeatedInt64List());
+
+ message = builder.build();
+ builder.addAllRepeatedLazyMessage(singletonList(nestedMessage));
+ assertEquals(emptyList(), message.getRepeatedLazyMessageList());
+ assertEquals(
+ singletonList(nestedMessage), builder.getRepeatedLazyMessageList());
+ assertEquals(emptyList(), message.getRepeatedLazyMessageList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedLazyMessage();
+ assertEquals(emptyList(), builder.getRepeatedLazyMessageList());
+ assertEquals(
+ singletonList(nestedMessage),
+ messageAfterBuild.getRepeatedLazyMessageList());
+
+ message = builder.build();
+ builder.addAllRepeatedSfixed32(singletonList(1));
+ assertEquals(emptyList(), message.getRepeatedSfixed32List());
+ assertEquals(singletonList(1), builder.getRepeatedSfixed32List());
+ assertEquals(emptyList(), message.getRepeatedSfixed32List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedSfixed32();
+ assertEquals(emptyList(), builder.getRepeatedSfixed32List());
+ assertEquals(singletonList(1), messageAfterBuild.getRepeatedSfixed32List());
+
+ message = builder.build();
+ builder.addAllRepeatedSfixed64(singletonList(1L));
+ assertEquals(emptyList(), message.getRepeatedSfixed64List());
+ assertEquals(singletonList(1L), builder.getRepeatedSfixed64List());
+ assertEquals(emptyList(), message.getRepeatedSfixed64List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedSfixed64();
+ assertEquals(emptyList(), builder.getRepeatedSfixed64List());
+ assertEquals(
+ singletonList(1L), messageAfterBuild.getRepeatedSfixed64List());
+
+ message = builder.build();
+ builder.addAllRepeatedSint32(singletonList(1));
+ assertEquals(emptyList(), message.getRepeatedSint32List());
+ assertEquals(singletonList(1), builder.getRepeatedSint32List());
+ assertEquals(emptyList(), message.getRepeatedSint32List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedSint32();
+ assertEquals(emptyList(), builder.getRepeatedSint32List());
+ assertEquals(singletonList(1), messageAfterBuild.getRepeatedSint32List());
+
+ message = builder.build();
+ builder.addAllRepeatedSint64(singletonList(1L));
+ assertEquals(emptyList(), message.getRepeatedSint64List());
+ assertEquals(singletonList(1L), builder.getRepeatedSint64List());
+ assertEquals(emptyList(), message.getRepeatedSint64List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedSint64();
+ assertEquals(emptyList(), builder.getRepeatedSint64List());
+ assertEquals(singletonList(1L), messageAfterBuild.getRepeatedSint64List());
+
+ message = builder.build();
+ builder.addAllRepeatedString(singletonList("hi"));
+ assertEquals(emptyList(), message.getRepeatedStringList());
+ assertEquals(singletonList("hi"), builder.getRepeatedStringList());
+ assertEquals(emptyList(), message.getRepeatedStringList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedString();
+ assertEquals(emptyList(), builder.getRepeatedStringList());
+ assertEquals(
+ singletonList("hi"), messageAfterBuild.getRepeatedStringList());
+
+ message = builder.build();
+ builder.addAllRepeatedStringPiece(singletonList("hi"));
+ assertEquals(emptyList(), message.getRepeatedStringPieceList());
+ assertEquals(singletonList("hi"), builder.getRepeatedStringPieceList());
+ assertEquals(emptyList(), message.getRepeatedStringPieceList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedStringPiece();
+ assertEquals(emptyList(), builder.getRepeatedStringPieceList());
+ assertEquals(
+ singletonList("hi"), messageAfterBuild.getRepeatedStringPieceList());
+
+ message = builder.build();
+ builder.addAllRepeatedUint32(singletonList(1));
+ assertEquals(emptyList(), message.getRepeatedUint32List());
+ assertEquals(singletonList(1), builder.getRepeatedUint32List());
+ assertEquals(emptyList(), message.getRepeatedUint32List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedUint32();
+ assertEquals(emptyList(), builder.getRepeatedUint32List());
+ assertEquals(singletonList(1), messageAfterBuild.getRepeatedUint32List());
+
+ message = builder.build();
+ builder.addAllRepeatedUint64(singletonList(1L));
+ assertEquals(emptyList(), message.getRepeatedUint64List());
+ assertEquals(singletonList(1L), builder.getRepeatedUint64List());
+ assertEquals(emptyList(), message.getRepeatedUint64List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedUint64();
+ assertEquals(emptyList(), builder.getRepeatedUint64List());
+ assertEquals(singletonList(1L), messageAfterBuild.getRepeatedUint64List());
+
+ message = builder.build();
+ builder.addRepeatedBool(true);
+ assertEquals(emptyList(), message.getRepeatedBoolList());
+ assertEquals(singletonList(true), builder.getRepeatedBoolList());
+ assertEquals(emptyList(), message.getRepeatedBoolList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedBool();
+ assertEquals(emptyList(), builder.getRepeatedBoolList());
+ assertEquals(singletonList(true), messageAfterBuild.getRepeatedBoolList());
+
+ message = builder.build();
+ builder.addRepeatedBytes(ByteString.copyFromUtf8("hi"));
+ assertEquals(emptyList(), message.getRepeatedBytesList());
+ assertEquals(
+ singletonList(ByteString.copyFromUtf8("hi")),
+ builder.getRepeatedBytesList());
+ assertEquals(emptyList(), message.getRepeatedBytesList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedBytes();
+ assertEquals(emptyList(), builder.getRepeatedBytesList());
+ assertEquals(
+ singletonList(ByteString.copyFromUtf8("hi")),
+ messageAfterBuild.getRepeatedBytesList());
+
+ message = builder.build();
+ builder.addRepeatedCord("hi");
+ assertEquals(emptyList(), message.getRepeatedCordList());
+ assertEquals(singletonList("hi"), builder.getRepeatedCordList());
+ assertEquals(emptyList(), message.getRepeatedCordList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedCord();
+ assertEquals(emptyList(), builder.getRepeatedCordList());
+ assertEquals(singletonList("hi"), messageAfterBuild.getRepeatedCordList());
+
+ message = builder.build();
+ builder.addRepeatedDouble(1D);
+ assertEquals(emptyList(), message.getRepeatedDoubleList());
+ assertEquals(singletonList(1D), builder.getRepeatedDoubleList());
+ assertEquals(emptyList(), message.getRepeatedDoubleList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedDouble();
+ assertEquals(emptyList(), builder.getRepeatedDoubleList());
+ assertEquals(singletonList(1D), messageAfterBuild.getRepeatedDoubleList());
+
+ message = builder.build();
+ builder.addRepeatedFixed32(1);
+ assertEquals(emptyList(), message.getRepeatedFixed32List());
+ assertEquals(singletonList(1), builder.getRepeatedFixed32List());
+ assertEquals(emptyList(), message.getRepeatedFixed32List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedFixed32();
+ assertEquals(emptyList(), builder.getRepeatedFixed32List());
+ assertEquals(singletonList(1), messageAfterBuild.getRepeatedFixed32List());
+
+ message = builder.build();
+ builder.addRepeatedFixed64(1L);
+ assertEquals(emptyList(), message.getRepeatedFixed64List());
+ assertEquals(singletonList(1L), builder.getRepeatedFixed64List());
+ assertEquals(emptyList(), message.getRepeatedFixed64List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedFixed64();
+ assertEquals(emptyList(), builder.getRepeatedFixed64List());
+ assertEquals(singletonList(1L), messageAfterBuild.getRepeatedFixed64List());
+
+ message = builder.build();
+ builder.addRepeatedFloat(1F);
+ assertEquals(emptyList(), message.getRepeatedFloatList());
+ assertEquals(singletonList(1F), builder.getRepeatedFloatList());
+ assertEquals(emptyList(), message.getRepeatedFloatList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedFloat();
+ assertEquals(emptyList(), builder.getRepeatedFloatList());
+ assertEquals(singletonList(1F), messageAfterBuild.getRepeatedFloatList());
+
+ message = builder.build();
+ builder.addRepeatedForeignEnum(ForeignEnumLite.FOREIGN_LITE_BAR);
+ assertEquals(emptyList(), message.getRepeatedForeignEnumList());
+ assertEquals(
+ singletonList(ForeignEnumLite.FOREIGN_LITE_BAR),
+ builder.getRepeatedForeignEnumList());
+ assertEquals(emptyList(), message.getRepeatedForeignEnumList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedForeignEnum();
+ assertEquals(emptyList(), builder.getRepeatedForeignEnumList());
+ assertEquals(
+ singletonList(ForeignEnumLite.FOREIGN_LITE_BAR),
+ messageAfterBuild.getRepeatedForeignEnumList());
+
+ message = builder.build();
+ builder.addRepeatedForeignMessage(foreignMessage);
+ assertEquals(emptyList(), message.getRepeatedForeignMessageList());
+ assertEquals(
+ singletonList(foreignMessage), builder.getRepeatedForeignMessageList());
+ assertEquals(emptyList(), message.getRepeatedForeignMessageList());
+ messageAfterBuild = builder.build();
+ builder.removeRepeatedForeignMessage(0);
+ assertEquals(emptyList(), builder.getRepeatedForeignMessageList());
+ assertEquals(
+ singletonList(foreignMessage),
+ messageAfterBuild.getRepeatedForeignMessageList());
+
+ message = builder.build();
+ builder.addRepeatedGroup(RepeatedGroup.getDefaultInstance());
+ assertEquals(emptyList(), message.getRepeatedGroupList());
+ assertEquals(
+ singletonList(RepeatedGroup.getDefaultInstance()),
+ builder.getRepeatedGroupList());
+ assertEquals(emptyList(), message.getRepeatedGroupList());
+ messageAfterBuild = builder.build();
+ builder.removeRepeatedGroup(0);
+ assertEquals(emptyList(), builder.getRepeatedGroupList());
+ assertEquals(
+ singletonList(RepeatedGroup.getDefaultInstance()),
+ messageAfterBuild.getRepeatedGroupList());
+
+ message = builder.build();
+ builder.addRepeatedInt32(1);
+ assertEquals(emptyList(), message.getRepeatedInt32List());
+ assertEquals(singletonList(1), builder.getRepeatedInt32List());
+ assertEquals(emptyList(), message.getRepeatedInt32List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedInt32();
+ assertEquals(emptyList(), builder.getRepeatedInt32List());
+ assertEquals(singletonList(1), messageAfterBuild.getRepeatedInt32List());
+
+ message = builder.build();
+ builder.addRepeatedInt64(1L);
+ assertEquals(emptyList(), message.getRepeatedInt64List());
+ assertEquals(singletonList(1L), builder.getRepeatedInt64List());
+ assertEquals(emptyList(), message.getRepeatedInt64List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedInt64();
+ assertEquals(emptyList(), builder.getRepeatedInt64List());
+ assertEquals(singletonList(1L), messageAfterBuild.getRepeatedInt64List());
+
+ message = builder.build();
+ builder.addRepeatedLazyMessage(nestedMessage);
+ assertEquals(emptyList(), message.getRepeatedLazyMessageList());
+ assertEquals(
+ singletonList(nestedMessage), builder.getRepeatedLazyMessageList());
+ assertEquals(emptyList(), message.getRepeatedLazyMessageList());
+ messageAfterBuild = builder.build();
+ builder.removeRepeatedLazyMessage(0);
+ assertEquals(emptyList(), builder.getRepeatedLazyMessageList());
+ assertEquals(
+ singletonList(nestedMessage),
+ messageAfterBuild.getRepeatedLazyMessageList());
+
+ message = builder.build();
+ builder.addRepeatedSfixed32(1);
+ assertEquals(emptyList(), message.getRepeatedSfixed32List());
+ assertEquals(singletonList(1), builder.getRepeatedSfixed32List());
+ assertEquals(emptyList(), message.getRepeatedSfixed32List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedSfixed32();
+ assertEquals(emptyList(), builder.getRepeatedSfixed32List());
+ assertEquals(singletonList(1), messageAfterBuild.getRepeatedSfixed32List());
+
+ message = builder.build();
+ builder.addRepeatedSfixed64(1L);
+ assertEquals(emptyList(), message.getRepeatedSfixed64List());
+ assertEquals(singletonList(1L), builder.getRepeatedSfixed64List());
+ assertEquals(emptyList(), message.getRepeatedSfixed64List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedSfixed64();
+ assertEquals(emptyList(), builder.getRepeatedSfixed64List());
+ assertEquals(
+ singletonList(1L), messageAfterBuild.getRepeatedSfixed64List());
+
+ message = builder.build();
+ builder.addRepeatedSint32(1);
+ assertEquals(emptyList(), message.getRepeatedSint32List());
+ assertEquals(singletonList(1), builder.getRepeatedSint32List());
+ assertEquals(emptyList(), message.getRepeatedSint32List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedSint32();
+ assertEquals(emptyList(), builder.getRepeatedSint32List());
+ assertEquals(singletonList(1), messageAfterBuild.getRepeatedSint32List());
+
+ message = builder.build();
+ builder.addRepeatedSint64(1L);
+ assertEquals(emptyList(), message.getRepeatedSint64List());
+ assertEquals(singletonList(1L), builder.getRepeatedSint64List());
+ assertEquals(emptyList(), message.getRepeatedSint64List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedSint64();
+ assertEquals(emptyList(), builder.getRepeatedSint64List());
+ assertEquals(singletonList(1L), messageAfterBuild.getRepeatedSint64List());
+
+ message = builder.build();
+ builder.addRepeatedString("hi");
+ assertEquals(emptyList(), message.getRepeatedStringList());
+ assertEquals(singletonList("hi"), builder.getRepeatedStringList());
+ assertEquals(emptyList(), message.getRepeatedStringList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedString();
+ assertEquals(emptyList(), builder.getRepeatedStringList());
+ assertEquals(
+ singletonList("hi"), messageAfterBuild.getRepeatedStringList());
+
+ message = builder.build();
+ builder.addRepeatedStringPiece("hi");
+ assertEquals(emptyList(), message.getRepeatedStringPieceList());
+ assertEquals(singletonList("hi"), builder.getRepeatedStringPieceList());
+ assertEquals(emptyList(), message.getRepeatedStringPieceList());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedStringPiece();
+ assertEquals(emptyList(), builder.getRepeatedStringPieceList());
+ assertEquals(
+ singletonList("hi"), messageAfterBuild.getRepeatedStringPieceList());
+
+ message = builder.build();
+ builder.addRepeatedUint32(1);
+ assertEquals(emptyList(), message.getRepeatedUint32List());
+ assertEquals(singletonList(1), builder.getRepeatedUint32List());
+ assertEquals(emptyList(), message.getRepeatedUint32List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedUint32();
+ assertEquals(emptyList(), builder.getRepeatedUint32List());
+ assertEquals(singletonList(1), messageAfterBuild.getRepeatedUint32List());
+
+ message = builder.build();
+ builder.addRepeatedUint64(1L);
+ assertEquals(emptyList(), message.getRepeatedUint64List());
+ assertEquals(singletonList(1L), builder.getRepeatedUint64List());
+ assertEquals(emptyList(), message.getRepeatedUint64List());
+ messageAfterBuild = builder.build();
+ builder.clearRepeatedUint64();
+ assertEquals(emptyList(), builder.getRepeatedUint64List());
+ assertEquals(singletonList(1L), messageAfterBuild.getRepeatedUint64List());
+
+ message = builder.build();
+ builder.addRepeatedBool(true);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedBoolCount());
+ builder.setRepeatedBool(0, false);
+ assertEquals(true, messageAfterBuild.getRepeatedBool(0));
+ assertEquals(false, builder.getRepeatedBool(0));
+ builder.clearRepeatedBool();
+
+ message = builder.build();
+ builder.addRepeatedBytes(ByteString.copyFromUtf8("hi"));
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedBytesCount());
+ builder.setRepeatedBytes(0, ByteString.EMPTY);
+ assertEquals(
+ ByteString.copyFromUtf8("hi"), messageAfterBuild.getRepeatedBytes(0));
+ assertEquals(ByteString.EMPTY, builder.getRepeatedBytes(0));
+ builder.clearRepeatedBytes();
+
+ message = builder.build();
+ builder.addRepeatedCord("hi");
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedCordCount());
+ builder.setRepeatedCord(0, "");
+ assertEquals("hi", messageAfterBuild.getRepeatedCord(0));
+ assertEquals("", builder.getRepeatedCord(0));
+ builder.clearRepeatedCord();
+ message = builder.build();
+
+ builder.addRepeatedCordBytes(ByteString.copyFromUtf8("hi"));
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedCordCount());
+ builder.setRepeatedCord(0, "");
+ assertEquals(
+ ByteString.copyFromUtf8("hi"), messageAfterBuild.getRepeatedCordBytes(0));
+ assertEquals(ByteString.EMPTY, builder.getRepeatedCordBytes(0));
+ builder.clearRepeatedCord();
+
+ message = builder.build();
+ builder.addRepeatedDouble(1D);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedDoubleCount());
+ builder.setRepeatedDouble(0, 0D);
+ assertEquals(1D, messageAfterBuild.getRepeatedDouble(0));
+ assertEquals(0D, builder.getRepeatedDouble(0));
+ builder.clearRepeatedDouble();
+
+ message = builder.build();
+ builder.addRepeatedFixed32(1);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedFixed32Count());
+ builder.setRepeatedFixed32(0, 0);
+ assertEquals(1, messageAfterBuild.getRepeatedFixed32(0));
+ assertEquals(0, builder.getRepeatedFixed32(0));
+ builder.clearRepeatedFixed32();
+
+ message = builder.build();
+ builder.addRepeatedFixed64(1L);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedFixed64Count());
+ builder.setRepeatedFixed64(0, 0L);
+ assertEquals(1L, messageAfterBuild.getRepeatedFixed64(0));
+ assertEquals(0L, builder.getRepeatedFixed64(0));
+ builder.clearRepeatedFixed64();
+
+ message = builder.build();
+ builder.addRepeatedFloat(1F);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedFloatCount());
+ builder.setRepeatedFloat(0, 0F);
+ assertEquals(1F, messageAfterBuild.getRepeatedFloat(0));
+ assertEquals(0F, builder.getRepeatedFloat(0));
+ builder.clearRepeatedFloat();
+
+ message = builder.build();
+ builder.addRepeatedForeignEnum(ForeignEnumLite.FOREIGN_LITE_BAR);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedForeignEnumCount());
+ builder.setRepeatedForeignEnum(0, ForeignEnumLite.FOREIGN_LITE_FOO);
+ assertEquals(
+ ForeignEnumLite.FOREIGN_LITE_BAR,
+ messageAfterBuild.getRepeatedForeignEnum(0));
+ assertEquals(
+ ForeignEnumLite.FOREIGN_LITE_FOO, builder.getRepeatedForeignEnum(0));
+ builder.clearRepeatedForeignEnum();
+
+ message = builder.build();
+ builder.addRepeatedForeignMessage(foreignMessage);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedForeignMessageCount());
+ builder.setRepeatedForeignMessage(
+ 0, ForeignMessageLite.getDefaultInstance());
+ assertEquals(
+ foreignMessage, messageAfterBuild.getRepeatedForeignMessage(0));
+ assertEquals(
+ ForeignMessageLite.getDefaultInstance(),
+ builder.getRepeatedForeignMessage(0));
+ builder.clearRepeatedForeignMessage();
+
+ message = builder.build();
+ builder.addRepeatedForeignMessage(foreignMessageBuilder);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedForeignMessageCount());
+ builder.setRepeatedForeignMessage(
+ 0, ForeignMessageLite.getDefaultInstance());
+ // LITE_RUNTIME doesn't implement equals so we compare on a property.
+ assertEquals(3, messageAfterBuild.getRepeatedForeignMessage(0).getC());
+ assertEquals(
+ ForeignMessageLite.getDefaultInstance(),
+ builder.getRepeatedForeignMessage(0));
+ builder.clearRepeatedForeignMessage();
+
+ message = builder.build();
+ builder.addRepeatedForeignMessage(0, foreignMessage);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedForeignMessageCount());
+ builder.setRepeatedForeignMessage(0, foreignMessageBuilder);
+ assertEquals(
+ foreignMessage, messageAfterBuild.getRepeatedForeignMessage(0));
+ // LITE_RUNTIME doesn't implement equals so we compare on a property.
+ assertEquals(3, builder.getRepeatedForeignMessage(0).getC());
+ builder.clearRepeatedForeignMessage();
+
+ message = builder.build();
+ RepeatedGroup repeatedGroup = RepeatedGroup.newBuilder()
+ .setA(1)
+ .build();
+ builder.addRepeatedGroup(repeatedGroup);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedGroupCount());
+ builder.setRepeatedGroup(0, RepeatedGroup.getDefaultInstance());
+ assertEquals(repeatedGroup, messageAfterBuild.getRepeatedGroup(0));
+ assertEquals(
+ RepeatedGroup.getDefaultInstance(), builder.getRepeatedGroup(0));
+ builder.clearRepeatedGroup();
+
+ message = builder.build();
+ builder.addRepeatedGroup(0, repeatedGroup);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedGroupCount());
+ builder.setRepeatedGroup(0, RepeatedGroup.getDefaultInstance());
+ assertEquals(repeatedGroup, messageAfterBuild.getRepeatedGroup(0));
+ assertEquals(
+ RepeatedGroup.getDefaultInstance(), builder.getRepeatedGroup(0));
+ builder.clearRepeatedGroup();
+
+ message = builder.build();
+ RepeatedGroup.Builder repeatedGroupBuilder = RepeatedGroup.newBuilder()
+ .setA(3);
+ builder.addRepeatedGroup(repeatedGroupBuilder);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedGroupCount());
+ builder.setRepeatedGroup(0, RepeatedGroup.getDefaultInstance());
+ // LITE_RUNTIME doesn't implement equals so we compare on a property and
+ // ensure the property isn't set on repeatedGroup.
+ assertEquals(3, messageAfterBuild.getRepeatedGroup(0).getA());
+ assertEquals(
+ RepeatedGroup.getDefaultInstance(), builder.getRepeatedGroup(0));
+ builder.clearRepeatedGroup();
+
+ message = builder.build();
+ builder.addRepeatedGroup(0, repeatedGroupBuilder);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedGroupCount());
+ builder.setRepeatedGroup(0, RepeatedGroup.getDefaultInstance());
+ // LITE_RUNTIME doesn't implement equals so we compare on a property and
+ // ensure the property isn't set on repeatedGroup.
+ assertEquals(3, messageAfterBuild.getRepeatedGroup(0).getA());
+ assertEquals(
+ RepeatedGroup.getDefaultInstance(), builder.getRepeatedGroup(0));
+ builder.clearRepeatedGroup();
+
+ message = builder.build();
+ builder.addRepeatedInt32(1);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedInt32Count());
+ builder.setRepeatedInt32(0, 0);
+ assertEquals(1, messageAfterBuild.getRepeatedInt32(0));
+ assertEquals(0, builder.getRepeatedInt32(0));
+ builder.clearRepeatedInt32();
+
+ message = builder.build();
+ builder.addRepeatedInt64(1L);
+ messageAfterBuild = builder.build();
+ assertEquals(0L, message.getRepeatedInt64Count());
+ builder.setRepeatedInt64(0, 0L);
+ assertEquals(1L, messageAfterBuild.getRepeatedInt64(0));
+ assertEquals(0L, builder.getRepeatedInt64(0));
+ builder.clearRepeatedInt64();
+
+ message = builder.build();
+ builder.addRepeatedLazyMessage(nestedMessage);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedLazyMessageCount());
+ builder.setRepeatedLazyMessage(0, NestedMessage.getDefaultInstance());
+ assertEquals(nestedMessage, messageAfterBuild.getRepeatedLazyMessage(0));
+ assertEquals(
+ NestedMessage.getDefaultInstance(), builder.getRepeatedLazyMessage(0));
+ builder.clearRepeatedLazyMessage();
+
+ message = builder.build();
+ builder.addRepeatedLazyMessage(0, nestedMessage);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedLazyMessageCount());
+ builder.setRepeatedLazyMessage(0, NestedMessage.getDefaultInstance());
+ assertEquals(nestedMessage, messageAfterBuild.getRepeatedLazyMessage(0));
+ assertEquals(
+ NestedMessage.getDefaultInstance(), builder.getRepeatedLazyMessage(0));
+ builder.clearRepeatedLazyMessage();
+
+ message = builder.build();
+ builder.addRepeatedLazyMessage(nestedMessageBuilder);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedLazyMessageCount());
+ builder.setRepeatedLazyMessage(0, NestedMessage.getDefaultInstance());
+ // LITE_RUNTIME doesn't implement equals so we compare on a property and
+ // ensure the property isn't set on repeatedGroup.
+ assertEquals(3, messageAfterBuild.getRepeatedLazyMessage(0).getBb());
+ assertEquals(
+ NestedMessage.getDefaultInstance(), builder.getRepeatedLazyMessage(0));
+ builder.clearRepeatedLazyMessage();
+
+ message = builder.build();
+ builder.addRepeatedLazyMessage(0, nestedMessageBuilder);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedLazyMessageCount());
+ builder.setRepeatedLazyMessage(0, NestedMessage.getDefaultInstance());
+ // LITE_RUNTIME doesn't implement equals so we compare on a property and
+ // ensure the property isn't set on repeatedGroup.
+ assertEquals(3, messageAfterBuild.getRepeatedLazyMessage(0).getBb());
+ assertEquals(
+ NestedMessage.getDefaultInstance(), builder.getRepeatedLazyMessage(0));
+ builder.clearRepeatedLazyMessage();
+
+ message = builder.build();
+ builder.addRepeatedSfixed32(1);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedSfixed32Count());
+ builder.setRepeatedSfixed32(0, 0);
+ assertEquals(1, messageAfterBuild.getRepeatedSfixed32(0));
+ assertEquals(0, builder.getRepeatedSfixed32(0));
+ builder.clearRepeatedSfixed32();
+
+ message = builder.build();
+ builder.addRepeatedSfixed64(1L);
+ messageAfterBuild = builder.build();
+ assertEquals(0L, message.getRepeatedSfixed64Count());
+ builder.setRepeatedSfixed64(0, 0L);
+ assertEquals(1L, messageAfterBuild.getRepeatedSfixed64(0));
+ assertEquals(0L, builder.getRepeatedSfixed64(0));
+ builder.clearRepeatedSfixed64();
+
+ message = builder.build();
+ builder.addRepeatedSint32(1);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedSint32Count());
+ builder.setRepeatedSint32(0, 0);
+ assertEquals(1, messageAfterBuild.getRepeatedSint32(0));
+ assertEquals(0, builder.getRepeatedSint32(0));
+ builder.clearRepeatedSint32();
+
+ message = builder.build();
+ builder.addRepeatedSint64(1L);
+ messageAfterBuild = builder.build();
+ assertEquals(0L, message.getRepeatedSint64Count());
+ builder.setRepeatedSint64(0, 0L);
+ assertEquals(1L, messageAfterBuild.getRepeatedSint64(0));
+ assertEquals(0L, builder.getRepeatedSint64(0));
+ builder.clearRepeatedSint64();
+
+ message = builder.build();
+ builder.addRepeatedString("hi");
+ messageAfterBuild = builder.build();
+ assertEquals(0L, message.getRepeatedStringCount());
+ builder.setRepeatedString(0, "");
+ assertEquals("hi", messageAfterBuild.getRepeatedString(0));
+ assertEquals("", builder.getRepeatedString(0));
+ builder.clearRepeatedString();
+
+ message = builder.build();
+ builder.addRepeatedStringBytes(ByteString.copyFromUtf8("hi"));
+ messageAfterBuild = builder.build();
+ assertEquals(0L, message.getRepeatedStringCount());
+ builder.setRepeatedString(0, "");
+ assertEquals(
+ ByteString.copyFromUtf8("hi"),
+ messageAfterBuild.getRepeatedStringBytes(0));
+ assertEquals(ByteString.EMPTY, builder.getRepeatedStringBytes(0));
+ builder.clearRepeatedString();
+
+ message = builder.build();
+ builder.addRepeatedStringPiece("hi");
+ messageAfterBuild = builder.build();
+ assertEquals(0L, message.getRepeatedStringPieceCount());
+ builder.setRepeatedStringPiece(0, "");
+ assertEquals("hi", messageAfterBuild.getRepeatedStringPiece(0));
+ assertEquals("", builder.getRepeatedStringPiece(0));
+ builder.clearRepeatedStringPiece();
+
+ message = builder.build();
+ builder.addRepeatedStringPieceBytes(ByteString.copyFromUtf8("hi"));
+ messageAfterBuild = builder.build();
+ assertEquals(0L, message.getRepeatedStringPieceCount());
+ builder.setRepeatedStringPiece(0, "");
+ assertEquals(
+ ByteString.copyFromUtf8("hi"),
+ messageAfterBuild.getRepeatedStringPieceBytes(0));
+ assertEquals(ByteString.EMPTY, builder.getRepeatedStringPieceBytes(0));
+ builder.clearRepeatedStringPiece();
+
+ message = builder.build();
+ builder.addRepeatedUint32(1);
+ messageAfterBuild = builder.build();
+ assertEquals(0, message.getRepeatedUint32Count());
+ builder.setRepeatedUint32(0, 0);
+ assertEquals(1, messageAfterBuild.getRepeatedUint32(0));
+ assertEquals(0, builder.getRepeatedUint32(0));
+ builder.clearRepeatedUint32();
+
+ message = builder.build();
+ builder.addRepeatedUint64(1L);
+ messageAfterBuild = builder.build();
+ assertEquals(0L, message.getRepeatedUint64Count());
+ builder.setRepeatedUint64(0, 0L);
+ assertEquals(1L, messageAfterBuild.getRepeatedUint64(0));
+ assertEquals(0L, builder.getRepeatedUint64(0));
+ builder.clearRepeatedUint64();
+
+ message = builder.build();
+ assertEquals(0, message.getSerializedSize());
+ builder.mergeFrom(TestAllTypesLite.newBuilder()
+ .setOptionalBool(true)
+ .build());
+ assertEquals(0, message.getSerializedSize());
+ assertEquals(true, builder.build().getOptionalBool());
+ builder.clearOptionalBool();
+
+ message = builder.build();
+ assertEquals(0, message.getSerializedSize());
+ builder.mergeFrom(TestAllTypesLite.newBuilder()
+ .setOptionalBool(true)
+ .build());
+ assertEquals(0, message.getSerializedSize());
+ assertEquals(true, builder.build().getOptionalBool());
+ builder.clear();
+ assertEquals(0, builder.build().getSerializedSize());
+
+ message = builder.build();
+ assertEquals(0, message.getSerializedSize());
+ builder.mergeOptionalForeignMessage(foreignMessage);
+ assertEquals(0, message.getSerializedSize());
+ assertEquals(
+ foreignMessage.getC(),
+ builder.build().getOptionalForeignMessage().getC());
+ builder.clearOptionalForeignMessage();
+
+ message = builder.build();
+ assertEquals(0, message.getSerializedSize());
+ builder.mergeOptionalLazyMessage(nestedMessage);
+ assertEquals(0, message.getSerializedSize());
+ assertEquals(
+ nestedMessage.getBb(),
+ builder.build().getOptionalLazyMessage().getBb());
+ builder.clearOptionalLazyMessage();
+
+ message = builder.build();
+ builder.setOneofString("hi");
+ assertEquals(
+ OneofFieldCase.ONEOFFIELD_NOT_SET, message.getOneofFieldCase());
+ assertEquals(OneofFieldCase.ONEOF_STRING, builder.getOneofFieldCase());
+ assertEquals("hi", builder.getOneofString());
+ messageAfterBuild = builder.build();
+ assertEquals(
+ OneofFieldCase.ONEOF_STRING, messageAfterBuild.getOneofFieldCase());
+ assertEquals("hi", messageAfterBuild.getOneofString());
+ builder.setOneofUint32(1);
+ assertEquals(
+ OneofFieldCase.ONEOF_STRING, messageAfterBuild.getOneofFieldCase());
+ assertEquals("hi", messageAfterBuild.getOneofString());
+ assertEquals(OneofFieldCase.ONEOF_UINT32, builder.getOneofFieldCase());
+ assertEquals(1, builder.getOneofUint32());
+
+ TestAllExtensionsLite.Builder extendableMessageBuilder =
+ TestAllExtensionsLite.newBuilder();
+ TestAllExtensionsLite extendableMessage = extendableMessageBuilder.build();
+ extendableMessageBuilder.setExtension(
+ UnittestLite.optionalInt32ExtensionLite, 1);
+ assertFalse(extendableMessage.hasExtension(
+ UnittestLite.optionalInt32ExtensionLite));
+ extendableMessage = extendableMessageBuilder.build();
+ assertEquals(
+ 1, (int) extendableMessageBuilder.getExtension(
+ UnittestLite.optionalInt32ExtensionLite));
+ assertEquals(
+ 1, (int) extendableMessage.getExtension(
+ UnittestLite.optionalInt32ExtensionLite));
+ extendableMessageBuilder.setExtension(
+ UnittestLite.optionalInt32ExtensionLite, 3);
+ assertEquals(
+ 3, (int) extendableMessageBuilder.getExtension(
+ UnittestLite.optionalInt32ExtensionLite));
+ assertEquals(
+ 1, (int) extendableMessage.getExtension(
+ UnittestLite.optionalInt32ExtensionLite));
+ extendableMessage = extendableMessageBuilder.build();
+ assertEquals(
+ 3, (int) extendableMessageBuilder.getExtension(
+ UnittestLite.optionalInt32ExtensionLite));
+ assertEquals(
+ 3, (int) extendableMessage.getExtension(
+ UnittestLite.optionalInt32ExtensionLite));
+
+ // No extension registry, so it should be in unknown fields.
+ extendableMessage =
+ TestAllExtensionsLite.parseFrom(extendableMessage.toByteArray());
+ assertFalse(extendableMessage.hasExtension(
+ UnittestLite.optionalInt32ExtensionLite));
+
+ extendableMessageBuilder = extendableMessage.toBuilder();
+ extendableMessageBuilder.mergeFrom(TestAllExtensionsLite.newBuilder()
+ .setExtension(UnittestLite.optionalFixed32ExtensionLite, 11)
+ .build());
+
+ extendableMessage = extendableMessageBuilder.build();
+ ExtensionRegistryLite registry = ExtensionRegistryLite.newInstance();
+ UnittestLite.registerAllExtensions(registry);
+ extendableMessage = TestAllExtensionsLite.parseFrom(
+ extendableMessage.toByteArray(), registry);
+
+ // The unknown field was preserved.
+ assertEquals(
+ 3, (int) extendableMessage.getExtension(
+ UnittestLite.optionalInt32ExtensionLite));
+ assertEquals(
+ 11, (int) extendableMessage.getExtension(
+ UnittestLite.optionalFixed32ExtensionLite));
}
}
diff --git a/java/src/test/java/com/google/protobuf/LiteralByteStringTest.java b/java/src/test/java/com/google/protobuf/LiteralByteStringTest.java
index 7b201a9d..958b6a7e 100644
--- a/java/src/test/java/com/google/protobuf/LiteralByteStringTest.java
+++ b/java/src/test/java/com/google/protobuf/LiteralByteStringTest.java
@@ -307,7 +307,8 @@ public class LiteralByteStringTest extends TestCase {
public void testToString_returnsCanonicalEmptyString() throws UnsupportedEncodingException{
assertSame(classUnderTest + " must be the same string references",
- ByteString.EMPTY.toString(Internal.UTF_8), new LiteralByteString(new byte[]{}).toString(Internal.UTF_8));
+ ByteString.EMPTY.toString(Internal.UTF_8),
+ new LiteralByteString(new byte[]{}).toString(Internal.UTF_8));
}
public void testToString_raisesException() throws UnsupportedEncodingException{
diff --git a/java/src/test/java/com/google/protobuf/LongArrayListTest.java b/java/src/test/java/com/google/protobuf/LongArrayListTest.java
new file mode 100644
index 00000000..3a52ec7f
--- /dev/null
+++ b/java/src/test/java/com/google/protobuf/LongArrayListTest.java
@@ -0,0 +1,473 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import static java.util.Arrays.asList;
+
+import junit.framework.TestCase;
+
+import java.util.Collections;
+import java.util.ConcurrentModificationException;
+import java.util.Iterator;
+
+/**
+ * Tests for {@link LongArrayList}.
+ *
+ * @author dweis@google.com (Daniel Weis)
+ */
+public class LongArrayListTest extends TestCase {
+
+ private static final LongArrayList UNARY_LIST = newImmutableLongArrayList(1);
+ private static final LongArrayList TERTIARY_LIST =
+ newImmutableLongArrayList(1, 2, 3);
+
+ private LongArrayList list;
+
+ @Override
+ protected void setUp() throws Exception {
+ list = new LongArrayList();
+ }
+
+ public void testEmptyListReturnsSameInstance() {
+ assertSame(LongArrayList.emptyList(), LongArrayList.emptyList());
+ }
+
+ public void testEmptyListIsImmutable() {
+ assertImmutable(LongArrayList.emptyList());
+ }
+
+ public void testMakeImmutable() {
+ list.addLong(2);
+ list.addLong(4);
+ list.addLong(6);
+ list.addLong(8);
+ list.makeImmutable();
+ assertImmutable(list);
+ }
+
+ public void testCopyConstructor() {
+ LongArrayList copy = new LongArrayList(TERTIARY_LIST);
+ assertEquals(TERTIARY_LIST, copy);
+
+ copy = new LongArrayList(LongArrayList.emptyList());
+ assertEquals(LongArrayList.emptyList(), copy);
+
+ copy = new LongArrayList(asList(1L, 2L, 3L));
+ assertEquals(asList(1L, 2L, 3L), copy);
+
+ copy = new LongArrayList(Collections.<Long>emptyList());
+ assertEquals(LongArrayList.emptyList(), copy);
+ }
+
+ public void testModificationWithIteration() {
+ list.addAll(asList(1L, 2L, 3L, 4L));
+ Iterator<Long> iterator = list.iterator();
+ assertEquals(4, list.size());
+ assertEquals(1, (long) list.get(0));
+ assertEquals(1, (long) iterator.next());
+ list.set(0, 1L);
+ assertEquals(2, (long) iterator.next());
+
+ list.remove(0);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+
+ iterator = list.iterator();
+ list.add(0, 0L);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+ }
+
+ public void testGet() {
+ assertEquals(1, (long) TERTIARY_LIST.get(0));
+ assertEquals(2, (long) TERTIARY_LIST.get(1));
+ assertEquals(3, (long) TERTIARY_LIST.get(2));
+
+ try {
+ TERTIARY_LIST.get(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ TERTIARY_LIST.get(3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testGetLong() {
+ assertEquals(1, TERTIARY_LIST.getLong(0));
+ assertEquals(2, TERTIARY_LIST.getLong(1));
+ assertEquals(3, TERTIARY_LIST.getLong(2));
+
+ try {
+ TERTIARY_LIST.get(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ TERTIARY_LIST.get(3);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testSize() {
+ assertEquals(0, LongArrayList.emptyList().size());
+ assertEquals(1, UNARY_LIST.size());
+ assertEquals(3, TERTIARY_LIST.size());
+
+ list.addLong(2);
+ list.addLong(4);
+ list.addLong(6);
+ list.addLong(8);
+ assertEquals(4, list.size());
+
+ list.remove(0);
+ assertEquals(3, list.size());
+
+ list.add(16L);
+ assertEquals(4, list.size());
+ }
+
+ public void testSet() {
+ list.addLong(2);
+ list.addLong(4);
+
+ assertEquals(2, (long) list.set(0, 0L));
+ assertEquals(0, list.getLong(0));
+
+ assertEquals(4, (long) list.set(1, 0L));
+ assertEquals(0, list.getLong(1));
+
+ try {
+ list.set(-1, 0L);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.set(2, 0L);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testSetLong() {
+ list.addLong(2);
+ list.addLong(4);
+
+ assertEquals(2, list.setLong(0, 0));
+ assertEquals(0, list.getLong(0));
+
+ assertEquals(4, list.setLong(1, 0));
+ assertEquals(0, list.getLong(1));
+
+ try {
+ list.setLong(-1, 0);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.setLong(2, 0);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testAdd() {
+ assertEquals(0, list.size());
+
+ assertTrue(list.add(2L));
+ assertEquals(asList(2L), list);
+
+ assertTrue(list.add(3L));
+ list.add(0, 4L);
+ assertEquals(asList(4L, 2L, 3L), list);
+
+ list.add(0, 1L);
+ list.add(0, 0L);
+ // Force a resize by getting up to 11 elements.
+ for (int i = 0; i < 6; i++) {
+ list.add(Long.valueOf(5 + i));
+ }
+ assertEquals(asList(0L, 1L, 4L, 2L, 3L, 5L, 6L, 7L, 8L, 9L, 10L), list);
+
+ try {
+ list.add(-1, 5L);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.add(4, 5L);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ public void testAddLong() {
+ assertEquals(0, list.size());
+
+ list.addLong(2);
+ assertEquals(asList(2L), list);
+
+ list.addLong(3);
+ assertEquals(asList(2L, 3L), list);
+ }
+
+ public void testAddAll() {
+ assertEquals(0, list.size());
+
+ assertTrue(list.addAll(Collections.singleton(1L)));
+ assertEquals(1, list.size());
+ assertEquals(1, (long) list.get(0));
+ assertEquals(1, list.getLong(0));
+
+ assertTrue(list.addAll(asList(2L, 3L, 4L, 5L, 6L)));
+ assertEquals(asList(1L, 2L, 3L, 4L, 5L, 6L), list);
+
+ assertTrue(list.addAll(TERTIARY_LIST));
+ assertEquals(asList(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L), list);
+
+ assertFalse(list.addAll(Collections.<Long>emptyList()));
+ assertFalse(list.addAll(LongArrayList.emptyList()));
+ }
+
+ public void testRemove() {
+ list.addAll(TERTIARY_LIST);
+ assertEquals(1, (long) list.remove(0));
+ assertEquals(asList(2L, 3L), list);
+
+ assertTrue(list.remove(3L));
+ assertEquals(asList(2L), list);
+
+ assertFalse(list.remove(3L));
+ assertEquals(asList(2L), list);
+
+ assertEquals(2, (long) list.remove(0));
+ assertEquals(asList(), list);
+
+ try {
+ list.remove(-1);
+ fail();
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+
+ try {
+ list.remove(0);
+ } catch (IndexOutOfBoundsException e) {
+ // expected
+ }
+ }
+
+ private void assertImmutable(LongArrayList list) {
+ if (list.contains(1)) {
+ throw new RuntimeException("Cannot test the immutability of lists that contain 1.");
+ }
+
+ try {
+ list.add(1L);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.add(0, 1L);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.<Long>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.singletonList(1L));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(new LongArrayList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.singleton(1L));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.<Long>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addLong(0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.clear();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(1);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.<Long>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.<Long>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.set(0, 0L);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.setLong(0, 0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ }
+
+ private static LongArrayList newImmutableLongArrayList(long... elements) {
+ LongArrayList list = new LongArrayList();
+ for (long element : elements) {
+ list.addLong(element);
+ }
+ list.makeImmutable();
+ return list;
+ }
+}
diff --git a/java/src/test/java/com/google/protobuf/MapForProto2LiteTest.java b/java/src/test/java/com/google/protobuf/MapForProto2LiteTest.java
index 22dbeb76..6cff689f 100644
--- a/java/src/test/java/com/google/protobuf/MapForProto2LiteTest.java
+++ b/java/src/test/java/com/google/protobuf/MapForProto2LiteTest.java
@@ -36,6 +36,11 @@ import map_lite_test.MapForProto2TestProto.TestUnknownEnumValue;
import junit.framework.TestCase;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* Unit tests for map fields.
*/
@@ -170,6 +175,140 @@ public class MapForProto2LiteTest extends TestCase {
assertEquals(0, message.getStringToInt32Field().size());
}
+ public void testSanityCopyOnWrite() throws InvalidProtocolBufferException {
+ // Since builders are implemented as a thin wrapper around a message
+ // instance, we attempt to verify that we can't cause the builder to modify
+ // a produced message.
+
+ TestMap.Builder builder = TestMap.newBuilder();
+ TestMap message = builder.build();
+ Map<Integer, Integer> intMap = builder.getMutableInt32ToInt32Field();
+ intMap.put(1, 2);
+ assertTrue(message.getInt32ToInt32Field().isEmpty());
+ message = builder.build();
+ try {
+ intMap.put(2, 3);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, 2), message.getInt32ToInt32Field());
+ assertEquals(newMap(1, 2), builder.getInt32ToInt32Field());
+ builder.getMutableInt32ToInt32Field().put(2, 3);
+ assertEquals(newMap(1, 2), message.getInt32ToInt32Field());
+ assertEquals(newMap(1, 2, 2, 3), builder.getInt32ToInt32Field());
+ }
+
+ public void testMutableMapLifecycle() {
+ TestMap.Builder builder = TestMap.newBuilder();
+ Map<Integer, Integer> intMap = builder.getMutableInt32ToInt32Field();
+ intMap.put(1, 2);
+ assertEquals(newMap(1, 2), builder.build().getInt32ToInt32Field());
+ try {
+ intMap.put(2, 3);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, 2), builder.getInt32ToInt32Field());
+ builder.getMutableInt32ToInt32Field().put(2, 3);
+ assertEquals(newMap(1, 2, 2, 3), builder.getInt32ToInt32Field());
+
+ Map<Integer, TestMap.EnumValue> enumMap = builder.getMutableInt32ToEnumField();
+ enumMap.put(1, TestMap.EnumValue.BAR);
+ assertEquals(newMap(1, TestMap.EnumValue.BAR), builder.build().getInt32ToEnumField());
+ try {
+ enumMap.put(2, TestMap.EnumValue.FOO);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, TestMap.EnumValue.BAR), builder.getInt32ToEnumField());
+ builder.getMutableInt32ToEnumField().put(2, TestMap.EnumValue.FOO);
+ assertEquals(
+ newMap(1, TestMap.EnumValue.BAR, 2, TestMap.EnumValue.FOO),
+ builder.getInt32ToEnumField());
+
+ Map<Integer, String> stringMap = builder.getMutableInt32ToStringField();
+ stringMap.put(1, "1");
+ assertEquals(newMap(1, "1"), builder.build().getInt32ToStringField());
+ try {
+ stringMap.put(2, "2");
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, "1"), builder.getInt32ToStringField());
+ builder.getMutableInt32ToStringField().put(2, "2");
+ assertEquals(
+ newMap(1, "1", 2, "2"),
+ builder.getInt32ToStringField());
+
+ Map<Integer, TestMap.MessageValue> messageMap = builder.getMutableInt32ToMessageField();
+ messageMap.put(1, TestMap.MessageValue.getDefaultInstance());
+ assertEquals(newMap(1, TestMap.MessageValue.getDefaultInstance()),
+ builder.build().getInt32ToMessageField());
+ try {
+ messageMap.put(2, TestMap.MessageValue.getDefaultInstance());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, TestMap.MessageValue.getDefaultInstance()),
+ builder.getInt32ToMessageField());
+ builder.getMutableInt32ToMessageField().put(2, TestMap.MessageValue.getDefaultInstance());
+ assertEquals(
+ newMap(1, TestMap.MessageValue.getDefaultInstance(),
+ 2, TestMap.MessageValue.getDefaultInstance()),
+ builder.getInt32ToMessageField());
+ }
+
+ public void testMutableMapLifecycle_collections() {
+ TestMap.Builder builder = TestMap.newBuilder();
+ Map<Integer, Integer> intMap = builder.getMutableInt32ToInt32Field();
+ intMap.put(1, 2);
+ assertEquals(newMap(1, 2), builder.build().getInt32ToInt32Field());
+ try {
+ intMap.remove(2);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.entrySet().remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.entrySet().iterator().remove();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.keySet().remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.values().remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.values().iterator().remove();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, 2), intMap);
+ assertEquals(newMap(1, 2), builder.getInt32ToInt32Field());
+ assertEquals(newMap(1, 2), builder.build().getInt32ToInt32Field());
+ }
+
public void testGettersAndSetters() throws Exception {
TestMap.Builder builder = TestMap.newBuilder();
TestMap message = builder.build();
@@ -274,4 +413,26 @@ public class MapForProto2LiteTest extends TestCase {
assertEquals(54321, messageWithUnknownEnums.getInt32ToInt32Field().get(2).intValue());
}
+
+ public void testIterationOrder() throws Exception {
+ TestMap.Builder builder = TestMap.newBuilder();
+ setMapValues(builder);
+ TestMap message = builder.build();
+
+ assertEquals(Arrays.asList("1", "2", "3"),
+ new ArrayList<String>(message.getStringToInt32Field().keySet()));
+ }
+
+ private static <K, V> Map<K, V> newMap(K key1, V value1) {
+ Map<K, V> map = new HashMap<K, V>();
+ map.put(key1, value1);
+ return map;
+ }
+
+ private static <K, V> Map<K, V> newMap(K key1, V value1, K key2, V value2) {
+ Map<K, V> map = new HashMap<K, V>();
+ map.put(key1, value1);
+ map.put(key2, value2);
+ return map;
+ }
}
diff --git a/java/src/test/java/com/google/protobuf/MapForProto2Test.java b/java/src/test/java/com/google/protobuf/MapForProto2Test.java
index 78cba1b4..7e984040 100644
--- a/java/src/test/java/com/google/protobuf/MapForProto2Test.java
+++ b/java/src/test/java/com/google/protobuf/MapForProto2Test.java
@@ -40,6 +40,7 @@ import map_test.MapForProto2TestProto.TestUnknownEnumValue;
import junit.framework.TestCase;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -177,6 +178,116 @@ public class MapForProto2Test extends TestCase {
assertEquals(0, message.getInt32ToMessageField().size());
assertEquals(0, message.getStringToInt32Field().size());
}
+
+ public void testMutableMapLifecycle() {
+ TestMap.Builder builder = TestMap.newBuilder();
+ Map<Integer, Integer> intMap = builder.getMutableInt32ToInt32Field();
+ intMap.put(1, 2);
+ assertEquals(newMap(1, 2), builder.build().getInt32ToInt32Field());
+ try {
+ intMap.put(2, 3);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, 2), builder.getInt32ToInt32Field());
+ builder.getMutableInt32ToInt32Field().put(2, 3);
+ assertEquals(newMap(1, 2, 2, 3), builder.getInt32ToInt32Field());
+
+ Map<Integer, TestMap.EnumValue> enumMap = builder.getMutableInt32ToEnumField();
+ enumMap.put(1, TestMap.EnumValue.BAR);
+ assertEquals(newMap(1, TestMap.EnumValue.BAR), builder.build().getInt32ToEnumField());
+ try {
+ enumMap.put(2, TestMap.EnumValue.FOO);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, TestMap.EnumValue.BAR), builder.getInt32ToEnumField());
+ builder.getMutableInt32ToEnumField().put(2, TestMap.EnumValue.FOO);
+ assertEquals(
+ newMap(1, TestMap.EnumValue.BAR, 2, TestMap.EnumValue.FOO),
+ builder.getInt32ToEnumField());
+
+ Map<Integer, String> stringMap = builder.getMutableInt32ToStringField();
+ stringMap.put(1, "1");
+ assertEquals(newMap(1, "1"), builder.build().getInt32ToStringField());
+ try {
+ stringMap.put(2, "2");
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, "1"), builder.getInt32ToStringField());
+ builder.getMutableInt32ToStringField().put(2, "2");
+ assertEquals(
+ newMap(1, "1", 2, "2"),
+ builder.getInt32ToStringField());
+
+ Map<Integer, TestMap.MessageValue> messageMap = builder.getMutableInt32ToMessageField();
+ messageMap.put(1, TestMap.MessageValue.getDefaultInstance());
+ assertEquals(newMap(1, TestMap.MessageValue.getDefaultInstance()),
+ builder.build().getInt32ToMessageField());
+ try {
+ messageMap.put(2, TestMap.MessageValue.getDefaultInstance());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, TestMap.MessageValue.getDefaultInstance()),
+ builder.getInt32ToMessageField());
+ builder.getMutableInt32ToMessageField().put(2, TestMap.MessageValue.getDefaultInstance());
+ assertEquals(
+ newMap(1, TestMap.MessageValue.getDefaultInstance(),
+ 2, TestMap.MessageValue.getDefaultInstance()),
+ builder.getInt32ToMessageField());
+ }
+
+ public void testMutableMapLifecycle_collections() {
+ TestMap.Builder builder = TestMap.newBuilder();
+ Map<Integer, Integer> intMap = builder.getMutableInt32ToInt32Field();
+ intMap.put(1, 2);
+ assertEquals(newMap(1, 2), builder.build().getInt32ToInt32Field());
+ try {
+ intMap.remove(2);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.entrySet().remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.entrySet().iterator().remove();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.keySet().remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.values().remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.values().iterator().remove();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, 2), intMap);
+ assertEquals(newMap(1, 2), builder.getInt32ToInt32Field());
+ assertEquals(newMap(1, 2), builder.build().getInt32ToInt32Field());
+ }
public void testGettersAndSetters() throws Exception {
TestMap.Builder builder = TestMap.newBuilder();
@@ -513,4 +624,41 @@ public class MapForProto2Test extends TestCase {
assertEquals(2, message.getRecursiveMapField().get(1).getValue());
assertEquals(4, message.getRecursiveMapField().get(3).getValue());
}
+
+ public void testIterationOrder() throws Exception {
+ TestMap.Builder builder = TestMap.newBuilder();
+ setMapValues(builder);
+ TestMap message = builder.build();
+
+ assertEquals(Arrays.asList("1", "2", "3"),
+ new ArrayList<String>(message.getStringToInt32Field().keySet()));
+ }
+
+ // Regression test for b/20494788
+ public void testMapInitializationOrder() throws Exception {
+ assertEquals("RedactAllTypes", map_test.RedactAllTypes
+ .getDefaultInstance().getDescriptorForType().getName());
+
+ map_test.Message1.Builder builder =
+ map_test.Message1.newBuilder();
+ builder.getMutableMapField().put("key", true);
+ map_test.Message1 message = builder.build();
+ Message mapEntry = (Message) message.getRepeatedField(
+ message.getDescriptorForType().findFieldByName("map_field"), 0);
+ assertEquals(2, mapEntry.getAllFields().size());
+ }
+
+ private static <K, V> Map<K, V> newMap(K key1, V value1) {
+ Map<K, V> map = new HashMap<K, V>();
+ map.put(key1, value1);
+ return map;
+ }
+
+ private static <K, V> Map<K, V> newMap(K key1, V value1, K key2, V value2) {
+ Map<K, V> map = new HashMap<K, V>();
+ map.put(key1, value1);
+ map.put(key2, value2);
+ return map;
+ }
}
+
diff --git a/java/src/test/java/com/google/protobuf/MapTest.java b/java/src/test/java/com/google/protobuf/MapTest.java
index b8e67b7c..0509be15 100644
--- a/java/src/test/java/com/google/protobuf/MapTest.java
+++ b/java/src/test/java/com/google/protobuf/MapTest.java
@@ -41,6 +41,7 @@ import map_test.MapTestProto.TestOnChangeEventPropagation;
import junit.framework.TestCase;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -178,7 +179,117 @@ public class MapTest extends TestCase {
assertEquals(0, message.getInt32ToMessageField().size());
assertEquals(0, message.getStringToInt32Field().size());
}
+
+ public void testMutableMapLifecycle() {
+ TestMap.Builder builder = TestMap.newBuilder();
+ Map<Integer, Integer> intMap = builder.getMutableInt32ToInt32Field();
+ intMap.put(1, 2);
+ assertEquals(newMap(1, 2), builder.build().getInt32ToInt32Field());
+ try {
+ intMap.put(2, 3);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, 2), builder.getInt32ToInt32Field());
+ builder.getMutableInt32ToInt32Field().put(2, 3);
+ assertEquals(newMap(1, 2, 2, 3), builder.getInt32ToInt32Field());
+
+ Map<Integer, TestMap.EnumValue> enumMap = builder.getMutableInt32ToEnumField();
+ enumMap.put(1, TestMap.EnumValue.BAR);
+ assertEquals(newMap(1, TestMap.EnumValue.BAR), builder.build().getInt32ToEnumField());
+ try {
+ enumMap.put(2, TestMap.EnumValue.FOO);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, TestMap.EnumValue.BAR), builder.getInt32ToEnumField());
+ builder.getMutableInt32ToEnumField().put(2, TestMap.EnumValue.FOO);
+ assertEquals(
+ newMap(1, TestMap.EnumValue.BAR, 2, TestMap.EnumValue.FOO),
+ builder.getInt32ToEnumField());
+
+ Map<Integer, String> stringMap = builder.getMutableInt32ToStringField();
+ stringMap.put(1, "1");
+ assertEquals(newMap(1, "1"), builder.build().getInt32ToStringField());
+ try {
+ stringMap.put(2, "2");
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, "1"), builder.getInt32ToStringField());
+ builder.getMutableInt32ToStringField().put(2, "2");
+ assertEquals(
+ newMap(1, "1", 2, "2"),
+ builder.getInt32ToStringField());
+
+ Map<Integer, TestMap.MessageValue> messageMap = builder.getMutableInt32ToMessageField();
+ messageMap.put(1, TestMap.MessageValue.getDefaultInstance());
+ assertEquals(newMap(1, TestMap.MessageValue.getDefaultInstance()),
+ builder.build().getInt32ToMessageField());
+ try {
+ messageMap.put(2, TestMap.MessageValue.getDefaultInstance());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, TestMap.MessageValue.getDefaultInstance()),
+ builder.getInt32ToMessageField());
+ builder.getMutableInt32ToMessageField().put(2, TestMap.MessageValue.getDefaultInstance());
+ assertEquals(
+ newMap(1, TestMap.MessageValue.getDefaultInstance(),
+ 2, TestMap.MessageValue.getDefaultInstance()),
+ builder.getInt32ToMessageField());
+ }
+ public void testMutableMapLifecycle_collections() {
+ TestMap.Builder builder = TestMap.newBuilder();
+ Map<Integer, Integer> intMap = builder.getMutableInt32ToInt32Field();
+ intMap.put(1, 2);
+ assertEquals(newMap(1, 2), builder.build().getInt32ToInt32Field());
+ try {
+ intMap.remove(2);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.entrySet().remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.entrySet().iterator().remove();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.keySet().remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.values().remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ try {
+ intMap.values().iterator().remove();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ assertEquals(newMap(1, 2), intMap);
+ assertEquals(newMap(1, 2), builder.getInt32ToInt32Field());
+ assertEquals(newMap(1, 2), builder.build().getInt32ToInt32Field());
+ }
+
public void testGettersAndSetters() throws Exception {
TestMap.Builder builder = TestMap.newBuilder();
TestMap message = builder.build();
@@ -611,4 +722,26 @@ public class MapTest extends TestCase {
assertEquals(data.get(entry.getKey()) + 1, entry.getValue().intValue());
}
}
+
+ public void testIterationOrder() throws Exception {
+ TestMap.Builder builder = TestMap.newBuilder();
+ setMapValues(builder);
+ TestMap message = builder.build();
+
+ assertEquals(Arrays.asList("1", "2", "3"),
+ new ArrayList<String>(message.getStringToInt32Field().keySet()));
+ }
+
+ private static <K, V> Map<K, V> newMap(K key1, V value1) {
+ Map<K, V> map = new HashMap<K, V>();
+ map.put(key1, value1);
+ return map;
+ }
+
+ private static <K, V> Map<K, V> newMap(K key1, V value1, K key2, V value2) {
+ Map<K, V> map = new HashMap<K, V>();
+ map.put(key1, value1);
+ map.put(key2, value2);
+ return map;
+ }
}
diff --git a/java/src/test/java/com/google/protobuf/ProtobufArrayListTest.java b/java/src/test/java/com/google/protobuf/ProtobufArrayListTest.java
new file mode 100644
index 00000000..f9f5e9c7
--- /dev/null
+++ b/java/src/test/java/com/google/protobuf/ProtobufArrayListTest.java
@@ -0,0 +1,303 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import static java.util.Arrays.asList;
+
+import junit.framework.TestCase;
+
+import java.util.Collections;
+import java.util.ConcurrentModificationException;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Tests for {@link ProtobufArrayList}.
+ */
+public class ProtobufArrayListTest extends TestCase {
+
+ private static final ProtobufArrayList<Integer> UNARY_LIST = newImmutableProtoArrayList(1);
+ private static final ProtobufArrayList<Integer> TERTIARY_LIST =
+ newImmutableProtoArrayList(1, 2, 3);
+
+ private ProtobufArrayList<Integer> list;
+
+ @Override
+ protected void setUp() throws Exception {
+ list = new ProtobufArrayList<Integer>();
+ }
+
+ public void testEmptyListReturnsSameInstance() {
+ assertSame(ProtobufArrayList.emptyList(), ProtobufArrayList.emptyList());
+ }
+
+ public void testEmptyListIsImmutable() {
+ assertImmutable(ProtobufArrayList.<Integer>emptyList());
+ }
+
+ public void testCopyConstructor() {
+ ProtobufArrayList<Integer> copy = new ProtobufArrayList<Integer>(TERTIARY_LIST);
+ assertEquals(TERTIARY_LIST, copy);
+
+ copy = new ProtobufArrayList<Integer>(IntArrayList.emptyList());
+ assertEquals(ProtobufArrayList.emptyList(), copy);
+
+ copy = new ProtobufArrayList<Integer>(asList(1, 2, 3));
+ assertEquals(asList(1, 2, 3), copy);
+
+ copy = new ProtobufArrayList<Integer>(Collections.<Integer>emptyList());
+ assertEquals(ProtobufArrayList.emptyList(), copy);
+ }
+
+ public void testModificationWithIteration() {
+ list.addAll(asList(1, 2, 3, 4));
+ Iterator<Integer> iterator = list.iterator();
+ assertEquals(4, list.size());
+ assertEquals(1, (int) list.get(0));
+ assertEquals(1, (int) iterator.next());
+
+ list.remove(0);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+
+ iterator = list.iterator();
+ list.set(0, 1);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+
+ iterator = list.iterator();
+ list.add(0, 0);
+ try {
+ iterator.next();
+ fail();
+ } catch (ConcurrentModificationException e) {
+ // expected
+ }
+ }
+
+ public void testMakeImmutable() {
+ list.add(2);
+ list.add(4);
+ list.add(6);
+ list.add(8);
+ list.makeImmutable();
+ assertImmutable(list);
+ }
+
+ public void testRemove() {
+ list.add(2);
+ list.add(4);
+ list.add(6);
+
+ list.remove(1);
+ assertEquals(asList(2, 6), list);
+
+ list.remove(1);
+ assertEquals(asList(2), list);
+
+ list.remove(0);
+ assertEquals(asList(), list);
+ }
+
+ public void testGet() {
+ list.add(2);
+ list.add(6);
+
+ assertEquals(2, (int) list.get(0));
+ assertEquals(6, (int) list.get(1));
+ }
+
+ public void testSet() {
+ list.add(2);
+ list.add(6);
+
+ list.set(0, 1);
+ assertEquals(1, (int) list.get(0));
+ list.set(1, 2);
+ assertEquals(2, (int) list.get(1));
+ }
+
+ private void assertImmutable(List<Integer> list) {
+ if (list.contains(1)) {
+ throw new RuntimeException("Cannot test the immutability of lists that contain 1.");
+ }
+
+ try {
+ list.add(1);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.add(0, 1);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.<Integer>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(Collections.singletonList(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(new ProtobufArrayList<Integer>());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.addAll(0, Collections.<Integer>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.clear();
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(1);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.remove(new Object());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.<Double>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.removeAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.<Double>emptyList());
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(Collections.singleton(1));
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.retainAll(UNARY_LIST);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+
+ try {
+ list.set(0, 0);
+ fail();
+ } catch (UnsupportedOperationException e) {
+ // expected
+ }
+ }
+
+ private static ProtobufArrayList<Integer> newImmutableProtoArrayList(int... elements) {
+ ProtobufArrayList<Integer> list = new ProtobufArrayList<Integer>();
+ for (int element : elements) {
+ list.add(element);
+ }
+ list.makeImmutable();
+ return list;
+ }
+}
diff --git a/java/src/test/java/com/google/protobuf/WellKnownTypesTest.java b/java/src/test/java/com/google/protobuf/WellKnownTypesTest.java
new file mode 100644
index 00000000..982e200f
--- /dev/null
+++ b/java/src/test/java/com/google/protobuf/WellKnownTypesTest.java
@@ -0,0 +1,65 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package com.google.protobuf;
+
+import com.google.protobuf.Descriptors.Descriptor;
+import com.google.protobuf.Descriptors.EnumDescriptor;
+import com.google.protobuf.Descriptors.EnumValueDescriptor;
+import com.google.protobuf.Descriptors.FieldDescriptor;
+import com.google.protobuf.test.TestWellKnownTypes;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This test ensures that well-known types are included in protobuf Java
+ * runtime library.
+ */
+public class WellKnownTypesTest extends TestCase {
+ public void testWellKnownTypes() {
+ // The test passes if it compiles.
+ TestWellKnownTypes message = TestWellKnownTypes.newBuilder().build();
+ assertEquals(0, message.getAnyField().getSerializedSize());
+ assertEquals(0, message.getApiField().getSerializedSize());
+ assertEquals(0, message.getDurationField().getSerializedSize());
+ assertEquals(0, message.getEmptyField().getSerializedSize());
+ assertEquals(0, message.getFieldMaskField().getSerializedSize());
+ assertEquals(0, message.getSourceContextField().getSerializedSize());
+ assertEquals(0, message.getStructField().getSerializedSize());
+ assertEquals(0, message.getTimestampField().getSerializedSize());
+ assertEquals(0, message.getTypeField().getSerializedSize());
+ assertEquals(0, message.getInt32Field().getSerializedSize());
+ }
+}
diff --git a/java/src/test/java/com/google/protobuf/field_presence_test.proto b/java/src/test/java/com/google/protobuf/field_presence_test.proto
index 8d8ea8ef..8f3ca8c6 100644
--- a/java/src/test/java/com/google/protobuf/field_presence_test.proto
+++ b/java/src/test/java/com/google/protobuf/field_presence_test.proto
@@ -45,15 +45,15 @@ message TestAllTypes {
BAZ = 2;
}
message NestedMessage {
- optional int32 value = 1;
+ int32 value = 1;
}
- optional int32 optional_int32 = 1;
- optional string optional_string = 2;
- optional bytes optional_bytes = 3;
- optional NestedEnum optional_nested_enum = 4;
- optional NestedMessage optional_nested_message = 5;
- optional protobuf_unittest.TestRequired optional_proto2_message = 6;
+ int32 optional_int32 = 1;
+ string optional_string = 2;
+ bytes optional_bytes = 3;
+ NestedEnum optional_nested_enum = 4;
+ NestedMessage optional_nested_message = 5;
+ protobuf_unittest.TestRequired optional_proto2_message = 6;
oneof oneof_field {
int32 oneof_int32 = 11;
@@ -75,12 +75,12 @@ message TestAllTypes {
}
message TestOptionalFieldsOnly {
- optional int32 optional_int32 = 1;
- optional string optional_string = 2;
- optional bytes optional_bytes = 3;
- optional TestAllTypes.NestedEnum optional_nested_enum = 4;
- optional TestAllTypes.NestedMessage optional_nested_message = 5;
- optional protobuf_unittest.TestRequired optional_proto2_message = 6;
+ int32 optional_int32 = 1;
+ string optional_string = 2;
+ bytes optional_bytes = 3;
+ TestAllTypes.NestedEnum optional_nested_enum = 4;
+ TestAllTypes.NestedMessage optional_nested_message = 5;
+ protobuf_unittest.TestRequired optional_proto2_message = 6;
}
message TestRepeatedFieldsOnly {
diff --git a/java/src/test/java/com/google/protobuf/map_initialization_order_test.proto b/java/src/test/java/com/google/protobuf/map_initialization_order_test.proto
new file mode 100644
index 00000000..b02ac599
--- /dev/null
+++ b/java/src/test/java/com/google/protobuf/map_initialization_order_test.proto
@@ -0,0 +1,61 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Regression test for a map initilaization order bug. The bug only manifests
+// when:
+// 1. A message contains map fields and is also extendable.
+// 2. There is a file-level extension defined in the same file referencing
+// the above message as the extension type.
+// 3. The program executes in the following order:
+// a. getDescriptor() is called on another message in the same file.
+// b. use protobuf reflection to access the map field.
+// The symptom is a NullPointerException being thrown.
+syntax = "proto2";
+
+package map_test;
+
+option java_package = "map_test";
+option java_outer_classname = "MapInitializationOrderTest";
+option java_multiple_files = true;
+
+// Mirrors the structure of
+// javatests/com/google/cloud/common/logging/logging_test.proto.
+
+message Message1 {
+ map<string, bool> map_field = 1;
+ extensions 1000 to max;
+}
+
+extend Message1 {
+ optional Message1 recursive_extension = 1001;
+}
+
+message RedactAllTypes {
+}
diff --git a/java/src/test/java/com/google/protobuf/map_test.proto b/java/src/test/java/com/google/protobuf/map_test.proto
index bf692c22..2f7709be 100644
--- a/java/src/test/java/com/google/protobuf/map_test.proto
+++ b/java/src/test/java/com/google/protobuf/map_test.proto
@@ -39,7 +39,7 @@ option java_generate_equals_and_hash = true;
message TestMap {
message MessageValue {
- optional int32 value = 1;
+ int32 value = 1;
}
enum EnumValue {
FOO = 0;
@@ -60,5 +60,5 @@ message TestMap {
// propagate the onChange event and mark its parent dirty when a change
// is made to a map field.
message TestOnChangeEventPropagation {
- optional TestMap optional_message = 1;
+ TestMap optional_message = 1;
}
diff --git a/javanano/pom.xml b/javanano/pom.xml
index 3d8cfb9f..f0bcc333 100644
--- a/javanano/pom.xml
+++ b/javanano/pom.xml
@@ -10,7 +10,7 @@
</parent>
<groupId>com.google.protobuf.nano</groupId>
<artifactId>protobuf-javanano</artifactId>
- <version>3.0.0-alpha-3-pre</version>
+ <version>3.0.0-alpha-4-pre</version>
<packaging>bundle</packaging>
<name>Protocol Buffer JavaNano API</name>
<description>
@@ -165,7 +165,7 @@
<instructions>
<Bundle-DocURL>https://developers.google.com/protocol-buffers/</Bundle-DocURL>
<Bundle-SymbolicName>com.google.protobuf</Bundle-SymbolicName>
- <Export-Package>com.google.protobuf;version=3.0.0-alpha-3-pre</Export-Package>
+ <Export-Package>com.google.protobuf;version=3.0.0-alpha-3</Export-Package>
</instructions>
</configuration>
</plugin>
@@ -174,6 +174,16 @@
<profiles>
<profile>
<id>release</id>
+ <distributionManagement>
+ <snapshotRepository>
+ <id>sonatype-nexus-staging</id>
+ <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+ </snapshotRepository>
+ <repository>
+ <id>sonatype-nexus-staging</id>
+ <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
+ </repository>
+ </distributionManagement>
<build>
<plugins>
<plugin>
diff --git a/objectivec/DevTools/check_version_stamps.sh b/objectivec/DevTools/check_version_stamps.sh
index 5de9ef14..325b71dd 100755
--- a/objectivec/DevTools/check_version_stamps.sh
+++ b/objectivec/DevTools/check_version_stamps.sh
@@ -25,11 +25,11 @@ readonly ConstantName=GOOGLE_PROTOBUF_OBJC_GEN_VERSION
readonly PluginSrc="${ProtoRootDir}/src/google/protobuf/compiler/objectivec/objectivec_file.cc"
readonly PluginVersion=$( \
cat "${PluginSrc}" \
- | sed -n -e "s:const int32_t ${ConstantName} = \([0-9]*\);:\1:p"
+ | sed -n -e "s:const int32 ${ConstantName} = \([0-9]*\);:\1:p"
)
if [[ -z "${PluginVersion}" ]] ; then
- die "Failed to fine ${ConstantName} in the plugin source (${PluginSrc})."
+ die "Failed to find ${ConstantName} in the plugin source (${PluginSrc})."
fi
# Collect version from runtime sources.
@@ -41,7 +41,7 @@ readonly RuntimeVersion=$( \
)
if [[ -z "${RuntimeVersion}" ]] ; then
- die "Failed to fine ${ConstantName} in the runtime source (${RuntimeSrc})."
+ die "Failed to find ${ConstantName} in the runtime source (${RuntimeSrc})."
fi
# Compare them.
diff --git a/objectivec/DevTools/full_mac_build.sh b/objectivec/DevTools/full_mac_build.sh
new file mode 100755
index 00000000..57c4f438
--- /dev/null
+++ b/objectivec/DevTools/full_mac_build.sh
@@ -0,0 +1,228 @@
+#!/bin/bash
+#
+# Helper to do build so you don't have to remember all the steps/args.
+
+
+set -eu
+
+# Some base locations.
+readonly ScriptDir=$(dirname "$(echo $0 | sed -e "s,^\([^/]\),$(pwd)/\1,")")
+readonly ProtoRootDir="${ScriptDir}/../.."
+
+printUsage() {
+ NAME=$(basename "${0}")
+ cat << EOF
+usage: ${NAME} [OPTIONS]
+
+This script does the common build steps needed.
+
+OPTIONS:
+
+ General:
+
+ -h, --help
+ Show this message
+ -c, --clean
+ Issue a clean before the normal build.
+ -a, --autogen
+ Start by rerunning autogen & configure.
+ -r, --regenerate-descriptors
+ The descriptor.proto is checked in generated, cause it to regenerate.
+ -j #, --jobs #
+ Force the number of parallel jobs (useful for debugging build issues).
+ --skip-xcode
+ Skip the invoke of Xcode to test the runtime on both iOS and OS X.
+ --skip-xcode-ios
+ Skip the invoke of Xcode to test the runtime on iOS.
+ --skip-xcode-osx
+ Skip the invoke of Xcode to test the runtime on OS X.
+
+EOF
+}
+
+header() {
+ echo ""
+ echo "========================================================================"
+ echo " ${@}"
+ echo "========================================================================"
+}
+
+# Thanks to libtool, builds can fail in odd ways and since it eats some output
+# it can be hard to spot, so force error output if make exits with a non zero.
+wrapped_make() {
+ set +e # Don't stop if the command fails.
+ make $*
+ MAKE_EXIT_STATUS=$?
+ if [ ${MAKE_EXIT_STATUS} -ne 0 ]; then
+ echo "Error: 'make $*' exited with status ${MAKE_EXIT_STATUS}"
+ exit ${MAKE_EXIT_STATUS}
+ fi
+ set -e
+}
+
+NUM_MAKE_JOBS=$(/usr/sbin/sysctl -n hw.ncpu)
+if [[ "${NUM_MAKE_JOBS}" -lt 4 ]] ; then
+ NUM_MAKE_JOBS=4
+fi
+
+DO_AUTOGEN=no
+DO_CLEAN=no
+REGEN_CPP_DESCRIPTORS=no
+DO_XCODE_IOS_TESTS=yes
+DO_XCODE_OSX_TESTS=yes
+while [[ $# != 0 ]]; do
+ case "${1}" in
+ -h | --help )
+ printUsage
+ exit 0
+ ;;
+ -c | --clean )
+ DO_CLEAN=yes
+ ;;
+ -a | --autogen )
+ DO_AUTOGEN=yes
+ ;;
+ -r | --regenerate-cpp-descriptors )
+ REGEN_CPP_DESCRIPTORS=yes
+ ;;
+ -j | --jobs )
+ shift
+ NUM_MAKE_JOBS="${1}"
+ ;;
+ --skip-xcode )
+ DO_XCODE_IOS_TESTS=no
+ DO_XCODE_OSX_TESTS=no
+ ;;
+ --skip-xcode-ios )
+ DO_XCODE_IOS_TESTS=no
+ ;;
+ --skip-xcode-osx )
+ DO_XCODE_OSX_TESTS=no
+ ;;
+ -*)
+ echo "ERROR: Unknown option: ${1}" 1>&2
+ printUsage
+ exit 1
+ ;;
+ *)
+ echo "ERROR: Unknown argument: ${1}" 1>&2
+ printUsage
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+# Into the proto dir.
+pushd "${ProtoRootDir}"
+
+# if no Makefile, force the autogen.
+if [[ ! -f Makefile ]] ; then
+ DO_AUTOGEN=yes
+fi
+
+if [[ "${DO_AUTOGEN}" == "yes" ]] ; then
+ header "Running autogen & configure"
+ ./autogen.sh
+ ./configure CXXFLAGS="-mmacosx-version-min=10.9 -Wnon-virtual-dtor -Woverloaded-virtual -Wunused-const-variable -Wunused-function"
+fi
+
+if [[ "${DO_CLEAN}" == "yes" ]] ; then
+ header "Cleaning"
+ wrapped_make clean
+ if [[ "${DO_XCODE_IOS_TESTS}" == "yes" ]] ; then
+ XCODEBUILD_CLEAN_BASE_IOS=(
+ xcodebuild
+ -project objectivec/ProtocolBuffers_iOS.xcodeproj
+ -scheme ProtocolBuffers
+ )
+ "${XCODEBUILD_CLEAN_BASE_IOS[@]}" -configuration Debug clean
+ "${XCODEBUILD_CLEAN_BASE_IOS[@]}" -configuration Release clean
+ fi
+ if [[ "${DO_XCODE_OSX_TESTS}" == "yes" ]] ; then
+ XCODEBUILD_CLEAN_BASE_OSX=(
+ xcodebuild
+ -project objectivec/ProtocolBuffers_OSX.xcodeproj
+ -scheme ProtocolBuffers
+ )
+ "${XCODEBUILD_CLEAN_BASE_OSX[@]}" -configuration Debug clean
+ "${XCODEBUILD_CLEAN_BASE_OSX[@]}" -configuration Release clean
+ fi
+fi
+
+if [[ "${REGEN_CPP_DESCRIPTORS}" == "yes" ]] ; then
+ header "Regenerating the C++ descriptor sources."
+ ./generate_descriptor_proto.sh -j "${NUM_MAKE_JOBS}"
+fi
+
+header "Building"
+# Can't issue these together, when fully parallel, something sometimes chokes
+# at random.
+wrapped_make -j "${NUM_MAKE_JOBS}" all
+wrapped_make -j "${NUM_MAKE_JOBS}" check
+
+header "Ensuring the ObjC descriptors are current."
+# Find the newest input file (protos, compiler, and this script).
+# (these patterns catch some extra stuff, but better to over sample than under)
+readonly NewestInput=$(find \
+ src/google/protobuf/*.proto \
+ src/.libs src/*.la src/protoc \
+ objectivec/generate_descriptors_proto.sh \
+ -type f -print0 \
+ | xargs -0 stat -f "%m %N" \
+ | sort -n | tail -n1 | cut -f2- -d" ")
+# Find the oldest output file.
+readonly OldestOutput=$(find \
+ "${ProtoRootDir}/objectivec/google" \
+ -type f -print0 \
+ | xargs -0 stat -f "%m %N" \
+ | sort -n -r | tail -n1 | cut -f2- -d" ")
+# If the newest input is newer than the oldest output, regenerate.
+if [[ "${NewestInput}" -nt "${OldestOutput}" ]] ; then
+ echo ">> Newest input is newer than oldest output, regenerating."
+ objectivec/generate_descriptors_proto.sh -j "${NUM_MAKE_JOBS}"
+else
+ echo ">> Newest input is older than oldest output, no need to regenerating."
+fi
+
+header "Checking on the ObjC Runtime Code"
+objectivec/DevTools/pddm_tests.py
+if ! objectivec/DevTools/pddm.py --dry-run objectivec/*.[hm] objectivec/Tests/*.[hm] ; then
+ echo ""
+ echo "Update by running:"
+ echo " objectivec/DevTools/pddm.py objectivec/*.[hm] objectivec/Tests/*.[hm]"
+ exit 1
+fi
+
+if [[ "${DO_XCODE_IOS_TESTS}" == "yes" ]] ; then
+ XCODEBUILD_TEST_BASE_IOS=(
+ xcodebuild
+ -project objectivec/ProtocolBuffers_iOS.xcodeproj
+ -scheme ProtocolBuffers
+ # Don't need to worry about form factors or retina/non retina;
+ # just pick a mix of OS Versions and 32/64 bit.
+ -destination "platform=iOS Simulator,name=iPhone 4s,OS=7.1" # 32bit
+ -destination "platform=iOS Simulator,name=iPhone 6,OS=8.3" # 64bit
+ -destination "platform=iOS Simulator,name=iPad 2,OS=7.1" # 32bit
+ -destination "platform=iOS Simulator,name=iPad Air,OS=8.3" # 64bit
+ )
+ header "Doing Xcode iOS build/tests - Debug"
+ "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Debug test
+ header "Doing Xcode iOS build/tests - Release"
+ "${XCODEBUILD_TEST_BASE_IOS[@]}" -configuration Release test
+ # Don't leave the simulator in the developer's face.
+ killall "iOS Simulator"
+fi
+if [[ "${DO_XCODE_OSX_TESTS}" == "yes" ]] ; then
+ XCODEBUILD_TEST_BASE_OSX=(
+ xcodebuild
+ -project objectivec/ProtocolBuffers_OSX.xcodeproj
+ -scheme ProtocolBuffers
+ # Since the ObjC 2.0 Runtime is required, 32bit OS X isn't supported.
+ -destination "platform=OS X,arch=x86_64" # 64bit
+ )
+ header "Doing Xcode OS X build/tests - Debug"
+ "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Debug test
+ header "Doing Xcode OS X build/tests - Release"
+ "${XCODEBUILD_TEST_BASE_OSX[@]}" -configuration Release test
+fi
diff --git a/objectivec/DevTools/generate_descriptors_proto.sh b/objectivec/DevTools/generate_descriptors_proto.sh
deleted file mode 100755
index 42502bfe..00000000
--- a/objectivec/DevTools/generate_descriptors_proto.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/bash
-
-# This script will generate the common descriptors needed by the Objective C
-# runtime.
-
-# HINT: Flags passed to generate_descriptor_proto.sh will be passed directly
-# to make when building protoc. This is particularly useful for passing
-# -j4 to run 4 jobs simultaneously.
-
-set -eu
-
-readonly ScriptDir=$(dirname "$(echo $0 | sed -e "s,^\([^/]\),$(pwd)/\1,")")
-readonly ProtoRootDir="${ScriptDir}/../.."
-readonly ProtoC="${ProtoRootDir}/src/protoc"
-
-pushd "${ProtoRootDir}" > /dev/null
-
-# Compiler build fails if config.h hasn't been made yet (even if configure/etc.
-# have been run, so get that made first).
-make $@ config.h
-
-# Make sure the compiler is current.
-cd src
-make $@ protoc
-
-# These really should only be run when the inputs or compiler are newer than
-# the outputs.
-
-# Needed by the runtime.
-./protoc --objc_out="${ProtoRootDir}/objectivec" google/protobuf/descriptor.proto
-
-# Well known types that the library provides helpers for.
-./protoc --objc_out="${ProtoRootDir}/objectivec" google/protobuf/timestamp.proto
-./protoc --objc_out="${ProtoRootDir}/objectivec" google/protobuf/duration.proto
-
-popd > /dev/null
diff --git a/objectivec/GPBArray.m b/objectivec/GPBArray.m
index 6aa3df2e..60b08ad1 100644
--- a/objectivec/GPBArray.m
+++ b/objectivec/GPBArray.m
@@ -149,7 +149,9 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
//%PDDM-DEFINE ARRAY_IMMUTABLE_CORE(NAME, TYPE, ACCESSOR_NAME, FORMAT)
//%- (void)dealloc {
-//% NSAssert(!_autocreator, @"Autocreator must be cleared before release.");
+//% NSAssert(!_autocreator,
+//% @"%@: Autocreator must be cleared before release, autocreator: %@",
+//% [self class], _autocreator);
//% free(_values);
//% [super dealloc];
//%}
@@ -214,7 +216,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
//% if (values == NULL || count == 0) return;
//%MUTATION_HOOK_##HOOK_1() NSUInteger initialCount = _count;
//% NSUInteger newCount = initialCount + count;
-//%MAYBE_GROW_TO_SET_COUNT(newCount);
+//%MAYBE_GROW_TO_SET_COUNT(newCount)
//% memcpy(&_values[initialCount], values, count * sizeof(TYPE));
//% if (_autocreator) {
//% GPBAutocreatedArrayModified(_autocreator, self);
@@ -225,7 +227,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
//%VALIDATE_RANGE(index, _count + 1)
//%MUTATION_HOOK_##HOOK_2() NSUInteger initialCount = _count;
//% NSUInteger newCount = initialCount + 1;
-//%MAYBE_GROW_TO_SET_COUNT(newCount);
+//%MAYBE_GROW_TO_SET_COUNT(newCount)
//% if (index != initialCount) {
//% memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(TYPE));
//% }
@@ -355,7 +357,9 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
}
- (void)dealloc {
- NSAssert(!_autocreator, @"Autocreator must be cleared before release.");
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
free(_values);
[super dealloc];
}
@@ -442,7 +446,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
memcpy(&_values[initialCount], values, count * sizeof(int32_t));
if (_autocreator) {
GPBAutocreatedArrayModified(_autocreator, self);
@@ -460,7 +464,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
if (index != initialCount) {
memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(int32_t));
}
@@ -598,7 +602,9 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
}
- (void)dealloc {
- NSAssert(!_autocreator, @"Autocreator must be cleared before release.");
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
free(_values);
[super dealloc];
}
@@ -685,7 +691,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
memcpy(&_values[initialCount], values, count * sizeof(uint32_t));
if (_autocreator) {
GPBAutocreatedArrayModified(_autocreator, self);
@@ -703,7 +709,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
if (index != initialCount) {
memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(uint32_t));
}
@@ -841,7 +847,9 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
}
- (void)dealloc {
- NSAssert(!_autocreator, @"Autocreator must be cleared before release.");
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
free(_values);
[super dealloc];
}
@@ -928,7 +936,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
memcpy(&_values[initialCount], values, count * sizeof(int64_t));
if (_autocreator) {
GPBAutocreatedArrayModified(_autocreator, self);
@@ -946,7 +954,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
if (index != initialCount) {
memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(int64_t));
}
@@ -1084,7 +1092,9 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
}
- (void)dealloc {
- NSAssert(!_autocreator, @"Autocreator must be cleared before release.");
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
free(_values);
[super dealloc];
}
@@ -1171,7 +1181,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
memcpy(&_values[initialCount], values, count * sizeof(uint64_t));
if (_autocreator) {
GPBAutocreatedArrayModified(_autocreator, self);
@@ -1189,7 +1199,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
if (index != initialCount) {
memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(uint64_t));
}
@@ -1327,7 +1337,9 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
}
- (void)dealloc {
- NSAssert(!_autocreator, @"Autocreator must be cleared before release.");
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
free(_values);
[super dealloc];
}
@@ -1414,7 +1426,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
memcpy(&_values[initialCount], values, count * sizeof(float));
if (_autocreator) {
GPBAutocreatedArrayModified(_autocreator, self);
@@ -1432,7 +1444,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
if (index != initialCount) {
memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(float));
}
@@ -1570,7 +1582,9 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
}
- (void)dealloc {
- NSAssert(!_autocreator, @"Autocreator must be cleared before release.");
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
free(_values);
[super dealloc];
}
@@ -1657,7 +1671,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
memcpy(&_values[initialCount], values, count * sizeof(double));
if (_autocreator) {
GPBAutocreatedArrayModified(_autocreator, self);
@@ -1675,7 +1689,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
if (index != initialCount) {
memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(double));
}
@@ -1813,7 +1827,9 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
}
- (void)dealloc {
- NSAssert(!_autocreator, @"Autocreator must be cleared before release.");
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
free(_values);
[super dealloc];
}
@@ -1900,7 +1916,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
memcpy(&_values[initialCount], values, count * sizeof(BOOL));
if (_autocreator) {
GPBAutocreatedArrayModified(_autocreator, self);
@@ -1918,7 +1934,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
if (index != initialCount) {
memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(BOOL));
}
@@ -2083,7 +2099,9 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
// This block of code is generated, do not edit it directly.
- (void)dealloc {
- NSAssert(!_autocreator, @"Autocreator must be cleared before release.");
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
free(_values);
[super dealloc];
}
@@ -2229,7 +2247,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
memcpy(&_values[initialCount], values, count * sizeof(int32_t));
if (_autocreator) {
GPBAutocreatedArrayModified(_autocreator, self);
@@ -2247,7 +2265,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
if (index != initialCount) {
memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(int32_t));
}
@@ -2332,7 +2350,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
memcpy(&_values[initialCount], values, count * sizeof(int32_t));
if (_autocreator) {
GPBAutocreatedArrayModified(_autocreator, self);
@@ -2355,7 +2373,7 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
if (newCount > _capacity) {
[self internalResizeToCapacity:CapacityFromCount(newCount)];
}
- _count = newCount;;
+ _count = newCount;
if (index != initialCount) {
memmove(&_values[index + 1], &_values[index], (initialCount - index) * sizeof(int32_t));
}
@@ -2407,7 +2425,9 @@ static BOOL ArrayDefault_IsValidValue(int32_t value) {
}
- (void)dealloc {
- NSAssert(!_autocreator, @"Autocreator must be cleared before release.");
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_array release];
[super dealloc];
}
diff --git a/objectivec/GPBBootstrap.h b/objectivec/GPBBootstrap.h
index 530eb5cb..3dd2de83 100644
--- a/objectivec/GPBBootstrap.h
+++ b/objectivec/GPBBootstrap.h
@@ -51,11 +51,11 @@
// the Swift bridge will have one where the names line up to support short
// names since they are scoped to the enum.
// https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithCAPIs.html#//apple_ref/doc/uid/TP40014216-CH8-XID_11
-#define GPB_ENUM(X) enum X##_ : int32_t X; typedef NS_ENUM(int32_t, X##_)
-// GPB_ENUM_FWD_DECLARE is used for forward declaring enums ex:
+#define GPB_ENUM(X) NS_ENUM(int32_t, X)
+// GPB_ENUM_FWD_DECLARE is used for forward declaring enums, ex:
// GPB_ENUM_FWD_DECLARE(Foo_Enum)
// @property (nonatomic) Foo_Enum value;
-#define GPB_ENUM_FWD_DECLARE(_name) enum _name : int32_t
+#define GPB_ENUM_FWD_DECLARE(X) enum X : int32_t
// Based upon CF_INLINE. Forces inlining in release.
#if !defined(DEBUG)
diff --git a/objectivec/GPBCodedInputStream.h b/objectivec/GPBCodedInputStream.h
index db39c268..e9b27e22 100644
--- a/objectivec/GPBCodedInputStream.h
+++ b/objectivec/GPBCodedInputStream.h
@@ -66,7 +66,9 @@
- (void)readMessage:(GPBMessage *)message
extensionRegistry:(GPBExtensionRegistry *)extensionRegistry;
-// Reads and discards a single field, given its tag value.
+// Reads and discards a single field, given its tag value. Returns NO if the
+// tag is an endgroup tag, in which case nothing is skipped. Otherwise,
+// returns YES.
- (BOOL)skipField:(int32_t)tag;
// Reads and discards an entire message. This will read either until EOF
@@ -74,8 +76,8 @@
- (void)skipMessage;
// Verifies that the last call to readTag() returned the given tag value.
-// This is used to verify that a nested group ended with the correct
-// end tag.
+// This is used to verify that a nested group ended with the correct end tag.
+// Throws NSParseErrorException if value does not match the last tag.
- (void)checkLastTagWas:(int32_t)value;
@end
diff --git a/objectivec/GPBDescriptor.h b/objectivec/GPBDescriptor.h
index d8c369c1..97b46b3c 100644
--- a/objectivec/GPBDescriptor.h
+++ b/objectivec/GPBDescriptor.h
@@ -56,7 +56,6 @@ typedef NS_ENUM(NSInteger, GPBFieldType) {
@property(nonatomic, readonly, strong) NSArray *fields;
@property(nonatomic, readonly, strong) NSArray *oneofs;
@property(nonatomic, readonly, strong) NSArray *enums;
-@property(nonatomic, readonly, strong) NSArray *extensions;
@property(nonatomic, readonly) const GPBExtensionRange *extensionRanges;
@property(nonatomic, readonly) NSUInteger extensionRangesCount;
@property(nonatomic, readonly, assign) GPBFileDescriptor *file;
@@ -68,8 +67,6 @@ typedef NS_ENUM(NSInteger, GPBFieldType) {
- (GPBFieldDescriptor *)fieldWithName:(NSString *)name;
- (GPBOneofDescriptor *)oneofWithName:(NSString *)name;
- (GPBEnumDescriptor *)enumWithName:(NSString *)name;
-- (GPBFieldDescriptor *)extensionWithNumber:(uint32_t)fieldNumber;
-- (GPBFieldDescriptor *)extensionWithName:(NSString *)name;
@end
diff --git a/objectivec/GPBDescriptor.m b/objectivec/GPBDescriptor.m
index 6730d532..b955018c 100644
--- a/objectivec/GPBDescriptor.m
+++ b/objectivec/GPBDescriptor.m
@@ -93,7 +93,6 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
@implementation GPBDescriptor {
Class messageClass_;
NSArray *enums_;
- NSArray *extensions_;
GPBFileDescriptor *file_;
BOOL wireFormat_;
}
@@ -102,7 +101,6 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
@synthesize fields = fields_;
@synthesize oneofs = oneofs_;
@synthesize enums = enums_;
-@synthesize extensions = extensions_;
@synthesize extensionRanges = extensionRanges_;
@synthesize extensionRangesCount = extensionRangesCount_;
@synthesize file = file_;
@@ -161,13 +159,11 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
[enums addObject:enumDescriptor];
}
- // TODO(dmaclach): Add support for extensions
GPBDescriptor *descriptor = [[self alloc] initWithClass:messageClass
file:file
fields:fields
oneofs:oneofs
enums:enums
- extensions:nil
extensionRanges:ranges
extensionRangesCount:rangeCount
storageSize:storageSize
@@ -226,7 +222,6 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
fields:(NSArray *)fields
oneofs:(NSArray *)oneofs
enums:(NSArray *)enums
- extensions:(NSArray *)extensions
extensionRanges:(const GPBExtensionRange *)extensionRanges
extensionRangesCount:(NSUInteger)extensionRangesCount
storageSize:(size_t)storageSize
@@ -237,7 +232,6 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
fields_ = [fields retain];
oneofs_ = [oneofs retain];
enums_ = [enums retain];
- extensions_ = [extensions retain];
extensionRanges_ = extensionRanges;
extensionRangesCount_ = extensionRangesCount;
storageSize_ = storageSize;
@@ -250,7 +244,6 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
[fields_ release];
[oneofs_ release];
[enums_ release];
- [extensions_ release];
[super dealloc];
}
@@ -299,24 +292,6 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
return nil;
}
-- (GPBFieldDescriptor *)extensionWithNumber:(uint32_t)fieldNumber {
- for (GPBFieldDescriptor *descriptor in extensions_) {
- if (GPBFieldNumber(descriptor) == fieldNumber) {
- return descriptor;
- }
- }
- return nil;
-}
-
-- (GPBFieldDescriptor *)extensionWithName:(NSString *)name {
- for (GPBFieldDescriptor *descriptor in extensions_) {
- if ([descriptor.name isEqual:name]) {
- return descriptor;
- }
- }
- return nil;
-}
-
@end
@implementation GPBFileDescriptor {
@@ -366,7 +341,7 @@ static NSArray *NewFieldsArrayForHasIndex(int hasIndex,
}
- (NSString *)name {
- return [NSString stringWithUTF8String:oneofDescription_->name];
+ return @(oneofDescription_->name);
}
- (GPBFieldDescriptor *)fieldWithNumber:(uint32_t)fieldNumber {
@@ -455,7 +430,8 @@ uint32_t GPBFieldTag(GPBFieldDescriptor *self) {
freeWhenDone:NO];
GPBExtensionRegistry *registry = [rootClass extensionRegistry];
fieldOptions_ = [[GPBFieldOptions parseFromData:optionsData
- extensionRegistry:registry] retain];
+ extensionRegistry:registry
+ error:NULL] retain];
}
}
@@ -532,7 +508,7 @@ uint32_t GPBFieldTag(GPBFieldDescriptor *self) {
}
- (NSString *)name {
- return [NSString stringWithUTF8String:description_->name];
+ return @(description_->name);
}
- (BOOL)isRequired {
@@ -809,7 +785,7 @@ uint32_t GPBFieldTag(GPBFieldDescriptor *self) {
NSString *result = nil;
// Naming adds an underscore between enum name and value name, skip that also.
- NSString *shortName = [NSString stringWithUTF8String:valueDescriptor->name];
+ NSString *shortName = @(valueDescriptor->name);
// See if it is in the map of special format handling.
if (extraTextFormatInfo_) {
@@ -846,7 +822,7 @@ uint32_t GPBFieldTag(GPBFieldDescriptor *self) {
}
- (NSString *)singletonName {
- return [NSString stringWithUTF8String:description_->singletonName];
+ return @(description_->singletonName);
}
- (const char *)singletonNameC {
diff --git a/objectivec/GPBDescriptor_PackagePrivate.h b/objectivec/GPBDescriptor_PackagePrivate.h
index acb4fe70..b289a48b 100644
--- a/objectivec/GPBDescriptor_PackagePrivate.h
+++ b/objectivec/GPBDescriptor_PackagePrivate.h
@@ -186,7 +186,6 @@ typedef struct GPBExtensionDescription {
fields:(NSArray *)fields
oneofs:(NSArray *)oneofs
enums:(NSArray *)enums
- extensions:(NSArray *)extensions
extensionRanges:(const GPBExtensionRange *)ranges
extensionRangesCount:(NSUInteger)rangeCount
storageSize:(size_t)storage
diff --git a/objectivec/GPBDictionary.m b/objectivec/GPBDictionary.m
index de7347e8..3769c697 100644
--- a/objectivec/GPBDictionary.m
+++ b/objectivec/GPBDictionary.m
@@ -45,8 +45,10 @@
// directly.
// ------------------------------------------------------------------
-#define kMapKeyFieldNumber 1
-#define kMapValueFieldNumber 2
+enum {
+ kMapKeyFieldNumber = 1,
+ kMapValueFieldNumber = 2,
+};
static BOOL DictDefault_IsValidValue(int32_t value) {
// Anything but the bad value marker is allowed.
@@ -55,58 +57,62 @@ static BOOL DictDefault_IsValidValue(int32_t value) {
//%PDDM-DEFINE SERIALIZE_SUPPORT_2_TYPE(VALUE_NAME, VALUE_TYPE, GPBTYPE_NAME1, GPBTYPE_NAME2)
//%GPB_INLINE size_t ComputeDict##VALUE_NAME##FieldSize(VALUE_TYPE value, uint32_t fieldNum, GPBType wireType) {
-//% NSCAssert((wireType == GPBType##GPBTYPE_NAME1) || (wireType == GPBType##GPBTYPE_NAME2),
-//% @"bad type: %d", wireType);
//% if (wireType == GPBType##GPBTYPE_NAME1) {
//% return GPBCompute##GPBTYPE_NAME1##Size(fieldNum, value);
-//% } else { // wireType == GPBType##GPBTYPE_NAME2
+//% } else if (wireType == GPBType##GPBTYPE_NAME2) {
//% return GPBCompute##GPBTYPE_NAME2##Size(fieldNum, value);
+//% } else {
+//% NSCAssert(NO, @"Unexpected type %d", wireType);
+//% return 0;
//% }
//%}
//%
//%GPB_INLINE void WriteDict##VALUE_NAME##Field(GPBCodedOutputStream *stream, VALUE_TYPE value, uint32_t fieldNum, GPBType wireType) {
-//% NSCAssert((wireType == GPBType##GPBTYPE_NAME1) || (wireType == GPBType##GPBTYPE_NAME2),
-//% @"bad type: %d", wireType);
//% if (wireType == GPBType##GPBTYPE_NAME1) {
//% [stream write##GPBTYPE_NAME1##:fieldNum value:value];
-//% } else { // wireType == GPBType##GPBTYPE_NAME2
+//% } else if (wireType == GPBType##GPBTYPE_NAME2) {
//% [stream write##GPBTYPE_NAME2##:fieldNum value:value];
+//% } else {
+//% NSCAssert(NO, @"Unexpected type %d", wireType);
//% }
//%}
//%
//%PDDM-DEFINE SERIALIZE_SUPPORT_3_TYPE(VALUE_NAME, VALUE_TYPE, GPBTYPE_NAME1, GPBTYPE_NAME2, GPBTYPE_NAME3)
//%GPB_INLINE size_t ComputeDict##VALUE_NAME##FieldSize(VALUE_TYPE value, uint32_t fieldNum, GPBType wireType) {
-//% NSCAssert((wireType == GPBType##GPBTYPE_NAME1) || (wireType == GPBType##GPBTYPE_NAME2) || (wireType == GPBType##GPBTYPE_NAME3),
-//% @"bad type: %d", wireType);
//% if (wireType == GPBType##GPBTYPE_NAME1) {
//% return GPBCompute##GPBTYPE_NAME1##Size(fieldNum, value);
//% } else if (wireType == GPBType##GPBTYPE_NAME2) {
//% return GPBCompute##GPBTYPE_NAME2##Size(fieldNum, value);
-//% } else { // wireType == GPBType##GPBTYPE_NAME3
+//% } else if (wireType == GPBType##GPBTYPE_NAME3) {
//% return GPBCompute##GPBTYPE_NAME3##Size(fieldNum, value);
+//% } else {
+//% NSCAssert(NO, @"Unexpected type %d", wireType);
+//% return 0;
//% }
//%}
//%
//%GPB_INLINE void WriteDict##VALUE_NAME##Field(GPBCodedOutputStream *stream, VALUE_TYPE value, uint32_t fieldNum, GPBType wireType) {
-//% NSCAssert((wireType == GPBType##GPBTYPE_NAME1) || (wireType == GPBType##GPBTYPE_NAME2) || (wireType == GPBType##GPBTYPE_NAME3),
-//% @"bad type: %d", wireType);
//% if (wireType == GPBType##GPBTYPE_NAME1) {
//% [stream write##GPBTYPE_NAME1##:fieldNum value:value];
//% } else if (wireType == GPBType##GPBTYPE_NAME2) {
//% [stream write##GPBTYPE_NAME2##:fieldNum value:value];
-//% } else { // wireType == GPBType##GPBTYPE_NAME3
+//% } else if (wireType == GPBType##GPBTYPE_NAME3) {
//% [stream write##GPBTYPE_NAME3##:fieldNum value:value];
+//% } else {
+//% NSCAssert(NO, @"Unexpected type %d", wireType);
//% }
//%}
//%
//%PDDM-DEFINE SIMPLE_SERIALIZE_SUPPORT(VALUE_NAME, VALUE_TYPE, VisP)
//%GPB_INLINE size_t ComputeDict##VALUE_NAME##FieldSize(VALUE_TYPE VisP##value, uint32_t fieldNum, GPBType wireType) {
//% NSCAssert(wireType == GPBType##VALUE_NAME, @"bad type: %d", wireType);
+//% #pragma unused(wireType) // For when asserts are off in release.
//% return GPBCompute##VALUE_NAME##Size(fieldNum, value);
//%}
//%
//%GPB_INLINE void WriteDict##VALUE_NAME##Field(GPBCodedOutputStream *stream, VALUE_TYPE VisP##value, uint32_t fieldNum, GPBType wireType) {
//% NSCAssert(wireType == GPBType##VALUE_NAME, @"bad type: %d", wireType);
+//% #pragma unused(wireType) // For when asserts are off in release.
//% [stream write##VALUE_NAME##:fieldNum value:value];
//%}
//%
@@ -125,171 +131,185 @@ static BOOL DictDefault_IsValidValue(int32_t value) {
// This block of code is generated, do not edit it directly.
GPB_INLINE size_t ComputeDictInt32FieldSize(int32_t value, uint32_t fieldNum, GPBType wireType) {
- NSCAssert((wireType == GPBTypeInt32) || (wireType == GPBTypeSInt32) || (wireType == GPBTypeSFixed32),
- @"bad type: %d", wireType);
if (wireType == GPBTypeInt32) {
return GPBComputeInt32Size(fieldNum, value);
} else if (wireType == GPBTypeSInt32) {
return GPBComputeSInt32Size(fieldNum, value);
- } else { // wireType == GPBTypeSFixed32
+ } else if (wireType == GPBTypeSFixed32) {
return GPBComputeSFixed32Size(fieldNum, value);
+ } else {
+ NSCAssert(NO, @"Unexpected type %d", wireType);
+ return 0;
}
}
GPB_INLINE void WriteDictInt32Field(GPBCodedOutputStream *stream, int32_t value, uint32_t fieldNum, GPBType wireType) {
- NSCAssert((wireType == GPBTypeInt32) || (wireType == GPBTypeSInt32) || (wireType == GPBTypeSFixed32),
- @"bad type: %d", wireType);
if (wireType == GPBTypeInt32) {
[stream writeInt32:fieldNum value:value];
} else if (wireType == GPBTypeSInt32) {
[stream writeSInt32:fieldNum value:value];
- } else { // wireType == GPBTypeSFixed32
+ } else if (wireType == GPBTypeSFixed32) {
[stream writeSFixed32:fieldNum value:value];
+ } else {
+ NSCAssert(NO, @"Unexpected type %d", wireType);
}
}
GPB_INLINE size_t ComputeDictUInt32FieldSize(uint32_t value, uint32_t fieldNum, GPBType wireType) {
- NSCAssert((wireType == GPBTypeUInt32) || (wireType == GPBTypeFixed32),
- @"bad type: %d", wireType);
if (wireType == GPBTypeUInt32) {
return GPBComputeUInt32Size(fieldNum, value);
- } else { // wireType == GPBTypeFixed32
+ } else if (wireType == GPBTypeFixed32) {
return GPBComputeFixed32Size(fieldNum, value);
+ } else {
+ NSCAssert(NO, @"Unexpected type %d", wireType);
+ return 0;
}
}
GPB_INLINE void WriteDictUInt32Field(GPBCodedOutputStream *stream, uint32_t value, uint32_t fieldNum, GPBType wireType) {
- NSCAssert((wireType == GPBTypeUInt32) || (wireType == GPBTypeFixed32),
- @"bad type: %d", wireType);
if (wireType == GPBTypeUInt32) {
[stream writeUInt32:fieldNum value:value];
- } else { // wireType == GPBTypeFixed32
+ } else if (wireType == GPBTypeFixed32) {
[stream writeFixed32:fieldNum value:value];
+ } else {
+ NSCAssert(NO, @"Unexpected type %d", wireType);
}
}
GPB_INLINE size_t ComputeDictInt64FieldSize(int64_t value, uint32_t fieldNum, GPBType wireType) {
- NSCAssert((wireType == GPBTypeInt64) || (wireType == GPBTypeSInt64) || (wireType == GPBTypeSFixed64),
- @"bad type: %d", wireType);
if (wireType == GPBTypeInt64) {
return GPBComputeInt64Size(fieldNum, value);
} else if (wireType == GPBTypeSInt64) {
return GPBComputeSInt64Size(fieldNum, value);
- } else { // wireType == GPBTypeSFixed64
+ } else if (wireType == GPBTypeSFixed64) {
return GPBComputeSFixed64Size(fieldNum, value);
+ } else {
+ NSCAssert(NO, @"Unexpected type %d", wireType);
+ return 0;
}
}
GPB_INLINE void WriteDictInt64Field(GPBCodedOutputStream *stream, int64_t value, uint32_t fieldNum, GPBType wireType) {
- NSCAssert((wireType == GPBTypeInt64) || (wireType == GPBTypeSInt64) || (wireType == GPBTypeSFixed64),
- @"bad type: %d", wireType);
if (wireType == GPBTypeInt64) {
[stream writeInt64:fieldNum value:value];
} else if (wireType == GPBTypeSInt64) {
[stream writeSInt64:fieldNum value:value];
- } else { // wireType == GPBTypeSFixed64
+ } else if (wireType == GPBTypeSFixed64) {
[stream writeSFixed64:fieldNum value:value];
+ } else {
+ NSCAssert(NO, @"Unexpected type %d", wireType);
}
}
GPB_INLINE size_t ComputeDictUInt64FieldSize(uint64_t value, uint32_t fieldNum, GPBType wireType) {
- NSCAssert((wireType == GPBTypeUInt64) || (wireType == GPBTypeFixed64),
- @"bad type: %d", wireType);
if (wireType == GPBTypeUInt64) {
return GPBComputeUInt64Size(fieldNum, value);
- } else { // wireType == GPBTypeFixed64
+ } else if (wireType == GPBTypeFixed64) {
return GPBComputeFixed64Size(fieldNum, value);
+ } else {
+ NSCAssert(NO, @"Unexpected type %d", wireType);
+ return 0;
}
}
GPB_INLINE void WriteDictUInt64Field(GPBCodedOutputStream *stream, uint64_t value, uint32_t fieldNum, GPBType wireType) {
- NSCAssert((wireType == GPBTypeUInt64) || (wireType == GPBTypeFixed64),
- @"bad type: %d", wireType);
if (wireType == GPBTypeUInt64) {
[stream writeUInt64:fieldNum value:value];
- } else { // wireType == GPBTypeFixed64
+ } else if (wireType == GPBTypeFixed64) {
[stream writeFixed64:fieldNum value:value];
+ } else {
+ NSCAssert(NO, @"Unexpected type %d", wireType);
}
}
GPB_INLINE size_t ComputeDictBoolFieldSize(BOOL value, uint32_t fieldNum, GPBType wireType) {
NSCAssert(wireType == GPBTypeBool, @"bad type: %d", wireType);
+ #pragma unused(wireType) // For when asserts are off in release.
return GPBComputeBoolSize(fieldNum, value);
}
GPB_INLINE void WriteDictBoolField(GPBCodedOutputStream *stream, BOOL value, uint32_t fieldNum, GPBType wireType) {
NSCAssert(wireType == GPBTypeBool, @"bad type: %d", wireType);
+ #pragma unused(wireType) // For when asserts are off in release.
[stream writeBool:fieldNum value:value];
}
GPB_INLINE size_t ComputeDictEnumFieldSize(int32_t value, uint32_t fieldNum, GPBType wireType) {
NSCAssert(wireType == GPBTypeEnum, @"bad type: %d", wireType);
+ #pragma unused(wireType) // For when asserts are off in release.
return GPBComputeEnumSize(fieldNum, value);
}
GPB_INLINE void WriteDictEnumField(GPBCodedOutputStream *stream, int32_t value, uint32_t fieldNum, GPBType wireType) {
NSCAssert(wireType == GPBTypeEnum, @"bad type: %d", wireType);
+ #pragma unused(wireType) // For when asserts are off in release.
[stream writeEnum:fieldNum value:value];
}
GPB_INLINE size_t ComputeDictFloatFieldSize(float value, uint32_t fieldNum, GPBType wireType) {
NSCAssert(wireType == GPBTypeFloat, @"bad type: %d", wireType);
+ #pragma unused(wireType) // For when asserts are off in release.
return GPBComputeFloatSize(fieldNum, value);
}
GPB_INLINE void WriteDictFloatField(GPBCodedOutputStream *stream, float value, uint32_t fieldNum, GPBType wireType) {
NSCAssert(wireType == GPBTypeFloat, @"bad type: %d", wireType);
+ #pragma unused(wireType) // For when asserts are off in release.
[stream writeFloat:fieldNum value:value];
}
GPB_INLINE size_t ComputeDictDoubleFieldSize(double value, uint32_t fieldNum, GPBType wireType) {
NSCAssert(wireType == GPBTypeDouble, @"bad type: %d", wireType);
+ #pragma unused(wireType) // For when asserts are off in release.
return GPBComputeDoubleSize(fieldNum, value);
}
GPB_INLINE void WriteDictDoubleField(GPBCodedOutputStream *stream, double value, uint32_t fieldNum, GPBType wireType) {
NSCAssert(wireType == GPBTypeDouble, @"bad type: %d", wireType);
+ #pragma unused(wireType) // For when asserts are off in release.
[stream writeDouble:fieldNum value:value];
}
GPB_INLINE size_t ComputeDictStringFieldSize(NSString *value, uint32_t fieldNum, GPBType wireType) {
NSCAssert(wireType == GPBTypeString, @"bad type: %d", wireType);
+ #pragma unused(wireType) // For when asserts are off in release.
return GPBComputeStringSize(fieldNum, value);
}
GPB_INLINE void WriteDictStringField(GPBCodedOutputStream *stream, NSString *value, uint32_t fieldNum, GPBType wireType) {
NSCAssert(wireType == GPBTypeString, @"bad type: %d", wireType);
+ #pragma unused(wireType) // For when asserts are off in release.
[stream writeString:fieldNum value:value];
}
GPB_INLINE size_t ComputeDictObjectFieldSize(id value, uint32_t fieldNum, GPBType wireType) {
- NSCAssert((wireType == GPBTypeMessage) || (wireType == GPBTypeString) || (wireType == GPBTypeData),
- @"bad type: %d", wireType);
if (wireType == GPBTypeMessage) {
return GPBComputeMessageSize(fieldNum, value);
} else if (wireType == GPBTypeString) {
return GPBComputeStringSize(fieldNum, value);
- } else { // wireType == GPBTypeData
+ } else if (wireType == GPBTypeData) {
return GPBComputeDataSize(fieldNum, value);
+ } else {
+ NSCAssert(NO, @"Unexpected type %d", wireType);
+ return 0;
}
}
GPB_INLINE void WriteDictObjectField(GPBCodedOutputStream *stream, id value, uint32_t fieldNum, GPBType wireType) {
- NSCAssert((wireType == GPBTypeMessage) || (wireType == GPBTypeString) || (wireType == GPBTypeData),
- @"bad type: %d", wireType);
if (wireType == GPBTypeMessage) {
[stream writeMessage:fieldNum value:value];
} else if (wireType == GPBTypeString) {
[stream writeString:fieldNum value:value];
- } else { // wireType == GPBTypeData
+ } else if (wireType == GPBTypeData) {
[stream writeData:fieldNum value:value];
+ } else {
+ NSCAssert(NO, @"Unexpected type %d", wireType);
}
}
//%PDDM-EXPAND-END SERIALIZE_SUPPORT_HELPERS()
size_t GPBDictionaryComputeSizeInternalHelper(NSDictionary *dict, GPBFieldDescriptor *field) {
- NSCAssert(field.mapKeyType == GPBTypeString, @"Unexpected key type");
GPBType mapValueType = GPBGetFieldType(field);
__block size_t result = 0;
[dict enumerateKeysAndObjectsUsingBlock:^(NSString *key, id obj, BOOL *stop) {
@@ -319,7 +339,7 @@ void GPBDictionaryWriteToStreamInternalHelper(GPBCodedOutputStream *outputStream
// Write the size and fields.
[outputStream writeInt32NoTag:(int32_t)msgSize];
- [outputStream writeString:kMapValueFieldNumber value:obj];
+ [outputStream writeString:kMapKeyFieldNumber value:key];
WriteDictObjectField(outputStream, obj, kMapValueFieldNumber, mapValueType);
}];
}
@@ -327,6 +347,7 @@ void GPBDictionaryWriteToStreamInternalHelper(GPBCodedOutputStream *outputStream
BOOL GPBDictionaryIsInitializedInternalHelper(NSDictionary *dict, GPBFieldDescriptor *field) {
NSCAssert(field.mapKeyType == GPBTypeString, @"Unexpected key type");
NSCAssert(GPBGetFieldType(field) == GPBTypeMessage, @"Unexpected value type");
+ #pragma unused(field) // For when asserts are off in release.
for (GPBMessage *msg in [dict objectEnumerator]) {
if (!msg.initialized) {
return NO;
@@ -488,8 +509,12 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
}
- if (GPBTypeIsObject(keyType)) [key.valueString release];
- if (GPBTypeIsObject(valueType)) [value.valueString release];
+ if (GPBTypeIsObject(keyType)) {
+ [key.valueString release];
+ }
+ if (GPBTypeIsObject(valueType)) {
+ [value.valueString release];
+ }
}
//
@@ -751,6 +776,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
//% }
//%
//% [_dictionary setObject:WRAPPED##VHELPER(value) forKey:WRAPPED##KHELPER(key)];
+//% if (_autocreator) {
+//% GPBAutocreatedDictionaryModified(_autocreator, self);
+//% }
//%}
//%
//%@end
@@ -758,6 +786,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
//%PDDM-DEFINE DICTIONARY_IMMUTABLE_CORE(KEY_NAME, KEY_TYPE, KisP, VALUE_NAME, VALUE_TYPE, KHELPER, VHELPER, ACCESSOR_NAME)
//%- (void)dealloc {
+//% NSAssert(!_autocreator,
+//% @"%@: Autocreator must be cleared before release, autocreator: %@",
+//% [self class], _autocreator);
//% [_dictionary release];
//% [super dealloc];
//%}
@@ -854,11 +885,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
//%- (void)add##ACCESSOR_NAME##EntriesFromDictionary:(GPB##KEY_NAME##VALUE_NAME##Dictionary *)otherDictionary {
//% if (otherDictionary) {
//% [_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+//% if (_autocreator) {
+//% GPBAutocreatedDictionaryModified(_autocreator, self);
+//% }
//% }
//%}
//%
//%- (void)set##ACCESSOR_NAME##Value:(VALUE_TYPE)value forKey:(KEY_TYPE##KisP$S##KisP)key {
//% [_dictionary setObject:WRAPPED##VHELPER(value) forKey:WRAPPED##KHELPER(key)];
+//% if (_autocreator) {
+//% GPBAutocreatedDictionaryModified(_autocreator, self);
+//% }
//%}
//%
//%- (void)removeValueForKey:(KEY_TYPE##KisP$S##KisP)aKey {
@@ -930,7 +967,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
//% return [self initWithValues:NULL forKeys:NULL count:0];
//%}
//%
-//%BOOL_DICT_DEALLOC##HELPER()- (instancetype)copyWithZone:(NSZone *)zone {
+//%BOOL_DICT_DEALLOC##HELPER()
+//%
+//%- (instancetype)copyWithZone:(NSZone *)zone {
//% return [[GPBBool##VALUE_NAME##Dictionary allocWithZone:zone] initWithDictionary:self];
//%}
//%
@@ -1158,7 +1197,14 @@ void GPBDictionaryReadEntry(id mapDictionary,
//% return self;
//%}
//%PDDM-DEFINE BOOL_DICT_DEALLOCPOD()
-// Empty
+//%#if !defined(NS_BLOCK_ASSERTIONS)
+//%- (void)dealloc {
+//% NSAssert(!_autocreator,
+//% @"%@: Autocreator must be cleared before release, autocreator: %@",
+//% [self class], _autocreator);
+//% [super dealloc];
+//%}
+//%#endif // !defined(NS_BLOCK_ASSERTIONS)
//%PDDM-DEFINE BOOL_DICT_W_HASPOD(IDX, REF)
//%BOOL_DICT_HASPOD(IDX, REF)
//%PDDM-DEFINE BOOL_DICT_HASPOD(IDX, REF)
@@ -1189,6 +1235,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
//% _values[i] = otherDictionary->_values[i];
//% }
//% }
+//% if (_autocreator) {
+//% GPBAutocreatedDictionaryModified(_autocreator, self);
+//% }
//% }
//%}
//%
@@ -1196,6 +1245,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
//% int idx = (key ? 1 : 0);
//% _values[idx] = value;
//% _valueSet[idx] = YES;
+//% if (_autocreator) {
+//% GPBAutocreatedDictionaryModified(_autocreator, self);
+//% }
//%}
//%
//%- (void)removeValueForKey:(BOOL)aKey {
@@ -1333,12 +1385,13 @@ void GPBDictionaryReadEntry(id mapDictionary,
//%}
//%PDDM-DEFINE BOOL_DICT_DEALLOCOBJECT()
//%- (void)dealloc {
+//% NSAssert(!_autocreator,
+//% @"%@: Autocreator must be cleared before release, autocreator: %@",
+//% [self class], _autocreator);
//% [_values[0] release];
//% [_values[1] release];
//% [super dealloc];
//%}
-//%
-//%
//%PDDM-DEFINE BOOL_DICT_W_HASOBJECT(IDX, REF)
//%(BOOL_DICT_HASOBJECT(IDX, REF))
//%PDDM-DEFINE BOOL_DICT_HASOBJECT(IDX, REF)
@@ -1363,6 +1416,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
//% _values[i] = [otherDictionary->_values[i] retain];
//% }
//% }
+//% if (_autocreator) {
+//% GPBAutocreatedDictionaryModified(_autocreator, self);
+//% }
//% }
//%}
//%
@@ -1370,6 +1426,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
//% int idx = (key ? 1 : 0);
//% [_values[idx] release];
//% _values[idx] = [value retain];
+//% if (_autocreator) {
+//% GPBAutocreatedDictionaryModified(_autocreator, self);
+//% }
//%}
//%
//%- (void)removeValueForKey:(BOOL)aKey {
@@ -1466,6 +1525,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -1570,11 +1632,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt32UInt32Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(uint32_t)value forKey:(uint32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint32_t)aKey {
@@ -1662,6 +1730,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -1766,11 +1837,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt32Int32Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(int32_t)value forKey:(uint32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint32_t)aKey {
@@ -1858,6 +1935,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -1962,11 +2042,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt32UInt64Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(uint64_t)value forKey:(uint32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint32_t)aKey {
@@ -2054,6 +2140,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -2158,11 +2247,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt32Int64Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(int64_t)value forKey:(uint32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint32_t)aKey {
@@ -2250,6 +2345,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -2354,11 +2452,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt32BoolDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(BOOL)value forKey:(uint32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint32_t)aKey {
@@ -2446,6 +2550,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -2550,11 +2657,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt32FloatDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(float)value forKey:(uint32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint32_t)aKey {
@@ -2642,6 +2755,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -2746,11 +2862,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt32DoubleDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(double)value forKey:(uint32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint32_t)aKey {
@@ -2866,6 +2988,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -3008,11 +3133,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addRawEntriesFromDictionary:(GPBUInt32EnumDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setRawValue:(int32_t)value forKey:(uint32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint32_t)aKey {
@@ -3031,6 +3162,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
@end
@@ -3110,6 +3244,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -3234,11 +3371,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt32ObjectDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(id)value forKey:(uint32_t)key {
[_dictionary setObject:value forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint32_t)aKey {
@@ -3329,6 +3472,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -3433,11 +3579,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt32UInt32Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(uint32_t)value forKey:(int32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int32_t)aKey {
@@ -3525,6 +3677,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -3629,11 +3784,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt32Int32Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(int32_t)value forKey:(int32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int32_t)aKey {
@@ -3721,6 +3882,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -3825,11 +3989,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt32UInt64Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(uint64_t)value forKey:(int32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int32_t)aKey {
@@ -3917,6 +4087,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -4021,11 +4194,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt32Int64Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(int64_t)value forKey:(int32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int32_t)aKey {
@@ -4113,6 +4292,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -4217,11 +4399,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt32BoolDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(BOOL)value forKey:(int32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int32_t)aKey {
@@ -4309,6 +4497,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -4413,11 +4604,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt32FloatDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(float)value forKey:(int32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int32_t)aKey {
@@ -4505,6 +4702,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -4609,11 +4809,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt32DoubleDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(double)value forKey:(int32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int32_t)aKey {
@@ -4729,6 +4935,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -4871,11 +5080,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addRawEntriesFromDictionary:(GPBInt32EnumDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setRawValue:(int32_t)value forKey:(int32_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int32_t)aKey {
@@ -4894,6 +5109,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
@end
@@ -4973,6 +5191,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -5097,11 +5318,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt32ObjectDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(id)value forKey:(int32_t)key {
[_dictionary setObject:value forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int32_t)aKey {
@@ -5192,6 +5419,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -5296,11 +5526,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt64UInt32Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(uint32_t)value forKey:(uint64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint64_t)aKey {
@@ -5388,6 +5624,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -5492,11 +5731,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt64Int32Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(int32_t)value forKey:(uint64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint64_t)aKey {
@@ -5584,6 +5829,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -5688,11 +5936,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt64UInt64Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(uint64_t)value forKey:(uint64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint64_t)aKey {
@@ -5780,6 +6034,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -5884,11 +6141,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt64Int64Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(int64_t)value forKey:(uint64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint64_t)aKey {
@@ -5976,6 +6239,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -6080,11 +6346,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt64BoolDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(BOOL)value forKey:(uint64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint64_t)aKey {
@@ -6172,6 +6444,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -6276,11 +6551,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt64FloatDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(float)value forKey:(uint64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint64_t)aKey {
@@ -6368,6 +6649,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -6472,11 +6756,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt64DoubleDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(double)value forKey:(uint64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint64_t)aKey {
@@ -6592,6 +6882,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -6734,11 +7027,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addRawEntriesFromDictionary:(GPBUInt64EnumDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setRawValue:(int32_t)value forKey:(uint64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint64_t)aKey {
@@ -6757,6 +7056,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
@end
@@ -6836,6 +7138,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -6960,11 +7265,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBUInt64ObjectDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(id)value forKey:(uint64_t)key {
[_dictionary setObject:value forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(uint64_t)aKey {
@@ -7055,6 +7366,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -7159,11 +7473,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt64UInt32Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(uint32_t)value forKey:(int64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int64_t)aKey {
@@ -7251,6 +7571,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -7355,11 +7678,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt64Int32Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(int32_t)value forKey:(int64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int64_t)aKey {
@@ -7447,6 +7776,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -7551,11 +7883,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt64UInt64Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(uint64_t)value forKey:(int64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int64_t)aKey {
@@ -7643,6 +7981,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -7747,11 +8088,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt64Int64Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(int64_t)value forKey:(int64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int64_t)aKey {
@@ -7839,6 +8186,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -7943,11 +8293,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt64BoolDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(BOOL)value forKey:(int64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int64_t)aKey {
@@ -8035,6 +8391,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -8139,11 +8498,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt64FloatDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(float)value forKey:(int64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int64_t)aKey {
@@ -8231,6 +8596,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -8335,11 +8703,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt64DoubleDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(double)value forKey:(int64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int64_t)aKey {
@@ -8455,6 +8829,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -8597,11 +8974,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addRawEntriesFromDictionary:(GPBInt64EnumDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setRawValue:(int32_t)value forKey:(int64_t)key {
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int64_t)aKey {
@@ -8620,6 +9003,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
[_dictionary setObject:@(value) forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
@end
@@ -8699,6 +9085,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -8823,11 +9212,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBInt64ObjectDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(id)value forKey:(int64_t)key {
[_dictionary setObject:value forKey:@(key)];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(int64_t)aKey {
@@ -8918,6 +9313,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -9022,11 +9420,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBStringUInt32Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(uint32_t)value forKey:(NSString *)key {
[_dictionary setObject:@(value) forKey:key];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(NSString *)aKey {
@@ -9114,6 +9518,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -9218,11 +9625,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBStringInt32Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(int32_t)value forKey:(NSString *)key {
[_dictionary setObject:@(value) forKey:key];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(NSString *)aKey {
@@ -9310,6 +9723,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -9414,11 +9830,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBStringUInt64Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(uint64_t)value forKey:(NSString *)key {
[_dictionary setObject:@(value) forKey:key];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(NSString *)aKey {
@@ -9506,6 +9928,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -9610,11 +10035,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBStringInt64Dictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(int64_t)value forKey:(NSString *)key {
[_dictionary setObject:@(value) forKey:key];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(NSString *)aKey {
@@ -9702,6 +10133,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -9806,11 +10240,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBStringBoolDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(BOOL)value forKey:(NSString *)key {
[_dictionary setObject:@(value) forKey:key];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(NSString *)aKey {
@@ -9898,6 +10338,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -10002,11 +10445,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBStringFloatDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(float)value forKey:(NSString *)key {
[_dictionary setObject:@(value) forKey:key];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(NSString *)aKey {
@@ -10094,6 +10543,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -10198,11 +10650,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addEntriesFromDictionary:(GPBStringDoubleDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setValue:(double)value forKey:(NSString *)key {
[_dictionary setObject:@(value) forKey:key];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(NSString *)aKey {
@@ -10318,6 +10776,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_dictionary release];
[super dealloc];
}
@@ -10460,11 +10921,17 @@ void GPBDictionaryReadEntry(id mapDictionary,
- (void)addRawEntriesFromDictionary:(GPBStringEnumDictionary *)otherDictionary {
if (otherDictionary) {
[_dictionary addEntriesFromDictionary:otherDictionary->_dictionary];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
- (void)setRawValue:(int32_t)value forKey:(NSString *)key {
[_dictionary setObject:@(value) forKey:key];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(NSString *)aKey {
@@ -10483,6 +10950,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
[_dictionary setObject:@(value) forKey:key];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
@end
@@ -10572,6 +11042,15 @@ void GPBDictionaryReadEntry(id mapDictionary,
return [self initWithValues:NULL forKeys:NULL count:0];
}
+#if !defined(NS_BLOCK_ASSERTIONS)
+- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
+ [super dealloc];
+}
+#endif // !defined(NS_BLOCK_ASSERTIONS)
+
- (instancetype)copyWithZone:(NSZone *)zone {
return [[GPBBoolUInt32Dictionary allocWithZone:zone] initWithDictionary:self];
}
@@ -10695,6 +11174,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
_values[i] = otherDictionary->_values[i];
}
}
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
@@ -10702,6 +11184,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
int idx = (key ? 1 : 0);
_values[idx] = value;
_valueSet[idx] = YES;
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(BOOL)aKey {
@@ -10797,6 +11282,15 @@ void GPBDictionaryReadEntry(id mapDictionary,
return [self initWithValues:NULL forKeys:NULL count:0];
}
+#if !defined(NS_BLOCK_ASSERTIONS)
+- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
+ [super dealloc];
+}
+#endif // !defined(NS_BLOCK_ASSERTIONS)
+
- (instancetype)copyWithZone:(NSZone *)zone {
return [[GPBBoolInt32Dictionary allocWithZone:zone] initWithDictionary:self];
}
@@ -10920,6 +11414,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
_values[i] = otherDictionary->_values[i];
}
}
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
@@ -10927,6 +11424,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
int idx = (key ? 1 : 0);
_values[idx] = value;
_valueSet[idx] = YES;
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(BOOL)aKey {
@@ -11022,6 +11522,15 @@ void GPBDictionaryReadEntry(id mapDictionary,
return [self initWithValues:NULL forKeys:NULL count:0];
}
+#if !defined(NS_BLOCK_ASSERTIONS)
+- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
+ [super dealloc];
+}
+#endif // !defined(NS_BLOCK_ASSERTIONS)
+
- (instancetype)copyWithZone:(NSZone *)zone {
return [[GPBBoolUInt64Dictionary allocWithZone:zone] initWithDictionary:self];
}
@@ -11145,6 +11654,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
_values[i] = otherDictionary->_values[i];
}
}
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
@@ -11152,6 +11664,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
int idx = (key ? 1 : 0);
_values[idx] = value;
_valueSet[idx] = YES;
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(BOOL)aKey {
@@ -11247,6 +11762,15 @@ void GPBDictionaryReadEntry(id mapDictionary,
return [self initWithValues:NULL forKeys:NULL count:0];
}
+#if !defined(NS_BLOCK_ASSERTIONS)
+- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
+ [super dealloc];
+}
+#endif // !defined(NS_BLOCK_ASSERTIONS)
+
- (instancetype)copyWithZone:(NSZone *)zone {
return [[GPBBoolInt64Dictionary allocWithZone:zone] initWithDictionary:self];
}
@@ -11370,6 +11894,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
_values[i] = otherDictionary->_values[i];
}
}
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
@@ -11377,6 +11904,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
int idx = (key ? 1 : 0);
_values[idx] = value;
_valueSet[idx] = YES;
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(BOOL)aKey {
@@ -11472,6 +12002,15 @@ void GPBDictionaryReadEntry(id mapDictionary,
return [self initWithValues:NULL forKeys:NULL count:0];
}
+#if !defined(NS_BLOCK_ASSERTIONS)
+- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
+ [super dealloc];
+}
+#endif // !defined(NS_BLOCK_ASSERTIONS)
+
- (instancetype)copyWithZone:(NSZone *)zone {
return [[GPBBoolBoolDictionary allocWithZone:zone] initWithDictionary:self];
}
@@ -11595,6 +12134,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
_values[i] = otherDictionary->_values[i];
}
}
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
@@ -11602,6 +12144,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
int idx = (key ? 1 : 0);
_values[idx] = value;
_valueSet[idx] = YES;
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(BOOL)aKey {
@@ -11697,6 +12242,15 @@ void GPBDictionaryReadEntry(id mapDictionary,
return [self initWithValues:NULL forKeys:NULL count:0];
}
+#if !defined(NS_BLOCK_ASSERTIONS)
+- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
+ [super dealloc];
+}
+#endif // !defined(NS_BLOCK_ASSERTIONS)
+
- (instancetype)copyWithZone:(NSZone *)zone {
return [[GPBBoolFloatDictionary allocWithZone:zone] initWithDictionary:self];
}
@@ -11820,6 +12374,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
_values[i] = otherDictionary->_values[i];
}
}
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
@@ -11827,6 +12384,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
int idx = (key ? 1 : 0);
_values[idx] = value;
_valueSet[idx] = YES;
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(BOOL)aKey {
@@ -11922,6 +12482,15 @@ void GPBDictionaryReadEntry(id mapDictionary,
return [self initWithValues:NULL forKeys:NULL count:0];
}
+#if !defined(NS_BLOCK_ASSERTIONS)
+- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
+ [super dealloc];
+}
+#endif // !defined(NS_BLOCK_ASSERTIONS)
+
- (instancetype)copyWithZone:(NSZone *)zone {
return [[GPBBoolDoubleDictionary allocWithZone:zone] initWithDictionary:self];
}
@@ -12045,6 +12614,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
_values[i] = otherDictionary->_values[i];
}
}
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
@@ -12052,6 +12624,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
int idx = (key ? 1 : 0);
_values[idx] = value;
_valueSet[idx] = YES;
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(BOOL)aKey {
@@ -12143,6 +12718,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
[_values[0] release];
[_values[1] release];
[super dealloc];
@@ -12285,6 +12863,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
_values[i] = [otherDictionary->_values[i] retain];
}
}
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
@@ -12292,6 +12873,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
int idx = (key ? 1 : 0);
[_values[idx] release];
_values[idx] = [value retain];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(BOOL)aKey {
@@ -12418,6 +13002,15 @@ void GPBDictionaryReadEntry(id mapDictionary,
return [self initWithValidationFunction:func rawValues:NULL forKeys:NULL count:0];
}
+#if !defined(NS_BLOCK_ASSERTIONS)
+- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
+ [super dealloc];
+}
+#endif // !defined(NS_BLOCK_ASSERTIONS)
+
- (instancetype)copyWithZone:(NSZone *)zone {
return [[GPBBoolEnumDictionary allocWithZone:zone] initWithDictionary:self];
}
@@ -12595,6 +13188,9 @@ void GPBDictionaryReadEntry(id mapDictionary,
_values[i] = otherDictionary->_values[i];
}
}
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
}
@@ -12607,12 +13203,18 @@ void GPBDictionaryReadEntry(id mapDictionary,
int idx = (key ? 1 : 0);
_values[idx] = value;
_valueSet[idx] = YES;
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)setRawValue:(int32_t)rawValue forKey:(BOOL)key {
int idx = (key ? 1 : 0);
_values[idx] = rawValue;
_valueSet[idx] = YES;
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
}
- (void)removeValueForKey:(BOOL)aKey {
@@ -12625,3 +13227,110 @@ void GPBDictionaryReadEntry(id mapDictionary,
}
@end
+
+#pragma mark - NSDictionary Subclass
+
+@implementation GPBAutocreatedDictionary {
+ NSMutableDictionary *_dictionary;
+}
+
+- (void)dealloc {
+ NSAssert(!_autocreator,
+ @"%@: Autocreator must be cleared before release, autocreator: %@",
+ [self class], _autocreator);
+ [_dictionary release];
+ [super dealloc];
+}
+
+#pragma mark Required NSDictionary overrides
+
+- (instancetype)initWithObjects:(const id [])objects
+ forKeys:(const id<NSCopying> [])keys
+ count:(NSUInteger)count {
+ self = [super init];
+ if (self) {
+ _dictionary = [[NSMutableDictionary alloc] initWithObjects:objects
+ forKeys:keys
+ count:count];
+ }
+ return self;
+}
+
+- (NSUInteger)count {
+ return [_dictionary count];
+}
+
+- (id)objectForKey:(id)aKey {
+ return [_dictionary objectForKey:aKey];
+}
+
+- (NSEnumerator *)keyEnumerator {
+ if (_dictionary == nil) {
+ _dictionary = [[NSMutableDictionary alloc] init];
+ }
+ return [_dictionary keyEnumerator];
+}
+
+#pragma mark Required NSMutableDictionary overrides
+
+// Only need to call GPBAutocreatedDictionaryModified() when adding things
+// since we only autocreate empty dictionaries.
+
+- (void)setObject:(id)anObject forKey:(id<NSCopying>)aKey {
+ if (_dictionary == nil) {
+ _dictionary = [[NSMutableDictionary alloc] init];
+ }
+ [_dictionary setObject:anObject forKey:aKey];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
+}
+
+- (void)removeObjectForKey:(id)aKey {
+ [_dictionary removeObjectForKey:aKey];
+}
+
+#pragma mark Extra things hooked
+
+- (id)copyWithZone:(NSZone *)zone {
+ if (_dictionary == nil) {
+ _dictionary = [[NSMutableDictionary alloc] init];
+ }
+ return [_dictionary copyWithZone:zone];
+}
+
+- (id)mutableCopyWithZone:(NSZone *)zone {
+ if (_dictionary == nil) {
+ _dictionary = [[NSMutableDictionary alloc] init];
+ }
+ return [_dictionary mutableCopyWithZone:zone];
+}
+
+- (id)objectForKeyedSubscript:(id)key {
+ return [_dictionary objectForKeyedSubscript:key];
+}
+
+- (void)setObject:(id)obj forKeyedSubscript:(id<NSCopying>)key {
+ if (_dictionary == nil) {
+ _dictionary = [[NSMutableDictionary alloc] init];
+ }
+ [_dictionary setObject:obj forKeyedSubscript:key];
+ if (_autocreator) {
+ GPBAutocreatedDictionaryModified(_autocreator, self);
+ }
+}
+
+- (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key,
+ id obj,
+ BOOL *stop))block {
+ [_dictionary enumerateKeysAndObjectsUsingBlock:block];
+}
+
+- (void)enumerateKeysAndObjectsWithOptions:(NSEnumerationOptions)opts
+ usingBlock:(void (^)(id key,
+ id obj,
+ BOOL *stop))block {
+ [_dictionary enumerateKeysAndObjectsWithOptions:opts usingBlock:block];
+}
+
+@end
diff --git a/objectivec/GPBDictionary_PackagePrivate.h b/objectivec/GPBDictionary_PackagePrivate.h
index 54b37dd8..9c3c5915 100644
--- a/objectivec/GPBDictionary_PackagePrivate.h
+++ b/objectivec/GPBDictionary_PackagePrivate.h
@@ -37,6 +37,14 @@
@class GPBExtensionRegistry;
@class GPBFieldDescriptor;
+@protocol GPBDictionaryInternalsProtocol
+- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
+- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
+ asField:(GPBFieldDescriptor *)field;
+- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
+- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@end
+
//%PDDM-DEFINE DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(KEY_NAME)
//%DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(KEY_NAME)
//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Object, Object)
@@ -51,12 +59,10 @@
//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Enum, Enum)
//%PDDM-DEFINE DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, VALUE_NAME, HELPER)
-//%@interface GPB##KEY_NAME##VALUE_NAME##Dictionary ()
-//%- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-//%- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
-//% asField:(GPBFieldDescriptor *)field;
-//%- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-//%- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+//%@interface GPB##KEY_NAME##VALUE_NAME##Dictionary () <GPBDictionaryInternalsProtocol> {
+//% @package
+//% GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+//%}
//%EXTRA_DICTIONARY_PRIVATE_INTERFACES_##HELPER()@end
//%
@@ -76,79 +82,61 @@
//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(UInt32)
// This block of code is generated, do not edit it directly.
-@interface GPBUInt32UInt32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt32UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt32Int32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt32Int32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt32UInt64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt32UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt32Int64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt32Int64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt32BoolDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt32BoolDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt32FloatDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt32FloatDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt32DoubleDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt32DoubleDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt32EnumDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt32EnumDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (NSData *)serializedDataForUnknownValue:(int32_t)value
forKey:(GPBValue *)key
keyType:(GPBType)keyType;
@end
-@interface GPBUInt32ObjectDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt32ObjectDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (BOOL)isInitialized;
- (instancetype)deepCopyWithZone:(NSZone *)zone
__attribute__((ns_returns_retained));
@@ -157,79 +145,61 @@
//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Int32)
// This block of code is generated, do not edit it directly.
-@interface GPBInt32UInt32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt32UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt32Int32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt32Int32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt32UInt64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt32UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt32Int64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt32Int64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt32BoolDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt32BoolDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt32FloatDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt32FloatDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt32DoubleDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt32DoubleDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt32EnumDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt32EnumDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (NSData *)serializedDataForUnknownValue:(int32_t)value
forKey:(GPBValue *)key
keyType:(GPBType)keyType;
@end
-@interface GPBInt32ObjectDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt32ObjectDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (BOOL)isInitialized;
- (instancetype)deepCopyWithZone:(NSZone *)zone
__attribute__((ns_returns_retained));
@@ -238,79 +208,61 @@
//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(UInt64)
// This block of code is generated, do not edit it directly.
-@interface GPBUInt64UInt32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt64UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt64Int32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt64Int32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt64UInt64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt64UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt64Int64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt64Int64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt64BoolDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt64BoolDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt64FloatDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt64FloatDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt64DoubleDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt64DoubleDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBUInt64EnumDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt64EnumDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (NSData *)serializedDataForUnknownValue:(int32_t)value
forKey:(GPBValue *)key
keyType:(GPBType)keyType;
@end
-@interface GPBUInt64ObjectDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBUInt64ObjectDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (BOOL)isInitialized;
- (instancetype)deepCopyWithZone:(NSZone *)zone
__attribute__((ns_returns_retained));
@@ -319,79 +271,61 @@
//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Int64)
// This block of code is generated, do not edit it directly.
-@interface GPBInt64UInt32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt64UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt64Int32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt64Int32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt64UInt64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt64UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt64Int64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt64Int64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt64BoolDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt64BoolDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt64FloatDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt64FloatDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt64DoubleDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt64DoubleDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBInt64EnumDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt64EnumDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (NSData *)serializedDataForUnknownValue:(int32_t)value
forKey:(GPBValue *)key
keyType:(GPBType)keyType;
@end
-@interface GPBInt64ObjectDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBInt64ObjectDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (BOOL)isInitialized;
- (instancetype)deepCopyWithZone:(NSZone *)zone
__attribute__((ns_returns_retained));
@@ -400,79 +334,61 @@
//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Bool)
// This block of code is generated, do not edit it directly.
-@interface GPBBoolUInt32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBBoolUInt32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBBoolInt32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBBoolInt32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBBoolUInt64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBBoolUInt64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBBoolInt64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBBoolInt64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBBoolBoolDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBBoolBoolDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBBoolFloatDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBBoolFloatDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBBoolDoubleDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBBoolDoubleDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBBoolEnumDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBBoolEnumDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (NSData *)serializedDataForUnknownValue:(int32_t)value
forKey:(GPBValue *)key
keyType:(GPBType)keyType;
@end
-@interface GPBBoolObjectDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBBoolObjectDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (BOOL)isInitialized;
- (instancetype)deepCopyWithZone:(NSZone *)zone
__attribute__((ns_returns_retained));
@@ -481,68 +397,52 @@
//%PDDM-EXPAND DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(String)
// This block of code is generated, do not edit it directly.
-@interface GPBStringUInt32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBStringUInt32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBStringInt32Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBStringInt32Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBStringUInt64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBStringUInt64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBStringInt64Dictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBStringInt64Dictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBStringBoolDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBStringBoolDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBStringFloatDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBStringFloatDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBStringDoubleDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBStringDoubleDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
@end
-@interface GPBStringEnumDictionary ()
-- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
-- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
- asField:(GPBFieldDescriptor *)field;
-- (void)setGPBValue:(GPBValue *)value forGPBValueKey:(GPBValue *)key;
-- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
+@interface GPBStringEnumDictionary () <GPBDictionaryInternalsProtocol> {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
- (NSData *)serializedDataForUnknownValue:(int32_t)value
forKey:(GPBValue *)key
keyType:(GPBType)keyType;
@@ -550,6 +450,16 @@
//%PDDM-EXPAND-END (6 expansions)
+#pragma mark - NSDictionary Subclass
+
+@interface GPBAutocreatedDictionary : NSMutableDictionary {
+ @package
+ GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
+}
+@end
+
+#pragma mark - Helpers
+
CF_EXTERN_C_BEGIN
// Helper to compute size when an NSDictionary is used for the map instead
diff --git a/objectivec/GPBExtensionRegistry.h b/objectivec/GPBExtensionRegistry.h
index ce1f8fab..e382971c 100644
--- a/objectivec/GPBExtensionRegistry.h
+++ b/objectivec/GPBExtensionRegistry.h
@@ -38,7 +38,24 @@
// ExtensionRegistry in which you have registered any extensions that you want
// to be able to parse. Otherwise, those extensions will just be treated like
// unknown fields.
-@interface GPBExtensionRegistry : NSObject
+//
+// The *Root classes provide +extensionRegistry for the extensions defined in a
+// given file *and* all files it imports. You can also create a
+// GPBExtensionRegistry, and merge those registries to handle parsing extensions
+// defined from non overlapping files.
+//
+// GPBExtensionRegistry *registry =
+// [[[MyProtoFileRoot extensionRegistry] copy] autorelease];
+// [registry addExtension:[OtherMessage neededExtension]; // Not in MyProtoFile
+// NSError *parseError = nil;
+// MyMessage *msg = [MyMessage parseData:data
+// extensionRegistry:registry
+// error:&parseError];
+//
+@interface GPBExtensionRegistry : NSObject<NSCopying>
+
+- (void)addExtension:(GPBExtensionField *)extension;
+- (void)addExtensions:(GPBExtensionRegistry *)registry;
- (GPBExtensionField *)getExtension:(GPBDescriptor *)containingType
fieldNumber:(NSInteger)fieldNumber;
diff --git a/objectivec/GPBExtensionRegistry.m b/objectivec/GPBExtensionRegistry.m
index a191dace..4f234f55 100644
--- a/objectivec/GPBExtensionRegistry.m
+++ b/objectivec/GPBExtensionRegistry.m
@@ -28,7 +28,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#import "GPBExtensionRegistry_PackagePrivate.h"
+#import "GPBExtensionRegistry.h"
#import "GPBBootstrap.h"
#import "GPBDescriptor.h"
@@ -52,6 +52,14 @@
[super dealloc];
}
+- (instancetype)copyWithZone:(NSZone *)zone {
+ GPBExtensionRegistry *result = [[[self class] allocWithZone:zone] init];
+ if (result && mutableClassMap_.count) {
+ [result->mutableClassMap_ addEntriesFromDictionary:mutableClassMap_];
+ }
+ return result;
+}
+
- (NSMutableDictionary *)extensionMapForContainingType:
(GPBDescriptor *)containingType {
NSMutableDictionary *extensionMap =
diff --git a/objectivec/GPBMessage.h b/objectivec/GPBMessage.h
index 2483f5d3..1c6c091d 100644
--- a/objectivec/GPBMessage.h
+++ b/objectivec/GPBMessage.h
@@ -28,15 +28,28 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#import "GPBRootObject.h"
+#import <Foundation/Foundation.h>
+
+#import "GPBBootstrap.h"
@class GPBDescriptor;
@class GPBCodedInputStream;
@class GPBCodedOutputStream;
@class GPBExtensionField;
+@class GPBExtensionRegistry;
@class GPBFieldDescriptor;
@class GPBUnknownFieldSet;
+CF_EXTERN_C_BEGIN
+
+// NSError domain used for errors.
+extern NSString *const GPBMessageErrorDomain;
+
+typedef NS_ENUM(NSInteger, GPBMessageErrorCode) {
+ GPBMessageErrorCodeMalformedData = -100,
+ GPBMessageErrorCodeMissingRequiredField = -101,
+};
+
// In DEBUG ONLY, an NSException is thrown when a parsed message doesn't
// contain required fields. This key allows you to retrieve the parsed message
// from the exception's |userInfo| dictionary.
@@ -44,12 +57,14 @@
extern NSString *const GPBExceptionMessageKey;
#endif // DEBUG
-// NOTE:
-// If you add a instance method/property to this class that may conflict with
-// methods declared in protos, you need to update objective_helpers.cc.
+CF_EXTERN_C_END
+
+@interface GPBMessage : NSObject<NSSecureCoding, NSCopying>
+
+// NOTE: If you add a instance method/property to this class that may conflict
+// with methods declared in protos, you need to update objective_helpers.cc.
// The main cases are methods that take no arguments, or setFoo:/hasFoo: type
// methods.
-@interface GPBMessage : GPBRootObject<NSCoding, NSCopying>
@property(nonatomic, readonly) GPBUnknownFieldSet *unknownFields;
@@ -59,29 +74,38 @@ extern NSString *const GPBExceptionMessageKey;
// Returns an autoreleased instance.
+ (instancetype)message;
-// Create a message based on a variety of inputs.
-// In DEBUG ONLY
-// @throws NSInternalInconsistencyException The message is missing one or more
-// required fields (i.e. -[isInitialized] returns false). Use
-// GGPBExceptionMessageKey to retrieve the message from |userInfo|.
-+ (instancetype)parseFromData:(NSData *)data;
+// Create a message based on a variety of inputs. If there is a data parse
+// error, nil is returned and if not NULL, errorPtr is filled in.
+// NOTE: In DEBUG ONLY, the message is also checked for all required field,
+// if one is missing, the parse will fail (returning nil, filling in errorPtr).
++ (instancetype)parseFromData:(NSData *)data error:(NSError **)errorPtr;
+ (instancetype)parseFromData:(NSData *)data
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry;
+ extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
+ error:(NSError **)errorPtr;
+ (instancetype)parseFromCodedInputStream:(GPBCodedInputStream *)input
extensionRegistry:
- (GPBExtensionRegistry *)extensionRegistry;
+ (GPBExtensionRegistry *)extensionRegistry
+ error:(NSError **)errorPtr;
-// Create a message based on delimited input.
+// Create a message based on delimited input. If there is a data parse
+// error, nil is returned and if not NULL, errorPtr is filled in.
+ (instancetype)parseDelimitedFromCodedInputStream:(GPBCodedInputStream *)input
extensionRegistry:
- (GPBExtensionRegistry *)extensionRegistry;
-
-- (instancetype)initWithData:(NSData *)data;
+ (GPBExtensionRegistry *)extensionRegistry
+ error:(NSError **)errorPtr;
+
+// If there is a data parse error, nil is returned and if not NULL, errorPtr is
+// filled in.
+// NOTE: In DEBUG ONLY, the message is also checked for all required field,
+// if one is missing, the parse will fail (returning nil, filling in errorPtr).
+- (instancetype)initWithData:(NSData *)data error:(NSError **)errorPtr;
- (instancetype)initWithData:(NSData *)data
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry;
+ extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
+ error:(NSError **)errorPtr;
- (instancetype)initWithCodedInputStream:(GPBCodedInputStream *)input
extensionRegistry:
- (GPBExtensionRegistry *)extensionRegistry;
+ (GPBExtensionRegistry *)extensionRegistry
+ error:(NSError **)errorPtr;
// Serializes the message and writes it to output.
- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)output;
@@ -93,11 +117,10 @@ extern NSString *const GPBExceptionMessageKey;
- (void)writeDelimitedToOutputStream:(NSOutputStream *)output;
// Serializes the message to an NSData. Note that this value is not cached, so
-// if you are using it repeatedly, cache it yourself.
-// In DEBUG ONLY:
-// @throws NSInternalInconsistencyException The message is missing one or more
-// required fields (i.e. -[isInitialized] returns false). Use
-// GPBExceptionMessageKey to retrieve the message from |userInfo|.
+// if you are using it repeatedly, cache it yourself. If there is an error
+// while generating the data, nil is returned.
+// NOTE: In DEBUG ONLY, the message is also checked for all required field,
+// if one is missing, nil will be returned.
- (NSData *)data;
// Same as -[data], except a delimiter is added to the start of the data
@@ -106,16 +129,16 @@ extern NSString *const GPBExceptionMessageKey;
// Returns the size of the object if it were serialized.
// This is not a cached value. If you are following a pattern like this:
-// size_t size = [aMsg serializedSize];
-// NSMutableData *foo = [NSMutableData dataWithCapacity:size + sizeof(size)];
-// [foo writeSize:size];
-// [foo appendData:[aMsg data]];
+// size_t size = [aMsg serializedSize];
+// NSMutableData *foo = [NSMutableData dataWithCapacity:size + sizeof(size)];
+// [foo writeSize:size];
+// [foo appendData:[aMsg data]];
// you would be better doing:
-// NSData *data = [aMsg data];
-// NSUInteger size = [aMsg length];
-// NSMutableData *foo = [NSMutableData dataWithCapacity:size + sizeof(size)];
-// [foo writeSize:size];
-// [foo appendData:data];
+// NSData *data = [aMsg data];
+// NSUInteger size = [aMsg length];
+// NSMutableData *foo = [NSMutableData dataWithCapacity:size + sizeof(size)];
+// [foo writeSize:size];
+// [foo appendData:data];
- (size_t)serializedSize;
// Return the descriptor for the message
@@ -123,8 +146,8 @@ extern NSString *const GPBExceptionMessageKey;
- (GPBDescriptor *)descriptor;
// Extensions use boxed values (NSNumbers) for PODs, NSMutableArrays for
-// repeated. If the extension is a Message, just like fields, one will be
-// auto created for you and returned.
+// repeated. If the extension is a Message one will be auto created for you
+// and returned similar to fields.
- (BOOL)hasExtension:(GPBExtensionField *)extension;
- (id)getExtension:(GPBExtensionField *)extension;
- (void)setExtension:(GPBExtensionField *)extension value:(id)value;
@@ -141,6 +164,7 @@ extern NSString *const GPBExceptionMessageKey;
// Parses a message of this type from the input and merges it with this
// message.
+// NOTE: This will throw if there is an error parsing the data.
- (void)mergeFromData:(NSData *)data
extensionRegistry:(GPBExtensionRegistry *)extensionRegistry;
diff --git a/objectivec/GPBMessage.m b/objectivec/GPBMessage.m
index 63ffc3bc..bd3235f1 100644
--- a/objectivec/GPBMessage.m
+++ b/objectivec/GPBMessage.m
@@ -39,15 +39,21 @@
#import "GPBDescriptor_PackagePrivate.h"
#import "GPBDictionary_PackagePrivate.h"
#import "GPBExtensionField_PackagePrivate.h"
-#import "GPBExtensionRegistry_PackagePrivate.h"
+#import "GPBExtensionRegistry.h"
+#import "GPBRootObject_PackagePrivate.h"
#import "GPBUnknownFieldSet_PackagePrivate.h"
#import "GPBUtilities_PackagePrivate.h"
+NSString *const GPBMessageErrorDomain =
+ GPBNSStringifySymbol(GPBMessageErrorDomain);
+
#ifdef DEBUG
NSString *const GPBExceptionMessageKey =
GPBNSStringifySymbol(GPBExceptionMessage);
#endif // DEBUG
+static NSString *const kGPBDataCoderKey = @"GPBData";
+
//
// PLEASE REMEMBER:
//
@@ -78,13 +84,32 @@ static id GetOrCreateArrayIvarWithField(GPBMessage *self,
GPBFieldDescriptor *field,
GPBFileSyntax syntax);
static id GetArrayIvarWithField(GPBMessage *self, GPBFieldDescriptor *field);
+static id CreateMapForField(GPBFieldDescriptor *field,
+ GPBMessage *autocreator)
+ __attribute__((ns_returns_retained));
static id GetOrCreateMapIvarWithField(GPBMessage *self,
GPBFieldDescriptor *field,
GPBFileSyntax syntax);
+static id GetMapIvarWithField(GPBMessage *self, GPBFieldDescriptor *field);
static NSMutableDictionary *CloneExtensionMap(NSDictionary *extensionMap,
NSZone *zone)
__attribute__((ns_returns_retained));
+static NSError *MessageError(NSInteger code, NSDictionary *userInfo) {
+ return [NSError errorWithDomain:GPBMessageErrorDomain
+ code:code
+ userInfo:userInfo];
+}
+
+static NSError *MessageErrorWithReason(NSInteger code, NSString *reason) {
+ NSDictionary *userInfo = nil;
+ if ([reason length]) {
+ userInfo = @{ @"Reason" : reason };
+ }
+ return MessageError(code, userInfo);
+}
+
+
static void CheckExtension(GPBMessage *self, GPBExtensionField *extension) {
if ([[self class] descriptor] != [extension containingType]) {
[NSException
@@ -201,6 +226,303 @@ static id CreateArrayForField(GPBFieldDescriptor *field,
return result;
}
+static id CreateMapForField(GPBFieldDescriptor *field,
+ GPBMessage *autocreator) {
+ id result;
+ GPBType keyType = field.mapKeyType;
+ GPBType valueType = GPBGetFieldType(field);
+ switch (keyType) {
+ case GPBTypeBool:
+ switch (valueType) {
+ case GPBTypeBool:
+ result = [[GPBBoolBoolDictionary alloc] init];
+ break;
+ case GPBTypeFixed32:
+ case GPBTypeUInt32:
+ result = [[GPBBoolUInt32Dictionary alloc] init];
+ break;
+ case GPBTypeInt32:
+ case GPBTypeSFixed32:
+ case GPBTypeSInt32:
+ result = [[GPBBoolInt32Dictionary alloc] init];
+ break;
+ case GPBTypeFixed64:
+ case GPBTypeUInt64:
+ result = [[GPBBoolUInt64Dictionary alloc] init];
+ break;
+ case GPBTypeInt64:
+ case GPBTypeSFixed64:
+ case GPBTypeSInt64:
+ result = [[GPBBoolInt64Dictionary alloc] init];
+ break;
+ case GPBTypeFloat:
+ result = [[GPBBoolFloatDictionary alloc] init];
+ break;
+ case GPBTypeDouble:
+ result = [[GPBBoolDoubleDictionary alloc] init];
+ break;
+ case GPBTypeEnum:
+ result = [[GPBBoolEnumDictionary alloc]
+ initWithValidationFunction:field.enumDescriptor.enumVerifier];
+ break;
+ case GPBTypeData:
+ case GPBTypeMessage:
+ case GPBTypeString:
+ result = [[GPBBoolObjectDictionary alloc] init];
+ break;
+ case GPBTypeGroup:
+ NSCAssert(NO, @"shouldn't happen");
+ return nil;
+ }
+ break;
+ case GPBTypeFixed32:
+ case GPBTypeUInt32:
+ switch (valueType) {
+ case GPBTypeBool:
+ result = [[GPBUInt32BoolDictionary alloc] init];
+ break;
+ case GPBTypeFixed32:
+ case GPBTypeUInt32:
+ result = [[GPBUInt32UInt32Dictionary alloc] init];
+ break;
+ case GPBTypeInt32:
+ case GPBTypeSFixed32:
+ case GPBTypeSInt32:
+ result = [[GPBUInt32Int32Dictionary alloc] init];
+ break;
+ case GPBTypeFixed64:
+ case GPBTypeUInt64:
+ result = [[GPBUInt32UInt64Dictionary alloc] init];
+ break;
+ case GPBTypeInt64:
+ case GPBTypeSFixed64:
+ case GPBTypeSInt64:
+ result = [[GPBUInt32Int64Dictionary alloc] init];
+ break;
+ case GPBTypeFloat:
+ result = [[GPBUInt32FloatDictionary alloc] init];
+ break;
+ case GPBTypeDouble:
+ result = [[GPBUInt32DoubleDictionary alloc] init];
+ break;
+ case GPBTypeEnum:
+ result = [[GPBUInt32EnumDictionary alloc]
+ initWithValidationFunction:field.enumDescriptor.enumVerifier];
+ break;
+ case GPBTypeData:
+ case GPBTypeMessage:
+ case GPBTypeString:
+ result = [[GPBUInt32ObjectDictionary alloc] init];
+ break;
+ case GPBTypeGroup:
+ NSCAssert(NO, @"shouldn't happen");
+ return nil;
+ }
+ break;
+ case GPBTypeInt32:
+ case GPBTypeSFixed32:
+ case GPBTypeSInt32:
+ switch (valueType) {
+ case GPBTypeBool:
+ result = [[GPBInt32BoolDictionary alloc] init];
+ break;
+ case GPBTypeFixed32:
+ case GPBTypeUInt32:
+ result = [[GPBInt32UInt32Dictionary alloc] init];
+ break;
+ case GPBTypeInt32:
+ case GPBTypeSFixed32:
+ case GPBTypeSInt32:
+ result = [[GPBInt32Int32Dictionary alloc] init];
+ break;
+ case GPBTypeFixed64:
+ case GPBTypeUInt64:
+ result = [[GPBInt32UInt64Dictionary alloc] init];
+ break;
+ case GPBTypeInt64:
+ case GPBTypeSFixed64:
+ case GPBTypeSInt64:
+ result = [[GPBInt32Int64Dictionary alloc] init];
+ break;
+ case GPBTypeFloat:
+ result = [[GPBInt32FloatDictionary alloc] init];
+ break;
+ case GPBTypeDouble:
+ result = [[GPBInt32DoubleDictionary alloc] init];
+ break;
+ case GPBTypeEnum:
+ result = [[GPBInt32EnumDictionary alloc]
+ initWithValidationFunction:field.enumDescriptor.enumVerifier];
+ break;
+ case GPBTypeData:
+ case GPBTypeMessage:
+ case GPBTypeString:
+ result = [[GPBInt32ObjectDictionary alloc] init];
+ break;
+ case GPBTypeGroup:
+ NSCAssert(NO, @"shouldn't happen");
+ return nil;
+ }
+ break;
+ case GPBTypeFixed64:
+ case GPBTypeUInt64:
+ switch (valueType) {
+ case GPBTypeBool:
+ result = [[GPBUInt64BoolDictionary alloc] init];
+ break;
+ case GPBTypeFixed32:
+ case GPBTypeUInt32:
+ result = [[GPBUInt64UInt32Dictionary alloc] init];
+ break;
+ case GPBTypeInt32:
+ case GPBTypeSFixed32:
+ case GPBTypeSInt32:
+ result = [[GPBUInt64Int32Dictionary alloc] init];
+ break;
+ case GPBTypeFixed64:
+ case GPBTypeUInt64:
+ result = [[GPBUInt64UInt64Dictionary alloc] init];
+ break;
+ case GPBTypeInt64:
+ case GPBTypeSFixed64:
+ case GPBTypeSInt64:
+ result = [[GPBUInt64Int64Dictionary alloc] init];
+ break;
+ case GPBTypeFloat:
+ result = [[GPBUInt64FloatDictionary alloc] init];
+ break;
+ case GPBTypeDouble:
+ result = [[GPBUInt64DoubleDictionary alloc] init];
+ break;
+ case GPBTypeEnum:
+ result = [[GPBUInt64EnumDictionary alloc]
+ initWithValidationFunction:field.enumDescriptor.enumVerifier];
+ break;
+ case GPBTypeData:
+ case GPBTypeMessage:
+ case GPBTypeString:
+ result = [[GPBUInt64ObjectDictionary alloc] init];
+ break;
+ case GPBTypeGroup:
+ NSCAssert(NO, @"shouldn't happen");
+ return nil;
+ }
+ break;
+ case GPBTypeInt64:
+ case GPBTypeSFixed64:
+ case GPBTypeSInt64:
+ switch (valueType) {
+ case GPBTypeBool:
+ result = [[GPBInt64BoolDictionary alloc] init];
+ break;
+ case GPBTypeFixed32:
+ case GPBTypeUInt32:
+ result = [[GPBInt64UInt32Dictionary alloc] init];
+ break;
+ case GPBTypeInt32:
+ case GPBTypeSFixed32:
+ case GPBTypeSInt32:
+ result = [[GPBInt64Int32Dictionary alloc] init];
+ break;
+ case GPBTypeFixed64:
+ case GPBTypeUInt64:
+ result = [[GPBInt64UInt64Dictionary alloc] init];
+ break;
+ case GPBTypeInt64:
+ case GPBTypeSFixed64:
+ case GPBTypeSInt64:
+ result = [[GPBInt64Int64Dictionary alloc] init];
+ break;
+ case GPBTypeFloat:
+ result = [[GPBInt64FloatDictionary alloc] init];
+ break;
+ case GPBTypeDouble:
+ result = [[GPBInt64DoubleDictionary alloc] init];
+ break;
+ case GPBTypeEnum:
+ result = [[GPBInt64EnumDictionary alloc]
+ initWithValidationFunction:field.enumDescriptor.enumVerifier];
+ break;
+ case GPBTypeData:
+ case GPBTypeMessage:
+ case GPBTypeString:
+ result = [[GPBInt64ObjectDictionary alloc] init];
+ break;
+ case GPBTypeGroup:
+ NSCAssert(NO, @"shouldn't happen");
+ return nil;
+ }
+ break;
+ case GPBTypeString:
+ switch (valueType) {
+ case GPBTypeBool:
+ result = [[GPBStringBoolDictionary alloc] init];
+ break;
+ case GPBTypeFixed32:
+ case GPBTypeUInt32:
+ result = [[GPBStringUInt32Dictionary alloc] init];
+ break;
+ case GPBTypeInt32:
+ case GPBTypeSFixed32:
+ case GPBTypeSInt32:
+ result = [[GPBStringInt32Dictionary alloc] init];
+ break;
+ case GPBTypeFixed64:
+ case GPBTypeUInt64:
+ result = [[GPBStringUInt64Dictionary alloc] init];
+ break;
+ case GPBTypeInt64:
+ case GPBTypeSFixed64:
+ case GPBTypeSInt64:
+ result = [[GPBStringInt64Dictionary alloc] init];
+ break;
+ case GPBTypeFloat:
+ result = [[GPBStringFloatDictionary alloc] init];
+ break;
+ case GPBTypeDouble:
+ result = [[GPBStringDoubleDictionary alloc] init];
+ break;
+ case GPBTypeEnum:
+ result = [[GPBStringEnumDictionary alloc]
+ initWithValidationFunction:field.enumDescriptor.enumVerifier];
+ break;
+ case GPBTypeData:
+ case GPBTypeMessage:
+ case GPBTypeString:
+ if (autocreator) {
+ result = [[GPBAutocreatedDictionary alloc] init];
+ } else {
+ result = [[NSMutableDictionary alloc] init];
+ }
+ break;
+ case GPBTypeGroup:
+ NSCAssert(NO, @"shouldn't happen");
+ return nil;
+ }
+ break;
+
+ case GPBTypeFloat:
+ case GPBTypeDouble:
+ case GPBTypeEnum:
+ case GPBTypeData:
+ case GPBTypeGroup:
+ case GPBTypeMessage:
+ NSCAssert(NO, @"shouldn't happen");
+ return nil;
+ }
+
+ if (autocreator) {
+ if ((keyType == GPBTypeString) && GPBTypeIsObject(valueType)) {
+ GPBAutocreatedDictionary *autoDict = result;
+ autoDict->_autocreator = autocreator;
+ } else {
+ GPBInt32Int32Dictionary *gpbDict = result;
+ gpbDict->_autocreator = autocreator;
+ }
+ }
+
+ return result;
+}
#if !defined(__clang_analyzer__)
// These functions are blocked from the analyzer because the analyzer sees the
@@ -249,285 +571,27 @@ static id GetOrCreateMapIvarWithField(GPBMessage *self,
GPBFileSyntax syntax) {
id dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
if (!dict) {
- GPBType keyType = field.mapKeyType;
- GPBType valueType = GPBGetFieldType(field);
- switch (keyType) {
- case GPBTypeBool:
- switch (valueType) {
- case GPBTypeBool:
- dict = [[GPBBoolBoolDictionary alloc] init];
- break;
- case GPBTypeFixed32:
- case GPBTypeUInt32:
- dict = [[GPBBoolUInt32Dictionary alloc] init];
- break;
- case GPBTypeInt32:
- case GPBTypeSFixed32:
- case GPBTypeSInt32:
- dict = [[GPBBoolInt32Dictionary alloc] init];
- break;
- case GPBTypeFixed64:
- case GPBTypeUInt64:
- dict = [[GPBBoolUInt64Dictionary alloc] init];
- break;
- case GPBTypeInt64:
- case GPBTypeSFixed64:
- case GPBTypeSInt64:
- dict = [[GPBBoolInt64Dictionary alloc] init];
- break;
- case GPBTypeFloat:
- dict = [[GPBBoolFloatDictionary alloc] init];
- break;
- case GPBTypeDouble:
- dict = [[GPBBoolDoubleDictionary alloc] init];
- break;
- case GPBTypeEnum:
- dict = [[GPBBoolEnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBTypeData:
- case GPBTypeMessage:
- case GPBTypeString:
- dict = [[GPBBoolObjectDictionary alloc] init];
- break;
- case GPBTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
- case GPBTypeFixed32:
- case GPBTypeUInt32:
- switch (valueType) {
- case GPBTypeBool:
- dict = [[GPBUInt32BoolDictionary alloc] init];
- break;
- case GPBTypeFixed32:
- case GPBTypeUInt32:
- dict = [[GPBUInt32UInt32Dictionary alloc] init];
- break;
- case GPBTypeInt32:
- case GPBTypeSFixed32:
- case GPBTypeSInt32:
- dict = [[GPBUInt32Int32Dictionary alloc] init];
- break;
- case GPBTypeFixed64:
- case GPBTypeUInt64:
- dict = [[GPBUInt32UInt64Dictionary alloc] init];
- break;
- case GPBTypeInt64:
- case GPBTypeSFixed64:
- case GPBTypeSInt64:
- dict = [[GPBUInt32Int64Dictionary alloc] init];
- break;
- case GPBTypeFloat:
- dict = [[GPBUInt32FloatDictionary alloc] init];
- break;
- case GPBTypeDouble:
- dict = [[GPBUInt32DoubleDictionary alloc] init];
- break;
- case GPBTypeEnum:
- dict = [[GPBUInt32EnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBTypeData:
- case GPBTypeMessage:
- case GPBTypeString:
- dict = [[GPBUInt32ObjectDictionary alloc] init];
- break;
- case GPBTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
- case GPBTypeInt32:
- case GPBTypeSFixed32:
- case GPBTypeSInt32:
- switch (valueType) {
- case GPBTypeBool:
- dict = [[GPBInt32BoolDictionary alloc] init];
- break;
- case GPBTypeFixed32:
- case GPBTypeUInt32:
- dict = [[GPBInt32UInt32Dictionary alloc] init];
- break;
- case GPBTypeInt32:
- case GPBTypeSFixed32:
- case GPBTypeSInt32:
- dict = [[GPBInt32Int32Dictionary alloc] init];
- break;
- case GPBTypeFixed64:
- case GPBTypeUInt64:
- dict = [[GPBInt32UInt64Dictionary alloc] init];
- break;
- case GPBTypeInt64:
- case GPBTypeSFixed64:
- case GPBTypeSInt64:
- dict = [[GPBInt32Int64Dictionary alloc] init];
- break;
- case GPBTypeFloat:
- dict = [[GPBInt32FloatDictionary alloc] init];
- break;
- case GPBTypeDouble:
- dict = [[GPBInt32DoubleDictionary alloc] init];
- break;
- case GPBTypeEnum:
- dict = [[GPBInt32EnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBTypeData:
- case GPBTypeMessage:
- case GPBTypeString:
- dict = [[GPBInt32ObjectDictionary alloc] init];
- break;
- case GPBTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
- case GPBTypeFixed64:
- case GPBTypeUInt64:
- switch (valueType) {
- case GPBTypeBool:
- dict = [[GPBUInt64BoolDictionary alloc] init];
- break;
- case GPBTypeFixed32:
- case GPBTypeUInt32:
- dict = [[GPBUInt64UInt32Dictionary alloc] init];
- break;
- case GPBTypeInt32:
- case GPBTypeSFixed32:
- case GPBTypeSInt32:
- dict = [[GPBUInt64Int32Dictionary alloc] init];
- break;
- case GPBTypeFixed64:
- case GPBTypeUInt64:
- dict = [[GPBUInt64UInt64Dictionary alloc] init];
- break;
- case GPBTypeInt64:
- case GPBTypeSFixed64:
- case GPBTypeSInt64:
- dict = [[GPBUInt64Int64Dictionary alloc] init];
- break;
- case GPBTypeFloat:
- dict = [[GPBUInt64FloatDictionary alloc] init];
- break;
- case GPBTypeDouble:
- dict = [[GPBUInt64DoubleDictionary alloc] init];
- break;
- case GPBTypeEnum:
- dict = [[GPBUInt64EnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBTypeData:
- case GPBTypeMessage:
- case GPBTypeString:
- dict = [[GPBUInt64ObjectDictionary alloc] init];
- break;
- case GPBTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
- case GPBTypeInt64:
- case GPBTypeSFixed64:
- case GPBTypeSInt64:
- switch (valueType) {
- case GPBTypeBool:
- dict = [[GPBInt64BoolDictionary alloc] init];
- break;
- case GPBTypeFixed32:
- case GPBTypeUInt32:
- dict = [[GPBInt64UInt32Dictionary alloc] init];
- break;
- case GPBTypeInt32:
- case GPBTypeSFixed32:
- case GPBTypeSInt32:
- dict = [[GPBInt64Int32Dictionary alloc] init];
- break;
- case GPBTypeFixed64:
- case GPBTypeUInt64:
- dict = [[GPBInt64UInt64Dictionary alloc] init];
- break;
- case GPBTypeInt64:
- case GPBTypeSFixed64:
- case GPBTypeSInt64:
- dict = [[GPBInt64Int64Dictionary alloc] init];
- break;
- case GPBTypeFloat:
- dict = [[GPBInt64FloatDictionary alloc] init];
- break;
- case GPBTypeDouble:
- dict = [[GPBInt64DoubleDictionary alloc] init];
- break;
- case GPBTypeEnum:
- dict = [[GPBInt64EnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBTypeData:
- case GPBTypeMessage:
- case GPBTypeString:
- dict = [[GPBInt64ObjectDictionary alloc] init];
- break;
- case GPBTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
- case GPBTypeString:
- switch (valueType) {
- case GPBTypeBool:
- dict = [[GPBStringBoolDictionary alloc] init];
- break;
- case GPBTypeFixed32:
- case GPBTypeUInt32:
- dict = [[GPBStringUInt32Dictionary alloc] init];
- break;
- case GPBTypeInt32:
- case GPBTypeSFixed32:
- case GPBTypeSInt32:
- dict = [[GPBStringInt32Dictionary alloc] init];
- break;
- case GPBTypeFixed64:
- case GPBTypeUInt64:
- dict = [[GPBStringUInt64Dictionary alloc] init];
- break;
- case GPBTypeInt64:
- case GPBTypeSFixed64:
- case GPBTypeSInt64:
- dict = [[GPBStringInt64Dictionary alloc] init];
- break;
- case GPBTypeFloat:
- dict = [[GPBStringFloatDictionary alloc] init];
- break;
- case GPBTypeDouble:
- dict = [[GPBStringDoubleDictionary alloc] init];
- break;
- case GPBTypeEnum:
- dict = [[GPBStringEnumDictionary alloc]
- initWithValidationFunction:field.enumDescriptor.enumVerifier];
- break;
- case GPBTypeData:
- case GPBTypeMessage:
- case GPBTypeString:
- dict = [[NSMutableDictionary alloc] init];
- break;
- case GPBTypeGroup:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
- }
- break;
+ // No lock needed, this is called from places expecting to mutate
+ // so no threading protection is needed.
+ dict = CreateMapForField(field, nil);
+ GPBSetRetainedObjectIvarWithFieldInternal(self, field, dict, syntax);
+ }
+ return dict;
+}
- case GPBTypeFloat:
- case GPBTypeDouble:
- case GPBTypeEnum:
- case GPBTypeData:
- case GPBTypeGroup:
- case GPBTypeMessage:
- NSCAssert(NO, @"shouldn't happen");
- return nil;
+// This is like GPBGetObjectIvarWithField(), but for maps, it should
+// only be used to wire the method into the class.
+static id GetMapIvarWithField(GPBMessage *self, GPBFieldDescriptor *field) {
+ id dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
+ if (!dict) {
+ // Check again after getting the lock.
+ OSSpinLockLock(&self->readOnlyMutex_);
+ dict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
+ if (!dict) {
+ dict = CreateMapForField(field, self);
+ GPBSetAutocreatedRetainedObjectIvarWithField(self, field, dict);
}
-
- GPBSetRetainedObjectIvarWithFieldInternal(self, field, dict, syntax);
+ OSSpinLockUnlock(&self->readOnlyMutex_);
}
return dict;
}
@@ -595,7 +659,30 @@ void GPBAutocreatedArrayModified(GPBMessage *self, id array) {
}
}
}
- NSCAssert(NO, @"Unknown array.");
+ NSCAssert(NO, @"Unknown autocreated %@ for %@.", [array class], self);
+}
+
+void GPBAutocreatedDictionaryModified(GPBMessage *self, id dictionary) {
+ // When one of our autocreated dicts adds elements, make it visible.
+ GPBDescriptor *descriptor = [[self class] descriptor];
+ for (GPBFieldDescriptor *field in descriptor->fields_) {
+ if (field.fieldType == GPBFieldTypeMap) {
+ id curDict = GPBGetObjectIvarWithFieldNoAutocreate(self, field);
+ if (curDict == dictionary) {
+ if ((field.mapKeyType == GPBTypeString) &&
+ GPBFieldTypeIsObject(field)) {
+ GPBAutocreatedDictionary *autoDict = dictionary;
+ autoDict->_autocreator = nil;
+ } else {
+ GPBInt32Int32Dictionary *gpbDict = dictionary;
+ gpbDict->_autocreator = nil;
+ }
+ GPBBecomeVisibleToAutocreator(self);
+ return;
+ }
+ }
+ }
+ NSCAssert(NO, @"Unknown autocreated %@ for %@.", [dictionary class], self);
}
void GPBClearMessageAutocreator(GPBMessage *self) {
@@ -617,7 +704,8 @@ void GPBClearMessageAutocreator(GPBMessage *self) {
: [self->autocreator_->autocreatedExtensionMap_
objectForKey:self->autocreatorExtension_]);
NSCAssert(autocreatorHas || autocreatorFieldValue != self,
- @"Cannot clear autocreator because it still refers to self.");
+ @"Cannot clear autocreator because it still refers to self, self: %@.",
+ self);
#endif // DEBUG && !defined(NS_BLOCK_ASSERTIONS)
@@ -636,26 +724,6 @@ static GPBUnknownFieldSet *GetOrMakeUnknownFields(GPBMessage *self) {
return self->unknownFields_;
}
-#ifdef DEBUG
-static void DebugRaiseExceptionIfNotInitialized(GPBMessage *message) {
- if (!message.initialized) {
- NSString *reason =
- [NSString stringWithFormat:@"Uninitialized Message %@", message];
- NSDictionary *userInfo =
- message ? @{GPBExceptionMessageKey : message} : nil;
- NSException *exception =
- [NSException exceptionWithName:NSInternalInconsistencyException
- reason:reason
- userInfo:userInfo];
- [exception raise];
- }
-}
-#else
-GPB_INLINE void DebugRaiseExceptionIfNotInitialized(GPBMessage *message) {
-#pragma unused(message)
-}
-#endif // DEBUG
-
@implementation GPBMessage
+ (void)initialize {
@@ -663,14 +731,20 @@ GPB_INLINE void DebugRaiseExceptionIfNotInitialized(GPBMessage *message) {
if ([self class] == pbMessageClass) {
// This is here to start up the "base" class descriptor.
[self descriptor];
+ // Message shares extension method resolving with GPBRootObject so insure
+ // it is started up at the same time.
+ (void)[GPBRootObject class];
} else if ([self superclass] == pbMessageClass) {
// This is here to start up all the "message" subclasses. Just needs to be
// done for the messages, not any of the subclasses.
// This must be done in initialize to enforce thread safety of start up of
- // the protocol buffer library. All of the extension registries must be
- // created in either "+load" or "+initialize".
+ // the protocol buffer library.
+ // Note: The generated code for -descriptor calls
+ // +[GPBDescriptor allocDescriptorForClass:...], passing the GPBRootObject
+ // subclass for the file. That call chain is what ensures that *Root class
+ // is started up to support extension resolution off the message class
+ // (+resolveClassMethod: below) in a thread safe manner.
[self descriptor];
- [self extensionRegistry];
}
}
@@ -728,25 +802,63 @@ GPB_INLINE void DebugRaiseExceptionIfNotInitialized(GPBMessage *message) {
return self;
}
-- (instancetype)initWithData:(NSData *)data {
- return [self initWithData:data extensionRegistry:nil];
+- (instancetype)initWithData:(NSData *)data error:(NSError **)errorPtr {
+ return [self initWithData:data extensionRegistry:nil error:errorPtr];
}
- (instancetype)initWithData:(NSData *)data
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry {
+ extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
+ error:(NSError **)errorPtr {
if ((self = [self init])) {
- [self mergeFromData:data extensionRegistry:extensionRegistry];
- DebugRaiseExceptionIfNotInitialized(self);
+ @try {
+ [self mergeFromData:data extensionRegistry:extensionRegistry];
+ }
+ @catch (NSException *exception) {
+ [self release];
+ self = nil;
+ if (errorPtr) {
+ *errorPtr = MessageErrorWithReason(GPBMessageErrorCodeMalformedData,
+ exception.reason);
+ }
+ }
+#ifdef DEBUG
+ if (self && !self.initialized) {
+ [self release];
+ self = nil;
+ if (errorPtr) {
+ *errorPtr = MessageError(GPBMessageErrorCodeMissingRequiredField, nil);
+ }
+ }
+#endif
}
return self;
}
- (instancetype)initWithCodedInputStream:(GPBCodedInputStream *)input
extensionRegistry:
- (GPBExtensionRegistry *)extensionRegistry {
+ (GPBExtensionRegistry *)extensionRegistry
+ error:(NSError **)errorPtr {
if ((self = [self init])) {
- [self mergeFromCodedInputStream:input extensionRegistry:extensionRegistry];
- DebugRaiseExceptionIfNotInitialized(self);
+ @try {
+ [self mergeFromCodedInputStream:input extensionRegistry:extensionRegistry];
+ }
+ @catch (NSException *exception) {
+ [self release];
+ self = nil;
+ if (errorPtr) {
+ *errorPtr = MessageErrorWithReason(GPBMessageErrorCodeMalformedData,
+ exception.reason);
+ }
+ }
+#ifdef DEBUG
+ if (self && !self.initialized) {
+ [self release];
+ self = nil;
+ if (errorPtr) {
+ *errorPtr = MessageError(GPBMessageErrorCodeMissingRequiredField, nil);
+ }
+ }
+#endif
}
return self;
}
@@ -900,6 +1012,20 @@ GPB_INLINE void DebugRaiseExceptionIfNotInitialized(GPBMessage *message) {
gpbArray->_autocreator = nil;
}
}
+ } else {
+ if ((field.mapKeyType == GPBTypeString) &&
+ GPBFieldTypeIsObject(field)) {
+ GPBAutocreatedDictionary *autoDict = arrayOrMap;
+ if (autoDict->_autocreator == self) {
+ autoDict->_autocreator = nil;
+ }
+ } else {
+ // Type doesn't matter, it is a GPB*Dictionary.
+ GPBInt32Int32Dictionary *gpbDict = arrayOrMap;
+ if (gpbDict->_autocreator == self) {
+ gpbDict->_autocreator = nil;
+ }
+ }
}
[arrayOrMap release];
}
@@ -960,7 +1086,8 @@ GPB_INLINE void DebugRaiseExceptionIfNotInitialized(GPBMessage *message) {
}
} else {
NSAssert(field.isOptional,
- @"If not required or optional, what was it?");
+ @"%@: Single message field %@ not required or optional?",
+ [self class], field.name);
if (GPBGetHasIvarField(self, field)) {
GPBMessage *message = GPBGetMessageIvarWithField(self, field);
if (!message.initialized) {
@@ -1025,11 +1152,27 @@ GPB_INLINE void DebugRaiseExceptionIfNotInitialized(GPBMessage *message) {
}
- (NSData *)data {
- DebugRaiseExceptionIfNotInitialized(self);
+#ifdef DEBUG
+ if (!self.initialized) {
+ return nil;
+ }
+#endif
NSMutableData *data = [NSMutableData dataWithLength:[self serializedSize]];
GPBCodedOutputStream *stream =
[[GPBCodedOutputStream alloc] initWithData:data];
- [self writeToCodedOutputStream:stream];
+ @try {
+ [self writeToCodedOutputStream:stream];
+ }
+ @catch (NSException *exception) {
+ // This really shouldn't happen. The only way writeToCodedOutputStream:
+ // could throw is if something in the library has a bug and the
+ // serializedSize was wrong.
+#ifdef DEBUG
+ NSLog(@"%@: Internal exception while building message data: %@",
+ [self class], exception);
+#endif
+ data = nil;
+ }
[stream release];
return data;
}
@@ -1041,7 +1184,19 @@ GPB_INLINE void DebugRaiseExceptionIfNotInitialized(GPBMessage *message) {
[NSMutableData dataWithLength:(serializedSize + varintSize)];
GPBCodedOutputStream *stream =
[[GPBCodedOutputStream alloc] initWithData:data];
- [self writeDelimitedToCodedOutputStream:stream];
+ @try {
+ [self writeDelimitedToCodedOutputStream:stream];
+ }
+ @catch (NSException *exception) {
+ // This really shouldn't happen. The only way writeToCodedOutputStream:
+ // could throw is if something in the library has a bug and the
+ // serializedSize was wrong.
+#ifdef DEBUG
+ NSLog(@"%@: Internal exception while building message delimitedData: %@",
+ [self class], exception);
+#endif
+ data = nil;
+ }
[stream release];
return data;
}
@@ -1717,32 +1872,55 @@ GPB_INLINE void DebugRaiseExceptionIfNotInitialized(GPBMessage *message) {
#pragma mark - Parse From Data Support
-+ (instancetype)parseFromData:(NSData *)data {
- return [self parseFromData:data extensionRegistry:nil];
++ (instancetype)parseFromData:(NSData *)data error:(NSError **)errorPtr {
+ return [self parseFromData:data extensionRegistry:nil error:errorPtr];
}
+ (instancetype)parseFromData:(NSData *)data
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry {
+ extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
+ error:(NSError **)errorPtr {
return [[[self alloc] initWithData:data
- extensionRegistry:extensionRegistry] autorelease];
+ extensionRegistry:extensionRegistry
+ error:errorPtr] autorelease];
}
+ (instancetype)parseFromCodedInputStream:(GPBCodedInputStream *)input
- extensionRegistry:(GPBExtensionRegistry *)extensionRegistry {
+ extensionRegistry:(GPBExtensionRegistry *)extensionRegistry
+ error:(NSError **)errorPtr {
return
[[[self alloc] initWithCodedInputStream:input
- extensionRegistry:extensionRegistry] autorelease];
+ extensionRegistry:extensionRegistry
+ error:errorPtr] autorelease];
}
#pragma mark - Parse Delimited From Data Support
+ (instancetype)parseDelimitedFromCodedInputStream:(GPBCodedInputStream *)input
extensionRegistry:
- (GPBExtensionRegistry *)extensionRegistry {
+ (GPBExtensionRegistry *)extensionRegistry
+ error:(NSError **)errorPtr {
GPBMessage *message = [[[self alloc] init] autorelease];
- [message mergeDelimitedFromCodedInputStream:input
- extensionRegistry:extensionRegistry];
- DebugRaiseExceptionIfNotInitialized(message);
+ @try {
+ [message mergeDelimitedFromCodedInputStream:input
+ extensionRegistry:extensionRegistry];
+ }
+ @catch (NSException *exception) {
+ [message release];
+ message = nil;
+ if (errorPtr) {
+ *errorPtr = MessageErrorWithReason(GPBMessageErrorCodeMalformedData,
+ exception.reason);
+ }
+ }
+#ifdef DEBUG
+ if (message && !message.initialized) {
+ [message release];
+ message = nil;
+ if (errorPtr) {
+ *errorPtr = MessageError(GPBMessageErrorCodeMissingRequiredField, nil);
+ }
+ }
+#endif
return message;
}
@@ -4661,7 +4839,9 @@ static BOOL IvarSetEnum(GPBFieldDescriptor *field, void *voidContext) {
context.impToAdd = imp_implementationWithBlock(^(id obj, BOOL value) {
if (value) {
[NSException raise:NSInvalidArgumentException
- format:@"has fields can only be set to NO"];
+ format:@"%@: %@ can only be set to NO (to clear field).",
+ [obj class],
+ NSStringFromSelector(field->setHasSel_)];
}
GPBClearMessageField(obj, field);
});
@@ -4684,9 +4864,15 @@ static BOOL IvarSetEnum(GPBFieldDescriptor *field, void *voidContext) {
}
} else {
if (sel == field->getSel_) {
- context.impToAdd = imp_implementationWithBlock(^(id obj) {
- return GetArrayIvarWithField(obj, field);
- });
+ if (field.fieldType == GPBFieldTypeRepeated) {
+ context.impToAdd = imp_implementationWithBlock(^(id obj) {
+ return GetArrayIvarWithField(obj, field);
+ });
+ } else {
+ context.impToAdd = imp_implementationWithBlock(^(id obj) {
+ return GetMapIvarWithField(obj, field);
+ });
+ }
context.encodingSelector = @selector(getArray);
break;
} else if (sel == field->setSel_) {
@@ -4711,18 +4897,37 @@ static BOOL IvarSetEnum(GPBFieldDescriptor *field, void *voidContext) {
return [super resolveInstanceMethod:sel];
}
++ (BOOL)resolveClassMethod:(SEL)sel {
+ // Extensions scoped to a Message and looked up via class methods.
+ if (GPBResolveExtensionClassMethod(self, sel)) {
+ return YES;
+ }
+ return [super resolveClassMethod:sel];
+}
+
#pragma mark - NSCoding Support
++ (BOOL)supportsSecureCoding {
+ return YES;
+}
+
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
self = [self init];
if (self) {
- [self mergeFromData:[aDecoder decodeDataObject] extensionRegistry:nil];
+ NSData *data =
+ [aDecoder decodeObjectOfClass:[NSData class] forKey:kGPBDataCoderKey];
+ if (data.length) {
+ [self mergeFromData:data extensionRegistry:nil];
+ }
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder {
- [aCoder encodeDataObject:[self data]];
+ NSData *data = [self data];
+ if (data.length) {
+ [aCoder encodeObject:data forKey:kGPBDataCoderKey];
+ }
}
#pragma mark - KVC Support
diff --git a/objectivec/GPBMessage_PackagePrivate.h b/objectivec/GPBMessage_PackagePrivate.h
index f2a3d5fa..c437c55b 100644
--- a/objectivec/GPBMessage_PackagePrivate.h
+++ b/objectivec/GPBMessage_PackagePrivate.h
@@ -82,6 +82,7 @@ typedef struct GPBMessage_Storage *GPBMessage_StoragePtr;
// -[CodedInputStream checkLastTagWas:] after calling this to
// verify that the last tag seen was the appropriate end-group tag,
// or zero for EOF.
+// NOTE: This will throw if there is an error while parsing.
- (void)mergeFromCodedInputStream:(GPBCodedInputStream *)input
extensionRegistry:(GPBExtensionRegistry *)extensionRegistry;
@@ -113,9 +114,10 @@ BOOL GPBWasMessageAutocreatedBy(GPBMessage *message, GPBMessage *parent);
// visible to its autocreator.
void GPBBecomeVisibleToAutocreator(GPBMessage *self);
-// Call this when an array is mutabled so the parent message that autocreated
-// it can react.
+// Call this when an array/dictionary is mutated so the parent message that
+// autocreated it can react.
void GPBAutocreatedArrayModified(GPBMessage *self, id array);
+void GPBAutocreatedDictionaryModified(GPBMessage *self, id dictionary);
// Clear the autocreator, if any. Asserts if the autocreator still has an
// autocreated reference to this message.
diff --git a/objectivec/GPBProtocolBuffers_RuntimeSupport.h b/objectivec/GPBProtocolBuffers_RuntimeSupport.h
index ac3226ef..7fd7b4c8 100644
--- a/objectivec/GPBProtocolBuffers_RuntimeSupport.h
+++ b/objectivec/GPBProtocolBuffers_RuntimeSupport.h
@@ -35,7 +35,7 @@
#import "GPBDescriptor_PackagePrivate.h"
#import "GPBExtensionField_PackagePrivate.h"
-#import "GPBExtensionRegistry_PackagePrivate.h"
+#import "GPBExtensionRegistry.h"
#import "GPBMessage_PackagePrivate.h"
#import "GPBRootObject_PackagePrivate.h"
#import "GPBUtilities_PackagePrivate.h"
diff --git a/objectivec/GPBRootObject.m b/objectivec/GPBRootObject.m
index b58f95ce..38dab665 100644
--- a/objectivec/GPBRootObject.m
+++ b/objectivec/GPBRootObject.m
@@ -31,6 +31,7 @@
#import "GPBRootObject_PackagePrivate.h"
#import <objc/runtime.h>
+#import <libkern/OSAtomic.h>
#import <CoreFoundation/CoreFoundation.h>
@@ -95,9 +96,11 @@ static CFHashCode GPBRootExtensionKeyHash(const void *value) {
return jenkins_one_at_a_time_hash(key);
}
+static OSSpinLock gExtensionSingletonDictionaryLock_ = OS_SPINLOCK_INIT;
static CFMutableDictionaryRef gExtensionSingletonDictionary = NULL;
+ (void)initialize {
+ // Ensure the global is started up.
if (!gExtensionSingletonDictionary) {
CFDictionaryKeyCallBacks keyCallBacks = {
// See description above for reason for using custom dictionary.
@@ -112,6 +115,13 @@ static CFMutableDictionaryRef gExtensionSingletonDictionary = NULL;
CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &keyCallBacks,
&kCFTypeDictionaryValueCallBacks);
}
+
+ if ([self superclass] == [GPBRootObject class]) {
+ // This is here to start up all the per file "Root" subclasses.
+ // This must be done in initialize to enforce thread safety of start up of
+ // the protocol buffer library.
+ [self extensionRegistry];
+ }
}
+ (GPBExtensionRegistry *)extensionRegistry {
@@ -122,39 +132,54 @@ static CFMutableDictionaryRef gExtensionSingletonDictionary = NULL;
+ (void)globallyRegisterExtension:(GPBExtensionField *)field {
const char *key = [field.descriptor singletonNameC];
- // Register happens at startup, so there is no thread safety issue in
- // modifying the dictionary.
+ OSSpinLockLock(&gExtensionSingletonDictionaryLock_);
CFDictionarySetValue(gExtensionSingletonDictionary, key, field);
+ OSSpinLockUnlock(&gExtensionSingletonDictionaryLock_);
}
-static id ExtensionForName(id self, SEL _cmd) {
+GPB_INLINE id ExtensionForName(id self, SEL _cmd) {
// Really fast way of doing "classname_selName".
// This came up as a hotspot (creation of NSString *) when accessing a
// lot of extensions.
- const char *className = class_getName(self);
const char *selName = sel_getName(_cmd);
+ if (selName[0] == '_') {
+ return nil; // Apple internal selector.
+ }
+ size_t selNameLen = 0;
+ while (1) {
+ char c = selName[selNameLen];
+ if (c == '\0') { // String end.
+ break;
+ }
+ if (c == ':') {
+ return nil; // Selector took an arg, not one of the runtime methods.
+ }
+ ++selNameLen;
+ }
+
+ const char *className = class_getName(self);
size_t classNameLen = strlen(className);
- size_t selNameLen = strlen(selName);
char key[classNameLen + selNameLen + 2];
memcpy(key, className, classNameLen);
key[classNameLen] = '_';
memcpy(&key[classNameLen + 1], selName, selNameLen);
key[classNameLen + 1 + selNameLen] = '\0';
+ OSSpinLockLock(&gExtensionSingletonDictionaryLock_);
id extension = (id)CFDictionaryGetValue(gExtensionSingletonDictionary, key);
- // We can't remove the key from the dictionary here (as an optimization),
- // because resolveClassMethod can happen on any thread and we'd then need
- // a lock.
+ if (extension) {
+ // The method is getting wired in to the class, so no need to keep it in
+ // the dictionary.
+ CFDictionaryRemoveValue(gExtensionSingletonDictionary, key);
+ }
+ OSSpinLockUnlock(&gExtensionSingletonDictionaryLock_);
return extension;
}
-+ (BOOL)resolveClassMethod:(SEL)sel {
+BOOL GPBResolveExtensionClassMethod(Class self, SEL sel) {
// Another option would be to register the extensions with the class at
// globallyRegisterExtension:
// Timing the two solutions, this solution turned out to be much faster
// and reduced startup time, and runtime memory.
- // On an iPhone 5s:
- // ResolveClassMethod: 1515583 nanos
- // globallyRegisterExtension: 2453083 nanos
// The advantage to globallyRegisterExtension is that it would reduce the
// size of the protos somewhat because the singletonNameC wouldn't need
// to include the class name. For a class with a lot of extensions it
@@ -169,7 +194,17 @@ static id ExtensionForName(id self, SEL _cmd) {
#pragma unused(obj)
return extension;
});
- return class_addMethod(metaClass, sel, imp, encoding);
+ if (class_addMethod(metaClass, sel, imp, encoding)) {
+ return YES;
+ }
+ }
+ return NO;
+}
+
+
++ (BOOL)resolveClassMethod:(SEL)sel {
+ if (GPBResolveExtensionClassMethod(self, sel)) {
+ return YES;
}
return [super resolveClassMethod:sel];
}
diff --git a/objectivec/GPBRootObject_PackagePrivate.h b/objectivec/GPBRootObject_PackagePrivate.h
index 4e1d3913..f1cfe990 100644
--- a/objectivec/GPBRootObject_PackagePrivate.h
+++ b/objectivec/GPBRootObject_PackagePrivate.h
@@ -40,3 +40,7 @@
+ (void)globallyRegisterExtension:(GPBExtensionField *)field;
@end
+
+// Returns YES if the selector was resolved and added to the class,
+// NO otherwise.
+BOOL GPBResolveExtensionClassMethod(Class self, SEL sel);
diff --git a/objectivec/GPBUtilities.m b/objectivec/GPBUtilities.m
index 09e34bfb..f912b979 100644
--- a/objectivec/GPBUtilities.m
+++ b/objectivec/GPBUtilities.m
@@ -93,7 +93,9 @@ void GPBClearMessageField(GPBMessage *self, GPBFieldDescriptor *field) {
}
BOOL GPBGetHasIvar(GPBMessage *self, int32_t idx, uint32_t fieldNumber) {
- NSCAssert(self->messageStorage_ != NULL, @"How?");
+ NSCAssert(self->messageStorage_ != NULL,
+ @"%@: All messages should have storage (from init)",
+ [self class]);
if (idx < 0) {
NSCAssert(fieldNumber != 0, @"Invalid field number.");
BOOL hasIvar = (self->messageStorage_->_has_storage_[-idx] == fieldNumber);
@@ -109,7 +111,8 @@ BOOL GPBGetHasIvar(GPBMessage *self, int32_t idx, uint32_t fieldNumber) {
}
uint32_t GPBGetHasOneof(GPBMessage *self, int32_t idx) {
- NSCAssert(idx < 0, @"invalid index for oneof.");
+ NSCAssert(idx < 0, @"%@: invalid index (%d) for oneof.",
+ [self class], idx);
uint32_t result = self->messageStorage_->_has_storage_[-idx];
return result;
}
@@ -145,7 +148,9 @@ void GPBMaybeClearOneof(GPBMessage *self, GPBOneofDescriptor *oneof,
// Like GPBClearMessageField(), free the memory if an objecttype is set,
// pod types don't need to do anything.
GPBFieldDescriptor *fieldSet = [oneof fieldWithNumber:fieldNumberSet];
- NSCAssert(fieldSet, @"oneof set to something not in the oneof?");
+ NSCAssert(fieldSet,
+ @"%@: oneof set to something (%u) not in the oneof?",
+ [self class], fieldNumberSet);
if (fieldSet && GPBFieldStoresObject(fieldSet)) {
uint8_t *storage = (uint8_t *)self->messageStorage_;
id *typePtr = (id *)&storage[fieldSet->description_->offset];
@@ -189,7 +194,9 @@ void GPBMaybeClearOneof(GPBMessage *self, GPBOneofDescriptor *oneof,
//% if (oneof) {
//% GPBMaybeClearOneof(self, oneof, GPBFieldNumber(field));
//% }
-//% NSCAssert(self->messageStorage_ != NULL, @"How?");
+//% NSCAssert(self->messageStorage_ != NULL,
+//% @"%@: All messages should have storage (from init)",
+//% [self class]);
//%#if defined(__clang_analyzer__)
//% if (self->messageStorage_ == NULL) return;
//%#endif
@@ -263,7 +270,9 @@ void GPBSetObjectIvarWithFieldInternal(GPBMessage *self,
void GPBSetRetainedObjectIvarWithFieldInternal(GPBMessage *self,
GPBFieldDescriptor *field,
id value, GPBFileSyntax syntax) {
- NSCAssert(self->messageStorage_ != NULL, @"How?");
+ NSCAssert(self->messageStorage_ != NULL,
+ @"%@: All messages should have storage (from init)",
+ [self class]);
#if defined(__clang_analyzer__)
if (self->messageStorage_ == NULL) return;
#endif
@@ -328,7 +337,7 @@ void GPBSetRetainedObjectIvarWithFieldInternal(GPBMessage *self,
if (oldValue) {
if (isMapOrArray) {
if (field.fieldType == GPBFieldTypeRepeated) {
- // If the old message value was autocreated by us, then clear it.
+ // If the old array was autocreated by us, then clear it.
if (GPBTypeIsObject(fieldType)) {
GPBAutocreatedArray *autoArray = oldValue;
if (autoArray->_autocreator == self) {
@@ -341,6 +350,21 @@ void GPBSetRetainedObjectIvarWithFieldInternal(GPBMessage *self,
gpbArray->_autocreator = nil;
}
}
+ } else { // GPBFieldTypeMap
+ // If the old map was autocreated by us, then clear it.
+ if ((field.mapKeyType == GPBTypeString) &&
+ GPBTypeIsObject(fieldType)) {
+ GPBAutocreatedDictionary *autoDict = oldValue;
+ if (autoDict->_autocreator == self) {
+ autoDict->_autocreator = nil;
+ }
+ } else {
+ // Type doesn't matter, it is a GPB*Dictionary.
+ GPBInt32Int32Dictionary *gpbDict = oldValue;
+ if (gpbDict->_autocreator == self) {
+ gpbDict->_autocreator = nil;
+ }
+ }
}
} else if (fieldIsMessage) {
// If the old message value was autocreated by us, then clear it.
@@ -461,7 +485,9 @@ void GPBSetBoolIvarWithFieldInternal(GPBMessage *self,
if (oneof) {
GPBMaybeClearOneof(self, oneof, GPBFieldNumber(field));
}
- NSCAssert(self->messageStorage_ != NULL, @"How?");
+ NSCAssert(self->messageStorage_ != NULL,
+ @"%@: All messages should have storage (from init)",
+ [self class]);
#if defined(__clang_analyzer__)
if (self->messageStorage_ == NULL) return;
#endif
@@ -507,7 +533,9 @@ void GPBSetInt32IvarWithFieldInternal(GPBMessage *self,
if (oneof) {
GPBMaybeClearOneof(self, oneof, GPBFieldNumber(field));
}
- NSCAssert(self->messageStorage_ != NULL, @"How?");
+ NSCAssert(self->messageStorage_ != NULL,
+ @"%@: All messages should have storage (from init)",
+ [self class]);
#if defined(__clang_analyzer__)
if (self->messageStorage_ == NULL) return;
#endif
@@ -553,7 +581,9 @@ void GPBSetUInt32IvarWithFieldInternal(GPBMessage *self,
if (oneof) {
GPBMaybeClearOneof(self, oneof, GPBFieldNumber(field));
}
- NSCAssert(self->messageStorage_ != NULL, @"How?");
+ NSCAssert(self->messageStorage_ != NULL,
+ @"%@: All messages should have storage (from init)",
+ [self class]);
#if defined(__clang_analyzer__)
if (self->messageStorage_ == NULL) return;
#endif
@@ -599,7 +629,9 @@ void GPBSetInt64IvarWithFieldInternal(GPBMessage *self,
if (oneof) {
GPBMaybeClearOneof(self, oneof, GPBFieldNumber(field));
}
- NSCAssert(self->messageStorage_ != NULL, @"How?");
+ NSCAssert(self->messageStorage_ != NULL,
+ @"%@: All messages should have storage (from init)",
+ [self class]);
#if defined(__clang_analyzer__)
if (self->messageStorage_ == NULL) return;
#endif
@@ -645,7 +677,9 @@ void GPBSetUInt64IvarWithFieldInternal(GPBMessage *self,
if (oneof) {
GPBMaybeClearOneof(self, oneof, GPBFieldNumber(field));
}
- NSCAssert(self->messageStorage_ != NULL, @"How?");
+ NSCAssert(self->messageStorage_ != NULL,
+ @"%@: All messages should have storage (from init)",
+ [self class]);
#if defined(__clang_analyzer__)
if (self->messageStorage_ == NULL) return;
#endif
@@ -691,7 +725,9 @@ void GPBSetFloatIvarWithFieldInternal(GPBMessage *self,
if (oneof) {
GPBMaybeClearOneof(self, oneof, GPBFieldNumber(field));
}
- NSCAssert(self->messageStorage_ != NULL, @"How?");
+ NSCAssert(self->messageStorage_ != NULL,
+ @"%@: All messages should have storage (from init)",
+ [self class]);
#if defined(__clang_analyzer__)
if (self->messageStorage_ == NULL) return;
#endif
@@ -737,7 +773,9 @@ void GPBSetDoubleIvarWithFieldInternal(GPBMessage *self,
if (oneof) {
GPBMaybeClearOneof(self, oneof, GPBFieldNumber(field));
}
- NSCAssert(self->messageStorage_ != NULL, @"How?");
+ NSCAssert(self->messageStorage_ != NULL,
+ @"%@: All messages should have storage (from init)",
+ [self class]);
#if defined(__clang_analyzer__)
if (self->messageStorage_ == NULL) return;
#endif
@@ -1152,30 +1190,32 @@ static void AppendTextFormatForMessageField(GPBMessage *message,
GPBFieldDescriptor *field,
NSMutableString *toStr,
NSString *lineIndent) {
- id array;
- NSUInteger arrayCount;
+ id arrayOrMap;
+ NSUInteger count;
GPBFieldType fieldType = field.fieldType;
switch (fieldType) {
case GPBFieldTypeSingle:
- array = nil;
- arrayCount = (GPBGetHasIvarField(message, field) ? 1 : 0);
+ arrayOrMap = nil;
+ count = (GPBGetHasIvarField(message, field) ? 1 : 0);
break;
case GPBFieldTypeRepeated:
- array = GPBGetObjectIvarWithFieldNoAutocreate(message, field);
- arrayCount = [(NSArray *)array count];
+ // Will be NSArray or GPB*Array, type doesn't matter, they both
+ // implement count.
+ arrayOrMap = GPBGetObjectIvarWithFieldNoAutocreate(message, field);
+ count = [(NSArray *)arrayOrMap count];
break;
case GPBFieldTypeMap: {
- // Could be a GPB*Dictionary or NSMutableDictionary, type doesn't matter,
- // just want count.
- array = GPBGetObjectIvarWithFieldNoAutocreate(message, field);
- arrayCount = [(NSArray *)array count];
+ // Will be GPB*Dictionary or NSMutableDictionary, type doesn't matter,
+ // they both implement count.
+ arrayOrMap = GPBGetObjectIvarWithFieldNoAutocreate(message, field);
+ count = [(NSDictionary *)arrayOrMap count];
break;
}
}
- if (arrayCount == 0) {
+ if (count == 0) {
// Nothing to print, out of here.
return;
}
@@ -1189,7 +1229,7 @@ static void AppendTextFormatForMessageField(GPBMessage *message,
fieldName = [NSString stringWithFormat:@"%u", GPBFieldNumber(field)];
// If there is only one entry, put the objc name as a comment, other wise
// add it before the the repeated values.
- if (arrayCount > 1) {
+ if (count > 1) {
[toStr appendFormat:@"%@# %@\n", lineIndent, field.name];
} else {
lineEnding = [NSString stringWithFormat:@" # %@", field.name];
@@ -1197,16 +1237,17 @@ static void AppendTextFormatForMessageField(GPBMessage *message,
}
if (fieldType == GPBFieldTypeMap) {
- AppendTextFormatForMapMessageField(array, field, toStr, lineIndent,
+ AppendTextFormatForMapMessageField(arrayOrMap, field, toStr, lineIndent,
fieldName, lineEnding);
return;
}
+ id array = arrayOrMap;
const BOOL isRepeated = (array != nil);
GPBType fieldDataType = GPBGetFieldType(field);
BOOL isMessageField = GPBTypeIsMessage(fieldDataType);
- for (NSUInteger j = 0; j < arrayCount; ++j) {
+ for (NSUInteger j = 0; j < count; ++j) {
// Start the line.
[toStr appendFormat:@"%@%@%s ", lineIndent, fieldName,
(isMessageField ? "" : ":")];
@@ -1291,7 +1332,7 @@ static void AppendTextFormatForMessageField(GPBMessage *message,
// End the line.
[toStr appendFormat:@"%@\n", lineEnding];
- } // for(arrayCount)
+ } // for(count)
}
static void AppendTextFormatForMessageExtensionRange(GPBMessage *message,
diff --git a/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj b/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj
index 46416043..f18ba2f8 100644
--- a/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj
+++ b/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj
@@ -200,7 +200,6 @@
F4B6B8AF1A9CC98000892426 /* GPBField_PackagePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPBField_PackagePrivate.h; sourceTree = "<group>"; };
F4B6B8B21A9CCBDA00892426 /* GPBUnknownFieldSet_PackagePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPBUnknownFieldSet_PackagePrivate.h; sourceTree = "<group>"; };
F4B6B8B61A9CD1DE00892426 /* GPBExtensionField_PackagePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPBExtensionField_PackagePrivate.h; sourceTree = "<group>"; };
- F4B6B8B71A9CD1DE00892426 /* GPBExtensionRegistry_PackagePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPBExtensionRegistry_PackagePrivate.h; sourceTree = "<group>"; };
F4B6B8B81A9CD1DE00892426 /* GPBRootObject_PackagePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPBRootObject_PackagePrivate.h; sourceTree = "<group>"; };
F4B6B8B91A9D338B00892426 /* unittest_name_mangling.proto */ = {isa = PBXFileReference; lastKnownFileType = text; path = unittest_name_mangling.proto; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -301,7 +300,6 @@
F4B6B8B61A9CD1DE00892426 /* GPBExtensionField_PackagePrivate.h */,
748F0CAF0FD70602000858A9 /* GPBExtensionField.h */,
F45C69CB16DFD08D0081955B /* GPBExtensionField.m */,
- F4B6B8B71A9CD1DE00892426 /* GPBExtensionRegistry_PackagePrivate.h */,
7461B4A80F94F99000A0C422 /* GPBExtensionRegistry.h */,
7461B4A90F94F99000A0C422 /* GPBExtensionRegistry.m */,
F4B6B8B81A9CD1DE00892426 /* GPBRootObject_PackagePrivate.h */,
@@ -595,7 +593,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/bash;
- shellScript = "set -eu\nmkdir -p \"${PROJECT_DERIVED_FILE_DIR}/protos\"\nexport PATH=\"${PATH}:.\"\ncd \"${SRCROOT}\"/../src\n\nPROTOC=./protoc\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_custom_options.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_enormous_descriptor.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_embed_optimize_for.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_empty.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_mset.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_no_generic_services.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_optimize_for.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_public.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_public_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_drop_unknown_fields.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_preserve_unknown_enum.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_lite_unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_proto2_unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_unittest.proto\n\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_objc.proto\n\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_cycle.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_name_mangling.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_runtime_proto2.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_runtime_proto3.proto\n\nexport GPB_CLASSLIST_PATH=\"${PROJECT_DERIVED_FILE_DIR}/ClassList.txt\"\nexport GPB_OBJC_CLASS_WHITELIST_PATHS=\"${SRCROOT}/Tests/Filter1.txt;${SRCROOT}/Tests/Filter2.txt\"\n\nif [ -e ${GPB_CLASSLIST_PATH} ]; then\nrm ${GPB_CLASSLIST_PATH}\nfi\n\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_filter.proto\n\n";
+ shellScript = "set -eu\nmkdir -p \"${PROJECT_DERIVED_FILE_DIR}/protos\"\nexport PATH=\"${PATH}:.\"\ncd \"${SRCROOT}\"/../src\n\nPROTOC=./protoc\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_custom_options.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_enormous_descriptor.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_embed_optimize_for.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_empty.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_mset.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_no_generic_services.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_optimize_for.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_public.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_public_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_drop_unknown_fields.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_preserve_unknown_enum.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_lite_unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_proto2_unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_unittest.proto\n\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_objc.proto\n\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_cycle.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_name_mangling.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_runtime_proto2.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_runtime_proto3.proto\n\n# Use the filter\nexport GPB_OBJC_CLASS_WHITELIST_PATHS=\"${SRCROOT}/Tests/Filter1.txt;${SRCROOT}/Tests/Filter2.txt\"\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_filter.proto\n\n";
showEnvVarsInLog = 0;
};
F4B62A781AF91F6000AFCEDC /* Script: Check Runtime Stamps */ = {
@@ -819,6 +817,7 @@
CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = YES;
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
diff --git a/objectivec/ProtocolBuffers_OSX.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme b/objectivec/ProtocolBuffers_OSX.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme
index f6f6e12b..617fb47f 100644
--- a/objectivec/ProtocolBuffers_OSX.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme
+++ b/objectivec/ProtocolBuffers_OSX.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme
@@ -34,6 +34,20 @@
ReferencedContainer = "container:ProtocolBuffers_OSX.xcodeproj">
</BuildableReference>
</BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "8BBEA4A5147C727100C4ADB7"
+ BuildableName = "UnitTests.xctest"
+ BlueprintName = "UnitTests"
+ ReferencedContainer = "container:ProtocolBuffers_OSX.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
diff --git a/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj b/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj
index 7cf41359..d6e621e6 100644
--- a/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj
+++ b/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj
@@ -224,7 +224,6 @@
F4B6B8B01A9CC99500892426 /* GPBField_PackagePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPBField_PackagePrivate.h; sourceTree = "<group>"; };
F4B6B8B11A9CCBBB00892426 /* GPBUnknownFieldSet_PackagePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPBUnknownFieldSet_PackagePrivate.h; sourceTree = "<group>"; };
F4B6B8B31A9CD1C600892426 /* GPBExtensionField_PackagePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPBExtensionField_PackagePrivate.h; sourceTree = "<group>"; };
- F4B6B8B41A9CD1C600892426 /* GPBExtensionRegistry_PackagePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPBExtensionRegistry_PackagePrivate.h; sourceTree = "<group>"; };
F4B6B8B51A9CD1C600892426 /* GPBRootObject_PackagePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPBRootObject_PackagePrivate.h; sourceTree = "<group>"; };
F4B6B8BA1A9D343B00892426 /* unittest_name_mangling.proto */ = {isa = PBXFileReference; lastKnownFileType = text; path = unittest_name_mangling.proto; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -339,7 +338,6 @@
F4B6B8B31A9CD1C600892426 /* GPBExtensionField_PackagePrivate.h */,
748F0CAF0FD70602000858A9 /* GPBExtensionField.h */,
F45C69CB16DFD08D0081955B /* GPBExtensionField.m */,
- F4B6B8B41A9CD1C600892426 /* GPBExtensionRegistry_PackagePrivate.h */,
7461B4A80F94F99000A0C422 /* GPBExtensionRegistry.h */,
7461B4A90F94F99000A0C422 /* GPBExtensionRegistry.m */,
F4B6B8B51A9CD1C600892426 /* GPBRootObject_PackagePrivate.h */,
@@ -683,7 +681,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/bash;
- shellScript = "set -eu\nmkdir -p \"${PROJECT_DERIVED_FILE_DIR}/protos\"\nexport PATH=\"${PATH}:.\"\ncd \"${SRCROOT}\"/../src\n\nPROTOC=./protoc\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_custom_options.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_enormous_descriptor.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_embed_optimize_for.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_empty.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_mset.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_no_generic_services.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_optimize_for.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_public.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_public_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_drop_unknown_fields.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_preserve_unknown_enum.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_lite_unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_proto2_unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_unittest.proto\n\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_objc.proto\n\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_cycle.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_name_mangling.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_runtime_proto2.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_runtime_proto3.proto\n\nexport GPB_CLASSLIST_PATH=\"${PROJECT_DERIVED_FILE_DIR}/ClassList.txt\"\nexport GPB_OBJC_CLASS_WHITELIST_PATHS=\"${SRCROOT}/Tests/Filter1.txt;${SRCROOT}/Tests/Filter2.txt\"\n\nif [ -e ${GPB_CLASSLIST_PATH} ]; then\nrm ${GPB_CLASSLIST_PATH}\nfi\n\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_filter.proto\n\n";
+ shellScript = "set -eu\nmkdir -p \"${PROJECT_DERIVED_FILE_DIR}/protos\"\nexport PATH=\"${PATH}:.\"\ncd \"${SRCROOT}\"/../src\n\nPROTOC=./protoc\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_custom_options.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_enormous_descriptor.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_embed_optimize_for.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_empty.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_mset.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_no_generic_services.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_optimize_for.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_public.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_import_public_lite.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_drop_unknown_fields.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/unittest_preserve_unknown_enum.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_lite_unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_proto2_unittest.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. google/protobuf/map_unittest.proto\n\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=google/protobuf/ --proto_path=. --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_objc.proto\n\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_cycle.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_name_mangling.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_runtime_proto2.proto\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_runtime_proto3.proto\n\n# Use the filter\nexport GPB_OBJC_CLASS_WHITELIST_PATHS=\"${SRCROOT}/Tests/Filter1.txt;${SRCROOT}/Tests/Filter2.txt\"\n$PROTOC --objc_out=\"${PROJECT_DERIVED_FILE_DIR}/protos/google/protobuf\" --proto_path=\"${SRCROOT}\"/Tests \"${SRCROOT}\"/Tests/unittest_filter.proto\n\n";
showEnvVarsInLog = 0;
};
F4B62A791AF91F7500AFCEDC /* Script: Check Runtime Stamps */ = {
@@ -984,6 +982,7 @@
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
diff --git a/objectivec/ProtocolBuffers_iOS.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme b/objectivec/ProtocolBuffers_iOS.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme
index a1b4cc45..c3c2c7d4 100644
--- a/objectivec/ProtocolBuffers_iOS.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme
+++ b/objectivec/ProtocolBuffers_iOS.xcodeproj/xcshareddata/xcschemes/ProtocolBuffers.xcscheme
@@ -34,6 +34,20 @@
ReferencedContainer = "container:ProtocolBuffers_iOS.xcodeproj">
</BuildableReference>
</BuildActionEntry>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "NO"
+ buildForProfiling = "NO"
+ buildForArchiving = "NO"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "8BBEA4A5147C727100C4ADB7"
+ BuildableName = "UnitTests.xctest"
+ BlueprintName = "UnitTests"
+ ReferencedContainer = "container:ProtocolBuffers_iOS.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
diff --git a/objectivec/README.md b/objectivec/README.md
new file mode 100644
index 00000000..186e45b2
--- /dev/null
+++ b/objectivec/README.md
@@ -0,0 +1,77 @@
+Protocol Buffers - Google's data interchange format
+===================================================
+
+[![Build Status](https://travis-ci.org/google/protobuf.svg?branch=master)](https://travis-ci.org/google/protobuf)
+
+Copyright 2008 Google Inc.
+
+This directory contains the Objective C Protocol Buffers runtime library.
+
+Requirements
+------------
+
+The Objective C implemention requires:
+
+- Objective C 2.0 Runtime (32bit & 64bit iOS, 64bit OS X).
+- Xcode 6.3 (or later).
+- The library code does *not* use ARC (for performance reasons), but it all can
+ be called from ARC code.
+
+Installation
+------------
+
+The full distribution pulled from github includes the sources for both the
+compiler (protoc) and the runtime (this directory). To build the compiler
+and run the runtime tests, you can use:
+
+ $ objectivec/DevTools/full_mac_build.sh
+
+This will generate the `src/protoc` binary.
+
+Usage
+-----
+
+There are two ways to include the Runtime sources in your project:
+
+Add `objectivec/\*.h` & `objectivec/GPBProtocolBuffers.m` to your project.
+
+*or*
+
+Add `objectivec/\*.h` & `objectivec/\*.m` except for
+`objectivec/GPBProtocolBuffers.m` to your project.
+
+
+If the target is using ARC, remember to turn off ARC (`-fno-objc-arc`) for the
+`.m` files.
+
+The files generated by `protoc` for the `*.proto` files (`\*.pbobjc.h' and
+`\*.pbobjc.m`) are then also added to the target.
+
+The Objective C classes/enums can be used from Swift code.
+
+Objective C Generator Options
+-----------------------------
+
+**objc_class_prefix=\<prefix\>** (no default)
+
+Since Objective C uses a global namespace for all of its classes, there can
+be collisions. This option provides a prefix that will be added to the Enums
+and Objects (for messages) generated from the proto. Convention is to base
+the prefix on the package the proto is in.
+
+Contributing
+------------
+
+Please make updates to the tests along with changes. If just changing the
+runtime, the Xcode projects can be used to build and run tests. If change also
+require changes to the generated code, `objectivec/DevTools/full_mac_build.sh`
+can be used to easily rebuild and test changes. Passing `-h` to the script will
+show the addition options that could be useful.
+
+Documentation
+-------------
+
+The complete documentation for Protocol Buffers is available via the
+web at:
+
+ https://developers.google.com/protocol-buffers/
diff --git a/objectivec/Tests/GPBArrayTests.m b/objectivec/Tests/GPBArrayTests.m
index 37724c59..0fb15e40 100644
--- a/objectivec/Tests/GPBArrayTests.m
+++ b/objectivec/Tests/GPBArrayTests.m
@@ -29,14 +29,11 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#import <Foundation/Foundation.h>
-
#import <XCTest/XCTest.h>
#import "GPBArray.h"
-#ifndef GPBARRAYSIZE
-#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
-#endif // GPBARRAYSIZE
+#import "GPBTestUtilities.h"
// To let the testing macros work, add some extra methods to simplify things.
@interface GPBEnumArray (TestingTweak)
@@ -233,6 +230,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
//% // Should be new object but equal.
//% XCTAssertNotEqual(array, array2);
//% XCTAssertEqualObjects(array, array2);
+//% [array2 release];
+//% [array release];
//%}
//%
//%- (void)testArrayFromArray {
@@ -248,6 +247,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
//% // Should be new pointer, but equal objects.
//% XCTAssertNotEqual(array, array2);
//% XCTAssertEqualObjects(array, array2);
+//% [array release];
//%}
//%
//%- (void)testAdds {
@@ -275,6 +275,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
//% XCTAssertEqual([array valueAtIndex:2], VAL3);
//% XCTAssertEqual([array valueAtIndex:3], VAL4);
//% XCTAssertEqual([array valueAtIndex:4], VAL1);
+//% [array2 release];
//%}
//%
//%- (void)testInsert {
@@ -307,6 +308,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
//% XCTAssertEqual([array valueAtIndex:3], VAL2);
//% XCTAssertEqual([array valueAtIndex:4], VAL3);
//% XCTAssertEqual([array valueAtIndex:5], VAL4);
+//% [array release];
//%}
//%
//%- (void)testRemove {
@@ -343,6 +345,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
//% XCTAssertEqual(array.count, 0U);
//% XCTAssertThrowsSpecificNamed([array removeValueAtIndex:0],
//% NSException, NSRangeException);
+//% [array release];
//%}
//%
//%- (void)testInplaceMutation {
@@ -381,6 +384,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
//% NSException, NSRangeException);
//% XCTAssertThrowsSpecificNamed([array exchangeValueAtIndex:1 withValueAtIndex:4],
//% NSException, NSRangeException);
+//% [array release];
//%}
//%
//%- (void)testInternalResizing {
@@ -405,6 +409,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
//% XCTAssertEqual(array.count, 404U);
//% [array removeAll];
//% XCTAssertEqual(array.count, 0U);
+//% [array release];
//%}
//%
//%@end
@@ -558,6 +563,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new object but equal.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array2 release];
+ [array release];
}
- (void)testArrayFromArray {
@@ -573,6 +580,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new pointer, but equal objects.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array release];
}
- (void)testAdds {
@@ -600,6 +608,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:2], 3);
XCTAssertEqual([array valueAtIndex:3], 4);
XCTAssertEqual([array valueAtIndex:4], 1);
+ [array2 release];
}
- (void)testInsert {
@@ -632,6 +641,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:3], 2);
XCTAssertEqual([array valueAtIndex:4], 3);
XCTAssertEqual([array valueAtIndex:5], 4);
+ [array release];
}
- (void)testRemove {
@@ -668,6 +678,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 0U);
XCTAssertThrowsSpecificNamed([array removeValueAtIndex:0],
NSException, NSRangeException);
+ [array release];
}
- (void)testInplaceMutation {
@@ -706,6 +717,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
NSException, NSRangeException);
XCTAssertThrowsSpecificNamed([array exchangeValueAtIndex:1 withValueAtIndex:4],
NSException, NSRangeException);
+ [array release];
}
- (void)testInternalResizing {
@@ -730,6 +742,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 404U);
[array removeAll];
XCTAssertEqual(array.count, 0U);
+ [array release];
}
@end
@@ -883,6 +896,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new object but equal.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array2 release];
+ [array release];
}
- (void)testArrayFromArray {
@@ -898,6 +913,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new pointer, but equal objects.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array release];
}
- (void)testAdds {
@@ -925,6 +941,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:2], 13U);
XCTAssertEqual([array valueAtIndex:3], 14U);
XCTAssertEqual([array valueAtIndex:4], 11U);
+ [array2 release];
}
- (void)testInsert {
@@ -957,6 +974,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:3], 12U);
XCTAssertEqual([array valueAtIndex:4], 13U);
XCTAssertEqual([array valueAtIndex:5], 14U);
+ [array release];
}
- (void)testRemove {
@@ -993,6 +1011,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 0U);
XCTAssertThrowsSpecificNamed([array removeValueAtIndex:0],
NSException, NSRangeException);
+ [array release];
}
- (void)testInplaceMutation {
@@ -1031,6 +1050,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
NSException, NSRangeException);
XCTAssertThrowsSpecificNamed([array exchangeValueAtIndex:1 withValueAtIndex:4],
NSException, NSRangeException);
+ [array release];
}
- (void)testInternalResizing {
@@ -1055,6 +1075,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 404U);
[array removeAll];
XCTAssertEqual(array.count, 0U);
+ [array release];
}
@end
@@ -1208,6 +1229,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new object but equal.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array2 release];
+ [array release];
}
- (void)testArrayFromArray {
@@ -1223,6 +1246,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new pointer, but equal objects.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array release];
}
- (void)testAdds {
@@ -1250,6 +1274,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:2], 33LL);
XCTAssertEqual([array valueAtIndex:3], 34LL);
XCTAssertEqual([array valueAtIndex:4], 31LL);
+ [array2 release];
}
- (void)testInsert {
@@ -1282,6 +1307,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:3], 32LL);
XCTAssertEqual([array valueAtIndex:4], 33LL);
XCTAssertEqual([array valueAtIndex:5], 34LL);
+ [array release];
}
- (void)testRemove {
@@ -1318,6 +1344,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 0U);
XCTAssertThrowsSpecificNamed([array removeValueAtIndex:0],
NSException, NSRangeException);
+ [array release];
}
- (void)testInplaceMutation {
@@ -1356,6 +1383,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
NSException, NSRangeException);
XCTAssertThrowsSpecificNamed([array exchangeValueAtIndex:1 withValueAtIndex:4],
NSException, NSRangeException);
+ [array release];
}
- (void)testInternalResizing {
@@ -1380,6 +1408,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 404U);
[array removeAll];
XCTAssertEqual(array.count, 0U);
+ [array release];
}
@end
@@ -1533,6 +1562,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new object but equal.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array2 release];
+ [array release];
}
- (void)testArrayFromArray {
@@ -1548,6 +1579,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new pointer, but equal objects.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array release];
}
- (void)testAdds {
@@ -1575,6 +1607,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:2], 43ULL);
XCTAssertEqual([array valueAtIndex:3], 44ULL);
XCTAssertEqual([array valueAtIndex:4], 41ULL);
+ [array2 release];
}
- (void)testInsert {
@@ -1607,6 +1640,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:3], 42ULL);
XCTAssertEqual([array valueAtIndex:4], 43ULL);
XCTAssertEqual([array valueAtIndex:5], 44ULL);
+ [array release];
}
- (void)testRemove {
@@ -1643,6 +1677,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 0U);
XCTAssertThrowsSpecificNamed([array removeValueAtIndex:0],
NSException, NSRangeException);
+ [array release];
}
- (void)testInplaceMutation {
@@ -1681,6 +1716,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
NSException, NSRangeException);
XCTAssertThrowsSpecificNamed([array exchangeValueAtIndex:1 withValueAtIndex:4],
NSException, NSRangeException);
+ [array release];
}
- (void)testInternalResizing {
@@ -1705,6 +1741,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 404U);
[array removeAll];
XCTAssertEqual(array.count, 0U);
+ [array release];
}
@end
@@ -1858,6 +1895,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new object but equal.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array2 release];
+ [array release];
}
- (void)testArrayFromArray {
@@ -1873,6 +1912,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new pointer, but equal objects.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array release];
}
- (void)testAdds {
@@ -1900,6 +1940,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:2], 53.f);
XCTAssertEqual([array valueAtIndex:3], 54.f);
XCTAssertEqual([array valueAtIndex:4], 51.f);
+ [array2 release];
}
- (void)testInsert {
@@ -1932,6 +1973,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:3], 52.f);
XCTAssertEqual([array valueAtIndex:4], 53.f);
XCTAssertEqual([array valueAtIndex:5], 54.f);
+ [array release];
}
- (void)testRemove {
@@ -1968,6 +2010,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 0U);
XCTAssertThrowsSpecificNamed([array removeValueAtIndex:0],
NSException, NSRangeException);
+ [array release];
}
- (void)testInplaceMutation {
@@ -2006,6 +2049,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
NSException, NSRangeException);
XCTAssertThrowsSpecificNamed([array exchangeValueAtIndex:1 withValueAtIndex:4],
NSException, NSRangeException);
+ [array release];
}
- (void)testInternalResizing {
@@ -2030,6 +2074,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 404U);
[array removeAll];
XCTAssertEqual(array.count, 0U);
+ [array release];
}
@end
@@ -2183,6 +2228,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new object but equal.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array2 release];
+ [array release];
}
- (void)testArrayFromArray {
@@ -2198,6 +2245,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new pointer, but equal objects.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array release];
}
- (void)testAdds {
@@ -2225,6 +2273,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:2], 63.);
XCTAssertEqual([array valueAtIndex:3], 64.);
XCTAssertEqual([array valueAtIndex:4], 61.);
+ [array2 release];
}
- (void)testInsert {
@@ -2257,6 +2306,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:3], 62.);
XCTAssertEqual([array valueAtIndex:4], 63.);
XCTAssertEqual([array valueAtIndex:5], 64.);
+ [array release];
}
- (void)testRemove {
@@ -2293,6 +2343,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 0U);
XCTAssertThrowsSpecificNamed([array removeValueAtIndex:0],
NSException, NSRangeException);
+ [array release];
}
- (void)testInplaceMutation {
@@ -2331,6 +2382,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
NSException, NSRangeException);
XCTAssertThrowsSpecificNamed([array exchangeValueAtIndex:1 withValueAtIndex:4],
NSException, NSRangeException);
+ [array release];
}
- (void)testInternalResizing {
@@ -2355,6 +2407,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 404U);
[array removeAll];
XCTAssertEqual(array.count, 0U);
+ [array release];
}
@end
@@ -2508,6 +2561,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new object but equal.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array2 release];
+ [array release];
}
- (void)testArrayFromArray {
@@ -2523,6 +2578,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new pointer, but equal objects.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array release];
}
- (void)testAdds {
@@ -2550,6 +2606,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:2], FALSE);
XCTAssertEqual([array valueAtIndex:3], FALSE);
XCTAssertEqual([array valueAtIndex:4], TRUE);
+ [array2 release];
}
- (void)testInsert {
@@ -2582,6 +2639,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:3], TRUE);
XCTAssertEqual([array valueAtIndex:4], FALSE);
XCTAssertEqual([array valueAtIndex:5], FALSE);
+ [array release];
}
- (void)testRemove {
@@ -2618,6 +2676,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 0U);
XCTAssertThrowsSpecificNamed([array removeValueAtIndex:0],
NSException, NSRangeException);
+ [array release];
}
- (void)testInplaceMutation {
@@ -2656,6 +2715,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
NSException, NSRangeException);
XCTAssertThrowsSpecificNamed([array exchangeValueAtIndex:1 withValueAtIndex:4],
NSException, NSRangeException);
+ [array release];
}
- (void)testInternalResizing {
@@ -2680,6 +2740,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 404U);
[array removeAll];
XCTAssertEqual(array.count, 0U);
+ [array release];
}
@end
@@ -2833,6 +2894,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new object but equal.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array2 release];
+ [array release];
}
- (void)testArrayFromArray {
@@ -2848,6 +2911,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
// Should be new pointer, but equal objects.
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
+ [array release];
}
- (void)testAdds {
@@ -2875,6 +2939,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:2], 73);
XCTAssertEqual([array valueAtIndex:3], 74);
XCTAssertEqual([array valueAtIndex:4], 71);
+ [array2 release];
}
- (void)testInsert {
@@ -2907,6 +2972,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:3], 72);
XCTAssertEqual([array valueAtIndex:4], 73);
XCTAssertEqual([array valueAtIndex:5], 74);
+ [array release];
}
- (void)testRemove {
@@ -2943,6 +3009,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 0U);
XCTAssertThrowsSpecificNamed([array removeValueAtIndex:0],
NSException, NSRangeException);
+ [array release];
}
- (void)testInplaceMutation {
@@ -2981,6 +3048,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
NSException, NSRangeException);
XCTAssertThrowsSpecificNamed([array exchangeValueAtIndex:1 withValueAtIndex:4],
NSException, NSRangeException);
+ [array release];
}
- (void)testInternalResizing {
@@ -3005,6 +3073,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 404U);
[array removeAll];
XCTAssertEqual(array.count, 0U);
+ [array release];
}
@end
@@ -3165,6 +3234,8 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array2 rawValueAtIndex:1], 72);
XCTAssertEqual([array2 rawValueAtIndex:2], 1000);
XCTAssertEqual([array2 valueAtIndex:2], kGPBUnrecognizedEnumeratorValue);
+ [array2 release];
+ [array release];
}
- (void)testArrayFromArray {
@@ -3182,6 +3253,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertNotEqual(array, array2);
XCTAssertEqualObjects(array, array2);
XCTAssertEqual(array.validationFunc, array2.validationFunc);
+ [array release];
}
- (void)testUnknownAdds {
@@ -3197,7 +3269,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertThrowsSpecificNamed([array addValues:kValues1 count:GPBARRAYSIZE(kValues1)],
NSException, NSInvalidArgumentException);
XCTAssertEqual(array.count, 0U);
-
[array release];
}
@@ -3229,7 +3300,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:2], kGPBUnrecognizedEnumeratorValue);
XCTAssertEqual([array rawValueAtIndex:3], 74);
XCTAssertEqual([array rawValueAtIndex:4], 71);
-
[array release];
}
@@ -3256,6 +3326,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertThrowsSpecificNamed([array insertValue:374 atIndex:3],
NSException, NSInvalidArgumentException);
XCTAssertEqual(array.count, 3U);
+ [array release];
}
- (void)testRawInsert {
@@ -3292,7 +3363,6 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array rawValueAtIndex:4], 73);
XCTAssertEqual([array rawValueAtIndex:5], 374);
XCTAssertEqual([array valueAtIndex:5], kGPBUnrecognizedEnumeratorValue);
-
[array release];
}
@@ -3313,6 +3383,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual([array valueAtIndex:1], 72);
XCTAssertEqual([array valueAtIndex:2], 73);
XCTAssertEqual([array valueAtIndex:3], 74);
+ [array release];
}
@@ -3336,6 +3407,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertThrowsSpecificNamed([array replaceValueAtIndex:4 withRawValue:74],
NSException, NSRangeException);
+ [array release];
}
- (void)testRawInternalResizing {
@@ -3360,6 +3432,7 @@ static BOOL TestingEnum_IsValidValue2(int32_t value) {
XCTAssertEqual(array.count, 404U);
[array removeAll];
XCTAssertEqual(array.count, 0U);
+ [array release];
}
@end
diff --git a/objectivec/Tests/GPBCodedInputStreamTests.m b/objectivec/Tests/GPBCodedInputStreamTests.m
index 0a709cbe..5f29d7c8 100644
--- a/objectivec/Tests/GPBCodedInputStreamTests.m
+++ b/objectivec/Tests/GPBCodedInputStreamTests.m
@@ -184,7 +184,7 @@
XCTAssertEqual(message.serializedSize, (size_t)rawBytes.length);
TestAllTypes* message2 =
- [TestAllTypes parseFromData:rawBytes extensionRegistry:nil];
+ [TestAllTypes parseFromData:rawBytes extensionRegistry:nil error:NULL];
[self assertAllFieldsSet:message2 repeatedCount:kGPBDefaultRepeatCount];
}
@@ -227,8 +227,9 @@
// reading.
GPBCodedInputStream* stream =
[GPBCodedInputStream streamWithData:message.data];
- TestAllTypes* message2 =
- [TestAllTypes parseFromCodedInputStream:stream extensionRegistry:nil];
+ TestAllTypes* message2 = [TestAllTypes parseFromCodedInputStream:stream
+ extensionRegistry:nil
+ error:NULL];
XCTAssertEqualObjects(message.optionalBytes, message2.optionalBytes);
@@ -280,8 +281,9 @@
NSData* data =
[rawOutput propertyForKey:NSStreamDataWrittenToMemoryStreamKey];
GPBCodedInputStream* input = [GPBCodedInputStream streamWithData:data];
- TestAllTypes* message =
- [TestAllTypes parseFromCodedInputStream:input extensionRegistry:nil];
+ TestAllTypes* message = [TestAllTypes parseFromCodedInputStream:input
+ extensionRegistry:nil
+ error:NULL];
// Make sure we can read string properties twice without crashing.
XCTAssertEqual([message.defaultString length], (NSUInteger)0);
XCTAssertEqualObjects(@"", message.defaultString);
diff --git a/objectivec/Tests/GPBConcurrencyTests.m b/objectivec/Tests/GPBConcurrencyTests.m
index 3749fc34..e500ad77 100644
--- a/objectivec/Tests/GPBConcurrencyTests.m
+++ b/objectivec/Tests/GPBConcurrencyTests.m
@@ -31,10 +31,16 @@
#import "GPBTestUtilities.h"
#import "google/protobuf/Unittest.pbobjc.h"
+#import "google/protobuf/UnittestObjc.pbobjc.h"
static const int kNumThreads = 100;
static const int kNumMessages = 100;
+// NOTE: Most of these tests don't "fail" in the sense that the XCTAsserts
+// trip. Rather, the asserts simply exercise the apis, and if there is
+// a concurancy issue, the NSAsserts in the runtime code fire and/or the
+// code just crashes outright.
+
@interface ConcurrencyTests : GPBTestCase
@end
@@ -132,6 +138,48 @@ static const int kNumMessages = 100;
}
}
+- (void)readInt32Int32Map:(NSArray *)messages {
+ for (int i = 0; i < 10; i++) {
+ for (TestRecursiveMessageWithRepeatedField *message in messages) {
+ XCTAssertEqual([message.iToI count], (NSUInteger)0);
+ }
+ }
+}
+
+- (void)testConcurrentReadOfUnsetInt32Int32MapField {
+ NSArray *messages =
+ [self createMessagesWithType:[TestRecursiveMessageWithRepeatedField class]];
+ NSArray *threads =
+ [self createThreadsWithSelector:@selector(readInt32Int32Map:)
+ object:messages];
+ [self startThreads:threads];
+ [self joinThreads:threads];
+ for (TestRecursiveMessageWithRepeatedField *message in messages) {
+ XCTAssertEqual([message.iToI count], (NSUInteger)0);
+ }
+}
+
+- (void)readStringStringMap:(NSArray *)messages {
+ for (int i = 0; i < 10; i++) {
+ for (TestRecursiveMessageWithRepeatedField *message in messages) {
+ XCTAssertEqual([message.strToStr count], (NSUInteger)0);
+ }
+ }
+}
+
+- (void)testConcurrentReadOfUnsetStringStringMapField {
+ NSArray *messages =
+ [self createMessagesWithType:[TestRecursiveMessageWithRepeatedField class]];
+ NSArray *threads =
+ [self createThreadsWithSelector:@selector(readStringStringMap:)
+ object:messages];
+ [self startThreads:threads];
+ [self joinThreads:threads];
+ for (TestRecursiveMessageWithRepeatedField *message in messages) {
+ XCTAssertEqual([message.strToStr count], (NSUInteger)0);
+ }
+}
+
- (void)readOptionalForeignMessageExtension:(NSArray *)messages {
for (int i = 0; i < 10; i++) {
for (TestAllExtensions *message in messages) {
diff --git a/objectivec/Tests/GPBDictionaryTests+Bool.m b/objectivec/Tests/GPBDictionaryTests+Bool.m
index bc4998be..43650f51 100644
--- a/objectivec/Tests/GPBDictionaryTests+Bool.m
+++ b/objectivec/Tests/GPBDictionaryTests+Bool.m
@@ -33,12 +33,9 @@
#import "GPBDictionary.h"
+#import "GPBTestUtilities.h"
#import "google/protobuf/UnittestRuntimeProto2.pbobjc.h"
-#ifndef GPBARRAYSIZE
-#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
-#endif // GPBARRAYSIZE
-
// Pull in the macros (using an external file because expanding all tests
// in a single file makes a file that is failing to work with within Xcode.
//%PDDM-IMPORT-DEFINES GPBDictionaryTests.pddm
diff --git a/objectivec/Tests/GPBDictionaryTests+Int32.m b/objectivec/Tests/GPBDictionaryTests+Int32.m
index 5e25799c..1ee099ee 100644
--- a/objectivec/Tests/GPBDictionaryTests+Int32.m
+++ b/objectivec/Tests/GPBDictionaryTests+Int32.m
@@ -33,6 +33,7 @@
#import "GPBDictionary.h"
+#import "GPBTestUtilities.h"
#import "google/protobuf/UnittestRuntimeProto2.pbobjc.h"
// Pull in the macros (using an external file because expanding all tests
@@ -42,10 +43,6 @@
//%PDDM-EXPAND TEST_FOR_POD_KEY(Int32, int32_t, 11, 12, 13, 14)
// This block of code is generated, do not edit it directly.
-#ifndef GPBARRAYSIZE
-#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
-#endif // GPBARRAYSIZE
-
// To let the testing macros work, add some extra methods to simplify things.
@interface GPBInt32EnumDictionary (TestingTweak)
+ (instancetype)dictionaryWithValue:(int32_t)value forKey:(int32_t)key;
diff --git a/objectivec/Tests/GPBDictionaryTests+Int64.m b/objectivec/Tests/GPBDictionaryTests+Int64.m
index 6e794d38..4a94e033 100644
--- a/objectivec/Tests/GPBDictionaryTests+Int64.m
+++ b/objectivec/Tests/GPBDictionaryTests+Int64.m
@@ -33,6 +33,7 @@
#import "GPBDictionary.h"
+#import "GPBTestUtilities.h"
#import "google/protobuf/UnittestRuntimeProto2.pbobjc.h"
// Pull in the macros (using an external file because expanding all tests
@@ -42,10 +43,6 @@
//%PDDM-EXPAND TEST_FOR_POD_KEY(Int64, int64_t, 21LL, 22LL, 23LL, 24LL)
// This block of code is generated, do not edit it directly.
-#ifndef GPBARRAYSIZE
-#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
-#endif // GPBARRAYSIZE
-
// To let the testing macros work, add some extra methods to simplify things.
@interface GPBInt64EnumDictionary (TestingTweak)
+ (instancetype)dictionaryWithValue:(int32_t)value forKey:(int64_t)key;
diff --git a/objectivec/Tests/GPBDictionaryTests+String.m b/objectivec/Tests/GPBDictionaryTests+String.m
index 95bf2d06..09fbc608 100644
--- a/objectivec/Tests/GPBDictionaryTests+String.m
+++ b/objectivec/Tests/GPBDictionaryTests+String.m
@@ -33,6 +33,7 @@
#import "GPBDictionary.h"
+#import "GPBTestUtilities.h"
#import "google/protobuf/UnittestRuntimeProto2.pbobjc.h"
// Pull in the macros (using an external file because expanding all tests
@@ -42,10 +43,6 @@
//%PDDM-EXPAND TESTS_FOR_POD_VALUES(String, NSString, *, Objects, @"foo", @"bar", @"baz", @"mumble")
// This block of code is generated, do not edit it directly.
-#ifndef GPBARRAYSIZE
-#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
-#endif // GPBARRAYSIZE
-
// To let the testing macros work, add some extra methods to simplify things.
@interface GPBStringEnumDictionary (TestingTweak)
+ (instancetype)dictionaryWithValue:(int32_t)value forKey:(NSString *)key;
diff --git a/objectivec/Tests/GPBDictionaryTests+UInt32.m b/objectivec/Tests/GPBDictionaryTests+UInt32.m
index a89ded3d..f8d280fa 100644
--- a/objectivec/Tests/GPBDictionaryTests+UInt32.m
+++ b/objectivec/Tests/GPBDictionaryTests+UInt32.m
@@ -33,6 +33,7 @@
#import "GPBDictionary.h"
+#import "GPBTestUtilities.h"
#import "google/protobuf/UnittestRuntimeProto2.pbobjc.h"
// Pull in the macros (using an external file because expanding all tests
@@ -42,10 +43,6 @@
//%PDDM-EXPAND TEST_FOR_POD_KEY(UInt32, uint32_t, 1U, 2U, 3U, 4U)
// This block of code is generated, do not edit it directly.
-#ifndef GPBARRAYSIZE
-#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
-#endif // GPBARRAYSIZE
-
// To let the testing macros work, add some extra methods to simplify things.
@interface GPBUInt32EnumDictionary (TestingTweak)
+ (instancetype)dictionaryWithValue:(int32_t)value forKey:(uint32_t)key;
diff --git a/objectivec/Tests/GPBDictionaryTests+UInt64.m b/objectivec/Tests/GPBDictionaryTests+UInt64.m
index 355639c6..cebd6df2 100644
--- a/objectivec/Tests/GPBDictionaryTests+UInt64.m
+++ b/objectivec/Tests/GPBDictionaryTests+UInt64.m
@@ -33,6 +33,7 @@
#import "GPBDictionary.h"
+#import "GPBTestUtilities.h"
#import "google/protobuf/UnittestRuntimeProto2.pbobjc.h"
// Pull in the macros (using an external file because expanding all tests
@@ -42,10 +43,6 @@
//%PDDM-EXPAND TEST_FOR_POD_KEY(UInt64, uint64_t, 31ULL, 32ULL, 33ULL, 34ULL)
// This block of code is generated, do not edit it directly.
-#ifndef GPBARRAYSIZE
-#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
-#endif // GPBARRAYSIZE
-
// To let the testing macros work, add some extra methods to simplify things.
@interface GPBUInt64EnumDictionary (TestingTweak)
+ (instancetype)dictionaryWithValue:(int32_t)value forKey:(uint64_t)key;
diff --git a/objectivec/Tests/GPBDictionaryTests.pddm b/objectivec/Tests/GPBDictionaryTests.pddm
index 39793e03..ee26fac8 100644
--- a/objectivec/Tests/GPBDictionaryTests.pddm
+++ b/objectivec/Tests/GPBDictionaryTests.pddm
@@ -720,10 +720,6 @@
//
//%PDDM-DEFINE TEST_HELPERS(KEY_NAME, KEY_TYPE, KisP)
-//%#ifndef GPBARRAYSIZE
-//%#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
-//%#endif // GPBARRAYSIZE
-//%
//%// To let the testing macros work, add some extra methods to simplify things.
//%@interface GPB##KEY_NAME##EnumDictionary (TestingTweak)
//%+ (instancetype)dictionaryWithValue:(int32_t)value forKey:(KEY_TYPE##KisP$S##KisP)key;
diff --git a/objectivec/Tests/GPBMessageTests+Merge.m b/objectivec/Tests/GPBMessageTests+Merge.m
index 599ad055..3b6fdbd4 100644
--- a/objectivec/Tests/GPBMessageTests+Merge.m
+++ b/objectivec/Tests/GPBMessageTests+Merge.m
@@ -35,6 +35,7 @@
#import "GPBMessage.h"
#import "google/protobuf/MapUnittest.pbobjc.h"
+#import "google/protobuf/Unittest.pbobjc.h"
#import "google/protobuf/UnittestPreserveUnknownEnum.pbobjc.h"
#import "google/protobuf/UnittestRuntimeProto2.pbobjc.h"
#import "google/protobuf/UnittestRuntimeProto3.pbobjc.h"
@@ -431,7 +432,7 @@
XCTAssertNotNil(dst.oneofGroup);
XCTAssertNotEqual(dst.oneofGroup, mergedGroup); // Pointer comparision.
- // Back to something else ot make sure message clears out ok.
+ // Back to something else to make sure message clears out ok.
src.oneofInt32 = 10;
[dst mergeFrom:src];
@@ -640,7 +641,7 @@
XCTAssertEqualObjects(mergedSubMessage, subMessage);
XCTAssertEqualObjects(dst.oneofBytes, oneofBytesDefault);
- // Back to something else ot make sure message clears out ok.
+ // Back to something else to make sure message clears out ok.
src.oneofInt32 = 10;
[dst mergeFrom:src];
diff --git a/objectivec/Tests/GPBMessageTests+Runtime.m b/objectivec/Tests/GPBMessageTests+Runtime.m
index 6ad29ca5..4621f90f 100644
--- a/objectivec/Tests/GPBMessageTests+Runtime.m
+++ b/objectivec/Tests/GPBMessageTests+Runtime.m
@@ -35,6 +35,7 @@
#import "GPBMessage.h"
#import "google/protobuf/MapUnittest.pbobjc.h"
+#import "google/protobuf/Unittest.pbobjc.h"
#import "google/protobuf/UnittestRuntimeProto2.pbobjc.h"
#import "google/protobuf/UnittestRuntimeProto3.pbobjc.h"
@@ -772,6 +773,8 @@
XCTAssertThrowsSpecificNamed(msg.oneofEnum = 666, NSException,
NSInvalidArgumentException);
XCTAssertEqual(msg.oneofEnum, Message2_Enum_Bar);
+
+ [msg release];
}
- (void)testAccessingProto3UnknownEnumValues {
@@ -1261,7 +1264,7 @@
Message2_O_OneOfCase_OneofEnum,
};
- for (size_t i = 0; i < (sizeof(values) / sizeof((values[0]))); ++i) {
+ for (size_t i = 0; i < GPBARRAYSIZE(values); ++i) {
switch (values[i]) {
case Message2_O_OneOfCase_OneofInt32:
msg.oneofInt32 = 1;
@@ -1318,7 +1321,7 @@
msg.oneofEnum = Message2_Enum_Bar;
break;
default:
- XCTFail(@"shouldn't happen, loop: %zd", i);
+ XCTFail(@"shouldn't happen, loop: %zd, value: %d", i, values[i]);
break;
}
@@ -1770,7 +1773,7 @@
Message3_O_OneOfCase_OneofEnum,
};
- for (size_t i = 0; i < (sizeof(values) / sizeof((values[0]))); ++i) {
+ for (size_t i = 0; i < GPBARRAYSIZE(values); ++i) {
switch (values[i]) {
case Message3_O_OneOfCase_OneofInt32:
msg.oneofInt32 = 1;
@@ -1824,7 +1827,7 @@
msg.oneofEnum = Message3_Enum_Baz;
break;
default:
- XCTFail(@"shouldn't happen, loop: %zd", i);
+ XCTFail(@"shouldn't happen, loop: %zd, value: %d", i, values[i]);
break;
}
diff --git a/objectivec/Tests/GPBMessageTests+Serialization.m b/objectivec/Tests/GPBMessageTests+Serialization.m
index ddc2ae19..6d5527b5 100644
--- a/objectivec/Tests/GPBMessageTests+Serialization.m
+++ b/objectivec/Tests/GPBMessageTests+Serialization.m
@@ -41,10 +41,6 @@
#import "google/protobuf/UnittestRuntimeProto2.pbobjc.h"
#import "google/protobuf/UnittestRuntimeProto3.pbobjc.h"
-#ifndef GPBARRAYSIZE
-#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
-#endif // GPBARRAYSIZE
-
static NSData *DataFromCStr(const char *str) {
return [NSData dataWithBytes:str length:strlen(str)];
}
@@ -124,7 +120,8 @@ static NSData *DataFromCStr(const char *str) {
fooWithExtras.enumValue = DropUnknownsFooWithExtraFields_NestedEnum_Baz;
fooWithExtras.extraInt32Value = 2;
- DropUnknownsFoo *foo = [DropUnknownsFoo parseFromData:[fooWithExtras data]];
+ DropUnknownsFoo *foo =
+ [DropUnknownsFoo parseFromData:[fooWithExtras data] error:NULL];
XCTAssertEqual(foo.int32Value, 1);
XCTAssertEqual(foo.enumValue, DropUnknownsFoo_NestedEnum_Baz);
@@ -132,7 +129,8 @@ static NSData *DataFromCStr(const char *str) {
XCTAssertEqual([foo.unknownFields countOfFields], 0U);
[fooWithExtras release];
- fooWithExtras = [DropUnknownsFooWithExtraFields parseFromData:[foo data]];
+ fooWithExtras =
+ [DropUnknownsFooWithExtraFields parseFromData:[foo data] error:NULL];
XCTAssertEqual(fooWithExtras.int32Value, 1);
XCTAssertEqual(fooWithExtras.enumValue,
DropUnknownsFooWithExtraFields_NestedEnum_Baz);
@@ -148,30 +146,24 @@ static NSData *DataFromCStr(const char *str) {
orig.repeatedEnumArray =
[GPBEnumArray arrayWithValidationFunction:Message3_Enum_IsValidValue
rawValue:Message3_Enum_Extra3];
- orig.repeatedPackedEnumArray =
- [GPBEnumArray arrayWithValidationFunction:Message3_Enum_IsValidValue
- rawValue:Message3_Enum_Extra3];
orig.oneofEnum = Message3_Enum_Extra3;
- Message2 *msg = [[Message2 alloc] initWithData:[orig data]];
+ Message2 *msg = [[Message2 alloc] initWithData:[orig data] error:NULL];
// None of the fields should be set.
XCTAssertFalse(msg.hasOptionalEnum);
XCTAssertEqual(msg.repeatedEnumArray.count, 0U);
- XCTAssertEqual(msg.repeatedPackedEnumArray.count, 0U);
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_GPBUnsetOneOfCase);
// All the values should be in unknown fields.
GPBUnknownFieldSet *unknownFields = msg.unknownFields;
- XCTAssertEqual([unknownFields countOfFields], 4U);
+ XCTAssertEqual([unknownFields countOfFields], 3U);
XCTAssertTrue([unknownFields hasField:Message2_FieldNumber_OptionalEnum]);
XCTAssertTrue(
[unknownFields hasField:Message2_FieldNumber_RepeatedEnumArray]);
- XCTAssertTrue(
- [unknownFields hasField:Message2_FieldNumber_RepeatedPackedEnumArray]);
XCTAssertTrue([unknownFields hasField:Message2_FieldNumber_OneofEnum]);
GPBField *field = [unknownFields getField:Message2_FieldNumber_OptionalEnum];
@@ -179,15 +171,12 @@ static NSData *DataFromCStr(const char *str) {
XCTAssertEqual([field.varintList valueAtIndex:0],
(uint64_t)Message3_Enum_Extra3);
+ // Repeated in proto3 default to packed, so this will be length delimited
+ // unknown field, and the value (Message3_Enum_Extra3) encodes into one byte.
field = [unknownFields getField:Message2_FieldNumber_RepeatedEnumArray];
- XCTAssertEqual(field.varintList.count, 1U);
- XCTAssertEqual([field.varintList valueAtIndex:0],
- (uint64_t)Message3_Enum_Extra3);
-
- field = [unknownFields getField:Message2_FieldNumber_RepeatedPackedEnumArray];
- XCTAssertEqual(field.varintList.count, 1U);
- XCTAssertEqual([field.varintList valueAtIndex:0],
- (uint64_t)Message3_Enum_Extra3);
+ XCTAssertEqual(field.lengthDelimitedList.count, 1U);
+ NSData *expected = DataFromCStr("\x1E");
+ XCTAssertEqualObjects([field.lengthDelimitedList objectAtIndex:0], expected);
field = [unknownFields getField:Message2_FieldNumber_OneofEnum];
XCTAssertEqual(field.varintList.count, 1U);
@@ -214,7 +203,7 @@ static NSData *DataFromCStr(const char *str) {
// Everything should be there via raw values.
UnknownEnumsMyMessage *msg =
- [UnknownEnumsMyMessage parseFromData:[orig data]];
+ [UnknownEnumsMyMessage parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.e, UnknownEnumsMyEnum_GPBUnrecognizedEnumeratorValue);
XCTAssertEqual(UnknownEnumsMyMessage_E_RawValue(msg),
@@ -236,7 +225,7 @@ static NSData *DataFromCStr(const char *str) {
// Everything should go out and come back.
- orig = [UnknownEnumsMyMessagePlusExtra parseFromData:[msg data]];
+ orig = [UnknownEnumsMyMessagePlusExtra parseFromData:[msg data] error:NULL];
XCTAssertEqual(orig.e, UnknownEnumsMyEnumPlusExtra_EExtra);
XCTAssertEqual(orig.repeatedEArray.count, 1U);
@@ -255,7 +244,7 @@ static NSData *DataFromCStr(const char *str) {
//% MESSAGE *orig = [[MESSAGE alloc] init];
//% orig.oneof##FIELD = VALUE;
//% XCTAssertEqual(orig.oOneOfCase, MESSAGE##_O_OneOfCase_Oneof##FIELD);
-//% MESSAGE *msg = [MESSAGE parseFromData:[orig data]];
+//% MESSAGE *msg = [MESSAGE parseFromData:[orig data] error:NULL];
//% XCTAssertEqual(msg.oOneOfCase, MESSAGE##_O_OneOfCase_Oneof##FIELD);
//% XCTAssertEqual##EQ_SUFFIX(msg.oneof##FIELD, VALUE);
//% [orig release];
@@ -323,7 +312,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofInt32 = 1;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofInt32);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofInt32);
XCTAssertEqual(msg.oneofInt32, 1);
[orig release];
@@ -333,7 +322,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofInt64 = 2;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofInt64);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofInt64);
XCTAssertEqual(msg.oneofInt64, 2);
[orig release];
@@ -343,7 +332,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofUint32 = 3U;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofUint32);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofUint32);
XCTAssertEqual(msg.oneofUint32, 3U);
[orig release];
@@ -353,7 +342,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofUint64 = 4U;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofUint64);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofUint64);
XCTAssertEqual(msg.oneofUint64, 4U);
[orig release];
@@ -363,7 +352,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofSint32 = 5;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofSint32);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofSint32);
XCTAssertEqual(msg.oneofSint32, 5);
[orig release];
@@ -373,7 +362,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofSint64 = 6;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofSint64);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofSint64);
XCTAssertEqual(msg.oneofSint64, 6);
[orig release];
@@ -383,7 +372,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofFixed32 = 7U;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofFixed32);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofFixed32);
XCTAssertEqual(msg.oneofFixed32, 7U);
[orig release];
@@ -393,7 +382,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofFixed64 = 8U;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofFixed64);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofFixed64);
XCTAssertEqual(msg.oneofFixed64, 8U);
[orig release];
@@ -403,7 +392,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofSfixed32 = 9;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofSfixed32);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofSfixed32);
XCTAssertEqual(msg.oneofSfixed32, 9);
[orig release];
@@ -413,7 +402,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofSfixed64 = 10;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofSfixed64);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofSfixed64);
XCTAssertEqual(msg.oneofSfixed64, 10);
[orig release];
@@ -423,7 +412,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofFloat = 11.0f;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofFloat);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofFloat);
XCTAssertEqual(msg.oneofFloat, 11.0f);
[orig release];
@@ -433,7 +422,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofDouble = 12.0;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofDouble);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofDouble);
XCTAssertEqual(msg.oneofDouble, 12.0);
[orig release];
@@ -443,7 +432,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofBool = NO;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofBool);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofBool);
XCTAssertEqual(msg.oneofBool, NO);
[orig release];
@@ -453,7 +442,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofString = @"foo";
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofString);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofString);
XCTAssertEqualObjects(msg.oneofString, @"foo");
[orig release];
@@ -463,7 +452,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofBytes = [@"bar" dataUsingEncoding:NSUTF8StringEncoding];
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofBytes);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofBytes);
XCTAssertEqualObjects(msg.oneofBytes, [@"bar" dataUsingEncoding:NSUTF8StringEncoding]);
[orig release];
@@ -473,7 +462,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofGroup = group;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofGroup);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofGroup);
XCTAssertEqualObjects(msg.oneofGroup, group);
[orig release];
@@ -483,7 +472,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofMessage = subMessage;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofMessage);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofMessage);
XCTAssertEqualObjects(msg.oneofMessage, subMessage);
[orig release];
@@ -493,7 +482,7 @@ static NSData *DataFromCStr(const char *str) {
Message2 *orig = [[Message2 alloc] init];
orig.oneofEnum = Message2_Enum_Bar;
XCTAssertEqual(orig.oOneOfCase, Message2_O_OneOfCase_OneofEnum);
- Message2 *msg = [Message2 parseFromData:[orig data]];
+ Message2 *msg = [Message2 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_OneofEnum);
XCTAssertEqual(msg.oneofEnum, Message2_Enum_Bar);
[orig release];
@@ -516,7 +505,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofInt32 = 1;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofInt32);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofInt32);
XCTAssertEqual(msg.oneofInt32, 1);
[orig release];
@@ -526,7 +515,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofInt64 = 2;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofInt64);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofInt64);
XCTAssertEqual(msg.oneofInt64, 2);
[orig release];
@@ -536,7 +525,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofUint32 = 3U;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofUint32);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofUint32);
XCTAssertEqual(msg.oneofUint32, 3U);
[orig release];
@@ -546,7 +535,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofUint64 = 4U;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofUint64);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofUint64);
XCTAssertEqual(msg.oneofUint64, 4U);
[orig release];
@@ -556,7 +545,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofSint32 = 5;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofSint32);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofSint32);
XCTAssertEqual(msg.oneofSint32, 5);
[orig release];
@@ -566,7 +555,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofSint64 = 6;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofSint64);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofSint64);
XCTAssertEqual(msg.oneofSint64, 6);
[orig release];
@@ -576,7 +565,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofFixed32 = 7U;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofFixed32);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofFixed32);
XCTAssertEqual(msg.oneofFixed32, 7U);
[orig release];
@@ -586,7 +575,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofFixed64 = 8U;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofFixed64);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofFixed64);
XCTAssertEqual(msg.oneofFixed64, 8U);
[orig release];
@@ -596,7 +585,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofSfixed32 = 9;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofSfixed32);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofSfixed32);
XCTAssertEqual(msg.oneofSfixed32, 9);
[orig release];
@@ -606,7 +595,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofSfixed64 = 10;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofSfixed64);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofSfixed64);
XCTAssertEqual(msg.oneofSfixed64, 10);
[orig release];
@@ -616,7 +605,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofFloat = 11.0f;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofFloat);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofFloat);
XCTAssertEqual(msg.oneofFloat, 11.0f);
[orig release];
@@ -626,7 +615,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofDouble = 12.0;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofDouble);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofDouble);
XCTAssertEqual(msg.oneofDouble, 12.0);
[orig release];
@@ -636,7 +625,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofBool = YES;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofBool);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofBool);
XCTAssertEqual(msg.oneofBool, YES);
[orig release];
@@ -646,7 +635,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofString = @"foo";
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofString);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofString);
XCTAssertEqualObjects(msg.oneofString, @"foo");
[orig release];
@@ -656,7 +645,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofBytes = [@"bar" dataUsingEncoding:NSUTF8StringEncoding];
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofBytes);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofBytes);
XCTAssertEqualObjects(msg.oneofBytes, [@"bar" dataUsingEncoding:NSUTF8StringEncoding]);
[orig release];
@@ -668,7 +657,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofMessage = subMessage;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofMessage);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofMessage);
XCTAssertEqualObjects(msg.oneofMessage, subMessage);
[orig release];
@@ -678,7 +667,7 @@ static NSData *DataFromCStr(const char *str) {
Message3 *orig = [[Message3 alloc] init];
orig.oneofEnum = Message2_Enum_Bar;
XCTAssertEqual(orig.oOneOfCase, Message3_O_OneOfCase_OneofEnum);
- Message3 *msg = [Message3 parseFromData:[orig data]];
+ Message3 *msg = [Message3 parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_OneofEnum);
XCTAssertEqual(msg.oneofEnum, Message2_Enum_Bar);
[orig release];
@@ -695,7 +684,7 @@ static NSData *DataFromCStr(const char *str) {
- (void)testMap_StandardWireFormat {
NSData *data = DataFromCStr("\x0A\x04\x08\x01\x10\x01");
- TestMap *msg = [[TestMap alloc] initWithData:data];
+ TestMap *msg = [[TestMap alloc] initWithData:data error:NULL];
XCTAssertEqual(msg.mapInt32Int32.count, 1U);
int32_t val = 666;
XCTAssertTrue([msg.mapInt32Int32 valueForKey:1 value:&val]);
@@ -709,7 +698,7 @@ static NSData *DataFromCStr(const char *str) {
// put value before key in wire format
NSData *data = DataFromCStr("\x0A\x04\x10\x01\x08\x02");
- TestMap *msg = [[TestMap alloc] initWithData:data];
+ TestMap *msg = [[TestMap alloc] initWithData:data error:NULL];
XCTAssertEqual(msg.mapInt32Int32.count, 1U);
int32_t val = 666;
XCTAssertTrue([msg.mapInt32Int32 valueForKey:2 value:&val]);
@@ -723,7 +712,7 @@ static NSData *DataFromCStr(const char *str) {
// Two key fields in wire format
NSData *data = DataFromCStr("\x0A\x06\x08\x01\x08\x02\x10\x01");
- TestMap *msg = [[TestMap alloc] initWithData:data];
+ TestMap *msg = [[TestMap alloc] initWithData:data error:NULL];
XCTAssertEqual(msg.mapInt32Int32.count, 1U);
int32_t val = 666;
XCTAssertTrue([msg.mapInt32Int32 valueForKey:2 value:&val]);
@@ -737,7 +726,7 @@ static NSData *DataFromCStr(const char *str) {
// Two value fields in wire format
NSData *data = DataFromCStr("\x0A\x06\x08\x01\x10\x01\x10\x02");
- TestMap *msg = [[TestMap alloc] initWithData:data];
+ TestMap *msg = [[TestMap alloc] initWithData:data error:NULL];
XCTAssertEqual(msg.mapInt32Int32.count, 1U);
int32_t val = 666;
XCTAssertTrue([msg.mapInt32Int32 valueForKey:1 value:&val]);
@@ -751,7 +740,7 @@ static NSData *DataFromCStr(const char *str) {
// No key field in wire format
NSData *data = DataFromCStr("\x0A\x02\x10\x01");
- TestMap *msg = [[TestMap alloc] initWithData:data];
+ TestMap *msg = [[TestMap alloc] initWithData:data error:NULL];
XCTAssertEqual(msg.mapInt32Int32.count, 1U);
int32_t val = 666;
XCTAssertTrue([msg.mapInt32Int32 valueForKey:0 value:&val]);
@@ -765,7 +754,7 @@ static NSData *DataFromCStr(const char *str) {
// No value field in wire format
NSData *data = DataFromCStr("\x0A\x02\x08\x01");
- TestMap *msg = [[TestMap alloc] initWithData:data];
+ TestMap *msg = [[TestMap alloc] initWithData:data error:NULL];
XCTAssertEqual(msg.mapInt32Int32.count, 1U);
int32_t val = 666;
XCTAssertTrue([msg.mapInt32Int32 valueForKey:1 value:&val]);
@@ -779,7 +768,7 @@ static NSData *DataFromCStr(const char *str) {
// Unknown field in wire format
NSData *data = DataFromCStr("\x0A\x06\x08\x02\x10\x03\x18\x01");
- TestMap *msg = [[TestMap alloc] initWithData:data];
+ TestMap *msg = [[TestMap alloc] initWithData:data error:NULL];
XCTAssertEqual(msg.mapInt32Int32.count, 1U);
int32_t val = 666;
XCTAssertTrue([msg.mapInt32Int32 valueForKey:2 value:&val]);
@@ -793,8 +782,12 @@ static NSData *DataFromCStr(const char *str) {
// corrupted data in wire format
NSData *data = DataFromCStr("\x0A\x06\x08\x02\x11\x03");
- XCTAssertThrowsSpecificNamed([TestMap parseFromData:data], NSException,
- NSParseErrorException);
+ NSError *error = nil;
+ TestMap *msg = [TestMap parseFromData:data error:&error];
+ XCTAssertNil(msg);
+ XCTAssertNotNil(error);
+ XCTAssertEqualObjects(error.domain, GPBMessageErrorDomain);
+ XCTAssertEqual(error.code, GPBMessageErrorCodeMalformedData);
}
// TEST(GeneratedMapFieldTest, Proto2UnknownEnum)
@@ -810,14 +803,15 @@ static NSData *DataFromCStr(const char *str) {
[orig.unknownMapField setValue:Proto2MapEnumPlusExtra_EProto2MapEnumExtra
forKey:0];
- TestEnumMap *msg1 = [TestEnumMap parseFromData:[orig data]];
+ TestEnumMap *msg1 = [TestEnumMap parseFromData:[orig data] error:NULL];
XCTAssertEqual(msg1.knownMapField.count, 1U);
int32_t val = -1;
XCTAssertTrue([msg1.knownMapField valueForKey:0 value:&val]);
XCTAssertEqual(val, Proto2MapEnum_Proto2MapEnumFoo);
XCTAssertEqual(msg1.unknownFields.countOfFields, 1U);
- TestEnumMapPlusExtra *msg2 = [TestEnumMapPlusExtra parseFromData:[msg1 data]];
+ TestEnumMapPlusExtra *msg2 =
+ [TestEnumMapPlusExtra parseFromData:[msg1 data] error:NULL];
val = -1;
XCTAssertEqual(msg2.knownMapField.count, 1U);
XCTAssertTrue([msg2.knownMapField valueForKey:0 value:&val]);
@@ -833,6 +827,72 @@ static NSData *DataFromCStr(const char *str) {
[orig release];
}
-#pragma mark -
+#pragma mark - Map Round Tripping
+
+- (void)testProto2MapRoundTripping {
+ Message2 *msg = [[Message2 alloc] init];
+
+ // Key/Value data should result in different byte lengths on wire to ensure
+ // everything is right.
+ [msg.mapInt32Int32 setValue:1000 forKey:200];
+ [msg.mapInt32Int32 setValue:101 forKey:2001];
+ [msg.mapInt64Int64 setValue:1002 forKey:202];
+ [msg.mapInt64Int64 setValue:103 forKey:2003];
+ [msg.mapUint32Uint32 setValue:1004 forKey:204];
+ [msg.mapUint32Uint32 setValue:105 forKey:2005];
+ [msg.mapUint64Uint64 setValue:1006 forKey:206];
+ [msg.mapUint64Uint64 setValue:107 forKey:2007];
+ [msg.mapSint32Sint32 setValue:1008 forKey:208];
+ [msg.mapSint32Sint32 setValue:109 forKey:2009];
+ [msg.mapSint64Sint64 setValue:1010 forKey:210];
+ [msg.mapSint64Sint64 setValue:111 forKey:2011];
+ [msg.mapFixed32Fixed32 setValue:1012 forKey:212];
+ [msg.mapFixed32Fixed32 setValue:113 forKey:2013];
+ [msg.mapFixed64Fixed64 setValue:1014 forKey:214];
+ [msg.mapFixed64Fixed64 setValue:115 forKey:2015];
+ [msg.mapSfixed32Sfixed32 setValue:1016 forKey:216];
+ [msg.mapSfixed32Sfixed32 setValue:117 forKey:2017];
+ [msg.mapSfixed64Sfixed64 setValue:1018 forKey:218];
+ [msg.mapSfixed64Sfixed64 setValue:119 forKey:2019];
+ [msg.mapInt32Float setValue:1020.f forKey:220];
+ [msg.mapInt32Float setValue:121.f forKey:2021];
+ [msg.mapInt32Double setValue:1022. forKey:222];
+ [msg.mapInt32Double setValue:123. forKey:2023];
+ [msg.mapBoolBool setValue:false forKey:true];
+ [msg.mapBoolBool setValue:true forKey:false];
+ msg.mapStringString[@"224"] = @"1024";
+ msg.mapStringString[@"2025"] = @"125";
+ msg.mapStringBytes[@"226"] = DataFromCStr("1026");
+ msg.mapStringBytes[@"2027"] = DataFromCStr("127");
+ Message2 *val1 = [[Message2 alloc] init];
+ val1.optionalInt32 = 1028;
+ Message2 *val2 = [[Message2 alloc] init];
+ val2.optionalInt32 = 129;
+ [msg.mapStringMessage setValue:val1 forKey:@"228"];
+ [msg.mapStringMessage setValue:val2 forKey:@"2029"];
+ [msg.mapInt32Bytes setValue:DataFromCStr("1030 bytes") forKey:230];
+ [msg.mapInt32Bytes setValue:DataFromCStr("131") forKey:2031];
+ [msg.mapInt32Enum setValue:Message2_Enum_Bar forKey:232];
+ [msg.mapInt32Enum setValue:Message2_Enum_Baz forKey:2033];
+ Message2 *val3 = [[Message2 alloc] init];
+ val3.optionalInt32 = 1034;
+ Message2 *val4 = [[Message2 alloc] init];
+ val4.optionalInt32 = 135;
+ [msg.mapInt32Message setValue:val3 forKey:234];
+ [msg.mapInt32Message setValue:val4 forKey:2035];
+
+ NSData *data = [msg data];
+ Message2 *msg2 = [[Message2 alloc] initWithData:data error:NULL];
+
+ XCTAssertNotEqual(msg2, msg); // Pointer comparison
+ XCTAssertEqualObjects(msg2, msg);
+
+ [val4 release];
+ [val3 release];
+ [val2 release];
+ [val1 release];
+ [msg2 release];
+ [msg release];
+}
@end
diff --git a/objectivec/Tests/GPBMessageTests.m b/objectivec/Tests/GPBMessageTests.m
index 5ec67cd9..e0154c1a 100644
--- a/objectivec/Tests/GPBMessageTests.m
+++ b/objectivec/Tests/GPBMessageTests.m
@@ -34,6 +34,7 @@
#import "GPBArray_PackagePrivate.h"
#import "GPBDescriptor.h"
+#import "GPBDictionary_PackagePrivate.h"
#import "GPBField_PackagePrivate.h"
#import "GPBMessage_PackagePrivate.h"
#import "GPBUnknownFieldSet_PackagePrivate.h"
@@ -47,23 +48,9 @@
@implementation MessageTests
// TODO(thomasvl): this should get split into a few files of logic junks, it is
-// a jumble
-// of things at the moment (and the testutils have a bunch of the real
+// a jumble of things at the moment (and the testutils have a bunch of the real
// assertions).
-#ifdef DEBUG
-- (void)assertBlock:(void (^)())block
- throwsWithMessageInUserInfo:(GPBMessage *)message {
- @try {
- block();
- XCTAssertTrue(NO);
- }
- @catch (NSException *e) {
- XCTAssertEqualObjects([e userInfo][GPBExceptionMessageKey], message);
- }
-}
-#endif // DEBUG
-
- (TestAllTypes *)mergeSource {
TestAllTypes *message = [TestAllTypes message];
[message setOptionalInt32:1];
@@ -290,14 +277,18 @@
XCTAssertTrue(message.initialized);
}
-#ifdef DEBUG
-- (void)testUninitializedException {
+- (void)testDataFromUninitialized {
TestRequired *message = [TestRequired message];
- [self assertBlock:^{
- [message data];
- } throwsWithMessageInUserInfo:message];
-}
+ NSData *data = [message data];
+ // In DEBUG, the data generation will fail, but in non DEBUG, it passes
+ // because the check isn't done (for speed).
+#ifdef DEBUG
+ XCTAssertNil(data);
+#else
+ XCTAssertNotNil(data);
+ XCTAssertFalse(message.initialized);
#endif // DEBUG
+}
- (void)testInitialized {
// We're mostly testing that no exception is thrown.
@@ -305,18 +296,22 @@
XCTAssertFalse(message.initialized);
}
-#ifdef DEBUG
-- (void)testNestedUninitializedException {
+- (void)testDataFromNestedUninitialized {
TestRequiredForeign *message = [TestRequiredForeign message];
[message setOptionalMessage:[TestRequired message]];
message.repeatedMessageArray = [NSMutableArray array];
[message.repeatedMessageArray addObject:[TestRequired message]];
[message.repeatedMessageArray addObject:[TestRequired message]];
- [self assertBlock:^{
- [message data];
- } throwsWithMessageInUserInfo:message];
-}
+ NSData *data = [message data];
+ // In DEBUG, the data generation will fail, but in non DEBUG, it passes
+ // because the check isn't done (for speed).
+#ifdef DEBUG
+ XCTAssertNil(data);
+#else
+ XCTAssertNotNil(data);
+ XCTAssertFalse(message.initialized);
#endif // DEBUG
+}
- (void)testNestedInitialized {
// We're mostly testing that no exception is thrown.
@@ -330,13 +325,23 @@
XCTAssertFalse(message.initialized);
}
-#ifdef DEBUG
- (void)testParseUninitialized {
- [self assertBlock:^{
- [TestRequired parseFromData:GPBEmptyNSData()];
- } throwsWithMessageInUserInfo:[TestRequired message]];
-}
+ NSError *error = nil;
+ TestRequired *msg =
+ [TestRequired parseFromData:GPBEmptyNSData() error:&error];
+ // In DEBUG, the parse will fail, but in non DEBUG, it passes because
+ // the check isn't done (for speed).
+#ifdef DEBUG
+ XCTAssertNil(msg);
+ XCTAssertNotNil(error);
+ XCTAssertEqualObjects(error.domain, GPBMessageErrorDomain);
+ XCTAssertEqual(error.code, GPBMessageErrorCodeMissingRequiredField);
+#else
+ XCTAssertNotNil(msg);
+ XCTAssertNil(error);
+ XCTAssertFalse(msg.initialized);
#endif // DEBUG
+}
- (void)testCoding {
NSData *data =
@@ -1033,7 +1038,7 @@
message3.repeatedStringArray = [NSMutableArray arrayWithObject:@"wee"];
XCTAssertNotNil(message.repeatedInt32Array);
XCTAssertNotNil(message.repeatedStringArray);
- TestAllTypes *message4 = [message3 copy];
+ TestAllTypes *message4 = [[message3 copy] autorelease];
XCTAssertNotEqual(message3.repeatedInt32Array, message4.repeatedInt32Array);
XCTAssertEqualObjects(message3.repeatedInt32Array,
message4.repeatedInt32Array);
@@ -1156,6 +1161,205 @@
XCTAssertFalse([message hasA]);
}
+- (void)testDefaultingMaps {
+ // Basic tests for default creation of maps in a message.
+ TestRecursiveMessageWithRepeatedField *message =
+ [TestRecursiveMessageWithRepeatedField message];
+ TestRecursiveMessageWithRepeatedField *message2 =
+ [TestRecursiveMessageWithRepeatedField message];
+
+ // Simply accessing the map should not make any fields visible.
+ XCTAssertNotNil(message.a.a.iToI);
+ XCTAssertFalse([message hasA]);
+ XCTAssertFalse([message.a hasA]);
+ XCTAssertNotNil(message2.a.a.strToStr);
+ XCTAssertFalse([message2 hasA]);
+ XCTAssertFalse([message2.a hasA]);
+
+ // But adding an element to the map should.
+ [message.a.a.iToI setValue:100 forKey:200];
+ XCTAssertTrue([message hasA]);
+ XCTAssertTrue([message.a hasA]);
+ XCTAssertEqual([message.a.a.iToI count], (NSUInteger)1);
+ [message2.a.a.strToStr setObject:@"foo" forKey:@"bar"];
+ XCTAssertTrue([message2 hasA]);
+ XCTAssertTrue([message2.a hasA]);
+ XCTAssertEqual([message2.a.a.strToStr count], (NSUInteger)1);
+}
+
+- (void)testAutocreatedMapShared {
+ // Multiple objects pointing to the same map.
+ TestRecursiveMessageWithRepeatedField *message1a =
+ [TestRecursiveMessageWithRepeatedField message];
+ TestRecursiveMessageWithRepeatedField *message1b =
+ [TestRecursiveMessageWithRepeatedField message];
+ message1a.a.iToI = message1b.a.iToI;
+ XCTAssertTrue([message1a hasA]);
+ XCTAssertFalse([message1b hasA]);
+ [message1a.a.iToI setValue:1 forKey:2];
+ XCTAssertTrue([message1a hasA]);
+ XCTAssertTrue([message1b hasA]);
+ XCTAssertEqual(message1a.a.iToI, message1b.a.iToI);
+
+ TestRecursiveMessageWithRepeatedField *message2a =
+ [TestRecursiveMessageWithRepeatedField message];
+ TestRecursiveMessageWithRepeatedField *message2b =
+ [TestRecursiveMessageWithRepeatedField message];
+ message2a.a.strToStr = message2b.a.strToStr;
+ XCTAssertTrue([message2a hasA]);
+ XCTAssertFalse([message2b hasA]);
+ [message2a.a.strToStr setObject:@"bar" forKey:@"foo"];
+ XCTAssertTrue([message2a hasA]);
+ XCTAssertTrue([message2b hasA]);
+ XCTAssertEqual(message2a.a.strToStr, message2b.a.strToStr);
+}
+
+- (void)testAutocreatedMapCopy {
+ // Copy should not copy autocreated maps.
+ TestRecursiveMessageWithRepeatedField *message =
+ [TestRecursiveMessageWithRepeatedField message];
+ XCTAssertNotNil(message.strToStr);
+ XCTAssertNotNil(message.iToI);
+ TestRecursiveMessageWithRepeatedField *message2 =
+ [[message copy] autorelease];
+ // Pointer conparisions.
+ XCTAssertNotEqual(message.strToStr, message2.strToStr);
+ XCTAssertNotEqual(message.iToI, message2.iToI);
+
+ // Mutable copy should copy empty arrays that were explicitly set (end up
+ // with different objects that are equal).
+ TestRecursiveMessageWithRepeatedField *message3 =
+ [TestRecursiveMessageWithRepeatedField message];
+ message3.iToI = [GPBInt32Int32Dictionary dictionaryWithValue:10 forKey:20];
+ message3.strToStr =
+ [NSMutableDictionary dictionaryWithObject:@"abc" forKey:@"123"];
+ XCTAssertNotNil(message.iToI);
+ XCTAssertNotNil(message.iToI);
+ TestRecursiveMessageWithRepeatedField *message4 =
+ [[message3 copy] autorelease];
+ XCTAssertNotEqual(message3.iToI, message4.iToI);
+ XCTAssertEqualObjects(message3.iToI, message4.iToI);
+ XCTAssertNotEqual(message3.strToStr, message4.strToStr);
+ XCTAssertEqualObjects(message3.strToStr, message4.strToStr);
+}
+
+- (void)testAutocreatedMapRetain {
+ // Should be able to retain autocreated map while the creator is dealloced.
+ TestRecursiveMessageWithRepeatedField *message =
+ [TestRecursiveMessageWithRepeatedField message];
+
+ @autoreleasepool {
+ TestRecursiveMessageWithRepeatedField *message2 =
+ [TestRecursiveMessageWithRepeatedField message];
+ message.iToI = message2.iToI;
+ message.strToStr = message2.strToStr;
+ // Pointer conparision
+ XCTAssertEqual(message.iToI->_autocreator, message2);
+ XCTAssertTrue([message.strToStr
+ isKindOfClass:[GPBAutocreatedDictionary class]]);
+ XCTAssertEqual(
+ ((GPBAutocreatedDictionary *)message.strToStr)->_autocreator,
+ message2);
+ }
+
+ XCTAssertNil(message.iToI->_autocreator);
+ XCTAssertTrue(
+ [message.strToStr isKindOfClass:[GPBAutocreatedDictionary class]]);
+ XCTAssertNil(
+ ((GPBAutocreatedDictionary *)message.strToStr)->_autocreator);
+}
+
+- (void)testSetNilAutocreatedMap {
+ // Setting map to nil should cause it to lose its delegate.
+ TestRecursiveMessageWithRepeatedField *message =
+ [TestRecursiveMessageWithRepeatedField message];
+ GPBInt32Int32Dictionary *iToI = [message.iToI retain];
+ GPBAutocreatedDictionary *strToStr =
+ (GPBAutocreatedDictionary *)[message.strToStr retain];
+ XCTAssertTrue([strToStr isKindOfClass:[GPBAutocreatedDictionary class]]);
+ XCTAssertEqual(iToI->_autocreator, message);
+ XCTAssertEqual(strToStr->_autocreator, message);
+ message.iToI = nil;
+ message.strToStr = nil;
+ XCTAssertNil(iToI->_autocreator);
+ XCTAssertNil(strToStr->_autocreator);
+ [iToI release];
+ [strToStr release];
+}
+
+- (void)testReplaceAutocreatedMap {
+ // Replacing map should orphan the old one and cause its creator to become
+ // visible.
+ {
+ TestRecursiveMessageWithRepeatedField *message =
+ [TestRecursiveMessageWithRepeatedField message];
+ XCTAssertNotNil(message.a);
+ XCTAssertNotNil(message.a.iToI);
+ XCTAssertFalse([message hasA]);
+ GPBInt32Int32Dictionary *iToI = [message.a.iToI retain];
+ XCTAssertEqual(iToI->_autocreator, message.a); // Pointer comparision
+ message.a.iToI = [GPBInt32Int32Dictionary dictionaryWithValue:6 forKey:7];
+ XCTAssertTrue([message hasA]);
+ XCTAssertNotEqual(message.a.iToI, iToI); // Pointer comparision
+ XCTAssertNil(iToI->_autocreator);
+ [iToI release];
+ }
+
+ {
+ TestRecursiveMessageWithRepeatedField *message =
+ [TestRecursiveMessageWithRepeatedField message];
+ XCTAssertNotNil(message.a);
+ XCTAssertNotNil(message.a.strToStr);
+ XCTAssertFalse([message hasA]);
+ GPBAutocreatedDictionary *strToStr =
+ (GPBAutocreatedDictionary *)[message.a.strToStr retain];
+ XCTAssertTrue([strToStr isKindOfClass:[GPBAutocreatedDictionary class]]);
+ XCTAssertEqual(strToStr->_autocreator, message.a); // Pointer comparision
+ message.a.strToStr =
+ [NSMutableDictionary dictionaryWithObject:@"abc" forKey:@"def"];
+ XCTAssertTrue([message hasA]);
+ XCTAssertNotEqual(message.a.strToStr, strToStr); // Pointer comparision
+ XCTAssertNil(strToStr->_autocreator);
+ [strToStr release];
+ }
+}
+
+- (void)testSetAutocreatedMapToSelf {
+ // Setting map to itself should cause it to become visible.
+ {
+ TestRecursiveMessageWithRepeatedField *message =
+ [TestRecursiveMessageWithRepeatedField message];
+ XCTAssertNotNil(message.a);
+ XCTAssertNotNil(message.a.iToI);
+ XCTAssertFalse([message hasA]);
+ message.a.iToI = message.a.iToI;
+ XCTAssertTrue([message hasA]);
+ XCTAssertNil(message.a.iToI->_autocreator);
+ }
+
+ {
+ TestRecursiveMessageWithRepeatedField *message =
+ [TestRecursiveMessageWithRepeatedField message];
+ XCTAssertNotNil(message.a);
+ XCTAssertNotNil(message.a.strToStr);
+ XCTAssertFalse([message hasA]);
+ message.a.strToStr = message.a.strToStr;
+ XCTAssertTrue([message hasA]);
+ XCTAssertTrue([message.a.strToStr isKindOfClass:[GPBAutocreatedDictionary class]]);
+ XCTAssertNil(((GPBAutocreatedDictionary *)message.a.strToStr)->_autocreator);
+ }
+}
+
+- (void)testAutocreatedMapRemoveAllValues {
+ // Calling removeAll on autocreated map should not cause it to be visible.
+ TestRecursiveMessageWithRepeatedField *message =
+ [TestRecursiveMessageWithRepeatedField message];
+ [message.a.iToI removeAll];
+ XCTAssertFalse([message hasA]);
+ [message.a.strToStr removeAllObjects];
+ XCTAssertFalse([message hasA]);
+}
+
- (void)testExtensionAccessors {
TestAllExtensions *message = [TestAllExtensions message];
[self setAllExtensions:message repeatedCount:kGPBDefaultRepeatCount];
@@ -1555,7 +1759,8 @@
GPBMessage *message = [GPBMessage message];
[message setUnknownFields:unknowns];
NSData *data = [message data];
- GPBMessage *message2 = [GPBMessage parseFromData:data extensionRegistry:nil];
+ GPBMessage *message2 =
+ [GPBMessage parseFromData:data extensionRegistry:nil error:NULL];
XCTAssertEqualObjects(message, message2);
}
@@ -1579,9 +1784,11 @@
GPBCodedInputStream *input =
[GPBCodedInputStream streamWithData:delimitedData];
GPBMessage *message3 = [GPBMessage parseDelimitedFromCodedInputStream:input
- extensionRegistry:nil];
+ extensionRegistry:nil
+ error:NULL];
GPBMessage *message4 = [GPBMessage parseDelimitedFromCodedInputStream:input
- extensionRegistry:nil];
+ extensionRegistry:nil
+ error:NULL];
XCTAssertEqualObjects(message1, message3);
XCTAssertEqualObjects(message2, message4);
}
@@ -1673,7 +1880,7 @@
XCTAssertEqual(msg.bar, EnumTestMsg_MyEnum_One);
XCTAssertEqual(msg.baz, EnumTestMsg_MyEnum_NegOne);
// Bounce to wire and back.
- EnumTestMsg *msgPrime = [EnumTestMsg parseFromData:[msg data]];
+ EnumTestMsg *msgPrime = [EnumTestMsg parseFromData:[msg data] error:NULL];
XCTAssertEqualObjects(msgPrime, msg);
XCTAssertEqual(msgPrime.foo, EnumTestMsg_MyEnum_Zero);
XCTAssertEqual(msgPrime.bar, EnumTestMsg_MyEnum_One);
@@ -1685,7 +1892,7 @@
XCTAssertEqual(msg.bar, EnumTestMsg_MyEnum_Two);
XCTAssertEqual(msg.baz, EnumTestMsg_MyEnum_NegTwo);
// Bounce to wire and back.
- msgPrime = [EnumTestMsg parseFromData:[msg data]];
+ msgPrime = [EnumTestMsg parseFromData:[msg data] error:NULL];
XCTAssertEqualObjects(msgPrime, msg);
XCTAssertEqual(msgPrime.foo, EnumTestMsg_MyEnum_Zero);
XCTAssertEqual(msgPrime.bar, EnumTestMsg_MyEnum_Two);
@@ -1706,7 +1913,7 @@
XCTAssertEqual([msg.mumbleArray valueAtIndex:3], EnumTestMsg_MyEnum_NegOne);
XCTAssertEqual([msg.mumbleArray valueAtIndex:4], EnumTestMsg_MyEnum_NegTwo);
// Bounce to wire and back.
- msgPrime = [EnumTestMsg parseFromData:[msg data]];
+ msgPrime = [EnumTestMsg parseFromData:[msg data] error:NULL];
XCTAssertEqualObjects(msgPrime, msg);
XCTAssertEqual([msgPrime.mumbleArray valueAtIndex:0],
EnumTestMsg_MyEnum_Zero);
diff --git a/objectivec/Tests/GPBPerfTests.m b/objectivec/Tests/GPBPerfTests.m
index d09021af..1259d146 100644
--- a/objectivec/Tests/GPBPerfTests.m
+++ b/objectivec/Tests/GPBPerfTests.m
@@ -30,6 +30,7 @@
#import "GPBTestUtilities.h"
#import "google/protobuf/Unittest.pbobjc.h"
+#import "google/protobuf/UnittestImport.pbobjc.h"
#import "google/protobuf/UnittestObjc.pbobjc.h"
//
@@ -57,7 +58,7 @@ static const uint32_t kRepeatedCount = 100;
[self setAllFields:message repeatedCount:kRepeatedCount];
NSData* rawBytes = [message data];
[message release];
- message = [[TestAllTypes alloc] initWithData:rawBytes];
+ message = [[TestAllTypes alloc] initWithData:rawBytes error:NULL];
[message release];
}
}];
@@ -71,7 +72,7 @@ static const uint32_t kRepeatedCount = 100;
NSData* rawBytes = [message data];
[message release];
TestAllExtensions* message2 =
- [[TestAllExtensions alloc] initWithData:rawBytes];
+ [[TestAllExtensions alloc] initWithData:rawBytes error:NULL];
[message2 release];
}
}];
@@ -84,7 +85,7 @@ static const uint32_t kRepeatedCount = 100;
[self setPackedFields:message repeatedCount:kRepeatedCount];
NSData* rawBytes = [message data];
[message release];
- message = [[TestPackedTypes alloc] initWithData:rawBytes];
+ message = [[TestPackedTypes alloc] initWithData:rawBytes error:NULL];
[message release];
}
}];
@@ -98,7 +99,7 @@ static const uint32_t kRepeatedCount = 100;
NSData* rawBytes = [message data];
[message release];
TestPackedExtensions* message2 =
- [[TestPackedExtensions alloc] initWithData:rawBytes];
+ [[TestPackedExtensions alloc] initWithData:rawBytes error:NULL];
[message2 release];
}
}];
diff --git a/objectivec/Tests/GPBStringTests.m b/objectivec/Tests/GPBStringTests.m
index 30f13775..802afa7d 100644
--- a/objectivec/Tests/GPBStringTests.m
+++ b/objectivec/Tests/GPBStringTests.m
@@ -31,10 +31,7 @@
#import <XCTest/XCTest.h>
#import "GPBCodedInputStream_PackagePrivate.h"
-
-#ifndef GPBARRAYSIZE
-#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
-#endif // GPBARRAYSIZE
+#import "GPBTestUtilities.h"
@interface TestClass : NSObject
@property(nonatomic, retain) NSString *foo;
diff --git a/objectivec/Tests/GPBSwiftTests.swift b/objectivec/Tests/GPBSwiftTests.swift
index e7b6f94c..30b9cbd4 100644
--- a/objectivec/Tests/GPBSwiftTests.swift
+++ b/objectivec/Tests/GPBSwiftTests.swift
@@ -53,6 +53,12 @@ class GPBBridgeTests: XCTestCase {
msg.repeatedStringArray.addObject("pqr")
msg.repeatedEnumArray.addValue(Message2_Enum.Bar.rawValue)
msg.repeatedEnumArray.addValue(Message2_Enum.Baz.rawValue)
+ msg.mapInt32Int32.setValue(400, forKey:500)
+ msg.mapInt32Int32.setValue(401, forKey:501)
+ msg.mapStringString.setObject("foo", forKey:"bar")
+ msg.mapStringString.setObject("abc", forKey:"xyz")
+ msg.mapInt32Enum.setValue(Message2_Enum.Bar.rawValue, forKey:600)
+ msg.mapInt32Enum.setValue(Message2_Enum.Baz.rawValue, forKey:601)
// Check has*.
XCTAssertTrue(msg.hasOptionalInt32)
@@ -83,6 +89,20 @@ class GPBBridgeTests: XCTestCase {
XCTAssertEqual(msg.repeatedEnumArray.valueAtIndex(0), Message2_Enum.Bar.rawValue)
XCTAssertEqual(msg.repeatedEnumArray.valueAtIndex(1), Message2_Enum.Baz.rawValue)
XCTAssertEqual(msg.repeatedInt64Array.count, UInt(0))
+ XCTAssertEqual(msg.mapInt32Int32.count, UInt(2))
+ var intValue: Int32 = 0;
+ XCTAssertTrue(msg.mapInt32Int32.valueForKey(500, value:&intValue))
+ XCTAssertEqual(intValue, Int32(400))
+ XCTAssertTrue(msg.mapInt32Int32.valueForKey(501, value:&intValue))
+ XCTAssertEqual(intValue, Int32(401))
+ XCTAssertEqual(msg.mapStringString.count, Int(2))
+ XCTAssertEqual(msg.mapStringString.objectForKey("bar") as! String, "foo")
+ XCTAssertEqual(msg.mapStringString.objectForKey("xyz") as! String, "abc")
+ XCTAssertEqual(msg.mapInt32Enum.count, UInt(2))
+ XCTAssertTrue(msg.mapInt32Enum.valueForKey(600, value:&intValue))
+ XCTAssertEqual(intValue, Message2_Enum.Bar.rawValue)
+ XCTAssertTrue(msg.mapInt32Enum.valueForKey(601, value:&intValue))
+ XCTAssertEqual(intValue, Message2_Enum.Baz.rawValue)
// Clearing a string with nil.
msg2.optionalString = nil
@@ -109,6 +129,9 @@ class GPBBridgeTests: XCTestCase {
XCTAssertEqual(msg.repeatedInt32Array.count, UInt(0))
XCTAssertEqual(msg.repeatedStringArray.count, Int(0))
XCTAssertEqual(msg.repeatedEnumArray.count, UInt(0))
+ XCTAssertEqual(msg.mapInt32Int32.count, UInt(0))
+ XCTAssertEqual(msg.mapStringString.count, Int(0))
+ XCTAssertEqual(msg.mapInt32Enum.count, UInt(0))
}
func testProto3Basics() {
@@ -128,6 +151,13 @@ class GPBBridgeTests: XCTestCase {
msg.repeatedEnumArray.addValue(Message3_Enum.Bar.rawValue)
msg.repeatedEnumArray.addRawValue(666)
SetMessage3_OptionalEnum_RawValue(msg2, 666)
+ msg.mapInt32Int32.setValue(400, forKey:500)
+ msg.mapInt32Int32.setValue(401, forKey:501)
+ msg.mapStringString.setObject("foo", forKey:"bar")
+ msg.mapStringString.setObject("abc", forKey:"xyz")
+ msg.mapInt32Enum.setValue(Message2_Enum.Bar.rawValue, forKey:600)
+ // "proto3" syntax lets enum get unknown values.
+ msg.mapInt32Enum.setRawValue(666, forKey:601)
// Has only exists on for message fields.
XCTAssertTrue(msg.hasOptionalMessage)
@@ -152,6 +182,22 @@ class GPBBridgeTests: XCTestCase {
XCTAssertEqual(msg.repeatedEnumArray.rawValueAtIndex(1), 666)
XCTAssertEqual(msg2.optionalEnum, Message3_Enum.GPBUnrecognizedEnumeratorValue)
XCTAssertEqual(Message3_OptionalEnum_RawValue(msg2), Int32(666))
+ XCTAssertEqual(msg.mapInt32Int32.count, UInt(2))
+ var intValue: Int32 = 0;
+ XCTAssertTrue(msg.mapInt32Int32.valueForKey(500, value:&intValue))
+ XCTAssertEqual(intValue, Int32(400))
+ XCTAssertTrue(msg.mapInt32Int32.valueForKey(501, value:&intValue))
+ XCTAssertEqual(intValue, Int32(401))
+ XCTAssertEqual(msg.mapStringString.count, Int(2))
+ XCTAssertEqual(msg.mapStringString.objectForKey("bar") as! String, "foo")
+ XCTAssertEqual(msg.mapStringString.objectForKey("xyz") as! String, "abc")
+ XCTAssertEqual(msg.mapInt32Enum.count, UInt(2))
+ XCTAssertTrue(msg.mapInt32Enum.valueForKey(600, value:&intValue))
+ XCTAssertEqual(intValue, Message2_Enum.Bar.rawValue)
+ XCTAssertTrue(msg.mapInt32Enum.valueForKey(601, value:&intValue))
+ XCTAssertEqual(intValue, Message3_Enum.GPBUnrecognizedEnumeratorValue.rawValue)
+ XCTAssertTrue(msg.mapInt32Enum.valueForKey(601, rawValue:&intValue))
+ XCTAssertEqual(intValue, 666)
// Clearing a string with nil.
msg2.optionalString = nil
@@ -175,6 +221,9 @@ class GPBBridgeTests: XCTestCase {
msg2.clear()
XCTAssertEqual(msg2.optionalEnum, Message3_Enum.Foo) // Default
XCTAssertEqual(Message3_OptionalEnum_RawValue(msg2), Message3_Enum.Foo.rawValue)
+ XCTAssertEqual(msg.mapInt32Int32.count, UInt(0))
+ XCTAssertEqual(msg.mapStringString.count, Int(0))
+ XCTAssertEqual(msg.mapInt32Enum.count, UInt(0))
}
func testAutoCreation() {
@@ -390,15 +439,21 @@ class GPBBridgeTests: XCTestCase {
msg.optionalGroup.a = 102
msg.repeatedStringArray.addObject("abc")
msg.repeatedStringArray.addObject("def")
+ msg.mapInt32Int32.setValue(200, forKey:300)
+ msg.mapInt32Int32.setValue(201, forKey:201)
+ msg.mapStringString.setObject("foo", forKey:"bar")
+ msg.mapStringString.setObject("abc", forKey:"xyz")
let data = msg.data()
- let msg2 = Message2(data: data)
+ let msg2 = Message2(data: data, error:nil)
XCTAssertTrue(msg2 !== msg) // New instance
XCTAssertEqual(msg.optionalInt32, Int32(100))
XCTAssertEqual(msg.optionalInt64, Int64(101))
XCTAssertEqual(msg.optionalGroup.a, Int32(102))
XCTAssertEqual(msg.repeatedStringArray.count, Int(2))
+ XCTAssertEqual(msg.mapInt32Int32.count, UInt(2))
+ XCTAssertEqual(msg.mapStringString.count, Int(2))
XCTAssertEqual(msg2, msg)
}
diff --git a/objectivec/Tests/GPBTestUtilities.h b/objectivec/Tests/GPBTestUtilities.h
index 37e30f96..6ae68c3a 100644
--- a/objectivec/Tests/GPBTestUtilities.h
+++ b/objectivec/Tests/GPBTestUtilities.h
@@ -37,6 +37,13 @@
@class TestPackedExtensions;
@class GPBExtensionRegistry;
+
+// Helper for uses of C arrays in tests cases.
+#ifndef GPBARRAYSIZE
+#define GPBARRAYSIZE(a) ((sizeof(a) / sizeof((a[0]))))
+#endif // GPBARRAYSIZE
+
+
// The number of repetitions of any repeated objects inside of test messages.
extern const uint32_t kGPBDefaultRepeatCount;
diff --git a/objectivec/Tests/GPBTestUtilities.m b/objectivec/Tests/GPBTestUtilities.m
index d664a88a..6058dfc1 100644
--- a/objectivec/Tests/GPBTestUtilities.m
+++ b/objectivec/Tests/GPBTestUtilities.m
@@ -32,6 +32,7 @@
#import "google/protobuf/MapUnittest.pbobjc.h"
#import "google/protobuf/Unittest.pbobjc.h"
+#import "google/protobuf/UnittestImport.pbobjc.h"
const uint32_t kGPBDefaultRepeatCount = 2;
@@ -1060,25 +1061,6 @@ const uint32_t kGPBDefaultRepeatCount = 2;
}
- (void)setAllMapFields:(TestMap *)message numEntries:(uint32_t)count {
- message.mapInt32Int32 = [GPBInt32Int32Dictionary dictionary];
- message.mapInt64Int64 = [GPBInt64Int64Dictionary dictionary];
- message.mapUint32Uint32 = [GPBUInt32UInt32Dictionary dictionary];
- message.mapUint64Uint64 = [GPBUInt64UInt64Dictionary dictionary];
- message.mapSint32Sint32 = [GPBInt32Int32Dictionary dictionary];
- message.mapSint64Sint64 = [GPBInt64Int64Dictionary dictionary];
- message.mapFixed32Fixed32 = [GPBUInt32UInt32Dictionary dictionary];
- message.mapFixed64Fixed64 = [GPBUInt64UInt64Dictionary dictionary];
- message.mapSfixed32Sfixed32 = [GPBInt32Int32Dictionary dictionary];
- message.mapSfixed64Sfixed64 = [GPBInt64Int64Dictionary dictionary];
- message.mapInt32Float = [GPBInt32FloatDictionary dictionary];
- message.mapInt32Double = [GPBInt32DoubleDictionary dictionary];
- message.mapBoolBool = [GPBBoolBoolDictionary dictionary];
- message.mapStringString = [NSMutableDictionary dictionary];
- message.mapInt32Bytes = [GPBInt32ObjectDictionary dictionary];
- message.mapInt32Enum = [GPBInt32EnumDictionary
- dictionaryWithValidationFunction:MapEnum_IsValidValue];
- message.mapInt32ForeignMessage = [GPBInt32ObjectDictionary dictionary];
-
for (uint32_t i = 0; i < count; i++) {
[message.mapInt32Int32 setValue:(i + 1) forKey:100 + i * 100];
[message.mapInt64Int64 setValue:(i + 1) forKey:101 + i * 100];
diff --git a/objectivec/Tests/GPBUnknownFieldSetTest.m b/objectivec/Tests/GPBUnknownFieldSetTest.m
index 80186088..491bba9e 100644
--- a/objectivec/Tests/GPBUnknownFieldSetTest.m
+++ b/objectivec/Tests/GPBUnknownFieldSetTest.m
@@ -56,7 +56,7 @@
- (void)setUp {
allFields_ = [self allSetRepeatedCount:kGPBDefaultRepeatCount];
allFieldsData_ = [allFields_ data];
- emptyMessage_ = [TestEmptyMessage parseFromData:allFieldsData_];
+ emptyMessage_ = [TestEmptyMessage parseFromData:allFieldsData_ error:NULL];
unknownFields_ = emptyMessage_.unknownFields;
}
@@ -176,7 +176,7 @@
[fields addField:field];
NSData* data = fields.data;
- TestAllTypes* destination = [TestAllTypes parseFromData:data];
+ TestAllTypes* destination = [TestAllTypes parseFromData:data error:NULL];
[self assertAllFieldsSet:destination repeatedCount:kGPBDefaultRepeatCount];
XCTAssertEqual(destination.unknownFields.countOfFields, (NSUInteger)1);
@@ -191,8 +191,10 @@
// when parsing.
NSData* bizarroData = [self getBizarroData];
- TestAllTypes* allTypesMessage = [TestAllTypes parseFromData:bizarroData];
- TestEmptyMessage* emptyMessage = [TestEmptyMessage parseFromData:bizarroData];
+ TestAllTypes* allTypesMessage =
+ [TestAllTypes parseFromData:bizarroData error:NULL];
+ TestEmptyMessage* emptyMessage =
+ [TestEmptyMessage parseFromData:bizarroData error:NULL];
// All fields should have been interpreted as unknown, so the debug strings
// should be the same.
@@ -204,7 +206,7 @@
// they are declared as extension numbers.
TestEmptyMessageWithExtensions* message =
- [TestEmptyMessageWithExtensions parseFromData:allFieldsData_];
+ [TestEmptyMessageWithExtensions parseFromData:allFieldsData_ error:NULL];
XCTAssertEqual(unknownFields_.countOfFields,
message.unknownFields.countOfFields);
@@ -217,8 +219,9 @@
NSData* bizarroData = [self getBizarroData];
TestAllExtensions* allExtensionsMessage =
- [TestAllExtensions parseFromData:bizarroData];
- TestEmptyMessage* emptyMessage = [TestEmptyMessage parseFromData:bizarroData];
+ [TestAllExtensions parseFromData:bizarroData error:NULL];
+ TestEmptyMessage* emptyMessage =
+ [TestEmptyMessage parseFromData:bizarroData error:NULL];
// All fields should have been interpreted as unknown, so the debug strings
// should be the same.
diff --git a/objectivec/Tests/GPBWireFormatTests.m b/objectivec/Tests/GPBWireFormatTests.m
index 1344af08..fc5c4bda 100644
--- a/objectivec/Tests/GPBWireFormatTests.m
+++ b/objectivec/Tests/GPBWireFormatTests.m
@@ -47,7 +47,7 @@
NSData* rawBytes = message.data;
XCTAssertEqual(message.serializedSize, (size_t)rawBytes.length);
- TestAllTypes* message2 = [TestAllTypes parseFromData:rawBytes];
+ TestAllTypes* message2 = [TestAllTypes parseFromData:rawBytes error:NULL];
[self assertAllFieldsSet:message2 repeatedCount:kGPBDefaultRepeatCount];
}
@@ -59,7 +59,8 @@
NSData* rawBytes = message.data;
XCTAssertEqual(message.serializedSize, (size_t)rawBytes.length);
- TestPackedTypes* message2 = [TestPackedTypes parseFromData:rawBytes];
+ TestPackedTypes* message2 =
+ [TestPackedTypes parseFromData:rawBytes error:NULL];
[self assertPackedFieldsSet:message2 repeatedCount:kGPBDefaultRepeatCount];
}
@@ -74,7 +75,7 @@
NSData* rawBytes = message.data;
XCTAssertEqual(message.serializedSize, (size_t)rawBytes.length);
- TestAllTypes* message2 = [TestAllTypes parseFromData:rawBytes];
+ TestAllTypes* message2 = [TestAllTypes parseFromData:rawBytes error:NULL];
[self assertAllFieldsSet:message2 repeatedCount:kGPBDefaultRepeatCount];
}
@@ -103,8 +104,9 @@
GPBExtensionRegistry* registry = [self extensionRegistry];
- TestAllExtensions* message2 =
- [TestAllExtensions parseFromData:rawBytes extensionRegistry:registry];
+ TestAllExtensions* message2 = [TestAllExtensions parseFromData:rawBytes
+ extensionRegistry:registry
+ error:NULL];
[self assertAllExtensionsSet:message2 repeatedCount:kGPBDefaultRepeatCount];
}
@@ -124,8 +126,9 @@
GPBExtensionRegistry* registry = [self extensionRegistry];
- TestPackedExtensions* message2 =
- [TestPackedExtensions parseFromData:rawBytes extensionRegistry:registry];
+ TestPackedExtensions* message2 = [TestPackedExtensions parseFromData:rawBytes
+ extensionRegistry:registry
+ error:NULL];
[self assertPackedExtensionsSet:message2
repeatedCount:kGPBDefaultRepeatCount];
@@ -151,7 +154,7 @@ const int kUnknownTypeId = 1550055;
NSData* data = [message_set data];
// Parse back using RawMessageSet and check the contents.
- RawMessageSet* raw = [RawMessageSet parseFromData:data];
+ RawMessageSet* raw = [RawMessageSet parseFromData:data error:NULL];
XCTAssertEqual([raw.unknownFields countOfFields], (NSUInteger)0);
@@ -163,11 +166,13 @@ const int kUnknownTypeId = 1550055;
XCTAssertEqual([raw.itemArray[2] typeId], kUnknownTypeId);
TestMessageSetExtension1* message1 =
- [TestMessageSetExtension1 parseFromData:[raw.itemArray[0] message]];
+ [TestMessageSetExtension1 parseFromData:[raw.itemArray[0] message]
+ error:NULL];
XCTAssertEqual(message1.i, 123);
TestMessageSetExtension2* message2 =
- [TestMessageSetExtension2 parseFromData:[raw.itemArray[1] message]];
+ [TestMessageSetExtension2 parseFromData:[raw.itemArray[1] message]
+ error:NULL];
XCTAssertEqualObjects(message2.str, @"foo");
XCTAssertEqualObjects([raw.itemArray[2] message],
@@ -209,7 +214,8 @@ const int kUnknownTypeId = 1550055;
// Parse as a TestMessageSet and check the contents.
TestMessageSet* messageSet =
[TestMessageSet parseFromData:data
- extensionRegistry:[UnittestMsetRoot extensionRegistry]];
+ extensionRegistry:[UnittestMsetRoot extensionRegistry]
+ error:NULL];
XCTAssertEqual(
[[messageSet
diff --git a/objectivec/Tests/unittest_objc.proto b/objectivec/Tests/unittest_objc.proto
index d288a30d..3bb92761 100644
--- a/objectivec/Tests/unittest_objc.proto
+++ b/objectivec/Tests/unittest_objc.proto
@@ -44,6 +44,8 @@ message TestRecursiveMessageWithRepeatedField {
optional TestRecursiveMessageWithRepeatedField a = 1;
repeated int32 i = 2;
repeated string str = 3;
+ map<int32, int32> i_to_i = 4;
+ map<string, string> str_to_str = 5;
}
// Recursive message and extension to for testing autocreators at different
diff --git a/objectivec/Tests/unittest_runtime_proto2.proto b/objectivec/Tests/unittest_runtime_proto2.proto
index f9fd3c35..ed835020 100644
--- a/objectivec/Tests/unittest_runtime_proto2.proto
+++ b/objectivec/Tests/unittest_runtime_proto2.proto
@@ -78,9 +78,8 @@ message Message2 {
repeated group RepeatedGroup = 46 {
optional int32 a = 47;
}
- repeated Message2 repeated_message = 48;
- repeated Enum repeated_enum = 49;
- repeated Enum repeated_packed_enum = 50 [packed=true];
+ repeated Message2 repeated_message = 48;
+ repeated Enum repeated_enum = 49;
oneof o {
int32 oneof_int32 = 51 [default = 100];
@@ -105,4 +104,25 @@ message Message2 {
Message2 oneof_message = 68;
Enum oneof_enum = 69 [default = BAZ];
}
+
+ // Some token map cases, too many combinations to list them all.
+ map<int32 , int32 > map_int32_int32 = 70;
+ map<int64 , int64 > map_int64_int64 = 71;
+ map<uint32 , uint32 > map_uint32_uint32 = 72;
+ map<uint64 , uint64 > map_uint64_uint64 = 73;
+ map<sint32 , sint32 > map_sint32_sint32 = 74;
+ map<sint64 , sint64 > map_sint64_sint64 = 75;
+ map<fixed32 , fixed32 > map_fixed32_fixed32 = 76;
+ map<fixed64 , fixed64 > map_fixed64_fixed64 = 77;
+ map<sfixed32, sfixed32> map_sfixed32_sfixed32 = 78;
+ map<sfixed64, sfixed64> map_sfixed64_sfixed64 = 79;
+ map<int32 , float > map_int32_float = 80;
+ map<int32 , double > map_int32_double = 81;
+ map<bool , bool > map_bool_bool = 82;
+ map<string , string > map_string_string = 83;
+ map<string , bytes > map_string_bytes = 84;
+ map<string , Message2> map_string_message = 85;
+ map<int32 , bytes > map_int32_bytes = 86;
+ map<int32 , Enum > map_int32_enum = 87;
+ map<int32 , Message2> map_int32_message = 88;
}
diff --git a/objectivec/Tests/unittest_runtime_proto3.proto b/objectivec/Tests/unittest_runtime_proto3.proto
index b6a2f4dc..ad2e3620 100644
--- a/objectivec/Tests/unittest_runtime_proto3.proto
+++ b/objectivec/Tests/unittest_runtime_proto3.proto
@@ -76,7 +76,6 @@ message Message3 {
// No 'group' in proto3.
repeated Message3 repeated_message = 48;
repeated Enum repeated_enum = 49;
- repeated Enum repeated_packed_enum = 50 [packed=true];
oneof o {
int32 oneof_int32 = 51;
@@ -98,4 +97,25 @@ message Message3 {
Message3 oneof_message = 68;
Enum oneof_enum = 69;
}
+
+ // Some token map cases, too many combinations to list them all.
+ map<int32 , int32 > map_int32_int32 = 70;
+ map<int64 , int64 > map_int64_int64 = 71;
+ map<uint32 , uint32 > map_uint32_uint32 = 72;
+ map<uint64 , uint64 > map_uint64_uint64 = 73;
+ map<sint32 , sint32 > map_sint32_sint32 = 74;
+ map<sint64 , sint64 > map_sint64_sint64 = 75;
+ map<fixed32 , fixed32 > map_fixed32_fixed32 = 76;
+ map<fixed64 , fixed64 > map_fixed64_fixed64 = 77;
+ map<sfixed32, sfixed32> map_sfixed32_sfixed32 = 78;
+ map<sfixed64, sfixed64> map_sfixed64_sfixed64 = 79;
+ map<int32 , float > map_int32_float = 80;
+ map<int32 , double > map_int32_double = 81;
+ map<bool , bool > map_bool_bool = 82;
+ map<string , string > map_string_string = 83;
+ map<string , bytes > map_string_bytes = 84;
+ map<string , Message3> map_string_message = 85;
+ map<int32 , bytes > map_int32_bytes = 86;
+ map<int32 , Enum > map_int32_enum = 87;
+ map<int32 , Message3> map_int32_message = 88;
}
diff --git a/objectivec/generate_descriptors_proto.sh b/objectivec/generate_descriptors_proto.sh
new file mode 100755
index 00000000..f2ed00b7
--- /dev/null
+++ b/objectivec/generate_descriptors_proto.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+# Run this script to regenerate descriptor.pbobjc.{h,m} after the protocol
+# compiler changes.
+
+# HINT: Flags passed to generate_descriptor_proto.sh will be passed directly
+# to make when building protoc. This is particularly useful for passing
+# -j4 to run 4 jobs simultaneously.
+
+set -eu
+
+readonly ScriptDir=$(dirname "$(echo $0 | sed -e "s,^\([^/]\),$(pwd)/\1,")")
+readonly ProtoRootDir="${ScriptDir}/.."
+readonly ProtoC="${ProtoRootDir}/src/protoc"
+
+pushd "${ProtoRootDir}" > /dev/null
+
+if test ! -e src/google/protobuf/stubs/common.h; then
+ cat >&2 << __EOF__
+Could not find source code. Make sure you are running this script from the
+root of the distribution tree.
+__EOF__
+ exit 1
+fi
+
+if test ! -e src/Makefile; then
+ cat >&2 << __EOF__
+Could not find src/Makefile. You must run ./configure (and perhaps
+./autogen.sh) first.
+__EOF__
+ exit 1
+fi
+
+# Make sure the compiler is current.
+cd src
+make $@ google/protobuf/stubs/pbconfig.h
+make $@ protoc
+
+declare -a RUNTIME_PROTO_FILES=(\
+ google/protobuf/any.proto \
+ google/protobuf/api.proto \
+ google/protobuf/descriptor.proto \
+ google/protobuf/duration.proto \
+ google/protobuf/empty.proto \
+ google/protobuf/field_mask.proto \
+ google/protobuf/source_context.proto \
+ google/protobuf/struct.proto \
+ google/protobuf/timestamp.proto \
+ google/protobuf/type.proto \
+ google/protobuf/wrappers.proto)
+
+./protoc --objc_out="${ProtoRootDir}/objectivec" ${RUNTIME_PROTO_FILES[@]}
+
+popd > /dev/null
diff --git a/objectivec/google/protobuf/Any.pbobjc.h b/objectivec/google/protobuf/Any.pbobjc.h
new file mode 100644
index 00000000..8154318e
--- /dev/null
+++ b/objectivec/google/protobuf/Any.pbobjc.h
@@ -0,0 +1,100 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/any.proto
+
+#import "GPBProtocolBuffers.h"
+
+#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000
+#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
+#endif
+
+// @@protoc_insertion_point(imports)
+
+CF_EXTERN_C_BEGIN
+
+
+#pragma mark - GPBAnyRoot
+
+@interface GPBAnyRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
+@end
+
+#pragma mark - GPBAny
+
+typedef GPB_ENUM(GPBAny_FieldNumber) {
+ GPBAny_FieldNumber_TypeURL = 1,
+ GPBAny_FieldNumber_Value = 2,
+};
+
+// `Any` contains an arbitrary serialized message along with a URL
+// that describes the type of the serialized message.
+//
+// The proto runtimes and/or compiler will eventually
+// provide utilities to pack/unpack Any values (projected Q1/15).
+//
+// # JSON
+// The JSON representation of an `Any` value uses the regular
+// representation of the deserialized, embedded message, with an
+// additional field `@type` which contains the type URL. Example:
+//
+// package google.profile;
+// message Person {
+// string first_name = 1;
+// string last_name = 2;
+// }
+//
+// {
+// "@type": "type.googleapis.com/google.profile.Person",
+// "firstName": <string>,
+// "lastName": <string>
+// }
+//
+// If the embedded message type is well-known and has a custom JSON
+// representation, that representation will be embedded adding a field
+// `value` which holds the custom JSON in addition to the the `@type`
+// field. Example (for message [google.protobuf.Duration][google.protobuf.Duration]):
+//
+// {
+// "@type": "type.googleapis.com/google.protobuf.Duration",
+// "value": "1.212s"
+// }
+@interface GPBAny : GPBMessage
+
+// A URL/resource name whose content describes the type of the
+// serialized message.
+//
+// For URLs which use the schema `http`, `https`, or no schema, the
+// following restrictions and interpretations apply:
+//
+// * If no schema is provided, `https` is assumed.
+// * The last segment of the URL's path must represent the fully
+// qualified name of the type (as in `path/google.protobuf.Duration`).
+// * An HTTP GET on the URL must yield a [google.protobuf.Type][google.protobuf.Type]
+// value in binary format, or produce an error.
+// * Applications are allowed to cache lookup results based on the
+// URL, or have them precompiled into a binary to avoid any
+// lookup. Therefore, binary compatibility needs to be preserved
+// on changes to types. (Use versioned type names to manage
+// breaking changes.)
+//
+// Schemas other than `http`, `https` (or the empty schema) might be
+// used with implementation specific semantics.
+//
+// Types originating from the `google.*` package
+// namespace should use `type.googleapis.com/full.type.name` (without
+// schema and path). A type service will eventually become available which
+// serves those URLs (projected Q2/15).
+@property(nonatomic, readwrite, copy) NSString *typeURL;
+
+// Must be valid serialized data of the above specified type.
+@property(nonatomic, readwrite, copy) NSData *value;
+
+@end
+
+CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Any.pbobjc.m b/objectivec/google/protobuf/Any.pbobjc.m
new file mode 100644
index 00000000..4db73cb9
--- /dev/null
+++ b/objectivec/google/protobuf/Any.pbobjc.m
@@ -0,0 +1,93 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/any.proto
+
+#import "GPBProtocolBuffers_RuntimeSupport.h"
+#import "google/protobuf/Any.pbobjc.h"
+// @@protoc_insertion_point(imports)
+
+#pragma mark - GPBAnyRoot
+
+@implementation GPBAnyRoot
+
+@end
+
+static GPBFileDescriptor *GPBAnyRoot_FileDescriptor(void) {
+ // This is called by +initialize so there is no need to worry
+ // about thread safety of the singleton.
+ static GPBFileDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
+ syntax:GPBFileSyntaxProto3];
+ }
+ return descriptor;
+}
+
+#pragma mark - GPBAny
+
+@implementation GPBAny
+
+@dynamic typeURL;
+@dynamic value;
+
+typedef struct GPBAny_Storage {
+ uint32_t _has_storage_[1];
+ NSString *typeURL;
+ NSData *value;
+} GPBAny_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "typeURL",
+ .number = GPBAny_FieldNumber_TypeURL,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional | GPBFieldTextFormatNameCustom,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBAny_Storage, typeURL),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "value",
+ .number = GPBAny_FieldNumber_Value,
+ .hasIndex = 1,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeData,
+ .offset = offsetof(GPBAny_Storage, value),
+ .defaultValue.valueData = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+#if GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
+ const char *extraTextFormatInfo = NULL;
+#else
+ static const char *extraTextFormatInfo = "\001\001\004\241!!\000";
+#endif // GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBAny class]
+ rootClass:[GPBAnyRoot class]
+ file:GPBAnyRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBAny_Storage)
+ wireFormat:NO
+ extraTextFormatInfo:extraTextFormatInfo];
+ }
+ return descriptor;
+}
+
+@end
+
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Api.pbobjc.h b/objectivec/google/protobuf/Api.pbobjc.h
new file mode 100644
index 00000000..9e6fc850
--- /dev/null
+++ b/objectivec/google/protobuf/Api.pbobjc.h
@@ -0,0 +1,121 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/api.proto
+
+#import "GPBProtocolBuffers.h"
+
+#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000
+#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
+#endif
+
+// @@protoc_insertion_point(imports)
+
+CF_EXTERN_C_BEGIN
+
+@class GPBSourceContext;
+
+
+#pragma mark - GPBApiRoot
+
+@interface GPBApiRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
+@end
+
+#pragma mark - GPBApi
+
+typedef GPB_ENUM(GPBApi_FieldNumber) {
+ GPBApi_FieldNumber_Name = 1,
+ GPBApi_FieldNumber_MethodsArray = 2,
+ GPBApi_FieldNumber_OptionsArray = 3,
+ GPBApi_FieldNumber_Version = 4,
+ GPBApi_FieldNumber_SourceContext = 5,
+};
+
+// Api is a light-weight descriptor for a protocol buffer service.
+@interface GPBApi : GPBMessage
+
+// The fully qualified name of this api, including package name
+// followed by the api's simple name.
+@property(nonatomic, readwrite, copy) NSString *name;
+
+// The methods of this api, in unspecified order.
+// |methodsArray| contains |GPBMethod|
+@property(nonatomic, readwrite, strong) NSMutableArray *methodsArray;
+
+// Any metadata attached to the API.
+// |optionsArray| contains |GPBOption|
+@property(nonatomic, readwrite, strong) NSMutableArray *optionsArray;
+
+// A version string for this api. If specified, must have the form
+// `major-version.minor-version`, as in `1.10`. If the minor version
+// is omitted, it defaults to zero. If the entire version field is
+// empty, the major version is derived from the package name, as
+// outlined below. If the field is not empty, the version in the
+// package name will be verified to be consistent with what is
+// provided here.
+//
+// The versioning schema uses [semantic
+// versioning](http://semver.org) where the major version number
+// indicates a breaking change and the minor version an additive,
+// non-breaking change. Both version numbers are signals to users
+// what to expect from different versions, and should be carefully
+// chosen based on the product plan.
+//
+// The major version is also reflected in the package name of the
+// API, which must end in `v<major-version>`, as in
+// `google.feature.v1`. For major versions 0 and 1, the suffix can
+// be omitted. Zero major versions must only be used for
+// experimental, none-GA apis.
+//
+// See also: [design doc](http://go/api-versioning).
+@property(nonatomic, readwrite, copy) NSString *version;
+
+// Source context for the protocol buffer service represented by this
+// message.
+@property(nonatomic, readwrite) BOOL hasSourceContext;
+@property(nonatomic, readwrite, strong) GPBSourceContext *sourceContext;
+
+@end
+
+#pragma mark - GPBMethod
+
+typedef GPB_ENUM(GPBMethod_FieldNumber) {
+ GPBMethod_FieldNumber_Name = 1,
+ GPBMethod_FieldNumber_RequestTypeURL = 2,
+ GPBMethod_FieldNumber_RequestStreaming = 3,
+ GPBMethod_FieldNumber_ResponseTypeURL = 4,
+ GPBMethod_FieldNumber_ResponseStreaming = 5,
+ GPBMethod_FieldNumber_OptionsArray = 6,
+};
+
+// Method represents a method of an api.
+@interface GPBMethod : GPBMessage
+
+// The simple name of this method.
+@property(nonatomic, readwrite, copy) NSString *name;
+
+// A URL of the input message type.
+@property(nonatomic, readwrite, copy) NSString *requestTypeURL;
+
+// If true, the request is streamed.
+@property(nonatomic, readwrite) BOOL requestStreaming;
+
+// The URL of the output message type.
+@property(nonatomic, readwrite, copy) NSString *responseTypeURL;
+
+// If true, the response is streamed.
+@property(nonatomic, readwrite) BOOL responseStreaming;
+
+// Any metadata attached to the method.
+// |optionsArray| contains |GPBOption|
+@property(nonatomic, readwrite, strong) NSMutableArray *optionsArray;
+
+@end
+
+CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Api.pbobjc.m b/objectivec/google/protobuf/Api.pbobjc.m
new file mode 100644
index 00000000..9416860a
--- /dev/null
+++ b/objectivec/google/protobuf/Api.pbobjc.m
@@ -0,0 +1,262 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/api.proto
+
+#import "GPBProtocolBuffers_RuntimeSupport.h"
+#import "google/protobuf/Api.pbobjc.h"
+#import "google/protobuf/SourceContext.pbobjc.h"
+#import "google/protobuf/Type.pbobjc.h"
+// @@protoc_insertion_point(imports)
+
+#pragma mark - GPBApiRoot
+
+@implementation GPBApiRoot
+
++ (GPBExtensionRegistry*)extensionRegistry {
+ // This is called by +initialize so there is no need to worry
+ // about thread safety and initialization of registry.
+ static GPBExtensionRegistry* registry = nil;
+ if (!registry) {
+ registry = [[GPBExtensionRegistry alloc] init];
+ static GPBExtensionDescription descriptions[] = {
+ };
+ #pragma unused (descriptions)
+ [registry addExtensions:[GPBSourceContextRoot extensionRegistry]];
+ [registry addExtensions:[GPBTypeRoot extensionRegistry]];
+ }
+ return registry;
+}
+
+@end
+
+static GPBFileDescriptor *GPBApiRoot_FileDescriptor(void) {
+ // This is called by +initialize so there is no need to worry
+ // about thread safety of the singleton.
+ static GPBFileDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
+ syntax:GPBFileSyntaxProto3];
+ }
+ return descriptor;
+}
+
+#pragma mark - GPBApi
+
+@implementation GPBApi
+
+@dynamic name;
+@dynamic methodsArray;
+@dynamic optionsArray;
+@dynamic version;
+@dynamic hasSourceContext, sourceContext;
+
+typedef struct GPBApi_Storage {
+ uint32_t _has_storage_[1];
+ NSString *name;
+ NSMutableArray *methodsArray;
+ NSMutableArray *optionsArray;
+ NSString *version;
+ GPBSourceContext *sourceContext;
+} GPBApi_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "name",
+ .number = GPBApi_FieldNumber_Name,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBApi_Storage, name),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "methodsArray",
+ .number = GPBApi_FieldNumber_MethodsArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBApi_Storage, methodsArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBMethod),
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "optionsArray",
+ .number = GPBApi_FieldNumber_OptionsArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBApi_Storage, optionsArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBOption),
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "version",
+ .number = GPBApi_FieldNumber_Version,
+ .hasIndex = 3,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBApi_Storage, version),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "sourceContext",
+ .number = GPBApi_FieldNumber_SourceContext,
+ .hasIndex = 4,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBApi_Storage, sourceContext),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBSourceContext),
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBApi class]
+ rootClass:[GPBApiRoot class]
+ file:GPBApiRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBApi_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBMethod
+
+@implementation GPBMethod
+
+@dynamic name;
+@dynamic requestTypeURL;
+@dynamic requestStreaming;
+@dynamic responseTypeURL;
+@dynamic responseStreaming;
+@dynamic optionsArray;
+
+typedef struct GPBMethod_Storage {
+ uint32_t _has_storage_[1];
+ BOOL requestStreaming;
+ BOOL responseStreaming;
+ NSString *name;
+ NSString *requestTypeURL;
+ NSString *responseTypeURL;
+ NSMutableArray *optionsArray;
+} GPBMethod_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "name",
+ .number = GPBMethod_FieldNumber_Name,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBMethod_Storage, name),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "requestTypeURL",
+ .number = GPBMethod_FieldNumber_RequestTypeURL,
+ .hasIndex = 1,
+ .flags = GPBFieldOptional | GPBFieldTextFormatNameCustom,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBMethod_Storage, requestTypeURL),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "requestStreaming",
+ .number = GPBMethod_FieldNumber_RequestStreaming,
+ .hasIndex = 2,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeBool,
+ .offset = offsetof(GPBMethod_Storage, requestStreaming),
+ .defaultValue.valueBool = NO,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "responseTypeURL",
+ .number = GPBMethod_FieldNumber_ResponseTypeURL,
+ .hasIndex = 3,
+ .flags = GPBFieldOptional | GPBFieldTextFormatNameCustom,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBMethod_Storage, responseTypeURL),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "responseStreaming",
+ .number = GPBMethod_FieldNumber_ResponseStreaming,
+ .hasIndex = 4,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeBool,
+ .offset = offsetof(GPBMethod_Storage, responseStreaming),
+ .defaultValue.valueBool = NO,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "optionsArray",
+ .number = GPBMethod_FieldNumber_OptionsArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBMethod_Storage, optionsArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBOption),
+ .fieldOptions = NULL,
+ },
+ };
+#if GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
+ const char *extraTextFormatInfo = NULL;
+#else
+ static const char *extraTextFormatInfo = "\002\002\007\244\241!!\000\004\010\244\241!!\000";
+#endif // GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBMethod class]
+ rootClass:[GPBApiRoot class]
+ file:GPBApiRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBMethod_Storage)
+ wireFormat:NO
+ extraTextFormatInfo:extraTextFormatInfo];
+ }
+ return descriptor;
+}
+
+@end
+
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Descriptor.pbobjc.h b/objectivec/google/protobuf/Descriptor.pbobjc.h
index 7b11d899..5a53abbc 100644
--- a/objectivec/google/protobuf/Descriptor.pbobjc.h
+++ b/objectivec/google/protobuf/Descriptor.pbobjc.h
@@ -7,29 +7,18 @@
#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
#endif
+// @@protoc_insertion_point(imports)
+
CF_EXTERN_C_BEGIN
-@class GPBDescriptorProto;
-@class GPBDescriptorProto_ExtensionRange;
-@class GPBEnumDescriptorProto;
@class GPBEnumOptions;
-@class GPBEnumValueDescriptorProto;
@class GPBEnumValueOptions;
-@class GPBFieldDescriptorProto;
@class GPBFieldOptions;
-@class GPBFileDescriptorProto;
-@class GPBFileDescriptorSet;
@class GPBFileOptions;
@class GPBMessageOptions;
-@class GPBMethodDescriptorProto;
@class GPBMethodOptions;
-@class GPBOneofDescriptorProto;
-@class GPBServiceDescriptorProto;
@class GPBServiceOptions;
@class GPBSourceCodeInfo;
-@class GPBSourceCodeInfo_Location;
-@class GPBUninterpretedOption;
-@class GPBUninterpretedOption_NamePart;
#pragma mark - Enum GPBFieldDescriptorProto_Type
@@ -122,10 +111,33 @@ GPBEnumDescriptor *GPBFieldOptions_CType_EnumDescriptor(void);
BOOL GPBFieldOptions_CType_IsValidValue(int32_t value);
+#pragma mark - Enum GPBFieldOptions_JSType
+
+typedef GPB_ENUM(GPBFieldOptions_JSType) {
+ // Use the default type.
+ GPBFieldOptions_JSType_JsNormal = 0,
+
+ // Use JavaScript strings.
+ GPBFieldOptions_JSType_JsString = 1,
+
+ // Use JavaScript numbers.
+ GPBFieldOptions_JSType_JsNumber = 2,
+};
+
+GPBEnumDescriptor *GPBFieldOptions_JSType_EnumDescriptor(void);
+
+BOOL GPBFieldOptions_JSType_IsValidValue(int32_t value);
+
#pragma mark - GPBDescriptorRoot
@interface GPBDescriptorRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
@end
#pragma mark - GPBFileDescriptorSet
@@ -223,6 +235,8 @@ typedef GPB_ENUM(GPBDescriptorProto_FieldNumber) {
GPBDescriptorProto_FieldNumber_ExtensionArray = 6,
GPBDescriptorProto_FieldNumber_Options = 7,
GPBDescriptorProto_FieldNumber_OneofDeclArray = 8,
+ GPBDescriptorProto_FieldNumber_ReservedRangeArray = 9,
+ GPBDescriptorProto_FieldNumber_ReservedNameArray = 10,
};
// Describes a message type.
@@ -252,6 +266,14 @@ typedef GPB_ENUM(GPBDescriptorProto_FieldNumber) {
@property(nonatomic, readwrite) BOOL hasOptions;
@property(nonatomic, readwrite, strong) GPBMessageOptions *options;
+// |reservedRangeArray| contains |GPBDescriptorProto_ReservedRange|
+@property(nonatomic, readwrite, strong) NSMutableArray *reservedRangeArray;
+
+// Reserved field names, which may not be used by fields in the same message.
+// A given name may only be reserved once.
+// |reservedNameArray| contains |NSString|
+@property(nonatomic, readwrite, strong) NSMutableArray *reservedNameArray;
+
@end
#pragma mark - GPBDescriptorProto_ExtensionRange
@@ -271,6 +293,28 @@ typedef GPB_ENUM(GPBDescriptorProto_ExtensionRange_FieldNumber) {
@end
+#pragma mark - GPBDescriptorProto_ReservedRange
+
+typedef GPB_ENUM(GPBDescriptorProto_ReservedRange_FieldNumber) {
+ GPBDescriptorProto_ReservedRange_FieldNumber_Start = 1,
+ GPBDescriptorProto_ReservedRange_FieldNumber_End = 2,
+};
+
+// Range of reserved tag numbers. Reserved tag numbers may not be used by
+// fields or extension ranges in the same message. Reserved ranges may
+// not overlap.
+@interface GPBDescriptorProto_ReservedRange : GPBMessage
+
+// Inclusive.
+@property(nonatomic, readwrite) BOOL hasStart;
+@property(nonatomic, readwrite) int32_t start;
+
+// Exclusive.
+@property(nonatomic, readwrite) BOOL hasEnd;
+@property(nonatomic, readwrite) int32_t end;
+
+@end
+
#pragma mark - GPBFieldDescriptorProto
typedef GPB_ENUM(GPBFieldDescriptorProto_FieldNumber) {
@@ -467,6 +511,7 @@ typedef GPB_ENUM(GPBFileOptions_FieldNumber) {
GPBFileOptions_FieldNumber_JavaStringCheckUtf8 = 27,
GPBFileOptions_FieldNumber_CcEnableArenas = 31,
GPBFileOptions_FieldNumber_ObjcClassPrefix = 36,
+ GPBFileOptions_FieldNumber_CsharpNamespace = 37,
GPBFileOptions_FieldNumber_UninterpretedOptionArray = 999,
};
@@ -565,6 +610,10 @@ typedef GPB_ENUM(GPBFileOptions_FieldNumber) {
@property(nonatomic, readwrite) BOOL hasObjcClassPrefix;
@property(nonatomic, readwrite, copy) NSString *objcClassPrefix;
+// Namespace for generated classes; defaults to the package.
+@property(nonatomic, readwrite) BOOL hasCsharpNamespace;
+@property(nonatomic, readwrite, copy) NSString *csharpNamespace;
+
// The parser stores options it doesn't recognize here. See above.
// |uninterpretedOptionArray| contains |GPBUninterpretedOption|
@property(nonatomic, readwrite, strong) NSMutableArray *uninterpretedOptionArray;
@@ -654,6 +703,7 @@ typedef GPB_ENUM(GPBFieldOptions_FieldNumber) {
GPBFieldOptions_FieldNumber_Packed = 2,
GPBFieldOptions_FieldNumber_Deprecated = 3,
GPBFieldOptions_FieldNumber_Lazy = 5,
+ GPBFieldOptions_FieldNumber_Jstype = 6,
GPBFieldOptions_FieldNumber_Weak = 10,
GPBFieldOptions_FieldNumber_UninterpretedOptionArray = 999,
};
@@ -670,10 +720,23 @@ typedef GPB_ENUM(GPBFieldOptions_FieldNumber) {
// The packed option can be enabled for repeated primitive fields to enable
// a more efficient representation on the wire. Rather than repeatedly
// writing the tag and type for each element, the entire array is encoded as
-// a single length-delimited blob.
+// a single length-delimited blob. In proto3, only explicit setting it to
+// false will avoid using packed encoding.
@property(nonatomic, readwrite) BOOL hasPacked;
@property(nonatomic, readwrite) BOOL packed;
+// The jstype option determines the JavaScript type used for values of the
+// field. The option is permitted only for 64 bit integral and fixed types
+// (int64, uint64, sint64, fixed64, sfixed64). By default these types are
+// represented as JavaScript strings. This avoids loss of precision that can
+// happen when a large value is converted to a floating point JavaScript
+// numbers. Specifying JS_NUMBER for the jstype causes the generated
+// JavaScript code to use the JavaScript "number" type instead of strings.
+// This option is an enum to permit additional types to be added,
+// e.g. goog.math.Integer.
+@property(nonatomic, readwrite) BOOL hasJstype;
+@property(nonatomic, readwrite) GPBFieldOptions_JSType jstype;
+
// Should this field be parsed lazily? Lazy applies only to message-type
// fields. It means that when the outer message is initially parsed, the
// inner message's contents will not be parsed but instead stored in encoded
@@ -1044,3 +1107,5 @@ typedef GPB_ENUM(GPBSourceCodeInfo_Location_FieldNumber) {
@end
CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Descriptor.pbobjc.m b/objectivec/google/protobuf/Descriptor.pbobjc.m
index b7d2e64f..7f1bdd49 100644
--- a/objectivec/google/protobuf/Descriptor.pbobjc.m
+++ b/objectivec/google/protobuf/Descriptor.pbobjc.m
@@ -2,8 +2,8 @@
// source: google/protobuf/descriptor.proto
#import "GPBProtocolBuffers_RuntimeSupport.h"
-
#import "google/protobuf/Descriptor.pbobjc.h"
+// @@protoc_insertion_point(imports)
#pragma mark - GPBDescriptorRoot
@@ -273,6 +273,8 @@ typedef struct GPBFileDescriptorProto_Storage {
@dynamic extensionRangeArray;
@dynamic oneofDeclArray;
@dynamic hasOptions, options;
+@dynamic reservedRangeArray;
+@dynamic reservedNameArray;
typedef struct GPBDescriptorProto_Storage {
uint32_t _has_storage_[1];
@@ -284,6 +286,8 @@ typedef struct GPBDescriptorProto_Storage {
NSMutableArray *extensionArray;
GPBMessageOptions *options;
NSMutableArray *oneofDeclArray;
+ NSMutableArray *reservedRangeArray;
+ NSMutableArray *reservedNameArray;
} GPBDescriptorProto_Storage;
// This method is threadsafe because it is initially called
@@ -380,6 +384,28 @@ typedef struct GPBDescriptorProto_Storage {
.typeSpecific.className = GPBStringifySymbol(GPBOneofDescriptorProto),
.fieldOptions = NULL,
},
+ {
+ .name = "reservedRangeArray",
+ .number = GPBDescriptorProto_FieldNumber_ReservedRangeArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBDescriptorProto_Storage, reservedRangeArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBDescriptorProto_ReservedRange),
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "reservedNameArray",
+ .number = GPBDescriptorProto_FieldNumber_ReservedNameArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBDescriptorProto_Storage, reservedNameArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
};
descriptor = [GPBDescriptor allocDescriptorForClass:[GPBDescriptorProto class]
rootClass:[GPBDescriptorRoot class]
@@ -461,6 +487,67 @@ typedef struct GPBDescriptorProto_ExtensionRange_Storage {
@end
+#pragma mark - GPBDescriptorProto_ReservedRange
+
+@implementation GPBDescriptorProto_ReservedRange
+
+@dynamic hasStart, start;
+@dynamic hasEnd, end;
+
+typedef struct GPBDescriptorProto_ReservedRange_Storage {
+ uint32_t _has_storage_[1];
+ int32_t start;
+ int32_t end;
+} GPBDescriptorProto_ReservedRange_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "start",
+ .number = GPBDescriptorProto_ReservedRange_FieldNumber_Start,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeInt32,
+ .offset = offsetof(GPBDescriptorProto_ReservedRange_Storage, start),
+ .defaultValue.valueInt32 = 0,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "end",
+ .number = GPBDescriptorProto_ReservedRange_FieldNumber_End,
+ .hasIndex = 1,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeInt32,
+ .offset = offsetof(GPBDescriptorProto_ReservedRange_Storage, end),
+ .defaultValue.valueInt32 = 0,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBDescriptorProto_ReservedRange class]
+ rootClass:[GPBDescriptorRoot class]
+ file:GPBDescriptorRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBDescriptorProto_ReservedRange_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
#pragma mark - GPBFieldDescriptorProto
@implementation GPBFieldDescriptorProto
@@ -1105,6 +1192,7 @@ typedef struct GPBMethodDescriptorProto_Storage {
@dynamic hasDeprecated, deprecated;
@dynamic hasCcEnableArenas, ccEnableArenas;
@dynamic hasObjcClassPrefix, objcClassPrefix;
+@dynamic hasCsharpNamespace, csharpNamespace;
@dynamic uninterpretedOptionArray;
typedef struct GPBFileOptions_Storage {
@@ -1122,6 +1210,7 @@ typedef struct GPBFileOptions_Storage {
NSString *javaOuterClassname;
NSString *goPackage;
NSString *objcClassPrefix;
+ NSString *csharpNamespace;
NSMutableArray *uninterpretedOptionArray;
} GPBFileOptions_Storage;
@@ -1275,6 +1364,17 @@ typedef struct GPBFileOptions_Storage {
.fieldOptions = NULL,
},
{
+ .name = "csharpNamespace",
+ .number = GPBFileOptions_FieldNumber_CsharpNamespace,
+ .hasIndex = 13,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBFileOptions_Storage, csharpNamespace),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
.name = "uninterpretedOptionArray",
.number = GPBFileOptions_FieldNumber_UninterpretedOptionArray,
.hasIndex = GPBNoHasBit,
@@ -1449,6 +1549,7 @@ typedef struct GPBMessageOptions_Storage {
@dynamic hasCtype, ctype;
@dynamic hasPacked, packed;
+@dynamic hasJstype, jstype;
@dynamic hasLazy, lazy;
@dynamic hasDeprecated, deprecated;
@dynamic hasWeak, weak;
@@ -1461,6 +1562,7 @@ typedef struct GPBFieldOptions_Storage {
BOOL lazy;
BOOL weak;
GPBFieldOptions_CType ctype;
+ GPBFieldOptions_JSType jstype;
NSMutableArray *uninterpretedOptionArray;
} GPBFieldOptions_Storage;
@@ -1495,7 +1597,7 @@ typedef struct GPBFieldOptions_Storage {
{
.name = "deprecated",
.number = GPBFieldOptions_FieldNumber_Deprecated,
- .hasIndex = 3,
+ .hasIndex = 4,
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.type = GPBTypeBool,
.offset = offsetof(GPBFieldOptions_Storage, deprecated),
@@ -1506,7 +1608,7 @@ typedef struct GPBFieldOptions_Storage {
{
.name = "lazy",
.number = GPBFieldOptions_FieldNumber_Lazy,
- .hasIndex = 2,
+ .hasIndex = 3,
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.type = GPBTypeBool,
.offset = offsetof(GPBFieldOptions_Storage, lazy),
@@ -1515,9 +1617,20 @@ typedef struct GPBFieldOptions_Storage {
.fieldOptions = NULL,
},
{
+ .name = "jstype",
+ .number = GPBFieldOptions_FieldNumber_Jstype,
+ .hasIndex = 2,
+ .flags = GPBFieldOptional | GPBFieldHasDefaultValue | GPBFieldHasEnumDescriptor,
+ .type = GPBTypeEnum,
+ .offset = offsetof(GPBFieldOptions_Storage, jstype),
+ .defaultValue.valueEnum = GPBFieldOptions_JSType_JsNormal,
+ .typeSpecific.enumDescFunc = GPBFieldOptions_JSType_EnumDescriptor,
+ .fieldOptions = NULL,
+ },
+ {
.name = "weak",
.number = GPBFieldOptions_FieldNumber_Weak,
- .hasIndex = 4,
+ .hasIndex = 5,
.flags = GPBFieldOptional | GPBFieldHasDefaultValue,
.type = GPBTypeBool,
.offset = offsetof(GPBFieldOptions_Storage, weak),
@@ -1539,6 +1652,7 @@ typedef struct GPBFieldOptions_Storage {
};
static GPBMessageEnumDescription enums[] = {
{ .enumDescriptorFunc = GPBFieldOptions_CType_EnumDescriptor },
+ { .enumDescriptorFunc = GPBFieldOptions_JSType_EnumDescriptor },
};
static GPBExtensionRange ranges[] = {
{ .start = 1000, .end = 536870912 },
@@ -1591,6 +1705,35 @@ BOOL GPBFieldOptions_CType_IsValidValue(int32_t value__) {
}
}
+#pragma mark - Enum GPBFieldOptions_JSType
+
+GPBEnumDescriptor *GPBFieldOptions_JSType_EnumDescriptor(void) {
+ static GPBEnumDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageEnumValueDescription values[] = {
+ { .name = "JsNormal", .number = GPBFieldOptions_JSType_JsNormal },
+ { .name = "JsString", .number = GPBFieldOptions_JSType_JsString },
+ { .name = "JsNumber", .number = GPBFieldOptions_JSType_JsNumber },
+ };
+ descriptor = [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBFieldOptions_JSType)
+ values:values
+ valueCount:sizeof(values) / sizeof(GPBMessageEnumValueDescription)
+ enumVerifier:GPBFieldOptions_JSType_IsValidValue];
+ }
+ return descriptor;
+}
+
+BOOL GPBFieldOptions_JSType_IsValidValue(int32_t value__) {
+ switch (value__) {
+ case GPBFieldOptions_JSType_JsNormal:
+ case GPBFieldOptions_JSType_JsString:
+ case GPBFieldOptions_JSType_JsNumber:
+ return YES;
+ default:
+ return NO;
+ }
+}
+
#pragma mark - GPBEnumOptions
@implementation GPBEnumOptions
@@ -2203,3 +2346,5 @@ typedef struct GPBSourceCodeInfo_Location_Storage {
@end
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Duration.pbobjc.h b/objectivec/google/protobuf/Duration.pbobjc.h
index c452d0bb..f65df6c9 100644
--- a/objectivec/google/protobuf/Duration.pbobjc.h
+++ b/objectivec/google/protobuf/Duration.pbobjc.h
@@ -7,14 +7,20 @@
#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
#endif
-CF_EXTERN_C_BEGIN
+// @@protoc_insertion_point(imports)
-@class GPBDuration;
+CF_EXTERN_C_BEGIN
#pragma mark - GPBDurationRoot
@interface GPBDurationRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
@end
#pragma mark - GPBDuration
@@ -81,3 +87,5 @@ typedef GPB_ENUM(GPBDuration_FieldNumber) {
@end
CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Duration.pbobjc.m b/objectivec/google/protobuf/Duration.pbobjc.m
index cf0a3064..4db030f4 100644
--- a/objectivec/google/protobuf/Duration.pbobjc.m
+++ b/objectivec/google/protobuf/Duration.pbobjc.m
@@ -2,8 +2,8 @@
// source: google/protobuf/duration.proto
#import "GPBProtocolBuffers_RuntimeSupport.h"
-
#import "google/protobuf/Duration.pbobjc.h"
+// @@protoc_insertion_point(imports)
#pragma mark - GPBDurationRoot
@@ -83,3 +83,5 @@ typedef struct GPBDuration_Storage {
@end
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Empty.pbobjc.h b/objectivec/google/protobuf/Empty.pbobjc.h
new file mode 100644
index 00000000..1356c3a7
--- /dev/null
+++ b/objectivec/google/protobuf/Empty.pbobjc.h
@@ -0,0 +1,41 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/empty.proto
+
+#import "GPBProtocolBuffers.h"
+
+#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000
+#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
+#endif
+
+// @@protoc_insertion_point(imports)
+
+CF_EXTERN_C_BEGIN
+
+
+#pragma mark - GPBEmptyRoot
+
+@interface GPBEmptyRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
+@end
+
+#pragma mark - GPBEmpty
+
+// A generic empty message that you can re-use to avoid defining duplicated
+// empty messages in your APIs. A typical example is to use it as the request
+// or the response type of an API method. For instance:
+//
+// service Foo {
+// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
+// }
+@interface GPBEmpty : GPBMessage
+
+@end
+
+CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Empty.pbobjc.m b/objectivec/google/protobuf/Empty.pbobjc.m
new file mode 100644
index 00000000..619fe905
--- /dev/null
+++ b/objectivec/google/protobuf/Empty.pbobjc.m
@@ -0,0 +1,61 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/empty.proto
+
+#import "GPBProtocolBuffers_RuntimeSupport.h"
+#import "google/protobuf/Empty.pbobjc.h"
+// @@protoc_insertion_point(imports)
+
+#pragma mark - GPBEmptyRoot
+
+@implementation GPBEmptyRoot
+
+@end
+
+static GPBFileDescriptor *GPBEmptyRoot_FileDescriptor(void) {
+ // This is called by +initialize so there is no need to worry
+ // about thread safety of the singleton.
+ static GPBFileDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
+ syntax:GPBFileSyntaxProto3];
+ }
+ return descriptor;
+}
+
+#pragma mark - GPBEmpty
+
+@implementation GPBEmpty
+
+
+typedef struct GPBEmpty_Storage {
+ uint32_t _has_storage_[0];
+} GPBEmpty_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBEmpty class]
+ rootClass:[GPBEmptyRoot class]
+ file:GPBEmptyRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBEmpty_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/FieldMask.pbobjc.h b/objectivec/google/protobuf/FieldMask.pbobjc.h
new file mode 100644
index 00000000..ac6f03d2
--- /dev/null
+++ b/objectivec/google/protobuf/FieldMask.pbobjc.h
@@ -0,0 +1,160 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/field_mask.proto
+
+#import "GPBProtocolBuffers.h"
+
+#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000
+#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
+#endif
+
+// @@protoc_insertion_point(imports)
+
+CF_EXTERN_C_BEGIN
+
+
+#pragma mark - GPBFieldMaskRoot
+
+@interface GPBFieldMaskRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
+@end
+
+#pragma mark - GPBFieldMask
+
+typedef GPB_ENUM(GPBFieldMask_FieldNumber) {
+ GPBFieldMask_FieldNumber_PathsArray = 1,
+};
+
+// `FieldMask` represents a set of symbolic field paths, for example:
+//
+// paths: "f.a"
+// paths: "f.b.d"
+//
+// Here `f` represents a field in some root message, `a` and `b`
+// fields in the message found in `f`, and `d` a field found in the
+// message in `f.b`.
+//
+// Field masks are used to specify a subset of fields that should be
+// returned by a get operation or modified by an update operation.
+// Field masks also have a custom JSON encoding (see below).
+//
+// # Field Masks in Projections
+// When used in the context of a projection, a response message or
+// sub-message is filtered by the API to only contain those fields as
+// specified in the mask. For example, if the mask in the previous
+// example is applied to a response message as follows:
+//
+// f {
+// a : 22
+// b {
+// d : 1
+// x : 2
+// }
+// y : 13
+// }
+// z: 8
+//
+// The result will not contain specific values for fields x,y and z
+// (there value will be set to the default, and omitted in proto text
+// output):
+//
+//
+// f {
+// a : 22
+// b {
+// d : 1
+// }
+// }
+//
+// A repeated field is not allowed except at the last position of a
+// field mask.
+//
+// If a FieldMask object is not present in a get operation, the
+// operation applies to all fields (as if a FieldMask of all fields
+// had been specified).
+//
+// Note that a field mask does not necessarily applies to the
+// top-level response message. In case of a REST get operation, the
+// field mask applies directly to the response, but in case of a REST
+// list operation, the mask instead applies to each individual message
+// in the returned resource list. In case of a REST custom method,
+// other definitions may be used. Where the mask applies will be
+// clearly documented together with its declaration in the API. In
+// any case, the effect on the returned resource/resources is required
+// behavior for APIs.
+//
+// # Field Masks in Update Operations
+// A field mask in update operations specifies which fields of the
+// targeted resource are going to be updated. The API is required
+// to only change the values of the fields as specified in the mask
+// and leave the others untouched. If a resource is passed in to
+// describe the updated values, the API ignores the values of all
+// fields not covered by the mask.
+//
+// In order to reset a field's value to the default, the field must
+// be in the mask and set to the default value in the provided resource.
+// Hence, in order to reset all fields of a resource, provide a default
+// instance of the resource and set all fields in the mask, or do
+// not provide a mask as described below.
+//
+// If a field mask is not present on update, the operation applies to
+// all fields (as if a field mask of all fields has been specified).
+// Note that in the presence of schema evolution, this may mean that
+// fields the client does not know and has therefore not filled into
+// the request will be reset to their default. If this is unwanted
+// behavior, a specific service may require a client to always specify
+// a field mask, producing an error if not.
+//
+// As with get operations, the location of the resource which
+// describes the updated values in the request message depends on the
+// operation kind. In any case, the effect of the field mask is
+// required to be honored by the API.
+//
+// ## Considerations for HTTP REST
+// The HTTP kind of an update operation which uses a field mask must
+// be set to PATCH instead of PUT in order to satisfy HTTP semantics
+// (PUT must only be used for full updates).
+//
+// # JSON Encoding of Field Masks
+// In JSON, a field mask is encoded as a single string where paths are
+// separated by a comma. Fields name in each path are converted
+// to/from lower-camel naming conventions.
+//
+// As an example, consider the following message declarations:
+//
+// message Profile {
+// User user = 1;
+// Photo photo = 2;
+// }
+// message User {
+// string display_name = 1;
+// string address = 2;
+// }
+//
+// In proto a field mask for `Profile` may look as such:
+//
+// mask {
+// paths: "user.display_name"
+// paths: "photo"
+// }
+//
+// In JSON, the same mask is represented as below:
+//
+// {
+// mask: "user.displayName,photo"
+// }
+@interface GPBFieldMask : GPBMessage
+
+// The set of field mask paths.
+// |pathsArray| contains |NSString|
+@property(nonatomic, readwrite, strong) NSMutableArray *pathsArray;
+
+@end
+
+CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/FieldMask.pbobjc.m b/objectivec/google/protobuf/FieldMask.pbobjc.m
new file mode 100644
index 00000000..e37ac6c2
--- /dev/null
+++ b/objectivec/google/protobuf/FieldMask.pbobjc.m
@@ -0,0 +1,74 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/field_mask.proto
+
+#import "GPBProtocolBuffers_RuntimeSupport.h"
+#import "google/protobuf/FieldMask.pbobjc.h"
+// @@protoc_insertion_point(imports)
+
+#pragma mark - GPBFieldMaskRoot
+
+@implementation GPBFieldMaskRoot
+
+@end
+
+static GPBFileDescriptor *GPBFieldMaskRoot_FileDescriptor(void) {
+ // This is called by +initialize so there is no need to worry
+ // about thread safety of the singleton.
+ static GPBFileDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
+ syntax:GPBFileSyntaxProto3];
+ }
+ return descriptor;
+}
+
+#pragma mark - GPBFieldMask
+
+@implementation GPBFieldMask
+
+@dynamic pathsArray;
+
+typedef struct GPBFieldMask_Storage {
+ uint32_t _has_storage_[1];
+ NSMutableArray *pathsArray;
+} GPBFieldMask_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "pathsArray",
+ .number = GPBFieldMask_FieldNumber_PathsArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBFieldMask_Storage, pathsArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBFieldMask class]
+ rootClass:[GPBFieldMaskRoot class]
+ file:GPBFieldMaskRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBFieldMask_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/SourceContext.pbobjc.h b/objectivec/google/protobuf/SourceContext.pbobjc.h
new file mode 100644
index 00000000..bcbf1e3d
--- /dev/null
+++ b/objectivec/google/protobuf/SourceContext.pbobjc.h
@@ -0,0 +1,44 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/source_context.proto
+
+#import "GPBProtocolBuffers.h"
+
+#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000
+#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
+#endif
+
+// @@protoc_insertion_point(imports)
+
+CF_EXTERN_C_BEGIN
+
+
+#pragma mark - GPBSourceContextRoot
+
+@interface GPBSourceContextRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
+@end
+
+#pragma mark - GPBSourceContext
+
+typedef GPB_ENUM(GPBSourceContext_FieldNumber) {
+ GPBSourceContext_FieldNumber_FileName = 1,
+};
+
+// `SourceContext` represents information about the source of a
+// protobuf element, like the file in which it is defined.
+@interface GPBSourceContext : GPBMessage
+
+// The path-qualified name of the .proto file that contained the associated
+// protobuf element. For example: `"google/protobuf/source.proto"`.
+@property(nonatomic, readwrite, copy) NSString *fileName;
+
+@end
+
+CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/SourceContext.pbobjc.m b/objectivec/google/protobuf/SourceContext.pbobjc.m
new file mode 100644
index 00000000..271f9243
--- /dev/null
+++ b/objectivec/google/protobuf/SourceContext.pbobjc.m
@@ -0,0 +1,74 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/source_context.proto
+
+#import "GPBProtocolBuffers_RuntimeSupport.h"
+#import "google/protobuf/SourceContext.pbobjc.h"
+// @@protoc_insertion_point(imports)
+
+#pragma mark - GPBSourceContextRoot
+
+@implementation GPBSourceContextRoot
+
+@end
+
+static GPBFileDescriptor *GPBSourceContextRoot_FileDescriptor(void) {
+ // This is called by +initialize so there is no need to worry
+ // about thread safety of the singleton.
+ static GPBFileDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
+ syntax:GPBFileSyntaxProto3];
+ }
+ return descriptor;
+}
+
+#pragma mark - GPBSourceContext
+
+@implementation GPBSourceContext
+
+@dynamic fileName;
+
+typedef struct GPBSourceContext_Storage {
+ uint32_t _has_storage_[1];
+ NSString *fileName;
+} GPBSourceContext_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "fileName",
+ .number = GPBSourceContext_FieldNumber_FileName,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBSourceContext_Storage, fileName),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBSourceContext class]
+ rootClass:[GPBSourceContextRoot class]
+ file:GPBSourceContextRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBSourceContext_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Struct.pbobjc.h b/objectivec/google/protobuf/Struct.pbobjc.h
new file mode 100644
index 00000000..f55af82b
--- /dev/null
+++ b/objectivec/google/protobuf/Struct.pbobjc.h
@@ -0,0 +1,134 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/struct.proto
+
+#import "GPBProtocolBuffers.h"
+
+#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000
+#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
+#endif
+
+// @@protoc_insertion_point(imports)
+
+CF_EXTERN_C_BEGIN
+
+@class GPBListValue;
+@class GPBStruct;
+
+#pragma mark - Enum GPBNullValue
+
+// `NullValue` is a singleton enumeration to represent the null
+// value for the `Value` type union.
+typedef GPB_ENUM(GPBNullValue) {
+ GPBNullValue_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
+ // Null value.
+ GPBNullValue_NullValue = 0,
+};
+
+GPBEnumDescriptor *GPBNullValue_EnumDescriptor(void);
+
+BOOL GPBNullValue_IsValidValue(int32_t value);
+
+
+#pragma mark - GPBStructRoot
+
+@interface GPBStructRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
+@end
+
+#pragma mark - GPBStruct
+
+typedef GPB_ENUM(GPBStruct_FieldNumber) {
+ GPBStruct_FieldNumber_Fields = 1,
+};
+
+// `Struct` represents a structured data value, consisting of fields
+// which map to dynamically typed values. In some languages, `Struct`
+// might be supported by a native representation. For example, in
+// scripting languages like JS a struct is represented as an
+// object. The details of that representation are described together
+// with the proto support for the language.
+@interface GPBStruct : GPBMessage
+
+// Map of dynamically typed values.
+// |fields| values are |GPBValue|
+@property(nonatomic, readwrite, strong) NSMutableDictionary *fields;
+
+@end
+
+#pragma mark - GPBValue
+
+typedef GPB_ENUM(GPBValue_FieldNumber) {
+ GPBValue_FieldNumber_NullValue = 1,
+ GPBValue_FieldNumber_NumberValue = 2,
+ GPBValue_FieldNumber_StringValue = 3,
+ GPBValue_FieldNumber_BoolValue = 4,
+ GPBValue_FieldNumber_StructValue = 5,
+ GPBValue_FieldNumber_ListValue = 6,
+};
+
+typedef GPB_ENUM(GPBValue_Kind_OneOfCase) {
+ GPBValue_Kind_OneOfCase_GPBUnsetOneOfCase = 0,
+ GPBValue_Kind_OneOfCase_NullValue = 1,
+ GPBValue_Kind_OneOfCase_NumberValue = 2,
+ GPBValue_Kind_OneOfCase_StringValue = 3,
+ GPBValue_Kind_OneOfCase_BoolValue = 4,
+ GPBValue_Kind_OneOfCase_StructValue = 5,
+ GPBValue_Kind_OneOfCase_ListValue = 6,
+};
+
+// `Value` represents a dynamically typed value which can be either
+// null, a number, a string, a boolean, a recursive struct value, or a
+// list of values. A producer of value is expected to set one of that
+// variants, absence of any variant indicates an error.
+@interface GPBValue : GPBMessage
+
+@property(nonatomic, readonly) GPBValue_Kind_OneOfCase kindOneOfCase;
+
+// Represents a null value.
+@property(nonatomic, readwrite) GPBNullValue nullValue;
+
+// Represents a double value.
+@property(nonatomic, readwrite) double numberValue;
+
+// Represents a string value.
+@property(nonatomic, readwrite, copy) NSString *stringValue;
+
+// Represents a boolean value.
+@property(nonatomic, readwrite) BOOL boolValue;
+
+// Represents a structured value.
+@property(nonatomic, readwrite, strong) GPBStruct *structValue;
+
+// Represents a repeated `Value`.
+@property(nonatomic, readwrite, strong) GPBListValue *listValue;
+
+@end
+
+int32_t GPBValue_NullValue_RawValue(GPBValue *message);
+void SetGPBValue_NullValue_RawValue(GPBValue *message, int32_t value);
+
+void GPBValue_ClearKindOneOfCase(GPBValue *message);
+
+#pragma mark - GPBListValue
+
+typedef GPB_ENUM(GPBListValue_FieldNumber) {
+ GPBListValue_FieldNumber_ValuesArray = 1,
+};
+
+// `ListValue` is a wrapper around a repeated field of values.
+@interface GPBListValue : GPBMessage
+
+// Repeated field of dynamically typed values.
+// |valuesArray| contains |GPBValue|
+@property(nonatomic, readwrite, strong) NSMutableArray *valuesArray;
+
+@end
+
+CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Struct.pbobjc.m b/objectivec/google/protobuf/Struct.pbobjc.m
new file mode 100644
index 00000000..e5a8b547
--- /dev/null
+++ b/objectivec/google/protobuf/Struct.pbobjc.m
@@ -0,0 +1,284 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/struct.proto
+
+#import "GPBProtocolBuffers_RuntimeSupport.h"
+#import "google/protobuf/Struct.pbobjc.h"
+// @@protoc_insertion_point(imports)
+
+#pragma mark - GPBStructRoot
+
+@implementation GPBStructRoot
+
+@end
+
+static GPBFileDescriptor *GPBStructRoot_FileDescriptor(void) {
+ // This is called by +initialize so there is no need to worry
+ // about thread safety of the singleton.
+ static GPBFileDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
+ syntax:GPBFileSyntaxProto3];
+ }
+ return descriptor;
+}
+
+#pragma mark - Enum GPBNullValue
+
+GPBEnumDescriptor *GPBNullValue_EnumDescriptor(void) {
+ static GPBEnumDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageEnumValueDescription values[] = {
+ { .name = "NullValue", .number = GPBNullValue_NullValue },
+ };
+ descriptor = [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBNullValue)
+ values:values
+ valueCount:sizeof(values) / sizeof(GPBMessageEnumValueDescription)
+ enumVerifier:GPBNullValue_IsValidValue];
+ }
+ return descriptor;
+}
+
+BOOL GPBNullValue_IsValidValue(int32_t value__) {
+ switch (value__) {
+ case GPBNullValue_NullValue:
+ return YES;
+ default:
+ return NO;
+ }
+}
+
+#pragma mark - GPBStruct
+
+@implementation GPBStruct
+
+@dynamic fields;
+
+typedef struct GPBStruct_Storage {
+ uint32_t _has_storage_[1];
+ NSMutableDictionary *fields;
+} GPBStruct_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "fields",
+ .number = GPBStruct_FieldNumber_Fields,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldMapKeyString,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBStruct_Storage, fields),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBValue),
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBStruct class]
+ rootClass:[GPBStructRoot class]
+ file:GPBStructRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBStruct_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBValue
+
+@implementation GPBValue
+
+@dynamic kindOneOfCase;
+@dynamic nullValue;
+@dynamic numberValue;
+@dynamic stringValue;
+@dynamic boolValue;
+@dynamic structValue;
+@dynamic listValue;
+
+typedef struct GPBValue_Storage {
+ uint32_t _has_storage_[2];
+ BOOL boolValue;
+ GPBNullValue nullValue;
+ NSString *stringValue;
+ GPBStruct *structValue;
+ GPBListValue *listValue;
+ double numberValue;
+} GPBValue_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageOneofDescription oneofs[] = {
+ {
+ .name = "kind",
+ .index = -1,
+ },
+ };
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "nullValue",
+ .number = GPBValue_FieldNumber_NullValue,
+ .hasIndex = -1,
+ .flags = GPBFieldOptional | GPBFieldHasEnumDescriptor,
+ .type = GPBTypeEnum,
+ .offset = offsetof(GPBValue_Storage, nullValue),
+ .defaultValue.valueEnum = GPBNullValue_NullValue,
+ .typeSpecific.enumDescFunc = GPBNullValue_EnumDescriptor,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "numberValue",
+ .number = GPBValue_FieldNumber_NumberValue,
+ .hasIndex = -1,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeDouble,
+ .offset = offsetof(GPBValue_Storage, numberValue),
+ .defaultValue.valueDouble = 0,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "stringValue",
+ .number = GPBValue_FieldNumber_StringValue,
+ .hasIndex = -1,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBValue_Storage, stringValue),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "boolValue",
+ .number = GPBValue_FieldNumber_BoolValue,
+ .hasIndex = -1,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeBool,
+ .offset = offsetof(GPBValue_Storage, boolValue),
+ .defaultValue.valueBool = NO,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "structValue",
+ .number = GPBValue_FieldNumber_StructValue,
+ .hasIndex = -1,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBValue_Storage, structValue),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBStruct),
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "listValue",
+ .number = GPBValue_FieldNumber_ListValue,
+ .hasIndex = -1,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBValue_Storage, listValue),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBListValue),
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBValue class]
+ rootClass:[GPBStructRoot class]
+ file:GPBStructRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:oneofs
+ oneofCount:sizeof(oneofs) / sizeof(GPBMessageOneofDescription)
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBValue_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+int32_t GPBValue_NullValue_RawValue(GPBValue *message) {
+ GPBDescriptor *descriptor = [GPBValue descriptor];
+ GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBValue_FieldNumber_NullValue];
+ return GPBGetInt32IvarWithField(message, field);
+}
+
+void SetGPBValue_NullValue_RawValue(GPBValue *message, int32_t value) {
+ GPBDescriptor *descriptor = [GPBValue descriptor];
+ GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBValue_FieldNumber_NullValue];
+ GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
+}
+
+void GPBValue_ClearKindOneOfCase(GPBValue *message) {
+ GPBDescriptor *descriptor = [message descriptor];
+ GPBOneofDescriptor *oneof = descriptor->oneofs_[0];
+ GPBMaybeClearOneof(message, oneof, 0);
+}
+#pragma mark - GPBListValue
+
+@implementation GPBListValue
+
+@dynamic valuesArray;
+
+typedef struct GPBListValue_Storage {
+ uint32_t _has_storage_[1];
+ NSMutableArray *valuesArray;
+} GPBListValue_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "valuesArray",
+ .number = GPBListValue_FieldNumber_ValuesArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBListValue_Storage, valuesArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBValue),
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBListValue class]
+ rootClass:[GPBStructRoot class]
+ file:GPBStructRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBListValue_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Timestamp.pbobjc.h b/objectivec/google/protobuf/Timestamp.pbobjc.h
index c9fc9175..a81321b4 100644
--- a/objectivec/google/protobuf/Timestamp.pbobjc.h
+++ b/objectivec/google/protobuf/Timestamp.pbobjc.h
@@ -7,14 +7,20 @@
#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
#endif
-CF_EXTERN_C_BEGIN
+// @@protoc_insertion_point(imports)
-@class GPBTimestamp;
+CF_EXTERN_C_BEGIN
#pragma mark - GPBTimestampRoot
@interface GPBTimestampRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
@end
#pragma mark - GPBTimestamp
@@ -92,3 +98,5 @@ typedef GPB_ENUM(GPBTimestamp_FieldNumber) {
@end
CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Timestamp.pbobjc.m b/objectivec/google/protobuf/Timestamp.pbobjc.m
index 1c8d3c76..197dff48 100644
--- a/objectivec/google/protobuf/Timestamp.pbobjc.m
+++ b/objectivec/google/protobuf/Timestamp.pbobjc.m
@@ -2,8 +2,8 @@
// source: google/protobuf/timestamp.proto
#import "GPBProtocolBuffers_RuntimeSupport.h"
-
#import "google/protobuf/Timestamp.pbobjc.h"
+// @@protoc_insertion_point(imports)
#pragma mark - GPBTimestampRoot
@@ -83,3 +83,5 @@ typedef struct GPBTimestamp_Storage {
@end
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Type.pbobjc.h b/objectivec/google/protobuf/Type.pbobjc.h
new file mode 100644
index 00000000..652a33a7
--- /dev/null
+++ b/objectivec/google/protobuf/Type.pbobjc.h
@@ -0,0 +1,274 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/type.proto
+
+#import "GPBProtocolBuffers.h"
+
+#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000
+#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
+#endif
+
+// @@protoc_insertion_point(imports)
+
+CF_EXTERN_C_BEGIN
+
+@class GPBAny;
+@class GPBSourceContext;
+
+#pragma mark - Enum GPBField_Kind
+
+// Kind represents a basic field type.
+typedef GPB_ENUM(GPBField_Kind) {
+ GPBField_Kind_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
+ // Field type unknown.
+ GPBField_Kind_TypeUnknown = 0,
+
+ // Field type double.
+ GPBField_Kind_TypeDouble = 1,
+
+ // Field type float.
+ GPBField_Kind_TypeFloat = 2,
+
+ // Field type int64.
+ GPBField_Kind_TypeInt64 = 3,
+
+ // Field type uint64.
+ GPBField_Kind_TypeUint64 = 4,
+
+ // Field type int32.
+ GPBField_Kind_TypeInt32 = 5,
+
+ // Field type fixed64.
+ GPBField_Kind_TypeFixed64 = 6,
+
+ // Field type fixed32.
+ GPBField_Kind_TypeFixed32 = 7,
+
+ // Field type bool.
+ GPBField_Kind_TypeBool = 8,
+
+ // Field type string.
+ GPBField_Kind_TypeString = 9,
+
+ // Field type message.
+ GPBField_Kind_TypeMessage = 11,
+
+ // Field type bytes.
+ GPBField_Kind_TypeBytes = 12,
+
+ // Field type uint32.
+ GPBField_Kind_TypeUint32 = 13,
+
+ // Field type enum.
+ GPBField_Kind_TypeEnum = 14,
+
+ // Field type sfixed32.
+ GPBField_Kind_TypeSfixed32 = 15,
+
+ // Field type sfixed64.
+ GPBField_Kind_TypeSfixed64 = 16,
+
+ // Field type sint32.
+ GPBField_Kind_TypeSint32 = 17,
+
+ // Field type sint64.
+ GPBField_Kind_TypeSint64 = 18,
+};
+
+GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void);
+
+BOOL GPBField_Kind_IsValidValue(int32_t value);
+
+#pragma mark - Enum GPBField_Cardinality
+
+// Cardinality represents whether a field is optional, required, or
+// repeated.
+typedef GPB_ENUM(GPBField_Cardinality) {
+ GPBField_Cardinality_GPBUnrecognizedEnumeratorValue = kGPBUnrecognizedEnumeratorValue,
+ // The field cardinality is unknown. Typically an error condition.
+ GPBField_Cardinality_CardinalityUnknown = 0,
+
+ // For optional fields.
+ GPBField_Cardinality_CardinalityOptional = 1,
+
+ // For required fields. Not used for proto3.
+ GPBField_Cardinality_CardinalityRequired = 2,
+
+ // For repeated fields.
+ GPBField_Cardinality_CardinalityRepeated = 3,
+};
+
+GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void);
+
+BOOL GPBField_Cardinality_IsValidValue(int32_t value);
+
+
+#pragma mark - GPBTypeRoot
+
+@interface GPBTypeRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
+@end
+
+#pragma mark - GPBType
+
+typedef GPB_ENUM(GPBType_FieldNumber) {
+ GPBType_FieldNumber_Name = 1,
+ GPBType_FieldNumber_FieldsArray = 2,
+ GPBType_FieldNumber_OneofsArray = 3,
+ GPBType_FieldNumber_OptionsArray = 4,
+ GPBType_FieldNumber_SourceContext = 5,
+};
+
+// A light-weight descriptor for a proto message type.
+@interface GPBType : GPBMessage
+
+// The fully qualified message name.
+@property(nonatomic, readwrite, copy) NSString *name;
+
+// The list of fields.
+// |fieldsArray| contains |GPBField|
+@property(nonatomic, readwrite, strong) NSMutableArray *fieldsArray;
+
+// The list of oneof definitions.
+// The list of oneofs declared in this Type
+// |oneofsArray| contains |NSString|
+@property(nonatomic, readwrite, strong) NSMutableArray *oneofsArray;
+
+// The proto options.
+// |optionsArray| contains |GPBOption|
+@property(nonatomic, readwrite, strong) NSMutableArray *optionsArray;
+
+// The source context.
+@property(nonatomic, readwrite) BOOL hasSourceContext;
+@property(nonatomic, readwrite, strong) GPBSourceContext *sourceContext;
+
+@end
+
+#pragma mark - GPBField
+
+typedef GPB_ENUM(GPBField_FieldNumber) {
+ GPBField_FieldNumber_Kind = 1,
+ GPBField_FieldNumber_Cardinality = 2,
+ GPBField_FieldNumber_Number = 3,
+ GPBField_FieldNumber_Name = 4,
+ GPBField_FieldNumber_TypeURL = 6,
+ GPBField_FieldNumber_OneofIndex = 7,
+ GPBField_FieldNumber_Packed = 8,
+ GPBField_FieldNumber_OptionsArray = 9,
+};
+
+// Field represents a single field of a message type.
+@interface GPBField : GPBMessage
+
+// The field kind.
+@property(nonatomic, readwrite) GPBField_Kind kind;
+
+// The field cardinality, i.e. optional/required/repeated.
+@property(nonatomic, readwrite) GPBField_Cardinality cardinality;
+
+// The proto field number.
+@property(nonatomic, readwrite) int32_t number;
+
+// The field name.
+@property(nonatomic, readwrite, copy) NSString *name;
+
+// The type URL (without the scheme) when the type is MESSAGE or ENUM,
+// such as `type.googleapis.com/google.protobuf.Empty`.
+@property(nonatomic, readwrite, copy) NSString *typeURL;
+
+// Index in Type.oneofs. Starts at 1. Zero means no oneof mapping.
+@property(nonatomic, readwrite) int32_t oneofIndex;
+
+// Whether to use alternative packed wire representation.
+@property(nonatomic, readwrite) BOOL packed;
+
+// The proto options.
+// |optionsArray| contains |GPBOption|
+@property(nonatomic, readwrite, strong) NSMutableArray *optionsArray;
+
+@end
+
+int32_t GPBField_Kind_RawValue(GPBField *message);
+void SetGPBField_Kind_RawValue(GPBField *message, int32_t value);
+
+int32_t GPBField_Cardinality_RawValue(GPBField *message);
+void SetGPBField_Cardinality_RawValue(GPBField *message, int32_t value);
+
+#pragma mark - GPBEnum
+
+typedef GPB_ENUM(GPBEnum_FieldNumber) {
+ GPBEnum_FieldNumber_Name = 1,
+ GPBEnum_FieldNumber_EnumvalueArray = 2,
+ GPBEnum_FieldNumber_OptionsArray = 3,
+ GPBEnum_FieldNumber_SourceContext = 4,
+};
+
+// Enum type definition.
+@interface GPBEnum : GPBMessage
+
+// Enum type name.
+@property(nonatomic, readwrite, copy) NSString *name;
+
+// Enum value definitions.
+// |enumvalueArray| contains |GPBEnumValue|
+@property(nonatomic, readwrite, strong) NSMutableArray *enumvalueArray;
+
+// Proto options for the enum type.
+// |optionsArray| contains |GPBOption|
+@property(nonatomic, readwrite, strong) NSMutableArray *optionsArray;
+
+// The source context.
+@property(nonatomic, readwrite) BOOL hasSourceContext;
+@property(nonatomic, readwrite, strong) GPBSourceContext *sourceContext;
+
+@end
+
+#pragma mark - GPBEnumValue
+
+typedef GPB_ENUM(GPBEnumValue_FieldNumber) {
+ GPBEnumValue_FieldNumber_Name = 1,
+ GPBEnumValue_FieldNumber_Number = 2,
+ GPBEnumValue_FieldNumber_OptionsArray = 3,
+};
+
+// Enum value definition.
+@interface GPBEnumValue : GPBMessage
+
+// Enum value name.
+@property(nonatomic, readwrite, copy) NSString *name;
+
+// Enum value number.
+@property(nonatomic, readwrite) int32_t number;
+
+// Proto options for the enum value.
+// |optionsArray| contains |GPBOption|
+@property(nonatomic, readwrite, strong) NSMutableArray *optionsArray;
+
+@end
+
+#pragma mark - GPBOption
+
+typedef GPB_ENUM(GPBOption_FieldNumber) {
+ GPBOption_FieldNumber_Name = 1,
+ GPBOption_FieldNumber_Value = 2,
+};
+
+// Proto option attached to messages/fields/enums etc.
+@interface GPBOption : GPBMessage
+
+// Proto option name.
+@property(nonatomic, readwrite, copy) NSString *name;
+
+// Proto option value.
+@property(nonatomic, readwrite) BOOL hasValue;
+@property(nonatomic, readwrite, strong) GPBAny *value;
+
+@end
+
+CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Type.pbobjc.m b/objectivec/google/protobuf/Type.pbobjc.m
new file mode 100644
index 00000000..182370c8
--- /dev/null
+++ b/objectivec/google/protobuf/Type.pbobjc.m
@@ -0,0 +1,628 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/type.proto
+
+#import "GPBProtocolBuffers_RuntimeSupport.h"
+#import "google/protobuf/Type.pbobjc.h"
+#import "google/protobuf/Any.pbobjc.h"
+#import "google/protobuf/SourceContext.pbobjc.h"
+// @@protoc_insertion_point(imports)
+
+#pragma mark - GPBTypeRoot
+
+@implementation GPBTypeRoot
+
++ (GPBExtensionRegistry*)extensionRegistry {
+ // This is called by +initialize so there is no need to worry
+ // about thread safety and initialization of registry.
+ static GPBExtensionRegistry* registry = nil;
+ if (!registry) {
+ registry = [[GPBExtensionRegistry alloc] init];
+ static GPBExtensionDescription descriptions[] = {
+ };
+ #pragma unused (descriptions)
+ [registry addExtensions:[GPBAnyRoot extensionRegistry]];
+ [registry addExtensions:[GPBSourceContextRoot extensionRegistry]];
+ }
+ return registry;
+}
+
+@end
+
+static GPBFileDescriptor *GPBTypeRoot_FileDescriptor(void) {
+ // This is called by +initialize so there is no need to worry
+ // about thread safety of the singleton.
+ static GPBFileDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
+ syntax:GPBFileSyntaxProto3];
+ }
+ return descriptor;
+}
+
+#pragma mark - GPBType
+
+@implementation GPBType
+
+@dynamic name;
+@dynamic fieldsArray;
+@dynamic oneofsArray;
+@dynamic optionsArray;
+@dynamic hasSourceContext, sourceContext;
+
+typedef struct GPBType_Storage {
+ uint32_t _has_storage_[1];
+ NSString *name;
+ NSMutableArray *fieldsArray;
+ NSMutableArray *oneofsArray;
+ NSMutableArray *optionsArray;
+ GPBSourceContext *sourceContext;
+} GPBType_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "name",
+ .number = GPBType_FieldNumber_Name,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBType_Storage, name),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "fieldsArray",
+ .number = GPBType_FieldNumber_FieldsArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBType_Storage, fieldsArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBField),
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "oneofsArray",
+ .number = GPBType_FieldNumber_OneofsArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBType_Storage, oneofsArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "optionsArray",
+ .number = GPBType_FieldNumber_OptionsArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBType_Storage, optionsArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBOption),
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "sourceContext",
+ .number = GPBType_FieldNumber_SourceContext,
+ .hasIndex = 4,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBType_Storage, sourceContext),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBSourceContext),
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBType class]
+ rootClass:[GPBTypeRoot class]
+ file:GPBTypeRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBType_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBField
+
+@implementation GPBField
+
+@dynamic kind;
+@dynamic cardinality;
+@dynamic number;
+@dynamic name;
+@dynamic typeURL;
+@dynamic oneofIndex;
+@dynamic packed;
+@dynamic optionsArray;
+
+typedef struct GPBField_Storage {
+ uint32_t _has_storage_[1];
+ BOOL packed;
+ GPBField_Kind kind;
+ GPBField_Cardinality cardinality;
+ int32_t number;
+ int32_t oneofIndex;
+ NSString *name;
+ NSString *typeURL;
+ NSMutableArray *optionsArray;
+} GPBField_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "kind",
+ .number = GPBField_FieldNumber_Kind,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional | GPBFieldHasEnumDescriptor,
+ .type = GPBTypeEnum,
+ .offset = offsetof(GPBField_Storage, kind),
+ .defaultValue.valueEnum = GPBField_Kind_TypeUnknown,
+ .typeSpecific.enumDescFunc = GPBField_Kind_EnumDescriptor,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "cardinality",
+ .number = GPBField_FieldNumber_Cardinality,
+ .hasIndex = 1,
+ .flags = GPBFieldOptional | GPBFieldHasEnumDescriptor,
+ .type = GPBTypeEnum,
+ .offset = offsetof(GPBField_Storage, cardinality),
+ .defaultValue.valueEnum = GPBField_Cardinality_CardinalityUnknown,
+ .typeSpecific.enumDescFunc = GPBField_Cardinality_EnumDescriptor,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "number",
+ .number = GPBField_FieldNumber_Number,
+ .hasIndex = 2,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeInt32,
+ .offset = offsetof(GPBField_Storage, number),
+ .defaultValue.valueInt32 = 0,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "name",
+ .number = GPBField_FieldNumber_Name,
+ .hasIndex = 3,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBField_Storage, name),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "typeURL",
+ .number = GPBField_FieldNumber_TypeURL,
+ .hasIndex = 4,
+ .flags = GPBFieldOptional | GPBFieldTextFormatNameCustom,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBField_Storage, typeURL),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "oneofIndex",
+ .number = GPBField_FieldNumber_OneofIndex,
+ .hasIndex = 5,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeInt32,
+ .offset = offsetof(GPBField_Storage, oneofIndex),
+ .defaultValue.valueInt32 = 0,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "packed",
+ .number = GPBField_FieldNumber_Packed,
+ .hasIndex = 6,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeBool,
+ .offset = offsetof(GPBField_Storage, packed),
+ .defaultValue.valueBool = NO,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "optionsArray",
+ .number = GPBField_FieldNumber_OptionsArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBField_Storage, optionsArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBOption),
+ .fieldOptions = NULL,
+ },
+ };
+ static GPBMessageEnumDescription enums[] = {
+ { .enumDescriptorFunc = GPBField_Kind_EnumDescriptor },
+ { .enumDescriptorFunc = GPBField_Cardinality_EnumDescriptor },
+ };
+#if GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
+ const char *extraTextFormatInfo = NULL;
+#else
+ static const char *extraTextFormatInfo = "\001\006\004\241!!\000";
+#endif // GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBField class]
+ rootClass:[GPBTypeRoot class]
+ file:GPBTypeRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:enums
+ enumCount:sizeof(enums) / sizeof(GPBMessageEnumDescription)
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBField_Storage)
+ wireFormat:NO
+ extraTextFormatInfo:extraTextFormatInfo];
+ }
+ return descriptor;
+}
+
+@end
+
+int32_t GPBField_Kind_RawValue(GPBField *message) {
+ GPBDescriptor *descriptor = [GPBField descriptor];
+ GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Kind];
+ return GPBGetInt32IvarWithField(message, field);
+}
+
+void SetGPBField_Kind_RawValue(GPBField *message, int32_t value) {
+ GPBDescriptor *descriptor = [GPBField descriptor];
+ GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Kind];
+ GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
+}
+
+int32_t GPBField_Cardinality_RawValue(GPBField *message) {
+ GPBDescriptor *descriptor = [GPBField descriptor];
+ GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Cardinality];
+ return GPBGetInt32IvarWithField(message, field);
+}
+
+void SetGPBField_Cardinality_RawValue(GPBField *message, int32_t value) {
+ GPBDescriptor *descriptor = [GPBField descriptor];
+ GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBField_FieldNumber_Cardinality];
+ GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
+}
+
+#pragma mark - Enum GPBField_Kind
+
+GPBEnumDescriptor *GPBField_Kind_EnumDescriptor(void) {
+ static GPBEnumDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageEnumValueDescription values[] = {
+ { .name = "TypeUnknown", .number = GPBField_Kind_TypeUnknown },
+ { .name = "TypeDouble", .number = GPBField_Kind_TypeDouble },
+ { .name = "TypeFloat", .number = GPBField_Kind_TypeFloat },
+ { .name = "TypeInt64", .number = GPBField_Kind_TypeInt64 },
+ { .name = "TypeUint64", .number = GPBField_Kind_TypeUint64 },
+ { .name = "TypeInt32", .number = GPBField_Kind_TypeInt32 },
+ { .name = "TypeFixed64", .number = GPBField_Kind_TypeFixed64 },
+ { .name = "TypeFixed32", .number = GPBField_Kind_TypeFixed32 },
+ { .name = "TypeBool", .number = GPBField_Kind_TypeBool },
+ { .name = "TypeString", .number = GPBField_Kind_TypeString },
+ { .name = "TypeMessage", .number = GPBField_Kind_TypeMessage },
+ { .name = "TypeBytes", .number = GPBField_Kind_TypeBytes },
+ { .name = "TypeUint32", .number = GPBField_Kind_TypeUint32 },
+ { .name = "TypeEnum", .number = GPBField_Kind_TypeEnum },
+ { .name = "TypeSfixed32", .number = GPBField_Kind_TypeSfixed32 },
+ { .name = "TypeSfixed64", .number = GPBField_Kind_TypeSfixed64 },
+ { .name = "TypeSint32", .number = GPBField_Kind_TypeSint32 },
+ { .name = "TypeSint64", .number = GPBField_Kind_TypeSint64 },
+ };
+ descriptor = [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBField_Kind)
+ values:values
+ valueCount:sizeof(values) / sizeof(GPBMessageEnumValueDescription)
+ enumVerifier:GPBField_Kind_IsValidValue];
+ }
+ return descriptor;
+}
+
+BOOL GPBField_Kind_IsValidValue(int32_t value__) {
+ switch (value__) {
+ case GPBField_Kind_TypeUnknown:
+ case GPBField_Kind_TypeDouble:
+ case GPBField_Kind_TypeFloat:
+ case GPBField_Kind_TypeInt64:
+ case GPBField_Kind_TypeUint64:
+ case GPBField_Kind_TypeInt32:
+ case GPBField_Kind_TypeFixed64:
+ case GPBField_Kind_TypeFixed32:
+ case GPBField_Kind_TypeBool:
+ case GPBField_Kind_TypeString:
+ case GPBField_Kind_TypeMessage:
+ case GPBField_Kind_TypeBytes:
+ case GPBField_Kind_TypeUint32:
+ case GPBField_Kind_TypeEnum:
+ case GPBField_Kind_TypeSfixed32:
+ case GPBField_Kind_TypeSfixed64:
+ case GPBField_Kind_TypeSint32:
+ case GPBField_Kind_TypeSint64:
+ return YES;
+ default:
+ return NO;
+ }
+}
+
+#pragma mark - Enum GPBField_Cardinality
+
+GPBEnumDescriptor *GPBField_Cardinality_EnumDescriptor(void) {
+ static GPBEnumDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageEnumValueDescription values[] = {
+ { .name = "CardinalityUnknown", .number = GPBField_Cardinality_CardinalityUnknown },
+ { .name = "CardinalityOptional", .number = GPBField_Cardinality_CardinalityOptional },
+ { .name = "CardinalityRequired", .number = GPBField_Cardinality_CardinalityRequired },
+ { .name = "CardinalityRepeated", .number = GPBField_Cardinality_CardinalityRepeated },
+ };
+ descriptor = [GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GPBField_Cardinality)
+ values:values
+ valueCount:sizeof(values) / sizeof(GPBMessageEnumValueDescription)
+ enumVerifier:GPBField_Cardinality_IsValidValue];
+ }
+ return descriptor;
+}
+
+BOOL GPBField_Cardinality_IsValidValue(int32_t value__) {
+ switch (value__) {
+ case GPBField_Cardinality_CardinalityUnknown:
+ case GPBField_Cardinality_CardinalityOptional:
+ case GPBField_Cardinality_CardinalityRequired:
+ case GPBField_Cardinality_CardinalityRepeated:
+ return YES;
+ default:
+ return NO;
+ }
+}
+
+#pragma mark - GPBEnum
+
+@implementation GPBEnum
+
+@dynamic name;
+@dynamic enumvalueArray;
+@dynamic optionsArray;
+@dynamic hasSourceContext, sourceContext;
+
+typedef struct GPBEnum_Storage {
+ uint32_t _has_storage_[1];
+ NSString *name;
+ NSMutableArray *enumvalueArray;
+ NSMutableArray *optionsArray;
+ GPBSourceContext *sourceContext;
+} GPBEnum_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "name",
+ .number = GPBEnum_FieldNumber_Name,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBEnum_Storage, name),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "enumvalueArray",
+ .number = GPBEnum_FieldNumber_EnumvalueArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBEnum_Storage, enumvalueArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBEnumValue),
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "optionsArray",
+ .number = GPBEnum_FieldNumber_OptionsArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBEnum_Storage, optionsArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBOption),
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "sourceContext",
+ .number = GPBEnum_FieldNumber_SourceContext,
+ .hasIndex = 3,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBEnum_Storage, sourceContext),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBSourceContext),
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBEnum class]
+ rootClass:[GPBTypeRoot class]
+ file:GPBTypeRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBEnum_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBEnumValue
+
+@implementation GPBEnumValue
+
+@dynamic name;
+@dynamic number;
+@dynamic optionsArray;
+
+typedef struct GPBEnumValue_Storage {
+ uint32_t _has_storage_[1];
+ int32_t number;
+ NSString *name;
+ NSMutableArray *optionsArray;
+} GPBEnumValue_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "name",
+ .number = GPBEnumValue_FieldNumber_Name,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBEnumValue_Storage, name),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "number",
+ .number = GPBEnumValue_FieldNumber_Number,
+ .hasIndex = 1,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeInt32,
+ .offset = offsetof(GPBEnumValue_Storage, number),
+ .defaultValue.valueInt32 = 0,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "optionsArray",
+ .number = GPBEnumValue_FieldNumber_OptionsArray,
+ .hasIndex = GPBNoHasBit,
+ .flags = GPBFieldRepeated,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBEnumValue_Storage, optionsArray),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBOption),
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBEnumValue class]
+ rootClass:[GPBTypeRoot class]
+ file:GPBTypeRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBEnumValue_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBOption
+
+@implementation GPBOption
+
+@dynamic name;
+@dynamic hasValue, value;
+
+typedef struct GPBOption_Storage {
+ uint32_t _has_storage_[1];
+ NSString *name;
+ GPBAny *value;
+} GPBOption_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "name",
+ .number = GPBOption_FieldNumber_Name,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBOption_Storage, name),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ {
+ .name = "value",
+ .number = GPBOption_FieldNumber_Value,
+ .hasIndex = 1,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeMessage,
+ .offset = offsetof(GPBOption_Storage, value),
+ .defaultValue.valueMessage = nil,
+ .typeSpecific.className = GPBStringifySymbol(GPBAny),
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBOption class]
+ rootClass:[GPBTypeRoot class]
+ file:GPBTypeRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBOption_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Wrappers.pbobjc.h b/objectivec/google/protobuf/Wrappers.pbobjc.h
new file mode 100644
index 00000000..227d958e
--- /dev/null
+++ b/objectivec/google/protobuf/Wrappers.pbobjc.h
@@ -0,0 +1,154 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/wrappers.proto
+
+#import "GPBProtocolBuffers.h"
+
+#if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30000
+#error This file was generated by a different version of protoc-gen-objc which is incompatible with your Protocol Buffer sources.
+#endif
+
+// @@protoc_insertion_point(imports)
+
+CF_EXTERN_C_BEGIN
+
+
+#pragma mark - GPBWrappersRoot
+
+@interface GPBWrappersRoot : GPBRootObject
+
+// The base class provides:
+// + (GPBExtensionRegistry *)extensionRegistry;
+// which is an GPBExtensionRegistry that includes all the extensions defined by
+// this file and all files that it depends on.
+
+@end
+
+#pragma mark - GPBDoubleValue
+
+typedef GPB_ENUM(GPBDoubleValue_FieldNumber) {
+ GPBDoubleValue_FieldNumber_Value = 1,
+};
+
+// Wrapper message for double.
+@interface GPBDoubleValue : GPBMessage
+
+// The double value.
+@property(nonatomic, readwrite) double value;
+
+@end
+
+#pragma mark - GPBFloatValue
+
+typedef GPB_ENUM(GPBFloatValue_FieldNumber) {
+ GPBFloatValue_FieldNumber_Value = 1,
+};
+
+// Wrapper message for float.
+@interface GPBFloatValue : GPBMessage
+
+// The float value.
+@property(nonatomic, readwrite) float value;
+
+@end
+
+#pragma mark - GPBInt64Value
+
+typedef GPB_ENUM(GPBInt64Value_FieldNumber) {
+ GPBInt64Value_FieldNumber_Value = 1,
+};
+
+// Wrapper message for int64.
+@interface GPBInt64Value : GPBMessage
+
+// The int64 value.
+@property(nonatomic, readwrite) int64_t value;
+
+@end
+
+#pragma mark - GPBUInt64Value
+
+typedef GPB_ENUM(GPBUInt64Value_FieldNumber) {
+ GPBUInt64Value_FieldNumber_Value = 1,
+};
+
+// Wrapper message for uint64.
+@interface GPBUInt64Value : GPBMessage
+
+// The uint64 value.
+@property(nonatomic, readwrite) uint64_t value;
+
+@end
+
+#pragma mark - GPBInt32Value
+
+typedef GPB_ENUM(GPBInt32Value_FieldNumber) {
+ GPBInt32Value_FieldNumber_Value = 1,
+};
+
+// Wrapper message for int32.
+@interface GPBInt32Value : GPBMessage
+
+// The int32 value.
+@property(nonatomic, readwrite) int32_t value;
+
+@end
+
+#pragma mark - GPBUInt32Value
+
+typedef GPB_ENUM(GPBUInt32Value_FieldNumber) {
+ GPBUInt32Value_FieldNumber_Value = 1,
+};
+
+// Wrapper message for uint32.
+@interface GPBUInt32Value : GPBMessage
+
+// The uint32 value.
+@property(nonatomic, readwrite) uint32_t value;
+
+@end
+
+#pragma mark - GPBBoolValue
+
+typedef GPB_ENUM(GPBBoolValue_FieldNumber) {
+ GPBBoolValue_FieldNumber_Value = 1,
+};
+
+// Wrapper message for bool.
+@interface GPBBoolValue : GPBMessage
+
+// The bool value.
+@property(nonatomic, readwrite) BOOL value;
+
+@end
+
+#pragma mark - GPBStringValue
+
+typedef GPB_ENUM(GPBStringValue_FieldNumber) {
+ GPBStringValue_FieldNumber_Value = 1,
+};
+
+// Wrapper message for string.
+@interface GPBStringValue : GPBMessage
+
+// The string value.
+@property(nonatomic, readwrite, copy) NSString *value;
+
+@end
+
+#pragma mark - GPBBytesValue
+
+typedef GPB_ENUM(GPBBytesValue_FieldNumber) {
+ GPBBytesValue_FieldNumber_Value = 1,
+};
+
+// Wrapper message for bytes.
+@interface GPBBytesValue : GPBMessage
+
+// The bytes value.
+@property(nonatomic, readwrite, copy) NSData *value;
+
+@end
+
+CF_EXTERN_C_END
+
+// @@protoc_insertion_point(global_scope)
diff --git a/objectivec/google/protobuf/Wrappers.pbobjc.m b/objectivec/google/protobuf/Wrappers.pbobjc.m
new file mode 100644
index 00000000..6c342850
--- /dev/null
+++ b/objectivec/google/protobuf/Wrappers.pbobjc.m
@@ -0,0 +1,458 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/wrappers.proto
+
+#import "GPBProtocolBuffers_RuntimeSupport.h"
+#import "google/protobuf/Wrappers.pbobjc.h"
+// @@protoc_insertion_point(imports)
+
+#pragma mark - GPBWrappersRoot
+
+@implementation GPBWrappersRoot
+
+@end
+
+static GPBFileDescriptor *GPBWrappersRoot_FileDescriptor(void) {
+ // This is called by +initialize so there is no need to worry
+ // about thread safety of the singleton.
+ static GPBFileDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
+ syntax:GPBFileSyntaxProto3];
+ }
+ return descriptor;
+}
+
+#pragma mark - GPBDoubleValue
+
+@implementation GPBDoubleValue
+
+@dynamic value;
+
+typedef struct GPBDoubleValue_Storage {
+ uint32_t _has_storage_[1];
+ double value;
+} GPBDoubleValue_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "value",
+ .number = GPBDoubleValue_FieldNumber_Value,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeDouble,
+ .offset = offsetof(GPBDoubleValue_Storage, value),
+ .defaultValue.valueDouble = 0,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBDoubleValue class]
+ rootClass:[GPBWrappersRoot class]
+ file:GPBWrappersRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBDoubleValue_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBFloatValue
+
+@implementation GPBFloatValue
+
+@dynamic value;
+
+typedef struct GPBFloatValue_Storage {
+ uint32_t _has_storage_[1];
+ float value;
+} GPBFloatValue_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "value",
+ .number = GPBFloatValue_FieldNumber_Value,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeFloat,
+ .offset = offsetof(GPBFloatValue_Storage, value),
+ .defaultValue.valueFloat = 0,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBFloatValue class]
+ rootClass:[GPBWrappersRoot class]
+ file:GPBWrappersRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBFloatValue_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBInt64Value
+
+@implementation GPBInt64Value
+
+@dynamic value;
+
+typedef struct GPBInt64Value_Storage {
+ uint32_t _has_storage_[1];
+ int64_t value;
+} GPBInt64Value_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "value",
+ .number = GPBInt64Value_FieldNumber_Value,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeInt64,
+ .offset = offsetof(GPBInt64Value_Storage, value),
+ .defaultValue.valueInt64 = 0LL,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBInt64Value class]
+ rootClass:[GPBWrappersRoot class]
+ file:GPBWrappersRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBInt64Value_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBUInt64Value
+
+@implementation GPBUInt64Value
+
+@dynamic value;
+
+typedef struct GPBUInt64Value_Storage {
+ uint32_t _has_storage_[1];
+ uint64_t value;
+} GPBUInt64Value_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "value",
+ .number = GPBUInt64Value_FieldNumber_Value,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeUInt64,
+ .offset = offsetof(GPBUInt64Value_Storage, value),
+ .defaultValue.valueUInt64 = 0ULL,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBUInt64Value class]
+ rootClass:[GPBWrappersRoot class]
+ file:GPBWrappersRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBUInt64Value_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBInt32Value
+
+@implementation GPBInt32Value
+
+@dynamic value;
+
+typedef struct GPBInt32Value_Storage {
+ uint32_t _has_storage_[1];
+ int32_t value;
+} GPBInt32Value_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "value",
+ .number = GPBInt32Value_FieldNumber_Value,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeInt32,
+ .offset = offsetof(GPBInt32Value_Storage, value),
+ .defaultValue.valueInt32 = 0,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBInt32Value class]
+ rootClass:[GPBWrappersRoot class]
+ file:GPBWrappersRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBInt32Value_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBUInt32Value
+
+@implementation GPBUInt32Value
+
+@dynamic value;
+
+typedef struct GPBUInt32Value_Storage {
+ uint32_t _has_storage_[1];
+ uint32_t value;
+} GPBUInt32Value_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "value",
+ .number = GPBUInt32Value_FieldNumber_Value,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeUInt32,
+ .offset = offsetof(GPBUInt32Value_Storage, value),
+ .defaultValue.valueUInt32 = 0U,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBUInt32Value class]
+ rootClass:[GPBWrappersRoot class]
+ file:GPBWrappersRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBUInt32Value_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBBoolValue
+
+@implementation GPBBoolValue
+
+@dynamic value;
+
+typedef struct GPBBoolValue_Storage {
+ uint32_t _has_storage_[1];
+ BOOL value;
+} GPBBoolValue_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "value",
+ .number = GPBBoolValue_FieldNumber_Value,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeBool,
+ .offset = offsetof(GPBBoolValue_Storage, value),
+ .defaultValue.valueBool = NO,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBBoolValue class]
+ rootClass:[GPBWrappersRoot class]
+ file:GPBWrappersRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBBoolValue_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBStringValue
+
+@implementation GPBStringValue
+
+@dynamic value;
+
+typedef struct GPBStringValue_Storage {
+ uint32_t _has_storage_[1];
+ NSString *value;
+} GPBStringValue_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "value",
+ .number = GPBStringValue_FieldNumber_Value,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeString,
+ .offset = offsetof(GPBStringValue_Storage, value),
+ .defaultValue.valueString = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBStringValue class]
+ rootClass:[GPBWrappersRoot class]
+ file:GPBWrappersRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBStringValue_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+#pragma mark - GPBBytesValue
+
+@implementation GPBBytesValue
+
+@dynamic value;
+
+typedef struct GPBBytesValue_Storage {
+ uint32_t _has_storage_[1];
+ NSData *value;
+} GPBBytesValue_Storage;
+
+// This method is threadsafe because it is initially called
+// in +initialize for each subclass.
++ (GPBDescriptor *)descriptor {
+ static GPBDescriptor *descriptor = NULL;
+ if (!descriptor) {
+ static GPBMessageFieldDescription fields[] = {
+ {
+ .name = "value",
+ .number = GPBBytesValue_FieldNumber_Value,
+ .hasIndex = 0,
+ .flags = GPBFieldOptional,
+ .type = GPBTypeData,
+ .offset = offsetof(GPBBytesValue_Storage, value),
+ .defaultValue.valueData = nil,
+ .typeSpecific.className = NULL,
+ .fieldOptions = NULL,
+ },
+ };
+ descriptor = [GPBDescriptor allocDescriptorForClass:[GPBBytesValue class]
+ rootClass:[GPBWrappersRoot class]
+ file:GPBWrappersRoot_FileDescriptor()
+ fields:fields
+ fieldCount:sizeof(fields) / sizeof(GPBMessageFieldDescription)
+ oneofs:NULL
+ oneofCount:0
+ enums:NULL
+ enumCount:0
+ ranges:NULL
+ rangeCount:0
+ storageSize:sizeof(GPBBytesValue_Storage)
+ wireFormat:NO];
+ }
+ return descriptor;
+}
+
+@end
+
+
+// @@protoc_insertion_point(global_scope)
diff --git a/post_process_dist.sh b/post_process_dist.sh
index 3c01ed8f..05113af1 100755
--- a/post_process_dist.sh
+++ b/post_process_dist.sh
@@ -27,7 +27,7 @@ fi
set -ex
-LANGUAGES="cpp java javanano python ruby"
+LANGUAGES="cpp csharp java javanano objectivec python ruby"
BASENAME=`basename $1 .tar.gz`
VERSION=${BASENAME:9}
diff --git a/protobuf-lite.pc.in b/protobuf-lite.pc.in
index 29c218e5..80f1f461 100644
--- a/protobuf-lite.pc.in
+++ b/protobuf-lite.pc.in
@@ -8,6 +8,4 @@ Description: Google's Data Interchange Format
Version: @VERSION@
Libs: -L${libdir} -lprotobuf-lite @PTHREAD_CFLAGS@ @PTHREAD_LIBS@
Cflags: -I${includedir} @PTHREAD_CFLAGS@
-# Commented out because it crashes pkg-config *sigh*:
-# http://bugs.freedesktop.org/show_bug.cgi?id=13265
-# Conflicts: protobuf
+Conflicts: protobuf
diff --git a/protobuf.pc.in b/protobuf.pc.in
index 29f24877..49014903 100644
--- a/protobuf.pc.in
+++ b/protobuf.pc.in
@@ -9,6 +9,4 @@ Version: @VERSION@
Libs: -L${libdir} -lprotobuf @PTHREAD_CFLAGS@ @PTHREAD_LIBS@
Libs.private: @LIBS@
Cflags: -I${includedir} @PTHREAD_CFLAGS@
-# Commented out because it crashes pkg-config *sigh*:
-# http://bugs.freedesktop.org/show_bug.cgi?id=13265
-# Conflicts: protobuf-lite
+Conflicts: protobuf-lite
diff --git a/protoc-artifacts/Dockerfile b/protoc-artifacts/Dockerfile
new file mode 100644
index 00000000..fd35b89f
--- /dev/null
+++ b/protoc-artifacts/Dockerfile
@@ -0,0 +1,40 @@
+FROM centos:6.6
+
+RUN yum install -y git \
+ tar \
+ wget \
+ make \
+ autoconf \
+ curl-devel \
+ unzip \
+ automake \
+ libtool \
+ glibc-static.i686 \
+ glibc-devel \
+ glibc-devel.i686
+
+# Install Java 8
+RUN wget -q --no-cookies --no-check-certificate \
+ --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz" \
+ -O - | tar xz -C /var/local
+ENV JAVA_HOME /var/local/jdk1.8.0_45
+ENV PATH $JAVA_HOME/bin:$PATH
+
+# Install Maven
+RUN wget -q http://apache.cs.utah.edu/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz -O - | \
+ tar xz -C /var/local
+ENV PATH /var/local/apache-maven-3.3.3/bin:$PATH
+
+# Install GCC 4.7 to support -static-libstdc++
+RUN wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -P /etc/yum.repos.d
+RUN bash -c 'echo "enabled=1" >> /etc/yum.repos.d/devtools-1.1.repo'
+RUN bash -c "sed -e 's/\$basearch/i386/g' /etc/yum.repos.d/devtools-1.1.repo > /etc/yum.repos.d/devtools-i386-1.1.repo"
+RUN sed -e 's/testing-/testing-i386-/g' -i /etc/yum.repos.d/devtools-i386-1.1.repo
+RUN yum install -y devtoolset-1.1 \
+ devtoolset-1.1-libstdc++-devel \
+ devtoolset-1.1-libstdc++-devel.i686
+
+RUN git clone --depth 1 https://github.com/google/protobuf.git
+
+# Start in devtoolset environment that uses GCC 4.7
+CMD ["scl", "enable", "devtoolset-1.1", "bash"]
diff --git a/protoc-artifacts/README.md b/protoc-artifacts/README.md
index 1ed1435e..06091cfe 100644
--- a/protoc-artifacts/README.md
+++ b/protoc-artifacts/README.md
@@ -87,6 +87,23 @@ When you have done deployment for all platforms, go to
https://oss.sonatype.org/#stagingRepositories, verify that the staging
repository has all the binaries, close and release this repository.
+### Tips for deploying on Linux
+We build on Centos 6.6 to provide a good compatibility for not very new
+systems. We have provided a ``Dockerfile`` under this directory to build the
+environment. It has been tested with Docker 1.6.1.
+
+To build a image:
+```
+$ docker build -t protoc-artifacts .
+```
+
+To run the image:
+```
+$ docker run -it --rm=true protoc-artifacts
+```
+
+The Protobuf repository has been cloned into ``/protobuf``.
+
### Tips for deploying on Windows
Under Windows the following error may occur: ``gpg: cannot open tty `no tty':
No such file or directory``. This can be fixed by configuring gpg through an
@@ -118,7 +135,9 @@ stored:
### Tested build environments
We have succesfully built artifacts on the following environments:
-- Linux x86_32 and x86_64: Ubuntu 14.04.2 64-bit
+- Linux x86_32 and x86_64:
+ - Centos 6.6 (within Docker 1.6.1)
+ - Ubuntu 14.04.2 64-bit
- Windows x86_32: MSYS with ``mingw32-gcc-g++ 4.8.1-4`` on Windows 7 64-bit
- Windows x86_64: Cygwin64 with ``mingw64-x86_64-gcc-g++ 4.8.3-1`` on Windows 7 64-bit
- Mac OS X x86_32 and x86_64: Mac OS X 10.9.5
diff --git a/protoc-artifacts/pom.xml b/protoc-artifacts/pom.xml
index fad81b57..52a7d2d6 100644
--- a/protoc-artifacts/pom.xml
+++ b/protoc-artifacts/pom.xml
@@ -10,7 +10,7 @@
</parent>
<groupId>com.google.protobuf</groupId>
<artifactId>protoc</artifactId>
- <version>3.0.0-alpha-3-pre</version>
+ <version>3.0.0-alpha-4-pre</version>
<packaging>pom</packaging>
<name>Protobuf Compiler</name>
<description>
diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py
index 1345bd5f..3f67dfc7 100755
--- a/python/google/protobuf/__init__.py
+++ b/python/google/protobuf/__init__.py
@@ -32,4 +32,4 @@
#
# Copyright 2007 Google Inc. All Rights Reserved.
-__version__ = '3.0.0a3.dev0'
+__version__ = '3.0.0a4.dev0'
diff --git a/python/google/protobuf/descriptor.py b/python/google/protobuf/descriptor.py
index f7a58ca0..970b1a88 100755
--- a/python/google/protobuf/descriptor.py
+++ b/python/google/protobuf/descriptor.py
@@ -245,9 +245,6 @@ class Descriptor(_NestedDescriptorBase):
is_extendable: Does this type define any extension ranges?
- options: (descriptor_pb2.MessageOptions) Protocol message options or None
- to use default message options.
-
oneofs: (list of OneofDescriptor) The list of descriptors for oneof fields
in this message.
oneofs_by_name: (dict str -> OneofDescriptor) Same objects as in |oneofs|,
@@ -265,7 +262,7 @@ class Descriptor(_NestedDescriptorBase):
file=None, serialized_start=None, serialized_end=None,
syntax=None):
_message.Message._CheckCalledFromGeneratedFile()
- return _message.Message._GetMessageDescriptor(full_name)
+ return _message.default_pool.FindMessageTypeByName(full_name)
# NOTE(tmarek): The file argument redefining a builtin is nothing we can
# fix right now since we don't know how many clients already rely on the
@@ -495,9 +492,9 @@ class FieldDescriptor(DescriptorBase):
has_default_value=True, containing_oneof=None):
_message.Message._CheckCalledFromGeneratedFile()
if is_extension:
- return _message.Message._GetExtensionDescriptor(full_name)
+ return _message.default_pool.FindExtensionByName(full_name)
else:
- return _message.Message._GetFieldDescriptor(full_name)
+ return _message.default_pool.FindFieldByName(full_name)
def __init__(self, name, full_name, index, number, type, cpp_type, label,
default_value, message_type, enum_type, containing_type,
@@ -528,14 +525,9 @@ class FieldDescriptor(DescriptorBase):
self.containing_oneof = containing_oneof
if api_implementation.Type() == 'cpp':
if is_extension:
- # pylint: disable=protected-access
- self._cdescriptor = (
- _message.Message._GetExtensionDescriptor(full_name))
- # pylint: enable=protected-access
+ self._cdescriptor = _message.default_pool.FindExtensionByName(full_name)
else:
- # pylint: disable=protected-access
- self._cdescriptor = _message.Message._GetFieldDescriptor(full_name)
- # pylint: enable=protected-access
+ self._cdescriptor = _message.default_pool.FindFieldByName(full_name)
else:
self._cdescriptor = None
@@ -592,7 +584,7 @@ class EnumDescriptor(_NestedDescriptorBase):
containing_type=None, options=None, file=None,
serialized_start=None, serialized_end=None):
_message.Message._CheckCalledFromGeneratedFile()
- return _message.Message._GetEnumDescriptor(full_name)
+ return _message.default_pool.FindEnumTypeByName(full_name)
def __init__(self, name, full_name, filename, values,
containing_type=None, options=None, file=None,
@@ -677,7 +669,7 @@ class OneofDescriptor(object):
def __new__(cls, name, full_name, index, containing_type, fields):
_message.Message._CheckCalledFromGeneratedFile()
- return _message.Message._GetOneofDescriptor(full_name)
+ return _message.default_pool.FindOneofByName(full_name)
def __init__(self, name, full_name, index, containing_type, fields):
"""Arguments are as described in the attribute description above."""
@@ -788,12 +780,8 @@ class FileDescriptor(DescriptorBase):
dependencies=None, syntax=None):
# FileDescriptor() is called from various places, not only from generated
# files, to register dynamic proto files and messages.
- # TODO(amauryfa): Expose BuildFile() as a public function and make this
- # constructor an implementation detail.
if serialized_pb:
- # pylint: disable=protected-access2
- return _message.Message._BuildFile(serialized_pb)
- # pylint: enable=protected-access
+ return _message.default_pool.AddSerializedFile(serialized_pb)
else:
return super(FileDescriptor, cls).__new__(cls)
@@ -814,9 +802,7 @@ class FileDescriptor(DescriptorBase):
if (api_implementation.Type() == 'cpp' and
self.serialized_pb is not None):
- # pylint: disable=protected-access
- _message.Message._BuildFile(self.serialized_pb)
- # pylint: enable=protected-access
+ _message.default_pool.AddSerializedFile(self.serialized_pb)
def CopyToProto(self, proto):
"""Copies this to a descriptor_pb2.FileDescriptorProto.
@@ -864,10 +850,10 @@ def MakeDescriptor(desc_proto, package='', build_file_if_cpp=True,
file_descriptor_proto = descriptor_pb2.FileDescriptorProto()
file_descriptor_proto.message_type.add().MergeFrom(desc_proto)
- # Generate a random name for this proto file to prevent conflicts with
- # any imported ones. We need to specify a file name so BuildFile accepts
- # our FileDescriptorProto, but it is not important what that file name
- # is actually set to.
+ # Generate a random name for this proto file to prevent conflicts with any
+ # imported ones. We need to specify a file name so the descriptor pool
+ # accepts our FileDescriptorProto, but it is not important what that file
+ # name is actually set to.
proto_name = str(uuid.uuid4())
if package:
@@ -877,10 +863,8 @@ def MakeDescriptor(desc_proto, package='', build_file_if_cpp=True,
else:
file_descriptor_proto.name = proto_name + '.proto'
- # pylint: disable=protected-access
- result = _message.Message._BuildFile(
- file_descriptor_proto.SerializeToString())
- # pylint: enable=protected-access
+ _message.default_pool.Add(file_descriptor_proto)
+ result = _message.default_pool.FindFileByName(file_descriptor_proto.name)
if _USE_C_DESCRIPTORS:
return result.message_types_by_name[desc_proto.name]
diff --git a/python/google/protobuf/descriptor_pool.py b/python/google/protobuf/descriptor_pool.py
index 7e7701f8..1244ba7c 100644
--- a/python/google/protobuf/descriptor_pool.py
+++ b/python/google/protobuf/descriptor_pool.py
@@ -113,6 +113,20 @@ class DescriptorPool(object):
self._internal_db.Add(file_desc_proto)
+ def AddSerializedFile(self, serialized_file_desc_proto):
+ """Adds the FileDescriptorProto and its types to this pool.
+
+ Args:
+ serialized_file_desc_proto: A bytes string, serialization of the
+ FileDescriptorProto to add.
+ """
+
+ # pylint: disable=g-import-not-at-top
+ from google.protobuf import descriptor_pb2
+ file_desc_proto = descriptor_pb2.FileDescriptorProto.FromString(
+ serialized_file_desc_proto)
+ self.Add(file_desc_proto)
+
def AddDescriptor(self, desc):
"""Adds a Descriptor to the pool, non-recursively.
@@ -320,17 +334,17 @@ class DescriptorPool(object):
file_descriptor, None, scope))
for index, extension_proto in enumerate(file_proto.extension):
- extension_desc = self.MakeFieldDescriptor(
+ extension_desc = self._MakeFieldDescriptor(
extension_proto, file_proto.package, index, is_extension=True)
extension_desc.containing_type = self._GetTypeFromScope(
file_descriptor.package, extension_proto.extendee, scope)
- self.SetFieldType(extension_proto, extension_desc,
+ self._SetFieldType(extension_proto, extension_desc,
file_descriptor.package, scope)
file_descriptor.extensions_by_name[extension_desc.name] = (
extension_desc)
for desc_proto in file_proto.message_type:
- self.SetAllFieldTypes(file_proto.package, desc_proto, scope)
+ self._SetAllFieldTypes(file_proto.package, desc_proto, scope)
if file_proto.package:
desc_proto_prefix = _PrefixWithDot(file_proto.package)
@@ -381,10 +395,11 @@ class DescriptorPool(object):
enums = [
self._ConvertEnumDescriptor(enum, desc_name, file_desc, None, scope)
for enum in desc_proto.enum_type]
- fields = [self.MakeFieldDescriptor(field, desc_name, index)
+ fields = [self._MakeFieldDescriptor(field, desc_name, index)
for index, field in enumerate(desc_proto.field)]
extensions = [
- self.MakeFieldDescriptor(extension, desc_name, index, is_extension=True)
+ self._MakeFieldDescriptor(extension, desc_name, index,
+ is_extension=True)
for index, extension in enumerate(desc_proto.extension)]
oneofs = [
descriptor.OneofDescriptor(desc.name, '.'.join((desc_name, desc.name)),
@@ -464,8 +479,8 @@ class DescriptorPool(object):
self._enum_descriptors[enum_name] = desc
return desc
- def MakeFieldDescriptor(self, field_proto, message_name, index,
- is_extension=False):
+ def _MakeFieldDescriptor(self, field_proto, message_name, index,
+ is_extension=False):
"""Creates a field descriptor from a FieldDescriptorProto.
For message and enum type fields, this method will do a look up
@@ -506,7 +521,7 @@ class DescriptorPool(object):
extension_scope=None,
options=field_proto.options)
- def SetAllFieldTypes(self, package, desc_proto, scope):
+ def _SetAllFieldTypes(self, package, desc_proto, scope):
"""Sets all the descriptor's fields's types.
This method also sets the containing types on any extensions.
@@ -527,18 +542,18 @@ class DescriptorPool(object):
nested_package = '.'.join([package, desc_proto.name])
for field_proto, field_desc in zip(desc_proto.field, main_desc.fields):
- self.SetFieldType(field_proto, field_desc, nested_package, scope)
+ self._SetFieldType(field_proto, field_desc, nested_package, scope)
for extension_proto, extension_desc in (
zip(desc_proto.extension, main_desc.extensions)):
extension_desc.containing_type = self._GetTypeFromScope(
nested_package, extension_proto.extendee, scope)
- self.SetFieldType(extension_proto, extension_desc, nested_package, scope)
+ self._SetFieldType(extension_proto, extension_desc, nested_package, scope)
for nested_type in desc_proto.nested_type:
- self.SetAllFieldTypes(nested_package, nested_type, scope)
+ self._SetAllFieldTypes(nested_package, nested_type, scope)
- def SetFieldType(self, field_proto, field_desc, package, scope):
+ def _SetFieldType(self, field_proto, field_desc, package, scope):
"""Sets the field's type, cpp_type, message_type and enum_type.
Args:
diff --git a/python/google/protobuf/internal/containers.py b/python/google/protobuf/internal/containers.py
index d976f9e1..72c2fa01 100755
--- a/python/google/protobuf/internal/containers.py
+++ b/python/google/protobuf/internal/containers.py
@@ -41,6 +41,146 @@ are:
__author__ = 'petar@google.com (Petar Petrov)'
+import sys
+
+if sys.version_info[0] < 3:
+ # We would use collections.MutableMapping all the time, but in Python 2 it
+ # doesn't define __slots__. This causes two significant problems:
+ #
+ # 1. we can't disallow arbitrary attribute assignment, even if our derived
+ # classes *do* define __slots__.
+ #
+ # 2. we can't safely derive a C type from it without __slots__ defined (the
+ # interpreter expects to find a dict at tp_dictoffset, which we can't
+ # robustly provide. And we don't want an instance dict anyway.
+ #
+ # So this is the Python 2.7 definition of Mapping/MutableMapping functions
+ # verbatim, except that:
+ # 1. We declare __slots__.
+ # 2. We don't declare this as a virtual base class. The classes defined
+ # in collections are the interesting base classes, not us.
+ #
+ # Note: deriving from object is critical. It is the only thing that makes
+ # this a true type, allowing us to derive from it in C++ cleanly and making
+ # __slots__ properly disallow arbitrary element assignment.
+ from collections import Mapping as _Mapping
+
+ class Mapping(object):
+ __slots__ = ()
+
+ def get(self, key, default=None):
+ try:
+ return self[key]
+ except KeyError:
+ return default
+
+ def __contains__(self, key):
+ try:
+ self[key]
+ except KeyError:
+ return False
+ else:
+ return True
+
+ def iterkeys(self):
+ return iter(self)
+
+ def itervalues(self):
+ for key in self:
+ yield self[key]
+
+ def iteritems(self):
+ for key in self:
+ yield (key, self[key])
+
+ def keys(self):
+ return list(self)
+
+ def items(self):
+ return [(key, self[key]) for key in self]
+
+ def values(self):
+ return [self[key] for key in self]
+
+ # Mappings are not hashable by default, but subclasses can change this
+ __hash__ = None
+
+ def __eq__(self, other):
+ if not isinstance(other, _Mapping):
+ return NotImplemented
+ return dict(self.items()) == dict(other.items())
+
+ def __ne__(self, other):
+ return not (self == other)
+
+ class MutableMapping(Mapping):
+ __slots__ = ()
+
+ __marker = object()
+
+ def pop(self, key, default=__marker):
+ try:
+ value = self[key]
+ except KeyError:
+ if default is self.__marker:
+ raise
+ return default
+ else:
+ del self[key]
+ return value
+
+ def popitem(self):
+ try:
+ key = next(iter(self))
+ except StopIteration:
+ raise KeyError
+ value = self[key]
+ del self[key]
+ return key, value
+
+ def clear(self):
+ try:
+ while True:
+ self.popitem()
+ except KeyError:
+ pass
+
+ def update(*args, **kwds):
+ if len(args) > 2:
+ raise TypeError("update() takes at most 2 positional "
+ "arguments ({} given)".format(len(args)))
+ elif not args:
+ raise TypeError("update() takes at least 1 argument (0 given)")
+ self = args[0]
+ other = args[1] if len(args) >= 2 else ()
+
+ if isinstance(other, Mapping):
+ for key in other:
+ self[key] = other[key]
+ elif hasattr(other, "keys"):
+ for key in other.keys():
+ self[key] = other[key]
+ else:
+ for key, value in other:
+ self[key] = value
+ for key, value in kwds.items():
+ self[key] = value
+
+ def setdefault(self, key, default=None):
+ try:
+ return self[key]
+ except KeyError:
+ self[key] = default
+ return default
+
+ _Mapping.register(Mapping)
+
+else:
+ # In Python 3 we can just use MutableMapping directly, because it defines
+ # __slots__.
+ from collections import MutableMapping
+
+
class BaseContainer(object):
"""Base container class."""
@@ -286,3 +426,160 @@ class RepeatedCompositeFieldContainer(BaseContainer):
raise TypeError('Can only compare repeated composite fields against '
'other repeated composite fields.')
return self._values == other._values
+
+
+class ScalarMap(MutableMapping):
+
+ """Simple, type-checked, dict-like container for holding repeated scalars."""
+
+ # Disallows assignment to other attributes.
+ __slots__ = ['_key_checker', '_value_checker', '_values', '_message_listener']
+
+ def __init__(self, message_listener, key_checker, value_checker):
+ """
+ Args:
+ message_listener: A MessageListener implementation.
+ The ScalarMap will call this object's Modified() method when it
+ is modified.
+ key_checker: A type_checkers.ValueChecker instance to run on keys
+ inserted into this container.
+ value_checker: A type_checkers.ValueChecker instance to run on values
+ inserted into this container.
+ """
+ self._message_listener = message_listener
+ self._key_checker = key_checker
+ self._value_checker = value_checker
+ self._values = {}
+
+ def __getitem__(self, key):
+ try:
+ return self._values[key]
+ except KeyError:
+ key = self._key_checker.CheckValue(key)
+ val = self._value_checker.DefaultValue()
+ self._values[key] = val
+ return val
+
+ def __contains__(self, item):
+ return item in self._values
+
+ # We need to override this explicitly, because our defaultdict-like behavior
+ # will make the default implementation (from our base class) always insert
+ # the key.
+ def get(self, key, default=None):
+ if key in self:
+ return self[key]
+ else:
+ return default
+
+ def __setitem__(self, key, value):
+ checked_key = self._key_checker.CheckValue(key)
+ checked_value = self._value_checker.CheckValue(value)
+ self._values[checked_key] = checked_value
+ self._message_listener.Modified()
+
+ def __delitem__(self, key):
+ del self._values[key]
+ self._message_listener.Modified()
+
+ def __len__(self):
+ return len(self._values)
+
+ def __iter__(self):
+ return iter(self._values)
+
+ def MergeFrom(self, other):
+ self._values.update(other._values)
+ self._message_listener.Modified()
+
+ # This is defined in the abstract base, but we can do it much more cheaply.
+ def clear(self):
+ self._values.clear()
+ self._message_listener.Modified()
+
+
+class MessageMap(MutableMapping):
+
+ """Simple, type-checked, dict-like container for with submessage values."""
+
+ # Disallows assignment to other attributes.
+ __slots__ = ['_key_checker', '_values', '_message_listener',
+ '_message_descriptor']
+
+ def __init__(self, message_listener, message_descriptor, key_checker):
+ """
+ Args:
+ message_listener: A MessageListener implementation.
+ The ScalarMap will call this object's Modified() method when it
+ is modified.
+ key_checker: A type_checkers.ValueChecker instance to run on keys
+ inserted into this container.
+ value_checker: A type_checkers.ValueChecker instance to run on values
+ inserted into this container.
+ """
+ self._message_listener = message_listener
+ self._message_descriptor = message_descriptor
+ self._key_checker = key_checker
+ self._values = {}
+
+ def __getitem__(self, key):
+ try:
+ return self._values[key]
+ except KeyError:
+ key = self._key_checker.CheckValue(key)
+ new_element = self._message_descriptor._concrete_class()
+ new_element._SetListener(self._message_listener)
+ self._values[key] = new_element
+ self._message_listener.Modified()
+
+ return new_element
+
+ def get_or_create(self, key):
+ """get_or_create() is an alias for getitem (ie. map[key]).
+
+ Args:
+ key: The key to get or create in the map.
+
+ This is useful in cases where you want to be explicit that the call is
+ mutating the map. This can avoid lint errors for statements like this
+ that otherwise would appear to be pointless statements:
+
+ msg.my_map[key]
+ """
+ return self[key]
+
+ # We need to override this explicitly, because our defaultdict-like behavior
+ # will make the default implementation (from our base class) always insert
+ # the key.
+ def get(self, key, default=None):
+ if key in self:
+ return self[key]
+ else:
+ return default
+
+ def __contains__(self, item):
+ return item in self._values
+
+ def __setitem__(self, key, value):
+ raise ValueError('May not set values directly, call my_map[key].foo = 5')
+
+ def __delitem__(self, key):
+ del self._values[key]
+ self._message_listener.Modified()
+
+ def __len__(self):
+ return len(self._values)
+
+ def __iter__(self):
+ return iter(self._values)
+
+ def MergeFrom(self, other):
+ for key in other:
+ self[key].MergeFrom(other[key])
+ # self._message_listener.Modified() not required here, because
+ # mutations to submessages already propagate.
+
+ # This is defined in the abstract base, but we can do it much more cheaply.
+ def clear(self):
+ self._values.clear()
+ self._message_listener.Modified()
diff --git a/python/google/protobuf/internal/decoder.py b/python/google/protobuf/internal/decoder.py
index 0f500606..3837eaea 100755
--- a/python/google/protobuf/internal/decoder.py
+++ b/python/google/protobuf/internal/decoder.py
@@ -733,6 +733,50 @@ def MessageSetItemDecoder(extensions_by_number):
return DecodeItem
# --------------------------------------------------------------------
+
+def MapDecoder(field_descriptor, new_default, is_message_map):
+ """Returns a decoder for a map field."""
+
+ key = field_descriptor
+ tag_bytes = encoder.TagBytes(field_descriptor.number,
+ wire_format.WIRETYPE_LENGTH_DELIMITED)
+ tag_len = len(tag_bytes)
+ local_DecodeVarint = _DecodeVarint
+ # Can't read _concrete_class yet; might not be initialized.
+ message_type = field_descriptor.message_type
+
+ def DecodeMap(buffer, pos, end, message, field_dict):
+ submsg = message_type._concrete_class()
+ value = field_dict.get(key)
+ if value is None:
+ value = field_dict.setdefault(key, new_default(message))
+ while 1:
+ # Read length.
+ (size, pos) = local_DecodeVarint(buffer, pos)
+ new_pos = pos + size
+ if new_pos > end:
+ raise _DecodeError('Truncated message.')
+ # Read sub-message.
+ submsg.Clear()
+ if submsg._InternalParse(buffer, pos, new_pos) != new_pos:
+ # The only reason _InternalParse would return early is if it
+ # encountered an end-group tag.
+ raise _DecodeError('Unexpected end-group tag.')
+
+ if is_message_map:
+ value[submsg.key].MergeFrom(submsg.value)
+ else:
+ value[submsg.key] = submsg.value
+
+ # Predict that the next tag is another copy of the same repeated field.
+ pos = new_pos + tag_len
+ if buffer[new_pos:pos] != tag_bytes or new_pos == end:
+ # Prediction failed. Return.
+ return new_pos
+
+ return DecodeMap
+
+# --------------------------------------------------------------------
# Optimization is not as heavy here because calls to SkipField() are rare,
# except for handling end-group tags.
diff --git a/python/google/protobuf/internal/descriptor_database_test.py b/python/google/protobuf/internal/descriptor_database_test.py
index 56fe14e9..8416e157 100644
--- a/python/google/protobuf/internal/descriptor_database_test.py
+++ b/python/google/protobuf/internal/descriptor_database_test.py
@@ -35,7 +35,6 @@
__author__ = 'matthewtoia@google.com (Matt Toia)'
import unittest
-
from google.protobuf import descriptor_pb2
from google.protobuf.internal import factory_test2_pb2
from google.protobuf import descriptor_database
diff --git a/python/google/protobuf/internal/descriptor_pool_test.py b/python/google/protobuf/internal/descriptor_pool_test.py
index 7d145f42..d159cc62 100644
--- a/python/google/protobuf/internal/descriptor_pool_test.py
+++ b/python/google/protobuf/internal/descriptor_pool_test.py
@@ -37,6 +37,7 @@ __author__ = 'matthewtoia@google.com (Matt Toia)'
import os
import unittest
+import unittest
from google.protobuf import unittest_pb2
from google.protobuf import descriptor_pb2
from google.protobuf.internal import api_implementation
@@ -226,6 +227,13 @@ class DescriptorPoolTest(unittest.TestCase):
db.Add(self.factory_test2_fd)
self.testFindMessageTypeByName()
+ def testAddSerializedFile(self):
+ db = descriptor_database.DescriptorDatabase()
+ self.pool = descriptor_pool.DescriptorPool(db)
+ self.pool.AddSerializedFile(self.factory_test1_fd.SerializeToString())
+ self.pool.AddSerializedFile(self.factory_test2_fd.SerializeToString())
+ self.testFindMessageTypeByName()
+
def testComplexNesting(self):
test1_desc = descriptor_pb2.FileDescriptorProto.FromString(
descriptor_pool_test1_pb2.DESCRIPTOR.serialized_pb)
@@ -510,6 +518,43 @@ class AddDescriptorTest(unittest.TestCase):
'protobuf_unittest.TestAllTypes')
+@unittest.skipIf(
+ api_implementation.Type() != 'cpp',
+ 'default_pool is only supported by the C++ implementation')
+class DefaultPoolTest(unittest.TestCase):
+
+ def testFindMethods(self):
+ # pylint: disable=g-import-not-at-top
+ from google.protobuf.pyext import _message
+ pool = _message.default_pool
+ self.assertIs(
+ pool.FindFileByName('google/protobuf/unittest.proto'),
+ unittest_pb2.DESCRIPTOR)
+ self.assertIs(
+ pool.FindMessageTypeByName('protobuf_unittest.TestAllTypes'),
+ unittest_pb2.TestAllTypes.DESCRIPTOR)
+ self.assertIs(
+ pool.FindFieldByName('protobuf_unittest.TestAllTypes.optional_int32'),
+ unittest_pb2.TestAllTypes.DESCRIPTOR.fields_by_name['optional_int32'])
+ self.assertIs(
+ pool.FindExtensionByName('protobuf_unittest.optional_int32_extension'),
+ unittest_pb2.DESCRIPTOR.extensions_by_name['optional_int32_extension'])
+ self.assertIs(
+ pool.FindEnumTypeByName('protobuf_unittest.ForeignEnum'),
+ unittest_pb2.ForeignEnum.DESCRIPTOR)
+ self.assertIs(
+ pool.FindOneofByName('protobuf_unittest.TestAllTypes.oneof_field'),
+ unittest_pb2.TestAllTypes.DESCRIPTOR.oneofs_by_name['oneof_field'])
+
+ def testAddFileDescriptor(self):
+ # pylint: disable=g-import-not-at-top
+ from google.protobuf.pyext import _message
+ pool = _message.default_pool
+ file_desc = descriptor_pb2.FileDescriptorProto(name='some/file.proto')
+ pool.Add(file_desc)
+ pool.AddSerializedFile(file_desc.SerializeToString())
+
+
TEST1_FILE = ProtoFile(
'google/protobuf/internal/descriptor_pool_test1.proto',
'google.protobuf.python.internal',
diff --git a/python/google/protobuf/internal/descriptor_test.py b/python/google/protobuf/internal/descriptor_test.py
index 335caee6..26866f3a 100755
--- a/python/google/protobuf/internal/descriptor_test.py
+++ b/python/google/protobuf/internal/descriptor_test.py
@@ -35,8 +35,8 @@
__author__ = 'robinson@google.com (Will Robinson)'
import sys
-import unittest
+import unittest
from google.protobuf import unittest_custom_options_pb2
from google.protobuf import unittest_import_pb2
from google.protobuf import unittest_pb2
diff --git a/python/google/protobuf/internal/encoder.py b/python/google/protobuf/internal/encoder.py
index 38a5138a..752f4eab 100755
--- a/python/google/protobuf/internal/encoder.py
+++ b/python/google/protobuf/internal/encoder.py
@@ -314,7 +314,7 @@ def MessageSizer(field_number, is_repeated, is_packed):
# --------------------------------------------------------------------
-# MessageSet is special.
+# MessageSet is special: it needs custom logic to compute its size properly.
def MessageSetItemSizer(field_number):
@@ -339,6 +339,32 @@ def MessageSetItemSizer(field_number):
return FieldSize
+# --------------------------------------------------------------------
+# Map is special: it needs custom logic to compute its size properly.
+
+
+def MapSizer(field_descriptor):
+ """Returns a sizer for a map field."""
+
+ # Can't look at field_descriptor.message_type._concrete_class because it may
+ # not have been initialized yet.
+ message_type = field_descriptor.message_type
+ message_sizer = MessageSizer(field_descriptor.number, False, False)
+
+ def FieldSize(map_value):
+ total = 0
+ for key in map_value:
+ value = map_value[key]
+ # It's wasteful to create the messages and throw them away one second
+ # later since we'll do the same for the actual encode. But there's not an
+ # obvious way to avoid this within the current design without tons of code
+ # duplication.
+ entry_msg = message_type._concrete_class(key=key, value=value)
+ total += message_sizer(entry_msg)
+ return total
+
+ return FieldSize
+
# ====================================================================
# Encoders!
@@ -786,3 +812,30 @@ def MessageSetItemEncoder(field_number):
return write(end_bytes)
return EncodeField
+
+
+# --------------------------------------------------------------------
+# As before, Map is special.
+
+
+def MapEncoder(field_descriptor):
+ """Encoder for extensions of MessageSet.
+
+ Maps always have a wire format like this:
+ message MapEntry {
+ key_type key = 1;
+ value_type value = 2;
+ }
+ repeated MapEntry map = N;
+ """
+ # Can't look at field_descriptor.message_type._concrete_class because it may
+ # not have been initialized yet.
+ message_type = field_descriptor.message_type
+ encode_message = MessageEncoder(field_descriptor.number, False, False)
+
+ def EncodeField(write, value):
+ for key in value:
+ entry_msg = message_type._concrete_class(key=key, value=value[key])
+ encode_message(write, entry_msg)
+
+ return EncodeField
diff --git a/python/google/protobuf/internal/generator_test.py b/python/google/protobuf/internal/generator_test.py
index ccc5860b..5c07cbe6 100755
--- a/python/google/protobuf/internal/generator_test.py
+++ b/python/google/protobuf/internal/generator_test.py
@@ -42,7 +42,6 @@ further ensures that we can use Python protocol message objects as we expect.
__author__ = 'robinson@google.com (Will Robinson)'
import unittest
-
from google.protobuf.internal import test_bad_identifiers_pb2
from google.protobuf import unittest_custom_options_pb2
from google.protobuf import unittest_import_pb2
diff --git a/python/google/protobuf/internal/message_factory_test.py b/python/google/protobuf/internal/message_factory_test.py
index 626c3fc9..b8694f96 100644
--- a/python/google/protobuf/internal/message_factory_test.py
+++ b/python/google/protobuf/internal/message_factory_test.py
@@ -35,7 +35,6 @@
__author__ = 'matthewtoia@google.com (Matt Toia)'
import unittest
-
from google.protobuf import descriptor_pb2
from google.protobuf.internal import factory_test1_pb2
from google.protobuf.internal import factory_test2_pb2
diff --git a/python/google/protobuf/internal/message_test.py b/python/google/protobuf/internal/message_test.py
index 4ecaa1c7..320ff0d2 100755
--- a/python/google/protobuf/internal/message_test.py
+++ b/python/google/protobuf/internal/message_test.py
@@ -50,7 +50,9 @@ import pickle
import sys
import unittest
+import unittest
from google.protobuf.internal import _parameterized
+from google.protobuf import map_unittest_pb2
from google.protobuf import unittest_pb2
from google.protobuf import unittest_proto3_arena_pb2
from google.protobuf.internal import api_implementation
@@ -125,10 +127,17 @@ class MessageTest(unittest.TestCase):
self.assertEqual(unpickled_message, golden_message)
def testPositiveInfinity(self, message_module):
- golden_data = (b'\x5D\x00\x00\x80\x7F'
- b'\x61\x00\x00\x00\x00\x00\x00\xF0\x7F'
- b'\xCD\x02\x00\x00\x80\x7F'
- b'\xD1\x02\x00\x00\x00\x00\x00\x00\xF0\x7F')
+ if message_module is unittest_pb2:
+ golden_data = (b'\x5D\x00\x00\x80\x7F'
+ b'\x61\x00\x00\x00\x00\x00\x00\xF0\x7F'
+ b'\xCD\x02\x00\x00\x80\x7F'
+ b'\xD1\x02\x00\x00\x00\x00\x00\x00\xF0\x7F')
+ else:
+ golden_data = (b'\x5D\x00\x00\x80\x7F'
+ b'\x61\x00\x00\x00\x00\x00\x00\xF0\x7F'
+ b'\xCA\x02\x04\x00\x00\x80\x7F'
+ b'\xD2\x02\x08\x00\x00\x00\x00\x00\x00\xF0\x7F')
+
golden_message = message_module.TestAllTypes()
golden_message.ParseFromString(golden_data)
self.assertTrue(IsPosInf(golden_message.optional_float))
@@ -138,10 +147,17 @@ class MessageTest(unittest.TestCase):
self.assertEqual(golden_data, golden_message.SerializeToString())
def testNegativeInfinity(self, message_module):
- golden_data = (b'\x5D\x00\x00\x80\xFF'
- b'\x61\x00\x00\x00\x00\x00\x00\xF0\xFF'
- b'\xCD\x02\x00\x00\x80\xFF'
- b'\xD1\x02\x00\x00\x00\x00\x00\x00\xF0\xFF')
+ if message_module is unittest_pb2:
+ golden_data = (b'\x5D\x00\x00\x80\xFF'
+ b'\x61\x00\x00\x00\x00\x00\x00\xF0\xFF'
+ b'\xCD\x02\x00\x00\x80\xFF'
+ b'\xD1\x02\x00\x00\x00\x00\x00\x00\xF0\xFF')
+ else:
+ golden_data = (b'\x5D\x00\x00\x80\xFF'
+ b'\x61\x00\x00\x00\x00\x00\x00\xF0\xFF'
+ b'\xCA\x02\x04\x00\x00\x80\xFF'
+ b'\xD2\x02\x08\x00\x00\x00\x00\x00\x00\xF0\xFF')
+
golden_message = message_module.TestAllTypes()
golden_message.ParseFromString(golden_data)
self.assertTrue(IsNegInf(golden_message.optional_float))
@@ -1034,64 +1050,132 @@ class Proto2Test(unittest.TestCase):
self.assertEqual(len(parsing_merge.Extensions[
unittest_pb2.TestParsingMerge.repeated_ext]), 3)
+ def testPythonicInit(self):
+ message = unittest_pb2.TestAllTypes(
+ optional_int32=100,
+ optional_fixed32=200,
+ optional_float=300.5,
+ optional_bytes=b'x',
+ optionalgroup={'a': 400},
+ optional_nested_message={'bb': 500},
+ optional_nested_enum='BAZ',
+ repeatedgroup=[{'a': 600},
+ {'a': 700}],
+ repeated_nested_enum=['FOO', unittest_pb2.TestAllTypes.BAR],
+ default_int32=800,
+ oneof_string='y')
+ self.assertTrue(isinstance(message, unittest_pb2.TestAllTypes))
+ self.assertEqual(100, message.optional_int32)
+ self.assertEqual(200, message.optional_fixed32)
+ self.assertEqual(300.5, message.optional_float)
+ self.assertEqual(b'x', message.optional_bytes)
+ self.assertEqual(400, message.optionalgroup.a)
+ self.assertTrue(isinstance(message.optional_nested_message,
+ unittest_pb2.TestAllTypes.NestedMessage))
+ self.assertEqual(500, message.optional_nested_message.bb)
+ self.assertEqual(unittest_pb2.TestAllTypes.BAZ,
+ message.optional_nested_enum)
+ self.assertEqual(2, len(message.repeatedgroup))
+ self.assertEqual(600, message.repeatedgroup[0].a)
+ self.assertEqual(700, message.repeatedgroup[1].a)
+ self.assertEqual(2, len(message.repeated_nested_enum))
+ self.assertEqual(unittest_pb2.TestAllTypes.FOO,
+ message.repeated_nested_enum[0])
+ self.assertEqual(unittest_pb2.TestAllTypes.BAR,
+ message.repeated_nested_enum[1])
+ self.assertEqual(800, message.default_int32)
+ self.assertEqual('y', message.oneof_string)
+ self.assertFalse(message.HasField('optional_int64'))
+ self.assertEqual(0, len(message.repeated_float))
+ self.assertEqual(42, message.default_int64)
+
+ message = unittest_pb2.TestAllTypes(optional_nested_enum=u'BAZ')
+ self.assertEqual(unittest_pb2.TestAllTypes.BAZ,
+ message.optional_nested_enum)
+
+ with self.assertRaises(ValueError):
+ unittest_pb2.TestAllTypes(
+ optional_nested_message={'INVALID_NESTED_FIELD': 17})
+
+ with self.assertRaises(TypeError):
+ unittest_pb2.TestAllTypes(
+ optional_nested_message={'bb': 'INVALID_VALUE_TYPE'})
+
+ with self.assertRaises(ValueError):
+ unittest_pb2.TestAllTypes(optional_nested_enum='INVALID_LABEL')
+
+ with self.assertRaises(ValueError):
+ unittest_pb2.TestAllTypes(repeated_nested_enum='FOO')
+
# Class to test proto3-only features/behavior (updated field presence & enums)
class Proto3Test(unittest.TestCase):
+ # Utility method for comparing equality with a map.
+ def assertMapIterEquals(self, map_iter, dict_value):
+ # Avoid mutating caller's copy.
+ dict_value = dict(dict_value)
+
+ for k, v in map_iter:
+ self.assertEqual(v, dict_value[k])
+ del dict_value[k]
+
+ self.assertEqual({}, dict_value)
+
def testFieldPresence(self):
message = unittest_proto3_arena_pb2.TestAllTypes()
# We can't test presence of non-repeated, non-submessage fields.
with self.assertRaises(ValueError):
- message.HasField("optional_int32")
+ message.HasField('optional_int32')
with self.assertRaises(ValueError):
- message.HasField("optional_float")
+ message.HasField('optional_float')
with self.assertRaises(ValueError):
- message.HasField("optional_string")
+ message.HasField('optional_string')
with self.assertRaises(ValueError):
- message.HasField("optional_bool")
+ message.HasField('optional_bool')
# But we can still test presence of submessage fields.
- self.assertFalse(message.HasField("optional_nested_message"))
+ self.assertFalse(message.HasField('optional_nested_message'))
# As with proto2, we can't test presence of fields that don't exist, or
# repeated fields.
with self.assertRaises(ValueError):
- message.HasField("field_doesnt_exist")
+ message.HasField('field_doesnt_exist')
with self.assertRaises(ValueError):
- message.HasField("repeated_int32")
+ message.HasField('repeated_int32')
with self.assertRaises(ValueError):
- message.HasField("repeated_nested_message")
+ message.HasField('repeated_nested_message')
# Fields should default to their type-specific default.
self.assertEqual(0, message.optional_int32)
self.assertEqual(0, message.optional_float)
- self.assertEqual("", message.optional_string)
+ self.assertEqual('', message.optional_string)
self.assertEqual(False, message.optional_bool)
self.assertEqual(0, message.optional_nested_message.bb)
# Setting a submessage should still return proper presence information.
message.optional_nested_message.bb = 0
- self.assertTrue(message.HasField("optional_nested_message"))
+ self.assertTrue(message.HasField('optional_nested_message'))
# Set the fields to non-default values.
message.optional_int32 = 5
message.optional_float = 1.1
- message.optional_string = "abc"
+ message.optional_string = 'abc'
message.optional_bool = True
message.optional_nested_message.bb = 15
# Clearing the fields unsets them and resets their value to default.
- message.ClearField("optional_int32")
- message.ClearField("optional_float")
- message.ClearField("optional_string")
- message.ClearField("optional_bool")
- message.ClearField("optional_nested_message")
+ message.ClearField('optional_int32')
+ message.ClearField('optional_float')
+ message.ClearField('optional_string')
+ message.ClearField('optional_bool')
+ message.ClearField('optional_nested_message')
self.assertEqual(0, message.optional_int32)
self.assertEqual(0, message.optional_float)
- self.assertEqual("", message.optional_string)
+ self.assertEqual('', message.optional_string)
self.assertEqual(False, message.optional_bool)
self.assertEqual(0, message.optional_nested_message.bb)
@@ -1113,6 +1197,393 @@ class Proto3Test(unittest.TestCase):
self.assertEqual(1234567, m2.optional_nested_enum)
self.assertEqual(7654321, m2.repeated_nested_enum[0])
+ # Map isn't really a proto3-only feature. But there is no proto2 equivalent
+ # of google/protobuf/map_unittest.proto right now, so it's not easy to
+ # test both with the same test like we do for the other proto2/proto3 tests.
+ # (google/protobuf/map_protobuf_unittest.proto is very different in the set
+ # of messages and fields it contains).
+ def testScalarMapDefaults(self):
+ msg = map_unittest_pb2.TestMap()
+
+ # Scalars start out unset.
+ self.assertFalse(-123 in msg.map_int32_int32)
+ self.assertFalse(-2**33 in msg.map_int64_int64)
+ self.assertFalse(123 in msg.map_uint32_uint32)
+ self.assertFalse(2**33 in msg.map_uint64_uint64)
+ self.assertFalse('abc' in msg.map_string_string)
+ self.assertFalse(888 in msg.map_int32_enum)
+
+ # Accessing an unset key returns the default.
+ self.assertEqual(0, msg.map_int32_int32[-123])
+ self.assertEqual(0, msg.map_int64_int64[-2**33])
+ self.assertEqual(0, msg.map_uint32_uint32[123])
+ self.assertEqual(0, msg.map_uint64_uint64[2**33])
+ self.assertEqual('', msg.map_string_string['abc'])
+ self.assertEqual(0, msg.map_int32_enum[888])
+
+ # It also sets the value in the map
+ self.assertTrue(-123 in msg.map_int32_int32)
+ self.assertTrue(-2**33 in msg.map_int64_int64)
+ self.assertTrue(123 in msg.map_uint32_uint32)
+ self.assertTrue(2**33 in msg.map_uint64_uint64)
+ self.assertTrue('abc' in msg.map_string_string)
+ self.assertTrue(888 in msg.map_int32_enum)
+
+ self.assertTrue(isinstance(msg.map_string_string['abc'], unicode))
+
+ # Accessing an unset key still throws TypeError of the type of the key
+ # is incorrect.
+ with self.assertRaises(TypeError):
+ msg.map_string_string[123]
+
+ self.assertFalse(123 in msg.map_string_string)
+
+ def testMapGet(self):
+ # Need to test that get() properly returns the default, even though the dict
+ # has defaultdict-like semantics.
+ msg = map_unittest_pb2.TestMap()
+
+ self.assertIsNone(msg.map_int32_int32.get(5))
+ self.assertEquals(10, msg.map_int32_int32.get(5, 10))
+ self.assertIsNone(msg.map_int32_int32.get(5))
+
+ msg.map_int32_int32[5] = 15
+ self.assertEquals(15, msg.map_int32_int32.get(5))
+
+ self.assertIsNone(msg.map_int32_foreign_message.get(5))
+ self.assertEquals(10, msg.map_int32_foreign_message.get(5, 10))
+
+ submsg = msg.map_int32_foreign_message[5]
+ self.assertIs(submsg, msg.map_int32_foreign_message.get(5))
+
+ def testScalarMap(self):
+ msg = map_unittest_pb2.TestMap()
+
+ self.assertEqual(0, len(msg.map_int32_int32))
+ self.assertFalse(5 in msg.map_int32_int32)
+
+ msg.map_int32_int32[-123] = -456
+ msg.map_int64_int64[-2**33] = -2**34
+ msg.map_uint32_uint32[123] = 456
+ msg.map_uint64_uint64[2**33] = 2**34
+ msg.map_string_string['abc'] = '123'
+ msg.map_int32_enum[888] = 2
+
+ self.assertEqual([], msg.FindInitializationErrors())
+
+ self.assertEqual(1, len(msg.map_string_string))
+
+ # Bad key.
+ with self.assertRaises(TypeError):
+ msg.map_string_string[123] = '123'
+
+ # Verify that trying to assign a bad key doesn't actually add a member to
+ # the map.
+ self.assertEqual(1, len(msg.map_string_string))
+
+ # Bad value.
+ with self.assertRaises(TypeError):
+ msg.map_string_string['123'] = 123
+
+ serialized = msg.SerializeToString()
+ msg2 = map_unittest_pb2.TestMap()
+ msg2.ParseFromString(serialized)
+
+ # Bad key.
+ with self.assertRaises(TypeError):
+ msg2.map_string_string[123] = '123'
+
+ # Bad value.
+ with self.assertRaises(TypeError):
+ msg2.map_string_string['123'] = 123
+
+ self.assertEqual(-456, msg2.map_int32_int32[-123])
+ self.assertEqual(-2**34, msg2.map_int64_int64[-2**33])
+ self.assertEqual(456, msg2.map_uint32_uint32[123])
+ self.assertEqual(2**34, msg2.map_uint64_uint64[2**33])
+ self.assertEqual('123', msg2.map_string_string['abc'])
+ self.assertEqual(2, msg2.map_int32_enum[888])
+
+ def testStringUnicodeConversionInMap(self):
+ msg = map_unittest_pb2.TestMap()
+
+ unicode_obj = u'\u1234'
+ bytes_obj = unicode_obj.encode('utf8')
+
+ msg.map_string_string[bytes_obj] = bytes_obj
+
+ (key, value) = msg.map_string_string.items()[0]
+
+ self.assertEqual(key, unicode_obj)
+ self.assertEqual(value, unicode_obj)
+
+ self.assertTrue(isinstance(key, unicode))
+ self.assertTrue(isinstance(value, unicode))
+
+ def testMessageMap(self):
+ msg = map_unittest_pb2.TestMap()
+
+ self.assertEqual(0, len(msg.map_int32_foreign_message))
+ self.assertFalse(5 in msg.map_int32_foreign_message)
+
+ msg.map_int32_foreign_message[123]
+ # get_or_create() is an alias for getitem.
+ msg.map_int32_foreign_message.get_or_create(-456)
+
+ self.assertEqual(2, len(msg.map_int32_foreign_message))
+ self.assertIn(123, msg.map_int32_foreign_message)
+ self.assertIn(-456, msg.map_int32_foreign_message)
+ self.assertEqual(2, len(msg.map_int32_foreign_message))
+
+ # Bad key.
+ with self.assertRaises(TypeError):
+ msg.map_int32_foreign_message['123']
+
+ # Can't assign directly to submessage.
+ with self.assertRaises(ValueError):
+ msg.map_int32_foreign_message[999] = msg.map_int32_foreign_message[123]
+
+ # Verify that trying to assign a bad key doesn't actually add a member to
+ # the map.
+ self.assertEqual(2, len(msg.map_int32_foreign_message))
+
+ serialized = msg.SerializeToString()
+ msg2 = map_unittest_pb2.TestMap()
+ msg2.ParseFromString(serialized)
+
+ self.assertEqual(2, len(msg2.map_int32_foreign_message))
+ self.assertIn(123, msg2.map_int32_foreign_message)
+ self.assertIn(-456, msg2.map_int32_foreign_message)
+ self.assertEqual(2, len(msg2.map_int32_foreign_message))
+
+ def testMergeFrom(self):
+ msg = map_unittest_pb2.TestMap()
+ msg.map_int32_int32[12] = 34
+ msg.map_int32_int32[56] = 78
+ msg.map_int64_int64[22] = 33
+ msg.map_int32_foreign_message[111].c = 5
+ msg.map_int32_foreign_message[222].c = 10
+
+ msg2 = map_unittest_pb2.TestMap()
+ msg2.map_int32_int32[12] = 55
+ msg2.map_int64_int64[88] = 99
+ msg2.map_int32_foreign_message[222].c = 15
+
+ msg2.MergeFrom(msg)
+
+ self.assertEqual(34, msg2.map_int32_int32[12])
+ self.assertEqual(78, msg2.map_int32_int32[56])
+ self.assertEqual(33, msg2.map_int64_int64[22])
+ self.assertEqual(99, msg2.map_int64_int64[88])
+ self.assertEqual(5, msg2.map_int32_foreign_message[111].c)
+ self.assertEqual(10, msg2.map_int32_foreign_message[222].c)
+
+ # Verify that there is only one entry per key, even though the MergeFrom
+ # may have internally created multiple entries for a single key in the
+ # list representation.
+ as_dict = {}
+ for key in msg2.map_int32_foreign_message:
+ self.assertFalse(key in as_dict)
+ as_dict[key] = msg2.map_int32_foreign_message[key].c
+
+ self.assertEqual({111: 5, 222: 10}, as_dict)
+
+ # Special case: test that delete of item really removes the item, even if
+ # there might have physically been duplicate keys due to the previous merge.
+ # This is only a special case for the C++ implementation which stores the
+ # map as an array.
+ del msg2.map_int32_int32[12]
+ self.assertFalse(12 in msg2.map_int32_int32)
+
+ del msg2.map_int32_foreign_message[222]
+ self.assertFalse(222 in msg2.map_int32_foreign_message)
+
+ def testIntegerMapWithLongs(self):
+ msg = map_unittest_pb2.TestMap()
+ msg.map_int32_int32[long(-123)] = long(-456)
+ msg.map_int64_int64[long(-2**33)] = long(-2**34)
+ msg.map_uint32_uint32[long(123)] = long(456)
+ msg.map_uint64_uint64[long(2**33)] = long(2**34)
+
+ serialized = msg.SerializeToString()
+ msg2 = map_unittest_pb2.TestMap()
+ msg2.ParseFromString(serialized)
+
+ self.assertEqual(-456, msg2.map_int32_int32[-123])
+ self.assertEqual(-2**34, msg2.map_int64_int64[-2**33])
+ self.assertEqual(456, msg2.map_uint32_uint32[123])
+ self.assertEqual(2**34, msg2.map_uint64_uint64[2**33])
+
+ def testMapAssignmentCausesPresence(self):
+ msg = map_unittest_pb2.TestMapSubmessage()
+ msg.test_map.map_int32_int32[123] = 456
+
+ serialized = msg.SerializeToString()
+ msg2 = map_unittest_pb2.TestMapSubmessage()
+ msg2.ParseFromString(serialized)
+
+ self.assertEqual(msg, msg2)
+
+ # Now test that various mutations of the map properly invalidate the
+ # cached size of the submessage.
+ msg.test_map.map_int32_int32[888] = 999
+ serialized = msg.SerializeToString()
+ msg2.ParseFromString(serialized)
+ self.assertEqual(msg, msg2)
+
+ msg.test_map.map_int32_int32.clear()
+ serialized = msg.SerializeToString()
+ msg2.ParseFromString(serialized)
+ self.assertEqual(msg, msg2)
+
+ def testMapAssignmentCausesPresenceForSubmessages(self):
+ msg = map_unittest_pb2.TestMapSubmessage()
+ msg.test_map.map_int32_foreign_message[123].c = 5
+
+ serialized = msg.SerializeToString()
+ msg2 = map_unittest_pb2.TestMapSubmessage()
+ msg2.ParseFromString(serialized)
+
+ self.assertEqual(msg, msg2)
+
+ # Now test that various mutations of the map properly invalidate the
+ # cached size of the submessage.
+ msg.test_map.map_int32_foreign_message[888].c = 7
+ serialized = msg.SerializeToString()
+ msg2.ParseFromString(serialized)
+ self.assertEqual(msg, msg2)
+
+ msg.test_map.map_int32_foreign_message[888].MergeFrom(
+ msg.test_map.map_int32_foreign_message[123])
+ serialized = msg.SerializeToString()
+ msg2.ParseFromString(serialized)
+ self.assertEqual(msg, msg2)
+
+ msg.test_map.map_int32_foreign_message.clear()
+ serialized = msg.SerializeToString()
+ msg2.ParseFromString(serialized)
+ self.assertEqual(msg, msg2)
+
+ def testModifyMapWhileIterating(self):
+ msg = map_unittest_pb2.TestMap()
+
+ string_string_iter = iter(msg.map_string_string)
+ int32_foreign_iter = iter(msg.map_int32_foreign_message)
+
+ msg.map_string_string['abc'] = '123'
+ msg.map_int32_foreign_message[5].c = 5
+
+ with self.assertRaises(RuntimeError):
+ for key in string_string_iter:
+ pass
+
+ with self.assertRaises(RuntimeError):
+ for key in int32_foreign_iter:
+ pass
+
+ def testSubmessageMap(self):
+ msg = map_unittest_pb2.TestMap()
+
+ submsg = msg.map_int32_foreign_message[111]
+ self.assertIs(submsg, msg.map_int32_foreign_message[111])
+ self.assertTrue(isinstance(submsg, unittest_pb2.ForeignMessage))
+
+ submsg.c = 5
+
+ serialized = msg.SerializeToString()
+ msg2 = map_unittest_pb2.TestMap()
+ msg2.ParseFromString(serialized)
+
+ self.assertEqual(5, msg2.map_int32_foreign_message[111].c)
+
+ # Doesn't allow direct submessage assignment.
+ with self.assertRaises(ValueError):
+ msg.map_int32_foreign_message[88] = unittest_pb2.ForeignMessage()
+
+ def testMapIteration(self):
+ msg = map_unittest_pb2.TestMap()
+
+ for k, v in msg.map_int32_int32.iteritems():
+ # Should not be reached.
+ self.assertTrue(False)
+
+ msg.map_int32_int32[2] = 4
+ msg.map_int32_int32[3] = 6
+ msg.map_int32_int32[4] = 8
+ self.assertEqual(3, len(msg.map_int32_int32))
+
+ matching_dict = {2: 4, 3: 6, 4: 8}
+ self.assertMapIterEquals(msg.map_int32_int32.iteritems(), matching_dict)
+
+ def testMapIterationClearMessage(self):
+ # Iterator needs to work even if message and map are deleted.
+ msg = map_unittest_pb2.TestMap()
+
+ msg.map_int32_int32[2] = 4
+ msg.map_int32_int32[3] = 6
+ msg.map_int32_int32[4] = 8
+
+ it = msg.map_int32_int32.iteritems()
+ del msg
+
+ matching_dict = {2: 4, 3: 6, 4: 8}
+ self.assertMapIterEquals(it, matching_dict)
+
+ def testMapConstruction(self):
+ msg = map_unittest_pb2.TestMap(map_int32_int32={1: 2, 3: 4})
+ self.assertEqual(2, msg.map_int32_int32[1])
+ self.assertEqual(4, msg.map_int32_int32[3])
+
+ msg = map_unittest_pb2.TestMap(
+ map_int32_foreign_message={3: unittest_pb2.ForeignMessage(c=5)})
+ self.assertEqual(5, msg.map_int32_foreign_message[3].c)
+
+ def testMapValidAfterFieldCleared(self):
+ # Map needs to work even if field is cleared.
+ # For the C++ implementation this tests the correctness of
+ # ScalarMapContainer::Release()
+ msg = map_unittest_pb2.TestMap()
+ map = msg.map_int32_int32
+
+ map[2] = 4
+ map[3] = 6
+ map[4] = 8
+
+ msg.ClearField('map_int32_int32')
+ matching_dict = {2: 4, 3: 6, 4: 8}
+ self.assertMapIterEquals(map.iteritems(), matching_dict)
+
+ def testMapIterValidAfterFieldCleared(self):
+ # Map iterator needs to work even if field is cleared.
+ # For the C++ implementation this tests the correctness of
+ # ScalarMapContainer::Release()
+ msg = map_unittest_pb2.TestMap()
+
+ msg.map_int32_int32[2] = 4
+ msg.map_int32_int32[3] = 6
+ msg.map_int32_int32[4] = 8
+
+ it = msg.map_int32_int32.iteritems()
+
+ msg.ClearField('map_int32_int32')
+ matching_dict = {2: 4, 3: 6, 4: 8}
+ self.assertMapIterEquals(it, matching_dict)
+
+ def testMapDelete(self):
+ msg = map_unittest_pb2.TestMap()
+
+ self.assertEqual(0, len(msg.map_int32_int32))
+
+ msg.map_int32_int32[4] = 6
+ self.assertEqual(1, len(msg.map_int32_int32))
+
+ with self.assertRaises(KeyError):
+ del msg.map_int32_int32[88]
+
+ del msg.map_int32_int32[4]
+ self.assertEqual(0, len(msg.map_int32_int32))
+
+
class ValidTypeNamesTest(unittest.TestCase):
diff --git a/python/google/protobuf/internal/proto_builder_test.py b/python/google/protobuf/internal/proto_builder_test.py
index b1e57f35..edaf3fa3 100644
--- a/python/google/protobuf/internal/proto_builder_test.py
+++ b/python/google/protobuf/internal/proto_builder_test.py
@@ -32,6 +32,7 @@
"""Tests for google.protobuf.proto_builder."""
+import collections
import unittest
from google.protobuf import descriptor_pb2
@@ -43,10 +44,11 @@ from google.protobuf import text_format
class ProtoBuilderTest(unittest.TestCase):
def setUp(self):
- self._fields = {
- 'foo': descriptor_pb2.FieldDescriptorProto.TYPE_INT64,
- 'bar': descriptor_pb2.FieldDescriptorProto.TYPE_STRING,
- }
+ self.ordered_fields = collections.OrderedDict([
+ ('foo', descriptor_pb2.FieldDescriptorProto.TYPE_INT64),
+ ('bar', descriptor_pb2.FieldDescriptorProto.TYPE_STRING),
+ ])
+ self._fields = dict(self.ordered_fields)
def testMakeSimpleProtoClass(self):
"""Test that we can create a proto class."""
@@ -59,6 +61,17 @@ class ProtoBuilderTest(unittest.TestCase):
self.assertMultiLineEqual(
'bar: "asdf"\nfoo: 12345\n', text_format.MessageToString(proto))
+ def testOrderedFields(self):
+ """Test that the field order is maintained when given an OrderedDict."""
+ proto_cls = proto_builder.MakeSimpleProtoClass(
+ self.ordered_fields,
+ full_name='net.proto2.python.public.proto_builder_test.OrderedTest')
+ proto = proto_cls()
+ proto.foo = 12345
+ proto.bar = 'asdf'
+ self.assertMultiLineEqual(
+ 'foo: 12345\nbar: "asdf"\n', text_format.MessageToString(proto))
+
def testMakeSameProtoClassTwice(self):
"""Test that the DescriptorPool is used."""
pool = descriptor_pool.DescriptorPool()
diff --git a/python/google/protobuf/internal/python_message.py b/python/google/protobuf/internal/python_message.py
index 54f584ae..ca9f7675 100755
--- a/python/google/protobuf/internal/python_message.py
+++ b/python/google/protobuf/internal/python_message.py
@@ -61,9 +61,11 @@ if sys.version_info[0] < 3:
except ImportError:
from StringIO import StringIO as BytesIO
import copy_reg as copyreg
+ _basestring = basestring
else:
from io import BytesIO
import copyreg
+ _basestring = str
import struct
import weakref
@@ -77,6 +79,7 @@ from google.protobuf.internal import type_checkers
from google.protobuf.internal import wire_format
from google.protobuf import descriptor as descriptor_mod
from google.protobuf import message as message_mod
+from google.protobuf import symbol_database
from google.protobuf import text_format
_FieldDescriptor = descriptor_mod.FieldDescriptor
@@ -101,6 +104,7 @@ def InitMessage(descriptor, cls):
for field in descriptor.fields:
_AttachFieldHelpers(cls, field)
+ descriptor._concrete_class = cls # pylint: disable=protected-access
_AddEnumValues(descriptor, cls)
_AddInitMethod(descriptor, cls)
_AddPropertiesForFields(descriptor, cls)
@@ -198,12 +202,37 @@ def _IsMessageSetExtension(field):
field.label == _FieldDescriptor.LABEL_OPTIONAL)
+def _IsMapField(field):
+ return (field.type == _FieldDescriptor.TYPE_MESSAGE and
+ field.message_type.has_options and
+ field.message_type.GetOptions().map_entry)
+
+
+def _IsMessageMapField(field):
+ value_type = field.message_type.fields_by_name["value"]
+ return value_type.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE
+
+
def _AttachFieldHelpers(cls, field_descriptor):
is_repeated = (field_descriptor.label == _FieldDescriptor.LABEL_REPEATED)
- is_packed = (field_descriptor.has_options and
- field_descriptor.GetOptions().packed)
-
- if _IsMessageSetExtension(field_descriptor):
+ is_packable = (is_repeated and
+ wire_format.IsTypePackable(field_descriptor.type))
+ if not is_packable:
+ is_packed = False
+ elif field_descriptor.containing_type.syntax == "proto2":
+ is_packed = (field_descriptor.has_options and
+ field_descriptor.GetOptions().packed)
+ else:
+ has_packed_false = (field_descriptor.has_options and
+ field_descriptor.GetOptions().HasField("packed") and
+ field_descriptor.GetOptions().packed == False)
+ is_packed = not has_packed_false
+ is_map_entry = _IsMapField(field_descriptor)
+
+ if is_map_entry:
+ field_encoder = encoder.MapEncoder(field_descriptor)
+ sizer = encoder.MapSizer(field_descriptor)
+ elif _IsMessageSetExtension(field_descriptor):
field_encoder = encoder.MessageSetItemEncoder(field_descriptor.number)
sizer = encoder.MessageSetItemSizer(field_descriptor.number)
else:
@@ -228,9 +257,16 @@ def _AttachFieldHelpers(cls, field_descriptor):
if field_descriptor.containing_oneof is not None:
oneof_descriptor = field_descriptor
- field_decoder = type_checkers.TYPE_TO_DECODER[decode_type](
- field_descriptor.number, is_repeated, is_packed,
- field_descriptor, field_descriptor._default_constructor)
+ if is_map_entry:
+ is_message_map = _IsMessageMapField(field_descriptor)
+
+ field_decoder = decoder.MapDecoder(
+ field_descriptor, _GetInitializeDefaultForMap(field_descriptor),
+ is_message_map)
+ else:
+ field_decoder = type_checkers.TYPE_TO_DECODER[decode_type](
+ field_descriptor.number, is_repeated, is_packed,
+ field_descriptor, field_descriptor._default_constructor)
cls._decoders_by_tag[tag_bytes] = (field_decoder, oneof_descriptor)
@@ -265,6 +301,26 @@ def _AddEnumValues(descriptor, cls):
setattr(cls, enum_value.name, enum_value.number)
+def _GetInitializeDefaultForMap(field):
+ if field.label != _FieldDescriptor.LABEL_REPEATED:
+ raise ValueError('map_entry set on non-repeated field %s' % (
+ field.name))
+ fields_by_name = field.message_type.fields_by_name
+ key_checker = type_checkers.GetTypeChecker(fields_by_name['key'])
+
+ value_field = fields_by_name['value']
+ if _IsMessageMapField(field):
+ def MakeMessageMapDefault(message):
+ return containers.MessageMap(
+ message._listener_for_children, value_field.message_type, key_checker)
+ return MakeMessageMapDefault
+ else:
+ value_checker = type_checkers.GetTypeChecker(value_field)
+ def MakePrimitiveMapDefault(message):
+ return containers.ScalarMap(
+ message._listener_for_children, key_checker, value_checker)
+ return MakePrimitiveMapDefault
+
def _DefaultValueConstructorForField(field):
"""Returns a function which returns a default value for a field.
@@ -279,6 +335,9 @@ def _DefaultValueConstructorForField(field):
value may refer back to |message| via a weak reference.
"""
+ if _IsMapField(field):
+ return _GetInitializeDefaultForMap(field)
+
if field.label == _FieldDescriptor.LABEL_REPEATED:
if field.has_default_value and field.default_value != []:
raise ValueError('Repeated field default value not empty list: %s' % (
@@ -329,7 +388,22 @@ def _ReraiseTypeErrorWithFieldName(message_name, field_name):
def _AddInitMethod(message_descriptor, cls):
"""Adds an __init__ method to cls."""
- fields = message_descriptor.fields
+
+ def _GetIntegerEnumValue(enum_type, value):
+ """Convert a string or integer enum value to an integer.
+
+ If the value is a string, it is converted to the enum value in
+ enum_type with the same name. If the value is not a string, it's
+ returned as-is. (No conversion or bounds-checking is done.)
+ """
+ if isinstance(value, _basestring):
+ try:
+ return enum_type.values_by_name[value].number
+ except KeyError:
+ raise ValueError('Enum type %s: unknown label "%s"' % (
+ enum_type.full_name, value))
+ return value
+
def init(self, **kwargs):
self._cached_byte_size = 0
self._cached_byte_size_dirty = len(kwargs) > 0
@@ -352,19 +426,37 @@ def _AddInitMethod(message_descriptor, cls):
if field.label == _FieldDescriptor.LABEL_REPEATED:
copy = field._default_constructor(self)
if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE: # Composite
- for val in field_value:
- copy.add().MergeFrom(val)
+ if _IsMapField(field):
+ if _IsMessageMapField(field):
+ for key in field_value:
+ copy[key].MergeFrom(field_value[key])
+ else:
+ copy.update(field_value)
+ else:
+ for val in field_value:
+ if isinstance(val, dict):
+ copy.add(**val)
+ else:
+ copy.add().MergeFrom(val)
else: # Scalar
+ if field.cpp_type == _FieldDescriptor.CPPTYPE_ENUM:
+ field_value = [_GetIntegerEnumValue(field.enum_type, val)
+ for val in field_value]
copy.extend(field_value)
self._fields[field] = copy
elif field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
copy = field._default_constructor(self)
+ new_val = field_value
+ if isinstance(field_value, dict):
+ new_val = field.message_type._concrete_class(**field_value)
try:
- copy.MergeFrom(field_value)
+ copy.MergeFrom(new_val)
except TypeError:
_ReraiseTypeErrorWithFieldName(message_descriptor.name, field_name)
self._fields[field] = copy
else:
+ if field.cpp_type == _FieldDescriptor.CPPTYPE_ENUM:
+ field_value = _GetIntegerEnumValue(field.enum_type, field_value)
try:
setattr(self, field_name, field_value)
except TypeError:
@@ -758,6 +850,26 @@ def _AddHasExtensionMethod(cls):
return extension_handle in self._fields
cls.HasExtension = HasExtension
+def _UnpackAny(msg):
+ type_url = msg.type_url
+ db = symbol_database.Default()
+
+ if not type_url:
+ return None
+
+ # TODO(haberman): For now we just strip the hostname. Better logic will be
+ # required.
+ type_name = type_url.split("/")[-1]
+ descriptor = db.pool.FindMessageTypeByName(type_name)
+
+ if descriptor is None:
+ return None
+
+ message_class = db.GetPrototype(descriptor)
+ message = message_class()
+
+ message.ParseFromString(msg.value)
+ return message
def _AddEqualsMethod(message_descriptor, cls):
"""Helper for _AddMessageMethods()."""
@@ -769,6 +881,12 @@ def _AddEqualsMethod(message_descriptor, cls):
if self is other:
return True
+ if self.DESCRIPTOR.full_name == "google.protobuf.Any":
+ any_a = _UnpackAny(self)
+ any_b = _UnpackAny(other)
+ if any_a and any_b:
+ return any_a == any_b
+
if not self.ListFields() == other.ListFields():
return False
@@ -961,6 +1079,9 @@ def _AddIsInitializedMethod(message_descriptor, cls):
for field, value in list(self._fields.items()): # dict can change size!
if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
if field.label == _FieldDescriptor.LABEL_REPEATED:
+ if (field.message_type.has_options and
+ field.message_type.GetOptions().map_entry):
+ continue
for element in value:
if not element.IsInitialized():
if errors is not None:
@@ -996,16 +1117,26 @@ def _AddIsInitializedMethod(message_descriptor, cls):
else:
name = field.name
- if field.label == _FieldDescriptor.LABEL_REPEATED:
+ if _IsMapField(field):
+ if _IsMessageMapField(field):
+ for key in value:
+ element = value[key]
+ prefix = "%s[%d]." % (name, key)
+ sub_errors = element.FindInitializationErrors()
+ errors += [prefix + error for error in sub_errors]
+ else:
+ # ScalarMaps can't have any initialization errors.
+ pass
+ elif field.label == _FieldDescriptor.LABEL_REPEATED:
for i in xrange(len(value)):
element = value[i]
prefix = "%s[%d]." % (name, i)
sub_errors = element.FindInitializationErrors()
- errors += [ prefix + error for error in sub_errors ]
+ errors += [prefix + error for error in sub_errors]
else:
prefix = name + "."
sub_errors = value.FindInitializationErrors()
- errors += [ prefix + error for error in sub_errors ]
+ errors += [prefix + error for error in sub_errors]
return errors
diff --git a/python/google/protobuf/internal/reflection_test.py b/python/google/protobuf/internal/reflection_test.py
index ae79c78b..4eca4989 100755
--- a/python/google/protobuf/internal/reflection_test.py
+++ b/python/google/protobuf/internal/reflection_test.py
@@ -39,8 +39,8 @@ import copy
import gc
import operator
import struct
-import unittest
+import unittest
from google.protobuf import unittest_import_pb2
from google.protobuf import unittest_mset_pb2
from google.protobuf import unittest_pb2
@@ -1798,8 +1798,8 @@ class ReflectionTest(unittest.TestCase):
def testBadArguments(self):
# Some of these assertions used to segfault.
from google.protobuf.pyext import _message
- self.assertRaises(TypeError, _message.Message._GetFieldDescriptor, 3)
- self.assertRaises(TypeError, _message.Message._GetExtensionDescriptor, 42)
+ self.assertRaises(TypeError, _message.default_pool.FindFieldByName, 3)
+ self.assertRaises(TypeError, _message.default_pool.FindExtensionByName, 42)
self.assertRaises(TypeError,
unittest_pb2.TestAllTypes().__getattribute__, 42)
diff --git a/python/google/protobuf/internal/service_reflection_test.py b/python/google/protobuf/internal/service_reflection_test.py
index de462124..9967255a 100755
--- a/python/google/protobuf/internal/service_reflection_test.py
+++ b/python/google/protobuf/internal/service_reflection_test.py
@@ -35,7 +35,6 @@
__author__ = 'petar@google.com (Petar Petrov)'
import unittest
-
from google.protobuf import unittest_pb2
from google.protobuf import service_reflection
from google.protobuf import service
@@ -81,7 +80,7 @@ class FooUnitTest(unittest.TestCase):
self.assertEqual('Method Bar not implemented.',
rpc_controller.failure_message)
self.assertEqual(None, self.callback_response)
-
+
class MyServiceImpl(unittest_pb2.TestService):
def Foo(self, rpc_controller, request, done):
self.foo_called = True
diff --git a/python/google/protobuf/internal/symbol_database_test.py b/python/google/protobuf/internal/symbol_database_test.py
index c888aff7..80b83bc2 100644
--- a/python/google/protobuf/internal/symbol_database_test.py
+++ b/python/google/protobuf/internal/symbol_database_test.py
@@ -33,7 +33,6 @@
"""Tests for google.protobuf.symbol_database."""
import unittest
-
from google.protobuf import unittest_pb2
from google.protobuf import symbol_database
diff --git a/python/google/protobuf/internal/test_util.py b/python/google/protobuf/internal/test_util.py
index d84e3836..0cbdbad9 100755
--- a/python/google/protobuf/internal/test_util.py
+++ b/python/google/protobuf/internal/test_util.py
@@ -75,7 +75,8 @@ def SetAllNonLazyFields(message):
message.optional_string = u'115'
message.optional_bytes = b'116'
- message.optionalgroup.a = 117
+ if IsProto2(message):
+ message.optionalgroup.a = 117
message.optional_nested_message.bb = 118
message.optional_foreign_message.c = 119
message.optional_import_message.d = 120
@@ -109,7 +110,8 @@ def SetAllNonLazyFields(message):
message.repeated_string.append(u'215')
message.repeated_bytes.append(b'216')
- message.repeatedgroup.add().a = 217
+ if IsProto2(message):
+ message.repeatedgroup.add().a = 217
message.repeated_nested_message.add().bb = 218
message.repeated_foreign_message.add().c = 219
message.repeated_import_message.add().d = 220
@@ -140,7 +142,8 @@ def SetAllNonLazyFields(message):
message.repeated_string.append(u'315')
message.repeated_bytes.append(b'316')
- message.repeatedgroup.add().a = 317
+ if IsProto2(message):
+ message.repeatedgroup.add().a = 317
message.repeated_nested_message.add().bb = 318
message.repeated_foreign_message.add().c = 319
message.repeated_import_message.add().d = 320
@@ -396,7 +399,8 @@ def ExpectAllFieldsSet(test_case, message):
test_case.assertTrue(message.HasField('optional_string'))
test_case.assertTrue(message.HasField('optional_bytes'))
- test_case.assertTrue(message.HasField('optionalgroup'))
+ if IsProto2(message):
+ test_case.assertTrue(message.HasField('optionalgroup'))
test_case.assertTrue(message.HasField('optional_nested_message'))
test_case.assertTrue(message.HasField('optional_foreign_message'))
test_case.assertTrue(message.HasField('optional_import_message'))
@@ -430,7 +434,8 @@ def ExpectAllFieldsSet(test_case, message):
test_case.assertEqual('115', message.optional_string)
test_case.assertEqual(b'116', message.optional_bytes)
- test_case.assertEqual(117, message.optionalgroup.a)
+ if IsProto2(message):
+ test_case.assertEqual(117, message.optionalgroup.a)
test_case.assertEqual(118, message.optional_nested_message.bb)
test_case.assertEqual(119, message.optional_foreign_message.c)
test_case.assertEqual(120, message.optional_import_message.d)
@@ -463,7 +468,8 @@ def ExpectAllFieldsSet(test_case, message):
test_case.assertEqual(2, len(message.repeated_string))
test_case.assertEqual(2, len(message.repeated_bytes))
- test_case.assertEqual(2, len(message.repeatedgroup))
+ if IsProto2(message):
+ test_case.assertEqual(2, len(message.repeatedgroup))
test_case.assertEqual(2, len(message.repeated_nested_message))
test_case.assertEqual(2, len(message.repeated_foreign_message))
test_case.assertEqual(2, len(message.repeated_import_message))
@@ -491,7 +497,8 @@ def ExpectAllFieldsSet(test_case, message):
test_case.assertEqual('215', message.repeated_string[0])
test_case.assertEqual(b'216', message.repeated_bytes[0])
- test_case.assertEqual(217, message.repeatedgroup[0].a)
+ if IsProto2(message):
+ test_case.assertEqual(217, message.repeatedgroup[0].a)
test_case.assertEqual(218, message.repeated_nested_message[0].bb)
test_case.assertEqual(219, message.repeated_foreign_message[0].c)
test_case.assertEqual(220, message.repeated_import_message[0].d)
@@ -521,7 +528,8 @@ def ExpectAllFieldsSet(test_case, message):
test_case.assertEqual('315', message.repeated_string[1])
test_case.assertEqual(b'316', message.repeated_bytes[1])
- test_case.assertEqual(317, message.repeatedgroup[1].a)
+ if IsProto2(message):
+ test_case.assertEqual(317, message.repeatedgroup[1].a)
test_case.assertEqual(318, message.repeated_nested_message[1].bb)
test_case.assertEqual(319, message.repeated_foreign_message[1].c)
test_case.assertEqual(320, message.repeated_import_message[1].d)
diff --git a/python/google/protobuf/internal/text_encoding_test.py b/python/google/protobuf/internal/text_encoding_test.py
index 27896b94..5df13b78 100755
--- a/python/google/protobuf/internal/text_encoding_test.py
+++ b/python/google/protobuf/internal/text_encoding_test.py
@@ -33,7 +33,6 @@
"""Tests for google.protobuf.text_encoding."""
import unittest
-
from google.protobuf import text_encoding
TEST_VALUES = [
diff --git a/python/google/protobuf/internal/text_format_test.py b/python/google/protobuf/internal/text_format_test.py
index bf7e06ee..06bd1ee5 100755
--- a/python/google/protobuf/internal/text_format_test.py
+++ b/python/google/protobuf/internal/text_format_test.py
@@ -37,8 +37,10 @@ __author__ = 'kenton@google.com (Kenton Varda)'
import re
import unittest
+import unittest
from google.protobuf.internal import _parameterized
+from google.protobuf import map_unittest_pb2
from google.protobuf import unittest_mset_pb2
from google.protobuf import unittest_pb2
from google.protobuf import unittest_proto3_arena_pb2
@@ -309,31 +311,6 @@ class TextFormatTest(TextFormatBase):
r'"unknown_field".'),
text_format.Parse, text, message)
- def testParseGroupNotClosed(self, message_module):
- message = message_module.TestAllTypes()
- text = 'RepeatedGroup: <'
- self.assertRaisesRegexp(
- text_format.ParseError, '1:16 : Expected ">".',
- text_format.Parse, text, message)
-
- text = 'RepeatedGroup: {'
- self.assertRaisesRegexp(
- text_format.ParseError, '1:16 : Expected "}".',
- text_format.Parse, text, message)
-
- def testParseEmptyGroup(self, message_module):
- message = message_module.TestAllTypes()
- text = 'OptionalGroup: {}'
- text_format.Parse(text, message)
- self.assertTrue(message.HasField('optionalgroup'))
-
- message.Clear()
-
- message = message_module.TestAllTypes()
- text = 'OptionalGroup: <>'
- text_format.Parse(text, message)
- self.assertTrue(message.HasField('optionalgroup'))
-
def testParseBadEnumValue(self, message_module):
message = message_module.TestAllTypes()
text = 'optional_nested_enum: BARR'
@@ -408,6 +385,14 @@ class TextFormatTest(TextFormatBase):
# Ideally the schemas would be made more similar so these tests could pass.
class OnlyWorksWithProto2RightNowTests(TextFormatBase):
+ def testPrintAllFieldsPointy(self, message_module):
+ message = unittest_pb2.TestAllTypes()
+ test_util.SetAllFields(message)
+ self.CompareToGoldenFile(
+ self.RemoveRedundantZeros(
+ text_format.MessageToString(message, pointy_brackets=True)),
+ 'text_format_unittest_data_pointy_oneof.txt')
+
def testParseGolden(self):
golden_text = '\n'.join(self.ReadGolden('text_format_unittest_data.txt'))
parsed_message = unittest_pb2.TestAllTypes()
@@ -471,8 +456,49 @@ class OnlyWorksWithProto2RightNowTests(TextFormatBase):
test_util.SetAllFields(message)
self.assertEquals(message, parsed_message)
+ def testPrintMap(self):
+ message = map_unittest_pb2.TestMap()
-# Tests of proto2-only features (MessageSet and extensions).
+ message.map_int32_int32[-123] = -456
+ message.map_int64_int64[-2**33] = -2**34
+ message.map_uint32_uint32[123] = 456
+ message.map_uint64_uint64[2**33] = 2**34
+ message.map_string_string["abc"] = "123"
+ message.map_int32_foreign_message[111].c = 5
+
+ # Maps are serialized to text format using their underlying repeated
+ # representation.
+ self.CompareToGoldenText(
+ text_format.MessageToString(message),
+ 'map_int32_int32 {\n'
+ ' key: -123\n'
+ ' value: -456\n'
+ '}\n'
+ 'map_int64_int64 {\n'
+ ' key: -8589934592\n'
+ ' value: -17179869184\n'
+ '}\n'
+ 'map_uint32_uint32 {\n'
+ ' key: 123\n'
+ ' value: 456\n'
+ '}\n'
+ 'map_uint64_uint64 {\n'
+ ' key: 8589934592\n'
+ ' value: 17179869184\n'
+ '}\n'
+ 'map_string_string {\n'
+ ' key: "abc"\n'
+ ' value: "123"\n'
+ '}\n'
+ 'map_int32_foreign_message {\n'
+ ' key: 111\n'
+ ' value {\n'
+ ' c: 5\n'
+ ' }\n'
+ '}\n')
+
+
+# Tests of proto2-only features (MessageSet, extensions, etc.).
class Proto2Tests(TextFormatBase):
def testPrintMessageSet(self):
@@ -620,6 +646,69 @@ class Proto2Tests(TextFormatBase):
'have multiple "optional_int32" fields.'),
text_format.Parse, text, message)
+ def testParseGroupNotClosed(self):
+ message = unittest_pb2.TestAllTypes()
+ text = 'RepeatedGroup: <'
+ self.assertRaisesRegexp(
+ text_format.ParseError, '1:16 : Expected ">".',
+ text_format.Parse, text, message)
+ text = 'RepeatedGroup: {'
+ self.assertRaisesRegexp(
+ text_format.ParseError, '1:16 : Expected "}".',
+ text_format.Parse, text, message)
+
+ def testParseEmptyGroup(self):
+ message = unittest_pb2.TestAllTypes()
+ text = 'OptionalGroup: {}'
+ text_format.Parse(text, message)
+ self.assertTrue(message.HasField('optionalgroup'))
+
+ message.Clear()
+
+ message = unittest_pb2.TestAllTypes()
+ text = 'OptionalGroup: <>'
+ text_format.Parse(text, message)
+ self.assertTrue(message.HasField('optionalgroup'))
+
+ # Maps aren't really proto2-only, but our test schema only has maps for
+ # proto2.
+ def testParseMap(self):
+ text = ('map_int32_int32 {\n'
+ ' key: -123\n'
+ ' value: -456\n'
+ '}\n'
+ 'map_int64_int64 {\n'
+ ' key: -8589934592\n'
+ ' value: -17179869184\n'
+ '}\n'
+ 'map_uint32_uint32 {\n'
+ ' key: 123\n'
+ ' value: 456\n'
+ '}\n'
+ 'map_uint64_uint64 {\n'
+ ' key: 8589934592\n'
+ ' value: 17179869184\n'
+ '}\n'
+ 'map_string_string {\n'
+ ' key: "abc"\n'
+ ' value: "123"\n'
+ '}\n'
+ 'map_int32_foreign_message {\n'
+ ' key: 111\n'
+ ' value {\n'
+ ' c: 5\n'
+ ' }\n'
+ '}\n')
+ message = map_unittest_pb2.TestMap()
+ text_format.Parse(text, message)
+
+ self.assertEqual(-456, message.map_int32_int32[-123])
+ self.assertEqual(-2**34, message.map_int64_int64[-2**33])
+ self.assertEqual(456, message.map_uint32_uint32[123])
+ self.assertEqual(2**34, message.map_uint64_uint64[2**33])
+ self.assertEqual("123", message.map_string_string["abc"])
+ self.assertEqual(5, message.map_int32_foreign_message[111].c)
+
class TokenizerTest(unittest.TestCase):
diff --git a/python/google/protobuf/internal/type_checkers.py b/python/google/protobuf/internal/type_checkers.py
index 76c056c4..f20e526a 100755
--- a/python/google/protobuf/internal/type_checkers.py
+++ b/python/google/protobuf/internal/type_checkers.py
@@ -129,6 +129,9 @@ class IntValueChecker(object):
proposed_value = self._TYPE(proposed_value)
return proposed_value
+ def DefaultValue(self):
+ return 0
+
class EnumValueChecker(object):
@@ -146,6 +149,9 @@ class EnumValueChecker(object):
raise ValueError('Unknown enum value: %d' % proposed_value)
return proposed_value
+ def DefaultValue(self):
+ return self._enum_type.values[0].number
+
class UnicodeValueChecker(object):
@@ -171,6 +177,9 @@ class UnicodeValueChecker(object):
(proposed_value))
return proposed_value
+ def DefaultValue(self):
+ return u""
+
class Int32ValueChecker(IntValueChecker):
# We're sure to use ints instead of longs here since comparison may be more
diff --git a/python/google/protobuf/internal/unknown_fields_test.py b/python/google/protobuf/internal/unknown_fields_test.py
index 9337ae8a..1b81ae79 100755
--- a/python/google/protobuf/internal/unknown_fields_test.py
+++ b/python/google/protobuf/internal/unknown_fields_test.py
@@ -36,7 +36,6 @@
__author__ = 'bohdank@google.com (Bohdan Koval)'
import unittest
-
from google.protobuf import unittest_mset_pb2
from google.protobuf import unittest_pb2
from google.protobuf import unittest_proto3_arena_pb2
diff --git a/python/google/protobuf/internal/wire_format_test.py b/python/google/protobuf/internal/wire_format_test.py
index 5cd7fcb9..78dc1167 100755
--- a/python/google/protobuf/internal/wire_format_test.py
+++ b/python/google/protobuf/internal/wire_format_test.py
@@ -35,7 +35,6 @@
__author__ = 'robinson@google.com (Will Robinson)'
import unittest
-
from google.protobuf import message
from google.protobuf.internal import wire_format
diff --git a/python/google/protobuf/proto_builder.py b/python/google/protobuf/proto_builder.py
index 1fa28f1a..7489cf63 100644
--- a/python/google/protobuf/proto_builder.py
+++ b/python/google/protobuf/proto_builder.py
@@ -30,6 +30,7 @@
"""Dynamic Protobuf class creator."""
+import collections
import hashlib
import os
@@ -59,7 +60,9 @@ def MakeSimpleProtoClass(fields, full_name, pool=None):
Note: this doesn't validate field names!
Args:
- fields: dict of {name: field_type} mappings for each field in the proto.
+ fields: dict of {name: field_type} mappings for each field in the proto. If
+ this is an OrderedDict the order will be maintained, otherwise the
+ fields will be sorted by name.
full_name: str, the fully-qualified name of the proto type.
pool: optional DescriptorPool instance.
Returns:
@@ -73,12 +76,19 @@ def MakeSimpleProtoClass(fields, full_name, pool=None):
# The factory's DescriptorPool doesn't know about this class yet.
pass
+ # Get a list of (name, field_type) tuples from the fields dict. If fields was
+ # an OrderedDict we keep the order, but otherwise we sort the field to ensure
+ # consistent ordering.
+ field_items = fields.items()
+ if not isinstance(fields, collections.OrderedDict):
+ field_items = sorted(field_items)
+
# Use a consistent file name that is unlikely to conflict with any imported
# proto files.
fields_hash = hashlib.sha1()
- for f_name, f_type in sorted(fields.items()):
- fields_hash.update(f_name.encode('utf8'))
- fields_hash.update(str(f_type).encode('utf8'))
+ for f_name, f_type in field_items:
+ fields_hash.update(f_name.encode('utf-8'))
+ fields_hash.update(str(f_type).encode('utf-8'))
proto_file_name = fields_hash.hexdigest() + '.proto'
package, name = full_name.rsplit('.', 1)
@@ -87,7 +97,7 @@ def MakeSimpleProtoClass(fields, full_name, pool=None):
file_proto.package = package
desc_proto = file_proto.message_type.add()
desc_proto.name = name
- for f_number, (f_name, f_type) in enumerate(sorted(fields.items()), 1):
+ for f_number, (f_name, f_type) in enumerate(field_items, 1):
field_proto = desc_proto.field.add()
field_proto.name = f_name
field_proto.number = f_number
diff --git a/python/google/protobuf/pyext/descriptor.cc b/python/google/protobuf/pyext/descriptor.cc
index e77d0bb9..2160757b 100644
--- a/python/google/protobuf/pyext/descriptor.cc
+++ b/python/google/protobuf/pyext/descriptor.cc
@@ -43,8 +43,6 @@
#include <google/protobuf/pyext/message.h>
#include <google/protobuf/pyext/scoped_pyobject_ptr.h>
-#define C(str) const_cast<char*>(str)
-
#if PY_MAJOR_VERSION >= 3
#define PyString_FromStringAndSize PyUnicode_FromStringAndSize
#define PyString_Check PyUnicode_Check
@@ -257,8 +255,14 @@ namespace descriptor {
// Creates or retrieve a Python descriptor of the specified type.
// Objects are interned: the same descriptor will return the same object if it
// was kept alive.
+// 'was_created' is an optional pointer to a bool, and is set to true if a new
+// object was allocated.
// Always return a new reference.
-PyObject* NewInternedDescriptor(PyTypeObject* type, const void* descriptor) {
+PyObject* NewInternedDescriptor(PyTypeObject* type, const void* descriptor,
+ bool* was_created) {
+ if (was_created) {
+ *was_created = false;
+ }
if (descriptor == NULL) {
PyErr_BadInternalCall();
return NULL;
@@ -283,6 +287,9 @@ PyObject* NewInternedDescriptor(PyTypeObject* type, const void* descriptor) {
GetDescriptorPool()->interned_descriptors->insert(
std::make_pair(descriptor, reinterpret_cast<PyObject*>(py_descriptor)));
+ if (was_created) {
+ *was_created = true;
+ }
return reinterpret_cast<PyObject*>(py_descriptor);
}
@@ -298,9 +305,7 @@ static PyGetSetDef Getters[] = {
PyTypeObject PyBaseDescriptor_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- // Keep the fully qualified _message symbol in a line for opensource.
- "google.protobuf.internal._message."
- "DescriptorBase", // tp_name
+ FULL_MODULE_NAME ".DescriptorBase", // tp_name
sizeof(PyBaseDescriptor), // tp_basicsize
0, // tp_itemsize
(destructor)Dealloc, // tp_dealloc
@@ -357,7 +362,7 @@ static PyObject* GetFullName(PyBaseDescriptor* self, void *closure) {
}
static PyObject* GetFile(PyBaseDescriptor *self, void *closure) {
- return PyFileDescriptor_New(_GetDescriptor(self)->file());
+ return PyFileDescriptor_FromDescriptor(_GetDescriptor(self)->file());
}
static PyObject* GetConcreteClass(PyBaseDescriptor* self, void *closure) {
@@ -367,17 +372,6 @@ static PyObject* GetConcreteClass(PyBaseDescriptor* self, void *closure) {
return concrete_class;
}
-static int SetConcreteClass(PyBaseDescriptor *self, PyObject *value,
- void *closure) {
- // This attribute is also set from reflection.py. Check that it's actually a
- // no-op.
- if (value != cdescriptor_pool::GetMessageClass(
- GetDescriptorPool(), _GetDescriptor(self))) {
- PyErr_SetString(PyExc_AttributeError, "Cannot change _concrete_class");
- }
- return 0;
-}
-
static PyObject* GetFieldsByName(PyBaseDescriptor* self, void *closure) {
return NewMessageFieldsByName(_GetDescriptor(self));
}
@@ -452,7 +446,7 @@ static PyObject* GetContainingType(PyBaseDescriptor *self, void *closure) {
const Descriptor* containing_type =
_GetDescriptor(self)->containing_type();
if (containing_type) {
- return PyMessageDescriptor_New(containing_type);
+ return PyMessageDescriptor_FromDescriptor(containing_type);
} else {
Py_RETURN_NONE;
}
@@ -515,29 +509,34 @@ static PyObject* GetSyntax(PyBaseDescriptor *self, void *closure) {
}
static PyGetSetDef Getters[] = {
- { C("name"), (getter)GetName, NULL, "Last name", NULL},
- { C("full_name"), (getter)GetFullName, NULL, "Full name", NULL},
- { C("_concrete_class"), (getter)GetConcreteClass, (setter)SetConcreteClass, "concrete class", NULL},
- { C("file"), (getter)GetFile, NULL, "File descriptor", NULL},
-
- { C("fields"), (getter)GetFieldsSeq, NULL, "Fields sequence", NULL},
- { C("fields_by_name"), (getter)GetFieldsByName, NULL, "Fields by name", NULL},
- { C("fields_by_number"), (getter)GetFieldsByNumber, NULL, "Fields by number", NULL},
- { C("nested_types"), (getter)GetNestedTypesSeq, NULL, "Nested types sequence", NULL},
- { C("nested_types_by_name"), (getter)GetNestedTypesByName, NULL, "Nested types by name", NULL},
- { C("extensions"), (getter)GetExtensions, NULL, "Extensions Sequence", NULL},
- { C("extensions_by_name"), (getter)GetExtensionsByName, NULL, "Extensions by name", NULL},
- { C("extension_ranges"), (getter)GetExtensionRanges, NULL, "Extension ranges", NULL},
- { C("enum_types"), (getter)GetEnumsSeq, NULL, "Enum sequence", NULL},
- { C("enum_types_by_name"), (getter)GetEnumTypesByName, NULL, "Enum types by name", NULL},
- { C("enum_values_by_name"), (getter)GetEnumValuesByName, NULL, "Enum values by name", NULL},
- { C("oneofs_by_name"), (getter)GetOneofsByName, NULL, "Oneofs by name", NULL},
- { C("oneofs"), (getter)GetOneofsSeq, NULL, "Oneofs by name", NULL},
- { C("containing_type"), (getter)GetContainingType, (setter)SetContainingType, "Containing type", NULL},
- { C("is_extendable"), (getter)IsExtendable, (setter)NULL, NULL, NULL},
- { C("has_options"), (getter)GetHasOptions, (setter)SetHasOptions, "Has Options", NULL},
- { C("_options"), (getter)NULL, (setter)SetOptions, "Options", NULL},
- { C("syntax"), (getter)GetSyntax, (setter)NULL, "Syntax", NULL},
+ { "name", (getter)GetName, NULL, "Last name"},
+ { "full_name", (getter)GetFullName, NULL, "Full name"},
+ { "_concrete_class", (getter)GetConcreteClass, NULL, "concrete class"},
+ { "file", (getter)GetFile, NULL, "File descriptor"},
+
+ { "fields", (getter)GetFieldsSeq, NULL, "Fields sequence"},
+ { "fields_by_name", (getter)GetFieldsByName, NULL, "Fields by name"},
+ { "fields_by_number", (getter)GetFieldsByNumber, NULL, "Fields by number"},
+ { "nested_types", (getter)GetNestedTypesSeq, NULL, "Nested types sequence"},
+ { "nested_types_by_name", (getter)GetNestedTypesByName, NULL,
+ "Nested types by name"},
+ { "extensions", (getter)GetExtensions, NULL, "Extensions Sequence"},
+ { "extensions_by_name", (getter)GetExtensionsByName, NULL,
+ "Extensions by name"},
+ { "extension_ranges", (getter)GetExtensionRanges, NULL, "Extension ranges"},
+ { "enum_types", (getter)GetEnumsSeq, NULL, "Enum sequence"},
+ { "enum_types_by_name", (getter)GetEnumTypesByName, NULL,
+ "Enum types by name"},
+ { "enum_values_by_name", (getter)GetEnumValuesByName, NULL,
+ "Enum values by name"},
+ { "oneofs_by_name", (getter)GetOneofsByName, NULL, "Oneofs by name"},
+ { "oneofs", (getter)GetOneofsSeq, NULL, "Oneofs by name"},
+ { "containing_type", (getter)GetContainingType, (setter)SetContainingType,
+ "Containing type"},
+ { "is_extendable", (getter)IsExtendable, (setter)NULL},
+ { "has_options", (getter)GetHasOptions, (setter)SetHasOptions, "Has Options"},
+ { "_options", (getter)NULL, (setter)SetOptions, "Options"},
+ { "syntax", (getter)GetSyntax, (setter)NULL, "Syntax"},
{NULL}
};
@@ -552,9 +551,7 @@ static PyMethodDef Methods[] = {
PyTypeObject PyMessageDescriptor_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- // Keep the fully qualified _message symbol in a line for opensource.
- C("google.protobuf.internal._message."
- "MessageDescriptor"), // tp_name
+ FULL_MODULE_NAME ".MessageDescriptor", // tp_name
sizeof(PyBaseDescriptor), // tp_basicsize
0, // tp_itemsize
0, // tp_dealloc
@@ -573,7 +570,7 @@ PyTypeObject PyMessageDescriptor_Type = {
0, // tp_setattro
0, // tp_as_buffer
Py_TPFLAGS_DEFAULT, // tp_flags
- C("A Message Descriptor"), // tp_doc
+ "A Message Descriptor", // tp_doc
0, // tp_traverse
0, // tp_clear
0, // tp_richcompare
@@ -586,10 +583,10 @@ PyTypeObject PyMessageDescriptor_Type = {
&descriptor::PyBaseDescriptor_Type, // tp_base
};
-PyObject* PyMessageDescriptor_New(
+PyObject* PyMessageDescriptor_FromDescriptor(
const Descriptor* message_descriptor) {
return descriptor::NewInternedDescriptor(
- &PyMessageDescriptor_Type, message_descriptor);
+ &PyMessageDescriptor_Type, message_descriptor, NULL);
}
const Descriptor* PyMessageDescriptor_AsDescriptor(PyObject* obj) {
@@ -715,7 +712,7 @@ static PyObject* GetCDescriptor(PyObject *self, void *closure) {
static PyObject *GetEnumType(PyBaseDescriptor *self, void *closure) {
const EnumDescriptor* enum_type = _GetDescriptor(self)->enum_type();
if (enum_type) {
- return PyEnumDescriptor_New(enum_type);
+ return PyEnumDescriptor_FromDescriptor(enum_type);
} else {
Py_RETURN_NONE;
}
@@ -728,7 +725,7 @@ static int SetEnumType(PyBaseDescriptor *self, PyObject *value, void *closure) {
static PyObject *GetMessageType(PyBaseDescriptor *self, void *closure) {
const Descriptor* message_type = _GetDescriptor(self)->message_type();
if (message_type) {
- return PyMessageDescriptor_New(message_type);
+ return PyMessageDescriptor_FromDescriptor(message_type);
} else {
Py_RETURN_NONE;
}
@@ -743,7 +740,7 @@ static PyObject* GetContainingType(PyBaseDescriptor *self, void *closure) {
const Descriptor* containing_type =
_GetDescriptor(self)->containing_type();
if (containing_type) {
- return PyMessageDescriptor_New(containing_type);
+ return PyMessageDescriptor_FromDescriptor(containing_type);
} else {
Py_RETURN_NONE;
}
@@ -758,7 +755,7 @@ static PyObject* GetExtensionScope(PyBaseDescriptor *self, void *closure) {
const Descriptor* extension_scope =
_GetDescriptor(self)->extension_scope();
if (extension_scope) {
- return PyMessageDescriptor_New(extension_scope);
+ return PyMessageDescriptor_FromDescriptor(extension_scope);
} else {
Py_RETURN_NONE;
}
@@ -768,7 +765,7 @@ static PyObject* GetContainingOneof(PyBaseDescriptor *self, void *closure) {
const OneofDescriptor* containing_oneof =
_GetDescriptor(self)->containing_oneof();
if (containing_oneof) {
- return PyOneofDescriptor_New(containing_oneof);
+ return PyOneofDescriptor_FromDescriptor(containing_oneof);
} else {
Py_RETURN_NONE;
}
@@ -803,26 +800,30 @@ static int SetOptions(PyBaseDescriptor *self, PyObject *value,
static PyGetSetDef Getters[] = {
- { C("full_name"), (getter)GetFullName, NULL, "Full name", NULL},
- { C("name"), (getter)GetName, NULL, "Unqualified name", NULL},
- { C("type"), (getter)GetType, NULL, "C++ Type", NULL},
- { C("cpp_type"), (getter)GetCppType, NULL, "C++ Type", NULL},
- { C("label"), (getter)GetLabel, NULL, "Label", NULL},
- { C("number"), (getter)GetNumber, NULL, "Number", NULL},
- { C("index"), (getter)GetIndex, NULL, "Index", NULL},
- { C("default_value"), (getter)GetDefaultValue, NULL, "Default Value", NULL},
- { C("has_default_value"), (getter)HasDefaultValue, NULL, NULL, NULL},
- { C("is_extension"), (getter)IsExtension, NULL, "ID", NULL},
- { C("id"), (getter)GetID, NULL, "ID", NULL},
- { C("_cdescriptor"), (getter)GetCDescriptor, NULL, "HAACK REMOVE ME", NULL},
-
- { C("message_type"), (getter)GetMessageType, (setter)SetMessageType, "Message type", NULL},
- { C("enum_type"), (getter)GetEnumType, (setter)SetEnumType, "Enum type", NULL},
- { C("containing_type"), (getter)GetContainingType, (setter)SetContainingType, "Containing type", NULL},
- { C("extension_scope"), (getter)GetExtensionScope, (setter)NULL, "Extension scope", NULL},
- { C("containing_oneof"), (getter)GetContainingOneof, (setter)SetContainingOneof, "Containing oneof", NULL},
- { C("has_options"), (getter)GetHasOptions, (setter)SetHasOptions, "Has Options", NULL},
- { C("_options"), (getter)NULL, (setter)SetOptions, "Options", NULL},
+ { "full_name", (getter)GetFullName, NULL, "Full name"},
+ { "name", (getter)GetName, NULL, "Unqualified name"},
+ { "type", (getter)GetType, NULL, "C++ Type"},
+ { "cpp_type", (getter)GetCppType, NULL, "C++ Type"},
+ { "label", (getter)GetLabel, NULL, "Label"},
+ { "number", (getter)GetNumber, NULL, "Number"},
+ { "index", (getter)GetIndex, NULL, "Index"},
+ { "default_value", (getter)GetDefaultValue, NULL, "Default Value"},
+ { "has_default_value", (getter)HasDefaultValue},
+ { "is_extension", (getter)IsExtension, NULL, "ID"},
+ { "id", (getter)GetID, NULL, "ID"},
+ { "_cdescriptor", (getter)GetCDescriptor, NULL, "HAACK REMOVE ME"},
+
+ { "message_type", (getter)GetMessageType, (setter)SetMessageType,
+ "Message type"},
+ { "enum_type", (getter)GetEnumType, (setter)SetEnumType, "Enum type"},
+ { "containing_type", (getter)GetContainingType, (setter)SetContainingType,
+ "Containing type"},
+ { "extension_scope", (getter)GetExtensionScope, (setter)NULL,
+ "Extension scope"},
+ { "containing_oneof", (getter)GetContainingOneof, (setter)SetContainingOneof,
+ "Containing oneof"},
+ { "has_options", (getter)GetHasOptions, (setter)SetHasOptions, "Has Options"},
+ { "_options", (getter)NULL, (setter)SetOptions, "Options"},
{NULL}
};
@@ -835,8 +836,7 @@ static PyMethodDef Methods[] = {
PyTypeObject PyFieldDescriptor_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- C("google.protobuf.internal."
- "_message.FieldDescriptor"), // tp_name
+ FULL_MODULE_NAME ".FieldDescriptor", // tp_name
sizeof(PyBaseDescriptor), // tp_basicsize
0, // tp_itemsize
0, // tp_dealloc
@@ -855,7 +855,7 @@ PyTypeObject PyFieldDescriptor_Type = {
0, // tp_setattro
0, // tp_as_buffer
Py_TPFLAGS_DEFAULT, // tp_flags
- C("A Field Descriptor"), // tp_doc
+ "A Field Descriptor", // tp_doc
0, // tp_traverse
0, // tp_clear
0, // tp_richcompare
@@ -868,10 +868,10 @@ PyTypeObject PyFieldDescriptor_Type = {
&descriptor::PyBaseDescriptor_Type, // tp_base
};
-PyObject* PyFieldDescriptor_New(
+PyObject* PyFieldDescriptor_FromDescriptor(
const FieldDescriptor* field_descriptor) {
return descriptor::NewInternedDescriptor(
- &PyFieldDescriptor_Type, field_descriptor);
+ &PyFieldDescriptor_Type, field_descriptor, NULL);
}
const FieldDescriptor* PyFieldDescriptor_AsDescriptor(PyObject* obj) {
@@ -900,7 +900,7 @@ static PyObject* GetName(PyBaseDescriptor *self, void *closure) {
}
static PyObject* GetFile(PyBaseDescriptor *self, void *closure) {
- return PyFileDescriptor_New(_GetDescriptor(self)->file());
+ return PyFileDescriptor_FromDescriptor(_GetDescriptor(self)->file());
}
static PyObject* GetEnumvaluesByName(PyBaseDescriptor* self, void *closure) {
@@ -919,7 +919,7 @@ static PyObject* GetContainingType(PyBaseDescriptor *self, void *closure) {
const Descriptor* containing_type =
_GetDescriptor(self)->containing_type();
if (containing_type) {
- return PyMessageDescriptor_New(containing_type);
+ return PyMessageDescriptor_FromDescriptor(containing_type);
} else {
Py_RETURN_NONE;
}
@@ -964,16 +964,19 @@ static PyMethodDef Methods[] = {
};
static PyGetSetDef Getters[] = {
- { C("full_name"), (getter)GetFullName, NULL, "Full name", NULL},
- { C("name"), (getter)GetName, NULL, "last name", NULL},
- { C("file"), (getter)GetFile, NULL, "File descriptor", NULL},
- { C("values"), (getter)GetEnumvaluesSeq, NULL, "values", NULL},
- { C("values_by_name"), (getter)GetEnumvaluesByName, NULL, "Enumvalues by name", NULL},
- { C("values_by_number"), (getter)GetEnumvaluesByNumber, NULL, "Enumvalues by number", NULL},
-
- { C("containing_type"), (getter)GetContainingType, (setter)SetContainingType, "Containing type", NULL},
- { C("has_options"), (getter)GetHasOptions, (setter)SetHasOptions, "Has Options", NULL},
- { C("_options"), (getter)NULL, (setter)SetOptions, "Options", NULL},
+ { "full_name", (getter)GetFullName, NULL, "Full name"},
+ { "name", (getter)GetName, NULL, "last name"},
+ { "file", (getter)GetFile, NULL, "File descriptor"},
+ { "values", (getter)GetEnumvaluesSeq, NULL, "values"},
+ { "values_by_name", (getter)GetEnumvaluesByName, NULL,
+ "Enum values by name"},
+ { "values_by_number", (getter)GetEnumvaluesByNumber, NULL,
+ "Enum values by number"},
+
+ { "containing_type", (getter)GetContainingType, (setter)SetContainingType,
+ "Containing type"},
+ { "has_options", (getter)GetHasOptions, (setter)SetHasOptions, "Has Options"},
+ { "_options", (getter)NULL, (setter)SetOptions, "Options"},
{NULL}
};
@@ -981,9 +984,7 @@ static PyGetSetDef Getters[] = {
PyTypeObject PyEnumDescriptor_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- // Keep the fully qualified _message symbol in a line for opensource.
- C("google.protobuf.internal._message."
- "EnumDescriptor"), // tp_name
+ FULL_MODULE_NAME ".EnumDescriptor", // tp_name
sizeof(PyBaseDescriptor), // tp_basicsize
0, // tp_itemsize
0, // tp_dealloc
@@ -1002,7 +1003,7 @@ PyTypeObject PyEnumDescriptor_Type = {
0, // tp_setattro
0, // tp_as_buffer
Py_TPFLAGS_DEFAULT, // tp_flags
- C("A Enum Descriptor"), // tp_doc
+ "A Enum Descriptor", // tp_doc
0, // tp_traverse
0, // tp_clear
0, // tp_richcompare
@@ -1015,10 +1016,10 @@ PyTypeObject PyEnumDescriptor_Type = {
&descriptor::PyBaseDescriptor_Type, // tp_base
};
-PyObject* PyEnumDescriptor_New(
+PyObject* PyEnumDescriptor_FromDescriptor(
const EnumDescriptor* enum_descriptor) {
return descriptor::NewInternedDescriptor(
- &PyEnumDescriptor_Type, enum_descriptor);
+ &PyEnumDescriptor_Type, enum_descriptor, NULL);
}
namespace enumvalue_descriptor {
@@ -1042,7 +1043,7 @@ static PyObject* GetIndex(PyBaseDescriptor *self, void *closure) {
}
static PyObject* GetType(PyBaseDescriptor *self, void *closure) {
- return PyEnumDescriptor_New(_GetDescriptor(self)->type());
+ return PyEnumDescriptor_FromDescriptor(_GetDescriptor(self)->type());
}
static PyObject* GetHasOptions(PyBaseDescriptor *self, void *closure) {
@@ -1069,13 +1070,13 @@ static int SetOptions(PyBaseDescriptor *self, PyObject *value,
static PyGetSetDef Getters[] = {
- { C("name"), (getter)GetName, NULL, "name", NULL},
- { C("number"), (getter)GetNumber, NULL, "number", NULL},
- { C("index"), (getter)GetIndex, NULL, "index", NULL},
- { C("type"), (getter)GetType, NULL, "index", NULL},
+ { "name", (getter)GetName, NULL, "name"},
+ { "number", (getter)GetNumber, NULL, "number"},
+ { "index", (getter)GetIndex, NULL, "index"},
+ { "type", (getter)GetType, NULL, "index"},
- { C("has_options"), (getter)GetHasOptions, (setter)SetHasOptions, "Has Options", NULL},
- { C("_options"), (getter)NULL, (setter)SetOptions, "Options", NULL},
+ { "has_options", (getter)GetHasOptions, (setter)SetHasOptions, "Has Options"},
+ { "_options", (getter)NULL, (setter)SetOptions, "Options"},
{NULL}
};
@@ -1088,8 +1089,7 @@ static PyMethodDef Methods[] = {
PyTypeObject PyEnumValueDescriptor_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- C("google.protobuf.internal."
- "_message.EnumValueDescriptor"), // tp_name
+ FULL_MODULE_NAME ".EnumValueDescriptor", // tp_name
sizeof(PyBaseDescriptor), // tp_basicsize
0, // tp_itemsize
0, // tp_dealloc
@@ -1108,7 +1108,7 @@ PyTypeObject PyEnumValueDescriptor_Type = {
0, // tp_setattro
0, // tp_as_buffer
Py_TPFLAGS_DEFAULT, // tp_flags
- C("A EnumValue Descriptor"), // tp_doc
+ "A EnumValue Descriptor", // tp_doc
0, // tp_traverse
0, // tp_clear
0, // tp_richcompare
@@ -1121,10 +1121,10 @@ PyTypeObject PyEnumValueDescriptor_Type = {
&descriptor::PyBaseDescriptor_Type, // tp_base
};
-PyObject* PyEnumValueDescriptor_New(
+PyObject* PyEnumValueDescriptor_FromDescriptor(
const EnumValueDescriptor* enumvalue_descriptor) {
return descriptor::NewInternedDescriptor(
- &PyEnumValueDescriptor_Type, enumvalue_descriptor);
+ &PyEnumValueDescriptor_Type, enumvalue_descriptor, NULL);
}
namespace file_descriptor {
@@ -1218,18 +1218,20 @@ static PyObject* CopyToProto(PyFileDescriptor *self, PyObject *target) {
}
static PyGetSetDef Getters[] = {
- { C("name"), (getter)GetName, NULL, "name", NULL},
- { C("package"), (getter)GetPackage, NULL, "package", NULL},
- { C("serialized_pb"), (getter)GetSerializedPb, NULL, NULL, NULL},
- { C("message_types_by_name"), (getter)GetMessageTypesByName, NULL, "Messages by name", NULL},
- { C("enum_types_by_name"), (getter)GetEnumTypesByName, NULL, "Enums by name", NULL},
- { C("extensions_by_name"), (getter)GetExtensionsByName, NULL, "Extensions by name", NULL},
- { C("dependencies"), (getter)GetDependencies, NULL, "Dependencies", NULL},
- { C("public_dependencies"), (getter)GetPublicDependencies, NULL, "Dependencies", NULL},
-
- { C("has_options"), (getter)GetHasOptions, (setter)SetHasOptions, "Has Options", NULL},
- { C("_options"), (getter)NULL, (setter)SetOptions, "Options", NULL},
- { C("syntax"), (getter)GetSyntax, (setter)NULL, "Syntax", NULL},
+ { "name", (getter)GetName, NULL, "name"},
+ { "package", (getter)GetPackage, NULL, "package"},
+ { "serialized_pb", (getter)GetSerializedPb},
+ { "message_types_by_name", (getter)GetMessageTypesByName, NULL,
+ "Messages by name"},
+ { "enum_types_by_name", (getter)GetEnumTypesByName, NULL, "Enums by name"},
+ { "extensions_by_name", (getter)GetExtensionsByName, NULL,
+ "Extensions by name"},
+ { "dependencies", (getter)GetDependencies, NULL, "Dependencies"},
+ { "public_dependencies", (getter)GetPublicDependencies, NULL, "Dependencies"},
+
+ { "has_options", (getter)GetHasOptions, (setter)SetHasOptions, "Has Options"},
+ { "_options", (getter)NULL, (setter)SetOptions, "Options"},
+ { "syntax", (getter)GetSyntax, (setter)NULL, "Syntax"},
{NULL}
};
@@ -1243,11 +1245,10 @@ static PyMethodDef Methods[] = {
PyTypeObject PyFileDescriptor_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- C("google.protobuf.internal."
- "_message.FileDescriptor"), // tp_name
+ FULL_MODULE_NAME ".FileDescriptor", // tp_name
sizeof(PyFileDescriptor), // tp_basicsize
0, // tp_itemsize
- (destructor)file_descriptor::Dealloc, // tp_dealloc
+ (destructor)file_descriptor::Dealloc, // tp_dealloc
0, // tp_print
0, // tp_getattr
0, // tp_setattr
@@ -1263,7 +1264,7 @@ PyTypeObject PyFileDescriptor_Type = {
0, // tp_setattro
0, // tp_as_buffer
Py_TPFLAGS_DEFAULT, // tp_flags
- C("A File Descriptor"), // tp_doc
+ "A File Descriptor", // tp_doc
0, // tp_traverse
0, // tp_clear
0, // tp_richcompare
@@ -1284,23 +1285,28 @@ PyTypeObject PyFileDescriptor_Type = {
PyObject_Del, // tp_free
};
-PyObject* PyFileDescriptor_New(const FileDescriptor* file_descriptor) {
- return descriptor::NewInternedDescriptor(
- &PyFileDescriptor_Type, file_descriptor);
+PyObject* PyFileDescriptor_FromDescriptor(
+ const FileDescriptor* file_descriptor) {
+ return PyFileDescriptor_FromDescriptorWithSerializedPb(file_descriptor,
+ NULL);
}
-PyObject* PyFileDescriptor_NewWithPb(
+PyObject* PyFileDescriptor_FromDescriptorWithSerializedPb(
const FileDescriptor* file_descriptor, PyObject *serialized_pb) {
- PyObject* py_descriptor = PyFileDescriptor_New(file_descriptor);
+ bool was_created;
+ PyObject* py_descriptor = descriptor::NewInternedDescriptor(
+ &PyFileDescriptor_Type, file_descriptor, &was_created);
if (py_descriptor == NULL) {
return NULL;
}
- if (serialized_pb != NULL) {
+ if (was_created) {
PyFileDescriptor* cfile_descriptor =
reinterpret_cast<PyFileDescriptor*>(py_descriptor);
Py_XINCREF(serialized_pb);
cfile_descriptor->serialized_pb = serialized_pb;
}
+ // TODO(amauryfa): In the case of a cached object, check that serialized_pb
+ // is the same as before.
return py_descriptor;
}
@@ -1333,19 +1339,19 @@ static PyObject* GetContainingType(PyBaseDescriptor *self, void *closure) {
const Descriptor* containing_type =
_GetDescriptor(self)->containing_type();
if (containing_type) {
- return PyMessageDescriptor_New(containing_type);
+ return PyMessageDescriptor_FromDescriptor(containing_type);
} else {
Py_RETURN_NONE;
}
}
static PyGetSetDef Getters[] = {
- { C("name"), (getter)GetName, NULL, "Name", NULL},
- { C("full_name"), (getter)GetFullName, NULL, "Full name", NULL},
- { C("index"), (getter)GetIndex, NULL, "Index", NULL},
+ { "name", (getter)GetName, NULL, "Name"},
+ { "full_name", (getter)GetFullName, NULL, "Full name"},
+ { "index", (getter)GetIndex, NULL, "Index"},
- { C("containing_type"), (getter)GetContainingType, NULL, "Containing type", NULL},
- { C("fields"), (getter)GetFields, NULL, "Fields", NULL},
+ { "containing_type", (getter)GetContainingType, NULL, "Containing type"},
+ { "fields", (getter)GetFields, NULL, "Fields"},
{NULL}
};
@@ -1353,8 +1359,7 @@ static PyGetSetDef Getters[] = {
PyTypeObject PyOneofDescriptor_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- C("google.protobuf.internal."
- "_message.OneofDescriptor"), // tp_name
+ FULL_MODULE_NAME ".OneofDescriptor", // tp_name
sizeof(PyBaseDescriptor), // tp_basicsize
0, // tp_itemsize
0, // tp_dealloc
@@ -1373,7 +1378,7 @@ PyTypeObject PyOneofDescriptor_Type = {
0, // tp_setattro
0, // tp_as_buffer
Py_TPFLAGS_DEFAULT, // tp_flags
- C("A Oneof Descriptor"), // tp_doc
+ "A Oneof Descriptor", // tp_doc
0, // tp_traverse
0, // tp_clear
0, // tp_richcompare
@@ -1386,10 +1391,10 @@ PyTypeObject PyOneofDescriptor_Type = {
&descriptor::PyBaseDescriptor_Type, // tp_base
};
-PyObject* PyOneofDescriptor_New(
+PyObject* PyOneofDescriptor_FromDescriptor(
const OneofDescriptor* oneof_descriptor) {
return descriptor::NewInternedDescriptor(
- &PyOneofDescriptor_Type, oneof_descriptor);
+ &PyOneofDescriptor_Type, oneof_descriptor, NULL);
}
// Add a enum values to a type dictionary.
diff --git a/python/google/protobuf/pyext/descriptor.h b/python/google/protobuf/pyext/descriptor.h
index ba6e7298..b2550406 100644
--- a/python/google/protobuf/pyext/descriptor.h
+++ b/python/google/protobuf/pyext/descriptor.h
@@ -48,21 +48,24 @@ extern PyTypeObject PyEnumValueDescriptor_Type;
extern PyTypeObject PyFileDescriptor_Type;
extern PyTypeObject PyOneofDescriptor_Type;
-// Return a new reference to a Descriptor object.
+// Wraps a Descriptor in a Python object.
// The C++ pointer is usually borrowed from the global DescriptorPool.
// In any case, it must stay alive as long as the Python object.
-PyObject* PyMessageDescriptor_New(const Descriptor* descriptor);
-PyObject* PyFieldDescriptor_New(const FieldDescriptor* descriptor);
-PyObject* PyEnumDescriptor_New(const EnumDescriptor* descriptor);
-PyObject* PyEnumValueDescriptor_New(const EnumValueDescriptor* descriptor);
-PyObject* PyOneofDescriptor_New(const OneofDescriptor* descriptor);
-PyObject* PyFileDescriptor_New(const FileDescriptor* file_descriptor);
+// Returns a new reference.
+PyObject* PyMessageDescriptor_FromDescriptor(const Descriptor* descriptor);
+PyObject* PyFieldDescriptor_FromDescriptor(const FieldDescriptor* descriptor);
+PyObject* PyEnumDescriptor_FromDescriptor(const EnumDescriptor* descriptor);
+PyObject* PyEnumValueDescriptor_FromDescriptor(
+ const EnumValueDescriptor* descriptor);
+PyObject* PyOneofDescriptor_FromDescriptor(const OneofDescriptor* descriptor);
+PyObject* PyFileDescriptor_FromDescriptor(
+ const FileDescriptor* file_descriptor);
// Alternate constructor of PyFileDescriptor, used when we already have a
// serialized FileDescriptorProto that can be cached.
// Returns a new reference.
-PyObject* PyFileDescriptor_NewWithPb(const FileDescriptor* file_descriptor,
- PyObject* serialized_pb);
+PyObject* PyFileDescriptor_FromDescriptorWithSerializedPb(
+ const FileDescriptor* file_descriptor, PyObject* serialized_pb);
// Return the C++ descriptor pointer.
// This function checks the parameter type; on error, return NULL with a Python
diff --git a/python/google/protobuf/pyext/descriptor_containers.cc b/python/google/protobuf/pyext/descriptor_containers.cc
index 06edebf8..92e11e31 100644
--- a/python/google/protobuf/pyext/descriptor_containers.cc
+++ b/python/google/protobuf/pyext/descriptor_containers.cc
@@ -898,7 +898,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyFieldDescriptor_New(item);
+ return PyFieldDescriptor_FromDescriptor(item);
}
static const string& GetItemName(ItemDescriptor item) {
@@ -956,7 +956,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyMessageDescriptor_New(item);
+ return PyMessageDescriptor_FromDescriptor(item);
}
static const string& GetItemName(ItemDescriptor item) {
@@ -1006,7 +1006,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyEnumDescriptor_New(item);
+ return PyEnumDescriptor_FromDescriptor(item);
}
static const string& GetItemName(ItemDescriptor item) {
@@ -1082,7 +1082,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyEnumValueDescriptor_New(item);
+ return PyEnumValueDescriptor_FromDescriptor(item);
}
static const string& GetItemName(ItemDescriptor item) {
@@ -1124,7 +1124,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyFieldDescriptor_New(item);
+ return PyFieldDescriptor_FromDescriptor(item);
}
static const string& GetItemName(ItemDescriptor item) {
@@ -1174,7 +1174,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyOneofDescriptor_New(item);
+ return PyOneofDescriptor_FromDescriptor(item);
}
static const string& GetItemName(ItemDescriptor item) {
@@ -1238,7 +1238,7 @@ static ItemDescriptor GetByNumber(PyContainer* self, int number) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyEnumValueDescriptor_New(item);
+ return PyEnumValueDescriptor_FromDescriptor(item);
}
static const string& GetItemName(ItemDescriptor item) {
@@ -1302,7 +1302,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyFieldDescriptor_New(item);
+ return PyFieldDescriptor_FromDescriptor(item);
}
static int GetItemIndex(ItemDescriptor item) {
@@ -1354,7 +1354,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyMessageDescriptor_New(item);
+ return PyMessageDescriptor_FromDescriptor(item);
}
static const string& GetItemName(ItemDescriptor item) {
@@ -1400,7 +1400,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyEnumDescriptor_New(item);
+ return PyEnumDescriptor_FromDescriptor(item);
}
static const string& GetItemName(ItemDescriptor item) {
@@ -1446,7 +1446,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyFieldDescriptor_New(item);
+ return PyFieldDescriptor_FromDescriptor(item);
}
static const string& GetItemName(ItemDescriptor item) {
@@ -1488,7 +1488,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyFileDescriptor_New(item);
+ return PyFileDescriptor_FromDescriptor(item);
}
static DescriptorContainerDef ContainerDef = {
@@ -1522,7 +1522,7 @@ static ItemDescriptor GetByIndex(PyContainer* self, int index) {
}
static PyObject* NewObjectFromItem(ItemDescriptor item) {
- return PyFileDescriptor_New(item);
+ return PyFileDescriptor_FromDescriptor(item);
}
static DescriptorContainerDef ContainerDef = {
diff --git a/python/google/protobuf/pyext/descriptor_containers.h b/python/google/protobuf/pyext/descriptor_containers.h
index d81537de..8fbdaff9 100644
--- a/python/google/protobuf/pyext/descriptor_containers.h
+++ b/python/google/protobuf/pyext/descriptor_containers.h
@@ -28,6 +28,9 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#ifndef GOOGLE_PROTOBUF_PYTHON_CPP_DESCRIPTOR_CONTAINERS_H__
+#define GOOGLE_PROTOBUF_PYTHON_CPP_DESCRIPTOR_CONTAINERS_H__
+
// Mappings and Sequences of descriptors.
// They implement containers like fields_by_name, EnumDescriptor.values...
// See descriptor_containers.cc for more description.
@@ -92,4 +95,6 @@ PyObject* NewFilePublicDependencies(const FileDescriptor* descriptor);
} // namespace python
} // namespace protobuf
+
} // namespace google
+#endif // GOOGLE_PROTOBUF_PYTHON_CPP_DESCRIPTOR_CONTAINERS_H__
diff --git a/python/google/protobuf/pyext/descriptor_pool.cc b/python/google/protobuf/pyext/descriptor_pool.cc
index bc3077bc..ecd90847 100644
--- a/python/google/protobuf/pyext/descriptor_pool.cc
+++ b/python/google/protobuf/pyext/descriptor_pool.cc
@@ -35,10 +35,9 @@
#include <google/protobuf/descriptor.pb.h>
#include <google/protobuf/pyext/descriptor_pool.h>
#include <google/protobuf/pyext/descriptor.h>
+#include <google/protobuf/pyext/message.h>
#include <google/protobuf/pyext/scoped_pyobject_ptr.h>
-#define C(str) const_cast<char*>(str)
-
#if PY_MAJOR_VERSION >= 3
#define PyString_FromStringAndSize PyUnicode_FromStringAndSize
#if PY_VERSION_HEX < 0x03030000
@@ -108,11 +107,11 @@ PyObject* FindMessageByName(PyDescriptorPool* self, PyObject* arg) {
self->pool->FindMessageTypeByName(string(name, name_size));
if (message_descriptor == NULL) {
- PyErr_Format(PyExc_TypeError, "Couldn't find message %.200s", name);
+ PyErr_Format(PyExc_KeyError, "Couldn't find message %.200s", name);
return NULL;
}
- return PyMessageDescriptor_New(message_descriptor);
+ return PyMessageDescriptor_FromDescriptor(message_descriptor);
}
// Add a message class to our database.
@@ -158,6 +157,24 @@ PyObject *GetMessageClass(PyDescriptorPool* self,
}
}
+PyObject* FindFileByName(PyDescriptorPool* self, PyObject* arg) {
+ Py_ssize_t name_size;
+ char* name;
+ if (PyString_AsStringAndSize(arg, &name, &name_size) < 0) {
+ return NULL;
+ }
+
+ const FileDescriptor* file_descriptor =
+ self->pool->FindFileByName(string(name, name_size));
+ if (file_descriptor == NULL) {
+ PyErr_Format(PyExc_KeyError, "Couldn't find file %.200s",
+ name);
+ return NULL;
+ }
+
+ return PyFileDescriptor_FromDescriptor(file_descriptor);
+}
+
PyObject* FindFieldByName(PyDescriptorPool* self, PyObject* arg) {
Py_ssize_t name_size;
char* name;
@@ -168,12 +185,12 @@ PyObject* FindFieldByName(PyDescriptorPool* self, PyObject* arg) {
const FieldDescriptor* field_descriptor =
self->pool->FindFieldByName(string(name, name_size));
if (field_descriptor == NULL) {
- PyErr_Format(PyExc_TypeError, "Couldn't find field %.200s",
+ PyErr_Format(PyExc_KeyError, "Couldn't find field %.200s",
name);
return NULL;
}
- return PyFieldDescriptor_New(field_descriptor);
+ return PyFieldDescriptor_FromDescriptor(field_descriptor);
}
PyObject* FindExtensionByName(PyDescriptorPool* self, PyObject* arg) {
@@ -186,11 +203,11 @@ PyObject* FindExtensionByName(PyDescriptorPool* self, PyObject* arg) {
const FieldDescriptor* field_descriptor =
self->pool->FindExtensionByName(string(name, name_size));
if (field_descriptor == NULL) {
- PyErr_Format(PyExc_TypeError, "Couldn't find field %.200s", name);
+ PyErr_Format(PyExc_KeyError, "Couldn't find extension field %.200s", name);
return NULL;
}
- return PyFieldDescriptor_New(field_descriptor);
+ return PyFieldDescriptor_FromDescriptor(field_descriptor);
}
PyObject* FindEnumTypeByName(PyDescriptorPool* self, PyObject* arg) {
@@ -203,11 +220,11 @@ PyObject* FindEnumTypeByName(PyDescriptorPool* self, PyObject* arg) {
const EnumDescriptor* enum_descriptor =
self->pool->FindEnumTypeByName(string(name, name_size));
if (enum_descriptor == NULL) {
- PyErr_Format(PyExc_TypeError, "Couldn't find enum %.200s", name);
+ PyErr_Format(PyExc_KeyError, "Couldn't find enum %.200s", name);
return NULL;
}
- return PyEnumDescriptor_New(enum_descriptor);
+ return PyEnumDescriptor_FromDescriptor(enum_descriptor);
}
PyObject* FindOneofByName(PyDescriptorPool* self, PyObject* arg) {
@@ -220,70 +237,13 @@ PyObject* FindOneofByName(PyDescriptorPool* self, PyObject* arg) {
const OneofDescriptor* oneof_descriptor =
self->pool->FindOneofByName(string(name, name_size));
if (oneof_descriptor == NULL) {
- PyErr_Format(PyExc_TypeError, "Couldn't find oneof %.200s", name);
+ PyErr_Format(PyExc_KeyError, "Couldn't find oneof %.200s", name);
return NULL;
}
- return PyOneofDescriptor_New(oneof_descriptor);
+ return PyOneofDescriptor_FromDescriptor(oneof_descriptor);
}
-static PyMethodDef Methods[] = {
- { C("FindFieldByName"),
- (PyCFunction)FindFieldByName,
- METH_O,
- C("Searches for a field descriptor by full name.") },
- { C("FindExtensionByName"),
- (PyCFunction)FindExtensionByName,
- METH_O,
- C("Searches for extension descriptor by full name.") },
- {NULL}
-};
-
-} // namespace cdescriptor_pool
-
-PyTypeObject PyDescriptorPool_Type = {
- PyVarObject_HEAD_INIT(&PyType_Type, 0)
- C("google.protobuf.internal."
- "_message.DescriptorPool"), // tp_name
- sizeof(PyDescriptorPool), // tp_basicsize
- 0, // tp_itemsize
- (destructor)cdescriptor_pool::Dealloc, // tp_dealloc
- 0, // tp_print
- 0, // tp_getattr
- 0, // tp_setattr
- 0, // tp_compare
- 0, // tp_repr
- 0, // tp_as_number
- 0, // tp_as_sequence
- 0, // tp_as_mapping
- 0, // tp_hash
- 0, // tp_call
- 0, // tp_str
- 0, // tp_getattro
- 0, // tp_setattro
- 0, // tp_as_buffer
- Py_TPFLAGS_DEFAULT, // tp_flags
- C("A Descriptor Pool"), // tp_doc
- 0, // tp_traverse
- 0, // tp_clear
- 0, // tp_richcompare
- 0, // tp_weaklistoffset
- 0, // tp_iter
- 0, // tp_iternext
- cdescriptor_pool::Methods, // tp_methods
- 0, // tp_members
- 0, // tp_getset
- 0, // tp_base
- 0, // tp_dict
- 0, // tp_descr_get
- 0, // tp_descr_set
- 0, // tp_dictoffset
- 0, // tp_init
- 0, // tp_alloc
- 0, // tp_new
- PyObject_Del, // tp_free
-};
-
// The code below loads new Descriptors from a serialized FileDescriptorProto.
@@ -301,6 +261,7 @@ class BuildFileErrorCollector : public DescriptorPool::ErrorCollector {
if (!had_errors) {
error_message +=
("Invalid proto descriptor for file \"" + filename + "\":\n");
+ had_errors = true;
}
// As this only happens on failure and will result in the program not
// running at all, no effort is made to optimize this string manipulation.
@@ -311,7 +272,7 @@ class BuildFileErrorCollector : public DescriptorPool::ErrorCollector {
bool had_errors;
};
-PyObject* Python_BuildFile(PyObject* ignored, PyObject* serialized_pb) {
+PyObject* AddSerializedFile(PyDescriptorPool* self, PyObject* serialized_pb) {
char* message_type;
Py_ssize_t message_len;
@@ -330,13 +291,14 @@ PyObject* Python_BuildFile(PyObject* ignored, PyObject* serialized_pb) {
const FileDescriptor* generated_file =
DescriptorPool::generated_pool()->FindFileByName(file_proto.name());
if (generated_file != NULL) {
- return PyFileDescriptor_NewWithPb(generated_file, serialized_pb);
+ return PyFileDescriptor_FromDescriptorWithSerializedPb(
+ generated_file, serialized_pb);
}
BuildFileErrorCollector error_collector;
const FileDescriptor* descriptor =
- GetDescriptorPool()->pool->BuildFileCollectingErrors(file_proto,
- &error_collector);
+ self->pool->BuildFileCollectingErrors(file_proto,
+ &error_collector);
if (descriptor == NULL) {
PyErr_Format(PyExc_TypeError,
"Couldn't build proto file into descriptor pool!\n%s",
@@ -344,9 +306,84 @@ PyObject* Python_BuildFile(PyObject* ignored, PyObject* serialized_pb) {
return NULL;
}
- return PyFileDescriptor_NewWithPb(descriptor, serialized_pb);
+ return PyFileDescriptor_FromDescriptorWithSerializedPb(
+ descriptor, serialized_pb);
+}
+
+PyObject* Add(PyDescriptorPool* self, PyObject* file_descriptor_proto) {
+ ScopedPyObjectPtr serialized_pb(
+ PyObject_CallMethod(file_descriptor_proto, "SerializeToString", NULL));
+ if (serialized_pb == NULL) {
+ return NULL;
+ }
+ return AddSerializedFile(self, serialized_pb);
}
+static PyMethodDef Methods[] = {
+ { "Add", (PyCFunction)Add, METH_O,
+ "Adds the FileDescriptorProto and its types to this pool." },
+ { "AddSerializedFile", (PyCFunction)AddSerializedFile, METH_O,
+ "Adds a serialized FileDescriptorProto to this pool." },
+
+ { "FindFileByName", (PyCFunction)FindFileByName, METH_O,
+ "Searches for a file descriptor by its .proto name." },
+ { "FindMessageTypeByName", (PyCFunction)FindMessageByName, METH_O,
+ "Searches for a message descriptor by full name." },
+ { "FindFieldByName", (PyCFunction)FindFieldByName, METH_O,
+ "Searches for a field descriptor by full name." },
+ { "FindExtensionByName", (PyCFunction)FindExtensionByName, METH_O,
+ "Searches for extension descriptor by full name." },
+ { "FindEnumTypeByName", (PyCFunction)FindEnumTypeByName, METH_O,
+ "Searches for enum type descriptor by full name." },
+ { "FindOneofByName", (PyCFunction)FindOneofByName, METH_O,
+ "Searches for oneof descriptor by full name." },
+ {NULL}
+};
+
+} // namespace cdescriptor_pool
+
+PyTypeObject PyDescriptorPool_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ FULL_MODULE_NAME ".DescriptorPool", // tp_name
+ sizeof(PyDescriptorPool), // tp_basicsize
+ 0, // tp_itemsize
+ (destructor)cdescriptor_pool::Dealloc, // tp_dealloc
+ 0, // tp_print
+ 0, // tp_getattr
+ 0, // tp_setattr
+ 0, // tp_compare
+ 0, // tp_repr
+ 0, // tp_as_number
+ 0, // tp_as_sequence
+ 0, // tp_as_mapping
+ 0, // tp_hash
+ 0, // tp_call
+ 0, // tp_str
+ 0, // tp_getattro
+ 0, // tp_setattro
+ 0, // tp_as_buffer
+ Py_TPFLAGS_DEFAULT, // tp_flags
+ "A Descriptor Pool", // tp_doc
+ 0, // tp_traverse
+ 0, // tp_clear
+ 0, // tp_richcompare
+ 0, // tp_weaklistoffset
+ 0, // tp_iter
+ 0, // tp_iternext
+ cdescriptor_pool::Methods, // tp_methods
+ 0, // tp_members
+ 0, // tp_getset
+ 0, // tp_base
+ 0, // tp_dict
+ 0, // tp_descr_get
+ 0, // tp_descr_set
+ 0, // tp_dictoffset
+ 0, // tp_init
+ 0, // tp_alloc
+ 0, // tp_new
+ PyObject_Del, // tp_free
+};
+
static PyDescriptorPool* global_cdescriptor_pool = NULL;
bool InitDescriptorPool() {
diff --git a/python/google/protobuf/pyext/descriptor_pool.h b/python/google/protobuf/pyext/descriptor_pool.h
index 4e494b89..efb1abeb 100644
--- a/python/google/protobuf/pyext/descriptor_pool.h
+++ b/python/google/protobuf/pyext/descriptor_pool.h
@@ -95,6 +95,8 @@ const Descriptor* FindMessageTypeByName(PyDescriptorPool* self,
const Descriptor* RegisterMessageClass(
PyDescriptorPool* self, PyObject* message_class, PyObject* descriptor);
+// The function below are also exposed as methods of the DescriptorPool type.
+
// Retrieves the Python class registered with the given message descriptor.
//
// Returns a *borrowed* reference if found, otherwise returns NULL with an
@@ -134,12 +136,8 @@ PyObject* FindOneofByName(PyDescriptorPool* self, PyObject* arg);
} // namespace cdescriptor_pool
-// Implement the Python "_BuildFile" method, it takes a serialized
-// FileDescriptorProto, and adds it to the C++ DescriptorPool.
-// It returns a new FileDescriptor object, or NULL when an exception is raised.
-PyObject* Python_BuildFile(PyObject* ignored, PyObject* args);
-
// Retrieve the global descriptor pool owned by the _message module.
+// Returns a *borrowed* reference.
PyDescriptorPool* GetDescriptorPool();
// Initialize objects used by this module.
diff --git a/python/google/protobuf/pyext/extension_dict.cc b/python/google/protobuf/pyext/extension_dict.cc
index 8e38fc42..b8d18f8d 100644
--- a/python/google/protobuf/pyext/extension_dict.cc
+++ b/python/google/protobuf/pyext/extension_dict.cc
@@ -51,16 +51,6 @@ namespace python {
namespace extension_dict {
-// TODO(tibell): Always use self->message for clarity, just like in
-// RepeatedCompositeContainer.
-static Message* GetMessage(ExtensionDict* self) {
- if (self->parent != NULL) {
- return self->parent->message;
- } else {
- return self->message;
- }
-}
-
PyObject* len(ExtensionDict* self) {
#if PY_MAJOR_VERSION >= 3
return PyLong_FromLong(PyDict_Size(self->values));
@@ -89,7 +79,7 @@ int ReleaseExtension(ExtensionDict* self,
}
} else if (descriptor->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
if (cmessage::ReleaseSubMessage(
- GetMessage(self), descriptor,
+ self->parent, descriptor,
reinterpret_cast<CMessage*>(extension)) < 0) {
return -1;
}
@@ -109,7 +99,7 @@ PyObject* subscript(ExtensionDict* self, PyObject* key) {
if (descriptor->label() != FieldDescriptor::LABEL_REPEATED &&
descriptor->cpp_type() != FieldDescriptor::CPPTYPE_MESSAGE) {
- return cmessage::InternalGetScalar(self->parent, descriptor);
+ return cmessage::InternalGetScalar(self->parent->message, descriptor);
}
PyObject* value = PyDict_GetItem(self->values, key);
@@ -266,8 +256,7 @@ static PyMethodDef Methods[] = {
PyTypeObject ExtensionDict_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- "google.protobuf.internal."
- "cpp._message.ExtensionDict", // tp_name
+ FULL_MODULE_NAME ".ExtensionDict", // tp_name
sizeof(ExtensionDict), // tp_basicsize
0, // tp_itemsize
(destructor)extension_dict::dealloc, // tp_dealloc
diff --git a/python/google/protobuf/pyext/message.cc b/python/google/protobuf/pyext/message.cc
index a2b357b2..a4843e8d 100644
--- a/python/google/protobuf/pyext/message.cc
+++ b/python/google/protobuf/pyext/message.cc
@@ -59,6 +59,8 @@
#include <google/protobuf/pyext/extension_dict.h>
#include <google/protobuf/pyext/repeated_composite_container.h>
#include <google/protobuf/pyext/repeated_scalar_container.h>
+#include <google/protobuf/pyext/message_map_container.h>
+#include <google/protobuf/pyext/scalar_map_container.h>
#include <google/protobuf/pyext/scoped_pyobject_ptr.h>
#include <google/protobuf/stubs/strutil.h>
@@ -93,9 +95,9 @@ static const FieldDescriptor* GetFieldDescriptor(
static const Descriptor* GetMessageDescriptor(PyTypeObject* cls);
static string GetMessageName(CMessage* self);
int InternalReleaseFieldByDescriptor(
+ CMessage* self,
const FieldDescriptor* field_descriptor,
- PyObject* composite_field,
- Message* parent_message);
+ PyObject* composite_field);
} // namespace cmessage
// ---------------------------------------------------------------------
@@ -127,10 +129,29 @@ static int VisitCompositeField(const FieldDescriptor* descriptor,
Visitor visitor) {
if (descriptor->label() == FieldDescriptor::LABEL_REPEATED) {
if (descriptor->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
- RepeatedCompositeContainer* container =
- reinterpret_cast<RepeatedCompositeContainer*>(child);
- if (visitor.VisitRepeatedCompositeContainer(container) == -1)
- return -1;
+ if (descriptor->is_map()) {
+ const Descriptor* entry_type = descriptor->message_type();
+ const FieldDescriptor* value_type =
+ entry_type->FindFieldByName("value");
+ if (value_type->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
+ MessageMapContainer* container =
+ reinterpret_cast<MessageMapContainer*>(child);
+ if (visitor.VisitMessageMapContainer(container) == -1) {
+ return -1;
+ }
+ } else {
+ ScalarMapContainer* container =
+ reinterpret_cast<ScalarMapContainer*>(child);
+ if (visitor.VisitScalarMapContainer(container) == -1) {
+ return -1;
+ }
+ }
+ } else {
+ RepeatedCompositeContainer* container =
+ reinterpret_cast<RepeatedCompositeContainer*>(child);
+ if (visitor.VisitRepeatedCompositeContainer(container) == -1)
+ return -1;
+ }
} else {
RepeatedScalarContainer* container =
reinterpret_cast<RepeatedScalarContainer*>(child);
@@ -444,7 +465,7 @@ static int MaybeReleaseOverlappingOneofField(
}
if (InternalReleaseFieldByDescriptor(
- existing_field, child_message, message) < 0) {
+ cmessage, existing_field, child_message) < 0) {
return -1;
}
return PyDict_DelItemString(cmessage->composite_fields, field_name);
@@ -483,6 +504,16 @@ struct FixupMessageReference : public ChildVisitor {
return 0;
}
+ int VisitScalarMapContainer(ScalarMapContainer* container) {
+ container->message = message_;
+ return 0;
+ }
+
+ int VisitMessageMapContainer(MessageMapContainer* container) {
+ container->message = message_;
+ return 0;
+ }
+
private:
Message* message_;
};
@@ -500,6 +531,9 @@ int AssureWritable(CMessage* self) {
self->message->GetDescriptor());
self->message = prototype->New();
self->owner.reset(self->message);
+ // Cascade the new owner to eventual children: even if this message is
+ // empty, some submessages or repeated containers might exist already.
+ SetOwner(self, self->owner);
} else {
// Otherwise, we need a mutable child message.
if (AssureWritable(self->parent) == -1)
@@ -520,8 +554,9 @@ int AssureWritable(CMessage* self) {
// When a CMessage is made writable its Message pointer is updated
// to point to a new mutable Message. When that happens we need to
// update any references to the old, read-only CMessage. There are
- // three places such references occur: RepeatedScalarContainer,
- // RepeatedCompositeContainer, and ExtensionDict.
+ // five places such references occur: RepeatedScalarContainer,
+ // RepeatedCompositeContainer, ScalarMapContainer, MessageMapContainer,
+ // and ExtensionDict.
if (self->extensions != NULL)
self->extensions->message = self->message;
if (ForEachCompositeField(self, FixupMessageReference(self->message)) == -1)
@@ -583,15 +618,43 @@ const FieldDescriptor* GetExtensionDescriptor(PyObject* extension) {
return PyFieldDescriptor_AsDescriptor(extension);
}
+// If value is a string, convert it into an enum value based on the labels in
+// descriptor, otherwise simply return value. Always returns a new reference.
+static PyObject* GetIntegerEnumValue(const FieldDescriptor& descriptor,
+ PyObject* value) {
+ if (PyString_Check(value) || PyUnicode_Check(value)) {
+ const EnumDescriptor* enum_descriptor = descriptor.enum_type();
+ if (enum_descriptor == NULL) {
+ PyErr_SetString(PyExc_TypeError, "not an enum field");
+ return NULL;
+ }
+ char* enum_label;
+ Py_ssize_t size;
+ if (PyString_AsStringAndSize(value, &enum_label, &size) < 0) {
+ return NULL;
+ }
+ const EnumValueDescriptor* enum_value_descriptor =
+ enum_descriptor->FindValueByName(string(enum_label, size));
+ if (enum_value_descriptor == NULL) {
+ PyErr_SetString(PyExc_ValueError, "unknown enum label");
+ return NULL;
+ }
+ return PyInt_FromLong(enum_value_descriptor->number());
+ }
+ Py_INCREF(value);
+ return value;
+}
+
// If cmessage_list is not NULL, this function releases values into the
// container CMessages instead of just removing. Repeated composite container
// needs to do this to make sure CMessages stay alive if they're still
// referenced after deletion. Repeated scalar container doesn't need to worry.
int InternalDeleteRepeatedField(
- Message* message,
+ CMessage* self,
const FieldDescriptor* field_descriptor,
PyObject* slice,
PyObject* cmessage_list) {
+ Message* message = self->message;
Py_ssize_t length, from, to, step, slice_length;
const Reflection* reflection = message->GetReflection();
int min, max;
@@ -665,7 +728,7 @@ int InternalDeleteRepeatedField(
CMessage* last_cmessage = reinterpret_cast<CMessage*>(
PyList_GET_ITEM(cmessage_list, PyList_GET_SIZE(cmessage_list) - 1));
repeated_composite_container::ReleaseLastTo(
- field_descriptor, message, last_cmessage);
+ self, field_descriptor, last_cmessage);
if (PySequence_DelItem(cmessage_list, -1) < 0) {
return -1;
}
@@ -696,16 +759,90 @@ int InitAttributes(CMessage* self, PyObject* kwargs) {
PyString_AsString(name));
return -1;
}
- if (descriptor->label() == FieldDescriptor::LABEL_REPEATED) {
+ if (descriptor->is_map()) {
+ ScopedPyObjectPtr map(GetAttr(self, name));
+ const FieldDescriptor* value_descriptor =
+ descriptor->message_type()->FindFieldByName("value");
+ if (value_descriptor->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
+ Py_ssize_t map_pos = 0;
+ PyObject* map_key;
+ PyObject* map_value;
+ while (PyDict_Next(value, &map_pos, &map_key, &map_value)) {
+ ScopedPyObjectPtr function_return;
+ function_return.reset(PyObject_GetItem(map.get(), map_key));
+ if (function_return.get() == NULL) {
+ return -1;
+ }
+ ScopedPyObjectPtr ok(PyObject_CallMethod(
+ function_return.get(), "MergeFrom", "O", map_value));
+ if (ok.get() == NULL) {
+ return -1;
+ }
+ }
+ } else {
+ ScopedPyObjectPtr function_return;
+ function_return.reset(
+ PyObject_CallMethod(map.get(), "update", "O", value));
+ if (function_return.get() == NULL) {
+ return -1;
+ }
+ }
+ } else if (descriptor->label() == FieldDescriptor::LABEL_REPEATED) {
ScopedPyObjectPtr container(GetAttr(self, name));
if (container == NULL) {
return -1;
}
if (descriptor->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
- if (repeated_composite_container::Extend(
- reinterpret_cast<RepeatedCompositeContainer*>(container.get()),
- value)
- == NULL) {
+ RepeatedCompositeContainer* rc_container =
+ reinterpret_cast<RepeatedCompositeContainer*>(container.get());
+ ScopedPyObjectPtr iter(PyObject_GetIter(value));
+ if (iter == NULL) {
+ PyErr_SetString(PyExc_TypeError, "Value must be iterable");
+ return -1;
+ }
+ ScopedPyObjectPtr next;
+ while ((next.reset(PyIter_Next(iter))) != NULL) {
+ PyObject* kwargs = (PyDict_Check(next) ? next.get() : NULL);
+ ScopedPyObjectPtr new_msg(
+ repeated_composite_container::Add(rc_container, NULL, kwargs));
+ if (new_msg == NULL) {
+ return -1;
+ }
+ if (kwargs == NULL) {
+ // next was not a dict, it's a message we need to merge
+ ScopedPyObjectPtr merged(
+ MergeFrom(reinterpret_cast<CMessage*>(new_msg.get()), next));
+ if (merged == NULL) {
+ return -1;
+ }
+ }
+ }
+ if (PyErr_Occurred()) {
+ // Check to see how PyIter_Next() exited.
+ return -1;
+ }
+ } else if (descriptor->cpp_type() == FieldDescriptor::CPPTYPE_ENUM) {
+ RepeatedScalarContainer* rs_container =
+ reinterpret_cast<RepeatedScalarContainer*>(container.get());
+ ScopedPyObjectPtr iter(PyObject_GetIter(value));
+ if (iter == NULL) {
+ PyErr_SetString(PyExc_TypeError, "Value must be iterable");
+ return -1;
+ }
+ ScopedPyObjectPtr next;
+ while ((next.reset(PyIter_Next(iter))) != NULL) {
+ ScopedPyObjectPtr enum_value(GetIntegerEnumValue(*descriptor, next));
+ if (enum_value == NULL) {
+ return -1;
+ }
+ ScopedPyObjectPtr new_msg(
+ repeated_scalar_container::Append(rs_container, enum_value));
+ if (new_msg == NULL) {
+ return -1;
+ }
+ }
+ if (PyErr_Occurred()) {
+ // Check to see how PyIter_Next() exited.
return -1;
}
} else {
@@ -721,12 +858,26 @@ int InitAttributes(CMessage* self, PyObject* kwargs) {
if (message == NULL) {
return -1;
}
- if (MergeFrom(reinterpret_cast<CMessage*>(message.get()),
- value) == NULL) {
- return -1;
+ CMessage* cmessage = reinterpret_cast<CMessage*>(message.get());
+ if (PyDict_Check(value)) {
+ if (InitAttributes(cmessage, value) < 0) {
+ return -1;
+ }
+ } else {
+ ScopedPyObjectPtr merged(MergeFrom(cmessage, value));
+ if (merged == NULL) {
+ return -1;
+ }
}
} else {
- if (SetAttr(self, name, value) < 0) {
+ ScopedPyObjectPtr new_val;
+ if (descriptor->cpp_type() == FieldDescriptor::CPPTYPE_ENUM) {
+ new_val.reset(GetIntegerEnumValue(*descriptor, value));
+ if (new_val == NULL) {
+ return -1;
+ }
+ }
+ if (SetAttr(self, name, (new_val == NULL) ? value : new_val) < 0) {
return -1;
}
}
@@ -789,7 +940,6 @@ static PyObject* New(PyTypeObject* type,
}
self->message = default_message->New();
self->owner.reset(self->message);
-
return reinterpret_cast<PyObject*>(self);
}
@@ -830,6 +980,16 @@ struct ClearWeakReferences : public ChildVisitor {
return 0;
}
+ int VisitScalarMapContainer(ScalarMapContainer* container) {
+ container->parent = NULL;
+ return 0;
+ }
+
+ int VisitMessageMapContainer(MessageMapContainer* container) {
+ container->parent = NULL;
+ return 0;
+ }
+
int VisitCMessage(CMessage* cmessage,
const FieldDescriptor* field_descriptor) {
cmessage->parent = NULL;
@@ -1064,6 +1224,16 @@ struct SetOwnerVisitor : public ChildVisitor {
return 0;
}
+ int VisitScalarMapContainer(ScalarMapContainer* container) {
+ scalar_map_container::SetOwner(container, new_owner_);
+ return 0;
+ }
+
+ int VisitMessageMapContainer(MessageMapContainer* container) {
+ message_map_container::SetOwner(container, new_owner_);
+ return 0;
+ }
+
int VisitCMessage(CMessage* cmessage,
const FieldDescriptor* field_descriptor) {
return SetOwner(cmessage, new_owner_);
@@ -1084,11 +1254,11 @@ int SetOwner(CMessage* self, const shared_ptr<Message>& new_owner) {
// Releases the message specified by 'field' and returns the
// pointer. If the field does not exist a new message is created using
// 'descriptor'. The caller takes ownership of the returned pointer.
-Message* ReleaseMessage(Message* message,
+Message* ReleaseMessage(CMessage* self,
const Descriptor* descriptor,
const FieldDescriptor* field_descriptor) {
- Message* released_message = message->GetReflection()->ReleaseMessage(
- message, field_descriptor, message_factory);
+ Message* released_message = self->message->GetReflection()->ReleaseMessage(
+ self->message, field_descriptor, message_factory);
// ReleaseMessage will return NULL which differs from
// child_cmessage->message, if the field does not exist. In this case,
// the latter points to the default instance via a const_cast<>, so we
@@ -1102,12 +1272,12 @@ Message* ReleaseMessage(Message* message,
return released_message;
}
-int ReleaseSubMessage(Message* message,
+int ReleaseSubMessage(CMessage* self,
const FieldDescriptor* field_descriptor,
CMessage* child_cmessage) {
// Release the Message
shared_ptr<Message> released_message(ReleaseMessage(
- message, child_cmessage->message->GetDescriptor(), field_descriptor));
+ self, child_cmessage->message->GetDescriptor(), field_descriptor));
child_cmessage->message = released_message.get();
child_cmessage->owner.swap(released_message);
child_cmessage->parent = NULL;
@@ -1119,8 +1289,8 @@ int ReleaseSubMessage(Message* message,
struct ReleaseChild : public ChildVisitor {
// message must outlive this object.
- explicit ReleaseChild(Message* parent_message) :
- parent_message_(parent_message) {}
+ explicit ReleaseChild(CMessage* parent) :
+ parent_(parent) {}
int VisitRepeatedCompositeContainer(RepeatedCompositeContainer* container) {
return repeated_composite_container::Release(
@@ -1132,23 +1302,33 @@ struct ReleaseChild : public ChildVisitor {
reinterpret_cast<RepeatedScalarContainer*>(container));
}
+ int VisitScalarMapContainer(ScalarMapContainer* container) {
+ return scalar_map_container::Release(
+ reinterpret_cast<ScalarMapContainer*>(container));
+ }
+
+ int VisitMessageMapContainer(MessageMapContainer* container) {
+ return message_map_container::Release(
+ reinterpret_cast<MessageMapContainer*>(container));
+ }
+
int VisitCMessage(CMessage* cmessage,
const FieldDescriptor* field_descriptor) {
- return ReleaseSubMessage(parent_message_, field_descriptor,
+ return ReleaseSubMessage(parent_, field_descriptor,
reinterpret_cast<CMessage*>(cmessage));
}
- Message* parent_message_;
+ CMessage* parent_;
};
int InternalReleaseFieldByDescriptor(
+ CMessage* self,
const FieldDescriptor* field_descriptor,
- PyObject* composite_field,
- Message* parent_message) {
+ PyObject* composite_field) {
return VisitCompositeField(
field_descriptor,
composite_field,
- ReleaseChild(parent_message));
+ ReleaseChild(self));
}
PyObject* ClearFieldByDescriptor(
@@ -1200,8 +1380,8 @@ PyObject* ClearField(CMessage* self, PyObject* arg) {
// Only release the field if there's a possibility that there are
// references to it.
if (composite_field != NULL) {
- if (InternalReleaseFieldByDescriptor(field_descriptor,
- composite_field, message) < 0) {
+ if (InternalReleaseFieldByDescriptor(self, field_descriptor,
+ composite_field) < 0) {
return NULL;
}
PyDict_DelItem(self->composite_fields, arg);
@@ -1219,7 +1399,7 @@ PyObject* ClearField(CMessage* self, PyObject* arg) {
PyObject* Clear(CMessage* self) {
AssureWritable(self);
- if (ForEachCompositeField(self, ReleaseChild(self->message)) == -1)
+ if (ForEachCompositeField(self, ReleaseChild(self)) == -1)
return NULL;
// The old ExtensionDict still aliases this CMessage, but all its
@@ -1582,7 +1762,8 @@ static PyObject* ListFields(CMessage* self) {
}
if (fields[i]->is_extension()) {
- ScopedPyObjectPtr extension_field(PyFieldDescriptor_New(fields[i]));
+ ScopedPyObjectPtr extension_field(
+ PyFieldDescriptor_FromDescriptor(fields[i]));
if (extension_field == NULL) {
return NULL;
}
@@ -1616,7 +1797,8 @@ static PyObject* ListFields(CMessage* self) {
PyErr_SetString(PyExc_ValueError, "bad string");
return NULL;
}
- ScopedPyObjectPtr field_descriptor(PyFieldDescriptor_New(fields[i]));
+ ScopedPyObjectPtr field_descriptor(
+ PyFieldDescriptor_FromDescriptor(fields[i]));
if (field_descriptor == NULL) {
return NULL;
}
@@ -1683,10 +1865,8 @@ static PyObject* RichCompare(CMessage* self, PyObject* other, int opid) {
}
}
-PyObject* InternalGetScalar(
- CMessage* self,
- const FieldDescriptor* field_descriptor) {
- Message* message = self->message;
+PyObject* InternalGetScalar(const Message* message,
+ const FieldDescriptor* field_descriptor) {
const Reflection* reflection = message->GetReflection();
if (!CheckFieldBelongsToMessage(field_descriptor, message)) {
@@ -1739,12 +1919,12 @@ PyObject* InternalGetScalar(
if (!message->GetReflection()->SupportsUnknownEnumValues() &&
!message->GetReflection()->HasField(*message, field_descriptor)) {
// Look for the value in the unknown fields.
- UnknownFieldSet* unknown_field_set =
- message->GetReflection()->MutableUnknownFields(message);
- for (int i = 0; i < unknown_field_set->field_count(); ++i) {
- if (unknown_field_set->field(i).number() ==
+ const UnknownFieldSet& unknown_field_set =
+ message->GetReflection()->GetUnknownFields(*message);
+ for (int i = 0; i < unknown_field_set.field_count(); ++i) {
+ if (unknown_field_set.field(i).number() ==
field_descriptor->number()) {
- result = PyInt_FromLong(unknown_field_set->field(i).varint());
+ result = PyInt_FromLong(unknown_field_set.field(i).varint());
break;
}
}
@@ -1793,21 +1973,16 @@ PyObject* InternalGetSubMessage(
return reinterpret_cast<PyObject*>(cmsg);
}
-int InternalSetScalar(
- CMessage* self,
+int InternalSetNonOneofScalar(
+ Message* message,
const FieldDescriptor* field_descriptor,
PyObject* arg) {
- Message* message = self->message;
const Reflection* reflection = message->GetReflection();
if (!CheckFieldBelongsToMessage(field_descriptor, message)) {
return -1;
}
- if (MaybeReleaseOverlappingOneofField(self, field_descriptor) < 0) {
- return -1;
- }
-
switch (field_descriptor->cpp_type()) {
case FieldDescriptor::CPPTYPE_INT32: {
GOOGLE_CHECK_GET_INT32(arg, value, -1);
@@ -1878,6 +2053,21 @@ int InternalSetScalar(
return 0;
}
+int InternalSetScalar(
+ CMessage* self,
+ const FieldDescriptor* field_descriptor,
+ PyObject* arg) {
+ if (!CheckFieldBelongsToMessage(field_descriptor, self->message)) {
+ return -1;
+ }
+
+ if (MaybeReleaseOverlappingOneofField(self, field_descriptor) < 0) {
+ return -1;
+ }
+
+ return InternalSetNonOneofScalar(self->message, field_descriptor, arg);
+}
+
PyObject* FromString(PyTypeObject* cls, PyObject* serialized) {
PyObject* py_cmsg = PyObject_CallObject(
reinterpret_cast<PyObject*>(cls), NULL);
@@ -1955,7 +2145,8 @@ static PyObject* AddDescriptors(PyObject* cls, PyObject* descriptor) {
// which was built previously.
for (int i = 0; i < message_descriptor->enum_type_count(); ++i) {
const EnumDescriptor* enum_descriptor = message_descriptor->enum_type(i);
- ScopedPyObjectPtr enum_type(PyEnumDescriptor_New(enum_descriptor));
+ ScopedPyObjectPtr enum_type(
+ PyEnumDescriptor_FromDescriptor(enum_descriptor));
if (enum_type == NULL) {
return NULL;
}
@@ -1993,7 +2184,7 @@ static PyObject* AddDescriptors(PyObject* cls, PyObject* descriptor) {
// which was defined previously.
for (int i = 0; i < message_descriptor->extension_count(); ++i) {
const google::protobuf::FieldDescriptor* field = message_descriptor->extension(i);
- ScopedPyObjectPtr extension_field(PyFieldDescriptor_New(field));
+ ScopedPyObjectPtr extension_field(PyFieldDescriptor_FromDescriptor(field));
if (extension_field == NULL) {
return NULL;
}
@@ -2097,26 +2288,6 @@ PyObject* SetState(CMessage* self, PyObject* state) {
}
// CMessage static methods:
-PyObject* _GetMessageDescriptor(PyObject* unused, PyObject* arg) {
- return cdescriptor_pool::FindMessageByName(GetDescriptorPool(), arg);
-}
-
-PyObject* _GetFieldDescriptor(PyObject* unused, PyObject* arg) {
- return cdescriptor_pool::FindFieldByName(GetDescriptorPool(), arg);
-}
-
-PyObject* _GetExtensionDescriptor(PyObject* unused, PyObject* arg) {
- return cdescriptor_pool::FindExtensionByName(GetDescriptorPool(), arg);
-}
-
-PyObject* _GetEnumDescriptor(PyObject* unused, PyObject* arg) {
- return cdescriptor_pool::FindEnumTypeByName(GetDescriptorPool(), arg);
-}
-
-PyObject* _GetOneofDescriptor(PyObject* unused, PyObject* arg) {
- return cdescriptor_pool::FindOneofByName(GetDescriptorPool(), arg);
-}
-
PyObject* _CheckCalledFromGeneratedFile(PyObject* unused,
PyObject* unused_arg) {
if (!_CalledFromGeneratedFile(1)) {
@@ -2188,21 +2359,6 @@ static PyMethodDef Methods[] = {
"or None if no field is set." },
// Static Methods.
- { "_BuildFile", (PyCFunction)Python_BuildFile, METH_O | METH_STATIC,
- "Registers a new protocol buffer file in the global C++ descriptor pool." },
- { "_GetMessageDescriptor", (PyCFunction)_GetMessageDescriptor,
- METH_O | METH_STATIC, "Finds a message descriptor in the message pool." },
- { "_GetFieldDescriptor", (PyCFunction)_GetFieldDescriptor,
- METH_O | METH_STATIC, "Finds a field descriptor in the message pool." },
- { "_GetExtensionDescriptor", (PyCFunction)_GetExtensionDescriptor,
- METH_O | METH_STATIC,
- "Finds a extension descriptor in the message pool." },
- { "_GetEnumDescriptor", (PyCFunction)_GetEnumDescriptor,
- METH_O | METH_STATIC,
- "Finds an enum descriptor in the message pool." },
- { "_GetOneofDescriptor", (PyCFunction)_GetOneofDescriptor,
- METH_O | METH_STATIC,
- "Finds an oneof descriptor in the message pool." },
{ "_CheckCalledFromGeneratedFile", (PyCFunction)_CheckCalledFromGeneratedFile,
METH_NOARGS | METH_STATIC,
"Raises TypeError if the caller is not in a _pb2.py file."},
@@ -2234,6 +2390,31 @@ PyObject* GetAttr(CMessage* self, PyObject* name) {
reinterpret_cast<PyObject*>(self), name);
}
+ if (field_descriptor->is_map()) {
+ PyObject* py_container = NULL;
+ const Descriptor* entry_type = field_descriptor->message_type();
+ const FieldDescriptor* value_type = entry_type->FindFieldByName("value");
+ if (value_type->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
+ PyObject* value_class = cdescriptor_pool::GetMessageClass(
+ GetDescriptorPool(), value_type->message_type());
+ if (value_class == NULL) {
+ return NULL;
+ }
+ py_container = message_map_container::NewContainer(self, field_descriptor,
+ value_class);
+ } else {
+ py_container = scalar_map_container::NewContainer(self, field_descriptor);
+ }
+ if (py_container == NULL) {
+ return NULL;
+ }
+ if (!SetCompositeField(self, name, py_container)) {
+ Py_DECREF(py_container);
+ return NULL;
+ }
+ return py_container;
+ }
+
if (field_descriptor->label() == FieldDescriptor::LABEL_REPEATED) {
PyObject* py_container = NULL;
if (field_descriptor->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
@@ -2267,7 +2448,7 @@ PyObject* GetAttr(CMessage* self, PyObject* name) {
return sub_message;
}
- return InternalGetScalar(self, field_descriptor);
+ return InternalGetScalar(self->message, field_descriptor);
}
int SetAttr(CMessage* self, PyObject* name, PyObject* value) {
@@ -2304,9 +2485,7 @@ int SetAttr(CMessage* self, PyObject* name, PyObject* value) {
PyTypeObject CMessage_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- // Keep the fully qualified _message symbol in a line for opensource.
- "google.protobuf.pyext._message."
- "CMessage", // tp_name
+ FULL_MODULE_NAME ".CMessage", // tp_name
sizeof(CMessage), // tp_basicsize
0, // tp_itemsize
(destructor)cmessage::Dealloc, // tp_dealloc
@@ -2401,7 +2580,7 @@ void InitGlobals() {
k_extensions_by_name = PyString_FromString("_extensions_by_name");
k_extensions_by_number = PyString_FromString("_extensions_by_number");
- message_factory = new DynamicMessageFactory(GetDescriptorPool()->pool);
+ message_factory = new DynamicMessageFactory();
message_factory->SetDelegateToGeneratedFactory(true);
}
@@ -2469,6 +2648,61 @@ bool InitProto2MessageModule(PyObject *m) {
reinterpret_cast<PyObject*>(
&RepeatedCompositeContainer_Type));
+ // ScalarMapContainer_Type derives from our MutableMapping type.
+ PyObject* containers =
+ PyImport_ImportModule("google.protobuf.internal.containers");
+ if (containers == NULL) {
+ return false;
+ }
+
+ PyObject* mutable_mapping =
+ PyObject_GetAttrString(containers, "MutableMapping");
+ Py_DECREF(containers);
+
+ if (mutable_mapping == NULL) {
+ return false;
+ }
+
+ if (!PyObject_TypeCheck(mutable_mapping, &PyType_Type)) {
+ Py_DECREF(mutable_mapping);
+ return false;
+ }
+
+ ScalarMapContainer_Type.tp_base =
+ reinterpret_cast<PyTypeObject*>(mutable_mapping);
+
+ if (PyType_Ready(&ScalarMapContainer_Type) < 0) {
+ return false;
+ }
+
+ PyModule_AddObject(m, "ScalarMapContainer",
+ reinterpret_cast<PyObject*>(&ScalarMapContainer_Type));
+
+ if (PyType_Ready(&ScalarMapIterator_Type) < 0) {
+ return false;
+ }
+
+ PyModule_AddObject(m, "ScalarMapIterator",
+ reinterpret_cast<PyObject*>(&ScalarMapIterator_Type));
+
+ Py_INCREF(mutable_mapping);
+ MessageMapContainer_Type.tp_base =
+ reinterpret_cast<PyTypeObject*>(mutable_mapping);
+
+ if (PyType_Ready(&MessageMapContainer_Type) < 0) {
+ return false;
+ }
+
+ PyModule_AddObject(m, "MessageMapContainer",
+ reinterpret_cast<PyObject*>(&MessageMapContainer_Type));
+
+ if (PyType_Ready(&MessageMapIterator_Type) < 0) {
+ return false;
+ }
+
+ PyModule_AddObject(m, "MessageMapIterator",
+ reinterpret_cast<PyObject*>(&MessageMapIterator_Type));
+
ExtensionDict_Type.tp_hash = PyObject_HashNotImplemented;
if (PyType_Ready(&ExtensionDict_Type) < 0) {
return false;
@@ -2478,6 +2712,12 @@ bool InitProto2MessageModule(PyObject *m) {
m, "ExtensionDict",
reinterpret_cast<PyObject*>(&ExtensionDict_Type));
+ // Expose the DescriptorPool used to hold all descriptors added from generated
+ // pb2.py files.
+ Py_INCREF(GetDescriptorPool()); // PyModule_AddObject steals a reference.
+ PyModule_AddObject(
+ m, "default_pool", reinterpret_cast<PyObject*>(GetDescriptorPool()));
+
// This implementation provides full Descriptor types, we advertise it so that
// descriptor.py can use them in replacement of the Python classes.
PyModule_AddIntConstant(m, "_USE_C_DESCRIPTORS", 1);
diff --git a/python/google/protobuf/pyext/message.h b/python/google/protobuf/pyext/message.h
index 2f2da795..7360b207 100644
--- a/python/google/protobuf/pyext/message.h
+++ b/python/google/protobuf/pyext/message.h
@@ -120,7 +120,7 @@ CMessage* NewEmptyMessage(PyObject* type, const Descriptor* descriptor);
// A new message will be created if this is a read-only default instance.
//
// Corresponds to reflection api method ReleaseMessage.
-int ReleaseSubMessage(Message* message,
+int ReleaseSubMessage(CMessage* self,
const FieldDescriptor* field_descriptor,
CMessage* child_cmessage);
@@ -144,7 +144,7 @@ PyObject* InternalGetSubMessage(
// by slice will be removed from cmessage_list by this function.
//
// Corresponds to reflection api method RemoveLast.
-int InternalDeleteRepeatedField(Message* message,
+int InternalDeleteRepeatedField(CMessage* self,
const FieldDescriptor* field_descriptor,
PyObject* slice, PyObject* cmessage_list);
@@ -153,10 +153,15 @@ int InternalSetScalar(CMessage* self,
const FieldDescriptor* field_descriptor,
PyObject* value);
+// Sets the specified scalar value to the message. Requires it is not a Oneof.
+int InternalSetNonOneofScalar(Message* message,
+ const FieldDescriptor* field_descriptor,
+ PyObject* arg);
+
// Retrieves the specified scalar value from the message.
//
// Returns a new python reference.
-PyObject* InternalGetScalar(CMessage* self,
+PyObject* InternalGetScalar(const Message* message,
const FieldDescriptor* field_descriptor);
// Clears the message, removing all contained data. Extension dictionary and
@@ -279,7 +284,7 @@ extern PyObject* kint64min_py;
extern PyObject* kint64max_py;
extern PyObject* kuint64max_py;
-#define C(str) const_cast<char*>(str)
+#define FULL_MODULE_NAME "google.protobuf.pyext._message"
void FormatTypeError(PyObject* arg, char* expected_types);
template<class T>
diff --git a/python/google/protobuf/pyext/message_map_container.cc b/python/google/protobuf/pyext/message_map_container.cc
new file mode 100644
index 00000000..ab8d8fb9
--- /dev/null
+++ b/python/google/protobuf/pyext/message_map_container.cc
@@ -0,0 +1,540 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: haberman@google.com (Josh Haberman)
+
+#include <google/protobuf/pyext/message_map_container.h>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/pyext/message.h>
+#include <google/protobuf/pyext/scoped_pyobject_ptr.h>
+
+namespace google {
+namespace protobuf {
+namespace python {
+
+struct MessageMapIterator {
+ PyObject_HEAD;
+
+ // This dict contains the full contents of what we want to iterate over.
+ // There's no way to avoid building this, because the list representation
+ // (which is canonical) can contain duplicate keys. So at the very least we
+ // need a set that lets us skip duplicate keys. And at the point that we're
+ // doing that, we might as well just build the actual dict we're iterating
+ // over and use dict's built-in iterator.
+ PyObject* dict;
+
+ // An iterator on dict.
+ PyObject* iter;
+
+ // A pointer back to the container, so we can notice changes to the version.
+ MessageMapContainer* container;
+
+ // The version of the map when we took the iterator to it.
+ //
+ // We store this so that if the map is modified during iteration we can throw
+ // an error.
+ uint64 version;
+};
+
+static MessageMapIterator* GetIter(PyObject* obj) {
+ return reinterpret_cast<MessageMapIterator*>(obj);
+}
+
+namespace message_map_container {
+
+static MessageMapContainer* GetMap(PyObject* obj) {
+ return reinterpret_cast<MessageMapContainer*>(obj);
+}
+
+// The private constructor of MessageMapContainer objects.
+PyObject* NewContainer(CMessage* parent,
+ const google::protobuf::FieldDescriptor* parent_field_descriptor,
+ PyObject* concrete_class) {
+ if (!CheckFieldBelongsToMessage(parent_field_descriptor, parent->message)) {
+ return NULL;
+ }
+
+ PyObject* obj = PyType_GenericAlloc(&MessageMapContainer_Type, 0);
+ if (obj == NULL) {
+ return PyErr_Format(PyExc_RuntimeError,
+ "Could not allocate new container.");
+ }
+
+ MessageMapContainer* self = GetMap(obj);
+
+ self->message = parent->message;
+ self->parent = parent;
+ self->parent_field_descriptor = parent_field_descriptor;
+ self->owner = parent->owner;
+ self->version = 0;
+
+ self->key_field_descriptor =
+ parent_field_descriptor->message_type()->FindFieldByName("key");
+ self->value_field_descriptor =
+ parent_field_descriptor->message_type()->FindFieldByName("value");
+
+ self->message_dict = PyDict_New();
+ if (self->message_dict == NULL) {
+ return PyErr_Format(PyExc_RuntimeError,
+ "Could not allocate message dict.");
+ }
+
+ Py_INCREF(concrete_class);
+ self->subclass_init = concrete_class;
+
+ if (self->key_field_descriptor == NULL ||
+ self->value_field_descriptor == NULL) {
+ Py_DECREF(obj);
+ return PyErr_Format(PyExc_KeyError,
+ "Map entry descriptor did not have key/value fields");
+ }
+
+ return obj;
+}
+
+// Initializes the underlying Message object of "to" so it becomes a new parent
+// repeated scalar, and copies all the values from "from" to it. A child scalar
+// container can be released by passing it as both from and to (e.g. making it
+// the recipient of the new parent message and copying the values from itself).
+static int InitializeAndCopyToParentContainer(
+ MessageMapContainer* from,
+ MessageMapContainer* to) {
+ // For now we require from == to, re-evaluate if we want to support deep copy
+ // as in repeated_composite_container.cc.
+ GOOGLE_DCHECK(from == to);
+ Message* old_message = from->message;
+ Message* new_message = old_message->New();
+ to->parent = NULL;
+ to->parent_field_descriptor = from->parent_field_descriptor;
+ to->message = new_message;
+ to->owner.reset(new_message);
+
+ vector<const FieldDescriptor*> fields;
+ fields.push_back(from->parent_field_descriptor);
+ old_message->GetReflection()->SwapFields(old_message, new_message, fields);
+ return 0;
+}
+
+static PyObject* GetCMessage(MessageMapContainer* self, Message* entry) {
+ // Get or create the CMessage object corresponding to this message.
+ Message* message = entry->GetReflection()->MutableMessage(
+ entry, self->value_field_descriptor);
+ ScopedPyObjectPtr key(PyLong_FromVoidPtr(message));
+ PyObject* ret = PyDict_GetItem(self->message_dict, key);
+
+ if (ret == NULL) {
+ CMessage* cmsg = cmessage::NewEmptyMessage(self->subclass_init,
+ message->GetDescriptor());
+ ret = reinterpret_cast<PyObject*>(cmsg);
+
+ if (cmsg == NULL) {
+ return NULL;
+ }
+ cmsg->owner = self->owner;
+ cmsg->message = message;
+ cmsg->parent = self->parent;
+
+ if (PyDict_SetItem(self->message_dict, key, ret) < 0) {
+ Py_DECREF(ret);
+ return NULL;
+ }
+ } else {
+ Py_INCREF(ret);
+ }
+
+ return ret;
+}
+
+int Release(MessageMapContainer* self) {
+ InitializeAndCopyToParentContainer(self, self);
+ return 0;
+}
+
+void SetOwner(MessageMapContainer* self,
+ const shared_ptr<Message>& new_owner) {
+ self->owner = new_owner;
+}
+
+Py_ssize_t Length(PyObject* _self) {
+ MessageMapContainer* self = GetMap(_self);
+ google::protobuf::Message* message = self->message;
+ return message->GetReflection()->FieldSize(*message,
+ self->parent_field_descriptor);
+}
+
+int MapKeyMatches(MessageMapContainer* self, const Message* entry,
+ PyObject* key) {
+ // TODO(haberman): do we need more strict type checking?
+ ScopedPyObjectPtr entry_key(
+ cmessage::InternalGetScalar(entry, self->key_field_descriptor));
+ int ret = PyObject_RichCompareBool(key, entry_key, Py_EQ);
+ return ret;
+}
+
+int SetItem(PyObject *_self, PyObject *key, PyObject *v) {
+ if (v) {
+ PyErr_Format(PyExc_ValueError,
+ "Direct assignment of submessage not allowed");
+ return -1;
+ }
+
+ // Now we know that this is a delete, not a set.
+
+ MessageMapContainer* self = GetMap(_self);
+ cmessage::AssureWritable(self->parent);
+
+ Message* message = self->message;
+ const Reflection* reflection = message->GetReflection();
+ size_t size =
+ reflection->FieldSize(*message, self->parent_field_descriptor);
+
+ // Right now the Reflection API doesn't support map lookup, so we implement it
+ // via linear search. We need to search from the end because the underlying
+ // representation can have duplicates if a user calls MergeFrom(); the last
+ // one needs to win.
+ //
+ // TODO(haberman): add lookup API to Reflection API.
+ bool found = false;
+ for (int i = size - 1; i >= 0; i--) {
+ Message* entry = reflection->MutableRepeatedMessage(
+ message, self->parent_field_descriptor, i);
+ int matches = MapKeyMatches(self, entry, key);
+ if (matches < 0) return -1;
+ if (matches) {
+ found = true;
+ if (i != size - 1) {
+ reflection->SwapElements(message, self->parent_field_descriptor, i,
+ size - 1);
+ }
+ reflection->RemoveLast(message, self->parent_field_descriptor);
+
+ // Can't exit now, the repeated field representation of maps allows
+ // duplicate keys, and we have to be sure to remove all of them.
+ }
+ }
+
+ if (!found) {
+ PyErr_Format(PyExc_KeyError, "Key not present in map");
+ return -1;
+ }
+
+ self->version++;
+
+ return 0;
+}
+
+PyObject* GetIterator(PyObject *_self) {
+ MessageMapContainer* self = GetMap(_self);
+
+ ScopedPyObjectPtr obj(PyType_GenericAlloc(&MessageMapIterator_Type, 0));
+ if (obj == NULL) {
+ return PyErr_Format(PyExc_KeyError, "Could not allocate iterator");
+ }
+
+ MessageMapIterator* iter = GetIter(obj);
+
+ Py_INCREF(self);
+ iter->container = self;
+ iter->version = self->version;
+ iter->dict = PyDict_New();
+ if (iter->dict == NULL) {
+ return PyErr_Format(PyExc_RuntimeError,
+ "Could not allocate dict for iterator.");
+ }
+
+ // Build the entire map into a dict right now. Start from the beginning so
+ // that later entries win in the case of duplicates.
+ Message* message = self->message;
+ const Reflection* reflection = message->GetReflection();
+
+ // Right now the Reflection API doesn't support map lookup, so we implement it
+ // via linear search. We need to search from the end because the underlying
+ // representation can have duplicates if a user calls MergeFrom(); the last
+ // one needs to win.
+ //
+ // TODO(haberman): add lookup API to Reflection API.
+ size_t size =
+ reflection->FieldSize(*message, self->parent_field_descriptor);
+ for (int i = size - 1; i >= 0; i--) {
+ Message* entry = reflection->MutableRepeatedMessage(
+ message, self->parent_field_descriptor, i);
+ ScopedPyObjectPtr key(
+ cmessage::InternalGetScalar(entry, self->key_field_descriptor));
+ if (PyDict_SetItem(iter->dict, key.get(), GetCMessage(self, entry)) < 0) {
+ return PyErr_Format(PyExc_RuntimeError,
+ "SetItem failed in iterator construction.");
+ }
+ }
+
+ iter->iter = PyObject_GetIter(iter->dict);
+
+ return obj.release();
+}
+
+PyObject* GetItem(PyObject* _self, PyObject* key) {
+ MessageMapContainer* self = GetMap(_self);
+ cmessage::AssureWritable(self->parent);
+ Message* message = self->message;
+ const Reflection* reflection = message->GetReflection();
+
+ // Right now the Reflection API doesn't support map lookup, so we implement it
+ // via linear search. We need to search from the end because the underlying
+ // representation can have duplicates if a user calls MergeFrom(); the last
+ // one needs to win.
+ //
+ // TODO(haberman): add lookup API to Reflection API.
+ size_t size =
+ reflection->FieldSize(*message, self->parent_field_descriptor);
+ for (int i = size - 1; i >= 0; i--) {
+ Message* entry = reflection->MutableRepeatedMessage(
+ message, self->parent_field_descriptor, i);
+ int matches = MapKeyMatches(self, entry, key);
+ if (matches < 0) return NULL;
+ if (matches) {
+ return GetCMessage(self, entry);
+ }
+ }
+
+ // Key is not already present; insert a new entry.
+ Message* entry =
+ reflection->AddMessage(message, self->parent_field_descriptor);
+
+ self->version++;
+
+ if (cmessage::InternalSetNonOneofScalar(entry, self->key_field_descriptor,
+ key) < 0) {
+ reflection->RemoveLast(message, self->parent_field_descriptor);
+ return NULL;
+ }
+
+ return GetCMessage(self, entry);
+}
+
+PyObject* Contains(PyObject* _self, PyObject* key) {
+ MessageMapContainer* self = GetMap(_self);
+ Message* message = self->message;
+ const Reflection* reflection = message->GetReflection();
+
+ // Right now the Reflection API doesn't support map lookup, so we implement it
+ // via linear search.
+ //
+ // TODO(haberman): add lookup API to Reflection API.
+ size_t size =
+ reflection->FieldSize(*message, self->parent_field_descriptor);
+ for (int i = 0; i < size; i++) {
+ Message* entry = reflection->MutableRepeatedMessage(
+ message, self->parent_field_descriptor, i);
+ int matches = MapKeyMatches(self, entry, key);
+ if (matches < 0) return NULL;
+ if (matches) {
+ Py_RETURN_TRUE;
+ }
+ }
+
+ Py_RETURN_FALSE;
+}
+
+PyObject* Clear(PyObject* _self) {
+ MessageMapContainer* self = GetMap(_self);
+ cmessage::AssureWritable(self->parent);
+ Message* message = self->message;
+ const Reflection* reflection = message->GetReflection();
+
+ self->version++;
+ reflection->ClearField(message, self->parent_field_descriptor);
+
+ Py_RETURN_NONE;
+}
+
+PyObject* Get(PyObject* self, PyObject* args) {
+ PyObject* key;
+ PyObject* default_value = NULL;
+ if (PyArg_ParseTuple(args, "O|O", &key, &default_value) < 0) {
+ return NULL;
+ }
+
+ ScopedPyObjectPtr is_present(Contains(self, key));
+ if (is_present.get() == NULL) {
+ return NULL;
+ }
+
+ if (PyObject_IsTrue(is_present.get())) {
+ return GetItem(self, key);
+ } else {
+ if (default_value != NULL) {
+ Py_INCREF(default_value);
+ return default_value;
+ } else {
+ Py_RETURN_NONE;
+ }
+ }
+}
+
+static PyMappingMethods MpMethods = {
+ Length, // mp_length
+ GetItem, // mp_subscript
+ SetItem, // mp_ass_subscript
+};
+
+static void Dealloc(PyObject* _self) {
+ MessageMapContainer* self = GetMap(_self);
+ self->owner.reset();
+ Py_DECREF(self->message_dict);
+ Py_TYPE(_self)->tp_free(_self);
+}
+
+static PyMethodDef Methods[] = {
+ { "__contains__", (PyCFunction)Contains, METH_O,
+ "Tests whether the map contains this element."},
+ { "clear", (PyCFunction)Clear, METH_NOARGS,
+ "Removes all elements from the map."},
+ { "get", Get, METH_VARARGS,
+ "Gets the value for the given key if present, or otherwise a default" },
+ { "get_or_create", GetItem, METH_O,
+ "Alias for getitem, useful to make explicit that the map is mutated." },
+ /*
+ { "__deepcopy__", (PyCFunction)DeepCopy, METH_VARARGS,
+ "Makes a deep copy of the class." },
+ { "__reduce__", (PyCFunction)Reduce, METH_NOARGS,
+ "Outputs picklable representation of the repeated field." },
+ */
+ {NULL, NULL},
+};
+
+} // namespace message_map_container
+
+namespace message_map_iterator {
+
+static void Dealloc(PyObject* _self) {
+ MessageMapIterator* self = GetIter(_self);
+ Py_DECREF(self->dict);
+ Py_DECREF(self->iter);
+ Py_DECREF(self->container);
+ Py_TYPE(_self)->tp_free(_self);
+}
+
+PyObject* IterNext(PyObject* _self) {
+ MessageMapIterator* self = GetIter(_self);
+
+ // This won't catch mutations to the map performed by MergeFrom(); no easy way
+ // to address that.
+ if (self->version != self->container->version) {
+ return PyErr_Format(PyExc_RuntimeError,
+ "Map modified during iteration.");
+ }
+
+ return PyIter_Next(self->iter);
+}
+
+} // namespace message_map_iterator
+
+PyTypeObject MessageMapContainer_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ FULL_MODULE_NAME ".MessageMapContainer", // tp_name
+ sizeof(MessageMapContainer), // tp_basicsize
+ 0, // tp_itemsize
+ message_map_container::Dealloc, // tp_dealloc
+ 0, // tp_print
+ 0, // tp_getattr
+ 0, // tp_setattr
+ 0, // tp_compare
+ 0, // tp_repr
+ 0, // tp_as_number
+ 0, // tp_as_sequence
+ &message_map_container::MpMethods, // tp_as_mapping
+ 0, // tp_hash
+ 0, // tp_call
+ 0, // tp_str
+ 0, // tp_getattro
+ 0, // tp_setattro
+ 0, // tp_as_buffer
+ Py_TPFLAGS_DEFAULT, // tp_flags
+ "A map container for message", // tp_doc
+ 0, // tp_traverse
+ 0, // tp_clear
+ 0, // tp_richcompare
+ 0, // tp_weaklistoffset
+ message_map_container::GetIterator, // tp_iter
+ 0, // tp_iternext
+ message_map_container::Methods, // tp_methods
+ 0, // tp_members
+ 0, // tp_getset
+ 0, // tp_base
+ 0, // tp_dict
+ 0, // tp_descr_get
+ 0, // tp_descr_set
+ 0, // tp_dictoffset
+ 0, // tp_init
+};
+
+PyTypeObject MessageMapIterator_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ FULL_MODULE_NAME ".MessageMapIterator", // tp_name
+ sizeof(MessageMapIterator), // tp_basicsize
+ 0, // tp_itemsize
+ message_map_iterator::Dealloc, // tp_dealloc
+ 0, // tp_print
+ 0, // tp_getattr
+ 0, // tp_setattr
+ 0, // tp_compare
+ 0, // tp_repr
+ 0, // tp_as_number
+ 0, // tp_as_sequence
+ 0, // tp_as_mapping
+ 0, // tp_hash
+ 0, // tp_call
+ 0, // tp_str
+ 0, // tp_getattro
+ 0, // tp_setattro
+ 0, // tp_as_buffer
+ Py_TPFLAGS_DEFAULT, // tp_flags
+ "A scalar map iterator", // tp_doc
+ 0, // tp_traverse
+ 0, // tp_clear
+ 0, // tp_richcompare
+ 0, // tp_weaklistoffset
+ PyObject_SelfIter, // tp_iter
+ message_map_iterator::IterNext, // tp_iternext
+ 0, // tp_methods
+ 0, // tp_members
+ 0, // tp_getset
+ 0, // tp_base
+ 0, // tp_dict
+ 0, // tp_descr_get
+ 0, // tp_descr_set
+ 0, // tp_dictoffset
+ 0, // tp_init
+};
+
+} // namespace python
+} // namespace protobuf
+} // namespace google
diff --git a/python/google/protobuf/pyext/message_map_container.h b/python/google/protobuf/pyext/message_map_container.h
new file mode 100644
index 00000000..4ca0aecc
--- /dev/null
+++ b/python/google/protobuf/pyext/message_map_container.h
@@ -0,0 +1,117 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_PYTHON_CPP_MESSAGE_MAP_CONTAINER_H__
+#define GOOGLE_PROTOBUF_PYTHON_CPP_MESSAGE_MAP_CONTAINER_H__
+
+#include <Python.h>
+
+#include <memory>
+#ifndef _SHARED_PTR_H
+#include <google/protobuf/stubs/shared_ptr.h>
+#endif
+
+#include <google/protobuf/descriptor.h>
+
+namespace google {
+namespace protobuf {
+
+class Message;
+
+using internal::shared_ptr;
+
+namespace python {
+
+struct CMessage;
+
+struct MessageMapContainer {
+ PyObject_HEAD;
+
+ // This is the top-level C++ Message object that owns the whole
+ // proto tree. Every Python MessageMapContainer holds a
+ // reference to it in order to keep it alive as long as there's a
+ // Python object that references any part of the tree.
+ shared_ptr<Message> owner;
+
+ // Pointer to the C++ Message that contains this container. The
+ // MessageMapContainer does not own this pointer.
+ Message* message;
+
+ // Weak reference to a parent CMessage object (i.e. may be NULL.)
+ //
+ // Used to make sure all ancestors are also mutable when first
+ // modifying the container.
+ CMessage* parent;
+
+ // Pointer to the parent's descriptor that describes this
+ // field. Used together with the parent's message when making a
+ // default message instance mutable.
+ // The pointer is owned by the global DescriptorPool.
+ const FieldDescriptor* parent_field_descriptor;
+ const FieldDescriptor* key_field_descriptor;
+ const FieldDescriptor* value_field_descriptor;
+
+ // A callable that is used to create new child messages.
+ PyObject* subclass_init;
+
+ // A dict mapping Message* -> CMessage.
+ PyObject* message_dict;
+
+ // We bump this whenever we perform a mutation, to invalidate existing
+ // iterators.
+ uint64 version;
+};
+
+extern PyTypeObject MessageMapContainer_Type;
+extern PyTypeObject MessageMapIterator_Type;
+
+namespace message_map_container {
+
+// Builds a MessageMapContainer object, from a parent message and a
+// field descriptor.
+extern PyObject* NewContainer(CMessage* parent,
+ const FieldDescriptor* parent_field_descriptor,
+ PyObject* concrete_class);
+
+// Releases the messages in the container to a new message.
+//
+// Returns 0 on success, -1 on failure.
+int Release(MessageMapContainer* self);
+
+// Set the owner field of self and any children of self.
+void SetOwner(MessageMapContainer* self,
+ const shared_ptr<Message>& new_owner);
+
+} // namespace message_map_container
+} // namespace python
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_PYTHON_CPP_MESSAGE_MAP_CONTAINER_H__
diff --git a/python/google/protobuf/pyext/repeated_composite_container.cc b/python/google/protobuf/pyext/repeated_composite_container.cc
index 0fe98e73..86b75d0f 100644
--- a/python/google/protobuf/pyext/repeated_composite_container.cc
+++ b/python/google/protobuf/pyext/repeated_composite_container.cc
@@ -367,8 +367,8 @@ int AssignSubscript(RepeatedCompositeContainer* self,
}
// Delete from the underlying Message, if any.
- if (self->message != NULL) {
- if (cmessage::InternalDeleteRepeatedField(self->message,
+ if (self->parent != NULL) {
+ if (cmessage::InternalDeleteRepeatedField(self->parent,
self->parent_field_descriptor,
slice,
self->child_messages) < 0) {
@@ -572,47 +572,35 @@ static PyObject* Pop(RepeatedCompositeContainer* self,
return item;
}
-// The caller takes ownership of the returned Message.
-Message* ReleaseLast(const FieldDescriptor* field,
- const Descriptor* type,
- Message* message) {
+// Release field of parent message and transfer the ownership to target.
+void ReleaseLastTo(CMessage* parent,
+ const FieldDescriptor* field,
+ CMessage* target) {
+ GOOGLE_CHECK_NOTNULL(parent);
GOOGLE_CHECK_NOTNULL(field);
- GOOGLE_CHECK_NOTNULL(type);
- GOOGLE_CHECK_NOTNULL(message);
+ GOOGLE_CHECK_NOTNULL(target);
- Message* released_message = message->GetReflection()->ReleaseLast(
- message, field);
+ shared_ptr<Message> released_message(
+ parent->message->GetReflection()->ReleaseLast(parent->message, field));
// TODO(tibell): Deal with proto1.
// ReleaseMessage will return NULL which differs from
// child_cmessage->message, if the field does not exist. In this case,
// the latter points to the default instance via a const_cast<>, so we
// have to reset it to a new mutable object since we are taking ownership.
- if (released_message == NULL) {
+ if (released_message.get() == NULL) {
const Message* prototype =
- cmessage::GetMessageFactory()->GetPrototype(type);
+ cmessage::GetMessageFactory()->GetPrototype(
+ target->message->GetDescriptor());
GOOGLE_CHECK_NOTNULL(prototype);
- return prototype->New();
- } else {
- return released_message;
+ released_message.reset(prototype->New());
}
-}
-// Release field of message and transfer the ownership to cmessage.
-void ReleaseLastTo(const FieldDescriptor* field,
- Message* message,
- CMessage* cmessage) {
- GOOGLE_CHECK_NOTNULL(field);
- GOOGLE_CHECK_NOTNULL(message);
- GOOGLE_CHECK_NOTNULL(cmessage);
-
- shared_ptr<Message> released_message(
- ReleaseLast(field, cmessage->message->GetDescriptor(), message));
- cmessage->parent = NULL;
- cmessage->parent_field_descriptor = NULL;
- cmessage->message = released_message.get();
- cmessage->read_only = false;
- cmessage::SetOwner(cmessage, released_message);
+ target->parent = NULL;
+ target->parent_field_descriptor = NULL;
+ target->message = released_message.get();
+ target->read_only = false;
+ cmessage::SetOwner(target, released_message);
}
// Called to release a container using
@@ -635,7 +623,7 @@ int Release(RepeatedCompositeContainer* self) {
for (Py_ssize_t i = size - 1; i >= 0; --i) {
CMessage* child_cmessage = reinterpret_cast<CMessage*>(
PyList_GET_ITEM(self->child_messages, i));
- ReleaseLastTo(field, message, child_cmessage);
+ ReleaseLastTo(self->parent, field, child_cmessage);
}
// Detach from containing message.
@@ -732,9 +720,7 @@ static PyMethodDef Methods[] = {
PyTypeObject RepeatedCompositeContainer_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- // Keep the fully qualified _message symbol in a line for opensource.
- "google.protobuf.pyext._message."
- "RepeatedCompositeContainer", // tp_name
+ FULL_MODULE_NAME ".RepeatedCompositeContainer", // tp_name
sizeof(RepeatedCompositeContainer), // tp_basicsize
0, // tp_itemsize
(destructor)repeated_composite_container::Dealloc, // tp_dealloc
diff --git a/python/google/protobuf/pyext/repeated_composite_container.h b/python/google/protobuf/pyext/repeated_composite_container.h
index ce7cee0f..e0f21360 100644
--- a/python/google/protobuf/pyext/repeated_composite_container.h
+++ b/python/google/protobuf/pyext/repeated_composite_container.h
@@ -161,13 +161,13 @@ int SetOwner(RepeatedCompositeContainer* self,
const shared_ptr<Message>& new_owner);
// Removes the last element of the repeated message field 'field' on
-// the Message 'message', and transfers the ownership of the released
-// Message to 'cmessage'.
+// the Message 'parent', and transfers the ownership of the released
+// Message to 'target'.
//
// Corresponds to reflection api method ReleaseMessage.
-void ReleaseLastTo(const FieldDescriptor* field,
- Message* message,
- CMessage* cmessage);
+void ReleaseLastTo(CMessage* parent,
+ const FieldDescriptor* field,
+ CMessage* target);
} // namespace repeated_composite_container
} // namespace python
diff --git a/python/google/protobuf/pyext/repeated_scalar_container.cc b/python/google/protobuf/pyext/repeated_scalar_container.cc
index 110a4c85..fd196836 100644
--- a/python/google/protobuf/pyext/repeated_scalar_container.cc
+++ b/python/google/protobuf/pyext/repeated_scalar_container.cc
@@ -102,7 +102,7 @@ static int AssignItem(RepeatedScalarContainer* self,
if (arg == NULL) {
ScopedPyObjectPtr py_index(PyLong_FromLong(index));
- return cmessage::InternalDeleteRepeatedField(message, field_descriptor,
+ return cmessage::InternalDeleteRepeatedField(self->parent, field_descriptor,
py_index, NULL);
}
@@ -470,7 +470,7 @@ static int AssSubscript(RepeatedScalarContainer* self,
if (value == NULL) {
return cmessage::InternalDeleteRepeatedField(
- message, field_descriptor, slice, NULL);
+ self->parent, field_descriptor, slice, NULL);
}
if (!create_list) {
@@ -769,9 +769,7 @@ static PyMethodDef Methods[] = {
PyTypeObject RepeatedScalarContainer_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
- // Keep the fully qualified _message symbol in a line for opensource.
- "google.protobuf.pyext._message."
- "RepeatedScalarContainer", // tp_name
+ FULL_MODULE_NAME ".RepeatedScalarContainer", // tp_name
sizeof(RepeatedScalarContainer), // tp_basicsize
0, // tp_itemsize
(destructor)repeated_scalar_container::Dealloc, // tp_dealloc
diff --git a/python/google/protobuf/pyext/scalar_map_container.cc b/python/google/protobuf/pyext/scalar_map_container.cc
new file mode 100644
index 00000000..6f731d27
--- /dev/null
+++ b/python/google/protobuf/pyext/scalar_map_container.cc
@@ -0,0 +1,514 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: haberman@google.com (Josh Haberman)
+
+#include <google/protobuf/pyext/scalar_map_container.h>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/pyext/message.h>
+#include <google/protobuf/pyext/scoped_pyobject_ptr.h>
+
+namespace google {
+namespace protobuf {
+namespace python {
+
+struct ScalarMapIterator {
+ PyObject_HEAD;
+
+ // This dict contains the full contents of what we want to iterate over.
+ // There's no way to avoid building this, because the list representation
+ // (which is canonical) can contain duplicate keys. So at the very least we
+ // need a set that lets us skip duplicate keys. And at the point that we're
+ // doing that, we might as well just build the actual dict we're iterating
+ // over and use dict's built-in iterator.
+ PyObject* dict;
+
+ // An iterator on dict.
+ PyObject* iter;
+
+ // A pointer back to the container, so we can notice changes to the version.
+ ScalarMapContainer* container;
+
+ // The version of the map when we took the iterator to it.
+ //
+ // We store this so that if the map is modified during iteration we can throw
+ // an error.
+ uint64 version;
+};
+
+static ScalarMapIterator* GetIter(PyObject* obj) {
+ return reinterpret_cast<ScalarMapIterator*>(obj);
+}
+
+namespace scalar_map_container {
+
+static ScalarMapContainer* GetMap(PyObject* obj) {
+ return reinterpret_cast<ScalarMapContainer*>(obj);
+}
+
+// The private constructor of ScalarMapContainer objects.
+PyObject *NewContainer(
+ CMessage* parent, const google::protobuf::FieldDescriptor* parent_field_descriptor) {
+ if (!CheckFieldBelongsToMessage(parent_field_descriptor, parent->message)) {
+ return NULL;
+ }
+
+ ScopedPyObjectPtr obj(PyType_GenericAlloc(&ScalarMapContainer_Type, 0));
+ if (obj.get() == NULL) {
+ return PyErr_Format(PyExc_RuntimeError,
+ "Could not allocate new container.");
+ }
+
+ ScalarMapContainer* self = GetMap(obj);
+
+ self->message = parent->message;
+ self->parent = parent;
+ self->parent_field_descriptor = parent_field_descriptor;
+ self->owner = parent->owner;
+ self->version = 0;
+
+ self->key_field_descriptor =
+ parent_field_descriptor->message_type()->FindFieldByName("key");
+ self->value_field_descriptor =
+ parent_field_descriptor->message_type()->FindFieldByName("value");
+
+ if (self->key_field_descriptor == NULL ||
+ self->value_field_descriptor == NULL) {
+ return PyErr_Format(PyExc_KeyError,
+ "Map entry descriptor did not have key/value fields");
+ }
+
+ return obj.release();
+}
+
+// Initializes the underlying Message object of "to" so it becomes a new parent
+// repeated scalar, and copies all the values from "from" to it. A child scalar
+// container can be released by passing it as both from and to (e.g. making it
+// the recipient of the new parent message and copying the values from itself).
+static int InitializeAndCopyToParentContainer(
+ ScalarMapContainer* from,
+ ScalarMapContainer* to) {
+ // For now we require from == to, re-evaluate if we want to support deep copy
+ // as in repeated_scalar_container.cc.
+ GOOGLE_DCHECK(from == to);
+ Message* old_message = from->message;
+ Message* new_message = old_message->New();
+ to->parent = NULL;
+ to->parent_field_descriptor = from->parent_field_descriptor;
+ to->message = new_message;
+ to->owner.reset(new_message);
+
+ vector<const FieldDescriptor*> fields;
+ fields.push_back(from->parent_field_descriptor);
+ old_message->GetReflection()->SwapFields(old_message, new_message, fields);
+ return 0;
+}
+
+int Release(ScalarMapContainer* self) {
+ return InitializeAndCopyToParentContainer(self, self);
+}
+
+void SetOwner(ScalarMapContainer* self,
+ const shared_ptr<Message>& new_owner) {
+ self->owner = new_owner;
+}
+
+Py_ssize_t Length(PyObject* _self) {
+ ScalarMapContainer* self = GetMap(_self);
+ google::protobuf::Message* message = self->message;
+ return message->GetReflection()->FieldSize(*message,
+ self->parent_field_descriptor);
+}
+
+int MapKeyMatches(ScalarMapContainer* self, const Message* entry,
+ PyObject* key) {
+ // TODO(haberman): do we need more strict type checking?
+ ScopedPyObjectPtr entry_key(
+ cmessage::InternalGetScalar(entry, self->key_field_descriptor));
+ int ret = PyObject_RichCompareBool(key, entry_key, Py_EQ);
+ return ret;
+}
+
+PyObject* GetItem(PyObject* _self, PyObject* key) {
+ ScalarMapContainer* self = GetMap(_self);
+
+ Message* message = self->message;
+ const Reflection* reflection = message->GetReflection();
+
+ // Right now the Reflection API doesn't support map lookup, so we implement it
+ // via linear search.
+ //
+ // TODO(haberman): add lookup API to Reflection API.
+ size_t size = reflection->FieldSize(*message, self->parent_field_descriptor);
+ for (int i = size - 1; i >= 0; i--) {
+ const Message& entry = reflection->GetRepeatedMessage(
+ *message, self->parent_field_descriptor, i);
+ int matches = MapKeyMatches(self, &entry, key);
+ if (matches < 0) return NULL;
+ if (matches) {
+ return cmessage::InternalGetScalar(&entry, self->value_field_descriptor);
+ }
+ }
+
+ // Need to add a new entry.
+ Message* entry =
+ reflection->AddMessage(message, self->parent_field_descriptor);
+ PyObject* ret = NULL;
+
+ if (cmessage::InternalSetNonOneofScalar(entry, self->key_field_descriptor,
+ key) >= 0) {
+ ret = cmessage::InternalGetScalar(entry, self->value_field_descriptor);
+ }
+
+ self->version++;
+
+ // If there was a type error above, it set the Python exception.
+ return ret;
+}
+
+int SetItem(PyObject *_self, PyObject *key, PyObject *v) {
+ ScalarMapContainer* self = GetMap(_self);
+ cmessage::AssureWritable(self->parent);
+
+ Message* message = self->message;
+ const Reflection* reflection = message->GetReflection();
+ size_t size =
+ reflection->FieldSize(*message, self->parent_field_descriptor);
+ self->version++;
+
+ if (v) {
+ // Set item.
+ //
+ // Right now the Reflection API doesn't support map lookup, so we implement
+ // it via linear search.
+ //
+ // TODO(haberman): add lookup API to Reflection API.
+ for (int i = size - 1; i >= 0; i--) {
+ Message* entry = reflection->MutableRepeatedMessage(
+ message, self->parent_field_descriptor, i);
+ int matches = MapKeyMatches(self, entry, key);
+ if (matches < 0) return -1;
+ if (matches) {
+ return cmessage::InternalSetNonOneofScalar(
+ entry, self->value_field_descriptor, v);
+ }
+ }
+
+ // Key is not already present; insert a new entry.
+ Message* entry =
+ reflection->AddMessage(message, self->parent_field_descriptor);
+
+ if (cmessage::InternalSetNonOneofScalar(entry, self->key_field_descriptor,
+ key) < 0 ||
+ cmessage::InternalSetNonOneofScalar(entry, self->value_field_descriptor,
+ v) < 0) {
+ reflection->RemoveLast(message, self->parent_field_descriptor);
+ return -1;
+ }
+
+ return 0;
+ } else {
+ bool found = false;
+ for (int i = size - 1; i >= 0; i--) {
+ Message* entry = reflection->MutableRepeatedMessage(
+ message, self->parent_field_descriptor, i);
+ int matches = MapKeyMatches(self, entry, key);
+ if (matches < 0) return -1;
+ if (matches) {
+ found = true;
+ if (i != size - 1) {
+ reflection->SwapElements(message, self->parent_field_descriptor, i,
+ size - 1);
+ }
+ reflection->RemoveLast(message, self->parent_field_descriptor);
+
+ // Can't exit now, the repeated field representation of maps allows
+ // duplicate keys, and we have to be sure to remove all of them.
+ }
+ }
+
+ if (found) {
+ return 0;
+ } else {
+ PyErr_Format(PyExc_KeyError, "Key not present in map");
+ return -1;
+ }
+ }
+}
+
+PyObject* GetIterator(PyObject *_self) {
+ ScalarMapContainer* self = GetMap(_self);
+
+ ScopedPyObjectPtr obj(PyType_GenericAlloc(&ScalarMapIterator_Type, 0));
+ if (obj == NULL) {
+ return PyErr_Format(PyExc_KeyError, "Could not allocate iterator");
+ }
+
+ ScalarMapIterator* iter = GetIter(obj.get());
+
+ Py_INCREF(self);
+ iter->container = self;
+ iter->version = self->version;
+ iter->dict = PyDict_New();
+ if (iter->dict == NULL) {
+ return PyErr_Format(PyExc_RuntimeError,
+ "Could not allocate dict for iterator.");
+ }
+
+ // Build the entire map into a dict right now. Start from the beginning so
+ // that later entries win in the case of duplicates.
+ Message* message = self->message;
+ const Reflection* reflection = message->GetReflection();
+
+ // Right now the Reflection API doesn't support map lookup, so we implement it
+ // via linear search. We need to search from the end because the underlying
+ // representation can have duplicates if a user calls MergeFrom(); the last
+ // one needs to win.
+ //
+ // TODO(haberman): add lookup API to Reflection API.
+ size_t size =
+ reflection->FieldSize(*message, self->parent_field_descriptor);
+ for (int i = 0; i < size; i++) {
+ Message* entry = reflection->MutableRepeatedMessage(
+ message, self->parent_field_descriptor, i);
+ ScopedPyObjectPtr key(
+ cmessage::InternalGetScalar(entry, self->key_field_descriptor));
+ ScopedPyObjectPtr val(
+ cmessage::InternalGetScalar(entry, self->value_field_descriptor));
+ if (PyDict_SetItem(iter->dict, key.get(), val.get()) < 0) {
+ return PyErr_Format(PyExc_RuntimeError,
+ "SetItem failed in iterator construction.");
+ }
+ }
+
+
+ iter->iter = PyObject_GetIter(iter->dict);
+
+
+ return obj.release();
+}
+
+PyObject* Clear(PyObject* _self) {
+ ScalarMapContainer* self = GetMap(_self);
+ cmessage::AssureWritable(self->parent);
+ Message* message = self->message;
+ const Reflection* reflection = message->GetReflection();
+
+ reflection->ClearField(message, self->parent_field_descriptor);
+
+ Py_RETURN_NONE;
+}
+
+PyObject* Contains(PyObject* _self, PyObject* key) {
+ ScalarMapContainer* self = GetMap(_self);
+
+ Message* message = self->message;
+ const Reflection* reflection = message->GetReflection();
+
+ // Right now the Reflection API doesn't support map lookup, so we implement it
+ // via linear search.
+ //
+ // TODO(haberman): add lookup API to Reflection API.
+ size_t size = reflection->FieldSize(*message, self->parent_field_descriptor);
+ for (int i = size - 1; i >= 0; i--) {
+ const Message& entry = reflection->GetRepeatedMessage(
+ *message, self->parent_field_descriptor, i);
+ int matches = MapKeyMatches(self, &entry, key);
+ if (matches < 0) return NULL;
+ if (matches) {
+ Py_RETURN_TRUE;
+ }
+ }
+
+ Py_RETURN_FALSE;
+}
+
+PyObject* Get(PyObject* self, PyObject* args) {
+ PyObject* key;
+ PyObject* default_value = NULL;
+ if (PyArg_ParseTuple(args, "O|O", &key, &default_value) < 0) {
+ return NULL;
+ }
+
+ ScopedPyObjectPtr is_present(Contains(self, key));
+ if (is_present.get() == NULL) {
+ return NULL;
+ }
+
+ if (PyObject_IsTrue(is_present.get())) {
+ return GetItem(self, key);
+ } else {
+ if (default_value != NULL) {
+ Py_INCREF(default_value);
+ return default_value;
+ } else {
+ Py_RETURN_NONE;
+ }
+ }
+}
+
+static PyMappingMethods MpMethods = {
+ Length, // mp_length
+ GetItem, // mp_subscript
+ SetItem, // mp_ass_subscript
+};
+
+static void Dealloc(PyObject* _self) {
+ ScalarMapContainer* self = GetMap(_self);
+ self->owner.reset();
+ Py_TYPE(_self)->tp_free(_self);
+}
+
+static PyMethodDef Methods[] = {
+ { "__contains__", Contains, METH_O,
+ "Tests whether a key is a member of the map." },
+ { "clear", (PyCFunction)Clear, METH_NOARGS,
+ "Removes all elements from the map." },
+ { "get", Get, METH_VARARGS,
+ "Gets the value for the given key if present, or otherwise a default" },
+ /*
+ { "__deepcopy__", (PyCFunction)DeepCopy, METH_VARARGS,
+ "Makes a deep copy of the class." },
+ { "__reduce__", (PyCFunction)Reduce, METH_NOARGS,
+ "Outputs picklable representation of the repeated field." },
+ */
+ {NULL, NULL},
+};
+
+} // namespace scalar_map_container
+
+namespace scalar_map_iterator {
+
+static void Dealloc(PyObject* _self) {
+ ScalarMapIterator* self = GetIter(_self);
+ Py_DECREF(self->dict);
+ Py_DECREF(self->iter);
+ Py_DECREF(self->container);
+ Py_TYPE(_self)->tp_free(_self);
+}
+
+PyObject* IterNext(PyObject* _self) {
+ ScalarMapIterator* self = GetIter(_self);
+
+ // This won't catch mutations to the map performed by MergeFrom(); no easy way
+ // to address that.
+ if (self->version != self->container->version) {
+ return PyErr_Format(PyExc_RuntimeError,
+ "Map modified during iteration.");
+ }
+
+ return PyIter_Next(self->iter);
+}
+
+} // namespace scalar_map_iterator
+
+PyTypeObject ScalarMapContainer_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ FULL_MODULE_NAME ".ScalarMapContainer", // tp_name
+ sizeof(ScalarMapContainer), // tp_basicsize
+ 0, // tp_itemsize
+ scalar_map_container::Dealloc, // tp_dealloc
+ 0, // tp_print
+ 0, // tp_getattr
+ 0, // tp_setattr
+ 0, // tp_compare
+ 0, // tp_repr
+ 0, // tp_as_number
+ 0, // tp_as_sequence
+ &scalar_map_container::MpMethods, // tp_as_mapping
+ 0, // tp_hash
+ 0, // tp_call
+ 0, // tp_str
+ 0, // tp_getattro
+ 0, // tp_setattro
+ 0, // tp_as_buffer
+ Py_TPFLAGS_DEFAULT, // tp_flags
+ "A scalar map container", // tp_doc
+ 0, // tp_traverse
+ 0, // tp_clear
+ 0, // tp_richcompare
+ 0, // tp_weaklistoffset
+ scalar_map_container::GetIterator, // tp_iter
+ 0, // tp_iternext
+ scalar_map_container::Methods, // tp_methods
+ 0, // tp_members
+ 0, // tp_getset
+ 0, // tp_base
+ 0, // tp_dict
+ 0, // tp_descr_get
+ 0, // tp_descr_set
+ 0, // tp_dictoffset
+ 0, // tp_init
+};
+
+PyTypeObject ScalarMapIterator_Type = {
+ PyVarObject_HEAD_INIT(&PyType_Type, 0)
+ FULL_MODULE_NAME ".ScalarMapIterator", // tp_name
+ sizeof(ScalarMapIterator), // tp_basicsize
+ 0, // tp_itemsize
+ scalar_map_iterator::Dealloc, // tp_dealloc
+ 0, // tp_print
+ 0, // tp_getattr
+ 0, // tp_setattr
+ 0, // tp_compare
+ 0, // tp_repr
+ 0, // tp_as_number
+ 0, // tp_as_sequence
+ 0, // tp_as_mapping
+ 0, // tp_hash
+ 0, // tp_call
+ 0, // tp_str
+ 0, // tp_getattro
+ 0, // tp_setattro
+ 0, // tp_as_buffer
+ Py_TPFLAGS_DEFAULT, // tp_flags
+ "A scalar map iterator", // tp_doc
+ 0, // tp_traverse
+ 0, // tp_clear
+ 0, // tp_richcompare
+ 0, // tp_weaklistoffset
+ PyObject_SelfIter, // tp_iter
+ scalar_map_iterator::IterNext, // tp_iternext
+ 0, // tp_methods
+ 0, // tp_members
+ 0, // tp_getset
+ 0, // tp_base
+ 0, // tp_dict
+ 0, // tp_descr_get
+ 0, // tp_descr_set
+ 0, // tp_dictoffset
+ 0, // tp_init
+};
+
+} // namespace python
+} // namespace protobuf
+} // namespace google
diff --git a/python/google/protobuf/pyext/scalar_map_container.h b/python/google/protobuf/pyext/scalar_map_container.h
new file mode 100644
index 00000000..254e6e98
--- /dev/null
+++ b/python/google/protobuf/pyext/scalar_map_container.h
@@ -0,0 +1,110 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_PYTHON_CPP_SCALAR_MAP_CONTAINER_H__
+#define GOOGLE_PROTOBUF_PYTHON_CPP_SCALAR_MAP_CONTAINER_H__
+
+#include <Python.h>
+
+#include <memory>
+#ifndef _SHARED_PTR_H
+#include <google/protobuf/stubs/shared_ptr.h>
+#endif
+
+#include <google/protobuf/descriptor.h>
+
+namespace google {
+namespace protobuf {
+
+class Message;
+
+using internal::shared_ptr;
+
+namespace python {
+
+struct CMessage;
+
+struct ScalarMapContainer {
+ PyObject_HEAD;
+
+ // This is the top-level C++ Message object that owns the whole
+ // proto tree. Every Python ScalarMapContainer holds a
+ // reference to it in order to keep it alive as long as there's a
+ // Python object that references any part of the tree.
+ shared_ptr<Message> owner;
+
+ // Pointer to the C++ Message that contains this container. The
+ // ScalarMapContainer does not own this pointer.
+ Message* message;
+
+ // Weak reference to a parent CMessage object (i.e. may be NULL.)
+ //
+ // Used to make sure all ancestors are also mutable when first
+ // modifying the container.
+ CMessage* parent;
+
+ // Pointer to the parent's descriptor that describes this
+ // field. Used together with the parent's message when making a
+ // default message instance mutable.
+ // The pointer is owned by the global DescriptorPool.
+ const FieldDescriptor* parent_field_descriptor;
+ const FieldDescriptor* key_field_descriptor;
+ const FieldDescriptor* value_field_descriptor;
+
+ // We bump this whenever we perform a mutation, to invalidate existing
+ // iterators.
+ uint64 version;
+};
+
+extern PyTypeObject ScalarMapContainer_Type;
+extern PyTypeObject ScalarMapIterator_Type;
+
+namespace scalar_map_container {
+
+// Builds a ScalarMapContainer object, from a parent message and a
+// field descriptor.
+extern PyObject *NewContainer(
+ CMessage* parent, const FieldDescriptor* parent_field_descriptor);
+
+// Releases the messages in the container to a new message.
+//
+// Returns 0 on success, -1 on failure.
+int Release(ScalarMapContainer* self);
+
+// Set the owner field of self and any children of self.
+void SetOwner(ScalarMapContainer* self,
+ const shared_ptr<Message>& new_owner);
+
+} // namespace scalar_map_container
+} // namespace python
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_PYTHON_CPP_SCALAR_MAP_CONTAINER_H__
diff --git a/python/google/protobuf/reflection.py b/python/google/protobuf/reflection.py
index 55e653a0..82fca661 100755
--- a/python/google/protobuf/reflection.py
+++ b/python/google/protobuf/reflection.py
@@ -144,7 +144,6 @@ class GeneratedProtocolMessageType(type):
_InitMessage(descriptor, cls)
superclass = super(GeneratedProtocolMessageType, cls)
superclass.__init__(name, bases, dictionary)
- setattr(descriptor, '_concrete_class', cls)
def ParseMessage(descriptor, byte_str):
diff --git a/python/google/protobuf/text_format.py b/python/google/protobuf/text_format.py
index a47ce3e3..8cbd6822 100755
--- a/python/google/protobuf/text_format.py
+++ b/python/google/protobuf/text_format.py
@@ -100,6 +100,10 @@ def MessageToString(message, as_utf8=False, as_one_line=False,
return result.rstrip()
return result
+def _IsMapEntry(field):
+ return (field.type == descriptor.FieldDescriptor.TYPE_MESSAGE and
+ field.message_type.has_options and
+ field.message_type.GetOptions().map_entry)
def PrintMessage(message, out, indent=0, as_utf8=False, as_one_line=False,
pointy_brackets=False, use_index_order=False,
@@ -108,7 +112,19 @@ def PrintMessage(message, out, indent=0, as_utf8=False, as_one_line=False,
if use_index_order:
fields.sort(key=lambda x: x[0].index)
for field, value in fields:
- if field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
+ if _IsMapEntry(field):
+ for key in value:
+ # This is slow for maps with submessage entires because it copies the
+ # entire tree. Unfortunately this would take significant refactoring
+ # of this file to work around.
+ #
+ # TODO(haberman): refactor and optimize if this becomes an issue.
+ entry_submsg = field.message_type._concrete_class(
+ key=key, value=value[key])
+ PrintField(field, entry_submsg, out, indent, as_utf8, as_one_line,
+ pointy_brackets=pointy_brackets,
+ use_index_order=use_index_order, float_format=float_format)
+ elif field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
for element in value:
PrintField(field, element, out, indent, as_utf8, as_one_line,
pointy_brackets=pointy_brackets,
@@ -367,6 +383,7 @@ def _MergeField(tokenizer, message, allow_multiple_scalars):
message_descriptor.full_name, name))
if field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
+ is_map_entry = _IsMapEntry(field)
tokenizer.TryConsume(':')
if tokenizer.TryConsume('<'):
@@ -378,6 +395,8 @@ def _MergeField(tokenizer, message, allow_multiple_scalars):
if field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
if field.is_extension:
sub_message = message.Extensions[field].add()
+ elif is_map_entry:
+ sub_message = field.message_type._concrete_class()
else:
sub_message = getattr(message, field.name).add()
else:
@@ -391,6 +410,14 @@ def _MergeField(tokenizer, message, allow_multiple_scalars):
if tokenizer.AtEnd():
raise tokenizer.ParseErrorPreviousToken('Expected "%s".' % (end_token))
_MergeField(tokenizer, sub_message, allow_multiple_scalars)
+
+ if is_map_entry:
+ value_cpptype = field.message_type.fields_by_name['value'].cpp_type
+ if value_cpptype == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
+ value = getattr(message, field.name)[sub_message.key]
+ value.MergeFrom(sub_message.value)
+ else:
+ getattr(message, field.name)[sub_message.key] = sub_message.value
else:
_MergeScalarField(tokenizer, message, field, allow_multiple_scalars)
@@ -701,13 +728,16 @@ class _Tokenizer(object):
String literals (whether bytes or text) can come in multiple adjacent
tokens which are automatically concatenated, like in C or Python. This
method only consumes one token.
+
+ Raises:
+ ParseError: When the wrong format data is found.
"""
text = self.token
if len(text) < 1 or text[0] not in ('\'', '"'):
- raise self._ParseError('Expected string but found: "%r"' % text)
+ raise self._ParseError('Expected string but found: %r' % (text,))
if len(text) < 2 or text[-1] != text[0]:
- raise self._ParseError('String missing ending quote.')
+ raise self._ParseError('String missing ending quote: %r' % (text,))
try:
result = text_encoding.CUnescape(text[1:-1])
diff --git a/python/setup.py b/python/setup.py
index 1764ec87..f53ad5ff 100755
--- a/python/setup.py
+++ b/python/setup.py
@@ -1,9 +1,10 @@
#! /usr/bin/env python
#
# See README for usage instructions.
-import sys
+import glob
import os
import subprocess
+import sys
# We must use setuptools, not distutils, because we need to use the
# namespace_packages option for the "google" package.
@@ -57,11 +58,14 @@ def GetVersion():
return __version__
-def generate_proto(source):
+def generate_proto(source, require = True):
"""Invokes the Protocol Compiler to generate a _pb2.py from the given
.proto file. Does nothing if the output already exists and is newer than
the input."""
+ if not require and not os.path.exists(source):
+ return
+
output = source.replace(".proto", "_pb2.py").replace("../src/", "")
if (not os.path.exists(output) or
@@ -86,25 +90,26 @@ def generate_proto(source):
def GenerateUnittestProtos():
- generate_proto("../src/google/protobuf/unittest.proto")
- generate_proto("../src/google/protobuf/unittest_custom_options.proto")
- generate_proto("../src/google/protobuf/unittest_import.proto")
- generate_proto("../src/google/protobuf/unittest_import_public.proto")
- generate_proto("../src/google/protobuf/unittest_mset.proto")
- generate_proto("../src/google/protobuf/unittest_no_generic_services.proto")
- generate_proto("../src/google/protobuf/unittest_proto3_arena.proto")
- generate_proto("google/protobuf/internal/descriptor_pool_test1.proto")
- generate_proto("google/protobuf/internal/descriptor_pool_test2.proto")
- generate_proto("google/protobuf/internal/factory_test1.proto")
- generate_proto("google/protobuf/internal/factory_test2.proto")
- generate_proto("google/protobuf/internal/import_test_package/inner.proto")
- generate_proto("google/protobuf/internal/import_test_package/outer.proto")
- generate_proto("google/protobuf/internal/missing_enum_values.proto")
- generate_proto("google/protobuf/internal/more_extensions.proto")
- generate_proto("google/protobuf/internal/more_extensions_dynamic.proto")
- generate_proto("google/protobuf/internal/more_messages.proto")
- generate_proto("google/protobuf/internal/test_bad_identifiers.proto")
- generate_proto("google/protobuf/pyext/python.proto")
+ generate_proto("../src/google/protobuf/map_unittest.proto", False)
+ generate_proto("../src/google/protobuf/unittest.proto", False)
+ generate_proto("../src/google/protobuf/unittest_custom_options.proto", False)
+ generate_proto("../src/google/protobuf/unittest_import.proto", False)
+ generate_proto("../src/google/protobuf/unittest_import_public.proto", False)
+ generate_proto("../src/google/protobuf/unittest_mset.proto", False)
+ generate_proto("../src/google/protobuf/unittest_no_generic_services.proto", False)
+ generate_proto("../src/google/protobuf/unittest_proto3_arena.proto", False)
+ generate_proto("google/protobuf/internal/descriptor_pool_test1.proto", False)
+ generate_proto("google/protobuf/internal/descriptor_pool_test2.proto", False)
+ generate_proto("google/protobuf/internal/factory_test1.proto", False)
+ generate_proto("google/protobuf/internal/factory_test2.proto", False)
+ generate_proto("google/protobuf/internal/import_test_package/inner.proto", False)
+ generate_proto("google/protobuf/internal/import_test_package/outer.proto", False)
+ generate_proto("google/protobuf/internal/missing_enum_values.proto", False)
+ generate_proto("google/protobuf/internal/more_extensions.proto", False)
+ generate_proto("google/protobuf/internal/more_extensions_dynamic.proto", False)
+ generate_proto("google/protobuf/internal/more_messages.proto", False)
+ generate_proto("google/protobuf/internal/test_bad_identifiers.proto", False)
+ generate_proto("google/protobuf/pyext/python.proto", False)
class clean(_clean):
@@ -153,15 +158,7 @@ if __name__ == '__main__':
ext_module_list.append(
Extension(
"google.protobuf.pyext._message",
- [
- "google/protobuf/pyext/descriptor.cc",
- "google/protobuf/pyext/descriptor_containers.cc",
- "google/protobuf/pyext/descriptor_pool.cc",
- "google/protobuf/pyext/extension_dict.cc",
- "google/protobuf/pyext/message.cc",
- "google/protobuf/pyext/repeated_composite_container.cc",
- "google/protobuf/pyext/repeated_scalar_container.cc",
- ],
+ glob.glob('google/protobuf/pyext/*.cc'),
define_macros=[('GOOGLE_PROTOBUF_HAS_ONEOF', '1')],
include_dirs=[".", "../src"],
libraries=['protobuf'],
diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock
index 6f349276..2cf5e472 100644
--- a/ruby/Gemfile.lock
+++ b/ruby/Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- google-protobuf (3.0.0.alpha.3.1.pre)
+ google-protobuf (3.0.0.alpha.3)
GEM
remote: https://rubygems.org/
diff --git a/ruby/ext/google/protobuf_c/defs.c b/ruby/ext/google/protobuf_c/defs.c
index 9b590a55..e3341cca 100644
--- a/ruby/ext/google/protobuf_c/defs.c
+++ b/ruby/ext/google/protobuf_c/defs.c
@@ -34,8 +34,6 @@
// Common utilities.
// -----------------------------------------------------------------------------
-const char* kDescriptorInstanceVar = "descriptor";
-
static const char* get_str(VALUE str) {
Check_Type(str, T_STRING);
return RSTRING_PTR(str);
@@ -1590,9 +1588,9 @@ VALUE Builder_add_message(VALUE _self, VALUE name) {
* call-seq:
* Builder.add_enum(name, &block)
*
- * Creates a new, empty enum descriptor with the given name, and invokes the block in
- * the context of an EnumBuilderContext on that descriptor. The block can then
- * call EnumBuilderContext#add_value to define the enum values.
+ * Creates a new, empty enum descriptor with the given name, and invokes the
+ * block in the context of an EnumBuilderContext on that descriptor. The block
+ * can then call EnumBuilderContext#add_value to define the enum values.
*
* This is the recommended, idiomatic way to build enum definitions.
*/
diff --git a/ruby/ext/google/protobuf_c/encode_decode.c b/ruby/ext/google/protobuf_c/encode_decode.c
index 5730504d..fe249d45 100644
--- a/ruby/ext/google/protobuf_c/encode_decode.c
+++ b/ruby/ext/google/protobuf_c/encode_decode.c
@@ -622,6 +622,49 @@ static const upb_pbdecodermethod *msgdef_decodermethod(Descriptor* desc) {
return desc->fill_method;
}
+
+// Stack-allocated context during an encode/decode operation. Contains the upb
+// environment and its stack-based allocator, an initial buffer for allocations
+// to avoid malloc() when possible, and a template for Ruby exception messages
+// if any error occurs.
+#define STACK_ENV_STACKBYTES 4096
+typedef struct {
+ upb_env env;
+ upb_seededalloc alloc;
+ const char* ruby_error_template;
+ char allocbuf[STACK_ENV_STACKBYTES];
+} stackenv;
+
+static void stackenv_init(stackenv* se, const char* errmsg);
+static void stackenv_uninit(stackenv* se);
+
+// Callback invoked by upb if any error occurs during parsing or serialization.
+static bool env_error_func(void* ud, const upb_status* status) {
+ stackenv* se = ud;
+ // Free the env -- rb_raise will longjmp up the stack past the encode/decode
+ // function so it would not otherwise have been freed.
+ stackenv_uninit(se);
+ rb_raise(rb_eRuntimeError, se->ruby_error_template,
+ upb_status_errmsg(status));
+ // Never reached: rb_raise() always longjmp()s up the stack, past all of our
+ // code, back to Ruby.
+ return false;
+}
+
+static void stackenv_init(stackenv* se, const char* errmsg) {
+ se->ruby_error_template = errmsg;
+ upb_env_init(&se->env);
+ upb_seededalloc_init(&se->alloc, &se->allocbuf, STACK_ENV_STACKBYTES);
+ upb_env_setallocfunc(
+ &se->env, upb_seededalloc_getallocfunc(&se->alloc), &se->alloc);
+ upb_env_seterrorfunc(&se->env, env_error_func, se);
+}
+
+static void stackenv_uninit(stackenv* se) {
+ upb_env_uninit(&se->env);
+ upb_seededalloc_uninit(&se->alloc);
+}
+
/*
* call-seq:
* MessageClass.decode(data) => message
@@ -631,7 +674,7 @@ static const upb_pbdecodermethod *msgdef_decodermethod(Descriptor* desc) {
* and returns a message object with the corresponding field values.
*/
VALUE Message_decode(VALUE klass, VALUE data) {
- VALUE descriptor = rb_iv_get(klass, kDescriptorInstanceVar);
+ VALUE descriptor = rb_ivar_get(klass, descriptor_instancevar_interned);
Descriptor* desc = ruby_to_Descriptor(descriptor);
VALUE msgklass = Descriptor_msgclass(descriptor);
@@ -645,21 +688,17 @@ VALUE Message_decode(VALUE klass, VALUE data) {
const upb_pbdecodermethod* method = msgdef_decodermethod(desc);
const upb_handlers* h = upb_pbdecodermethod_desthandlers(method);
- upb_pbdecoder decoder;
- upb_sink sink;
- upb_status status = UPB_STATUS_INIT;
+ stackenv se;
+ stackenv_init(&se, "Error occurred during parsing: %s");
- upb_pbdecoder_init(&decoder, method, &status);
+ upb_sink sink;
upb_sink_reset(&sink, h, msg);
- upb_pbdecoder_resetoutput(&decoder, &sink);
+ upb_pbdecoder* decoder =
+ upb_pbdecoder_create(&se.env, method, &sink);
upb_bufsrc_putbuf(RSTRING_PTR(data), RSTRING_LEN(data),
- upb_pbdecoder_input(&decoder));
+ upb_pbdecoder_input(decoder));
- upb_pbdecoder_uninit(&decoder);
- if (!upb_ok(&status)) {
- rb_raise(rb_eRuntimeError, "Error occurred during parsing: %s.",
- upb_status_errmsg(&status));
- }
+ stackenv_uninit(&se);
return msg_rb;
}
@@ -673,7 +712,7 @@ VALUE Message_decode(VALUE klass, VALUE data) {
* and returns a message object with the corresponding field values.
*/
VALUE Message_decode_json(VALUE klass, VALUE data) {
- VALUE descriptor = rb_iv_get(klass, kDescriptorInstanceVar);
+ VALUE descriptor = rb_ivar_get(klass, descriptor_instancevar_interned);
Descriptor* desc = ruby_to_Descriptor(descriptor);
VALUE msgklass = Descriptor_msgclass(descriptor);
@@ -688,21 +727,16 @@ VALUE Message_decode_json(VALUE klass, VALUE data) {
MessageHeader* msg;
TypedData_Get_Struct(msg_rb, MessageHeader, &Message_type, msg);
- upb_status status = UPB_STATUS_INIT;
- upb_json_parser parser;
- upb_json_parser_init(&parser, &status);
+ stackenv se;
+ stackenv_init(&se, "Error occurred during parsing: %s");
upb_sink sink;
upb_sink_reset(&sink, get_fill_handlers(desc), msg);
- upb_json_parser_resetoutput(&parser, &sink);
+ upb_json_parser* parser = upb_json_parser_create(&se.env, &sink);
upb_bufsrc_putbuf(RSTRING_PTR(data), RSTRING_LEN(data),
- upb_json_parser_input(&parser));
+ upb_json_parser_input(parser));
- upb_json_parser_uninit(&parser);
- if (!upb_ok(&status)) {
- rb_raise(rb_eRuntimeError, "Error occurred during parsing: %s.",
- upb_status_errmsg(&status));
- }
+ stackenv_uninit(&se);
return msg_rb;
}
@@ -813,7 +847,7 @@ static void putsubmsg(VALUE submsg, const upb_fielddef *f, upb_sink *sink,
if (submsg == Qnil) return;
upb_sink subsink;
- VALUE descriptor = rb_iv_get(submsg, kDescriptorInstanceVar);
+ VALUE descriptor = rb_ivar_get(submsg, descriptor_instancevar_interned);
Descriptor* subdesc = ruby_to_Descriptor(descriptor);
upb_sink_startsubmsg(sink, getsel(f, UPB_HANDLER_STARTSUBMSG), &subsink);
@@ -935,7 +969,8 @@ static void putmap(VALUE map, const upb_fielddef *f, upb_sink *sink,
VALUE value = Map_iter_value(&it);
upb_sink entry_sink;
- upb_sink_startsubmsg(&subsink, getsel(f, UPB_HANDLER_STARTSUBMSG), &entry_sink);
+ upb_sink_startsubmsg(&subsink, getsel(f, UPB_HANDLER_STARTSUBMSG),
+ &entry_sink);
upb_sink_startmsg(&entry_sink);
put_ruby_value(key, key_field, Qnil, depth + 1, &entry_sink);
@@ -956,7 +991,7 @@ static void putmsg(VALUE msg_rb, const Descriptor* desc,
// Protect against cycles (possible because users may freely reassign message
// and repeated fields) by imposing a maximum recursion depth.
- if (depth > UPB_SINK_MAX_NESTING) {
+ if (depth > ENCODE_MAX_NESTING) {
rb_raise(rb_eRuntimeError,
"Maximum recursion depth exceeded during encoding.");
}
@@ -1065,7 +1100,7 @@ static const upb_handlers* msgdef_json_serialize_handlers(Descriptor* desc) {
* wire format.
*/
VALUE Message_encode(VALUE klass, VALUE msg_rb) {
- VALUE descriptor = rb_iv_get(klass, kDescriptorInstanceVar);
+ VALUE descriptor = rb_ivar_get(klass, descriptor_instancevar_interned);
Descriptor* desc = ruby_to_Descriptor(descriptor);
stringsink sink;
@@ -1074,15 +1109,16 @@ VALUE Message_encode(VALUE klass, VALUE msg_rb) {
const upb_handlers* serialize_handlers =
msgdef_pb_serialize_handlers(desc);
- upb_pb_encoder encoder;
- upb_pb_encoder_init(&encoder, serialize_handlers);
- upb_pb_encoder_resetoutput(&encoder, &sink.sink);
+ stackenv se;
+ stackenv_init(&se, "Error occurred during encoding: %s");
+ upb_pb_encoder* encoder =
+ upb_pb_encoder_create(&se.env, serialize_handlers, &sink.sink);
- putmsg(msg_rb, desc, upb_pb_encoder_input(&encoder), 0);
+ putmsg(msg_rb, desc, upb_pb_encoder_input(encoder), 0);
VALUE ret = rb_str_new(sink.ptr, sink.len);
- upb_pb_encoder_uninit(&encoder);
+ stackenv_uninit(&se);
stringsink_uninit(&sink);
return ret;
@@ -1095,7 +1131,7 @@ VALUE Message_encode(VALUE klass, VALUE msg_rb) {
* Encodes the given message object into its serialized JSON representation.
*/
VALUE Message_encode_json(VALUE klass, VALUE msg_rb) {
- VALUE descriptor = rb_iv_get(klass, kDescriptorInstanceVar);
+ VALUE descriptor = rb_ivar_get(klass, descriptor_instancevar_interned);
Descriptor* desc = ruby_to_Descriptor(descriptor);
stringsink sink;
@@ -1104,64 +1140,18 @@ VALUE Message_encode_json(VALUE klass, VALUE msg_rb) {
const upb_handlers* serialize_handlers =
msgdef_json_serialize_handlers(desc);
- upb_json_printer printer;
- upb_json_printer_init(&printer, serialize_handlers);
- upb_json_printer_resetoutput(&printer, &sink.sink);
+ stackenv se;
+ stackenv_init(&se, "Error occurred during encoding: %s");
+ upb_json_printer* printer =
+ upb_json_printer_create(&se.env, serialize_handlers, &sink.sink);
- putmsg(msg_rb, desc, upb_json_printer_input(&printer), 0);
+ putmsg(msg_rb, desc, upb_json_printer_input(printer), 0);
VALUE ret = rb_str_new(sink.ptr, sink.len);
- upb_json_printer_uninit(&printer);
+ stackenv_uninit(&se);
stringsink_uninit(&sink);
return ret;
}
-/*
- * call-seq:
- * Google::Protobuf.encode(msg) => bytes
- *
- * Encodes the given message object to protocol buffers wire format. This is an
- * alternative to the #encode method on msg's class.
- */
-VALUE Google_Protobuf_encode(VALUE self, VALUE msg_rb) {
- VALUE klass = CLASS_OF(msg_rb);
- return Message_encode(klass, msg_rb);
-}
-
-/*
- * call-seq:
- * Google::Protobuf.encode_json(msg) => json_string
- *
- * Encodes the given message object to its JSON representation. This is an
- * alternative to the #encode_json method on msg's class.
- */
-VALUE Google_Protobuf_encode_json(VALUE self, VALUE msg_rb) {
- VALUE klass = CLASS_OF(msg_rb);
- return Message_encode_json(klass, msg_rb);
-}
-
-/*
- * call-seq:
- * Google::Protobuf.decode(class, bytes) => msg
- *
- * Decodes the given bytes as protocol buffers wire format under the
- * interpretation given by the given class's message definition. This is an
- * alternative to the #decode method on the given class.
- */
-VALUE Google_Protobuf_decode(VALUE self, VALUE klass, VALUE msg_rb) {
- return Message_decode(klass, msg_rb);
-}
-
-/*
- * call-seq:
- * Google::Protobuf.decode_json(class, json_string) => msg
- *
- * Decodes the given JSON string under the interpretation given by the given
- * class's message definition. This is an alternative to the #decode_json method
- * on the given class.
- */
-VALUE Google_Protobuf_decode_json(VALUE self, VALUE klass, VALUE msg_rb) {
- return Message_decode_json(klass, msg_rb);
-}
diff --git a/ruby/ext/google/protobuf_c/extconf.rb b/ruby/ext/google/protobuf_c/extconf.rb
index 8d60392c..74203b07 100644
--- a/ruby/ext/google/protobuf_c/extconf.rb
+++ b/ruby/ext/google/protobuf_c/extconf.rb
@@ -2,7 +2,9 @@
require 'mkmf'
-$CFLAGS += " -O3 -std=c99 -Wno-unused-function -DNDEBUG "
+$CFLAGS += " -O3 -std=c99 -Wno-unused-function " +
+ "-Wno-declaration-after-statement -Wno-unused-variable " +
+ "-Wno-sign-compare -DNDEBUG "
$objs = ["protobuf.o", "defs.o", "storage.o", "message.o",
"repeated_field.o", "map.o", "encode_decode.o", "upb.o"]
diff --git a/ruby/ext/google/protobuf_c/message.c b/ruby/ext/google/protobuf_c/message.c
index 7e58a617..4be1c8c8 100644
--- a/ruby/ext/google/protobuf_c/message.c
+++ b/ruby/ext/google/protobuf_c/message.c
@@ -53,7 +53,7 @@ rb_data_type_t Message_type = {
};
VALUE Message_alloc(VALUE klass) {
- VALUE descriptor = rb_iv_get(klass, kDescriptorInstanceVar);
+ VALUE descriptor = rb_ivar_get(klass, descriptor_instancevar_interned);
Descriptor* desc = ruby_to_Descriptor(descriptor);
MessageHeader* msg = (MessageHeader*)ALLOC_N(
uint8_t, sizeof(MessageHeader) + desc->layout->size);
@@ -63,7 +63,7 @@ VALUE Message_alloc(VALUE klass) {
// a collection happens during object creation in layout_init().
VALUE ret = TypedData_Wrap_Struct(klass, &Message_type, msg);
msg->descriptor = desc;
- rb_iv_set(ret, kDescriptorInstanceVar, descriptor);
+ rb_ivar_set(ret, descriptor_instancevar_interned, descriptor);
layout_init(desc->layout, Message_data(msg));
@@ -86,7 +86,7 @@ static VALUE which_oneof_field(MessageHeader* self, const upb_oneofdef* o) {
size_t case_ofs =
self->descriptor->layout->
fields[upb_fielddef_index(first_field)].case_offset;
- uint32_t oneof_case = *((uint32_t*)(Message_data(self) + case_ofs));
+ uint32_t oneof_case = *((uint32_t*)((char*)Message_data(self) + case_ofs));
if (oneof_case == ONEOF_CASE_NONE) {
return Qnil;
@@ -329,6 +329,31 @@ VALUE Message_inspect(VALUE _self) {
return str;
}
+
+VALUE Message_to_h(VALUE _self) {
+ MessageHeader* self;
+ TypedData_Get_Struct(_self, MessageHeader, &Message_type, self);
+
+ VALUE hash = rb_hash_new();
+
+ upb_msg_field_iter it;
+ for (upb_msg_field_begin(&it, self->descriptor->msgdef);
+ !upb_msg_field_done(&it);
+ upb_msg_field_next(&it)) {
+ const upb_fielddef* field = upb_msg_iter_field(&it);
+ VALUE msg_value = layout_get(self->descriptor->layout, Message_data(self),
+ field);
+ VALUE msg_key = ID2SYM(rb_intern(upb_fielddef_name(field)));
+ if (upb_fielddef_label(field) == UPB_LABEL_REPEATED) {
+ msg_value = RepeatedField_to_ary(msg_value);
+ }
+ rb_hash_aset(hash, msg_key, msg_value);
+ }
+ return hash;
+}
+
+
+
/*
* call-seq:
* Message.[](index) => value
@@ -376,7 +401,7 @@ VALUE Message_index_set(VALUE _self, VALUE field_name, VALUE value) {
* message class's type.
*/
VALUE Message_descriptor(VALUE klass) {
- return rb_iv_get(klass, kDescriptorInstanceVar);
+ return rb_ivar_get(klass, descriptor_instancevar_interned);
}
VALUE build_class_from_descriptor(Descriptor* desc) {
@@ -397,8 +422,14 @@ VALUE build_class_from_descriptor(Descriptor* desc) {
// their own toplevel constant class name.
rb_intern("Message"),
rb_cObject);
- rb_iv_set(klass, kDescriptorInstanceVar, get_def_obj(desc->msgdef));
+ rb_ivar_set(klass, descriptor_instancevar_interned,
+ get_def_obj(desc->msgdef));
rb_define_alloc_func(klass, Message_alloc);
+ rb_require("google/protobuf/message_exts");
+ rb_include_module(klass, rb_eval_string("Google::Protobuf::MessageExts"));
+ rb_extend_object(
+ klass, rb_eval_string("Google::Protobuf::MessageExts::ClassMethods"));
+
rb_define_method(klass, "method_missing",
Message_method_missing, -1);
rb_define_method(klass, "initialize", Message_initialize, -1);
@@ -407,6 +438,8 @@ VALUE build_class_from_descriptor(Descriptor* desc) {
rb_define_method(klass, "clone", Message_dup, 0);
rb_define_method(klass, "==", Message_eq, 1);
rb_define_method(klass, "hash", Message_hash, 0);
+ rb_define_method(klass, "to_h", Message_to_h, 0);
+ rb_define_method(klass, "to_hash", Message_to_h, 0);
rb_define_method(klass, "inspect", Message_inspect, 0);
rb_define_method(klass, "[]", Message_index, 1);
rb_define_method(klass, "[]=", Message_index_set, 2);
@@ -415,6 +448,7 @@ VALUE build_class_from_descriptor(Descriptor* desc) {
rb_define_singleton_method(klass, "decode_json", Message_decode_json, 1);
rb_define_singleton_method(klass, "encode_json", Message_encode_json, 1);
rb_define_singleton_method(klass, "descriptor", Message_descriptor, 0);
+
return klass;
}
@@ -427,7 +461,7 @@ VALUE build_class_from_descriptor(Descriptor* desc) {
*/
VALUE enum_lookup(VALUE self, VALUE number) {
int32_t num = NUM2INT(number);
- VALUE desc = rb_iv_get(self, kDescriptorInstanceVar);
+ VALUE desc = rb_ivar_get(self, descriptor_instancevar_interned);
EnumDescriptor* enumdesc = ruby_to_EnumDescriptor(desc);
const char* name = upb_enumdef_iton(enumdesc->enumdef, num);
@@ -447,7 +481,7 @@ VALUE enum_lookup(VALUE self, VALUE number) {
*/
VALUE enum_resolve(VALUE self, VALUE sym) {
const char* name = rb_id2name(SYM2ID(sym));
- VALUE desc = rb_iv_get(self, kDescriptorInstanceVar);
+ VALUE desc = rb_ivar_get(self, descriptor_instancevar_interned);
EnumDescriptor* enumdesc = ruby_to_EnumDescriptor(desc);
int32_t num = 0;
@@ -467,7 +501,7 @@ VALUE enum_resolve(VALUE self, VALUE sym) {
* EnumDescriptor corresponding to this enum type.
*/
VALUE enum_descriptor(VALUE self) {
- return rb_iv_get(self, kDescriptorInstanceVar);
+ return rb_ivar_get(self, descriptor_instancevar_interned);
}
VALUE build_module_from_enumdesc(EnumDescriptor* enumdesc) {
@@ -492,7 +526,8 @@ VALUE build_module_from_enumdesc(EnumDescriptor* enumdesc) {
rb_define_singleton_method(mod, "lookup", enum_lookup, 1);
rb_define_singleton_method(mod, "resolve", enum_resolve, 1);
rb_define_singleton_method(mod, "descriptor", enum_descriptor, 0);
- rb_iv_set(mod, kDescriptorInstanceVar, get_def_obj(enumdesc->enumdef));
+ rb_ivar_set(mod, descriptor_instancevar_interned,
+ get_def_obj(enumdesc->enumdef));
return mod;
}
diff --git a/ruby/ext/google/protobuf_c/protobuf.c b/ruby/ext/google/protobuf_c/protobuf.c
index d2d35033..d0625a10 100644
--- a/ruby/ext/google/protobuf_c/protobuf.c
+++ b/ruby/ext/google/protobuf_c/protobuf.c
@@ -64,6 +64,15 @@ rb_encoding* kRubyStringUtf8Encoding;
rb_encoding* kRubyStringASCIIEncoding;
rb_encoding* kRubyString8bitEncoding;
+// Ruby-interned string: "descriptor". We use this identifier to store an
+// instance variable on message classes we create in order to link them back to
+// their descriptors.
+//
+// We intern this once at module load time then use the interned identifier at
+// runtime in order to avoid the cost of repeatedly interning in hot paths.
+const char* kDescriptorInstanceVar = "descriptor";
+ID descriptor_instancevar_interned;
+
// -----------------------------------------------------------------------------
// Initialization/entry point.
// -----------------------------------------------------------------------------
@@ -71,6 +80,7 @@ rb_encoding* kRubyString8bitEncoding;
// This must be named "Init_protobuf_c" because the Ruby module is named
// "protobuf_c" -- the VM looks for this symbol in our .so.
void Init_protobuf_c() {
+ descriptor_instancevar_interned = rb_intern(kDescriptorInstanceVar);
VALUE google = rb_define_module("Google");
VALUE protobuf = rb_define_module_under(google, "Protobuf");
VALUE internal = rb_define_module_under(protobuf, "Internal");
@@ -86,13 +96,6 @@ void Init_protobuf_c() {
RepeatedField_register(protobuf);
Map_register(protobuf);
- rb_define_singleton_method(protobuf, "encode", Google_Protobuf_encode, 1);
- rb_define_singleton_method(protobuf, "decode", Google_Protobuf_decode, 2);
- rb_define_singleton_method(protobuf, "encode_json",
- Google_Protobuf_encode_json, 1);
- rb_define_singleton_method(protobuf, "decode_json",
- Google_Protobuf_decode_json, 2);
-
rb_define_singleton_method(protobuf, "deep_copy",
Google_Protobuf_deep_copy, 1);
diff --git a/ruby/ext/google/protobuf_c/protobuf.h b/ruby/ext/google/protobuf_c/protobuf.h
index d8a327aa..f8667486 100644
--- a/ruby/ext/google/protobuf_c/protobuf.h
+++ b/ruby/ext/google/protobuf_c/protobuf.h
@@ -161,8 +161,6 @@ extern VALUE cOneofBuilderContext;
extern VALUE cEnumBuilderContext;
extern VALUE cBuilder;
-extern const char* kDescriptorInstanceVar;
-
// We forward-declare all of the Ruby method implementations here because we
// sometimes call the methods directly across .c files, rather than going
// through Ruby's method dispatching (e.g. during message parse). It's cleaner
@@ -361,19 +359,20 @@ extern VALUE cRepeatedField;
RepeatedField* ruby_to_RepeatedField(VALUE value);
VALUE RepeatedField_each(VALUE _self);
-VALUE RepeatedField_index(VALUE _self, VALUE _index);
+VALUE RepeatedField_index(int argc, VALUE* argv, VALUE _self);
void* RepeatedField_index_native(VALUE _self, int index);
VALUE RepeatedField_index_set(VALUE _self, VALUE _index, VALUE val);
void RepeatedField_reserve(RepeatedField* self, int new_size);
VALUE RepeatedField_push(VALUE _self, VALUE val);
void RepeatedField_push_native(VALUE _self, void* data);
-VALUE RepeatedField_pop(VALUE _self);
+VALUE RepeatedField_pop_one(VALUE _self);
VALUE RepeatedField_insert(int argc, VALUE* argv, VALUE _self);
VALUE RepeatedField_replace(VALUE _self, VALUE list);
VALUE RepeatedField_clear(VALUE _self);
VALUE RepeatedField_length(VALUE _self);
VALUE RepeatedField_dup(VALUE _self);
VALUE RepeatedField_deep_copy(VALUE _self);
+VALUE RepeatedField_to_ary(VALUE _self);
VALUE RepeatedField_eq(VALUE _self, VALUE _other);
VALUE RepeatedField_hash(VALUE _self);
VALUE RepeatedField_inspect(VALUE _self);
@@ -497,11 +496,6 @@ VALUE Message_encode(VALUE klass, VALUE msg_rb);
VALUE Message_decode_json(VALUE klass, VALUE data);
VALUE Message_encode_json(VALUE klass, VALUE msg_rb);
-VALUE Google_Protobuf_encode(VALUE self, VALUE msg_rb);
-VALUE Google_Protobuf_decode(VALUE self, VALUE klass, VALUE msg_rb);
-VALUE Google_Protobuf_encode_json(VALUE self, VALUE msg_rb);
-VALUE Google_Protobuf_decode_json(VALUE self, VALUE klass, VALUE msg_rb);
-
VALUE Google_Protobuf_deep_copy(VALUE self, VALUE obj);
VALUE build_module_from_enumdesc(EnumDescriptor* enumdef);
@@ -511,6 +505,10 @@ VALUE enum_resolve(VALUE self, VALUE sym);
const upb_pbdecodermethod *new_fillmsg_decodermethod(
Descriptor* descriptor, const void *owner);
+// Maximum depth allowed during encoding, to avoid stack overflows due to
+// cycles.
+#define ENCODE_MAX_NESTING 63
+
// -----------------------------------------------------------------------------
// Global map from upb {msg,enum}defs to wrapper Descriptor/EnumDescriptor
// instances.
@@ -530,4 +528,6 @@ void check_upb_status(const upb_status* status, const char* msg);
check_upb_status(&status, msg); \
} while (0)
+extern ID descriptor_instancevar_interned;
+
#endif // __GOOGLE_PROTOBUF_RUBY_PROTOBUF_H__
diff --git a/ruby/ext/google/protobuf_c/repeated_field.c b/ruby/ext/google/protobuf_c/repeated_field.c
index 5148ee87..ffa60c15 100644
--- a/ruby/ext/google/protobuf_c/repeated_field.c
+++ b/ruby/ext/google/protobuf_c/repeated_field.c
@@ -55,6 +55,21 @@ static int index_position(VALUE _index, RepeatedField* repeated_field) {
return index;
}
+VALUE RepeatedField_subarray(VALUE _self, long beg, long len) {
+ RepeatedField* self = ruby_to_RepeatedField(_self);
+ int element_size = native_slot_size(self->field_type);
+ upb_fieldtype_t field_type = self->field_type;
+ VALUE field_type_class = self->field_type_class;
+
+ size_t off = beg * element_size;
+ VALUE ary = rb_ary_new2(len);
+ for (int i = beg; i < beg + len; i++, off += element_size) {
+ void* mem = ((uint8_t *)self->elements) + off;
+ VALUE elem = native_slot_get(field_type, field_type_class, mem);
+ rb_ary_push(ary, elem);
+ }
+ return ary;
+}
/*
* call-seq:
@@ -76,28 +91,58 @@ VALUE RepeatedField_each(VALUE _self) {
VALUE val = native_slot_get(field_type, field_type_class, memory);
rb_yield(val);
}
- return Qnil;
+ return _self;
}
+
/*
* call-seq:
* RepeatedField.[](index) => value
*
* Accesses the element at the given index. Returns nil on out-of-bounds
*/
-VALUE RepeatedField_index(VALUE _self, VALUE _index) {
+VALUE RepeatedField_index(int argc, VALUE* argv, VALUE _self) {
RepeatedField* self = ruby_to_RepeatedField(_self);
int element_size = native_slot_size(self->field_type);
upb_fieldtype_t field_type = self->field_type;
VALUE field_type_class = self->field_type_class;
- int index = index_position(_index, self);
- if (index < 0 || index >= self->size) {
+ VALUE arg = argv[0];
+ long beg, len;
+
+ if (argc == 1){
+ if (FIXNUM_P(arg)) {
+ /* standard case */
+ int index = index_position(argv[0], self);
+ if (index < 0 || index >= self->size) {
+ return Qnil;
+ }
+ void* memory = (void *) (((uint8_t *)self->elements) +
+ index * element_size);
+ return native_slot_get(field_type, field_type_class, memory);
+ }else{
+ /* check if idx is Range */
+ size_t off;
+ switch (rb_range_beg_len(arg, &beg, &len, self->size, 0)) {
+ case Qfalse:
+ break;
+ case Qnil:
+ return Qnil;
+ default:
+ return RepeatedField_subarray(_self, beg, len);
+ }
+ }
+ }
+ /* assume 2 arguments */
+ beg = NUM2LONG(argv[0]);
+ len = NUM2LONG(argv[1]);
+ if (beg < 0) {
+ beg += self->size;
+ }
+ if (beg >= self->size) {
return Qnil;
}
-
- void* memory = (void *) (((uint8_t *)self->elements) + index * element_size);
- return native_slot_get(field_type, field_type_class, memory);
+ return RepeatedField_subarray(_self, beg, len);
}
/*
@@ -173,6 +218,7 @@ VALUE RepeatedField_push(VALUE _self, VALUE val) {
return _self;
}
+
// Used by parsing handlers.
void RepeatedField_push_native(VALUE _self, void* data) {
RepeatedField* self = ruby_to_RepeatedField(_self);
@@ -193,19 +239,15 @@ void* RepeatedField_index_native(VALUE _self, int index) {
}
/*
- * call-seq:
- * RepeatedField.pop => value
- *
- * Removes the last element and returns it. Throws an exception if the repeated
- * field is empty.
+ * Private ruby method, used by RepeatedField.pop
*/
-VALUE RepeatedField_pop(VALUE _self) {
+VALUE RepeatedField_pop_one(VALUE _self) {
RepeatedField* self = ruby_to_RepeatedField(_self);
upb_fieldtype_t field_type = self->field_type;
VALUE field_type_class = self->field_type_class;
int element_size = native_slot_size(field_type);
if (self->size == 0) {
- rb_raise(rb_eRangeError, "Pop from empty repeated field is not allowed.");
+ return Qnil;
}
int index = self->size - 1;
void* memory = (void *) (((uint8_t *)self->elements) + index * element_size);
@@ -216,19 +258,6 @@ VALUE RepeatedField_pop(VALUE _self) {
/*
* call-seq:
- * RepeatedField.insert(*args)
- *
- * Pushes each arg in turn onto the end of the repeated field.
- */
-VALUE RepeatedField_insert(int argc, VALUE* argv, VALUE _self) {
- for (int i = 0; i < argc; i++) {
- RepeatedField_push(_self, argv[i]);
- }
- return Qnil;
-}
-
-/*
- * call-seq:
* RepeatedField.replace(list)
*
* Replaces the contents of the repeated field with the given list of elements.
@@ -240,7 +269,7 @@ VALUE RepeatedField_replace(VALUE _self, VALUE list) {
for (int i = 0; i < RARRAY_LEN(list); i++) {
RepeatedField_push(_self, rb_ary_entry(list, i));
}
- return Qnil;
+ return list;
}
/*
@@ -252,7 +281,7 @@ VALUE RepeatedField_replace(VALUE _self, VALUE list) {
VALUE RepeatedField_clear(VALUE _self) {
RepeatedField* self = ruby_to_RepeatedField(_self);
self->size = 0;
- return Qnil;
+ return _self;
}
/*
@@ -341,7 +370,6 @@ VALUE RepeatedField_to_ary(VALUE _self) {
for (int i = 0; i < self->size; i++, off += elem_size) {
void* mem = ((uint8_t *)self->elements) + off;
VALUE elem = native_slot_get(field_type, self->field_type_class, mem);
-
rb_ary_push(ary, elem);
}
return ary;
@@ -419,19 +447,6 @@ VALUE RepeatedField_hash(VALUE _self) {
/*
* call-seq:
- * RepeatedField.inspect => string
- *
- * Returns a string representing this repeated field's elements. It will be
- * formated as "[<element>, <element>, ...]", with each element's string
- * representation computed by its own #inspect method.
- */
-VALUE RepeatedField_inspect(VALUE _self) {
- VALUE self_ary = RepeatedField_to_ary(_self);
- return rb_funcall(self_ary, rb_intern("inspect"), 0);
-}
-
-/*
- * call-seq:
* RepeatedField.+(other) => repeated field
*
* Returns a new repeated field that contains the concatenated list of this
@@ -466,14 +481,30 @@ VALUE RepeatedField_plus(VALUE _self, VALUE list) {
return dupped;
}
+/*
+ * call-seq:
+ * RepeatedField.concat(other) => self
+ *
+ * concats the passed in array to self. Returns a Ruby array.
+ */
+VALUE RepeatedField_concat(VALUE _self, VALUE list) {
+ RepeatedField* self = ruby_to_RepeatedField(_self);
+ Check_Type(list, T_ARRAY);
+ for (int i = 0; i < RARRAY_LEN(list); i++) {
+ RepeatedField_push(_self, rb_ary_entry(list, i));
+ }
+ return _self;
+}
+
+
void validate_type_class(upb_fieldtype_t type, VALUE klass) {
- if (rb_iv_get(klass, kDescriptorInstanceVar) == Qnil) {
+ if (rb_ivar_get(klass, descriptor_instancevar_interned) == Qnil) {
rb_raise(rb_eArgError,
"Type class has no descriptor. Please pass a "
"class or enum as returned by the DescriptorPool.");
}
if (type == UPB_TYPE_MESSAGE) {
- VALUE desc = rb_iv_get(klass, kDescriptorInstanceVar);
+ VALUE desc = rb_ivar_get(klass, descriptor_instancevar_interned);
if (!RB_TYPE_P(desc, T_DATA) || !RTYPEDDATA_P(desc) ||
RTYPEDDATA_TYPE(desc) != &_Descriptor_type) {
rb_raise(rb_eArgError, "Descriptor has an incorrect type.");
@@ -483,7 +514,7 @@ void validate_type_class(upb_fieldtype_t type, VALUE klass) {
"Message class was not returned by the DescriptorPool.");
}
} else if (type == UPB_TYPE_ENUM) {
- VALUE enumdesc = rb_iv_get(klass, kDescriptorInstanceVar);
+ VALUE enumdesc = rb_ivar_get(klass, descriptor_instancevar_interned);
if (!RB_TYPE_P(enumdesc, T_DATA) || !RTYPEDDATA_P(enumdesc) ||
RTYPEDDATA_TYPE(enumdesc) != &_EnumDescriptor_type) {
rb_raise(rb_eArgError, "Descriptor has an incorrect type.");
@@ -585,22 +616,23 @@ void RepeatedField_register(VALUE module) {
rb_define_method(klass, "initialize",
RepeatedField_init, -1);
rb_define_method(klass, "each", RepeatedField_each, 0);
- rb_define_method(klass, "[]", RepeatedField_index, 1);
+ rb_define_method(klass, "[]", RepeatedField_index, -1);
+ rb_define_method(klass, "at", RepeatedField_index, -1);
rb_define_method(klass, "[]=", RepeatedField_index_set, 2);
rb_define_method(klass, "push", RepeatedField_push, 1);
rb_define_method(klass, "<<", RepeatedField_push, 1);
- rb_define_method(klass, "pop", RepeatedField_pop, 0);
- rb_define_method(klass, "insert", RepeatedField_insert, -1);
+ rb_define_private_method(klass, "pop_one", RepeatedField_pop_one, 0);
rb_define_method(klass, "replace", RepeatedField_replace, 1);
rb_define_method(klass, "clear", RepeatedField_clear, 0);
rb_define_method(klass, "length", RepeatedField_length, 0);
+ rb_define_method(klass, "size", RepeatedField_length, 0);
rb_define_method(klass, "dup", RepeatedField_dup, 0);
// Also define #clone so that we don't inherit Object#clone.
rb_define_method(klass, "clone", RepeatedField_dup, 0);
rb_define_method(klass, "==", RepeatedField_eq, 1);
rb_define_method(klass, "to_ary", RepeatedField_to_ary, 0);
rb_define_method(klass, "hash", RepeatedField_hash, 0);
- rb_define_method(klass, "inspect", RepeatedField_inspect, 0);
rb_define_method(klass, "+", RepeatedField_plus, 1);
+ rb_define_method(klass, "concat", RepeatedField_concat, 1);
rb_include_module(klass, rb_mEnumerable);
}
diff --git a/ruby/ext/google/protobuf_c/storage.c b/ruby/ext/google/protobuf_c/storage.c
index 2ad8bd74..c4cdc9cc 100644
--- a/ruby/ext/google/protobuf_c/storage.c
+++ b/ruby/ext/google/protobuf_c/storage.c
@@ -415,7 +415,8 @@ MessageLayout* create_layout(const upb_msgdef* msgdef) {
// Align current offset up to |size| granularity.
off = align_up_to(off, field_size);
layout->fields[upb_fielddef_index(field)].offset = off;
- layout->fields[upb_fielddef_index(field)].case_offset = MESSAGE_FIELD_NO_CASE;
+ layout->fields[upb_fielddef_index(field)].case_offset =
+ MESSAGE_FIELD_NO_CASE;
off += field_size;
}
diff --git a/ruby/ext/google/protobuf_c/upb.c b/ruby/ext/google/protobuf_c/upb.c
index 20bd76bc..55a99cfe 100644
--- a/ruby/ext/google/protobuf_c/upb.c
+++ b/ruby/ext/google/protobuf_c/upb.c
@@ -1782,6 +1782,275 @@ void upb_oneof_iter_setdone(upb_oneof_iter *iter) {
/*
* upb - a minimalist implementation of protocol buffers.
*
+ * Copyright (c) 2014 Google Inc. See LICENSE for details.
+ * Author: Josh Haberman <jhaberman@gmail.com>
+ */
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+typedef struct cleanup_ent {
+ upb_cleanup_func *cleanup;
+ void *ud;
+ struct cleanup_ent *next;
+} cleanup_ent;
+
+static void *seeded_alloc(void *ud, void *ptr, size_t oldsize, size_t size);
+
+/* Default allocator **********************************************************/
+
+// Just use realloc, keeping all allocated blocks in a linked list to destroy at
+// the end.
+
+typedef struct mem_block {
+ // List is doubly-linked, because in cases where realloc() moves an existing
+ // block, we need to be able to remove the old pointer from the list
+ // efficiently.
+ struct mem_block *prev, *next;
+#ifndef NDEBUG
+ size_t size; // Doesn't include mem_block structure.
+#endif
+ char data[];
+} mem_block;
+
+typedef struct {
+ mem_block *head;
+} default_alloc_ud;
+
+static void *default_alloc(void *_ud, void *ptr, size_t oldsize, size_t size) {
+ UPB_UNUSED(oldsize);
+ default_alloc_ud *ud = _ud;
+
+ mem_block *from = ptr ? (void*)((char*)ptr - sizeof(mem_block)) : NULL;
+
+#ifndef NDEBUG
+ if (from) {
+ assert(oldsize <= from->size);
+ }
+#endif
+
+ mem_block *block = realloc(from, size + sizeof(mem_block));
+ if (!block) return NULL;
+
+#ifndef NDEBUG
+ block->size = size;
+#endif
+
+ if (from) {
+ if (block != from) {
+ // The block was moved, so pointers in next and prev blocks must be
+ // updated to its new location.
+ if (block->next) block->next->prev = block;
+ if (block->prev) block->prev->next = block;
+ }
+ } else {
+ // Insert at head of linked list.
+ block->prev = NULL;
+ block->next = ud->head;
+ if (block->next) block->next->prev = block;
+ ud->head = block;
+ }
+
+ return &block->data;
+}
+
+static void default_alloc_cleanup(void *_ud) {
+ default_alloc_ud *ud = _ud;
+ mem_block *block = ud->head;
+
+ while (block) {
+ void *to_free = block;
+ block = block->next;
+ free(to_free);
+ }
+}
+
+
+/* Standard error functions ***************************************************/
+
+static bool default_err(void *ud, const upb_status *status) {
+ UPB_UNUSED(ud);
+ fprintf(stderr, "upb error: %s\n", upb_status_errmsg(status));
+ return false;
+}
+
+static bool write_err_to(void *ud, const upb_status *status) {
+ upb_status *copy_to = ud;
+ upb_status_copy(copy_to, status);
+ return false;
+}
+
+
+/* upb_env ********************************************************************/
+
+void upb_env_init(upb_env *e) {
+ e->ok_ = true;
+ e->bytes_allocated = 0;
+ e->cleanup_head = NULL;
+
+ default_alloc_ud *ud = (default_alloc_ud*)&e->default_alloc_ud;
+ ud->head = NULL;
+
+ // Set default functions.
+ upb_env_setallocfunc(e, default_alloc, ud);
+ upb_env_seterrorfunc(e, default_err, NULL);
+}
+
+void upb_env_uninit(upb_env *e) {
+ cleanup_ent *ent = e->cleanup_head;
+
+ while (ent) {
+ ent->cleanup(ent->ud);
+ ent = ent->next;
+ }
+
+ // Must do this after running cleanup functions, because this will delete
+ // the memory we store our cleanup entries in!
+ if (e->alloc == default_alloc) {
+ default_alloc_cleanup(e->alloc_ud);
+ }
+}
+
+UPB_FORCEINLINE void upb_env_setallocfunc(upb_env *e, upb_alloc_func *alloc,
+ void *ud) {
+ e->alloc = alloc;
+ e->alloc_ud = ud;
+}
+
+UPB_FORCEINLINE void upb_env_seterrorfunc(upb_env *e, upb_error_func *func,
+ void *ud) {
+ e->err = func;
+ e->err_ud = ud;
+}
+
+void upb_env_reporterrorsto(upb_env *e, upb_status *status) {
+ e->err = write_err_to;
+ e->err_ud = status;
+}
+
+bool upb_env_ok(const upb_env *e) {
+ return e->ok_;
+}
+
+bool upb_env_reporterror(upb_env *e, const upb_status *status) {
+ e->ok_ = false;
+ return e->err(e->err_ud, status);
+}
+
+bool upb_env_addcleanup(upb_env *e, upb_cleanup_func *func, void *ud) {
+ cleanup_ent *ent = upb_env_malloc(e, sizeof(cleanup_ent));
+ if (!ent) return false;
+
+ ent->cleanup = func;
+ ent->ud = ud;
+ ent->next = e->cleanup_head;
+ e->cleanup_head = ent;
+
+ return true;
+}
+
+void *upb_env_malloc(upb_env *e, size_t size) {
+ e->bytes_allocated += size;
+ if (e->alloc == seeded_alloc) {
+ // This is equivalent to the next branch, but allows inlining for a
+ // measurable perf benefit.
+ return seeded_alloc(e->alloc_ud, NULL, 0, size);
+ } else {
+ return e->alloc(e->alloc_ud, NULL, 0, size);
+ }
+}
+
+void *upb_env_realloc(upb_env *e, void *ptr, size_t oldsize, size_t size) {
+ assert(oldsize <= size);
+ char *ret = e->alloc(e->alloc_ud, ptr, oldsize, size);
+
+#ifndef NDEBUG
+ // Overwrite non-preserved memory to ensure callers are passing the oldsize
+ // that they truly require.
+ memset(ret + oldsize, 0xff, size - oldsize);
+#endif
+
+ return ret;
+}
+
+size_t upb_env_bytesallocated(const upb_env *e) {
+ return e->bytes_allocated;
+}
+
+
+/* upb_seededalloc ************************************************************/
+
+// Be conservative and choose 16 in case anyone is using SSE.
+static const size_t maxalign = 16;
+
+static size_t align_up(size_t size) {
+ return ((size + maxalign - 1) / maxalign) * maxalign;
+}
+
+UPB_FORCEINLINE static void *seeded_alloc(void *ud, void *ptr, size_t oldsize,
+ size_t size) {
+ UPB_UNUSED(ptr);
+
+ upb_seededalloc *a = ud;
+ size = align_up(size);
+
+ assert(a->mem_limit >= a->mem_ptr);
+
+ if (oldsize == 0 && size <= (size_t)(a->mem_limit - a->mem_ptr)) {
+ // Fast path: we can satisfy from the initial allocation.
+ void *ret = a->mem_ptr;
+ a->mem_ptr += size;
+ return ret;
+ } else {
+ // Slow path: fallback to other allocator.
+ a->need_cleanup = true;
+ // Is `ptr` part of the user-provided initial block? Don't pass it to the
+ // default allocator if so; otherwise, it may try to realloc() the block.
+ char *chptr = ptr;
+ if (chptr >= a->mem_base && chptr < a->mem_limit) {
+ return a->alloc(a->alloc_ud, NULL, 0, size);
+ } else {
+ return a->alloc(a->alloc_ud, ptr, oldsize, size);
+ }
+ }
+}
+
+void upb_seededalloc_init(upb_seededalloc *a, void *mem, size_t len) {
+ a->mem_base = mem;
+ a->mem_ptr = mem;
+ a->mem_limit = (char*)mem + len;
+ a->need_cleanup = false;
+ a->returned_allocfunc = false;
+
+ default_alloc_ud *ud = (default_alloc_ud*)&a->default_alloc_ud;
+ ud->head = NULL;
+
+ upb_seededalloc_setfallbackalloc(a, default_alloc, ud);
+}
+
+void upb_seededalloc_uninit(upb_seededalloc *a) {
+ if (a->alloc == default_alloc && a->need_cleanup) {
+ default_alloc_cleanup(a->alloc_ud);
+ }
+}
+
+UPB_FORCEINLINE void upb_seededalloc_setfallbackalloc(upb_seededalloc *a,
+ upb_alloc_func *alloc,
+ void *ud) {
+ assert(!a->returned_allocfunc);
+ a->alloc = alloc;
+ a->alloc_ud = ud;
+}
+
+upb_alloc_func *upb_seededalloc_getallocfunc(upb_seededalloc *a) {
+ a->returned_allocfunc = true;
+ return seeded_alloc;
+}
+/*
+ * upb - a minimalist implementation of protocol buffers.
+ *
* Copyright (c) 2011-2012 Google Inc. See LICENSE for details.
* Author: Josh Haberman <jhaberman@gmail.com>
*
@@ -1955,7 +2224,14 @@ static bool doset(upb_handlers *h, int32_t sel, const upb_fielddef *f,
if (closure_type && *context_closure_type &&
closure_type != *context_closure_type) {
// TODO(haberman): better message for debugging.
- upb_status_seterrmsg(&h->status_, "closure type does not match");
+ if (f) {
+ upb_status_seterrf(&h->status_,
+ "closure type does not match for field %s",
+ upb_fielddef_name(f));
+ } else {
+ upb_status_seterrmsg(
+ &h->status_, "closure type does not match for message-level handler");
+ }
return false;
}
@@ -2353,7 +2629,7 @@ bool upb_handlers_getselector(const upb_fielddef *f, upb_handlertype_t type,
*s = f->selector_base;
break;
}
- assert(*s < upb_fielddef_containingtype(f)->selector_count);
+ assert((size_t)*s < upb_fielddef_containingtype(f)->selector_count);
return true;
}
@@ -4295,7 +4571,7 @@ void upb_inttable_compact(upb_inttable *t) {
counts[log2ceil(key)]++;
}
- int arr_size;
+ size_t arr_size = 1;
int arr_count = upb_inttable_count(t);
if (upb_inttable_count(t) >= max_key * MIN_DENSITY) {
@@ -5522,6 +5798,54 @@ static upb_inttable reftables[212] = {
#include <stdlib.h>
#include <string.h>
+// upb_deflist is an internal-only dynamic array for storing a growing list of
+// upb_defs.
+typedef struct {
+ upb_def **defs;
+ size_t len;
+ size_t size;
+ bool owned;
+} upb_deflist;
+
+// We keep a stack of all the messages scopes we are currently in, as well as
+// the top-level file scope. This is necessary to correctly qualify the
+// definitions that are contained inside. "name" tracks the name of the
+// message or package (a bare name -- not qualified by any enclosing scopes).
+typedef struct {
+ char *name;
+ // Index of the first def that is under this scope. For msgdefs, the
+ // msgdef itself is at start-1.
+ int start;
+} upb_descreader_frame;
+
+// The maximum number of nested declarations that are allowed, ie.
+// message Foo {
+// message Bar {
+// message Baz {
+// }
+// }
+// }
+//
+// This is a resource limit that affects how big our runtime stack can grow.
+// TODO: make this a runtime-settable property of the Reader instance.
+#define UPB_MAX_MESSAGE_NESTING 64
+
+struct upb_descreader {
+ upb_sink sink;
+ upb_deflist defs;
+ upb_descreader_frame stack[UPB_MAX_MESSAGE_NESTING];
+ int stack_len;
+
+ uint32_t number;
+ char *name;
+ bool saw_number;
+ bool saw_name;
+
+ char *default_string;
+
+ upb_fielddef *f;
+};
+
static char *upb_strndup(const char *buf, size_t n) {
char *ret = malloc(n + 1);
if (!ret) return NULL;
@@ -5601,36 +5925,6 @@ static void upb_deflist_qualify(upb_deflist *l, char *str, int32_t start) {
/* upb_descreader ************************************************************/
-void upb_descreader_init(upb_descreader *r, const upb_handlers *handlers,
- upb_status *status) {
- UPB_UNUSED(status);
- upb_deflist_init(&r->defs);
- upb_sink_reset(upb_descreader_input(r), handlers, r);
- r->stack_len = 0;
- r->name = NULL;
- r->default_string = NULL;
-}
-
-void upb_descreader_uninit(upb_descreader *r) {
- free(r->name);
- upb_deflist_uninit(&r->defs);
- free(r->default_string);
- while (r->stack_len > 0) {
- upb_descreader_frame *f = &r->stack[--r->stack_len];
- free(f->name);
- }
-}
-
-upb_def **upb_descreader_getdefs(upb_descreader *r, void *owner, int *n) {
- *n = r->defs.len;
- upb_deflist_donaterefs(&r->defs, owner);
- return r->defs.defs;
-}
-
-upb_sink *upb_descreader_input(upb_descreader *r) {
- return &r->sink;
-}
-
static upb_msgdef *upb_descreader_top(upb_descreader *r) {
assert(r->stack_len > 1);
int index = r->stack[r->stack_len-1].start - 1;
@@ -5803,7 +6097,7 @@ static bool parse_default(char *str, upb_fielddef *f) {
break;
}
case UPB_TYPE_UINT32: {
- long val = strtoul(str, &end, 0);
+ unsigned long val = strtoul(str, &end, 0);
if (val > UINT32_MAX || errno == ERANGE || *end)
success = false;
else
@@ -6070,6 +6364,45 @@ static void reghandlers(const void *closure, upb_handlers *h) {
#undef D
+void descreader_cleanup(void *_r) {
+ upb_descreader *r = _r;
+ free(r->name);
+ upb_deflist_uninit(&r->defs);
+ free(r->default_string);
+ while (r->stack_len > 0) {
+ upb_descreader_frame *f = &r->stack[--r->stack_len];
+ free(f->name);
+ }
+}
+
+
+/* Public API ****************************************************************/
+
+upb_descreader *upb_descreader_create(upb_env *e, const upb_handlers *h) {
+ upb_descreader *r = upb_env_malloc(e, sizeof(upb_descreader));
+ if (!r || !upb_env_addcleanup(e, descreader_cleanup, r)) {
+ return NULL;
+ }
+
+ upb_deflist_init(&r->defs);
+ upb_sink_reset(upb_descreader_input(r), h, r);
+ r->stack_len = 0;
+ r->name = NULL;
+ r->default_string = NULL;
+
+ return r;
+}
+
+upb_def **upb_descreader_getdefs(upb_descreader *r, void *owner, int *n) {
+ *n = r->defs.len;
+ upb_deflist_donaterefs(&r->defs, owner);
+ return r->defs.defs;
+}
+
+upb_sink *upb_descreader_input(upb_descreader *r) {
+ return &r->sink;
+}
+
const upb_handlers *upb_descreader_newhandlers(const void *owner) {
const upb_symtab *s = upbdefs_google_protobuf_descriptor(&s);
const upb_handlers *h = upb_handlers_newfrozen(
@@ -6141,7 +6474,6 @@ mgroup *newgroup(const void *owner) {
static void freemethod(upb_refcounted *r) {
upb_pbdecodermethod *method = (upb_pbdecodermethod*)r;
- upb_byteshandler_uninit(&method->input_handler_);
if (method->dest_handlers_) {
upb_handlers_unref(method->dest_handlers_, method);
@@ -7073,10 +7405,7 @@ void upb_pbdecodermethodopts_setlazy(upb_pbdecodermethodopts *opts, bool lazy) {
*/
#include <inttypes.h>
-#include <setjmp.h>
-#include <stdarg.h>
#include <stddef.h>
-#include <stdlib.h>
#ifdef UPB_DUMP_BYTECODE
#include <stdio.h>
@@ -7122,18 +7451,17 @@ static bool consumes_input(opcode op) {
static bool in_residual_buf(const upb_pbdecoder *d, const char *p);
-// It's unfortunate that we have to micro-manage the compiler this way,
-// especially since this tuning is necessarily specific to one hardware
-// configuration. But emperically on a Core i7, performance increases 30-50%
-// with these annotations. Every instance where these appear, gcc 4.2.1 made
-// the wrong decision and degraded performance in benchmarks.
-#define FORCEINLINE static inline __attribute__((always_inline))
-#define NOINLINE __attribute__((noinline))
+// It's unfortunate that we have to micro-manage the compiler with
+// UPB_FORCEINLINE and UPB_NOINLINE, especially since this tuning is necessarily
+// specific to one hardware configuration. But empirically on a Core i7,
+// performance increases 30-50% with these annotations. Every instance where
+// these appear, gcc 4.2.1 made the wrong decision and degraded performance in
+// benchmarks.
static void seterr(upb_pbdecoder *d, const char *msg) {
- // TODO(haberman): encapsulate this access to pipeline->status, but not sure
- // exactly what that interface should look like.
- upb_status_seterrmsg(d->status, msg);
+ upb_status status = UPB_STATUS_INIT;
+ upb_status_seterrmsg(&status, msg);
+ upb_env_reporterror(d->env, &status);
}
void upb_pbdecoder_seterr(upb_pbdecoder *d, const char *msg) {
@@ -7176,7 +7504,7 @@ static bool in_residual_buf(const upb_pbdecoder *d, const char *p) {
// and the parsing stack, so must be called whenever either is updated.
static void set_delim_end(upb_pbdecoder *d) {
size_t delim_ofs = d->top->end_ofs - d->bufstart_ofs;
- if (delim_ofs <= (d->end - d->buf)) {
+ if (delim_ofs <= (size_t)(d->end - d->buf)) {
d->delim_end = d->buf + delim_ofs;
d->data_end = d->delim_end;
} else {
@@ -7301,7 +7629,8 @@ static int32_t skip(upb_pbdecoder *d, size_t bytes) {
// Copies the next "bytes" bytes into "buf" and advances the stream.
// Requires that this many bytes are available in the current buffer.
-FORCEINLINE void consumebytes(upb_pbdecoder *d, void *buf, size_t bytes) {
+UPB_FORCEINLINE static void consumebytes(upb_pbdecoder *d, void *buf,
+ size_t bytes) {
assert(bytes <= curbufleft(d));
memcpy(buf, d->ptr, bytes);
advance(d, bytes);
@@ -7310,8 +7639,8 @@ FORCEINLINE void consumebytes(upb_pbdecoder *d, void *buf, size_t bytes) {
// Slow path for getting the next "bytes" bytes, regardless of whether they are
// available in the current buffer or not. Returns a status code as described
// in decoder.int.h.
-static NOINLINE int32_t getbytes_slow(upb_pbdecoder *d, void *buf,
- size_t bytes) {
+UPB_NOINLINE static int32_t getbytes_slow(upb_pbdecoder *d, void *buf,
+ size_t bytes) {
const size_t avail = curbufleft(d);
consumebytes(d, buf, avail);
bytes -= avail;
@@ -7320,7 +7649,7 @@ static NOINLINE int32_t getbytes_slow(upb_pbdecoder *d, void *buf,
advancetobuf(d, d->buf_param, d->size_param);
}
if (curbufleft(d) >= bytes) {
- consumebytes(d, buf + avail, bytes);
+ consumebytes(d, (char *)buf + avail, bytes);
return DECODE_OK;
} else if (d->data_end == d->delim_end) {
seterr(d, "Submessage ended in the middle of a value or group");
@@ -7332,7 +7661,8 @@ static NOINLINE int32_t getbytes_slow(upb_pbdecoder *d, void *buf,
// Gets the next "bytes" bytes, regardless of whether they are available in the
// current buffer or not. Returns a status code as described in decoder.int.h.
-FORCEINLINE int32_t getbytes(upb_pbdecoder *d, void *buf, size_t bytes) {
+UPB_FORCEINLINE static int32_t getbytes(upb_pbdecoder *d, void *buf,
+ size_t bytes) {
if (curbufleft(d) >= bytes) {
// Buffer has enough data to satisfy.
consumebytes(d, buf, bytes);
@@ -7342,19 +7672,20 @@ FORCEINLINE int32_t getbytes(upb_pbdecoder *d, void *buf, size_t bytes) {
}
}
-static NOINLINE size_t peekbytes_slow(upb_pbdecoder *d, void *buf,
- size_t bytes) {
+UPB_NOINLINE static size_t peekbytes_slow(upb_pbdecoder *d, void *buf,
+ size_t bytes) {
size_t ret = curbufleft(d);
memcpy(buf, d->ptr, ret);
if (in_residual_buf(d, d->ptr)) {
size_t copy = UPB_MIN(bytes - ret, d->size_param);
- memcpy(buf + ret, d->buf_param, copy);
+ memcpy((char *)buf + ret, d->buf_param, copy);
ret += copy;
}
return ret;
}
-FORCEINLINE size_t peekbytes(upb_pbdecoder *d, void *buf, size_t bytes) {
+UPB_FORCEINLINE static size_t peekbytes(upb_pbdecoder *d, void *buf,
+ size_t bytes) {
if (curbufleft(d) >= bytes) {
memcpy(buf, d->ptr, bytes);
return bytes;
@@ -7368,8 +7699,8 @@ FORCEINLINE size_t peekbytes(upb_pbdecoder *d, void *buf, size_t bytes) {
// Slow path for decoding a varint from the current buffer position.
// Returns a status code as described in decoder.int.h.
-NOINLINE int32_t upb_pbdecoder_decode_varint_slow(upb_pbdecoder *d,
- uint64_t *u64) {
+UPB_NOINLINE int32_t upb_pbdecoder_decode_varint_slow(upb_pbdecoder *d,
+ uint64_t *u64) {
*u64 = 0;
uint8_t byte = 0x80;
int bitpos;
@@ -7387,7 +7718,7 @@ NOINLINE int32_t upb_pbdecoder_decode_varint_slow(upb_pbdecoder *d,
// Decodes a varint from the current buffer position.
// Returns a status code as described in decoder.int.h.
-FORCEINLINE int32_t decode_varint(upb_pbdecoder *d, uint64_t *u64) {
+UPB_FORCEINLINE static int32_t decode_varint(upb_pbdecoder *d, uint64_t *u64) {
if (curbufleft(d) > 0 && !(*d->ptr & 0x80)) {
*u64 = *d->ptr;
advance(d, 1);
@@ -7410,7 +7741,7 @@ FORCEINLINE int32_t decode_varint(upb_pbdecoder *d, uint64_t *u64) {
// Decodes a 32-bit varint from the current buffer position.
// Returns a status code as described in decoder.int.h.
-FORCEINLINE int32_t decode_v32(upb_pbdecoder *d, uint32_t *u32) {
+UPB_FORCEINLINE static int32_t decode_v32(upb_pbdecoder *d, uint32_t *u32) {
uint64_t u64;
int32_t ret = decode_varint(d, &u64);
if (ret >= 0) return ret;
@@ -7429,14 +7760,14 @@ FORCEINLINE int32_t decode_v32(upb_pbdecoder *d, uint32_t *u32) {
// Decodes a fixed32 from the current buffer position.
// Returns a status code as described in decoder.int.h.
// TODO: proper byte swapping for big-endian machines.
-FORCEINLINE int32_t decode_fixed32(upb_pbdecoder *d, uint32_t *u32) {
+UPB_FORCEINLINE static int32_t decode_fixed32(upb_pbdecoder *d, uint32_t *u32) {
return getbytes(d, u32, 4);
}
// Decodes a fixed64 from the current buffer position.
// Returns a status code as described in decoder.int.h.
// TODO: proper byte swapping for big-endian machines.
-FORCEINLINE int32_t decode_fixed64(upb_pbdecoder *d, uint64_t *u64) {
+UPB_FORCEINLINE static int32_t decode_fixed64(upb_pbdecoder *d, uint64_t *u64) {
return getbytes(d, u64, 8);
}
@@ -7460,7 +7791,7 @@ static bool decoder_push(upb_pbdecoder *d, uint64_t end) {
if (end > fr->end_ofs) {
seterr(d, "Submessage end extends past enclosing submessage.");
return false;
- } else if ((fr + 1) == d->limit) {
+ } else if (fr == d->limit) {
seterr(d, kPbDecoderStackOverflow);
return false;
}
@@ -7487,8 +7818,8 @@ static bool pushtagdelim(upb_pbdecoder *d, uint32_t arg) {
// Pops a frame from the decoder stack.
static void decoder_pop(upb_pbdecoder *d) { d->top--; }
-NOINLINE int32_t upb_pbdecoder_checktag_slow(upb_pbdecoder *d,
- uint64_t expected) {
+UPB_NOINLINE int32_t upb_pbdecoder_checktag_slow(upb_pbdecoder *d,
+ uint64_t expected) {
uint64_t data = 0;
size_t bytes = upb_value_size(expected);
size_t read = peekbytes(d, &data, bytes);
@@ -7640,10 +7971,17 @@ static int32_t dispatch(upb_pbdecoder *d) {
if (ret == DECODE_ENDGROUP) {
goto_endmsg(d);
return DECODE_OK;
- } else {
- d->pc = d->last - 1; // Rewind to CHECKDELIM.
- return ret;
+ } else if (ret == DECODE_OK) {
+ // We just consumed some input, so we might now have consumed all the data
+ // in the delmited region. Since every opcode that can trigger dispatch is
+ // directly preceded by OP_CHECKDELIM, rewind to it now to re-check the
+ // delimited end.
+ d->pc = d->last - 1;
+ assert(getop(*d->pc) == OP_CHECKDELIM);
+ return DECODE_OK;
}
+
+ return ret;
}
// Callers know that the stack is more than one deep because the opcodes that
@@ -7866,7 +8204,10 @@ size_t upb_pbdecoder_decode(void *closure, const void *hd, const char *buf,
void *upb_pbdecoder_startbc(void *closure, const void *pc, size_t size_hint) {
upb_pbdecoder *d = closure;
UPB_UNUSED(size_hint);
+ d->top->end_ofs = UINT64_MAX;
+ d->bufstart_ofs = 0;
d->call_len = 1;
+ d->callstack[0] = &halt;
d->pc = pc;
return d;
}
@@ -7875,6 +8216,8 @@ void *upb_pbdecoder_startjit(void *closure, const void *hd, size_t size_hint) {
UPB_UNUSED(hd);
UPB_UNUSED(size_hint);
upb_pbdecoder *d = closure;
+ d->top->end_ofs = UINT64_MAX;
+ d->bufstart_ofs = 0;
d->call_len = 0;
return d;
}
@@ -7931,58 +8274,120 @@ bool upb_pbdecoder_end(void *closure, const void *handler_data) {
return true;
}
-void upb_pbdecoder_init(upb_pbdecoder *d, const upb_pbdecodermethod *m,
- upb_status *s) {
- d->limit = &d->stack[UPB_DECODER_MAX_NESTING];
- upb_bytessink_reset(&d->input_, &m->input_handler_, d);
- d->method_ = m;
- d->callstack[0] = &halt;
- d->status = s;
- upb_pbdecoder_reset(d);
-}
-
void upb_pbdecoder_reset(upb_pbdecoder *d) {
d->top = d->stack;
- d->top->end_ofs = UINT64_MAX;
d->top->groupnum = 0;
- d->bufstart_ofs = 0;
d->ptr = d->residual;
d->buf = d->residual;
d->end = d->residual;
d->residual_end = d->residual;
- d->call_len = 1;
}
-uint64_t upb_pbdecoder_bytesparsed(const upb_pbdecoder *d) {
- return offset(d);
+static size_t stacksize(upb_pbdecoder *d, size_t entries) {
+ UPB_UNUSED(d);
+ return entries * sizeof(upb_pbdecoder_frame);
}
-// Not currently required, but to support outgrowing the static stack we need
-// this.
-void upb_pbdecoder_uninit(upb_pbdecoder *d) {
+static size_t callstacksize(upb_pbdecoder *d, size_t entries) {
UPB_UNUSED(d);
-}
-const upb_pbdecodermethod *upb_pbdecoder_method(const upb_pbdecoder *d) {
- return d->method_;
+#ifdef UPB_USE_JIT_X64
+ if (d->method_->is_native_) {
+ // Each native stack frame needs two pointers, plus we need a few frames for
+ // the enter/exit trampolines.
+ size_t ret = entries * sizeof(void*) * 2;
+ ret += sizeof(void*) * 10;
+ return ret;
+ }
+#endif
+
+ return entries * sizeof(uint32_t*);
}
-bool upb_pbdecoder_resetoutput(upb_pbdecoder *d, upb_sink* sink) {
- // TODO(haberman): do we need to test whether the decoder is already on the
- // stack (like calling this from within a callback)? Should we support
- // rebinding the output at all?
+upb_pbdecoder *upb_pbdecoder_create(upb_env *e, const upb_pbdecodermethod *m,
+ upb_sink *sink) {
+ const size_t default_max_nesting = 64;
+#ifndef NDEBUG
+ size_t size_before = upb_env_bytesallocated(e);
+#endif
+
+ upb_pbdecoder *d = upb_env_malloc(e, sizeof(upb_pbdecoder));
+ if (!d) return NULL;
+
+ d->method_ = m;
+ d->callstack = upb_env_malloc(e, callstacksize(d, default_max_nesting));
+ d->stack = upb_env_malloc(e, stacksize(d, default_max_nesting));
+ if (!d->stack || !d->callstack) {
+ return NULL;
+ }
+
+ d->env = e;
+ d->limit = d->stack + default_max_nesting - 1;
+ d->stack_size = default_max_nesting;
+
+ upb_pbdecoder_reset(d);
+ upb_bytessink_reset(&d->input_, &m->input_handler_, d);
+
assert(sink);
if (d->method_->dest_handlers_) {
if (sink->handlers != d->method_->dest_handlers_)
- return false;
+ return NULL;
}
upb_sink_reset(&d->top->sink, sink->handlers, sink->closure);
- return true;
+
+ // If this fails, increase the value in decoder.h.
+ assert(upb_env_bytesallocated(e) - size_before <= UPB_PB_DECODER_SIZE);
+ return d;
+}
+
+uint64_t upb_pbdecoder_bytesparsed(const upb_pbdecoder *d) {
+ return offset(d);
+}
+
+const upb_pbdecodermethod *upb_pbdecoder_method(const upb_pbdecoder *d) {
+ return d->method_;
}
upb_bytessink *upb_pbdecoder_input(upb_pbdecoder *d) {
return &d->input_;
}
+
+size_t upb_pbdecoder_maxnesting(const upb_pbdecoder *d) {
+ return d->stack_size;
+}
+
+bool upb_pbdecoder_setmaxnesting(upb_pbdecoder *d, size_t max) {
+ assert(d->top >= d->stack);
+
+ if (max < (size_t)(d->top - d->stack)) {
+ // Can't set a limit smaller than what we are currently at.
+ return false;
+ }
+
+ if (max > d->stack_size) {
+ // Need to reallocate stack and callstack to accommodate.
+ size_t old_size = stacksize(d, d->stack_size);
+ size_t new_size = stacksize(d, max);
+ void *p = upb_env_realloc(d->env, d->stack, old_size, new_size);
+ if (!p) {
+ return false;
+ }
+ d->stack = p;
+
+ old_size = callstacksize(d, d->stack_size);
+ new_size = callstacksize(d, max);
+ p = upb_env_realloc(d->env, d->callstack, old_size, new_size);
+ if (!p) {
+ return false;
+ }
+ d->callstack = p;
+
+ d->stack_size = max;
+ }
+
+ d->limit = d->stack + max - 1;
+ return true;
+}
/*
* upb - a minimalist implementation of protocol buffers.
*
@@ -8045,6 +8450,68 @@ upb_bytessink *upb_pbdecoder_input(upb_pbdecoder *d) {
#include <stdlib.h>
+// The output buffer is divided into segments; a segment is a string of data
+// that is "ready to go" -- it does not need any varint lengths inserted into
+// the middle. The seams between segments are where varints will be inserted
+// once they are known.
+//
+// We also use the concept of a "run", which is a range of encoded bytes that
+// occur at a single submessage level. Every segment contains one or more runs.
+//
+// A segment can span messages. Consider:
+//
+// .--Submessage lengths---------.
+// | | |
+// | V V
+// V | |--------------- | |-----------------
+// Submessages: | |-----------------------------------------------
+// Top-level msg: ------------------------------------------------------------
+//
+// Segments: ----- ------------------- -----------------
+// Runs: *---- *--------------*--- *----------------
+// (* marks the start)
+//
+// Note that the top-level menssage is not in any segment because it does not
+// have any length preceding it.
+//
+// A segment is only interrupted when another length needs to be inserted. So
+// observe how the second segment spans both the inner submessage and part of
+// the next enclosing message.
+typedef struct {
+ uint32_t msglen; // The length to varint-encode before this segment.
+ uint32_t seglen; // Length of the segment.
+} upb_pb_encoder_segment;
+
+struct upb_pb_encoder {
+ upb_env *env;
+
+ // Our input and output.
+ upb_sink input_;
+ upb_bytessink *output_;
+
+ // The "subclosure" -- used as the inner closure as part of the bytessink
+ // protocol.
+ void *subc;
+
+ // The output buffer and limit, and our current write position. "buf"
+ // initially points to "initbuf", but is dynamically allocated if we need to
+ // grow beyond the initial size.
+ char *buf, *ptr, *limit;
+
+ // The beginning of the current run, or undefined if we are at the top level.
+ char *runbegin;
+
+ // The list of segments we are accumulating.
+ upb_pb_encoder_segment *segbuf, *segptr, *seglimit;
+
+ // The stack of enclosing submessages. Each entry in the stack points to the
+ // segment where this submessage's length is being accumulated.
+ int *stack, *top, *stacklimit;
+
+ // Depth of startmsg/endmsg calls.
+ int depth;
+};
+
/* low-level buffering ********************************************************/
// Low-level functions for interacting with the output buffer.
@@ -8062,25 +8529,23 @@ static upb_pb_encoder_segment *top(upb_pb_encoder *e) {
// Call to ensure that at least "bytes" bytes are available for writing at
// e->ptr. Returns false if the bytes could not be allocated.
static bool reserve(upb_pb_encoder *e, size_t bytes) {
- if ((e->limit - e->ptr) < bytes) {
+ if ((size_t)(e->limit - e->ptr) < bytes) {
+ // Grow buffer.
size_t needed = bytes + (e->ptr - e->buf);
size_t old_size = e->limit - e->buf;
+
size_t new_size = old_size;
+
while (new_size < needed) {
new_size *= 2;
}
- char *realloc_from = (e->buf == e->initbuf) ? NULL : e->buf;
- char *new_buf = realloc(realloc_from, new_size);
+ char *new_buf = upb_env_realloc(e->env, e->buf, old_size, new_size);
if (new_buf == NULL) {
return false;
}
- if (realloc_from == NULL) {
- memcpy(new_buf, e->initbuf, old_size);
- }
-
e->ptr = new_buf + (e->ptr - e->buf);
e->runbegin = new_buf + (e->runbegin - e->buf);
e->limit = new_buf + new_size;
@@ -8093,7 +8558,7 @@ static bool reserve(upb_pb_encoder *e, size_t bytes) {
// Call when "bytes" bytes have been writte at e->ptr. The caller *must* have
// previously called reserve() with at least this many bytes.
static void encoder_advance(upb_pb_encoder *e, size_t bytes) {
- assert((e->limit - e->ptr) >= bytes);
+ assert((size_t)(e->limit - e->ptr) >= bytes);
e->ptr += bytes;
}
@@ -8149,21 +8614,17 @@ static bool start_delim(upb_pb_encoder *e) {
}
if (++e->segptr == e->seglimit) {
- upb_pb_encoder_segment *realloc_from =
- (e->segbuf == e->seginitbuf) ? NULL : e->segbuf;
+ // Grow segment buffer.
size_t old_size =
(e->seglimit - e->segbuf) * sizeof(upb_pb_encoder_segment);
size_t new_size = old_size * 2;
- upb_pb_encoder_segment *new_buf = realloc(realloc_from, new_size);
+ upb_pb_encoder_segment *new_buf =
+ upb_env_realloc(e->env, e->segbuf, old_size, new_size);
if (new_buf == NULL) {
return false;
}
- if (realloc_from == NULL) {
- memcpy(new_buf, e->seginitbuf, old_size);
- }
-
e->segptr = new_buf + (e->segptr - e->segbuf);
e->seglimit = new_buf + (new_size / sizeof(upb_pb_encoder_segment));
e->segbuf = new_buf;
@@ -8434,6 +8895,12 @@ static void newhandlers_callback(const void *closure, upb_handlers *h) {
}
}
+void upb_pb_encoder_reset(upb_pb_encoder *e) {
+ e->segptr = NULL;
+ e->top = NULL;
+ e->depth = 0;
+}
+
/* public API *****************************************************************/
@@ -8442,40 +8909,42 @@ const upb_handlers *upb_pb_encoder_newhandlers(const upb_msgdef *m,
return upb_handlers_newfrozen(m, owner, newhandlers_callback, NULL);
}
-#define ARRAYSIZE(x) (sizeof(x) / sizeof(x[0]))
+upb_pb_encoder *upb_pb_encoder_create(upb_env *env, const upb_handlers *h,
+ upb_bytessink *output) {
+ const size_t initial_bufsize = 256;
+ const size_t initial_segbufsize = 16;
+ // TODO(haberman): make this configurable.
+ const size_t stack_size = 64;
+#ifndef NDEBUG
+ const size_t size_before = upb_env_bytesallocated(env);
+#endif
-void upb_pb_encoder_init(upb_pb_encoder *e, const upb_handlers *h) {
- e->output_ = NULL;
- e->subc = NULL;
- e->buf = e->initbuf;
- e->ptr = e->buf;
- e->limit = e->buf + ARRAYSIZE(e->initbuf);
- e->segbuf = e->seginitbuf;
- e->seglimit = e->segbuf + ARRAYSIZE(e->seginitbuf);
- e->stacklimit = e->stack + ARRAYSIZE(e->stack);
- upb_sink_reset(&e->input_, h, e);
-}
+ upb_pb_encoder *e = upb_env_malloc(env, sizeof(upb_pb_encoder));
+ if (!e) return NULL;
-void upb_pb_encoder_uninit(upb_pb_encoder *e) {
- if (e->buf != e->initbuf) {
- free(e->buf);
- }
+ e->buf = upb_env_malloc(env, initial_bufsize);
+ e->segbuf = upb_env_malloc(env, initial_segbufsize * sizeof(*e->segbuf));
+ e->stack = upb_env_malloc(env, stack_size * sizeof(*e->stack));
- if (e->segbuf != e->seginitbuf) {
- free(e->segbuf);
+ if (!e->buf || !e->segbuf || !e->stack) {
+ return NULL;
}
-}
-void upb_pb_encoder_resetoutput(upb_pb_encoder *e, upb_bytessink *output) {
+ e->limit = e->buf + initial_bufsize;
+ e->seglimit = e->segbuf + initial_segbufsize;
+ e->stacklimit = e->stack + stack_size;
+
upb_pb_encoder_reset(e);
+ upb_sink_reset(&e->input_, h, e);
+
+ e->env = env;
e->output_ = output;
e->subc = output->closure;
-}
+ e->ptr = e->buf;
-void upb_pb_encoder_reset(upb_pb_encoder *e) {
- e->segptr = NULL;
- e->top = NULL;
- e->depth = 0;
+ // If this fails, increase the value in encoder.h.
+ assert(upb_env_bytesallocated(env) - size_before <= UPB_PB_ENCODER_SIZE);
+ return e;
}
upb_sink *upb_pb_encoder_input(upb_pb_encoder *e) { return &e->input_; }
@@ -8500,26 +8969,26 @@ upb_def **upb_load_defs_from_descriptor(const char *str, size_t len, int *n,
const upb_pbdecodermethod *decoder_m =
upb_pbdecodermethod_new(&opts, &decoder_m);
- upb_pbdecoder decoder;
- upb_descreader reader;
+ upb_env env;
+ upb_env_init(&env);
+ upb_env_reporterrorsto(&env, status);
- upb_pbdecoder_init(&decoder, decoder_m, status);
- upb_descreader_init(&reader, reader_h, status);
- upb_pbdecoder_resetoutput(&decoder, upb_descreader_input(&reader));
+ upb_descreader *reader = upb_descreader_create(&env, reader_h);
+ upb_pbdecoder *decoder =
+ upb_pbdecoder_create(&env, decoder_m, upb_descreader_input(reader));
// Push input data.
- bool ok = upb_bufsrc_putbuf(str, len, upb_pbdecoder_input(&decoder));
+ bool ok = upb_bufsrc_putbuf(str, len, upb_pbdecoder_input(decoder));
upb_def **ret = NULL;
if (!ok) goto cleanup;
- upb_def **defs = upb_descreader_getdefs(&reader, owner, n);
+ upb_def **defs = upb_descreader_getdefs(reader, owner, n);
ret = malloc(sizeof(upb_def*) * (*n));
memcpy(ret, defs, sizeof(upb_def*) * (*n));
cleanup:
- upb_pbdecoder_uninit(&decoder);
- upb_descreader_uninit(&reader);
+ upb_env_uninit(&env);
upb_handlers_unref(reader_h, &reader_h);
upb_pbdecodermethod_unref(decoder_m, &decoder_m);
return ret;
@@ -8584,6 +9053,14 @@ bool upb_load_descriptor_file_into_symtab(upb_symtab *symtab, const char *fname,
#include <string.h>
+struct upb_textprinter {
+ upb_sink input_;
+ upb_bytessink *output_;
+ int indent_depth_;
+ bool single_line_;
+ void *subc;
+};
+
#define CHECK(x) if ((x) < 0) goto err;
static const char *shortname(const char *longname) {
@@ -8801,24 +9278,6 @@ err:
return false;
}
-
-/* Public API *****************************************************************/
-
-void upb_textprinter_init(upb_textprinter *p, const upb_handlers *h) {
- p->single_line_ = false;
- p->indent_depth_ = 0;
- upb_sink_reset(&p->input_, h, p);
-}
-
-void upb_textprinter_uninit(upb_textprinter *p) {
- UPB_UNUSED(p);
-}
-
-void upb_textprinter_reset(upb_textprinter *p, bool single_line) {
- p->single_line_ = single_line;
- p->indent_depth_ = 0;
-}
-
static void onmreg(const void *c, upb_handlers *h) {
UPB_UNUSED(c);
const upb_msgdef *m = upb_handlers_msgdef(h);
@@ -8878,6 +9337,26 @@ static void onmreg(const void *c, upb_handlers *h) {
}
}
+static void textprinter_reset(upb_textprinter *p, bool single_line) {
+ p->single_line_ = single_line;
+ p->indent_depth_ = 0;
+}
+
+
+/* Public API *****************************************************************/
+
+upb_textprinter *upb_textprinter_create(upb_env *env, const upb_handlers *h,
+ upb_bytessink *output) {
+ upb_textprinter *p = upb_env_malloc(env, sizeof(upb_textprinter));
+ if (!p) return NULL;
+
+ p->output_ = output;
+ upb_sink_reset(&p->input_, h, p);
+ textprinter_reset(p, false);
+
+ return p;
+}
+
const upb_handlers *upb_textprinter_newhandlers(const upb_msgdef *m,
const void *owner) {
return upb_handlers_newfrozen(m, owner, &onmreg, NULL);
@@ -8885,11 +9364,6 @@ const upb_handlers *upb_textprinter_newhandlers(const upb_msgdef *m,
upb_sink *upb_textprinter_input(upb_textprinter *p) { return &p->input_; }
-bool upb_textprinter_resetoutput(upb_textprinter *p, upb_bytessink *output) {
- p->output_ = output;
- return true;
-}
-
void upb_textprinter_setsingleline(upb_textprinter *p, bool single_line) {
p->single_line_ = single_line;
}
@@ -9052,6 +9526,71 @@ upb_decoderet upb_vdecode_max8_wright(upb_decoderet r) {
#include <errno.h>
+#define UPB_JSON_MAX_DEPTH 64
+
+typedef struct {
+ upb_sink sink;
+
+ // The current message in which we're parsing, and the field whose value we're
+ // expecting next.
+ const upb_msgdef *m;
+ const upb_fielddef *f;
+
+ // We are in a repeated-field context, ready to emit mapentries as
+ // submessages. This flag alters the start-of-object (open-brace) behavior to
+ // begin a sequence of mapentry messages rather than a single submessage.
+ bool is_map;
+
+ // We are in a map-entry message context. This flag is set when parsing the
+ // value field of a single map entry and indicates to all value-field parsers
+ // (subobjects, strings, numbers, and bools) that the map-entry submessage
+ // should end as soon as the value is parsed.
+ bool is_mapentry;
+
+ // If |is_map| or |is_mapentry| is true, |mapfield| refers to the parent
+ // message's map field that we're currently parsing. This differs from |f|
+ // because |f| is the field in the *current* message (i.e., the map-entry
+ // message itself), not the parent's field that leads to this map.
+ const upb_fielddef *mapfield;
+} upb_jsonparser_frame;
+
+struct upb_json_parser {
+ upb_env *env;
+ upb_byteshandler input_handler_;
+ upb_bytessink input_;
+
+ // Stack to track the JSON scopes we are in.
+ upb_jsonparser_frame stack[UPB_JSON_MAX_DEPTH];
+ upb_jsonparser_frame *top;
+ upb_jsonparser_frame *limit;
+
+ upb_status *status;
+
+ // Ragel's internal parsing stack for the parsing state machine.
+ int current_state;
+ int parser_stack[UPB_JSON_MAX_DEPTH];
+ int parser_top;
+
+ // The handle for the current buffer.
+ const upb_bufhandle *handle;
+
+ // Accumulate buffer. See details in parser.rl.
+ const char *accumulated;
+ size_t accumulated_len;
+ char *accumulate_buf;
+ size_t accumulate_buf_size;
+
+ // Multi-part text data. See details in parser.rl.
+ int multipart_state;
+ upb_selector_t string_selector;
+
+ // Input capture. See details in parser.rl.
+ const char *capture;
+
+ // Intermediate result of parsing a unicode escape sequence.
+ uint32_t digit;
+};
+
#define PARSER_CHECK_RETURN(x) if (!(x)) return false
// Used to signal that a capture has been suspended.
@@ -9254,12 +9793,13 @@ static void accumulate_clear(upb_json_parser *p) {
// Used internally by accumulate_append().
static bool accumulate_realloc(upb_json_parser *p, size_t need) {
- size_t new_size = UPB_MAX(p->accumulate_buf_size, 128);
+ size_t old_size = p->accumulate_buf_size;
+ size_t new_size = UPB_MAX(old_size, 128);
while (new_size < need) {
new_size = saturating_multiply(new_size, 2);
}
- void *mem = realloc(p->accumulate_buf, new_size);
+ void *mem = upb_env_realloc(p->env, p->accumulate_buf, old_size, new_size);
if (!mem) {
upb_status_seterrmsg(p->status, "Out of memory allocating buffer.");
return false;
@@ -10008,11 +10548,11 @@ static void end_object(upb_json_parser *p) {
// final state once, when the closing '"' is seen.
-#line 1085 "upb/json/parser.rl"
+#line 1151 "upb/json/parser.rl"
-#line 997 "upb/json/parser.c"
+#line 1063 "upb/json/parser.c"
static const char _json_actions[] = {
0, 1, 0, 1, 2, 1, 3, 1,
5, 1, 6, 1, 7, 1, 8, 1,
@@ -10154,8 +10694,6 @@ static const char _json_trans_actions[] = {
};
static const int json_start = 1;
-static const int json_first_final = 56;
-static const int json_error = 0;
static const int json_en_number_machine = 10;
static const int json_en_string_machine = 19;
@@ -10163,7 +10701,7 @@ static const int json_en_value_machine = 27;
static const int json_en_main = 1;
-#line 1088 "upb/json/parser.rl"
+#line 1154 "upb/json/parser.rl"
size_t parse(void *closure, const void *hd, const char *buf, size_t size,
const upb_bufhandle *handle) {
@@ -10183,7 +10721,7 @@ size_t parse(void *closure, const void *hd, const char *buf, size_t size,
capture_resume(parser, buf);
-#line 1168 "upb/json/parser.c"
+#line 1232 "upb/json/parser.c"
{
int _klen;
unsigned int _trans;
@@ -10258,118 +10796,118 @@ _match:
switch ( *_acts++ )
{
case 0:
-#line 1000 "upb/json/parser.rl"
+#line 1066 "upb/json/parser.rl"
{ p--; {cs = stack[--top]; goto _again;} }
break;
case 1:
-#line 1001 "upb/json/parser.rl"
+#line 1067 "upb/json/parser.rl"
{ p--; {stack[top++] = cs; cs = 10; goto _again;} }
break;
case 2:
-#line 1005 "upb/json/parser.rl"
+#line 1071 "upb/json/parser.rl"
{ start_text(parser, p); }
break;
case 3:
-#line 1006 "upb/json/parser.rl"
+#line 1072 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(end_text(parser, p)); }
break;
case 4:
-#line 1012 "upb/json/parser.rl"
+#line 1078 "upb/json/parser.rl"
{ start_hex(parser); }
break;
case 5:
-#line 1013 "upb/json/parser.rl"
+#line 1079 "upb/json/parser.rl"
{ hexdigit(parser, p); }
break;
case 6:
-#line 1014 "upb/json/parser.rl"
+#line 1080 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(end_hex(parser)); }
break;
case 7:
-#line 1020 "upb/json/parser.rl"
+#line 1086 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(escape(parser, p)); }
break;
case 8:
-#line 1026 "upb/json/parser.rl"
+#line 1092 "upb/json/parser.rl"
{ p--; {cs = stack[--top]; goto _again;} }
break;
case 9:
-#line 1029 "upb/json/parser.rl"
+#line 1095 "upb/json/parser.rl"
{ {stack[top++] = cs; cs = 19; goto _again;} }
break;
case 10:
-#line 1031 "upb/json/parser.rl"
+#line 1097 "upb/json/parser.rl"
{ p--; {stack[top++] = cs; cs = 27; goto _again;} }
break;
case 11:
-#line 1036 "upb/json/parser.rl"
+#line 1102 "upb/json/parser.rl"
{ start_member(parser); }
break;
case 12:
-#line 1037 "upb/json/parser.rl"
+#line 1103 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(end_membername(parser)); }
break;
case 13:
-#line 1040 "upb/json/parser.rl"
+#line 1106 "upb/json/parser.rl"
{ end_member(parser); }
break;
case 14:
-#line 1046 "upb/json/parser.rl"
+#line 1112 "upb/json/parser.rl"
{ start_object(parser); }
break;
case 15:
-#line 1049 "upb/json/parser.rl"
+#line 1115 "upb/json/parser.rl"
{ end_object(parser); }
break;
case 16:
-#line 1055 "upb/json/parser.rl"
+#line 1121 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(start_array(parser)); }
break;
case 17:
-#line 1059 "upb/json/parser.rl"
+#line 1125 "upb/json/parser.rl"
{ end_array(parser); }
break;
case 18:
-#line 1064 "upb/json/parser.rl"
+#line 1130 "upb/json/parser.rl"
{ start_number(parser, p); }
break;
case 19:
-#line 1065 "upb/json/parser.rl"
+#line 1131 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(end_number(parser, p)); }
break;
case 20:
-#line 1067 "upb/json/parser.rl"
+#line 1133 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(start_stringval(parser)); }
break;
case 21:
-#line 1068 "upb/json/parser.rl"
+#line 1134 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(end_stringval(parser)); }
break;
case 22:
-#line 1070 "upb/json/parser.rl"
+#line 1136 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(parser_putbool(parser, true)); }
break;
case 23:
-#line 1072 "upb/json/parser.rl"
+#line 1138 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(parser_putbool(parser, false)); }
break;
case 24:
-#line 1074 "upb/json/parser.rl"
+#line 1140 "upb/json/parser.rl"
{ /* null value */ }
break;
case 25:
-#line 1076 "upb/json/parser.rl"
+#line 1142 "upb/json/parser.rl"
{ CHECK_RETURN_TOP(start_subobject(parser)); }
break;
case 26:
-#line 1077 "upb/json/parser.rl"
+#line 1143 "upb/json/parser.rl"
{ end_subobject(parser); }
break;
case 27:
-#line 1082 "upb/json/parser.rl"
+#line 1148 "upb/json/parser.rl"
{ p--; {cs = stack[--top]; goto _again;} }
break;
-#line 1354 "upb/json/parser.c"
+#line 1418 "upb/json/parser.c"
}
}
@@ -10382,7 +10920,7 @@ _again:
_out: {}
}
-#line 1107 "upb/json/parser.rl"
+#line 1173 "upb/json/parser.rl"
if (p != pe) {
upb_status_seterrf(parser->status, "Parse error at %s\n", p);
@@ -10401,29 +10939,17 @@ error:
bool end(void *closure, const void *hd) {
UPB_UNUSED(closure);
UPB_UNUSED(hd);
- return true;
-}
-
-/* Public API *****************************************************************/
-
-void upb_json_parser_init(upb_json_parser *p, upb_status *status) {
- p->limit = p->stack + UPB_JSON_MAX_DEPTH;
- p->accumulate_buf = NULL;
- p->accumulate_buf_size = 0;
- upb_byteshandler_init(&p->input_handler_);
- upb_byteshandler_setstring(&p->input_handler_, parse, NULL);
- upb_byteshandler_setendstr(&p->input_handler_, end, NULL);
- upb_bytessink_reset(&p->input_, &p->input_handler_, p);
- p->status = status;
-}
-
-void upb_json_parser_uninit(upb_json_parser *p) {
- upb_byteshandler_uninit(&p->input_handler_);
- free(p->accumulate_buf);
+ // Prevent compile warning on unused static constants.
+ UPB_UNUSED(json_start);
+ UPB_UNUSED(json_en_number_machine);
+ UPB_UNUSED(json_en_string_machine);
+ UPB_UNUSED(json_en_value_machine);
+ UPB_UNUSED(json_en_main);
+ return true;
}
-void upb_json_parser_reset(upb_json_parser *p) {
+static void json_parser_reset(upb_json_parser *p) {
p->top = p->stack;
p->top->f = NULL;
p->top->is_map = false;
@@ -10433,25 +10959,48 @@ void upb_json_parser_reset(upb_json_parser *p) {
int top;
// Emit Ragel initialization of the parser.
-#line 1418 "upb/json/parser.c"
+#line 1470 "upb/json/parser.c"
{
cs = json_start;
top = 0;
}
-#line 1157 "upb/json/parser.rl"
+#line 1211 "upb/json/parser.rl"
p->current_state = cs;
p->parser_top = top;
accumulate_clear(p);
p->multipart_state = MULTIPART_INACTIVE;
p->capture = NULL;
+ p->accumulated = NULL;
}
-void upb_json_parser_resetoutput(upb_json_parser *p, upb_sink *sink) {
- upb_json_parser_reset(p);
- upb_sink_reset(&p->top->sink, sink->handlers, sink->closure);
- p->top->m = upb_handlers_msgdef(sink->handlers);
- p->accumulated = NULL;
+
+/* Public API *****************************************************************/
+
+upb_json_parser *upb_json_parser_create(upb_env *env, upb_sink *output) {
+#ifndef NDEBUG
+ const size_t size_before = upb_env_bytesallocated(env);
+#endif
+ upb_json_parser *p = upb_env_malloc(env, sizeof(upb_json_parser));
+ if (!p) return false;
+
+ p->env = env;
+ p->limit = p->stack + UPB_JSON_MAX_DEPTH;
+ p->accumulate_buf = NULL;
+ p->accumulate_buf_size = 0;
+ upb_byteshandler_init(&p->input_handler_);
+ upb_byteshandler_setstring(&p->input_handler_, parse, NULL);
+ upb_byteshandler_setendstr(&p->input_handler_, end, NULL);
+ upb_bytessink_reset(&p->input_, &p->input_handler_, p);
+
+ json_parser_reset(p);
+ upb_sink_reset(&p->top->sink, output->handlers, output->closure);
+ p->top->m = upb_handlers_msgdef(output->handlers);
+
+ // If this fails, uncomment and increase the value in parser.h.
+ // fprintf(stderr, "%zd\n", upb_env_bytesallocated(env) - size_before);
+ assert(upb_env_bytesallocated(env) - size_before <= UPB_JSON_PARSER_SIZE);
+ return p;
}
upb_bytessink *upb_json_parser_input(upb_json_parser *p) {
@@ -10473,6 +11022,27 @@ upb_bytessink *upb_json_parser_input(upb_json_parser *p) {
#include <string.h>
#include <stdint.h>
+struct upb_json_printer {
+ upb_sink input_;
+ // BytesSink closure.
+ void *subc_;
+ upb_bytessink *output_;
+
+ // We track the depth so that we know when to emit startstr/endstr on the
+ // output.
+ int depth_;
+
+ // Have we emitted the first element? This state is necessary to emit commas
+ // without leaving a trailing comma in arrays/maps. We keep this state per
+ // frame depth.
+ //
+ // Why max_depth * 2? UPB_MAX_HANDLER_DEPTH counts depth as nested messages.
+ // We count frames (contexts in which we separate elements by commas) as both
+ // repeated fields and messages (maps), and the worst case is a
+ // message->repeated field->submessage->repeated field->... nesting.
+ bool first_elem_[UPB_MAX_HANDLER_DEPTH * 2];
+};
+
// StringPiece; a pointer plus a length.
typedef struct {
const char *ptr;
@@ -10620,7 +11190,7 @@ static bool putkey(void *closure, const void *handler_data) {
return true;
}
-#define CHKFMT(val) if ((val) == -1) return false;
+#define CHKFMT(val) if ((val) == (size_t)-1) return false;
#define CHK(val) if (!(val)) return false;
#define TYPE_HANDLERS(type, fmt_func) \
@@ -11189,25 +11759,29 @@ void printer_sethandlers(const void *closure, upb_handlers *h) {
#undef TYPE
}
-/* Public API *****************************************************************/
-
-void upb_json_printer_init(upb_json_printer *p, const upb_handlers *h) {
- p->output_ = NULL;
+static void json_printer_reset(upb_json_printer *p) {
p->depth_ = 0;
- upb_sink_reset(&p->input_, h, p);
}
-void upb_json_printer_uninit(upb_json_printer *p) {
- UPB_UNUSED(p);
-}
-void upb_json_printer_reset(upb_json_printer *p) {
- p->depth_ = 0;
-}
+/* Public API *****************************************************************/
+
+upb_json_printer *upb_json_printer_create(upb_env *e, const upb_handlers *h,
+ upb_bytessink *output) {
+#ifndef NDEBUG
+ size_t size_before = upb_env_bytesallocated(e);
+#endif
+
+ upb_json_printer *p = upb_env_malloc(e, sizeof(upb_json_printer));
+ if (!p) return NULL;
-void upb_json_printer_resetoutput(upb_json_printer *p, upb_bytessink *output) {
- upb_json_printer_reset(p);
p->output_ = output;
+ json_printer_reset(p);
+ upb_sink_reset(&p->input_, h, p);
+
+ // If this fails, increase the value in printer.h.
+ assert(upb_env_bytesallocated(e) - size_before <= UPB_JSON_PRINTER_SIZE);
+ return p;
}
upb_sink *upb_json_printer_input(upb_json_printer *p) {
diff --git a/ruby/ext/google/protobuf_c/upb.h b/ruby/ext/google/protobuf_c/upb.h
index 8f6d3643..97df943a 100644
--- a/ruby/ext/google/protobuf_c/upb.h
+++ b/ruby/ext/google/protobuf_c/upb.h
@@ -99,6 +99,15 @@
#define UPB_INLINE static inline
#endif
+// For use in C/C++ source files (not headers), forces inlining within the file.
+#ifdef __GNUC__
+#define UPB_FORCEINLINE inline __attribute__((always_inline))
+#define UPB_NOINLINE __attribute__((noinline))
+#else
+#define UPB_FORCEINLINE
+#define UPB_NOINLINE
+#endif
+
#if __STDC_VERSION__ >= 199901L
#define UPB_C99
#endif
@@ -4805,10 +4814,8 @@ UPB_DEFINE_STRUCT0(upb_byteshandler,
));
void upb_byteshandler_init(upb_byteshandler *h);
-void upb_byteshandler_uninit(upb_byteshandler *h);
// Caller must ensure that "d" outlives the handlers.
-// TODO(haberman): support handlerfree function for the data.
// TODO(haberman): should this have a "freeze" operation? It's not necessary
// for memory management, but could be useful to force immutability and provide
// a convenient moment to verify that all registration succeeded.
@@ -4983,12 +4990,17 @@ template <class T> struct disable_if_same<T, T> {};
template <class T> void DeletePointer(void *p) { delete static_cast<T>(p); }
template <class T1, class T2>
-struct FirstUnlessVoid {
+struct FirstUnlessVoidOrBool {
typedef T1 value;
};
template <class T2>
-struct FirstUnlessVoid<void, T2> {
+struct FirstUnlessVoidOrBool<void, T2> {
+ typedef T2 value;
+};
+
+template <class T2>
+struct FirstUnlessVoidOrBool<bool, T2> {
typedef T2 value;
};
@@ -5370,10 +5382,14 @@ inline MethodSig4<R, C, P1, P2, P3, P4> MatchFunc(R (C::*f)(P1, P2, P3, P4)) {
//
// 1. If the function returns void, make it return the expected type and with
// a value that always indicates success.
-// 2. If the function is expected to return void* but doesn't, wrap it so it
-// does (either by returning the closure param if the wrapped function
-// returns void or by casting a different pointer type to void* for
-// return).
+// 2. If the function returns bool, make it return the expected type with a
+// value that indicates success or failure.
+//
+// The "expected type" for return is:
+// 1. void* for start handlers. If the closure parameter has a different type
+// we will cast it to void* for the return in the success case.
+// 2. size_t for string buffer handlers.
+// 3. bool for everything else.
// Template parameters are FuncN type and desired return type.
template <class F, class R, class Enable = void>
@@ -5762,10 +5778,13 @@ inline Handler<T>::Handler(F func)
attr_.SetClosureType(UniquePtrForType<typename F::FuncInfo::Closure>());
// We use the closure type (from the first parameter) if the return type is
- // void. This is all nonsense for non START* handlers, but it doesn't matter
- // because in that case the value will be ignored.
- typedef typename FirstUnlessVoid<typename F::FuncInfo::Return,
- typename F::FuncInfo::Closure>::value
+ // void or bool, since these are the two cases we wrap to return the closure's
+ // type anyway.
+ //
+ // This is all nonsense for non START* handlers, but it doesn't matter because
+ // in that case the value will be ignored.
+ typedef typename FirstUnlessVoidOrBool<typename F::FuncInfo::Return,
+ typename F::FuncInfo::Closure>::value
EffectiveReturn;
attr_.SetReturnClosureType(UniquePtrForType<EffectiveReturn>());
}
@@ -5960,9 +5979,7 @@ inline BytesHandler::BytesHandler() {
upb_byteshandler_init(this);
}
-inline BytesHandler::~BytesHandler() {
- upb_byteshandler_uninit(this);
-}
+inline BytesHandler::~BytesHandler() {}
} // namespace upb
@@ -5986,6 +6003,261 @@ inline BytesHandler::~BytesHandler() {
/*
* upb - a minimalist implementation of protocol buffers.
*
+ * Copyright (c) 2014 Google Inc. See LICENSE for details.
+ * Author: Josh Haberman <jhaberman@gmail.com>
+ *
+ * A upb::Environment provides a means for injecting malloc and an
+ * error-reporting callback into encoders/decoders. This allows them to be
+ * independent of nearly all assumptions about their actual environment.
+ *
+ * It is also a container for allocating the encoders/decoders themselves that
+ * insulates clients from knowing their actual size. This provides ABI
+ * compatibility even if the size of the objects change. And this allows the
+ * structure definitions to be in the .c files instead of the .h files, making
+ * the .h files smaller and more readable.
+ */
+
+
+#ifndef UPB_ENV_H_
+#define UPB_ENV_H_
+
+#ifdef __cplusplus
+namespace upb {
+class Environment;
+class SeededAllocator;
+}
+#endif
+
+UPB_DECLARE_TYPE(upb::Environment, upb_env);
+UPB_DECLARE_TYPE(upb::SeededAllocator, upb_seededalloc);
+
+typedef void *upb_alloc_func(void *ud, void *ptr, size_t oldsize, size_t size);
+typedef void upb_cleanup_func(void *ud);
+typedef bool upb_error_func(void *ud, const upb_status *status);
+
+// An environment is *not* thread-safe.
+UPB_DEFINE_CLASS0(upb::Environment,
+ public:
+ Environment();
+ ~Environment();
+
+ // Set a custom memory allocation function for the environment. May ONLY
+ // be called before any calls to Malloc()/Realloc()/AddCleanup() below.
+ // If this is not called, the system realloc() function will be used.
+ // The given user pointer "ud" will be passed to the allocation function.
+ //
+ // The allocation function will not receive corresponding "free" calls. it
+ // must ensure that the memory is valid for the lifetime of the Environment,
+ // but it may be reclaimed any time thereafter. The likely usage is that
+ // "ud" points to a stateful allocator, and that the allocator frees all
+ // memory, arena-style, when it is destroyed. In this case the allocator must
+ // outlive the Environment. Another possibility is that the allocation
+ // function returns GC-able memory that is guaranteed to be GC-rooted for the
+ // life of the Environment.
+ void SetAllocationFunction(upb_alloc_func* alloc, void* ud);
+
+ template<class T>
+ void SetAllocator(T* allocator) {
+ SetAllocationFunction(allocator->GetAllocationFunction(), allocator);
+ }
+
+ // Set a custom error reporting function.
+ void SetErrorFunction(upb_error_func* func, void* ud);
+
+ // Set the error reporting function to simply copy the status to the given
+ // status and abort.
+ void ReportErrorsTo(Status* status);
+
+ // Returns true if all allocations and AddCleanup() calls have succeeded,
+ // and no errors were reported with ReportError() (except ones that recovered
+ // successfully).
+ bool ok() const;
+
+ //////////////////////////////////////////////////////////////////////////////
+ // Functions for use by encoders/decoders.
+
+ // Reports an error to this environment's callback, returning true if
+ // the caller should try to recover.
+ bool ReportError(const Status* status);
+
+ // Allocate memory. Uses the environment's allocation function.
+ //
+ // There is no need to free(). All memory will be freed automatically, but is
+ // guaranteed to outlive the Environment.
+ void* Malloc(size_t size);
+
+ // Reallocate memory. Preserves "oldsize" bytes from the existing buffer
+ // Requires: oldsize <= existing_size.
+ //
+ // TODO(haberman): should we also enforce that oldsize <= size?
+ void* Realloc(void* ptr, size_t oldsize, size_t size);
+
+ // Add a cleanup function to run when the environment is destroyed.
+ // Returns false on out-of-memory.
+ //
+ // The first call to AddCleanup() after SetAllocationFunction() is guaranteed
+ // to return true -- this makes it possible to robustly set a cleanup handler
+ // for a custom allocation function.
+ bool AddCleanup(upb_cleanup_func* func, void* ud);
+
+ // Total number of bytes that have been allocated. It is undefined what
+ // Realloc() does to this counter.
+ size_t BytesAllocated() const;
+
+ private:
+ UPB_DISALLOW_COPY_AND_ASSIGN(Environment);
+,
+UPB_DEFINE_STRUCT0(upb_env,
+ bool ok_;
+ size_t bytes_allocated;
+
+ // Alloc function.
+ upb_alloc_func *alloc;
+ void *alloc_ud;
+
+ // Error-reporting function.
+ upb_error_func *err;
+ void *err_ud;
+
+ // Userdata for default alloc func.
+ void *default_alloc_ud;
+
+ // Cleanup entries. Pointer to a cleanup_ent, defined in env.c
+ void *cleanup_head;
+
+ // For future expansion, since the size of this struct is exposed to users.
+ void *future1;
+ void *future2;
+));
+
+UPB_BEGIN_EXTERN_C
+
+void upb_env_init(upb_env *e);
+void upb_env_uninit(upb_env *e);
+void upb_env_setallocfunc(upb_env *e, upb_alloc_func *func, void *ud);
+void upb_env_seterrorfunc(upb_env *e, upb_error_func *func, void *ud);
+void upb_env_reporterrorsto(upb_env *e, upb_status *status);
+bool upb_env_ok(const upb_env *e);
+bool upb_env_reporterror(upb_env *e, const upb_status *status);
+void *upb_env_malloc(upb_env *e, size_t size);
+void *upb_env_realloc(upb_env *e, void *ptr, size_t oldsize, size_t size);
+bool upb_env_addcleanup(upb_env *e, upb_cleanup_func *func, void *ud);
+size_t upb_env_bytesallocated(const upb_env *e);
+
+UPB_END_EXTERN_C
+
+// An allocator that allocates from an initial memory region (likely the stack)
+// before falling back to another allocator.
+UPB_DEFINE_CLASS0(upb::SeededAllocator,
+ public:
+ SeededAllocator(void *mem, size_t len);
+ ~SeededAllocator();
+
+ // Set a custom fallback memory allocation function for the allocator, to use
+ // once the initial region runs out.
+ //
+ // May ONLY be called before GetAllocationFunction(). If this is not
+ // called, the system realloc() will be the fallback allocator.
+ void SetFallbackAllocator(upb_alloc_func *alloc, void *ud);
+
+ // Gets the allocation function for this allocator.
+ upb_alloc_func* GetAllocationFunction();
+
+ private:
+ UPB_DISALLOW_COPY_AND_ASSIGN(SeededAllocator);
+,
+UPB_DEFINE_STRUCT0(upb_seededalloc,
+ // Fallback alloc function.
+ upb_alloc_func *alloc;
+ upb_cleanup_func *alloc_cleanup;
+ void *alloc_ud;
+ bool need_cleanup;
+ bool returned_allocfunc;
+
+ // Userdata for default alloc func.
+ void *default_alloc_ud;
+
+ // Pointers for the initial memory region.
+ char *mem_base;
+ char *mem_ptr;
+ char *mem_limit;
+
+ // For future expansion, since the size of this struct is exposed to users.
+ void *future1;
+ void *future2;
+));
+
+UPB_BEGIN_EXTERN_C
+
+void upb_seededalloc_init(upb_seededalloc *a, void *mem, size_t len);
+void upb_seededalloc_uninit(upb_seededalloc *a);
+void upb_seededalloc_setfallbackalloc(upb_seededalloc *a, upb_alloc_func *func,
+ void *ud);
+upb_alloc_func *upb_seededalloc_getallocfunc(upb_seededalloc *a);
+
+UPB_END_EXTERN_C
+
+#ifdef __cplusplus
+
+namespace upb {
+
+inline Environment::Environment() {
+ upb_env_init(this);
+}
+inline Environment::~Environment() {
+ upb_env_uninit(this);
+}
+inline void Environment::SetAllocationFunction(upb_alloc_func *alloc,
+ void *ud) {
+ upb_env_setallocfunc(this, alloc, ud);
+}
+inline void Environment::SetErrorFunction(upb_error_func *func, void *ud) {
+ upb_env_seterrorfunc(this, func, ud);
+}
+inline void Environment::ReportErrorsTo(Status* status) {
+ upb_env_reporterrorsto(this, status);
+}
+inline bool Environment::ok() const {
+ return upb_env_ok(this);
+}
+inline bool Environment::ReportError(const Status* status) {
+ return upb_env_reporterror(this, status);
+}
+inline void *Environment::Malloc(size_t size) {
+ return upb_env_malloc(this, size);
+}
+inline void *Environment::Realloc(void *ptr, size_t oldsize, size_t size) {
+ return upb_env_realloc(this, ptr, oldsize, size);
+}
+inline bool Environment::AddCleanup(upb_cleanup_func *func, void *ud) {
+ return upb_env_addcleanup(this, func, ud);
+}
+inline size_t Environment::BytesAllocated() const {
+ return upb_env_bytesallocated(this);
+}
+
+inline SeededAllocator::SeededAllocator(void *mem, size_t len) {
+ upb_seededalloc_init(this, mem, len);
+}
+inline SeededAllocator::~SeededAllocator() {
+ upb_seededalloc_uninit(this);
+}
+inline void SeededAllocator::SetFallbackAllocator(upb_alloc_func *alloc,
+ void *ud) {
+ upb_seededalloc_setfallbackalloc(this, alloc, ud);
+}
+inline upb_alloc_func *SeededAllocator::GetAllocationFunction() {
+ return upb_seededalloc_getallocfunc(this);
+}
+
+} // namespace upb
+
+#endif // __cplusplus
+
+#endif // UPB_ENV_H_
+/*
+ * upb - a minimalist implementation of protocol buffers.
+ *
* Copyright (c) 2010-2012 Google Inc. See LICENSE for details.
* Author: Josh Haberman <jhaberman@gmail.com>
*
@@ -6018,27 +6290,6 @@ UPB_DECLARE_TYPE(upb::BufferSource, upb_bufsrc);
UPB_DECLARE_TYPE(upb::BytesSink, upb_bytessink);
UPB_DECLARE_TYPE(upb::Sink, upb_sink);
-// Internal-only struct for the sink.
-struct upb_sinkframe {
- UPB_PRIVATE_FOR_CPP
- const upb_handlers *h;
- void *closure;
-
- // For any frames besides the top, this is the END* callback that will run
- // when the subframe is popped (for example, for a "sequence" frame the frame
- // above it will be a UPB_HANDLER_ENDSEQ handler). But this is only
- // necessary for assertion checking inside upb_sink and can be omitted if the
- // sink has only one caller.
- //
- // TODO(haberman): have a mechanism for ensuring that a sink only has one
- // caller.
- upb_selector_t selector;
-};
-
-// The maximum nesting depth that upb::Sink will allow. Matches proto2's limit.
-// TODO: make this a runtime-settable property of Sink.
-#define UPB_SINK_MAX_NESTING 64
-
// A upb::Sink is an object that binds a upb::Handlers object to some runtime
// state. It represents an endpoint to which data can be sent.
//
@@ -6598,45 +6849,11 @@ class Reader;
UPB_DECLARE_TYPE(upb::descriptor::Reader, upb_descreader);
-// Internal-only structs used by Reader.
-
-// upb_deflist is an internal-only dynamic array for storing a growing list of
-// upb_defs.
-typedef struct {
- UPB_PRIVATE_FOR_CPP
- upb_def **defs;
- size_t len;
- size_t size;
- bool owned;
-} upb_deflist;
-
-// We keep a stack of all the messages scopes we are currently in, as well as
-// the top-level file scope. This is necessary to correctly qualify the
-// definitions that are contained inside. "name" tracks the name of the
-// message or package (a bare name -- not qualified by any enclosing scopes).
-typedef struct {
- UPB_PRIVATE_FOR_CPP
- char *name;
- // Index of the first def that is under this scope. For msgdefs, the
- // msgdef itself is at start-1.
- int start;
-} upb_descreader_frame;
-
-// The maximum number of nested declarations that are allowed, ie.
-// message Foo {
-// message Bar {
-// message Baz {
-// }
-// }
-// }
-//
-// This is a resource limit that affects how big our runtime stack can grow.
-// TODO: make this a runtime-settable property of the Reader instance.
-#define UPB_MAX_MESSAGE_NESTING 64
+#ifdef __cplusplus
// Class that receives descriptor data according to the descriptor.proto schema
// and use it to build upb::Defs corresponding to that schema.
-UPB_DEFINE_CLASS0(upb::descriptor::Reader,
+class upb::descriptor::Reader {
public:
// These handlers must have come from NewHandlers() and must outlive the
// Reader.
@@ -6646,11 +6863,7 @@ UPB_DEFINE_CLASS0(upb::descriptor::Reader,
// to build/memory-manage the handlers at runtime at all). Unfortunately this
// is a bit tricky to implement for Handlers, but necessary to simplify this
// interface.
- Reader(const Handlers* handlers, Status* status);
- ~Reader();
-
- // Resets the reader's state and discards any defs it may have built.
- void Reset();
+ static Reader* Create(Environment* env, const Handlers* handlers);
// The reader's input; this is where descriptor.proto data should be sent.
Sink* input();
@@ -6666,45 +6879,30 @@ UPB_DEFINE_CLASS0(upb::descriptor::Reader,
// Builds and returns handlers for the reader, owned by "owner."
static Handlers* NewHandlers(const void* owner);
-,
-UPB_DEFINE_STRUCT0(upb_descreader,
- upb_sink sink;
- upb_deflist defs;
- upb_descreader_frame stack[UPB_MAX_MESSAGE_NESTING];
- int stack_len;
-
- uint32_t number;
- char *name;
- bool saw_number;
- bool saw_name;
- char *default_string;
+ private:
+ UPB_DISALLOW_POD_OPS(Reader, upb::descriptor::Reader);
+};
- upb_fielddef *f;
-));
+#endif
-UPB_BEGIN_EXTERN_C // {
+UPB_BEGIN_EXTERN_C
// C API.
-void upb_descreader_init(upb_descreader *r, const upb_handlers *handlers,
- upb_status *status);
-void upb_descreader_uninit(upb_descreader *r);
-void upb_descreader_reset(upb_descreader *r);
+upb_descreader *upb_descreader_create(upb_env *e, const upb_handlers *h);
upb_sink *upb_descreader_input(upb_descreader *r);
upb_def **upb_descreader_getdefs(upb_descreader *r, void *owner, int *n);
const upb_handlers *upb_descreader_newhandlers(const void *owner);
-UPB_END_EXTERN_C // }
+UPB_END_EXTERN_C
#ifdef __cplusplus
// C++ implementation details. /////////////////////////////////////////////////
namespace upb {
namespace descriptor {
-inline Reader::Reader(const Handlers *h, Status *s) {
- upb_descreader_init(this, h, s);
+inline Reader* Reader::Create(Environment* e, const Handlers *h) {
+ return upb_descreader_create(e, h);
}
-inline Reader::~Reader() { upb_descreader_uninit(this); }
-inline void Reader::Reset() { upb_descreader_reset(this); }
inline Sink* Reader::input() { return upb_descreader_input(this); }
inline upb::Def** Reader::GetDefs(void* owner, int* n) {
return upb_descreader_getdefs(this, owner, n);
@@ -6764,44 +6962,6 @@ UPB_DECLARE_TYPE(upb::pb::Decoder, upb_pbdecoder);
UPB_DECLARE_TYPE(upb::pb::DecoderMethod, upb_pbdecodermethod);
UPB_DECLARE_TYPE(upb::pb::DecoderMethodOptions, upb_pbdecodermethodopts);
-// The maximum that any submessages can be nested. Matches proto2's limit.
-// This specifies the size of the decoder's statically-sized array and therefore
-// setting it high will cause the upb::pb::Decoder object to be larger.
-//
-// If necessary we can add a runtime-settable property to Decoder that allow
-// this to be larger than the compile-time setting, but this would add
-// complexity, particularly since we would have to decide how/if to give users
-// the ability to set a custom memory allocation function.
-#define UPB_DECODER_MAX_NESTING 64
-
-// Internal-only struct used by the decoder.
-typedef struct {
- UPB_PRIVATE_FOR_CPP
- // Space optimization note: we store two pointers here that the JIT
- // doesn't need at all; the upb_handlers* inside the sink and
- // the dispatch table pointer. We can optimze so that the JIT uses
- // smaller stack frames than the interpreter. The only thing we need
- // to guarantee is that the fallback routines can find end_ofs.
- upb_sink sink;
-
- // The absolute stream offset of the end-of-frame delimiter.
- // Non-delimited frames (groups and non-packed repeated fields) reuse the
- // delimiter of their parent, even though the frame may not end there.
- //
- // NOTE: the JIT stores a slightly different value here for non-top frames.
- // It stores the value relative to the end of the enclosed message. But the
- // top frame is still stored the same way, which is important for ensuring
- // that calls from the JIT into C work correctly.
- uint64_t end_ofs;
- const uint32_t *base;
-
- // 0 indicates a length-delimited field.
- // A positive number indicates a known group.
- // A negative number indicates an unknown group.
- int32_t groupnum;
- upb_inttable *dispatch; // Not used by the JIT.
-} upb_pbdecoder_frame;
-
// The parameters one uses to construct a DecoderMethod.
// TODO(haberman): move allowjit here? Seems more convenient for users.
UPB_DEFINE_CLASS0(upb::pb::DecoderMethodOptions,
@@ -6879,22 +7039,31 @@ UPB_DEFINE_STRUCT(upb_pbdecodermethod, upb_refcounted,
upb_inttable dispatch;
));
+// Preallocation hint: decoder won't allocate more bytes than this when first
+// constructed. This hint may be an overestimate for some build configurations.
+// But if the decoder library is upgraded without recompiling the application,
+// it may be an underestimate.
+#define UPB_PB_DECODER_SIZE 4400
+
+#ifdef __cplusplus
+
// A Decoder receives binary protobuf data on its input sink and pushes the
// decoded data to its output sink.
-UPB_DEFINE_CLASS0(upb::pb::Decoder,
+class upb::pb::Decoder {
public:
// Constructs a decoder instance for the given method, which must outlive this
// decoder. Any errors during parsing will be set on the given status, which
// must also outlive this decoder.
- Decoder(const DecoderMethod* method, Status* status);
- ~Decoder();
+ //
+ // The sink must match the given method.
+ static Decoder* Create(Environment* env, const DecoderMethod* method,
+ Sink* output);
// Returns the DecoderMethod this decoder is parsing from.
- // TODO(haberman): Do users need to be able to rebind this?
const DecoderMethod* method() const;
- // Resets the state of the decoder.
- void Reset();
+ // The sink on which this decoder receives input.
+ BytesSink* input();
// Returns number of bytes successfully parsed.
//
@@ -6905,76 +7074,25 @@ UPB_DEFINE_CLASS0(upb::pb::Decoder,
// callback.
uint64_t BytesParsed() const;
- // Resets the output sink of the Decoder.
- // The given sink must match method()->dest_handlers().
+ // Gets/sets the parsing nexting limit. If the total number of nested
+ // submessages and repeated fields hits this limit, parsing will fail. This
+ // is a resource limit that controls the amount of memory used by the parsing
+ // stack.
//
- // This must be called at least once before the decoder can be used. It may
- // only be called with the decoder is in a state where it was just created or
- // reset with pipeline.Reset(). The given sink must be from the same pipeline
- // as this decoder.
- bool ResetOutput(Sink* sink);
-
- // The sink on which this decoder receives input.
- BytesSink* input();
-
- private:
- UPB_DISALLOW_COPY_AND_ASSIGN(Decoder);
-,
-UPB_DEFINE_STRUCT0(upb_pbdecoder, UPB_QUOTE(
- // Our input sink.
- upb_bytessink input_;
-
- // The decoder method we are parsing with (owned).
- const upb_pbdecodermethod *method_;
-
- size_t call_len;
- const uint32_t *pc, *last;
-
- // Current input buffer and its stream offset.
- const char *buf, *ptr, *end, *checkpoint;
-
- // End of the delimited region, relative to ptr, or NULL if not in this buf.
- const char *delim_end;
-
- // End of the delimited region, relative to ptr, or end if not in this buf.
- const char *data_end;
-
- // Overall stream offset of "buf."
- uint64_t bufstart_ofs;
-
- // Buffer for residual bytes not parsed from the previous buffer.
- // The maximum number of residual bytes we require is 12; a five-byte
- // unknown tag plus an eight-byte value, less one because the value
- // is only a partial value.
- char residual[12];
- char *residual_end;
+ // Setting the limit will fail if the parser is currently suspended at a depth
+ // greater than this, or if memory allocation of the stack fails.
+ size_t max_nesting() const;
+ bool set_max_nesting(size_t max);
- // Stores the user buffer passed to our decode function.
- const char *buf_param;
- size_t size_param;
- const upb_bufhandle *handle;
-
-#ifdef UPB_USE_JIT_X64
- // Used momentarily by the generated code to store a value while a user
- // function is called.
- uint32_t tmp_len;
+ void Reset();
- const void *saved_rsp;
-#endif
+ static const size_t kSize = UPB_PB_DECODER_SIZE;
- upb_status *status;
+ private:
+ UPB_DISALLOW_POD_OPS(Decoder, upb::pb::Decoder);
+};
- // Our internal stack.
- upb_pbdecoder_frame *top, *limit;
- upb_pbdecoder_frame stack[UPB_DECODER_MAX_NESTING];
-#ifdef UPB_USE_JIT_X64
- // Each native stack frame needs two pointers, plus we need a few frames for
- // the enter/exit trampolines.
- const uint32_t *callstack[(UPB_DECODER_MAX_NESTING * 2) + 10];
-#else
- const uint32_t *callstack[UPB_DECODER_MAX_NESTING];
-#endif
-)));
+#endif // __cplusplus
// A class for caching protobuf processing code, whether bytecode for the
// interpreted decoder or machine code for the JIT.
@@ -7023,14 +7141,15 @@ UPB_DEFINE_STRUCT0(upb_pbcodecache,
UPB_BEGIN_EXTERN_C // {
-void upb_pbdecoder_init(upb_pbdecoder *d, const upb_pbdecodermethod *method,
- upb_status *status);
-void upb_pbdecoder_uninit(upb_pbdecoder *d);
-void upb_pbdecoder_reset(upb_pbdecoder *d);
+upb_pbdecoder *upb_pbdecoder_create(upb_env *e,
+ const upb_pbdecodermethod *method,
+ upb_sink *output);
const upb_pbdecodermethod *upb_pbdecoder_method(const upb_pbdecoder *d);
-bool upb_pbdecoder_resetoutput(upb_pbdecoder *d, upb_sink *sink);
upb_bytessink *upb_pbdecoder_input(upb_pbdecoder *d);
uint64_t upb_pbdecoder_bytesparsed(const upb_pbdecoder *d);
+size_t upb_pbdecoder_maxnesting(const upb_pbdecoder *d);
+bool upb_pbdecoder_setmaxnesting(upb_pbdecoder *d, size_t max);
+void upb_pbdecoder_reset(upb_pbdecoder *d);
void upb_pbdecodermethodopts_init(upb_pbdecodermethodopts *opts,
const upb_handlers *h);
@@ -7065,27 +7184,27 @@ namespace upb {
namespace pb {
-inline Decoder::Decoder(const DecoderMethod* m, Status* s) {
- upb_pbdecoder_init(this, m, s);
-}
-inline Decoder::~Decoder() {
- upb_pbdecoder_uninit(this);
+// static
+inline Decoder* Decoder::Create(Environment* env, const DecoderMethod* m,
+ Sink* sink) {
+ return upb_pbdecoder_create(env, m, sink);
}
inline const DecoderMethod* Decoder::method() const {
return upb_pbdecoder_method(this);
}
-inline void Decoder::Reset() {
- upb_pbdecoder_reset(this);
+inline BytesSink* Decoder::input() {
+ return upb_pbdecoder_input(this);
}
inline uint64_t Decoder::BytesParsed() const {
return upb_pbdecoder_bytesparsed(this);
}
-inline bool Decoder::ResetOutput(Sink* sink) {
- return upb_pbdecoder_resetoutput(this, sink);
+inline size_t Decoder::max_nesting() const {
+ return upb_pbdecoder_maxnesting(this);
}
-inline BytesSink* Decoder::input() {
- return upb_pbdecoder_input(this);
+inline bool Decoder::set_max_nesting(size_t max) {
+ return upb_pbdecoder_setmaxnesting(this, max);
}
+inline void Decoder::Reset() { upb_pbdecoder_reset(this); }
inline DecoderMethodOptions::DecoderMethodOptions(const Handlers* h) {
upb_pbdecodermethodopts_init(this, h);
@@ -7242,6 +7361,95 @@ typedef struct {
#endif
} mgroup;
+// The maximum that any submessages can be nested. Matches proto2's limit.
+// This specifies the size of the decoder's statically-sized array and therefore
+// setting it high will cause the upb::pb::Decoder object to be larger.
+//
+// If necessary we can add a runtime-settable property to Decoder that allow
+// this to be larger than the compile-time setting, but this would add
+// complexity, particularly since we would have to decide how/if to give users
+// the ability to set a custom memory allocation function.
+#define UPB_DECODER_MAX_NESTING 64
+
+// Internal-only struct used by the decoder.
+typedef struct {
+ // Space optimization note: we store two pointers here that the JIT
+ // doesn't need at all; the upb_handlers* inside the sink and
+ // the dispatch table pointer. We can optimze so that the JIT uses
+ // smaller stack frames than the interpreter. The only thing we need
+ // to guarantee is that the fallback routines can find end_ofs.
+ upb_sink sink;
+
+ // The absolute stream offset of the end-of-frame delimiter.
+ // Non-delimited frames (groups and non-packed repeated fields) reuse the
+ // delimiter of their parent, even though the frame may not end there.
+ //
+ // NOTE: the JIT stores a slightly different value here for non-top frames.
+ // It stores the value relative to the end of the enclosed message. But the
+ // top frame is still stored the same way, which is important for ensuring
+ // that calls from the JIT into C work correctly.
+ uint64_t end_ofs;
+ const uint32_t *base;
+
+ // 0 indicates a length-delimited field.
+ // A positive number indicates a known group.
+ // A negative number indicates an unknown group.
+ int32_t groupnum;
+ upb_inttable *dispatch; // Not used by the JIT.
+} upb_pbdecoder_frame;
+
+struct upb_pbdecoder {
+ upb_env *env;
+
+ // Our input sink.
+ upb_bytessink input_;
+
+ // The decoder method we are parsing with (owned).
+ const upb_pbdecodermethod *method_;
+
+ size_t call_len;
+ const uint32_t *pc, *last;
+
+ // Current input buffer and its stream offset.
+ const char *buf, *ptr, *end, *checkpoint;
+
+ // End of the delimited region, relative to ptr, or NULL if not in this buf.
+ const char *delim_end;
+
+ // End of the delimited region, relative to ptr, or end if not in this buf.
+ const char *data_end;
+
+ // Overall stream offset of "buf."
+ uint64_t bufstart_ofs;
+
+ // Buffer for residual bytes not parsed from the previous buffer.
+ // The maximum number of residual bytes we require is 12; a five-byte
+ // unknown tag plus an eight-byte value, less one because the value
+ // is only a partial value.
+ char residual[12];
+ char *residual_end;
+
+ // Stores the user buffer passed to our decode function.
+ const char *buf_param;
+ size_t size_param;
+ const upb_bufhandle *handle;
+
+ // Our internal stack.
+ upb_pbdecoder_frame *stack, *top, *limit;
+ const uint32_t **callstack;
+ size_t stack_size;
+
+ upb_status *status;
+
+#ifdef UPB_USE_JIT_X64
+ // Used momentarily by the generated code to store a value while a user
+ // function is called.
+ uint32_t tmp_len;
+
+ const void *saved_rsp;
+#endif
+};
+
// Decoder entry points; used as handlers.
void *upb_pbdecoder_startbc(void *closure, const void *pc, size_t size_hint);
void *upb_pbdecoder_startjit(void *closure, const void *hd, size_t size_hint);
@@ -7509,101 +7717,42 @@ UPB_DECLARE_TYPE(upb::pb::Encoder, upb_pb_encoder);
/* upb::pb::Encoder ***********************************************************/
-// The output buffer is divided into segments; a segment is a string of data
-// that is "ready to go" -- it does not need any varint lengths inserted into
-// the middle. The seams between segments are where varints will be inserted
-// once they are known.
-//
-// We also use the concept of a "run", which is a range of encoded bytes that
-// occur at a single submessage level. Every segment contains one or more runs.
-//
-// A segment can span messages. Consider:
-//
-// .--Submessage lengths---------.
-// | | |
-// | V V
-// V | |--------------- | |-----------------
-// Submessages: | |-----------------------------------------------
-// Top-level msg: ------------------------------------------------------------
-//
-// Segments: ----- ------------------- -----------------
-// Runs: *---- *--------------*--- *----------------
-// (* marks the start)
-//
-// Note that the top-level menssage is not in any segment because it does not
-// have any length preceding it.
-//
-// A segment is only interrupted when another length needs to be inserted. So
-// observe how the second segment spans both the inner submessage and part of
-// the next enclosing message.
-typedef struct {
- UPB_PRIVATE_FOR_CPP
- uint32_t msglen; // The length to varint-encode before this segment.
- uint32_t seglen; // Length of the segment.
-} upb_pb_encoder_segment;
-
-UPB_DEFINE_CLASS0(upb::pb::Encoder,
- public:
- Encoder(const upb::Handlers* handlers);
- ~Encoder();
-
- static reffed_ptr<const Handlers> NewHandlers(const upb::MessageDef* msg);
+// Preallocation hint: decoder won't allocate more bytes than this when first
+// constructed. This hint may be an overestimate for some build configurations.
+// But if the decoder library is upgraded without recompiling the application,
+// it may be an underestimate.
+#define UPB_PB_ENCODER_SIZE 768
- // Resets the state of the printer, so that it will expect to begin a new
- // document.
- void Reset();
+#ifdef __cplusplus
- // Resets the output pointer which will serve as our closure.
- void ResetOutput(BytesSink* output);
+class upb::pb::Encoder {
+ public:
+ // Creates a new encoder in the given environment. The Handlers must have
+ // come from NewHandlers() below.
+ static Encoder* Create(Environment* env, const Handlers* handlers,
+ BytesSink* output);
// The input to the encoder.
Sink* input();
- private:
- UPB_DISALLOW_COPY_AND_ASSIGN(Encoder);
-,
-UPB_DEFINE_STRUCT0(upb_pb_encoder, UPB_QUOTE(
- // Our input and output.
- upb_sink input_;
- upb_bytessink *output_;
+ // Creates a new set of handlers for this MessageDef.
+ static reffed_ptr<const Handlers> NewHandlers(const MessageDef* msg);
- // The "subclosure" -- used as the inner closure as part of the bytessink
- // protocol.
- void *subc;
+ static const size_t kSize = UPB_PB_ENCODER_SIZE;
- // The output buffer and limit, and our current write position. "buf"
- // initially points to "initbuf", but is dynamically allocated if we need to
- // grow beyond the initial size.
- char *buf, *ptr, *limit;
-
- // The beginning of the current run, or undefined if we are at the top level.
- char *runbegin;
-
- // The list of segments we are accumulating.
- upb_pb_encoder_segment *segbuf, *segptr, *seglimit;
-
- // The stack of enclosing submessages. Each entry in the stack points to the
- // segment where this submessage's length is being accumulated.
- int stack[UPB_PBENCODER_MAX_NESTING], *top, *stacklimit;
-
- // Depth of startmsg/endmsg calls.
- int depth;
+ private:
+ UPB_DISALLOW_POD_OPS(Encoder, upb::pb::Encoder);
+};
- // Initial buffers for the output buffer and segment buffer. If we outgrow
- // these we will dynamically allocate bigger ones.
- char initbuf[256];
- upb_pb_encoder_segment seginitbuf[32];
-)));
+#endif
UPB_BEGIN_EXTERN_C
const upb_handlers *upb_pb_encoder_newhandlers(const upb_msgdef *m,
const void *owner);
-void upb_pb_encoder_reset(upb_pb_encoder *e);
upb_sink *upb_pb_encoder_input(upb_pb_encoder *p);
-void upb_pb_encoder_init(upb_pb_encoder *e, const upb_handlers *h);
-void upb_pb_encoder_resetoutput(upb_pb_encoder *e, upb_bytessink *output);
-void upb_pb_encoder_uninit(upb_pb_encoder *e);
+upb_pb_encoder* upb_pb_encoder_create(upb_env* e, const upb_handlers* h,
+ upb_bytessink* output);
UPB_END_EXTERN_C
@@ -7611,17 +7760,9 @@ UPB_END_EXTERN_C
namespace upb {
namespace pb {
-inline Encoder::Encoder(const upb::Handlers* handlers) {
- upb_pb_encoder_init(this, handlers);
-}
-inline Encoder::~Encoder() {
- upb_pb_encoder_uninit(this);
-}
-inline void Encoder::Reset() {
- upb_pb_encoder_reset(this);
-}
-inline void Encoder::ResetOutput(BytesSink* output) {
- upb_pb_encoder_resetoutput(this, output);
+inline Encoder* Encoder::Create(Environment* env, const Handlers* handlers,
+ BytesSink* output) {
+ return upb_pb_encoder_create(env, handlers, output);
}
inline Sink* Encoder::input() {
return upb_pb_encoder_input(this);
@@ -7739,58 +7880,51 @@ class TextPrinter;
UPB_DECLARE_TYPE(upb::pb::TextPrinter, upb_textprinter);
-UPB_DEFINE_CLASS0(upb::pb::TextPrinter,
+#ifdef __cplusplus
+
+class upb::pb::TextPrinter {
public:
// The given handlers must have come from NewHandlers(). It must outlive the
// TextPrinter.
- explicit TextPrinter(const upb::Handlers* handlers);
+ static TextPrinter *Create(Environment *env, const upb::Handlers *handlers,
+ BytesSink *output);
void SetSingleLineMode(bool single_line);
- bool ResetOutput(BytesSink* output);
Sink* input();
// If handler caching becomes a requirement we can add a code cache as in
// decoder.h
static reffed_ptr<const Handlers> NewHandlers(const MessageDef* md);
+};
- private:
-,
-UPB_DEFINE_STRUCT0(upb_textprinter,
- upb_sink input_;
- upb_bytessink *output_;
- int indent_depth_;
- bool single_line_;
- void *subc;
-));
+#endif
-UPB_BEGIN_EXTERN_C // {
+UPB_BEGIN_EXTERN_C
// C API.
-void upb_textprinter_init(upb_textprinter *p, const upb_handlers *h);
-void upb_textprinter_uninit(upb_textprinter *p);
-bool upb_textprinter_resetoutput(upb_textprinter *p, upb_bytessink *output);
+upb_textprinter *upb_textprinter_create(upb_env *env, const upb_handlers *h,
+ upb_bytessink *output);
void upb_textprinter_setsingleline(upb_textprinter *p, bool single_line);
upb_sink *upb_textprinter_input(upb_textprinter *p);
const upb_handlers *upb_textprinter_newhandlers(const upb_msgdef *m,
const void *owner);
-UPB_END_EXTERN_C // }
+UPB_END_EXTERN_C
#ifdef __cplusplus
namespace upb {
namespace pb {
-inline TextPrinter::TextPrinter(const upb::Handlers* handlers) {
- upb_textprinter_init(this, handlers);
+inline TextPrinter *TextPrinter::Create(Environment *env,
+ const upb::Handlers *handlers,
+ BytesSink *output) {
+ return upb_textprinter_create(env, handlers, output);
}
inline void TextPrinter::SetSingleLineMode(bool single_line) {
upb_textprinter_setsingleline(this, single_line);
}
-inline bool TextPrinter::ResetOutput(BytesSink* output) {
- return upb_textprinter_resetoutput(this, output);
-}
inline Sink* TextPrinter::input() {
return upb_textprinter_input(this);
}
@@ -7829,96 +7963,32 @@ class Parser;
UPB_DECLARE_TYPE(upb::json::Parser, upb_json_parser);
-// Internal-only struct used by the parser. A parser frame corresponds
-// one-to-one with a handler (sink) frame.
-typedef struct {
- UPB_PRIVATE_FOR_CPP
- upb_sink sink;
- // The current message in which we're parsing, and the field whose value we're
- // expecting next.
- const upb_msgdef *m;
- const upb_fielddef *f;
-
- // We are in a repeated-field context, ready to emit mapentries as
- // submessages. This flag alters the start-of-object (open-brace) behavior to
- // begin a sequence of mapentry messages rather than a single submessage.
- bool is_map;
- // We are in a map-entry message context. This flag is set when parsing the
- // value field of a single map entry and indicates to all value-field parsers
- // (subobjects, strings, numbers, and bools) that the map-entry submessage
- // should end as soon as the value is parsed.
- bool is_mapentry;
- // If |is_map| or |is_mapentry| is true, |mapfield| refers to the parent
- // message's map field that we're currently parsing. This differs from |f|
- // because |f| is the field in the *current* message (i.e., the map-entry
- // message itself), not the parent's field that leads to this map.
- const upb_fielddef *mapfield;
-} upb_jsonparser_frame;
-
-
/* upb::json::Parser **********************************************************/
-#define UPB_JSON_MAX_DEPTH 64
+// Preallocation hint: parser won't allocate more bytes than this when first
+// constructed. This hint may be an overestimate for some build configurations.
+// But if the parser library is upgraded without recompiling the application,
+// it may be an underestimate.
+#define UPB_JSON_PARSER_SIZE 3568
+
+#ifdef __cplusplus
// Parses an incoming BytesStream, pushing the results to the destination sink.
-UPB_DEFINE_CLASS0(upb::json::Parser,
+class upb::json::Parser {
public:
- Parser(Status* status);
- ~Parser();
-
- // Resets the state of the printer, so that it will expect to begin a new
- // document.
- void Reset();
+ static Parser* Create(Environment* env, Sink* output);
- // Resets the output pointer which will serve as our closure. Implies
- // Reset().
- void ResetOutput(Sink* output);
-
- // The input to the printer.
BytesSink* input();
-,
-UPB_DEFINE_STRUCT0(upb_json_parser,
- upb_byteshandler input_handler_;
- upb_bytessink input_;
-
- // Stack to track the JSON scopes we are in.
- upb_jsonparser_frame stack[UPB_JSON_MAX_DEPTH];
- upb_jsonparser_frame *top;
- upb_jsonparser_frame *limit;
-
- upb_status *status;
-
- // Ragel's internal parsing stack for the parsing state machine.
- int current_state;
- int parser_stack[UPB_JSON_MAX_DEPTH];
- int parser_top;
-
- // The handle for the current buffer.
- const upb_bufhandle *handle;
-
- // Accumulate buffer. See details in parser.rl.
- const char *accumulated;
- size_t accumulated_len;
- char *accumulate_buf;
- size_t accumulate_buf_size;
-
- // Multi-part text data. See details in parser.rl.
- int multipart_state;
- upb_selector_t string_selector;
- // Input capture. See details in parser.rl.
- const char *capture;
+ private:
+ UPB_DISALLOW_POD_OPS(Parser, upb::json::Parser);
+};
- // Intermediate result of parsing a unicode escape sequence.
- uint32_t digit;
-));
+#endif
UPB_BEGIN_EXTERN_C
-void upb_json_parser_init(upb_json_parser *p, upb_status *status);
-void upb_json_parser_uninit(upb_json_parser *p);
-void upb_json_parser_reset(upb_json_parser *p);
-void upb_json_parser_resetoutput(upb_json_parser *p, upb_sink *output);
+upb_json_parser *upb_json_parser_create(upb_env *e, upb_sink *output);
upb_bytessink *upb_json_parser_input(upb_json_parser *p);
UPB_END_EXTERN_C
@@ -7927,11 +7997,8 @@ UPB_END_EXTERN_C
namespace upb {
namespace json {
-inline Parser::Parser(Status* status) { upb_json_parser_init(this, status); }
-inline Parser::~Parser() { upb_json_parser_uninit(this); }
-inline void Parser::Reset() { upb_json_parser_reset(this); }
-inline void Parser::ResetOutput(Sink* output) {
- upb_json_parser_resetoutput(this, output);
+inline Parser* Parser::Create(Environment* env, Sink* output) {
+ return upb_json_parser_create(env, output);
}
inline BytesSink* Parser::input() {
return upb_json_parser_input(this);
@@ -7970,71 +8037,48 @@ UPB_DECLARE_TYPE(upb::json::Printer, upb_json_printer);
/* upb::json::Printer *********************************************************/
-// Prints an incoming stream of data to a BytesSink in JSON format.
-UPB_DEFINE_CLASS0(upb::json::Printer,
- public:
- Printer(const upb::Handlers* handlers);
- ~Printer();
+#define UPB_JSON_PRINTER_SIZE 168
- // Resets the state of the printer, so that it will expect to begin a new
- // document.
- void Reset();
+#ifdef __cplusplus
- // Resets the output pointer which will serve as our closure. Implies
- // Reset().
- void ResetOutput(BytesSink* output);
+// Prints an incoming stream of data to a BytesSink in JSON format.
+class upb::json::Printer {
+ public:
+ static Printer* Create(Environment* env, const upb::Handlers* handlers,
+ BytesSink* output);
// The input to the printer.
Sink* input();
// Returns handlers for printing according to the specified schema.
static reffed_ptr<const Handlers> NewHandlers(const upb::MessageDef* md);
-,
-UPB_DEFINE_STRUCT0(upb_json_printer,
- upb_sink input_;
- // BytesSink closure.
- void *subc_;
- upb_bytessink *output_;
-
- // We track the depth so that we know when to emit startstr/endstr on the
- // output.
- int depth_;
- // Have we emitted the first element? This state is necessary to emit commas
- // without leaving a trailing comma in arrays/maps. We keep this state per
- // frame depth.
- //
- // Why max_depth * 2? UPB_MAX_HANDLER_DEPTH counts depth as nested messages.
- // We count frames (contexts in which we separate elements by commas) as both
- // repeated fields and messages (maps), and the worst case is a
- // message->repeated field->submessage->repeated field->... nesting.
- bool first_elem_[UPB_MAX_HANDLER_DEPTH * 2];
-));
-UPB_BEGIN_EXTERN_C // {
+ static const size_t kSize = UPB_JSON_PRINTER_SIZE;
-// Native C API.
+ private:
+ UPB_DISALLOW_POD_OPS(Printer, upb::json::Printer);
+};
+
+#endif
-void upb_json_printer_init(upb_json_printer *p, const upb_handlers *h);
-void upb_json_printer_uninit(upb_json_printer *p);
-void upb_json_printer_reset(upb_json_printer *p);
-void upb_json_printer_resetoutput(upb_json_printer *p, upb_bytessink *output);
+UPB_BEGIN_EXTERN_C
+
+// Native C API.
+upb_json_printer *upb_json_printer_create(upb_env *e, const upb_handlers *h,
+ upb_bytessink *output);
upb_sink *upb_json_printer_input(upb_json_printer *p);
const upb_handlers *upb_json_printer_newhandlers(const upb_msgdef *md,
const void *owner);
-UPB_END_EXTERN_C // }
+UPB_END_EXTERN_C
#ifdef __cplusplus
namespace upb {
namespace json {
-inline Printer::Printer(const upb::Handlers* handlers) {
- upb_json_printer_init(this, handlers);
-}
-inline Printer::~Printer() { upb_json_printer_uninit(this); }
-inline void Printer::Reset() { upb_json_printer_reset(this); }
-inline void Printer::ResetOutput(BytesSink* output) {
- upb_json_printer_resetoutput(this, output);
+inline Printer* Printer::Create(Environment* env, const upb::Handlers* handlers,
+ BytesSink* output) {
+ return upb_json_printer_create(env, handlers, output);
}
inline Sink* Printer::input() { return upb_json_printer_input(this); }
inline reffed_ptr<const Handlers> Printer::NewHandlers(
diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec
index 28cdebf5..a9e570ec 100644
--- a/ruby/google-protobuf.gemspec
+++ b/ruby/google-protobuf.gemspec
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = "google-protobuf"
- s.version = "3.0.0.alpha.3.1.pre"
+ s.version = "3.0.0.alpha.4.0.pre"
s.licenses = ["BSD"]
s.summary = "Protocol Buffers"
s.description = "Protocol Buffers are Google's data interchange format."
diff --git a/ruby/lib/google/protobuf.rb b/ruby/lib/google/protobuf.rb
index 72797245..99b17929 100644
--- a/ruby/lib/google/protobuf.rb
+++ b/ruby/lib/google/protobuf.rb
@@ -28,6 +28,9 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# require mixins before we hook them into the java & c code
+require 'google/protobuf/message_exts'
+
if RUBY_PLATFORM == "java"
require 'json'
require 'google/protobuf_java'
@@ -36,3 +39,25 @@ else
end
require 'google/protobuf/repeated_field'
+
+module Google
+ module Protobuf
+
+ def self.encode(msg)
+ msg.to_proto
+ end
+
+ def self.encode_json(msg)
+ msg.to_json
+ end
+
+ def self.decode(klass, proto)
+ klass.decode(proto)
+ end
+
+ def self.decode_json(klass, json)
+ klass.decode_json(json)
+ end
+
+ end
+end
diff --git a/ruby/lib/google/protobuf/message_exts.rb b/ruby/lib/google/protobuf/message_exts.rb
new file mode 100644
index 00000000..e10266ba
--- /dev/null
+++ b/ruby/lib/google/protobuf/message_exts.rb
@@ -0,0 +1,53 @@
+# Protocol Buffers - Google's data interchange format
+# Copyright 2008 Google Inc. All rights reserved.
+# https://developers.google.com/protocol-buffers/
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+module Google
+ module Protobuf
+ module MessageExts
+
+ #this is only called in jruby; mri loades the ClassMethods differently
+ def self.included(klass)
+ klass.extend(ClassMethods)
+ end
+
+ module ClassMethods
+ end
+
+ def to_json
+ self.class.encode_json(self)
+ end
+
+ def to_proto
+ self.class.encode(self)
+ end
+
+ end
+ end
+end
diff --git a/ruby/lib/google/protobuf/repeated_field.rb b/ruby/lib/google/protobuf/repeated_field.rb
index 5b934e56..16c843c0 100644
--- a/ruby/lib/google/protobuf/repeated_field.rb
+++ b/ruby/lib/google/protobuf/repeated_field.rb
@@ -28,12 +28,160 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# add syntatic sugar on top of the core library
+require 'forwardable'
+
+#
+# This class makes RepeatedField act (almost-) like a Ruby Array.
+# It has convenience methods that extend the core C or Java based
+# methods.
+#
+# This is a best-effort to mirror Array behavior. Two comments:
+# 1) patches always welcome :)
+# 2) if performance is an issue, feel free to rewrite the method
+# in jruby and C. The source code has plenty of examples
+#
+# KNOWN ISSUES
+# - #[]= doesn't allow less used approaches such as `arr[1, 2] = 'fizz'`
+# - #concat should return the orig array
+# - #push should accept multiple arguments and push them all at the same time
+#
module Google
module Protobuf
class RepeatedField
+ extend Forwardable
+
+ # methods defined in C or Java:
+ # +
+ # [], at
+ # []=
+ # concat
+ # clear
+ # dup, clone
+ # each
+ # push, <<
+ # replace
+ # length, size
+ # ==
+ # to_ary, to_a
+ # also all enumerable
+ #
+ # NOTE: using delegators rather than method_missing to make the
+ # relationship explicit instead of implicit
+ def_delegators :to_ary,
+ :&, :*, :-, :'<=>',
+ :assoc, :bsearch, :combination, :compact, :count, :cycle,
+ :drop, :drop_while, :eql?, :fetch, :find_index, :flatten,
+ :include?, :index, :inspect, :join,
+ :pack, :permutation, :product, :pretty_print, :pretty_print_cycle,
+ :rassoc, :repeated_combination, :repeated_permutation, :reverse,
+ :rindex, :rotate, :sample, :shuffle, :shelljoin, :slice,
+ :to_s, :transpose, :uniq, :|
+
+
+ def first(n=nil)
+ n ? self[0..n] : self[0]
+ end
+
+
+ def last(n=nil)
+ n ? self[(self.size-n-1)..-1] : self[-1]
+ end
+
+
+ def pop(n=nil)
+ if n
+ results = []
+ n.times{ results << pop_one }
+ return results
+ else
+ return pop_one
+ end
+ end
+
+
+ def empty?
+ self.size == 0
+ end
+
+ # array aliases into enumerable
+ alias_method :each_index, :each_with_index
+ alias_method :slice, :[]
+ alias_method :values_at, :select
+ alias_method :map, :collect
+
+
+ class << self
+ def define_array_wrapper_method(method_name)
+ define_method(method_name) do |*args, &block|
+ arr = self.to_a
+ result = arr.send(method_name, *args)
+ self.replace(arr)
+ return result if result
+ return block ? block.call : result
+ end
+ end
+ private :define_array_wrapper_method
+
+
+ def define_array_wrapper_with_result_method(method_name)
+ define_method(method_name) do |*args, &block|
+ # result can be an Enumerator, Array, or nil
+ # Enumerator can sometimes be returned if a block is an optional argument and it is not passed in
+ # nil usually specifies that no change was made
+ result = self.to_a.send(method_name, *args, &block)
+ if result
+ new_arr = result.to_a
+ self.replace(new_arr)
+ if result.is_a?(Enumerator)
+ # generate a fresh enum; rewinding the exiting one, in Ruby 2.2, will
+ # reset the enum with the same length, but all the #next calls will
+ # return nil
+ result = new_arr.to_enum
+ # generate a wrapper enum so any changes which occur by a chained
+ # enum can be captured
+ ie = ProxyingEnumerator.new(self, result)
+ result = ie.to_enum
+ end
+ end
+ result
+ end
+ end
+ private :define_array_wrapper_with_result_method
+ end
+
+
+ %w(delete delete_at delete_if shift slice! unshift).each do |method_name|
+ define_array_wrapper_method(method_name)
+ end
+
+
+ %w(collect! compact! fill flatten! insert reverse!
+ rotate! select! shuffle! sort! sort_by! uniq!).each do |method_name|
+ define_array_wrapper_with_result_method(method_name)
+ end
+ alias_method :keep_if, :select!
+ alias_method :map!, :collect!
+ alias_method :reject!, :delete_if
+
+
+ # propagates changes made by user of enumerator back to the original repeated field.
+ # This only applies in cases where the calling function which created the enumerator,
+ # such as #sort!, modifies itself rather than a new array, such as #sort
+ class ProxyingEnumerator < Struct.new(:repeated_field, :external_enumerator)
+ def each(*args, &block)
+ results = []
+ external_enumerator.each_with_index do |val, i|
+ result = yield(val)
+ results << result
+ #nil means no change occured from yield; usually occurs when #to_a is called
+ if result
+ repeated_field[i] = result if result != val
+ end
+ end
+ results
+ end
+ end
- alias_method :size, :length
end
end
diff --git a/ruby/pom.xml b/ruby/pom.xml
index 01f0e16b..247b243a 100644
--- a/ruby/pom.xml
+++ b/ruby/pom.xml
@@ -61,6 +61,14 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
</plugins>
</build>
<dependencies>
@@ -78,7 +86,7 @@
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
- <version>3.0.0-alpha-3-pre</version>
+ <version>3.0.0-alpha-2</version>
</dependency>
</dependencies>
</project>
diff --git a/ruby/src/main/java/com/google/protobuf/jruby/RubyDescriptor.java b/ruby/src/main/java/com/google/protobuf/jruby/RubyDescriptor.java
index 51c50be8..dd9179b0 100644
--- a/ruby/src/main/java/com/google/protobuf/jruby/RubyDescriptor.java
+++ b/ruby/src/main/java/com/google/protobuf/jruby/RubyDescriptor.java
@@ -248,6 +248,8 @@ public class RubyDescriptor extends RubyObject {
klass.setAllocator(allocator);
klass.makeMetaClass(runtime.getObject().getMetaClass());
klass.inherit(runtime.getObject());
+ RubyModule messageExts = runtime.getClassFromPath("Google::Protobuf::MessageExts");
+ klass.include(new IRubyObject[] {messageExts});
klass.instance_variable_set(runtime.newString(Utils.DESCRIPTOR_INSTANCE_VAR), this);
klass.defineAnnotatedMethods(RubyMessage.class);
return klass;
diff --git a/ruby/src/main/java/com/google/protobuf/jruby/RubyFieldDescriptor.java b/ruby/src/main/java/com/google/protobuf/jruby/RubyFieldDescriptor.java
index 38226c4e..f3c488bc 100644
--- a/ruby/src/main/java/com/google/protobuf/jruby/RubyFieldDescriptor.java
+++ b/ruby/src/main/java/com/google/protobuf/jruby/RubyFieldDescriptor.java
@@ -73,6 +73,17 @@ public class RubyFieldDescriptor extends RubyObject {
/*
* call-seq:
+ * FieldDescriptor.label
+ *
+ * Return the label of this field.
+ */
+ @JRubyMethod(name = "label")
+ public IRubyObject getLabel(ThreadContext context) {
+ return this.label;
+ }
+
+ /*
+ * call-seq:
* FieldDescriptor.label = label
*
* Sets the label on this field. Cannot be called if field is part of a message
@@ -80,8 +91,10 @@ public class RubyFieldDescriptor extends RubyObject {
*/
@JRubyMethod(name = "label=")
public IRubyObject setLabel(ThreadContext context, IRubyObject value) {
+ String labelName = value.asJavaString();
+ this.label = context.runtime.newSymbol(labelName.toLowerCase());
this.builder.setLabel(
- DescriptorProtos.FieldDescriptorProto.Label.valueOf("LABEL_" + value.asJavaString().toUpperCase()));
+ DescriptorProtos.FieldDescriptorProto.Label.valueOf("LABEL_" + labelName.toUpperCase()));
return context.runtime.getNil();
}
@@ -89,18 +102,13 @@ public class RubyFieldDescriptor extends RubyObject {
* call-seq:
* FieldDescriptor.name => name
*
- * Returns the name of this field.
+ * Returns the name of this field as a Ruby String, or nil if it is not set.
*/
@JRubyMethod(name = "name")
public IRubyObject getName(ThreadContext context) {
return this.name;
}
- @JRubyMethod(name = "subtype")
- public IRubyObject getSubType(ThreadContext context) {
- return subType;
- }
-
/*
* call-seq:
* FieldDescriptor.name = name
@@ -116,6 +124,12 @@ public class RubyFieldDescriptor extends RubyObject {
return context.runtime.getNil();
}
+
+ @JRubyMethod(name = "subtype")
+ public IRubyObject getSubType(ThreadContext context) {
+ return subType;
+ }
+
/*
* call-seq:
* FieldDescriptor.type => type
@@ -146,6 +160,18 @@ public class RubyFieldDescriptor extends RubyObject {
/*
* call-seq:
+ * FieldDescriptor.number => number
+ *
+ * Returns this field's number, as a Ruby Integer, or nil if not yet set.
+ *
+ */
+ @JRubyMethod(name = "number")
+ public IRubyObject getnumber(ThreadContext context) {
+ return this.number;
+ }
+
+ /*
+ * call-seq:
* FieldDescriptor.number = number
*
* Sets the tag number for this field. Cannot be called if field is part of a
@@ -153,6 +179,7 @@ public class RubyFieldDescriptor extends RubyObject {
*/
@JRubyMethod(name = "number=")
public IRubyObject setNumber(ThreadContext context, IRubyObject value) {
+ this.number = value;
this.builder.setNumber(RubyNumeric.num2int(value));
return context.runtime.getNil();
}
@@ -240,6 +267,8 @@ public class RubyFieldDescriptor extends RubyObject {
private DescriptorProtos.FieldDescriptorProto.Builder builder;
private IRubyObject name;
+ private IRubyObject label;
+ private IRubyObject number;
private IRubyObject subType;
private IRubyObject oneofName;
private Descriptors.FieldDescriptor fieldDef;
diff --git a/ruby/src/main/java/com/google/protobuf/jruby/RubyMap.java b/ruby/src/main/java/com/google/protobuf/jruby/RubyMap.java
index b25dc6e1..2d4c03b5 100644
--- a/ruby/src/main/java/com/google/protobuf/jruby/RubyMap.java
+++ b/ruby/src/main/java/com/google/protobuf/jruby/RubyMap.java
@@ -338,7 +338,7 @@ public class RubyMap extends RubyObject {
return newMap;
}
- @JRubyMethod(name = "to_h")
+ @JRubyMethod(name = {"to_h", "to_hash"})
public RubyHash toHash(ThreadContext context) {
return RubyHash.newHash(context.runtime, table, context.runtime.getNil());
}
diff --git a/ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java b/ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java
index c7fd7aa7..547ab22c 100644
--- a/ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java
+++ b/ruby/src/main/java/com/google/protobuf/jruby/RubyMessage.java
@@ -338,16 +338,20 @@ public class RubyMessage extends RubyObject {
return ret;
}
- @JRubyMethod(name = "to_h")
+ @JRubyMethod(name = {"to_h", "to_hash"})
public IRubyObject toHash(ThreadContext context) {
Ruby runtime = context.runtime;
RubyHash ret = RubyHash.newHash(runtime);
for (Descriptors.FieldDescriptor fdef : this.descriptor.getFields()) {
IRubyObject value = getField(context, fdef);
- if (value.respondsTo("to_h")) {
- value = Helpers.invoke(context, value, "to_h");
+ if (!value.isNil()) {
+ if (value.respondsTo("to_h")) {
+ value = Helpers.invoke(context, value, "to_h");
+ } else if (value.respondsTo("to_a")) {
+ value = Helpers.invoke(context, value, "to_a");
+ }
}
- ret.fastASet(runtime.newString(fdef.getName()), value);
+ ret.fastASet(runtime.newSymbol(fdef.getName()), value);
}
return ret;
}
diff --git a/ruby/src/main/java/com/google/protobuf/jruby/RubyProtobuf.java b/ruby/src/main/java/com/google/protobuf/jruby/RubyProtobuf.java
index cb3fcd48..2cf210d2 100644
--- a/ruby/src/main/java/com/google/protobuf/jruby/RubyProtobuf.java
+++ b/ruby/src/main/java/com/google/protobuf/jruby/RubyProtobuf.java
@@ -50,56 +50,6 @@ public class RubyProtobuf {
/*
* call-seq:
- * Google::Protobuf.encode(msg) => bytes
- *
- * Encodes the given message object to protocol buffers wire format. This is an
- * alternative to the #encode method on msg's class.
- */
- @JRubyMethod(meta = true)
- public static IRubyObject encode(ThreadContext context, IRubyObject self, IRubyObject message) {
- return RubyMessage.encode(context, message.getMetaClass(), message);
- }
-
- /*
- * call-seq:
- * Google::Protobuf.decode(class, bytes) => msg
- *
- * Decodes the given bytes as protocol buffers wire format under the
- * interpretation given by the given class's message definition. This is an
- * alternative to the #decode method on the given class.
- */
- @JRubyMethod(meta = true)
- public static IRubyObject decode(ThreadContext context, IRubyObject self, IRubyObject klazz, IRubyObject message) {
- return RubyMessage.decode(context, klazz, message);
- }
-
- /*
- * call-seq:
- * Google::Protobuf.encode_json(msg) => json_string
- *
- * Encodes the given message object to its JSON representation. This is an
- * alternative to the #encode_json method on msg's class.
- */
- @JRubyMethod(name = "encode_json", meta = true)
- public static IRubyObject encodeJson(ThreadContext context, IRubyObject self, IRubyObject message) {
- return RubyMessage.encodeJson(context, message.getMetaClass(), message);
- }
-
- /*
- * call-seq:
- * Google::Protobuf.decode_json(class, json_string) => msg
- *
- * Decodes the given JSON string under the interpretation given by the given
- * class's message definition. This is an alternative to the #decode_json method
- * on the given class.
- */
- @JRubyMethod(name = "decode_json", meta = true)
- public static IRubyObject decodeJson(ThreadContext context, IRubyObject self, IRubyObject klazz, IRubyObject message) {
- return RubyMessage.decodeJson(context, klazz, message);
- }
-
- /*
- * call-seq:
* Google::Protobuf.deep_copy(obj) => copy_of_obj
*
* Performs a deep copy of either a RepeatedField instance or a message object,
diff --git a/ruby/src/main/java/com/google/protobuf/jruby/RubyRepeatedField.java b/ruby/src/main/java/com/google/protobuf/jruby/RubyRepeatedField.java
index 84bf8956..946f9e74 100644
--- a/ruby/src/main/java/com/google/protobuf/jruby/RubyRepeatedField.java
+++ b/ruby/src/main/java/com/google/protobuf/jruby/RubyRepeatedField.java
@@ -40,6 +40,7 @@ import org.jruby.runtime.Block;
import org.jruby.runtime.ObjectAllocator;
import org.jruby.runtime.ThreadContext;
import org.jruby.runtime.builtin.IRubyObject;
+import java.util.Arrays;
@JRubyClass(name = "RepeatedClass", include = "Enumerable")
public class RubyRepeatedField extends RubyObject {
@@ -110,6 +111,10 @@ public class RubyRepeatedField extends RubyObject {
public IRubyObject indexSet(ThreadContext context, IRubyObject index, IRubyObject value) {
int arrIndex = normalizeArrayIndex(index);
Utils.checkType(context, fieldType, value, (RubyModule) typeClass);
+ IRubyObject defaultValue = defaultValue(context);
+ for (int i = this.storage.size(); i < arrIndex; i++) {
+ this.storage.set(i, defaultValue);
+ }
this.storage.set(arrIndex, value);
return context.runtime.getNil();
}
@@ -120,27 +125,35 @@ public class RubyRepeatedField extends RubyObject {
*
* Accesses the element at the given index. Returns nil on out-of-bounds
*/
- @JRubyMethod(name = "[]")
- public IRubyObject index(ThreadContext context, IRubyObject index) {
- int arrIndex = normalizeArrayIndex(index);
- if (arrIndex < 0 || arrIndex >= this.storage.size()) {
- return context.runtime.getNil();
+ @JRubyMethod(required=1, optional=1, name = {"at", "[]"})
+ public IRubyObject index(ThreadContext context, IRubyObject[] args) {
+ if (args.length == 1){
+ IRubyObject arg = args[0];
+ if (Utils.isRubyNum(arg)) {
+ /* standard case */
+ int arrIndex = normalizeArrayIndex(arg);
+ if (arrIndex < 0 || arrIndex >= this.storage.size()) {
+ return context.runtime.getNil();
+ }
+ return this.storage.eltInternal(arrIndex);
+ } else if (arg instanceof RubyRange) {
+ RubyRange range = ((RubyRange) arg);
+ int beg = RubyNumeric.num2int(range.first(context));
+ int to = RubyNumeric.num2int(range.last(context));
+ int len = to - beg + 1;
+ return this.storage.subseq(beg, len);
+ }
}
- return this.storage.eltInternal(arrIndex);
- }
-
- /*
- * call-seq:
- * RepeatedField.insert(*args)
- *
- * Pushes each arg in turn onto the end of the repeated field.
- */
- @JRubyMethod(rest = true)
- public IRubyObject insert(ThreadContext context, IRubyObject[] args) {
- for (int i = 0; i < args.length; i++) {
- push(context, args[i]);
+ /* assume 2 arguments */
+ int beg = RubyNumeric.num2int(args[0]);
+ int len = RubyNumeric.num2int(args[1]);
+ if (beg < 0) {
+ beg += this.storage.size();
}
- return context.runtime.getNil();
+ if (beg >= this.storage.size()) {
+ return context.runtime.getNil();
+ }
+ return this.storage.subseq(beg, len);
}
/*
@@ -151,20 +164,19 @@ public class RubyRepeatedField extends RubyObject {
*/
@JRubyMethod(name = {"push", "<<"})
public IRubyObject push(ThreadContext context, IRubyObject value) {
- Utils.checkType(context, fieldType, value, (RubyModule) typeClass);
+ if (!(fieldType == Descriptors.FieldDescriptor.Type.MESSAGE &&
+ value == context.runtime.getNil())) {
+ Utils.checkType(context, fieldType, value, (RubyModule) typeClass);
+ }
this.storage.add(value);
- return this;
+ return this.storage;
}
/*
- * call-seq:
- * RepeatedField.pop => value
- *
- * Removes the last element and returns it. Throws an exception if the repeated
- * field is empty.
+ * private Ruby method used by RepeatedField.pop
*/
- @JRubyMethod
- public IRubyObject pop(ThreadContext context) {
+ @JRubyMethod(visibility = org.jruby.runtime.Visibility.PRIVATE)
+ public IRubyObject pop_one(ThreadContext context) {
IRubyObject ret = this.storage.last();
this.storage.remove(ret);
return ret;
@@ -181,7 +193,7 @@ public class RubyRepeatedField extends RubyObject {
RubyArray arr = (RubyArray) list;
checkArrayElementType(context, arr);
this.storage = arr;
- return context.runtime.getNil();
+ return this.storage;
}
/*
@@ -193,7 +205,7 @@ public class RubyRepeatedField extends RubyObject {
@JRubyMethod
public IRubyObject clear(ThreadContext context) {
this.storage.clear();
- return context.runtime.getNil();
+ return this.storage;
}
/*
@@ -202,7 +214,7 @@ public class RubyRepeatedField extends RubyObject {
*
* Returns the length of this repeated field.
*/
- @JRubyMethod(name = {"count", "length"})
+ @JRubyMethod(name = {"length", "size"})
public IRubyObject length(ThreadContext context) {
return context.runtime.newFixnum(this.storage.size());
}
@@ -215,7 +227,7 @@ public class RubyRepeatedField extends RubyObject {
* repeated field's elements and other's elements. The other (second) list may
* be either another repeated field or a Ruby array.
*/
- @JRubyMethod(name = "+")
+ @JRubyMethod(name = {"+"})
public IRubyObject plus(ThreadContext context, IRubyObject list) {
RubyRepeatedField dup = (RubyRepeatedField) dup(context);
if (list instanceof RubyArray) {
@@ -233,13 +245,34 @@ public class RubyRepeatedField extends RubyObject {
/*
* call-seq:
+ * RepeatedField.concat(other) => self
+ *
+ * concats the passed in array to self. Returns a Ruby array.
+ */
+ @JRubyMethod
+ public IRubyObject concat(ThreadContext context, IRubyObject list) {
+ if (list instanceof RubyArray) {
+ checkArrayElementType(context, (RubyArray) list);
+ this.storage.addAll((RubyArray) list);
+ } else {
+ RubyRepeatedField repeatedField = (RubyRepeatedField) list;
+ if (! fieldType.equals(repeatedField.fieldType) || (typeClass != null && !
+ typeClass.equals(repeatedField.typeClass)))
+ throw context.runtime.newArgumentError("Attempt to append RepeatedField with different element type.");
+ this.storage.addAll((RubyArray) repeatedField.toArray(context));
+ }
+ return this.storage;
+ }
+
+ /*
+ * call-seq:
* RepeatedField.hash => hash_value
*
* Returns a hash value computed from this repeated field's elements.
*/
@JRubyMethod
public IRubyObject hash(ThreadContext context) {
- int hashCode = System.identityHashCode(this.storage);
+ int hashCode = this.storage.hashCode();
return context.runtime.newFixnum(hashCode);
}
@@ -268,17 +301,12 @@ public class RubyRepeatedField extends RubyObject {
@JRubyMethod
public IRubyObject each(ThreadContext context, Block block) {
this.storage.each(context, block);
- return context.runtime.getNil();
+ return this.storage;
}
+
@JRubyMethod(name = {"to_ary", "to_a"})
public IRubyObject toArray(ThreadContext context) {
- for (int i = 0; i < this.storage.size(); i++) {
- IRubyObject defaultValue = defaultValue(context);
- if (storage.eltInternal(i).isNil()) {
- storage.set(i, defaultValue);
- }
- }
return this.storage;
}
@@ -298,31 +326,6 @@ public class RubyRepeatedField extends RubyObject {
return dup;
}
- /*
- * call-seq:
- * RepeatedField.inspect => string
- *
- * Returns a string representing this repeated field's elements. It will be
- * formated as "[<element>, <element>, ...]", with each element's string
- * representation computed by its own #inspect method.
- */
- @JRubyMethod
- public IRubyObject inspect() {
- StringBuilder str = new StringBuilder("[");
- for (int i = 0; i < this.storage.size(); i++) {
- str.append(storage.eltInternal(i).inspect());
- str.append(", ");
- }
-
- if (str.length() > 1) {
- str.replace(str.length() - 2, str.length(), "]");
- } else {
- str.append("]");
- }
-
- return getRuntime().newString(str.toString());
- }
-
// Java API
protected IRubyObject get(int index) {
return this.storage.eltInternal(index);
@@ -376,6 +379,9 @@ public class RubyRepeatedField extends RubyObject {
case STRING:
value = sentinel.getDefaultString();
break;
+ case ENUM:
+ IRubyObject defaultEnumLoc = context.runtime.newFixnum(0);
+ return RubyEnum.lookup(context, typeClass, defaultEnumLoc);
default:
return context.runtime.getNil();
}
diff --git a/ruby/tests/basic.rb b/ruby/tests/basic.rb
index 1c2a03dc..40c20078 100644
--- a/ruby/tests/basic.rb
+++ b/ruby/tests/basic.rb
@@ -178,7 +178,7 @@ module BasicTest
:optional_msg => TestMessage2.new,
:repeated_string => ["hello", "there", "world"])
expected = '<BasicTest::TestMessage: optional_int32: -42, optional_int64: 0, optional_uint32: 0, optional_uint64: 0, optional_bool: false, optional_float: 0.0, optional_double: 0.0, optional_string: "", optional_bytes: "", optional_msg: <BasicTest::TestMessage2: foo: 0>, optional_enum: :A, repeated_int32: [], repeated_int64: [], repeated_uint32: [], repeated_uint64: [], repeated_bool: [], repeated_float: [], repeated_double: [], repeated_string: ["hello", "there", "world"], repeated_bytes: [], repeated_msg: [], repeated_enum: []>'
- assert m.inspect == expected
+ assert_equal expected, m.inspect
end
def test_hash
@@ -276,7 +276,7 @@ module BasicTest
assert l.inspect == '[5, 2, 3, 4]'
- l.insert(7, 8, 9)
+ l.concat([7, 8, 9])
assert l == [5, 2, 3, 4, 7, 8, 9]
assert l.pop == 9
assert l == [5, 2, 3, 4, 7, 8]
@@ -822,6 +822,67 @@ module BasicTest
assert m == m2
end
+ def test_encode_decode_helpers
+ m = TestMessage.new(:optional_string => 'foo', :repeated_string => ['bar1', 'bar2'])
+ json = m.to_json
+ m2 = TestMessage.decode_json(json)
+ assert m2.optional_string == 'foo'
+ assert m2.repeated_string == ['bar1', 'bar2']
+
+ proto = m.to_proto
+ m2 = TestMessage.decode(proto)
+ assert m2.optional_string == 'foo'
+ assert m2.repeated_string == ['bar1', 'bar2']
+ end
+
+ def test_protobuf_encode_decode_helpers
+ m = TestMessage.new(:optional_string => 'foo', :repeated_string => ['bar1', 'bar2'])
+ encoded_msg = Google::Protobuf.encode(m)
+ assert_equal m.to_proto, encoded_msg
+
+ decoded_msg = Google::Protobuf.decode(TestMessage, encoded_msg)
+ assert_equal TestMessage.decode(m.to_proto), decoded_msg
+ end
+
+ def test_protobuf_encode_decode_json_helpers
+ m = TestMessage.new(:optional_string => 'foo', :repeated_string => ['bar1', 'bar2'])
+ encoded_msg = Google::Protobuf.encode_json(m)
+ assert_equal m.to_json, encoded_msg
+
+ decoded_msg = Google::Protobuf.decode_json(TestMessage, encoded_msg)
+ assert_equal TestMessage.decode_json(m.to_json), decoded_msg
+ end
+
+ def test_to_h
+ m = TestMessage.new(:optional_bool => true, :optional_double => -10.100001, :optional_string => 'foo', :repeated_string => ['bar1', 'bar2'])
+ expected_result = {
+ :optional_bool=>true,
+ :optional_bytes=>"",
+ :optional_double=>-10.100001,
+ :optional_enum=>:Default,
+ :optional_float=>0.0,
+ :optional_int32=>0,
+ :optional_int64=>0,
+ :optional_msg=>nil,
+ :optional_string=>"foo",
+ :optional_uint32=>0,
+ :optional_uint64=>0,
+ :repeated_bool=>[],
+ :repeated_bytes=>[],
+ :repeated_double=>[],
+ :repeated_enum=>[],
+ :repeated_float=>[],
+ :repeated_int32=>[],
+ :repeated_int64=>[],
+ :repeated_msg=>[],
+ :repeated_string=>["bar1", "bar2"],
+ :repeated_uint32=>[],
+ :repeated_uint64=>[]
+ }
+ assert_equal expected_result, m.to_h
+ end
+
+
def test_def_errors
s = Google::Protobuf::DescriptorPool.new
assert_raise TypeError do
@@ -1035,7 +1096,8 @@ module BasicTest
end
def test_json
- skip("Unimplemented") if RUBY_PLATFORM == "java"
+ # TODO: Fix JSON in JRuby version.
+ return if RUBY_PLATFORM == "java"
m = TestMessage.new(:optional_int32 => 1234,
:optional_int64 => -0x1_0000_0000,
:optional_uint32 => 0x8000_0000,
@@ -1066,7 +1128,8 @@ module BasicTest
end
def test_json_maps
- skip("Unimplemented") if RUBY_PLATFORM == "java"
+ # TODO: Fix JSON in JRuby version.
+ return if RUBY_PLATFORM == "java"
m = MapMessage.new(:map_string_int32 => {"a" => 1})
expected = '{"map_string_int32":{"a":1},"map_string_msg":{}}'
assert MapMessage.encode_json(m) == expected
diff --git a/ruby/tests/generated_code.proto b/ruby/tests/generated_code.proto
index b1d63232..42d82a6b 100644
--- a/ruby/tests/generated_code.proto
+++ b/ruby/tests/generated_code.proto
@@ -3,17 +3,17 @@ syntax = "proto3";
package A.B.C;
message TestMessage {
- optional int32 optional_int32 = 1;
- optional int64 optional_int64 = 2;
- optional uint32 optional_uint32 = 3;
- optional uint64 optional_uint64 = 4;
- optional bool optional_bool = 5;
- optional double optional_double = 6;
- optional float optional_float = 7;
- optional string optional_string = 8;
- optional bytes optional_bytes = 9;
- optional TestEnum optional_enum = 10;
- optional TestMessage optional_msg = 11;
+ int32 optional_int32 = 1;
+ int64 optional_int64 = 2;
+ uint32 optional_uint32 = 3;
+ uint64 optional_uint64 = 4;
+ bool optional_bool = 5;
+ double optional_double = 6;
+ float optional_float = 7;
+ string optional_string = 8;
+ bytes optional_bytes = 9;
+ TestEnum optional_enum = 10;
+ TestMessage optional_msg = 11;
repeated int32 repeated_int32 = 21;
repeated int64 repeated_int64 = 22;
@@ -53,10 +53,10 @@ message TestMessage {
map<string, bool> map_string_bool = 70;
message NestedMessage {
- optional int32 foo = 1;
+ int32 foo = 1;
}
- optional NestedMessage nested_message = 80;
+ NestedMessage nested_message = 80;
}
enum TestEnum {
diff --git a/ruby/tests/repeated_field_test.rb b/ruby/tests/repeated_field_test.rb
new file mode 100644
index 00000000..25727b7b
--- /dev/null
+++ b/ruby/tests/repeated_field_test.rb
@@ -0,0 +1,640 @@
+#!/usr/bin/ruby
+
+require 'google/protobuf'
+require 'test/unit'
+
+class RepeatedFieldTest < Test::Unit::TestCase
+
+ def test_acts_like_enumerator
+ m = TestMessage.new
+ (Enumerable.instance_methods - TestMessage.new.repeated_string.methods).each do |method_name|
+ assert m.repeated_string.respond_to?(method_name) == true, "does not respond to #{method_name}"
+ end
+ end
+
+ def test_acts_like_an_array
+ m = TestMessage.new
+ arr_methods = ([].methods - TestMessage.new.repeated_string.methods)
+ # jRuby additions to the Array class that we can ignore
+ arr_methods -= [ :indices, :iter_for_each, :iter_for_each_index,
+ :iter_for_each_with_index, :dimensions, :copy_data, :copy_data_simple,
+ :nitems, :iter_for_reverse_each, :indexes]
+ arr_methods.each do |method_name|
+ assert m.repeated_string.respond_to?(method_name) == true, "does not respond to #{method_name}"
+ end
+ end
+
+ def test_first
+ m = TestMessage.new
+ repeated_field_names(TestMessage).each do |field_name|
+ assert_nil m.send(field_name).first
+ end
+ fill_test_msg(m)
+ assert_equal -10, m.repeated_int32.first
+ assert_equal -1_000_000, m.repeated_int64.first
+ assert_equal 10, m.repeated_uint32.first
+ assert_equal 1_000_000, m.repeated_uint64.first
+ assert_equal true, m.repeated_bool.first
+ assert_equal -1.01, m.repeated_float.first.round(2)
+ assert_equal -1.0000000000001, m.repeated_double.first
+ assert_equal 'foo', m.repeated_string.first
+ assert_equal "bar".encode!('ASCII-8BIT'), m.repeated_bytes.first
+ assert_equal TestMessage2.new(:foo => 1), m.repeated_msg.first
+ assert_equal :A, m.repeated_enum.first
+ end
+
+
+ def test_last
+ m = TestMessage.new
+ repeated_field_names(TestMessage).each do |field_name|
+ assert_nil m.send(field_name).first
+ end
+ fill_test_msg(m)
+ assert_equal -11, m.repeated_int32.last
+ assert_equal -1_000_001, m.repeated_int64.last
+ assert_equal 11, m.repeated_uint32.last
+ assert_equal 1_000_001, m.repeated_uint64.last
+ assert_equal false, m.repeated_bool.last
+ assert_equal -1.02, m.repeated_float.last.round(2)
+ assert_equal -1.0000000000002, m.repeated_double.last
+ assert_equal 'bar', m.repeated_string.last
+ assert_equal "foo".encode!('ASCII-8BIT'), m.repeated_bytes.last
+ assert_equal TestMessage2.new(:foo => 2), m.repeated_msg.last
+ assert_equal :B, m.repeated_enum.last
+ end
+
+
+ def test_pop
+ m = TestMessage.new
+ repeated_field_names(TestMessage).each do |field_name|
+ assert_nil m.send(field_name).pop
+ end
+ fill_test_msg(m)
+
+ assert_equal -11, m.repeated_int32.pop
+ assert_equal -10, m.repeated_int32.pop
+ assert_equal -1_000_001, m.repeated_int64.pop
+ assert_equal -1_000_000, m.repeated_int64.pop
+ assert_equal 11, m.repeated_uint32.pop
+ assert_equal 10, m.repeated_uint32.pop
+ assert_equal 1_000_001, m.repeated_uint64.pop
+ assert_equal 1_000_000, m.repeated_uint64.pop
+ assert_equal false, m.repeated_bool.pop
+ assert_equal true, m.repeated_bool.pop
+ assert_equal -1.02, m.repeated_float.pop.round(2)
+ assert_equal -1.01, m.repeated_float.pop.round(2)
+ assert_equal -1.0000000000002, m.repeated_double.pop
+ assert_equal -1.0000000000001, m.repeated_double.pop
+ assert_equal 'bar', m.repeated_string.pop
+ assert_equal 'foo', m.repeated_string.pop
+ assert_equal "foo".encode!('ASCII-8BIT'), m.repeated_bytes.pop
+ assert_equal "bar".encode!('ASCII-8BIT'), m.repeated_bytes.pop
+ assert_equal TestMessage2.new(:foo => 2), m.repeated_msg.pop
+ assert_equal TestMessage2.new(:foo => 1), m.repeated_msg.pop
+ assert_equal :B, m.repeated_enum.pop
+ assert_equal :A, m.repeated_enum.pop
+ repeated_field_names(TestMessage).each do |field_name|
+ assert_nil m.send(field_name).pop
+ end
+
+ fill_test_msg(m)
+ assert_equal ['bar', 'foo'], m.repeated_string.pop(2)
+ assert_nil m.repeated_string.pop
+ end
+
+
+ def test_each
+ m = TestMessage.new
+ 5.times{|i| m.repeated_string << 'string' }
+ count = 0
+ m.repeated_string.each do |val|
+ assert_equal 'string', val
+ count += 1
+ end
+ assert_equal 5, count
+ result = m.repeated_string.each{|val| val + '_junk'}
+ assert_equal ['string'] * 5, result
+ end
+
+
+ def test_empty?
+ m = TestMessage.new
+ assert_equal true, m.repeated_string.empty?
+ m.repeated_string << 'foo'
+ assert_equal false, m.repeated_string.empty?
+ m.repeated_string << 'bar'
+ assert_equal false, m.repeated_string.empty?
+ end
+
+ def test_array_accessor
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr[1]
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr[-2]
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr[20]
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr[1, 2]
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr[0..2]
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr[-1, 1]
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr[10, 12]
+ end
+ end
+
+ def test_array_settor
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr[1] = 'junk'
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr[-2] = 'snappy'
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr[3] = ''
+ end
+ # slight deviation; we are strongly typed, and nil is not allowed
+ # for string types;
+ m.repeated_string[5] = 'spacious'
+ assert_equal ["foo", "snappy", "baz", "", "", "spacious"], m.repeated_string
+
+ #make sure it sests the default types for other fields besides strings
+ %w(repeated_int32 repeated_int64 repeated_uint32 repeated_uint64).each do |field_name|
+ m.send(field_name)[3] = 10
+ assert_equal [0,0,0,10], m.send(field_name)
+ end
+ m.repeated_float[3] = 10.1
+ #wonky mri float handling
+ assert_equal [0,0,0], m.repeated_float.to_a[0..2]
+ assert_equal 10.1, m.repeated_float[3].round(1)
+ m.repeated_double[3] = 10.1
+ assert_equal [0,0,0,10.1], m.repeated_double
+ m.repeated_bool[3] = true
+ assert_equal [false, false, false, true], m.repeated_bool
+ m.repeated_bytes[3] = "bar".encode!('ASCII-8BIT')
+ assert_equal ['', '', '', "bar".encode!('ASCII-8BIT')], m.repeated_bytes
+ m.repeated_msg[3] = TestMessage2.new(:foo => 1)
+ assert_equal [nil, nil, nil, TestMessage2.new(:foo => 1)], m.repeated_msg
+ m.repeated_enum[3] = :A
+ assert_equal [:Default, :Default, :Default, :A], m.repeated_enum
+
+ # check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ # arr[20] = 'spacious'
+ # end
+ # TODO: accessor doesn't allow other ruby-like methods
+ # check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ # arr[1, 2] = 'fizz'
+ # end
+ # check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ # arr[0..2] = 'buzz'
+ # end
+ end
+
+ def test_push
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.push('fizz')
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr << 'fizz'
+ end
+ #TODO: push should support multiple
+ # check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ # arr.push('fizz', 'buzz')
+ # end
+ end
+
+ def test_clear
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.clear
+ end
+ end
+
+ def test_concat
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+ m.repeated_string.concat(['fizz', 'buzz'])
+ assert_equal %w(foo bar baz fizz buzz), m.repeated_string
+ #TODO: concat should return the orig array
+ # check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ # arr.concat(['fizz', 'buzz'])
+ # end
+ end
+
+ def test_equal
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+ assert_equal reference_arr, m.repeated_string
+ reference_arr << 'fizz'
+ assert_not_equal reference_arr, m.repeated_string
+ m.repeated_string << 'fizz'
+ assert_equal reference_arr, m.repeated_string
+ end
+
+ def test_hash
+ # just a sanity check
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+ assert m.repeated_string.hash.is_a?(Integer)
+ hash = m.repeated_string.hash
+ assert_equal hash, m.repeated_string.hash
+ m.repeated_string << 'j'
+ assert_not_equal hash, m.repeated_string.hash
+ end
+
+ def test_plus
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr + ['fizz', 'buzz']
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr += ['fizz', 'buzz']
+ end
+ end
+
+ def test_replace
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.replace(['fizz', 'buzz'])
+ end
+ end
+
+ def test_to_a
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.to_a
+ end
+ end
+
+ def test_to_ary
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.to_ary
+ end
+ end
+
+ # emulate Array behavior
+ ##########################
+
+ def test_collect!
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.collect!{|x| x + "!" }
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.collect!.with_index{|x, i| x[0...i] }
+ end
+ end
+
+ def test_compact!
+ m = TestMessage.new
+ m.repeated_msg << TestMessage2.new(:foo => 1)
+ m.repeated_msg << nil
+ m.repeated_msg << TestMessage2.new(:foo => 2)
+ reference_arr = m.repeated_string.to_a
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.compact!
+ end
+ end
+
+ def test_delete
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.delete('bar')
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.delete('nope')
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.delete('nope'){'within'}
+ end
+ end
+
+ def test_delete_at
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.delete_at(2)
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.delete_at(10)
+ end
+ end
+
+ def test_fill
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.fill("x")
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.fill("z", 2, 2)
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.fill("y", 0..1)
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.fill { |i| (i*i).to_s }
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.fill(-2) { |i| (i*i*i).to_s }
+ end
+ end
+
+ def test_flatten!
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.flatten!
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.flatten!(1)
+ end
+ end
+
+ def test_insert
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.insert(2, 'fizz')
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.insert(3, 'fizz', 'buzz', 'bazz')
+ end
+ end
+
+ def test_inspect
+ m = TestMessage.new
+ assert_equal '[]', m.repeated_string.inspect
+ m.repeated_string << 'foo'
+ assert_equal m.repeated_string.to_a.inspect, m.repeated_string.inspect
+ m.repeated_string << 'bar'
+ assert_equal m.repeated_string.to_a.inspect, m.repeated_string.inspect
+ end
+
+ def test_reverse!
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.reverse!
+ end
+ end
+
+ def test_rotate!
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.rotate!
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.rotate!(2)
+ end
+ end
+
+ def test_select!
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.select! { |v| v =~ /[aeiou]/ }
+ end
+ end
+
+ def test_shift
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ # should return an element
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.shift
+ end
+ # should return an array
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.shift(2)
+ end
+ # should return nil
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.shift
+ end
+ end
+
+ def test_shuffle!
+ m = TestMessage.new
+ m.repeated_string += %w(foo bar baz)
+ orig_repeated_string = m.repeated_string.clone
+ result = m.repeated_string.shuffle!
+ assert_equal m.repeated_string, result
+ # NOTE: sometimes it doesn't change the order...
+ # assert_not_equal m.repeated_string.to_a, orig_repeated_string.to_a
+ end
+
+ def test_slice!
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz bar fizz buzz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.slice!(2)
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.slice!(1,2)
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.slice!(0..1)
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.slice!(10)
+ end
+ end
+
+ def test_sort!
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.sort!
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.sort! { |x,y| y <=> x }
+ end
+ end
+
+ def test_sort_by!
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.sort_by!
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.sort_by!(&:hash)
+ end
+ end
+
+ def test_uniq!
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.uniq!
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.uniq!{|s| s[0] }
+ end
+ end
+
+ def test_unshift
+ m = TestMessage.new
+ reference_arr = %w(foo bar baz)
+ m.repeated_string += reference_arr.clone
+
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.unshift('1')
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.unshift('a', 'b')
+ end
+ check_self_modifying_method(m.repeated_string, reference_arr) do |arr|
+ arr.unshift('')
+ end
+ end
+
+
+ ##### HELPER METHODS
+
+ def check_self_modifying_method(repeated_field, ref_array)
+ expected_result = yield(ref_array)
+ actual_result = yield(repeated_field)
+ if expected_result.is_a?(Enumerator)
+ assert_equal expected_result.to_a, actual_result.to_a
+ else
+ assert_equal expected_result, actual_result
+ end
+ assert_equal ref_array, repeated_field
+ end
+
+
+ def repeated_field_names(klass)
+ klass.descriptor.find_all{|f| f.label == :repeated}.map(&:name)
+ end
+
+
+ def fill_test_msg(test_msg)
+ test_msg.repeated_int32 += [-10, -11]
+ test_msg.repeated_int64 += [-1_000_000, -1_000_001]
+ test_msg.repeated_uint32 += [10, 11]
+ test_msg.repeated_uint64 += [1_000_000, 1_000_001]
+ test_msg.repeated_bool += [true, false]
+ test_msg.repeated_float += [-1.01, -1.02]
+ test_msg.repeated_double += [-1.0000000000001, -1.0000000000002]
+ test_msg.repeated_string += %w(foo bar)
+ test_msg.repeated_bytes += ["bar".encode!('ASCII-8BIT'), "foo".encode!('ASCII-8BIT')]
+ test_msg.repeated_msg << TestMessage2.new(:foo => 1)
+ test_msg.repeated_msg << TestMessage2.new(:foo => 2)
+ test_msg.repeated_enum << :A
+ test_msg.repeated_enum << :B
+ end
+
+
+ pool = Google::Protobuf::DescriptorPool.new
+ pool.build do
+
+ add_message "TestMessage" do
+ optional :optional_int32, :int32, 1
+ optional :optional_int64, :int64, 2
+ optional :optional_uint32, :uint32, 3
+ optional :optional_uint64, :uint64, 4
+ optional :optional_bool, :bool, 5
+ optional :optional_float, :float, 6
+ optional :optional_double, :double, 7
+ optional :optional_string, :string, 8
+ optional :optional_bytes, :bytes, 9
+ optional :optional_msg, :message, 10, "TestMessage2"
+ optional :optional_enum, :enum, 11, "TestEnum"
+
+ repeated :repeated_int32, :int32, 12
+ repeated :repeated_int64, :int64, 13
+ repeated :repeated_uint32, :uint32, 14
+ repeated :repeated_uint64, :uint64, 15
+ repeated :repeated_bool, :bool, 16
+ repeated :repeated_float, :float, 17
+ repeated :repeated_double, :double, 18
+ repeated :repeated_string, :string, 19
+ repeated :repeated_bytes, :bytes, 20
+ repeated :repeated_msg, :message, 21, "TestMessage2"
+ repeated :repeated_enum, :enum, 22, "TestEnum"
+ end
+ add_message "TestMessage2" do
+ optional :foo, :int32, 1
+ end
+
+ add_enum "TestEnum" do
+ value :Default, 0
+ value :A, 1
+ value :B, 2
+ value :C, 3
+ end
+ end
+
+ TestMessage = pool.lookup("TestMessage").msgclass
+ TestMessage2 = pool.lookup("TestMessage2").msgclass
+ TestEnum = pool.lookup("TestEnum").enummodule
+
+
+end
diff --git a/ruby/travis-test.sh b/ruby/travis-test.sh
new file mode 100755
index 00000000..a240dd65
--- /dev/null
+++ b/ruby/travis-test.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+
+# Exit on any error.
+set -e
+
+test_version() {
+ version=$1
+ bash --login -c \
+ "rvm install $version && rvm use $version && \
+ which ruby && \
+ gem install bundler && bundle && \
+ rake test"
+}
+
+test_version $1
diff --git a/src/Makefile.am b/src/Makefile.am
index 02b8cd72..33894dc1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -86,13 +86,19 @@ nobase_include_HEADERS = \
google/protobuf/stubs/stl_util.h \
google/protobuf/stubs/template_util.h \
google/protobuf/stubs/type_traits.h \
+ google/protobuf/any.pb.h \
+ google/protobuf/api.pb.h \
+ google/protobuf/any.h \
google/protobuf/arena.h \
google/protobuf/arenastring.h \
google/protobuf/descriptor_database.h \
google/protobuf/descriptor.h \
google/protobuf/descriptor.pb.h \
+ google/protobuf/duration.pb.h \
google/protobuf/dynamic_message.h \
+ google/protobuf/empty.pb.h \
google/protobuf/extension_set.h \
+ google/protobuf/field_mask.pb.h \
google/protobuf/generated_enum_reflection.h \
google/protobuf/generated_enum_util.h \
google/protobuf/generated_message_reflection.h \
@@ -100,8 +106,8 @@ nobase_include_HEADERS = \
google/protobuf/map_entry.h \
google/protobuf/map_entry_lite.h \
google/protobuf/map_field.h \
- google/protobuf/map_field_lite.h \
google/protobuf/map_field_inl.h \
+ google/protobuf/map_field_lite.h \
google/protobuf/map.h \
google/protobuf/map_type_handler.h \
google/protobuf/message.h \
@@ -112,11 +118,16 @@ nobase_include_HEADERS = \
google/protobuf/repeated_field.h \
google/protobuf/repeated_field_reflection.h \
google/protobuf/service.h \
+ google/protobuf/source_context.pb.h \
+ google/protobuf/struct.pb.h \
google/protobuf/text_format.h \
+ google/protobuf/timestamp.pb.h \
+ google/protobuf/type.pb.h \
google/protobuf/unknown_field_set.h \
google/protobuf/wire_format.h \
google/protobuf/wire_format_lite.h \
google/protobuf/wire_format_lite_inl.h \
+ google/protobuf/wrappers.pb.h \
google/protobuf/io/coded_stream.h \
$(GZHEADERS) \
google/protobuf/io/printer.h \
@@ -136,8 +147,10 @@ nobase_include_HEADERS = \
google/protobuf/compiler/java/java_names.h \
google/protobuf/compiler/javanano/javanano_generator.h \
google/protobuf/compiler/objectivec/objectivec_generator.h \
+ google/protobuf/compiler/objectivec/objectivec_helpers.h \
google/protobuf/compiler/python/python_generator.h \
- google/protobuf/compiler/ruby/ruby_generator.h
+ google/protobuf/compiler/ruby/ruby_generator.h \
+ google/protobuf/compiler/csharp/csharp_generator.h
nobase_nodist_include_HEADERS = \
$(public_config)
@@ -173,25 +186,36 @@ libprotobuf_la_LIBADD = $(PTHREAD_LIBS)
libprotobuf_la_LDFLAGS = -version-info 10:0:0 -export-dynamic -no-undefined
libprotobuf_la_SOURCES = \
$(libprotobuf_lite_la_SOURCES) \
- google/protobuf/stubs/strutil.cc \
- google/protobuf/stubs/strutil.h \
- google/protobuf/stubs/substitute.cc \
- google/protobuf/stubs/substitute.h \
- google/protobuf/stubs/structurally_valid.cc \
+ google/protobuf/any.pb.cc \
+ google/protobuf/api.pb.cc \
+ google/protobuf/any.cc \
google/protobuf/descriptor.cc \
google/protobuf/descriptor_database.cc \
google/protobuf/descriptor.pb.cc \
+ google/protobuf/duration.pb.cc \
google/protobuf/dynamic_message.cc \
+ google/protobuf/empty.pb.cc \
google/protobuf/extension_set_heavy.cc \
+ google/protobuf/field_mask.pb.cc \
google/protobuf/generated_message_reflection.cc \
google/protobuf/map_field.cc \
google/protobuf/message.cc \
google/protobuf/reflection_internal.h \
google/protobuf/reflection_ops.cc \
google/protobuf/service.cc \
+ google/protobuf/source_context.pb.cc \
+ google/protobuf/struct.pb.cc \
+ google/protobuf/stubs/structurally_valid.cc \
+ google/protobuf/stubs/strutil.cc \
+ google/protobuf/stubs/strutil.h \
+ google/protobuf/stubs/substitute.cc \
+ google/protobuf/stubs/substitute.h \
google/protobuf/text_format.cc \
+ google/protobuf/timestamp.pb.cc \
+ google/protobuf/type.pb.cc \
google/protobuf/unknown_field_set.cc \
google/protobuf/wire_format.cc \
+ google/protobuf/wrappers.pb.cc \
google/protobuf/io/gzip_stream.cc \
google/protobuf/io/printer.cc \
google/protobuf/io/strtod.cc \
@@ -243,6 +267,8 @@ libprotoc_la_SOURCES = \
google/protobuf/compiler/java/java_enum.cc \
google/protobuf/compiler/java/java_enum_field.cc \
google/protobuf/compiler/java/java_enum_field.h \
+ google/protobuf/compiler/java/java_enum_field_lite.cc \
+ google/protobuf/compiler/java/java_enum_field_lite.h \
google/protobuf/compiler/java/java_enum.h \
google/protobuf/compiler/java/java_extension.cc \
google/protobuf/compiler/java/java_extension.h \
@@ -257,22 +283,38 @@ libprotoc_la_SOURCES = \
google/protobuf/compiler/java/java_helpers.h \
google/protobuf/compiler/java/java_lazy_message_field.cc \
google/protobuf/compiler/java/java_lazy_message_field.h \
+ google/protobuf/compiler/java/java_lazy_message_field_lite.cc\
+ google/protobuf/compiler/java/java_lazy_message_field_lite.h \
google/protobuf/compiler/java/java_map_field.cc \
google/protobuf/compiler/java/java_map_field.h \
+ google/protobuf/compiler/java/java_map_field_lite.cc \
+ google/protobuf/compiler/java/java_map_field_lite.h \
google/protobuf/compiler/java/java_message.cc \
+ google/protobuf/compiler/java/java_message_lite.cc \
+ google/protobuf/compiler/java/java_message_builder.cc \
+ google/protobuf/compiler/java/java_message_builder_lite.cc \
google/protobuf/compiler/java/java_message_field.cc \
google/protobuf/compiler/java/java_message_field.h \
+ google/protobuf/compiler/java/java_message_field_lite.cc \
+ google/protobuf/compiler/java/java_message_field_lite.h \
google/protobuf/compiler/java/java_message.h \
+ google/protobuf/compiler/java/java_message_lite.h \
+ google/protobuf/compiler/java/java_message_builder.h \
+ google/protobuf/compiler/java/java_message_builder_lite.h \
google/protobuf/compiler/java/java_name_resolver.cc \
google/protobuf/compiler/java/java_name_resolver.h \
google/protobuf/compiler/java/java_primitive_field.cc \
google/protobuf/compiler/java/java_primitive_field.h \
+ google/protobuf/compiler/java/java_primitive_field_lite.cc \
+ google/protobuf/compiler/java/java_primitive_field_lite.h \
google/protobuf/compiler/java/java_shared_code_generator.cc \
google/protobuf/compiler/java/java_shared_code_generator.h \
google/protobuf/compiler/java/java_service.cc \
google/protobuf/compiler/java/java_service.h \
google/protobuf/compiler/java/java_string_field.cc \
google/protobuf/compiler/java/java_string_field.h \
+ google/protobuf/compiler/java/java_string_field_lite.cc \
+ google/protobuf/compiler/java/java_string_field_lite.h \
google/protobuf/compiler/java/java_doc_comment.cc \
google/protobuf/compiler/java/java_doc_comment.h \
google/protobuf/compiler/javanano/javanano_enum.cc \
@@ -322,7 +364,36 @@ libprotoc_la_SOURCES = \
google/protobuf/compiler/objectivec/objectivec_primitive_field.cc \
google/protobuf/compiler/objectivec/objectivec_primitive_field.h \
google/protobuf/compiler/python/python_generator.cc \
- google/protobuf/compiler/ruby/ruby_generator.cc
+ google/protobuf/compiler/ruby/ruby_generator.cc \
+ google/protobuf/compiler/csharp/csharp_enum.cc \
+ google/protobuf/compiler/csharp/csharp_enum.h \
+ google/protobuf/compiler/csharp/csharp_enum_field.cc \
+ google/protobuf/compiler/csharp/csharp_enum_field.h \
+ google/protobuf/compiler/csharp/csharp_extension.cc \
+ google/protobuf/compiler/csharp/csharp_extension.h \
+ google/protobuf/compiler/csharp/csharp_field_base.cc \
+ google/protobuf/compiler/csharp/csharp_field_base.h \
+ google/protobuf/compiler/csharp/csharp_generator.cc \
+ google/protobuf/compiler/csharp/csharp_helpers.cc \
+ google/protobuf/compiler/csharp/csharp_helpers.h \
+ google/protobuf/compiler/csharp/csharp_message.cc \
+ google/protobuf/compiler/csharp/csharp_message.h \
+ google/protobuf/compiler/csharp/csharp_message_field.cc \
+ google/protobuf/compiler/csharp/csharp_message_field.h \
+ google/protobuf/compiler/csharp/csharp_primitive_field.cc \
+ google/protobuf/compiler/csharp/csharp_primitive_field.h \
+ google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc \
+ google/protobuf/compiler/csharp/csharp_repeated_enum_field.h \
+ google/protobuf/compiler/csharp/csharp_repeated_message_field.cc \
+ google/protobuf/compiler/csharp/csharp_repeated_message_field.h \
+ google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc \
+ google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h \
+ google/protobuf/compiler/csharp/csharp_source_generator_base.cc \
+ google/protobuf/compiler/csharp/csharp_source_generator_base.h \
+ google/protobuf/compiler/csharp/csharp_umbrella_class.cc \
+ google/protobuf/compiler/csharp/csharp_umbrella_class.h \
+ google/protobuf/compiler/csharp/csharp_writer.cc \
+ google/protobuf/compiler/csharp/csharp_writer.h
bin_PROGRAMS = protoc
protoc_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la
@@ -331,6 +402,7 @@ protoc_SOURCES = google/protobuf/compiler/main.cc
# Tests ==============================================================
protoc_inputs = \
+ google/protobuf/any_test.proto \
google/protobuf/map_lite_unittest.proto \
google/protobuf/map_proto2_unittest.proto \
google/protobuf/map_unittest.proto \
@@ -355,6 +427,7 @@ protoc_inputs = \
google/protobuf/unittest_preserve_unknown_enum.proto \
google/protobuf/unittest_preserve_unknown_enum2.proto \
google/protobuf/unittest_proto3_arena.proto \
+ google/protobuf/unittest_well_known_types.proto \
google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto \
google/protobuf/compiler/cpp/cpp_test_large_enum_value.proto
@@ -368,6 +441,7 @@ EXTRA_DIST = \
google/protobuf/testdata/golden_message_proto3 \
google/protobuf/testdata/golden_packed_fields_message \
google/protobuf/testdata/bad_utf8_string \
+ google/protobuf/testdata/map_test_data.txt \
google/protobuf/testdata/text_format_unittest_data.txt \
google/protobuf/testdata/text_format_unittest_data_oneof_implemented.txt \
google/protobuf/testdata/text_format_unittest_data_pointy.txt \
@@ -376,6 +450,8 @@ EXTRA_DIST = \
google/protobuf/testdata/text_format_unittest_extensions_data_pointy.txt \
google/protobuf/package_info.h \
google/protobuf/io/package_info.h \
+ google/protobuf/compiler/ruby/ruby_generated_code.proto \
+ google/protobuf/compiler/ruby/ruby_generated_code.rb \
google/protobuf/compiler/package_info.h \
google/protobuf/compiler/zip_output_unittest.sh \
google/protobuf/unittest_enormous_descriptor.proto
@@ -392,6 +468,8 @@ protoc_lite_outputs = \
protoc_outputs = \
$(protoc_lite_outputs) \
+ google/protobuf/any_test.pb.cc \
+ google/protobuf/any_test.pb.h \
google/protobuf/map_proto2_unittest.pb.cc \
google/protobuf/map_proto2_unittest.pb.h \
google/protobuf/map_unittest.pb.cc \
@@ -432,6 +510,8 @@ protoc_outputs = \
google/protobuf/unittest_preserve_unknown_enum2.pb.h \
google/protobuf/unittest_proto3_arena.pb.cc \
google/protobuf/unittest_proto3_arena.pb.h \
+ google/protobuf/unittest_well_known_types.pb.cc \
+ google/protobuf/unittest_well_known_types.pb.h \
google/protobuf/compiler/cpp/cpp_test_large_enum_value.pb.cc \
google/protobuf/compiler/cpp/cpp_test_large_enum_value.pb.h \
google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.cc \
@@ -490,6 +570,7 @@ protobuf_test_SOURCES = \
google/protobuf/stubs/stringprintf_unittest.cc \
google/protobuf/stubs/template_util_unittest.cc \
google/protobuf/stubs/type_traits_unittest.cc \
+ google/protobuf/any_test.cc \
google/protobuf/arenastring_unittest.cc \
google/protobuf/arena_unittest.cc \
google/protobuf/descriptor_database_unittest.cc \
@@ -509,6 +590,7 @@ protobuf_test_SOURCES = \
google/protobuf/repeated_field_unittest.cc \
google/protobuf/text_format_unittest.cc \
google/protobuf/unknown_field_set_unittest.cc \
+ google/protobuf/well_known_types_unittest.cc \
google/protobuf/wire_format_unittest.cc \
google/protobuf/io/coded_stream_unittest.cc \
google/protobuf/io/printer_unittest.cc \
@@ -528,6 +610,7 @@ protobuf_test_SOURCES = \
google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc \
google/protobuf/compiler/python/python_plugin_unittest.cc \
google/protobuf/compiler/ruby/ruby_generator_unittest.cc \
+ google/protobuf/compiler/csharp/csharp_generator_unittest.cc \
$(COMMON_TEST_SOURCES)
nodist_protobuf_test_SOURCES = $(protoc_outputs)
@@ -549,6 +632,8 @@ nodist_protobuf_lazy_descriptor_test_SOURCES = $(protoc_outputs)
protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
protobuf_lite_test_SOURCES = \
+ google/protobuf/arena_test_util.cc \
+ google/protobuf/arena_test_util.h \
google/protobuf/lite_unittest.cc \
google/protobuf/map_lite_test_util.cc \
google/protobuf/map_lite_test_util.h \
diff --git a/src/google/protobuf/any.cc b/src/google/protobuf/any.cc
new file mode 100644
index 00000000..c66fdfad
--- /dev/null
+++ b/src/google/protobuf/any.cc
@@ -0,0 +1,100 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <google/protobuf/any.h>
+
+namespace google {
+namespace protobuf {
+namespace internal {
+
+namespace {
+string GetTypeUrl(const Descriptor* message) {
+ return string(kTypeGoogleApisComPrefix) + message->full_name();
+}
+
+} // namespace
+
+const char kAnyFullTypeName[] = "google.protobuf.Any";
+const char kTypeGoogleApisComPrefix[] = "type.googleapis.com/";
+
+AnyMetadata::AnyMetadata(UrlType* type_url, ValueType* value)
+ : type_url_(type_url), value_(value) {
+}
+
+void AnyMetadata::PackFrom(const Message& message) {
+ type_url_->SetNoArena(&::google::protobuf::internal::GetEmptyString(),
+ GetTypeUrl(message.GetDescriptor()));
+ message.SerializeToString(value_->MutableNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+}
+
+bool AnyMetadata::UnpackTo(Message* message) const {
+ if (!InternalIs(message->GetDescriptor())) {
+ return false;
+ }
+ return message->ParseFromString(
+ value_->GetNoArena(&::google::protobuf::internal::GetEmptyString()));
+}
+
+bool AnyMetadata::InternalIs(const Descriptor* descriptor) const {
+ return type_url_->GetNoArena(
+ &::google::protobuf::internal::GetEmptyString()) ==
+ GetTypeUrl(descriptor);
+}
+
+bool ParseAnyTypeUrl(const string& type_url, string* full_type_name) {
+ const int prefix_len = strlen(kTypeGoogleApisComPrefix);
+ if (strncmp(type_url.c_str(), kTypeGoogleApisComPrefix, prefix_len) == 0) {
+ full_type_name->assign(type_url.data() + prefix_len,
+ type_url.size() - prefix_len);
+ return true;
+ }
+ return true;
+}
+
+
+bool GetAnyFieldDescriptors(const Message& message,
+ const FieldDescriptor** type_url_field,
+ const FieldDescriptor** value_field) {
+ const Descriptor* descriptor = message.GetDescriptor();
+ if (descriptor->full_name() != kAnyFullTypeName) {
+ return false;
+ }
+ *type_url_field = descriptor->FindFieldByNumber(1);
+ *value_field = descriptor->FindFieldByNumber(2);
+ return (*type_url_field != NULL &&
+ (*type_url_field)->type() == FieldDescriptor::TYPE_STRING &&
+ *value_field != NULL &&
+ (*value_field)->type() == FieldDescriptor::TYPE_BYTES);
+}
+
+} // namespace internal
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/any.h b/src/google/protobuf/any.h
new file mode 100644
index 00000000..f681eceb
--- /dev/null
+++ b/src/google/protobuf/any.h
@@ -0,0 +1,90 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_ANY_H__
+#define GOOGLE_PROTOBUF_ANY_H__
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/message.h>
+
+namespace google {
+namespace protobuf {
+namespace internal {
+
+// Helper class used to implement google::protobuf::Any.
+class LIBPROTOBUF_EXPORT AnyMetadata {
+ typedef ArenaStringPtr UrlType;
+ typedef ArenaStringPtr ValueType;
+ public:
+ // AnyMetadata does not take ownership of "type_url" and "value".
+ AnyMetadata(UrlType* type_url, ValueType* value);
+
+ void PackFrom(const Message& message);
+
+ bool UnpackTo(Message* message) const;
+
+ template<typename T>
+ bool Is() const {
+ return InternalIs(T::default_instance().GetDescriptor());
+ }
+
+ private:
+ bool InternalIs(const Descriptor* message) const;
+
+ UrlType* type_url_;
+ ValueType* value_;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(AnyMetadata);
+};
+
+extern const char kAnyFullTypeName[]; // "google.protobuf.Any".
+extern const char kTypeGoogleApisComPrefix[]; // "type.googleapis.com/".
+
+// Get the proto type name from Any::type_url value. For example, passing
+// "type.googleapis.com/rpc.QueryOrigin" will return "rpc.QueryOrigin" in
+// *full_type_name. Returns false if type_url does not start with
+// "type.googleapis.com".
+bool ParseAnyTypeUrl(const string& type_url, string* full_type_name);
+
+// See if message is of type google.protobuf.Any, if so, return the descriptors
+// for "type_url" and "value" fields.
+bool GetAnyFieldDescriptors(const Message& message,
+ const FieldDescriptor** type_url_field,
+ const FieldDescriptor** value_field);
+
+} // namespace internal
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_ANY_H__
diff --git a/src/google/protobuf/any.pb.cc b/src/google/protobuf/any.pb.cc
new file mode 100644
index 00000000..2c492b04
--- /dev/null
+++ b/src/google/protobuf/any.pb.cc
@@ -0,0 +1,482 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/any.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "google/protobuf/any.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+namespace {
+
+const ::google::protobuf::Descriptor* Any_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Any_reflection_ = NULL;
+
+} // namespace
+
+
+void protobuf_AssignDesc_google_2fprotobuf_2fany_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fany_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "google/protobuf/any.proto");
+ GOOGLE_CHECK(file != NULL);
+ Any_descriptor_ = file->message_type(0);
+ static const int Any_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Any, type_url_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Any, value_),
+ };
+ Any_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Any_descriptor_,
+ Any::default_instance_,
+ Any_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Any),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Any, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Any, _is_default_instance_));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_google_2fprotobuf_2fany_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Any_descriptor_, &Any::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_google_2fprotobuf_2fany_2eproto() {
+ delete Any::default_instance_;
+ delete Any_reflection_;
+}
+
+void protobuf_AddDesc_google_2fprotobuf_2fany_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\031google/protobuf/any.proto\022\017google.prot"
+ "obuf\"&\n\003Any\022\020\n\010type_url\030\001 \001(\t\022\r\n\005value\030\002"
+ " \001(\014BC\n\023com.google.protobufB\010AnyProtoP\001\240"
+ "\001\001\242\002\003GPB\252\002\026Google.ProtocolBuffersb\006proto"
+ "3", 161);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "google/protobuf/any.proto", &protobuf_RegisterTypes);
+ Any::default_instance_ = new Any();
+ Any::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2fany_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_google_2fprotobuf_2fany_2eproto {
+ StaticDescriptorInitializer_google_2fprotobuf_2fany_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fany_2eproto();
+ }
+} static_descriptor_initializer_google_2fprotobuf_2fany_2eproto_;
+
+namespace {
+
+static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
+static void MergeFromFail(int line) {
+ GOOGLE_CHECK(false) << __FILE__ << ":" << line;
+}
+
+} // namespace
+
+
+// ===================================================================
+
+void Any::PackFrom(const ::google::protobuf::Message& message) {
+ _any_metadata_.PackFrom(message);
+}
+
+bool Any::UnpackTo(::google::protobuf::Message* message) const {
+ return _any_metadata_.UnpackTo(message);
+}
+
+#ifndef _MSC_VER
+const int Any::kTypeUrlFieldNumber;
+const int Any::kValueFieldNumber;
+#endif // !_MSC_VER
+
+Any::Any()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL), _any_metadata_(&type_url_, &value_) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Any)
+}
+
+void Any::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+Any::Any(const Any& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _any_metadata_(&type_url_, &value_) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Any)
+}
+
+void Any::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ type_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+Any::~Any() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Any)
+ SharedDtor();
+}
+
+void Any::SharedDtor() {
+ type_url_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ }
+}
+
+void Any::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Any::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Any_descriptor_;
+}
+
+const Any& Any::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fany_2eproto();
+ return *default_instance_;
+}
+
+Any* Any::default_instance_ = NULL;
+
+Any* Any::New(::google::protobuf::Arena* arena) const {
+ Any* n = new Any;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Any::Clear() {
+ type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+bool Any::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Any)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional string type_url = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_type_url()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->type_url().data(), this->type_url().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Any.type_url");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(18)) goto parse_value;
+ break;
+ }
+
+ // optional bytes value = 2;
+ case 2: {
+ if (tag == 18) {
+ parse_value:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+ input, this->mutable_value()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Any)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Any)
+ return false;
+#undef DO_
+}
+
+void Any::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Any)
+ // optional string type_url = 1;
+ if (this->type_url().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->type_url().data(), this->type_url().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Any.type_url");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->type_url(), output);
+ }
+
+ // optional bytes value = 2;
+ if (this->value().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
+ 2, this->value(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Any)
+}
+
+::google::protobuf::uint8* Any::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Any)
+ // optional string type_url = 1;
+ if (this->type_url().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->type_url().data(), this->type_url().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Any.type_url");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->type_url(), target);
+ }
+
+ // optional bytes value = 2;
+ if (this->value().size() > 0) {
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+ 2, this->value(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Any)
+ return target;
+}
+
+int Any::ByteSize() const {
+ int total_size = 0;
+
+ // optional string type_url = 1;
+ if (this->type_url().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->type_url());
+ }
+
+ // optional bytes value = 2;
+ if (this->value().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::BytesSize(
+ this->value());
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Any::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Any* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Any>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Any::MergeFrom(const Any& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.type_url().size() > 0) {
+
+ type_url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.type_url_);
+ }
+ if (from.value().size() > 0) {
+
+ value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
+ }
+}
+
+void Any::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Any::CopyFrom(const Any& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Any::IsInitialized() const {
+
+ return true;
+}
+
+void Any::Swap(Any* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Any::InternalSwap(Any* other) {
+ type_url_.Swap(&other->type_url_);
+ value_.Swap(&other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Any::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Any_descriptor_;
+ metadata.reflection = Any_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Any
+
+// optional string type_url = 1;
+void Any::clear_type_url() {
+ type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Any::type_url() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Any.type_url)
+ return type_url_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Any::set_type_url(const ::std::string& value) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Any.type_url)
+}
+ void Any::set_type_url(const char* value) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Any.type_url)
+}
+ void Any::set_type_url(const char* value, size_t size) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Any.type_url)
+}
+ ::std::string* Any::mutable_type_url() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Any.type_url)
+ return type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Any::release_type_url() {
+
+ return type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Any::set_allocated_type_url(::std::string* type_url) {
+ if (type_url != NULL) {
+
+ } else {
+
+ }
+ type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_url);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Any.type_url)
+}
+
+// optional bytes value = 2;
+void Any::clear_value() {
+ value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Any::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Any.value)
+ return value_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Any::set_value(const ::std::string& value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Any.value)
+}
+ void Any::set_value(const char* value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Any.value)
+}
+ void Any::set_value(const void* value, size_t size) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Any.value)
+}
+ ::std::string* Any::mutable_value() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Any.value)
+ return value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Any::release_value() {
+
+ return value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Any::set_allocated_value(::std::string* value) {
+ if (value != NULL) {
+
+ } else {
+
+ }
+ value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Any.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/google/protobuf/any.pb.h b/src/google/protobuf/any.pb.h
new file mode 100644
index 00000000..c324c4af
--- /dev/null
+++ b/src/google/protobuf/any.pb.h
@@ -0,0 +1,250 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/any.proto
+
+#ifndef PROTOBUF_google_2fprotobuf_2fany_2eproto__INCLUDED
+#define PROTOBUF_google_2fprotobuf_2fany_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3000000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+#include "google/protobuf/any.h"
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+// Internal implementation detail -- do not call these.
+void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fany_2eproto();
+void protobuf_AssignDesc_google_2fprotobuf_2fany_2eproto();
+void protobuf_ShutdownFile_google_2fprotobuf_2fany_2eproto();
+
+class Any;
+
+// ===================================================================
+
+class LIBPROTOBUF_EXPORT Any : public ::google::protobuf::Message {
+ public:
+ Any();
+ virtual ~Any();
+
+ Any(const Any& from);
+
+ inline Any& operator=(const Any& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Any& default_instance();
+
+ // implements Any -----------------------------------------------
+
+ void PackFrom(const ::google::protobuf::Message& message);
+ bool UnpackTo(::google::protobuf::Message* message) const;
+ template<typename T> bool Is() const {
+ return _any_metadata_.Is<T>();
+ }
+
+ void Swap(Any* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Any* New() const { return New(NULL); }
+
+ Any* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Any& from);
+ void MergeFrom(const Any& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Any* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string type_url = 1;
+ void clear_type_url();
+ static const int kTypeUrlFieldNumber = 1;
+ const ::std::string& type_url() const;
+ void set_type_url(const ::std::string& value);
+ void set_type_url(const char* value);
+ void set_type_url(const char* value, size_t size);
+ ::std::string* mutable_type_url();
+ ::std::string* release_type_url();
+ void set_allocated_type_url(::std::string* type_url);
+
+ // optional bytes value = 2;
+ void clear_value();
+ static const int kValueFieldNumber = 2;
+ const ::std::string& value() const;
+ void set_value(const ::std::string& value);
+ void set_value(const char* value);
+ void set_value(const void* value, size_t size);
+ ::std::string* mutable_value();
+ ::std::string* release_value();
+ void set_allocated_value(::std::string* value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Any)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::internal::ArenaStringPtr type_url_;
+ ::google::protobuf::internal::ArenaStringPtr value_;
+ mutable int _cached_size_;
+ ::google::protobuf::internal::AnyMetadata _any_metadata_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fany_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fany_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fany_2eproto();
+
+ void InitAsDefaultInstance();
+ static Any* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// Any
+
+// optional string type_url = 1;
+inline void Any::clear_type_url() {
+ type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Any::type_url() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Any.type_url)
+ return type_url_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Any::set_type_url(const ::std::string& value) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Any.type_url)
+}
+inline void Any::set_type_url(const char* value) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Any.type_url)
+}
+inline void Any::set_type_url(const char* value, size_t size) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Any.type_url)
+}
+inline ::std::string* Any::mutable_type_url() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Any.type_url)
+ return type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Any::release_type_url() {
+
+ return type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Any::set_allocated_type_url(::std::string* type_url) {
+ if (type_url != NULL) {
+
+ } else {
+
+ }
+ type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_url);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Any.type_url)
+}
+
+// optional bytes value = 2;
+inline void Any::clear_value() {
+ value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Any::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Any.value)
+ return value_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Any::set_value(const ::std::string& value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Any.value)
+}
+inline void Any::set_value(const char* value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Any.value)
+}
+inline void Any::set_value(const void* value, size_t size) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Any.value)
+}
+inline ::std::string* Any::mutable_value() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Any.value)
+ return value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Any::release_value() {
+
+ return value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Any::set_allocated_value(::std::string* value) {
+ if (value != NULL) {
+
+ } else {
+
+ }
+ value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Any.value)
+}
+
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_google_2fprotobuf_2fany_2eproto__INCLUDED
diff --git a/src/google/protobuf/any.proto b/src/google/protobuf/any.proto
index 0bb375ce..e1780fe5 100644
--- a/src/google/protobuf/any.proto
+++ b/src/google/protobuf/any.proto
@@ -35,6 +35,7 @@ option java_generate_equals_and_hash = true;
option java_multiple_files = true;
option java_outer_classname = "AnyProto";
option java_package = "com.google.protobuf";
+option csharp_namespace = "Google.ProtocolBuffers";
option objc_class_prefix = "GPB";
diff --git a/src/google/protobuf/any_test.cc b/src/google/protobuf/any_test.cc
new file mode 100644
index 00000000..1bfaa63d
--- /dev/null
+++ b/src/google/protobuf/any_test.cc
@@ -0,0 +1,89 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <google/protobuf/any_test.pb.h>
+#include <gtest/gtest.h>
+
+namespace google {
+namespace protobuf {
+namespace {
+
+TEST(AnyTest, TestPackAndUnpack) {
+ protobuf_unittest::TestAny submessage;
+ submessage.set_int32_value(12345);
+ protobuf_unittest::TestAny message;
+ message.mutable_any_value()->PackFrom(submessage);
+
+ string data = message.SerializeAsString();
+
+ ASSERT_TRUE(message.ParseFromString(data));
+ EXPECT_TRUE(message.has_any_value());
+ ASSERT_TRUE(message.any_value().UnpackTo(&submessage));
+ EXPECT_EQ(12345, submessage.int32_value());
+}
+
+TEST(AnyTest, TestPackAndUnpackAny) {
+ // We can pack a Any message inside another Any message.
+ protobuf_unittest::TestAny submessage;
+ submessage.set_int32_value(12345);
+ google::protobuf::Any any;
+ any.PackFrom(submessage);
+ protobuf_unittest::TestAny message;
+ message.mutable_any_value()->PackFrom(any);
+
+ string data = message.SerializeAsString();
+
+ ASSERT_TRUE(message.ParseFromString(data));
+ EXPECT_TRUE(message.has_any_value());
+ ASSERT_TRUE(message.any_value().UnpackTo(&any));
+ ASSERT_TRUE(any.UnpackTo(&submessage));
+ EXPECT_EQ(12345, submessage.int32_value());
+}
+
+TEST(AnyTest, TestIs) {
+ protobuf_unittest::TestAny submessage;
+ submessage.set_int32_value(12345);
+ google::protobuf::Any any;
+ any.PackFrom(submessage);
+ ASSERT_TRUE(any.ParseFromString(any.SerializeAsString()));
+ EXPECT_TRUE(any.Is<protobuf_unittest::TestAny>());
+ EXPECT_FALSE(any.Is<google::protobuf::Any>());
+
+ protobuf_unittest::TestAny message;
+ message.mutable_any_value()->PackFrom(any);
+ ASSERT_TRUE(message.ParseFromString(message.SerializeAsString()));
+ EXPECT_FALSE(message.any_value().Is<protobuf_unittest::TestAny>());
+ EXPECT_TRUE(message.any_value().Is<google::protobuf::Any>());
+}
+
+} // namespace
+} // namespace protobuf
+
+} // namespace google
diff --git a/objectivec/GPBExtensionRegistry_PackagePrivate.h b/src/google/protobuf/any_test.proto
index 968cb1fd..0c5b30ba 100644
--- a/objectivec/GPBExtensionRegistry_PackagePrivate.h
+++ b/src/google/protobuf/any_test.proto
@@ -28,13 +28,14 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#import <Foundation/Foundation.h>
+syntax = "proto3";
-#import "GPBExtensionRegistry.h"
+package protobuf_unittest;
-@interface GPBExtensionRegistry ()
+import "google/protobuf/any.proto";
-- (void)addExtension:(GPBExtensionField *)extension;
-- (void)addExtensions:(GPBExtensionRegistry *)registry;
-
-@end
+message TestAny {
+ int32 int32_value = 1;
+ google.protobuf.Any any_value = 2;
+ repeated google.protobuf.Any repeated_any_value = 3;
+}
diff --git a/src/google/protobuf/api.pb.cc b/src/google/protobuf/api.pb.cc
new file mode 100644
index 00000000..434320dc
--- /dev/null
+++ b/src/google/protobuf/api.pb.cc
@@ -0,0 +1,1400 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/api.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "google/protobuf/api.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+namespace {
+
+const ::google::protobuf::Descriptor* Api_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Api_reflection_ = NULL;
+const ::google::protobuf::Descriptor* Method_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Method_reflection_ = NULL;
+
+} // namespace
+
+
+void protobuf_AssignDesc_google_2fprotobuf_2fapi_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fapi_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "google/protobuf/api.proto");
+ GOOGLE_CHECK(file != NULL);
+ Api_descriptor_ = file->message_type(0);
+ static const int Api_offsets_[5] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Api, name_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Api, methods_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Api, options_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Api, version_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Api, source_context_),
+ };
+ Api_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Api_descriptor_,
+ Api::default_instance_,
+ Api_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Api),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Api, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Api, _is_default_instance_));
+ Method_descriptor_ = file->message_type(1);
+ static const int Method_offsets_[6] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Method, name_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Method, request_type_url_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Method, request_streaming_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Method, response_type_url_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Method, response_streaming_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Method, options_),
+ };
+ Method_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Method_descriptor_,
+ Method::default_instance_,
+ Method_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Method),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Method, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Method, _is_default_instance_));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_google_2fprotobuf_2fapi_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Api_descriptor_, &Api::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Method_descriptor_, &Method::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_google_2fprotobuf_2fapi_2eproto() {
+ delete Api::default_instance_;
+ delete Api_reflection_;
+ delete Method::default_instance_;
+ delete Method_reflection_;
+}
+
+void protobuf_AddDesc_google_2fprotobuf_2fapi_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::protobuf_AddDesc_google_2fprotobuf_2fsource_5fcontext_2eproto();
+ ::google::protobuf::protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\031google/protobuf/api.proto\022\017google.prot"
+ "obuf\032$google/protobuf/source_context.pro"
+ "to\032\032google/protobuf/type.proto\"\260\001\n\003Api\022\014"
+ "\n\004name\030\001 \001(\t\022(\n\007methods\030\002 \003(\0132\027.google.p"
+ "rotobuf.Method\022(\n\007options\030\003 \003(\0132\027.google"
+ ".protobuf.Option\022\017\n\007version\030\004 \001(\t\0226\n\016sou"
+ "rce_context\030\005 \001(\0132\036.google.protobuf.Sour"
+ "ceContext\"\254\001\n\006Method\022\014\n\004name\030\001 \001(\t\022\030\n\020re"
+ "quest_type_url\030\002 \001(\t\022\031\n\021request_streamin"
+ "g\030\003 \001(\010\022\031\n\021response_type_url\030\004 \001(\t\022\032\n\022re"
+ "sponse_streaming\030\005 \001(\010\022(\n\007options\030\006 \003(\0132"
+ "\027.google.protobuf.OptionB\'\n\023com.google.p"
+ "rotobufB\010ApiProtoP\001\242\002\003GPBb\006proto3", 513);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "google/protobuf/api.proto", &protobuf_RegisterTypes);
+ Api::default_instance_ = new Api();
+ Method::default_instance_ = new Method();
+ Api::default_instance_->InitAsDefaultInstance();
+ Method::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2fapi_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_google_2fprotobuf_2fapi_2eproto {
+ StaticDescriptorInitializer_google_2fprotobuf_2fapi_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fapi_2eproto();
+ }
+} static_descriptor_initializer_google_2fprotobuf_2fapi_2eproto_;
+
+namespace {
+
+static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
+static void MergeFromFail(int line) {
+ GOOGLE_CHECK(false) << __FILE__ << ":" << line;
+}
+
+} // namespace
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Api::kNameFieldNumber;
+const int Api::kMethodsFieldNumber;
+const int Api::kOptionsFieldNumber;
+const int Api::kVersionFieldNumber;
+const int Api::kSourceContextFieldNumber;
+#endif // !_MSC_VER
+
+Api::Api()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Api)
+}
+
+void Api::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+ source_context_ = const_cast< ::google::protobuf::SourceContext*>(&::google::protobuf::SourceContext::default_instance());
+}
+
+Api::Api(const Api& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Api)
+}
+
+void Api::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ version_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ source_context_ = NULL;
+}
+
+Api::~Api() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Api)
+ SharedDtor();
+}
+
+void Api::SharedDtor() {
+ name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ version_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ delete source_context_;
+ }
+}
+
+void Api::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Api::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Api_descriptor_;
+}
+
+const Api& Api::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fapi_2eproto();
+ return *default_instance_;
+}
+
+Api* Api::default_instance_ = NULL;
+
+Api* Api::New(::google::protobuf::Arena* arena) const {
+ Api* n = new Api;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Api::Clear() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (GetArenaNoVirtual() == NULL && source_context_ != NULL) delete source_context_;
+ source_context_ = NULL;
+ methods_.Clear();
+ options_.Clear();
+}
+
+bool Api::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Api)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional string name = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_name()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Api.name");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(18)) goto parse_methods;
+ break;
+ }
+
+ // repeated .google.protobuf.Method methods = 2;
+ case 2: {
+ if (tag == 18) {
+ parse_methods:
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_methods:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_methods()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(18)) goto parse_loop_methods;
+ if (input->ExpectTag(26)) goto parse_loop_options;
+ input->UnsafeDecrementRecursionDepth();
+ break;
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ case 3: {
+ if (tag == 26) {
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_options:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_options()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(26)) goto parse_loop_options;
+ input->UnsafeDecrementRecursionDepth();
+ if (input->ExpectTag(34)) goto parse_version;
+ break;
+ }
+
+ // optional string version = 4;
+ case 4: {
+ if (tag == 34) {
+ parse_version:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_version()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->version().data(), this->version().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Api.version");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(42)) goto parse_source_context;
+ break;
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 5;
+ case 5: {
+ if (tag == 42) {
+ parse_source_context:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ input, mutable_source_context()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Api)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Api)
+ return false;
+#undef DO_
+}
+
+void Api::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Api)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Api.name");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->name(), output);
+ }
+
+ // repeated .google.protobuf.Method methods = 2;
+ for (unsigned int i = 0, n = this->methods_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 2, this->methods(i), output);
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 3, this->options(i), output);
+ }
+
+ // optional string version = 4;
+ if (this->version().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->version().data(), this->version().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Api.version");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 4, this->version(), output);
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 5;
+ if (this->has_source_context()) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 5, *this->source_context_, output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Api)
+}
+
+::google::protobuf::uint8* Api::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Api)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Api.name");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->name(), target);
+ }
+
+ // repeated .google.protobuf.Method methods = 2;
+ for (unsigned int i = 0, n = this->methods_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 2, this->methods(i), target);
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 3, this->options(i), target);
+ }
+
+ // optional string version = 4;
+ if (this->version().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->version().data(), this->version().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Api.version");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 4, this->version(), target);
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 5;
+ if (this->has_source_context()) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 5, *this->source_context_, target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Api)
+ return target;
+}
+
+int Api::ByteSize() const {
+ int total_size = 0;
+
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->name());
+ }
+
+ // optional string version = 4;
+ if (this->version().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->version());
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 5;
+ if (this->has_source_context()) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ *this->source_context_);
+ }
+
+ // repeated .google.protobuf.Method methods = 2;
+ total_size += 1 * this->methods_size();
+ for (int i = 0; i < this->methods_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->methods(i));
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ total_size += 1 * this->options_size();
+ for (int i = 0; i < this->options_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->options(i));
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Api::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Api* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Api>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Api::MergeFrom(const Api& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ methods_.MergeFrom(from.methods_);
+ options_.MergeFrom(from.options_);
+ if (from.name().size() > 0) {
+
+ name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+ }
+ if (from.version().size() > 0) {
+
+ version_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.version_);
+ }
+ if (from.has_source_context()) {
+ mutable_source_context()->::google::protobuf::SourceContext::MergeFrom(from.source_context());
+ }
+}
+
+void Api::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Api::CopyFrom(const Api& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Api::IsInitialized() const {
+
+ return true;
+}
+
+void Api::Swap(Api* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Api::InternalSwap(Api* other) {
+ name_.Swap(&other->name_);
+ methods_.UnsafeArenaSwap(&other->methods_);
+ options_.UnsafeArenaSwap(&other->options_);
+ version_.Swap(&other->version_);
+ std::swap(source_context_, other->source_context_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Api::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Api_descriptor_;
+ metadata.reflection = Api_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Api
+
+// optional string name = 1;
+void Api::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Api::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Api.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Api::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Api.name)
+}
+ void Api::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Api.name)
+}
+ void Api::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Api.name)
+}
+ ::std::string* Api::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Api.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Api::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Api::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Api.name)
+}
+
+// repeated .google.protobuf.Method methods = 2;
+int Api::methods_size() const {
+ return methods_.size();
+}
+void Api::clear_methods() {
+ methods_.Clear();
+}
+ const ::google::protobuf::Method& Api::methods(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Api.methods)
+ return methods_.Get(index);
+}
+ ::google::protobuf::Method* Api::mutable_methods(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Api.methods)
+ return methods_.Mutable(index);
+}
+ ::google::protobuf::Method* Api::add_methods() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Api.methods)
+ return methods_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Method >&
+Api::methods() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Api.methods)
+ return methods_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Method >*
+Api::mutable_methods() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Api.methods)
+ return &methods_;
+}
+
+// repeated .google.protobuf.Option options = 3;
+int Api::options_size() const {
+ return options_.size();
+}
+void Api::clear_options() {
+ options_.Clear();
+}
+ const ::google::protobuf::Option& Api::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Api.options)
+ return options_.Get(index);
+}
+ ::google::protobuf::Option* Api::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Api.options)
+ return options_.Mutable(index);
+}
+ ::google::protobuf::Option* Api::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Api.options)
+ return options_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+Api::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Api.options)
+ return options_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+Api::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Api.options)
+ return &options_;
+}
+
+// optional string version = 4;
+void Api::clear_version() {
+ version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Api::version() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Api.version)
+ return version_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Api::set_version(const ::std::string& value) {
+
+ version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Api.version)
+}
+ void Api::set_version(const char* value) {
+
+ version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Api.version)
+}
+ void Api::set_version(const char* value, size_t size) {
+
+ version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Api.version)
+}
+ ::std::string* Api::mutable_version() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Api.version)
+ return version_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Api::release_version() {
+
+ return version_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Api::set_allocated_version(::std::string* version) {
+ if (version != NULL) {
+
+ } else {
+
+ }
+ version_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), version);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Api.version)
+}
+
+// optional .google.protobuf.SourceContext source_context = 5;
+bool Api::has_source_context() const {
+ return !_is_default_instance_ && source_context_ != NULL;
+}
+void Api::clear_source_context() {
+ if (GetArenaNoVirtual() == NULL && source_context_ != NULL) delete source_context_;
+ source_context_ = NULL;
+}
+ const ::google::protobuf::SourceContext& Api::source_context() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Api.source_context)
+ return source_context_ != NULL ? *source_context_ : *default_instance_->source_context_;
+}
+ ::google::protobuf::SourceContext* Api::mutable_source_context() {
+
+ if (source_context_ == NULL) {
+ source_context_ = new ::google::protobuf::SourceContext;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Api.source_context)
+ return source_context_;
+}
+ ::google::protobuf::SourceContext* Api::release_source_context() {
+
+ ::google::protobuf::SourceContext* temp = source_context_;
+ source_context_ = NULL;
+ return temp;
+}
+ void Api::set_allocated_source_context(::google::protobuf::SourceContext* source_context) {
+ delete source_context_;
+ source_context_ = source_context;
+ if (source_context) {
+
+ } else {
+
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Api.source_context)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Method::kNameFieldNumber;
+const int Method::kRequestTypeUrlFieldNumber;
+const int Method::kRequestStreamingFieldNumber;
+const int Method::kResponseTypeUrlFieldNumber;
+const int Method::kResponseStreamingFieldNumber;
+const int Method::kOptionsFieldNumber;
+#endif // !_MSC_VER
+
+Method::Method()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Method)
+}
+
+void Method::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+Method::Method(const Method& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Method)
+}
+
+void Method::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ request_type_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ request_streaming_ = false;
+ response_type_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ response_streaming_ = false;
+}
+
+Method::~Method() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Method)
+ SharedDtor();
+}
+
+void Method::SharedDtor() {
+ name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ request_type_url_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ response_type_url_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ }
+}
+
+void Method::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Method::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Method_descriptor_;
+}
+
+const Method& Method::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fapi_2eproto();
+ return *default_instance_;
+}
+
+Method* Method::default_instance_ = NULL;
+
+Method* Method::New(::google::protobuf::Arena* arena) const {
+ Method* n = new Method;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Method::Clear() {
+#define ZR_HELPER_(f) reinterpret_cast<char*>(\
+ &reinterpret_cast<Method*>(16)->f)
+
+#define ZR_(first, last) do {\
+ ::memset(&first, 0,\
+ ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
+} while (0)
+
+ ZR_(request_streaming_, response_streaming_);
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ request_type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ response_type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+
+#undef ZR_HELPER_
+#undef ZR_
+
+ options_.Clear();
+}
+
+bool Method::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Method)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional string name = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_name()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Method.name");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(18)) goto parse_request_type_url;
+ break;
+ }
+
+ // optional string request_type_url = 2;
+ case 2: {
+ if (tag == 18) {
+ parse_request_type_url:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_request_type_url()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->request_type_url().data(), this->request_type_url().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Method.request_type_url");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(24)) goto parse_request_streaming;
+ break;
+ }
+
+ // optional bool request_streaming = 3;
+ case 3: {
+ if (tag == 24) {
+ parse_request_streaming:
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &request_streaming_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(34)) goto parse_response_type_url;
+ break;
+ }
+
+ // optional string response_type_url = 4;
+ case 4: {
+ if (tag == 34) {
+ parse_response_type_url:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_response_type_url()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->response_type_url().data(), this->response_type_url().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Method.response_type_url");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(40)) goto parse_response_streaming;
+ break;
+ }
+
+ // optional bool response_streaming = 5;
+ case 5: {
+ if (tag == 40) {
+ parse_response_streaming:
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &response_streaming_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(50)) goto parse_options;
+ break;
+ }
+
+ // repeated .google.protobuf.Option options = 6;
+ case 6: {
+ if (tag == 50) {
+ parse_options:
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_options:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_options()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(50)) goto parse_loop_options;
+ input->UnsafeDecrementRecursionDepth();
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Method)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Method)
+ return false;
+#undef DO_
+}
+
+void Method::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Method)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Method.name");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->name(), output);
+ }
+
+ // optional string request_type_url = 2;
+ if (this->request_type_url().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->request_type_url().data(), this->request_type_url().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Method.request_type_url");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 2, this->request_type_url(), output);
+ }
+
+ // optional bool request_streaming = 3;
+ if (this->request_streaming() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->request_streaming(), output);
+ }
+
+ // optional string response_type_url = 4;
+ if (this->response_type_url().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->response_type_url().data(), this->response_type_url().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Method.response_type_url");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 4, this->response_type_url(), output);
+ }
+
+ // optional bool response_streaming = 5;
+ if (this->response_streaming() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(5, this->response_streaming(), output);
+ }
+
+ // repeated .google.protobuf.Option options = 6;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 6, this->options(i), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Method)
+}
+
+::google::protobuf::uint8* Method::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Method)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Method.name");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->name(), target);
+ }
+
+ // optional string request_type_url = 2;
+ if (this->request_type_url().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->request_type_url().data(), this->request_type_url().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Method.request_type_url");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 2, this->request_type_url(), target);
+ }
+
+ // optional bool request_streaming = 3;
+ if (this->request_streaming() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->request_streaming(), target);
+ }
+
+ // optional string response_type_url = 4;
+ if (this->response_type_url().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->response_type_url().data(), this->response_type_url().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Method.response_type_url");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 4, this->response_type_url(), target);
+ }
+
+ // optional bool response_streaming = 5;
+ if (this->response_streaming() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(5, this->response_streaming(), target);
+ }
+
+ // repeated .google.protobuf.Option options = 6;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 6, this->options(i), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Method)
+ return target;
+}
+
+int Method::ByteSize() const {
+ int total_size = 0;
+
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->name());
+ }
+
+ // optional string request_type_url = 2;
+ if (this->request_type_url().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->request_type_url());
+ }
+
+ // optional bool request_streaming = 3;
+ if (this->request_streaming() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // optional string response_type_url = 4;
+ if (this->response_type_url().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->response_type_url());
+ }
+
+ // optional bool response_streaming = 5;
+ if (this->response_streaming() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // repeated .google.protobuf.Option options = 6;
+ total_size += 1 * this->options_size();
+ for (int i = 0; i < this->options_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->options(i));
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Method::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Method* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Method>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Method::MergeFrom(const Method& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ options_.MergeFrom(from.options_);
+ if (from.name().size() > 0) {
+
+ name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+ }
+ if (from.request_type_url().size() > 0) {
+
+ request_type_url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.request_type_url_);
+ }
+ if (from.request_streaming() != 0) {
+ set_request_streaming(from.request_streaming());
+ }
+ if (from.response_type_url().size() > 0) {
+
+ response_type_url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.response_type_url_);
+ }
+ if (from.response_streaming() != 0) {
+ set_response_streaming(from.response_streaming());
+ }
+}
+
+void Method::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Method::CopyFrom(const Method& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Method::IsInitialized() const {
+
+ return true;
+}
+
+void Method::Swap(Method* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Method::InternalSwap(Method* other) {
+ name_.Swap(&other->name_);
+ request_type_url_.Swap(&other->request_type_url_);
+ std::swap(request_streaming_, other->request_streaming_);
+ response_type_url_.Swap(&other->response_type_url_);
+ std::swap(response_streaming_, other->response_streaming_);
+ options_.UnsafeArenaSwap(&other->options_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Method::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Method_descriptor_;
+ metadata.reflection = Method_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Method
+
+// optional string name = 1;
+void Method::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Method::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Method::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Method.name)
+}
+ void Method::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Method.name)
+}
+ void Method::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Method.name)
+}
+ ::std::string* Method::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Method.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Method::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Method::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Method.name)
+}
+
+// optional string request_type_url = 2;
+void Method::clear_request_type_url() {
+ request_type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Method::request_type_url() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.request_type_url)
+ return request_type_url_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Method::set_request_type_url(const ::std::string& value) {
+
+ request_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Method.request_type_url)
+}
+ void Method::set_request_type_url(const char* value) {
+
+ request_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Method.request_type_url)
+}
+ void Method::set_request_type_url(const char* value, size_t size) {
+
+ request_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Method.request_type_url)
+}
+ ::std::string* Method::mutable_request_type_url() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Method.request_type_url)
+ return request_type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Method::release_request_type_url() {
+
+ return request_type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Method::set_allocated_request_type_url(::std::string* request_type_url) {
+ if (request_type_url != NULL) {
+
+ } else {
+
+ }
+ request_type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), request_type_url);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Method.request_type_url)
+}
+
+// optional bool request_streaming = 3;
+void Method::clear_request_streaming() {
+ request_streaming_ = false;
+}
+ bool Method::request_streaming() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.request_streaming)
+ return request_streaming_;
+}
+ void Method::set_request_streaming(bool value) {
+
+ request_streaming_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Method.request_streaming)
+}
+
+// optional string response_type_url = 4;
+void Method::clear_response_type_url() {
+ response_type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Method::response_type_url() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.response_type_url)
+ return response_type_url_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Method::set_response_type_url(const ::std::string& value) {
+
+ response_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Method.response_type_url)
+}
+ void Method::set_response_type_url(const char* value) {
+
+ response_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Method.response_type_url)
+}
+ void Method::set_response_type_url(const char* value, size_t size) {
+
+ response_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Method.response_type_url)
+}
+ ::std::string* Method::mutable_response_type_url() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Method.response_type_url)
+ return response_type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Method::release_response_type_url() {
+
+ return response_type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Method::set_allocated_response_type_url(::std::string* response_type_url) {
+ if (response_type_url != NULL) {
+
+ } else {
+
+ }
+ response_type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), response_type_url);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Method.response_type_url)
+}
+
+// optional bool response_streaming = 5;
+void Method::clear_response_streaming() {
+ response_streaming_ = false;
+}
+ bool Method::response_streaming() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.response_streaming)
+ return response_streaming_;
+}
+ void Method::set_response_streaming(bool value) {
+
+ response_streaming_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Method.response_streaming)
+}
+
+// repeated .google.protobuf.Option options = 6;
+int Method::options_size() const {
+ return options_.size();
+}
+void Method::clear_options() {
+ options_.Clear();
+}
+ const ::google::protobuf::Option& Method::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.options)
+ return options_.Get(index);
+}
+ ::google::protobuf::Option* Method::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Method.options)
+ return options_.Mutable(index);
+}
+ ::google::protobuf::Option* Method::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Method.options)
+ return options_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+Method::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Method.options)
+ return options_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+Method::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Method.options)
+ return &options_;
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/google/protobuf/api.pb.h b/src/google/protobuf/api.pb.h
new file mode 100644
index 00000000..985adc5d
--- /dev/null
+++ b/src/google/protobuf/api.pb.h
@@ -0,0 +1,703 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/api.proto
+
+#ifndef PROTOBUF_google_2fprotobuf_2fapi_2eproto__INCLUDED
+#define PROTOBUF_google_2fprotobuf_2fapi_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3000000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+#include "google/protobuf/source_context.pb.h"
+#include "google/protobuf/type.pb.h"
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+// Internal implementation detail -- do not call these.
+void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fapi_2eproto();
+void protobuf_AssignDesc_google_2fprotobuf_2fapi_2eproto();
+void protobuf_ShutdownFile_google_2fprotobuf_2fapi_2eproto();
+
+class Api;
+class Method;
+
+// ===================================================================
+
+class LIBPROTOBUF_EXPORT Api : public ::google::protobuf::Message {
+ public:
+ Api();
+ virtual ~Api();
+
+ Api(const Api& from);
+
+ inline Api& operator=(const Api& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Api& default_instance();
+
+ void Swap(Api* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Api* New() const { return New(NULL); }
+
+ Api* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Api& from);
+ void MergeFrom(const Api& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Api* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string name = 1;
+ void clear_name();
+ static const int kNameFieldNumber = 1;
+ const ::std::string& name() const;
+ void set_name(const ::std::string& value);
+ void set_name(const char* value);
+ void set_name(const char* value, size_t size);
+ ::std::string* mutable_name();
+ ::std::string* release_name();
+ void set_allocated_name(::std::string* name);
+
+ // repeated .google.protobuf.Method methods = 2;
+ int methods_size() const;
+ void clear_methods();
+ static const int kMethodsFieldNumber = 2;
+ const ::google::protobuf::Method& methods(int index) const;
+ ::google::protobuf::Method* mutable_methods(int index);
+ ::google::protobuf::Method* add_methods();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Method >&
+ methods() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Method >*
+ mutable_methods();
+
+ // repeated .google.protobuf.Option options = 3;
+ int options_size() const;
+ void clear_options();
+ static const int kOptionsFieldNumber = 3;
+ const ::google::protobuf::Option& options(int index) const;
+ ::google::protobuf::Option* mutable_options(int index);
+ ::google::protobuf::Option* add_options();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+ options() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+ mutable_options();
+
+ // optional string version = 4;
+ void clear_version();
+ static const int kVersionFieldNumber = 4;
+ const ::std::string& version() const;
+ void set_version(const ::std::string& value);
+ void set_version(const char* value);
+ void set_version(const char* value, size_t size);
+ ::std::string* mutable_version();
+ ::std::string* release_version();
+ void set_allocated_version(::std::string* version);
+
+ // optional .google.protobuf.SourceContext source_context = 5;
+ bool has_source_context() const;
+ void clear_source_context();
+ static const int kSourceContextFieldNumber = 5;
+ const ::google::protobuf::SourceContext& source_context() const;
+ ::google::protobuf::SourceContext* mutable_source_context();
+ ::google::protobuf::SourceContext* release_source_context();
+ void set_allocated_source_context(::google::protobuf::SourceContext* source_context);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Api)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::internal::ArenaStringPtr name_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Method > methods_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option > options_;
+ ::google::protobuf::internal::ArenaStringPtr version_;
+ ::google::protobuf::SourceContext* source_context_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fapi_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fapi_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fapi_2eproto();
+
+ void InitAsDefaultInstance();
+ static Api* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT Method : public ::google::protobuf::Message {
+ public:
+ Method();
+ virtual ~Method();
+
+ Method(const Method& from);
+
+ inline Method& operator=(const Method& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Method& default_instance();
+
+ void Swap(Method* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Method* New() const { return New(NULL); }
+
+ Method* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Method& from);
+ void MergeFrom(const Method& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Method* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string name = 1;
+ void clear_name();
+ static const int kNameFieldNumber = 1;
+ const ::std::string& name() const;
+ void set_name(const ::std::string& value);
+ void set_name(const char* value);
+ void set_name(const char* value, size_t size);
+ ::std::string* mutable_name();
+ ::std::string* release_name();
+ void set_allocated_name(::std::string* name);
+
+ // optional string request_type_url = 2;
+ void clear_request_type_url();
+ static const int kRequestTypeUrlFieldNumber = 2;
+ const ::std::string& request_type_url() const;
+ void set_request_type_url(const ::std::string& value);
+ void set_request_type_url(const char* value);
+ void set_request_type_url(const char* value, size_t size);
+ ::std::string* mutable_request_type_url();
+ ::std::string* release_request_type_url();
+ void set_allocated_request_type_url(::std::string* request_type_url);
+
+ // optional bool request_streaming = 3;
+ void clear_request_streaming();
+ static const int kRequestStreamingFieldNumber = 3;
+ bool request_streaming() const;
+ void set_request_streaming(bool value);
+
+ // optional string response_type_url = 4;
+ void clear_response_type_url();
+ static const int kResponseTypeUrlFieldNumber = 4;
+ const ::std::string& response_type_url() const;
+ void set_response_type_url(const ::std::string& value);
+ void set_response_type_url(const char* value);
+ void set_response_type_url(const char* value, size_t size);
+ ::std::string* mutable_response_type_url();
+ ::std::string* release_response_type_url();
+ void set_allocated_response_type_url(::std::string* response_type_url);
+
+ // optional bool response_streaming = 5;
+ void clear_response_streaming();
+ static const int kResponseStreamingFieldNumber = 5;
+ bool response_streaming() const;
+ void set_response_streaming(bool value);
+
+ // repeated .google.protobuf.Option options = 6;
+ int options_size() const;
+ void clear_options();
+ static const int kOptionsFieldNumber = 6;
+ const ::google::protobuf::Option& options(int index) const;
+ ::google::protobuf::Option* mutable_options(int index);
+ ::google::protobuf::Option* add_options();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+ options() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+ mutable_options();
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Method)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::internal::ArenaStringPtr name_;
+ ::google::protobuf::internal::ArenaStringPtr request_type_url_;
+ ::google::protobuf::internal::ArenaStringPtr response_type_url_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option > options_;
+ bool request_streaming_;
+ bool response_streaming_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fapi_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fapi_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fapi_2eproto();
+
+ void InitAsDefaultInstance();
+ static Method* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// Api
+
+// optional string name = 1;
+inline void Api::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Api::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Api.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Api::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Api.name)
+}
+inline void Api::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Api.name)
+}
+inline void Api::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Api.name)
+}
+inline ::std::string* Api::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Api.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Api::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Api::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Api.name)
+}
+
+// repeated .google.protobuf.Method methods = 2;
+inline int Api::methods_size() const {
+ return methods_.size();
+}
+inline void Api::clear_methods() {
+ methods_.Clear();
+}
+inline const ::google::protobuf::Method& Api::methods(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Api.methods)
+ return methods_.Get(index);
+}
+inline ::google::protobuf::Method* Api::mutable_methods(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Api.methods)
+ return methods_.Mutable(index);
+}
+inline ::google::protobuf::Method* Api::add_methods() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Api.methods)
+ return methods_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Method >&
+Api::methods() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Api.methods)
+ return methods_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Method >*
+Api::mutable_methods() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Api.methods)
+ return &methods_;
+}
+
+// repeated .google.protobuf.Option options = 3;
+inline int Api::options_size() const {
+ return options_.size();
+}
+inline void Api::clear_options() {
+ options_.Clear();
+}
+inline const ::google::protobuf::Option& Api::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Api.options)
+ return options_.Get(index);
+}
+inline ::google::protobuf::Option* Api::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Api.options)
+ return options_.Mutable(index);
+}
+inline ::google::protobuf::Option* Api::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Api.options)
+ return options_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+Api::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Api.options)
+ return options_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+Api::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Api.options)
+ return &options_;
+}
+
+// optional string version = 4;
+inline void Api::clear_version() {
+ version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Api::version() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Api.version)
+ return version_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Api::set_version(const ::std::string& value) {
+
+ version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Api.version)
+}
+inline void Api::set_version(const char* value) {
+
+ version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Api.version)
+}
+inline void Api::set_version(const char* value, size_t size) {
+
+ version_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Api.version)
+}
+inline ::std::string* Api::mutable_version() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Api.version)
+ return version_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Api::release_version() {
+
+ return version_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Api::set_allocated_version(::std::string* version) {
+ if (version != NULL) {
+
+ } else {
+
+ }
+ version_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), version);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Api.version)
+}
+
+// optional .google.protobuf.SourceContext source_context = 5;
+inline bool Api::has_source_context() const {
+ return !_is_default_instance_ && source_context_ != NULL;
+}
+inline void Api::clear_source_context() {
+ if (GetArenaNoVirtual() == NULL && source_context_ != NULL) delete source_context_;
+ source_context_ = NULL;
+}
+inline const ::google::protobuf::SourceContext& Api::source_context() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Api.source_context)
+ return source_context_ != NULL ? *source_context_ : *default_instance_->source_context_;
+}
+inline ::google::protobuf::SourceContext* Api::mutable_source_context() {
+
+ if (source_context_ == NULL) {
+ source_context_ = new ::google::protobuf::SourceContext;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Api.source_context)
+ return source_context_;
+}
+inline ::google::protobuf::SourceContext* Api::release_source_context() {
+
+ ::google::protobuf::SourceContext* temp = source_context_;
+ source_context_ = NULL;
+ return temp;
+}
+inline void Api::set_allocated_source_context(::google::protobuf::SourceContext* source_context) {
+ delete source_context_;
+ source_context_ = source_context;
+ if (source_context) {
+
+ } else {
+
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Api.source_context)
+}
+
+// -------------------------------------------------------------------
+
+// Method
+
+// optional string name = 1;
+inline void Method::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Method::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Method::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Method.name)
+}
+inline void Method::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Method.name)
+}
+inline void Method::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Method.name)
+}
+inline ::std::string* Method::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Method.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Method::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Method::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Method.name)
+}
+
+// optional string request_type_url = 2;
+inline void Method::clear_request_type_url() {
+ request_type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Method::request_type_url() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.request_type_url)
+ return request_type_url_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Method::set_request_type_url(const ::std::string& value) {
+
+ request_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Method.request_type_url)
+}
+inline void Method::set_request_type_url(const char* value) {
+
+ request_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Method.request_type_url)
+}
+inline void Method::set_request_type_url(const char* value, size_t size) {
+
+ request_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Method.request_type_url)
+}
+inline ::std::string* Method::mutable_request_type_url() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Method.request_type_url)
+ return request_type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Method::release_request_type_url() {
+
+ return request_type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Method::set_allocated_request_type_url(::std::string* request_type_url) {
+ if (request_type_url != NULL) {
+
+ } else {
+
+ }
+ request_type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), request_type_url);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Method.request_type_url)
+}
+
+// optional bool request_streaming = 3;
+inline void Method::clear_request_streaming() {
+ request_streaming_ = false;
+}
+inline bool Method::request_streaming() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.request_streaming)
+ return request_streaming_;
+}
+inline void Method::set_request_streaming(bool value) {
+
+ request_streaming_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Method.request_streaming)
+}
+
+// optional string response_type_url = 4;
+inline void Method::clear_response_type_url() {
+ response_type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Method::response_type_url() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.response_type_url)
+ return response_type_url_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Method::set_response_type_url(const ::std::string& value) {
+
+ response_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Method.response_type_url)
+}
+inline void Method::set_response_type_url(const char* value) {
+
+ response_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Method.response_type_url)
+}
+inline void Method::set_response_type_url(const char* value, size_t size) {
+
+ response_type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Method.response_type_url)
+}
+inline ::std::string* Method::mutable_response_type_url() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Method.response_type_url)
+ return response_type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Method::release_response_type_url() {
+
+ return response_type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Method::set_allocated_response_type_url(::std::string* response_type_url) {
+ if (response_type_url != NULL) {
+
+ } else {
+
+ }
+ response_type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), response_type_url);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Method.response_type_url)
+}
+
+// optional bool response_streaming = 5;
+inline void Method::clear_response_streaming() {
+ response_streaming_ = false;
+}
+inline bool Method::response_streaming() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.response_streaming)
+ return response_streaming_;
+}
+inline void Method::set_response_streaming(bool value) {
+
+ response_streaming_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Method.response_streaming)
+}
+
+// repeated .google.protobuf.Option options = 6;
+inline int Method::options_size() const {
+ return options_.size();
+}
+inline void Method::clear_options() {
+ options_.Clear();
+}
+inline const ::google::protobuf::Option& Method::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Method.options)
+ return options_.Get(index);
+}
+inline ::google::protobuf::Option* Method::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Method.options)
+ return options_.Mutable(index);
+}
+inline ::google::protobuf::Option* Method::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Method.options)
+ return options_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+Method::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Method.options)
+ return options_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+Method::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Method.options)
+ return &options_;
+}
+
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+// -------------------------------------------------------------------
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_google_2fprotobuf_2fapi_2eproto__INCLUDED
diff --git a/src/google/protobuf/arena.cc b/src/google/protobuf/arena.cc
index f7059d26..96009645 100755
--- a/src/google/protobuf/arena.cc
+++ b/src/google/protobuf/arena.cc
@@ -29,7 +29,6 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <google/protobuf/arena.h>
-#include <google/protobuf/stubs/common.h>
#ifdef ADDRESS_SANITIZER
#include <sanitizer/asan_interface.h>
@@ -155,10 +154,16 @@ void Arena::AddListNode(void* elem, void (*cleanup)(void*)) {
reinterpret_cast<google::protobuf::internal::AtomicWord>(node)));
}
-void* Arena::AllocateAligned(size_t n) {
+void* Arena::AllocateAligned(const std::type_info* allocated, size_t n) {
// Align n to next multiple of 8 (from Hacker's Delight, Chapter 3.)
n = (n + 7) & -8;
+ // Monitor allocation if needed.
+ if (GOOGLE_PREDICT_FALSE(hooks_cookie_ != NULL) &&
+ options_.on_arena_allocation != NULL) {
+ options_.on_arena_allocation(allocated, n, hooks_cookie_);
+ }
+
// If this thread already owns a block in this arena then try to use that.
// This fast path optimizes the case where multiple threads allocate from the
// same arena.
diff --git a/src/google/protobuf/arena.h b/src/google/protobuf/arena.h
index b48bef92..6c3f606e 100644
--- a/src/google/protobuf/arena.h
+++ b/src/google/protobuf/arena.h
@@ -28,12 +28,12 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// This header is logically internal, but is made public because it is used
-// from protocol-compiler-generated code, which may reside in other components.
-
#ifndef GOOGLE_PROTOBUF_ARENA_H__
#define GOOGLE_PROTOBUF_ARENA_H__
+#if __cplusplus >= 201103L
+#include <google/protobuf/stubs/type_traits.h>
+#endif
#include <typeinfo>
#include <google/protobuf/stubs/atomic_sequence_num.h>
@@ -113,10 +113,13 @@ struct ArenaOptions {
void (*on_arena_reset)(Arena* arena, void* cookie, uint64 space_used);
void (*on_arena_destruction)(Arena* arena, void* cookie, uint64 space_used);
- // type_name is promised to be a static string - its lifetime extends to
- // match program's lifetime.
- void (*on_arena_allocation)(const char* type_name, uint64 alloc_size,
- Arena* arena, void* cookie);
+ // type_info is promised to be static - its lifetime extends to
+ // match program's lifetime (It is given by typeid operator).
+ // Note: typeid(void) will be passed as allocated_type every time we
+ // intentionally want to avoid monitoring an allocation. (i.e. internal
+ // allocations for managing the arena)
+ void (*on_arena_allocation)(const std::type_info* allocated_type,
+ uint64 alloc_size, void* cookie);
ArenaOptions()
: start_block_size(kDefaultStartBlockSize),
@@ -137,6 +140,14 @@ struct ArenaOptions {
static const size_t kDefaultMaxBlockSize = 8192;
};
+// Support for non-RTTI environments. (The metrics hooks API uses type
+// information.)
+#ifndef GOOGLE_PROTOBUF_NO_RTTI
+#define RTTI_TYPE_ID(type) (&typeid(type))
+#else
+#define RTTI_TYPE_ID(type) (NULL)
+#endif
+
// Arena allocator. Arena allocation replaces ordinary (heap-based) allocation
// with new/delete, and improves performance by aggregating allocations into
// larger blocks and freeing allocations all at once. Protocol messages are
@@ -146,6 +157,44 @@ struct ArenaOptions {
// This is a thread-safe implementation: multiple threads may allocate from the
// arena concurrently. Destruction is not thread-safe and the destructing
// thread must synchronize with users of the arena first.
+//
+// An arena provides two allocation interfaces: CreateMessage<T>, which works
+// for arena-enabled proto2 message types as well as other types that satisfy
+// the appropriate protocol (described below), and Create<T>, which works for
+// any arbitrary type T. CreateMessage<T> is better when the type T supports it,
+// because this interface (i) passes the arena pointer to the created object so
+// that its sub-objects and internal allocations can use the arena too, and (ii)
+// elides the object's destructor call when possible. Create<T> does not place
+// any special requirements on the type T, and will invoke the object's
+// destructor when the arena is destroyed.
+//
+// The arena message allocation protocol, required by CreateMessage<T>, is as
+// follows:
+//
+// - The type T must have (at least) two constructors: a constructor with no
+// arguments, called when a T is allocated on the heap; and a constructor with
+// a google::protobuf::Arena* argument, called when a T is allocated on an arena. If the
+// second constructor is called with a NULL arena pointer, it must be
+// equivalent to invoking the first (no-argument) constructor.
+//
+// - The type T must have a particular type trait: a nested type
+// |InternalArenaConstructable_|. This is usually a typedef to |void|. If no
+// such type trait exists, then the instantiation CreateMessage<T> will fail
+// to compile.
+//
+// - The type T *may* have the type trait |DestructorSkippable_|. If this type
+// trait is present in the type, then its destructor will not be called if and
+// only if it was passed a non-NULL arena pointer. If this type trait is not
+// present on the type, then its destructor is always called when the
+// containing arena is destroyed.
+//
+// - One- and two-user-argument forms of CreateMessage<T>() also exist that
+// forward these constructor arguments to T's constructor: for example,
+// CreateMessage<T>(Arena*, arg1, arg2) forwards to a constructor T(Arena*,
+// arg1, arg2).
+//
+// This protocol is implemented by all arena-enabled proto2 message classes as
+// well as RepeatedPtrField.
class LIBPROTOBUF_EXPORT Arena {
public:
// Arena constructor taking custom options. See ArenaOptions below for
@@ -172,8 +221,10 @@ class LIBPROTOBUF_EXPORT Arena {
// compilation error will occur.
//
// RepeatedField and RepeatedPtrField may also be instantiated directly on an
- // arena with this method: they act as "arena-capable message types" for the
- // purposes of the Arena API.
+ // arena with this method.
+ //
+ // This function also accepts any type T that satisfies the arena message
+ // allocation protocol, documented above.
template <typename T> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
static T* CreateMessage(::google::protobuf::Arena* arena) {
if (arena == NULL) {
@@ -183,17 +234,55 @@ class LIBPROTOBUF_EXPORT Arena {
}
}
+ // One-argument form of CreateMessage. This is useful for constructing objects
+ // that implement the arena message construction protocol described above but
+ // take additional constructor arguments.
+ template <typename T, typename Arg> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
+ static T* CreateMessage(::google::protobuf::Arena* arena, const Arg& arg) {
+ if (arena == NULL) {
+ return new T(NULL, arg);
+ } else {
+ return arena->CreateMessageInternal<T>(static_cast<T*>(0),
+ arg);
+ }
+ }
+
+ // Two-argument form of CreateMessage. This is useful for constructing objects
+ // that implement the arena message construction protocol described above but
+ // take additional constructor arguments.
+ template <typename T, typename Arg1, typename Arg2> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
+ static T* CreateMessage(::google::protobuf::Arena* arena,
+ const Arg1& arg1,
+ const Arg2& arg2) {
+ if (arena == NULL) {
+ return new T(NULL, arg1, arg2);
+ } else {
+ return arena->CreateMessageInternal<T>(static_cast<T*>(0),
+ arg1, arg2);
+ }
+ }
+
// API to create any objects on the arena. Note that only the object will
// be created on the arena; the underlying ptrs (in case of a proto2 message)
// will be still heap allocated. Proto messages should usually be allocated
// with CreateMessage<T>() instead.
+ //
+ // Note that even if T satisfies the arena message construction protocol
+ // (InternalArenaConstructable_ trait and optional DestructorSkippable_
+ // trait), as described above, this function does not follow the protocol;
+ // instead, it treats T as a black-box type, just as if it did not have these
+ // traits. Specifically, T's constructor arguments will always be only those
+ // passed to Create<T>() -- no additional arena pointer is implicitly added.
+ // Furthermore, the destructor will always be called at arena destruction time
+ // (unless the destructor is trivial). Hence, from T's point of view, it is as
+ // if the object were allocated on the heap (except that the underlying memory
+ // is obtained from the arena).
template <typename T> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
static T* Create(::google::protobuf::Arena* arena) {
if (arena == NULL) {
return new T();
} else {
- return arena->CreateInternal<T>(
- SkipDeleteList<T>(static_cast<T*>(0)));
+ return arena->CreateInternal<T>(google::protobuf::internal::has_trivial_destructor<T>::value);
}
}
@@ -203,7 +292,7 @@ class LIBPROTOBUF_EXPORT Arena {
if (arena == NULL) {
return new T(arg);
} else {
- return arena->CreateInternal<T>(SkipDeleteList<T>(static_cast<T*>(0)),
+ return arena->CreateInternal<T>(google::protobuf::internal::has_trivial_destructor<T>::value,
arg);
}
}
@@ -214,9 +303,8 @@ class LIBPROTOBUF_EXPORT Arena {
if (arena == NULL) {
return new T(arg1, arg2);
} else {
- return arena->CreateInternal<T>(SkipDeleteList<T>(static_cast<T*>(0)),
- arg1,
- arg2);
+ return arena->CreateInternal<T>(google::protobuf::internal::has_trivial_destructor<T>::value,
+ arg1, arg2);
}
}
@@ -229,10 +317,8 @@ class LIBPROTOBUF_EXPORT Arena {
if (arena == NULL) {
return new T(arg1, arg2, arg3);
} else {
- return arena->CreateInternal<T>(SkipDeleteList<T>(static_cast<T*>(0)),
- arg1,
- arg2,
- arg3);
+ return arena->CreateInternal<T>(google::protobuf::internal::has_trivial_destructor<T>::value,
+ arg1, arg2, arg3);
}
}
@@ -246,20 +332,89 @@ class LIBPROTOBUF_EXPORT Arena {
if (arena == NULL) {
return new T(arg1, arg2, arg3, arg4);
} else {
- return arena->CreateInternal<T>(SkipDeleteList<T>(static_cast<T*>(0)),
- arg1,
- arg2,
- arg3,
- arg4);
+ return arena->CreateInternal<T>(google::protobuf::internal::has_trivial_destructor<T>::value,
+ arg1, arg2, arg3, arg4);
+ }
+ }
+
+ // Version of the above with five constructor arguments for the created
+ // object.
+ template <typename T, typename Arg1, typename Arg2, typename Arg3,
+ typename Arg4, typename Arg5>
+ GOOGLE_ATTRIBUTE_ALWAYS_INLINE static T* Create(::google::protobuf::Arena* arena,
+ const Arg1& arg1, const Arg2& arg2,
+ const Arg3& arg3, const Arg4& arg4,
+ const Arg5& arg5) {
+ if (arena == NULL) {
+ return new T(arg1, arg2, arg3, arg4, arg5);
+ } else {
+ return arena->CreateInternal<T>(google::protobuf::internal::has_trivial_destructor<T>::value,
+ arg1, arg2, arg3, arg4, arg5);
+ }
+ }
+
+ // Version of the above with six constructor arguments for the created
+ // object.
+ template <typename T, typename Arg1, typename Arg2, typename Arg3,
+ typename Arg4, typename Arg5, typename Arg6>
+ GOOGLE_ATTRIBUTE_ALWAYS_INLINE static T* Create(::google::protobuf::Arena* arena,
+ const Arg1& arg1, const Arg2& arg2,
+ const Arg3& arg3, const Arg4& arg4,
+ const Arg5& arg5, const Arg6& arg6) {
+ if (arena == NULL) {
+ return new T(arg1, arg2, arg3, arg4, arg5, arg6);
+ } else {
+ return arena->CreateInternal<T>(google::protobuf::internal::has_trivial_destructor<T>::value,
+ arg1, arg2, arg3, arg4, arg5, arg6);
+ }
+ }
+
+ // Version of the above with seven constructor arguments for the created
+ // object.
+ template <typename T, typename Arg1, typename Arg2, typename Arg3,
+ typename Arg4, typename Arg5, typename Arg6, typename Arg7>
+ GOOGLE_ATTRIBUTE_ALWAYS_INLINE static T* Create(::google::protobuf::Arena* arena,
+ const Arg1& arg1, const Arg2& arg2,
+ const Arg3& arg3, const Arg4& arg4,
+ const Arg5& arg5, const Arg6& arg6,
+ const Arg7& arg7) {
+ if (arena == NULL) {
+ return new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+ } else {
+ return arena->CreateInternal<T>(google::protobuf::internal::has_trivial_destructor<T>::value,
+ arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+ }
+ }
+
+ // Version of the above with eight constructor arguments for the created
+ // object.
+ template <typename T, typename Arg1, typename Arg2, typename Arg3,
+ typename Arg4, typename Arg5, typename Arg6, typename Arg7,
+ typename Arg8>
+ GOOGLE_ATTRIBUTE_ALWAYS_INLINE static T* Create(::google::protobuf::Arena* arena,
+ const Arg1& arg1, const Arg2& arg2,
+ const Arg3& arg3, const Arg4& arg4,
+ const Arg5& arg5, const Arg6& arg6,
+ const Arg7& arg7, const Arg8& arg8) {
+ if (arena == NULL) {
+ return new T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
+ } else {
+ return arena->CreateInternal<T>(
+ google::protobuf::internal::has_trivial_destructor<T>::value,
+ arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
}
}
- // Create an array of object type T on the arena. Type T must have a trivial
- // constructor, as it will not be invoked when created on the arena.
+ // Create an array of object type T on the arena *without* invoking the
+ // constructor of T. If `arena` is null, then the return value should be freed
+ // with `delete[] x;` (or `::operator delete[](x);`).
+ // To ensure safe uses, this function checks at compile time
+ // (when compiled as C++11) that T is trivially default-constructible and
+ // trivially destructible.
template <typename T> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
static T* CreateArray(::google::protobuf::Arena* arena, size_t num_elements) {
if (arena == NULL) {
- return new T[num_elements];
+ return static_cast<T*>(::operator new[](num_elements * sizeof(T)));
} else {
return arena->CreateInternalRawArray<T>(num_elements);
}
@@ -374,27 +529,26 @@ class LIBPROTOBUF_EXPORT Arena {
// wrap them in static functions.
static ThreadCache& thread_cache();
#elif defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_IPHONE)
- // Android ndk does not support __thread keyword so we use a custom thread
+ // Android ndk does not support GOOGLE_THREAD_LOCAL keyword so we use a custom thread
// local storage class we implemented.
- // iOS also does not support the __thread keyword.
+ // iOS also does not support the GOOGLE_THREAD_LOCAL keyword.
static ThreadCache& thread_cache();
#else
static GOOGLE_THREAD_LOCAL ThreadCache thread_cache_;
static ThreadCache& thread_cache() { return thread_cache_; }
#endif
- // SFINAE for skipping addition to delete list for a Type. This is mainly to
- // skip proto2/proto1 message objects with cc_enable_arenas=true from being
- // part of the delete list. Also, note, compiler will optimize out the branch
- // in CreateInternal<T>.
- //
+ // SFINAE for skipping addition to delete list for a message type when created
+ // with CreateMessage. This is mainly to skip proto2/proto1 message objects
+ // with cc_enable_arenas=true from being part of the delete list. Also, note,
+ // compiler will optimize out the branch in CreateInternal<T>.
template<typename T>
static inline bool SkipDeleteList(typename T::DestructorSkippable_*) {
return true;
}
- // For non message objects, we skip addition to delete list if the object has
- // a trivial destructor.
+ // For message objects that don't have the DestructorSkippable_ trait, we
+ // always add to the delete list.
template<typename T>
static inline bool SkipDeleteList(...) {
return google::protobuf::internal::has_trivial_destructor<T>::value;
@@ -419,14 +573,15 @@ class LIBPROTOBUF_EXPORT Arena {
// Just allocate the required size for the given type assuming the
// type has a trivial constructor.
template<typename T> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
- inline T* CreateInternalRawArray(uint32 num_elements) {
- return static_cast<T*>(AllocateAligned(sizeof(T) * num_elements));
+ inline T* CreateInternalRawArray(size_t num_elements) {
+ return static_cast<T*>(
+ AllocateAligned(RTTI_TYPE_ID(T), sizeof(T) * num_elements));
}
template <typename T> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
inline T* CreateInternal(
bool skip_explicit_ownership) {
- T* t = new (AllocateAligned(sizeof(T))) T();
+ T* t = new (AllocateAligned(RTTI_TYPE_ID(T), sizeof(T))) T();
if (!skip_explicit_ownership) {
AddListNode(t, &internal::arena_destruct_object<T>);
}
@@ -436,7 +591,7 @@ class LIBPROTOBUF_EXPORT Arena {
template <typename T, typename Arg> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
inline T* CreateInternal(
bool skip_explicit_ownership, const Arg& arg) {
- T* t = new (AllocateAligned(sizeof(T))) T(arg);
+ T* t = new (AllocateAligned(RTTI_TYPE_ID(T), sizeof(T))) T(arg);
if (!skip_explicit_ownership) {
AddListNode(t, &internal::arena_destruct_object<T>);
}
@@ -446,7 +601,7 @@ class LIBPROTOBUF_EXPORT Arena {
template <typename T, typename Arg1, typename Arg2> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
inline T* CreateInternal(
bool skip_explicit_ownership, const Arg1& arg1, const Arg2& arg2) {
- T* t = new (AllocateAligned(sizeof(T))) T(arg1, arg2);
+ T* t = new (AllocateAligned(RTTI_TYPE_ID(T), sizeof(T))) T(arg1, arg2);
if (!skip_explicit_ownership) {
AddListNode(t, &internal::arena_destruct_object<T>);
}
@@ -458,7 +613,8 @@ class LIBPROTOBUF_EXPORT Arena {
const Arg1& arg1,
const Arg2& arg2,
const Arg3& arg3) {
- T* t = new (AllocateAligned(sizeof(T))) T(arg1, arg2, arg3);
+ T* t = new (AllocateAligned(RTTI_TYPE_ID(T), sizeof(T)))
+ T(arg1, arg2, arg3);
if (!skip_explicit_ownership) {
AddListNode(t, &internal::arena_destruct_object<T>);
}
@@ -472,7 +628,79 @@ class LIBPROTOBUF_EXPORT Arena {
const Arg2& arg2,
const Arg3& arg3,
const Arg4& arg4) {
- T* t = new (AllocateAligned(sizeof(T))) T(arg1, arg2, arg3, arg4);
+ T* t = new (AllocateAligned(RTTI_TYPE_ID(T), sizeof(T)))
+ T(arg1, arg2, arg3, arg4);
+ if (!skip_explicit_ownership) {
+ AddListNode(t, &internal::arena_destruct_object<T>);
+ }
+ return t;
+ }
+
+ template <typename T, typename Arg1, typename Arg2, typename Arg3,
+ typename Arg4, typename Arg5>
+ GOOGLE_ATTRIBUTE_ALWAYS_INLINE inline T* CreateInternal(bool skip_explicit_ownership,
+ const Arg1& arg1,
+ const Arg2& arg2,
+ const Arg3& arg3,
+ const Arg4& arg4,
+ const Arg5& arg5) {
+ T* t = new (AllocateAligned(RTTI_TYPE_ID(T), sizeof(T)))
+ T(arg1, arg2, arg3, arg4, arg5);
+ if (!skip_explicit_ownership) {
+ AddListNode(t, &internal::arena_destruct_object<T>);
+ }
+ return t;
+ }
+
+ template <typename T, typename Arg1, typename Arg2, typename Arg3,
+ typename Arg4, typename Arg5, typename Arg6>
+ GOOGLE_ATTRIBUTE_ALWAYS_INLINE inline T* CreateInternal(bool skip_explicit_ownership,
+ const Arg1& arg1,
+ const Arg2& arg2,
+ const Arg3& arg3,
+ const Arg4& arg4,
+ const Arg5& arg5,
+ const Arg6& arg6) {
+ T* t = new (AllocateAligned(RTTI_TYPE_ID(T), sizeof(T)))
+ T(arg1, arg2, arg3, arg4, arg5, arg6);
+ if (!skip_explicit_ownership) {
+ AddListNode(t, &internal::arena_destruct_object<T>);
+ }
+ return t;
+ }
+
+ template <typename T, typename Arg1, typename Arg2, typename Arg3,
+ typename Arg4, typename Arg5, typename Arg6, typename Arg7>
+ GOOGLE_ATTRIBUTE_ALWAYS_INLINE inline T* CreateInternal(bool skip_explicit_ownership,
+ const Arg1& arg1,
+ const Arg2& arg2,
+ const Arg3& arg3,
+ const Arg4& arg4,
+ const Arg5& arg5,
+ const Arg6& arg6,
+ const Arg7& arg7) {
+ T* t = new (AllocateAligned(RTTI_TYPE_ID(T), sizeof(T)))
+ T(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+ if (!skip_explicit_ownership) {
+ AddListNode(t, &internal::arena_destruct_object<T>);
+ }
+ return t;
+ }
+
+ template <typename T, typename Arg1, typename Arg2, typename Arg3,
+ typename Arg4, typename Arg5, typename Arg6, typename Arg7,
+ typename Arg8>
+ GOOGLE_ATTRIBUTE_ALWAYS_INLINE inline T* CreateInternal(bool skip_explicit_ownership,
+ const Arg1& arg1,
+ const Arg2& arg2,
+ const Arg3& arg3,
+ const Arg4& arg4,
+ const Arg5& arg5,
+ const Arg6& arg6,
+ const Arg7& arg7,
+ const Arg8& arg8) {
+ T* t = new (AllocateAligned(RTTI_TYPE_ID(T), sizeof(T)))
+ T(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
if (!skip_explicit_ownership) {
AddListNode(t, &internal::arena_destruct_object<T>);
}
@@ -485,6 +713,20 @@ class LIBPROTOBUF_EXPORT Arena {
this);
}
+ template <typename T, typename Arg> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
+ inline T* CreateMessageInternal(typename T::InternalArenaConstructable_*,
+ const Arg& arg) {
+ return CreateInternal<T, Arena*>(SkipDeleteList<T>(static_cast<T*>(0)),
+ this, arg);
+ }
+
+ template <typename T, typename Arg1, typename Arg2> GOOGLE_ATTRIBUTE_ALWAYS_INLINE
+ inline T* CreateMessageInternal(typename T::InternalArenaConstructable_*,
+ const Arg1& arg1, const Arg2& arg2) {
+ return CreateInternal<T, Arena*>(SkipDeleteList<T>(static_cast<T*>(0)),
+ this, arg1, arg2);
+ }
+
// CreateInArenaStorage is used to implement map field. Without it,
// google::protobuf::Map need to call generated message's protected arena constructor,
// which needs to declare google::protobuf::Map as friend of generated message.
@@ -536,8 +778,15 @@ class LIBPROTOBUF_EXPORT Arena {
return NULL;
}
+ // Allocate and also optionally call on_arena_allocation callback with the
+ // allocated type info when the hooks are in place in ArenaOptions and
+ // the cookie is not null.
+ void* AllocateAligned(const std::type_info* allocated, size_t n);
- void* AllocateAligned(size_t size);
+ // Allocate an internal allocation, avoiding optional typed monitoring.
+ GOOGLE_ATTRIBUTE_ALWAYS_INLINE inline void* AllocateAligned(size_t n) {
+ return AllocateAligned(NULL, n);
+ }
void Init();
@@ -596,6 +845,9 @@ class LIBPROTOBUF_EXPORT Arena {
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Arena);
};
+// Defined above for supporting environments without RTTI.
+#undef RTTI_TYPE_ID
+
template<typename T>
const typename Arena::is_arena_constructable<T>::type
Arena::is_arena_constructable<T>::value =
diff --git a/src/google/protobuf/arena_nc_test.py b/src/google/protobuf/arena_nc_test.py
index f390df36..87a69b2a 100644
--- a/src/google/protobuf/arena_nc_test.py
+++ b/src/google/protobuf/arena_nc_test.py
@@ -35,6 +35,7 @@
import unittest
from google3.testing.pybase import fake_target_util
+import unittest
class ArenaNcTest(unittest.TestCase):
diff --git a/src/google/protobuf/arena_test_util.h b/src/google/protobuf/arena_test_util.h
index 7db7a90e..690cc706 100644
--- a/src/google/protobuf/arena_test_util.h
+++ b/src/google/protobuf/arena_test_util.h
@@ -31,6 +31,7 @@
#ifndef GOOGLE_PROTOBUF_ARENA_TEST_UTIL_H__
#define GOOGLE_PROTOBUF_ARENA_TEST_UTIL_H__
+
namespace google {
namespace protobuf {
namespace internal {
diff --git a/src/google/protobuf/arena_unittest.cc b/src/google/protobuf/arena_unittest.cc
index d9b198e0..6c185695 100644
--- a/src/google/protobuf/arena_unittest.cc
+++ b/src/google/protobuf/arena_unittest.cc
@@ -30,8 +30,6 @@
#include <google/protobuf/arena.h>
-#include <stdint.h>
-
#include <algorithm>
#include <cstring>
#include <memory>
@@ -39,6 +37,7 @@
#include <google/protobuf/stubs/shared_ptr.h>
#endif
#include <string>
+#include <typeinfo>
#include <vector>
#include <google/protobuf/stubs/common.h>
@@ -47,11 +46,14 @@
#include <google/protobuf/unittest.pb.h>
#include <google/protobuf/unittest_arena.pb.h>
#include <google/protobuf/unittest_no_arena.pb.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/message.h>
#include <google/protobuf/message_lite.h>
#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/unknown_field_set.h>
#include <gtest/gtest.h>
@@ -125,6 +127,29 @@ class MustBeConstructedWithOneThroughFour {
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MustBeConstructedWithOneThroughFour);
};
+// A class that takes eight different types as constructor arguments.
+class MustBeConstructedWithOneThroughEight {
+ public:
+ MustBeConstructedWithOneThroughEight(
+ int one, const char* two, const string& three,
+ const PleaseDontCopyMe* four, int five, const char* six,
+ const string& seven, const string& eight)
+ : one_(one), two_(two), three_(three), four_(four), five_(five),
+ six_(six), seven_(seven), eight_(eight) {}
+
+ int one_;
+ const char* const two_;
+ string three_;
+ const PleaseDontCopyMe* four_;
+ int five_;
+ const char* const six_;
+ string seven_;
+ string eight_;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MustBeConstructedWithOneThroughEight);
+};
+
} // namespace
TEST(ArenaTest, ArenaConstructable) {
@@ -156,7 +181,7 @@ TEST(ArenaTest, BasicCreate) {
EXPECT_EQ(2, notifier.GetCount());
}
-TEST(ArenaTest, CreateWithManyConstructorArguments) {
+TEST(ArenaTest, CreateWithFourConstructorArguments) {
Arena arena;
const string three("3");
const PleaseDontCopyMe four(4);
@@ -170,6 +195,26 @@ TEST(ArenaTest, CreateWithManyConstructorArguments) {
ASSERT_EQ(4, new_object->four_->value());
}
+TEST(ArenaTest, CreateWithEightConstructorArguments) {
+ Arena arena;
+ const string three("3");
+ const PleaseDontCopyMe four(4);
+ const string seven("7");
+ const string eight("8");
+ const MustBeConstructedWithOneThroughEight* new_object =
+ Arena::Create<MustBeConstructedWithOneThroughEight>(
+ &arena, 1, "2", three, &four, 5, "6", seven, eight);
+ EXPECT_TRUE(new_object != NULL);
+ ASSERT_EQ(1, new_object->one_);
+ ASSERT_STREQ("2", new_object->two_);
+ ASSERT_EQ("3", new_object->three_);
+ ASSERT_EQ(4, new_object->four_->value());
+ ASSERT_EQ(5, new_object->five_);
+ ASSERT_STREQ("6", new_object->six_);
+ ASSERT_EQ("7", new_object->seven_);
+ ASSERT_EQ("8", new_object->eight_);
+}
+
TEST(ArenaTest, InitialBlockTooSmall) {
// Construct a small (64 byte) initial block of memory to be used by the
// arena allocator; then, allocate an object which will not fit in the
@@ -1113,6 +1158,19 @@ TEST(ArenaTest, GetArenaShouldReturnNullForNonArenaAllocatedMessages) {
EXPECT_EQ(NULL, Arena::GetArena(const_pointer_to_message));
}
+TEST(ArenaTest, UnsafeSetAllocatedOnArena) {
+ ::google::protobuf::Arena arena;
+ TestAllTypes* message = Arena::CreateMessage<TestAllTypes>(&arena);
+ EXPECT_FALSE(message->has_optional_string());
+
+ string owned_string = "test with long enough content to heap-allocate";
+ message->unsafe_arena_set_allocated_optional_string(&owned_string);
+ EXPECT_TRUE(message->has_optional_string());
+
+ message->unsafe_arena_set_allocated_optional_string(NULL);
+ EXPECT_FALSE(message->has_optional_string());
+}
+
// A helper utility class to only contain static hook functions, some
// counters to be used to verify the counters have been called and a cookie
// value to be verified.
@@ -1124,6 +1182,13 @@ class ArenaHooksTestUtil {
return static_cast<void*>(cookie);
}
+ static void on_allocation(const std::type_info* /*unused*/, uint64 alloc_size,
+ void* cookie) {
+ ++num_allocations;
+ int cookie_value = *static_cast<int*>(cookie);
+ EXPECT_EQ(kCookieValue, cookie_value);
+ }
+
static void on_reset(::google::protobuf::Arena* arena, void* cookie,
uint64 space_used) {
++num_reset;
@@ -1141,10 +1206,12 @@ class ArenaHooksTestUtil {
static const int kCookieValue = 999;
static uint32 num_init;
+ static uint32 num_allocations;
static uint32 num_reset;
static uint32 num_destruct;
};
uint32 ArenaHooksTestUtil::num_init = 0;
+uint32 ArenaHooksTestUtil::num_allocations = 0;
uint32 ArenaHooksTestUtil::num_reset = 0;
uint32 ArenaHooksTestUtil::num_destruct = 0;
const int ArenaHooksTestUtil::kCookieValue;
@@ -1153,6 +1220,7 @@ const int ArenaHooksTestUtil::kCookieValue;
TEST(ArenaTest, ArenaHooksSanity) {
::google::protobuf::ArenaOptions options;
options.on_arena_init = ArenaHooksTestUtil::on_init;
+ options.on_arena_allocation = ArenaHooksTestUtil::on_allocation;
options.on_arena_reset = ArenaHooksTestUtil::on_reset;
options.on_arena_destruction = ArenaHooksTestUtil::on_destruction;
@@ -1160,7 +1228,13 @@ TEST(ArenaTest, ArenaHooksSanity) {
{
::google::protobuf::Arena arena(options);
EXPECT_EQ(1, ArenaHooksTestUtil::num_init);
-
+ EXPECT_EQ(0, ArenaHooksTestUtil::num_allocations);
+ ::google::protobuf::Arena::Create<uint64>(&arena);
+ if (::google::protobuf::internal::has_trivial_destructor<uint64>::value) {
+ EXPECT_EQ(1, ArenaHooksTestUtil::num_allocations);
+ } else {
+ EXPECT_EQ(2, ArenaHooksTestUtil::num_allocations);
+ }
arena.Reset();
arena.Reset();
EXPECT_EQ(2, ArenaHooksTestUtil::num_reset);
diff --git a/src/google/protobuf/compiler/code_generator.h b/src/google/protobuf/compiler/code_generator.h
index 321a8ccd..b989f151 100644
--- a/src/google/protobuf/compiler/code_generator.h
+++ b/src/google/protobuf/compiler/code_generator.h
@@ -79,6 +79,37 @@ class LIBPROTOC_EXPORT CodeGenerator {
GeneratorContext* generator_context,
string* error) const = 0;
+ // Generates code for all given proto files, generating one or more files in
+ // the given output directory.
+ //
+ // This method should be called instead of |Generate()| when
+ // |HasGenerateAll()| returns |true|. It is used to emulate legacy semantics
+ // when more than one `.proto` file is specified on one compiler invocation.
+ //
+ // WARNING: Please do not use unless legacy semantics force the code generator
+ // to produce a single output file for all input files, or otherwise require
+ // an examination of all input files first. The canonical code generator
+ // design produces one output file per input .proto file, and we do not wish
+ // to encourage alternate designs.
+ //
+ // A parameter is given as passed on the command line, as in |Generate()|
+ // above.
+ //
+ // Returns true if successful. Otherwise, sets *error to a description of
+ // the problem (e.g. "invalid parameter") and returns false.
+ virtual bool GenerateAll(const vector<const FileDescriptor*>& files,
+ const string& parameter,
+ GeneratorContext* generator_context,
+ string* error) const {
+ *error = "Unimplemented GenerateAll() method.";
+ return false;
+ }
+
+ // Returns true if the code generator expects to receive all FileDescriptors
+ // at once (via |GenerateAll()|), rather than one at a time (via
+ // |Generate()|). This is required to implement legacy semantics.
+ virtual bool HasGenerateAll() const { return false; }
+
private:
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CodeGenerator);
};
diff --git a/src/google/protobuf/compiler/command_line_interface.cc b/src/google/protobuf/compiler/command_line_interface.cc
index 567238ae..c57cfd3d 100644
--- a/src/google/protobuf/compiler/command_line_interface.cc
+++ b/src/google/protobuf/compiler/command_line_interface.cc
@@ -53,6 +53,10 @@
#include <google/protobuf/stubs/shared_ptr.h>
#endif
+#ifdef __APPLE__
+#include <mach-o/dyld.h>
+#endif
+
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/stringprintf.h>
#include <google/protobuf/compiler/importer.h>
@@ -181,6 +185,78 @@ bool TryCreateParentDirectory(const string& prefix, const string& filename) {
return true;
}
+// Get the absolute path of this protoc binary.
+bool GetProtocAbsolutePath(string* path) {
+#ifdef _WIN32
+ char buffer[MAX_PATH];
+ int len = GetModuleFileName(NULL, buffer, MAX_PATH);
+#elif __APPLE__
+ char buffer[PATH_MAX];
+ int len = 0;
+
+ char dirtybuffer[PATH_MAX];
+ uint32_t size = sizeof(dirtybuffer);
+ if (_NSGetExecutablePath(dirtybuffer, &size) == 0) {
+ realpath(dirtybuffer, buffer);
+ len = strlen(buffer);
+ }
+#else
+ char buffer[PATH_MAX];
+ int len = readlink("/proc/self/exe", buffer, PATH_MAX);
+#endif
+ if (len > 0) {
+ path->assign(buffer, len);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+// Whether a path is where google/protobuf/descriptor.proto and other well-known
+// type protos are installed.
+bool IsInstalledProtoPath(const string& path) {
+ // Checking the descriptor.proto file should be good enough.
+ string file_path = path + "/google/protobuf/descriptor.proto";
+ return access(file_path.c_str(), F_OK) != -1;
+}
+
+// Add the paths where google/protobuf/descritor.proto and other well-known
+// type protos are installed.
+void AddDefaultProtoPaths(vector<pair<string, string> >* paths) {
+ // TODO(xiaofeng): The code currently only checks relative paths of where
+ // the protoc binary is installed. We probably should make it handle more
+ // cases than that.
+ string path;
+ if (!GetProtocAbsolutePath(&path)) {
+ return;
+ }
+ // Strip the binary name.
+ size_t pos = path.find_last_of("/\\");
+ if (pos == string::npos || pos == 0) {
+ return;
+ }
+ path = path.substr(0, pos);
+ // Check the binary's directory.
+ if (IsInstalledProtoPath(path)) {
+ paths->push_back(pair<string, string>("", path));
+ return;
+ }
+ // Check if there is an include subdirectory.
+ if (IsInstalledProtoPath(path + "/include")) {
+ paths->push_back(pair<string, string>("", path + "/include"));
+ return;
+ }
+ // Check if the upper level directory has an "include" subdirectory.
+ pos = path.find_last_of("/\\");
+ if (pos == string::npos || pos == 0) {
+ return;
+ }
+ path = path.substr(0, pos);
+ if (IsInstalledProtoPath(path + "/include")) {
+ paths->push_back(pair<string, string>("", path + "/include"));
+ return;
+ }
+}
} // namespace
// A MultiFileErrorCollector that prints errors to stderr.
@@ -644,6 +720,8 @@ int CommandLineInterface::Run(int argc, const char* const argv[]) {
break;
}
+ AddDefaultProtoPaths(&proto_path_);
+
// Set up the source tree.
DiskSourceTree source_tree;
for (int i = 0; i < proto_path_.size(); i++) {
@@ -898,12 +976,14 @@ CommandLineInterface::ParseArguments(int argc, const char* const argv[]) {
return PARSE_ARGUMENT_FAIL;
}
if (mode_ != MODE_COMPILE && !dependency_out_name_.empty()) {
- cerr << "Can only use --dependency_out=FILE when generating code." << endl;
+ std::cerr << "Can only use --dependency_out=FILE when generating code."
+ << std::endl;
return PARSE_ARGUMENT_FAIL;
}
if (!dependency_out_name_.empty() && input_files_.size() > 1) {
- cerr << "Can only process one input file when using --dependency_out=FILE."
- << endl;
+ std::cerr
+ << "Can only process one input file when using --dependency_out=FILE."
+ << std::endl;
return PARSE_ARGUMENT_FAIL;
}
if (imports_in_descriptor_set_ && descriptor_set_name_.empty()) {
@@ -1054,11 +1134,11 @@ CommandLineInterface::InterpretArgument(const string& name,
} else if (name == "--dependency_out") {
if (!dependency_out_name_.empty()) {
- cerr << name << " may only be passed once." << endl;
+ std::cerr << name << " may only be passed once." << std::endl;
return PARSE_ARGUMENT_FAIL;
}
if (value.empty()) {
- cerr << name << " requires a non-empty value." << endl;
+ std::cerr << name << " requires a non-empty value." << std::endl;
return PARSE_ARGUMENT_FAIL;
}
dependency_out_name_ = value;
@@ -1272,7 +1352,8 @@ void CommandLineInterface::PrintHelpText() {
" defined in the given proto files. Groups share\n"
" the same field number space with the parent \n"
" message. Extension ranges are counted as \n"
-" occupied fields numbers." << std::endl;
+" occupied fields numbers."
+ << std::endl;
if (!plugin_prefix_.empty()) {
std::cerr <<
" --plugin=EXECUTABLE Specifies a plugin executable to use.\n"
@@ -1327,13 +1408,23 @@ bool CommandLineInterface::GenerateOutput(
}
parameters.append(generator_parameters_[output_directive.name]);
}
- for (int i = 0; i < parsed_files.size(); i++) {
- if (!output_directive.generator->Generate(parsed_files[i], parameters,
- generator_context, &error)) {
- // Generator returned an error.
- std::cerr << output_directive.name << ": " << parsed_files[i]->name()
- << ": " << error << std::endl;
- return false;
+ if (output_directive.generator->HasGenerateAll()) {
+ if (!output_directive.generator->GenerateAll(
+ parsed_files, parameters, generator_context, &error)) {
+ // Generator returned an error.
+ std::cerr << output_directive.name << ": "
+ << ": " << error << std::endl;
+ return false;
+ }
+ } else {
+ for (int i = 0; i < parsed_files.size(); i++) {
+ if (!output_directive.generator->Generate(parsed_files[i], parameters,
+ generator_context, &error)) {
+ // Generator returned an error.
+ std::cerr << output_directive.name << ": " << parsed_files[i]->name()
+ << ": " << error << std::endl;
+ return false;
+ }
}
}
}
@@ -1403,7 +1494,8 @@ bool CommandLineInterface::GenerateDependencyManifestFile(
printer.Print(" $disk_file$", "disk_file", disk_file);
if (i < file_set.file_size() - 1) printer.Print("\\\n");
} else {
- cerr << "Unable to identify path for file " << virtual_file << endl;
+ std::cerr << "Unable to identify path for file " << virtual_file
+ << std::endl;
return false;
}
}
@@ -1673,6 +1765,10 @@ void GatherOccupiedFieldRanges(const Descriptor* descriptor,
ranges->insert(FieldRange(descriptor->extension_range(i)->start,
descriptor->extension_range(i)->end));
}
+ for (int i = 0; i < descriptor->reserved_range_count(); ++i) {
+ ranges->insert(FieldRange(descriptor->reserved_range(i)->start,
+ descriptor->reserved_range(i)->end));
+ }
// Handle the nested messages/groups in declaration order to make it
// post-order strict.
for (int i = 0; i < descriptor->nested_type_count(); ++i) {
diff --git a/src/google/protobuf/compiler/command_line_interface_unittest.cc b/src/google/protobuf/compiler/command_line_interface_unittest.cc
index e284c791..e5b77c33 100644
--- a/src/google/protobuf/compiler/command_line_interface_unittest.cc
+++ b/src/google/protobuf/compiler/command_line_interface_unittest.cc
@@ -115,10 +115,15 @@ class CommandLineInterfaceTest : public testing::Test {
// Create a subdirectory within temp_directory_.
void CreateTempDir(const string& name);
+#ifdef PROTOBUF_OPENSOURCE
// Change working directory to temp directory.
void SwitchToTempDirectory() {
File::ChangeWorkingDirectory(temp_directory_);
}
+#else // !PROTOBUF_OPENSOURCE
+ // TODO(teboring): Figure out how to change and get working directory in
+ // google3.
+#endif // !PROTOBUF_OPENSOURCE
void SetInputsAreProtoPathRelative(bool enable) {
cli_.SetInputsAreProtoPathRelative(enable);
@@ -968,6 +973,9 @@ TEST_F(CommandLineInterfaceTest, WriteTransitiveDescriptorSetWithSourceInfo) {
EXPECT_TRUE(descriptor_set.file(1).has_source_code_info());
}
+#ifdef _WIN32
+// TODO(teboring): Figure out how to write test on windows.
+#else
TEST_F(CommandLineInterfaceTest, WriteDependencyManifestFileGivenTwoInputs) {
CreateTempFile("foo.proto",
"syntax = \"proto2\";\n"
@@ -986,6 +994,7 @@ TEST_F(CommandLineInterfaceTest, WriteDependencyManifestFileGivenTwoInputs) {
"Can only process one input file when using --dependency_out=FILE.\n");
}
+#ifdef PROTOBUF_OPENSOURCE
TEST_F(CommandLineInterfaceTest, WriteDependencyManifestFile) {
CreateTempFile("foo.proto",
"syntax = \"proto2\";\n"
@@ -1011,6 +1020,10 @@ TEST_F(CommandLineInterfaceTest, WriteDependencyManifestFile) {
File::ChangeWorkingDirectory(current_working_directory);
}
+#else // !PROTOBUF_OPENSOURCE
+// TODO(teboring): Figure out how to change and get working directory in
+// google3.
+#endif // !PROTOBUF_OPENSOURCE
TEST_F(CommandLineInterfaceTest, WriteDependencyManifestFileForAbsolutePath) {
CreateTempFile("foo.proto",
@@ -1032,6 +1045,7 @@ TEST_F(CommandLineInterfaceTest, WriteDependencyManifestFileForAbsolutePath) {
"$tmpdir/bar.proto.MockCodeGenerator.test_generator: "
"$tmpdir/foo.proto\\\n $tmpdir/bar.proto");
}
+#endif // !_WIN32
// -------------------------------------------------------------------
diff --git a/src/google/protobuf/compiler/cpp/cpp_enum.cc b/src/google/protobuf/compiler/cpp/cpp_enum.cc
index 3eb20ab1..70d3a600 100644
--- a/src/google/protobuf/compiler/cpp/cpp_enum.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_enum.cc
@@ -70,12 +70,23 @@ EnumGenerator::EnumGenerator(const EnumDescriptor* descriptor,
EnumGenerator::~EnumGenerator() {}
+void EnumGenerator::GenerateForwardDeclaration(io::Printer* printer) {
+ if (!options_.proto_h) {
+ return;
+ }
+ map<string, string> vars;
+ vars["classname"] = classname_;
+ printer->Print(vars, "enum $classname$ : int;\n");
+ printer->Print(vars, "bool $classname$_IsValid(int value);\n");
+}
+
void EnumGenerator::GenerateDefinition(io::Printer* printer) {
map<string, string> vars;
vars["classname"] = classname_;
vars["short_name"] = descriptor_->name();
+ vars["enumbase"] = classname_ + (options_.proto_h ? " : int" : "");
- printer->Print(vars, "enum $classname$ {\n");
+ printer->Print(vars, "enum $enumbase$ {\n");
printer->Indent();
const EnumValueDescriptor* min_value = descriptor_->value(0);
@@ -90,7 +101,6 @@ void EnumGenerator::GenerateDefinition(io::Printer* printer) {
vars["prefix"] = (descriptor_->containing_type() == NULL) ?
"" : classname_ + "_";
-
if (i > 0) printer->Print(",\n");
printer->Print(vars, "$prefix$$name$ = $number$");
diff --git a/src/google/protobuf/compiler/cpp/cpp_enum.h b/src/google/protobuf/compiler/cpp/cpp_enum.h
index 1ebd7cf7..3e930856 100644
--- a/src/google/protobuf/compiler/cpp/cpp_enum.h
+++ b/src/google/protobuf/compiler/cpp/cpp_enum.h
@@ -60,6 +60,12 @@ class EnumGenerator {
// Header stuff.
+ // Generate header code to forward-declare the enum. This is for use when
+ // generating other .proto.h files. This code should be placed within the
+ // enum's package namespace, but NOT within any class, even for nested
+ // enums.
+ void GenerateForwardDeclaration(io::Printer* printer);
+
// Generate header code defining the enum. This code should be placed
// within the enum's package namespace, but NOT within any class, even for
// nested enums.
diff --git a/src/google/protobuf/compiler/cpp/cpp_enum_field.cc b/src/google/protobuf/compiler/cpp/cpp_enum_field.cc
index 74989703..965327b1 100644
--- a/src/google/protobuf/compiler/cpp/cpp_enum_field.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_enum_field.cc
@@ -242,7 +242,7 @@ void RepeatedEnumFieldGenerator::
GeneratePrivateMembers(io::Printer* printer) const {
printer->Print(variables_,
"::google::protobuf::RepeatedField<int> $name$_;\n");
- if (descriptor_->options().packed()
+ if (descriptor_->is_packed()
&& HasGeneratedMethods(descriptor_->file())) {
printer->Print(variables_,
"mutable int _$name$_cached_byte_size_;\n");
@@ -352,7 +352,7 @@ GenerateMergeFromCodedStream(io::Printer* printer) const {
void RepeatedEnumFieldGenerator::
GenerateMergeFromCodedStreamWithPacking(io::Printer* printer) const {
- if (!descriptor_->options().packed()) {
+ if (!descriptor_->is_packed()) {
// This path is rarely executed, so we use a non-inlined implementation.
if (HasPreservingUnknownEnumSemantics(descriptor_->file())) {
printer->Print(variables_,
@@ -419,7 +419,7 @@ GenerateMergeFromCodedStreamWithPacking(io::Printer* printer) const {
void RepeatedEnumFieldGenerator::
GenerateSerializeWithCachedSizes(io::Printer* printer) const {
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
// Write the tag and the size.
printer->Print(variables_,
"if (this->$name$_size() > 0) {\n"
@@ -432,7 +432,7 @@ GenerateSerializeWithCachedSizes(io::Printer* printer) const {
}
printer->Print(variables_,
"for (int i = 0; i < this->$name$_size(); i++) {\n");
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
" ::google::protobuf::internal::WireFormatLite::WriteEnumNoTag(\n"
" this->$name$(i), output);\n");
@@ -446,7 +446,7 @@ GenerateSerializeWithCachedSizes(io::Printer* printer) const {
void RepeatedEnumFieldGenerator::
GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const {
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
// Write the tag and the size.
printer->Print(variables_,
"if (this->$name$_size() > 0) {\n"
@@ -460,7 +460,7 @@ GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const {
}
printer->Print(variables_,
"for (int i = 0; i < this->$name$_size(); i++) {\n");
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
" target = ::google::protobuf::internal::WireFormatLite::WriteEnumNoTagToArray(\n"
" this->$name$(i), target);\n");
@@ -484,7 +484,7 @@ GenerateByteSize(io::Printer* printer) const {
" this->$name$(i));\n"
"}\n");
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
"if (data_size > 0) {\n"
" total_size += $tag_size$ +\n"
diff --git a/src/google/protobuf/compiler/cpp/cpp_field.h b/src/google/protobuf/compiler/cpp/cpp_field.h
index cd2b6b75..1d7f8233 100644
--- a/src/google/protobuf/compiler/cpp/cpp_field.h
+++ b/src/google/protobuf/compiler/cpp/cpp_field.h
@@ -82,12 +82,38 @@ class FieldGenerator {
// implementation is empty.
virtual void GenerateStaticMembers(io::Printer* /*printer*/) const {}
+ // Generate prototypes for accessors that will manipulate imported
+ // messages inline. These are for .proto.h headers.
+ //
+ // In .proto.h mode, the headers of imports are not #included. However,
+ // functions that manipulate the imported message types need access to
+ // the class definition of the imported message, meaning that the headers
+ // must be #included. To get around this, functions that manipulate
+ // imported message objects are defined as dependent functions in a base
+ // template class. By making them dependent template functions, the
+ // function templates will not be instantiated until they are called, so
+ // we can defer to those translation units to #include the necessary
+ // generated headers.
+ //
+ // See:
+ // http://en.cppreference.com/w/cpp/language/class_template#Implicit_instantiation
+ //
+ // Most field types don't need this, so the default implementation is empty.
+ virtual void GenerateDependentAccessorDeclarations(
+ io::Printer* printer) const {}
+
// Generate prototypes for all of the accessor functions related to this
// field. These are placed inside the class definition.
virtual void GenerateAccessorDeclarations(io::Printer* printer) const = 0;
+ // Generate inline definitions of depenent accessor functions for this field.
+ // These are placed inside the header after all class definitions.
+ virtual void GenerateDependentInlineAccessorDefinitions(
+ io::Printer* printer) const {}
+
// Generate inline definitions of accessor functions for this field.
// These are placed inside the header after all class definitions.
+ // In non-.proto.h mode, this generates dependent accessor functions as well.
virtual void GenerateInlineAccessorDefinitions(
io::Printer* printer, bool is_inline) const = 0;
diff --git a/src/google/protobuf/compiler/cpp/cpp_file.cc b/src/google/protobuf/compiler/cpp/cpp_file.cc
index a98c7d92..b997a51a 100644
--- a/src/google/protobuf/compiler/cpp/cpp_file.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_file.cc
@@ -94,113 +94,10 @@ FileGenerator::FileGenerator(const FileDescriptor* file, const Options& options)
FileGenerator::~FileGenerator() {}
void FileGenerator::GenerateHeader(io::Printer* printer) {
- string filename_identifier = FilenameIdentifier(file_->name());
-
- // Generate top of header.
- printer->Print(
- "// Generated by the protocol buffer compiler. DO NOT EDIT!\n"
- "// source: $filename$\n"
- "\n"
- "#ifndef PROTOBUF_$filename_identifier$__INCLUDED\n"
- "#define PROTOBUF_$filename_identifier$__INCLUDED\n"
- "\n"
- "#include <string>\n"
- "\n",
- "filename", file_->name(),
- "filename_identifier", filename_identifier);
-
-
- printer->Print(
- "#include <google/protobuf/stubs/common.h>\n"
- "\n");
-
- // Verify the protobuf library header version is compatible with the protoc
- // version before going any further.
- printer->Print(
- "#if GOOGLE_PROTOBUF_VERSION < $min_header_version$\n"
- "#error This file was generated by a newer version of protoc which is\n"
- "#error incompatible with your Protocol Buffer headers. Please update\n"
- "#error your headers.\n"
- "#endif\n"
- "#if $protoc_version$ < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION\n"
- "#error This file was generated by an older version of protoc which is\n"
- "#error incompatible with your Protocol Buffer headers. Please\n"
- "#error regenerate this file with a newer version of protoc.\n"
- "#endif\n"
- "\n",
- "min_header_version",
- SimpleItoa(protobuf::internal::kMinHeaderVersionForProtoc),
- "protoc_version", SimpleItoa(GOOGLE_PROTOBUF_VERSION));
-
- // OK, it's now safe to #include other files.
- printer->Print(
- "#include <google/protobuf/arena.h>\n"
- "#include <google/protobuf/arenastring.h>\n"
- "#include <google/protobuf/generated_message_util.h>\n");
- if (UseUnknownFieldSet(file_)) {
- printer->Print(
- "#include <google/protobuf/metadata.h>\n");
- }
- if (file_->message_type_count() > 0) {
- if (HasDescriptorMethods(file_)) {
- printer->Print(
- "#include <google/protobuf/message.h>\n");
- } else {
- printer->Print(
- "#include <google/protobuf/message_lite.h>\n");
- }
- }
- printer->Print(
- "#include <google/protobuf/repeated_field.h>\n"
- "#include <google/protobuf/extension_set.h>\n");
- if (HasMapFields(file_)) {
- printer->Print(
- "#include <google/protobuf/map.h>\n");
- if (HasDescriptorMethods(file_)) {
- printer->Print(
- "#include <google/protobuf/map_field_inl.h>\n");
- } else {
- printer->Print(
- "#include <google/protobuf/map_field_lite.h>\n");
- }
- }
-
- if (HasEnumDefinitions(file_)) {
- if (HasDescriptorMethods(file_)) {
- printer->Print(
- "#include <google/protobuf/generated_enum_reflection.h>\n");
- } else {
- printer->Print(
- "#include <google/protobuf/generated_enum_util.h>\n");
- }
- }
-
- if (HasGenericServices(file_)) {
- printer->Print(
- "#include <google/protobuf/service.h>\n");
- }
-
- if (UseUnknownFieldSet(file_) && file_->message_type_count() > 0) {
- printer->Print(
- "#include <google/protobuf/unknown_field_set.h>\n");
- }
-
-
- set<string> public_import_names;
- for (int i = 0; i < file_->public_dependency_count(); i++) {
- public_import_names.insert(file_->public_dependency(i)->name());
- }
-
- for (int i = 0; i < file_->dependency_count(); i++) {
- const string& name = file_->dependency(i)->name();
- bool public_import = (public_import_names.count(name) != 0);
+ GenerateTopHeaderGuard(printer);
-
- printer->Print(
- "#include \"$dependency$.pb.h\"$iwyu$\n",
- "dependency", StripProto(name),
- "iwyu", (public_import) ? " // IWYU pragma: export" : "");
- }
+ GenerateLibraryIncludes(printer);
+ GenerateDependencyIncludes(printer);
printer->Print(
"// @@protoc_insertion_point(includes)\n");
@@ -210,132 +107,44 @@ void FileGenerator::GenerateHeader(io::Printer* printer) {
// Open namespace.
GenerateNamespaceOpeners(printer);
- // Forward-declare the AddDescriptors, AssignDescriptors, and ShutdownFile
- // functions, so that we can declare them to be friends of each class.
- printer->Print(
- "\n"
- "// Internal implementation detail -- do not call these.\n"
- "void $dllexport_decl$$adddescriptorsname$();\n",
- "adddescriptorsname", GlobalAddDescriptorsName(file_->name()),
- "dllexport_decl",
- options_.dllexport_decl.empty() ? "" : options_.dllexport_decl + " ");
-
- printer->Print(
- // Note that we don't put dllexport_decl on these because they are only
- // called by the .pb.cc file in which they are defined.
- "void $assigndescriptorsname$();\n"
- "void $shutdownfilename$();\n"
- "\n",
- "assigndescriptorsname", GlobalAssignDescriptorsName(file_->name()),
- "shutdownfilename", GlobalShutdownFileName(file_->name()));
-
- // Generate forward declarations of classes.
- for (int i = 0; i < file_->message_type_count(); i++) {
- message_generators_[i]->GenerateForwardDeclaration(printer);
- }
+ GenerateGlobalStateFunctionDeclarations(printer);
+ GenerateMessageForwardDeclarations(printer);
printer->Print("\n");
- // Generate enum definitions.
- for (int i = 0; i < file_->message_type_count(); i++) {
- message_generators_[i]->GenerateEnumDefinitions(printer);
- }
- for (int i = 0; i < file_->enum_type_count(); i++) {
- enum_generators_[i]->GenerateDefinition(printer);
- }
+ GenerateEnumDefinitions(printer);
printer->Print(kThickSeparator);
printer->Print("\n");
- // Generate class definitions.
- for (int i = 0; i < file_->message_type_count(); i++) {
- if (i > 0) {
- printer->Print("\n");
- printer->Print(kThinSeparator);
- printer->Print("\n");
- }
- message_generators_[i]->GenerateClassDefinition(printer);
- }
+ GenerateMessageDefinitions(printer);
printer->Print("\n");
printer->Print(kThickSeparator);
printer->Print("\n");
- if (HasGenericServices(file_)) {
- // Generate service definitions.
- for (int i = 0; i < file_->service_count(); i++) {
- if (i > 0) {
- printer->Print("\n");
- printer->Print(kThinSeparator);
- printer->Print("\n");
- }
- service_generators_[i]->GenerateDeclarations(printer);
- }
-
- printer->Print("\n");
- printer->Print(kThickSeparator);
- printer->Print("\n");
- }
+ GenerateServiceDefinitions(printer);
- // Declare extension identifiers.
- for (int i = 0; i < file_->extension_count(); i++) {
- extension_generators_[i]->GenerateDeclaration(printer);
- }
+ GenerateExtensionIdentifiers(printer);
printer->Print("\n");
printer->Print(kThickSeparator);
printer->Print("\n");
- printer->Print("#if !PROTOBUF_INLINE_NOT_IN_HEADERS\n");
- // Generate class inline methods.
- for (int i = 0; i < file_->message_type_count(); i++) {
- if (i > 0) {
- printer->Print(kThinSeparator);
- printer->Print("\n");
- }
- message_generators_[i]->GenerateInlineMethods(printer,
- /* is_inline = */ true);
- }
- printer->Print("#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS\n");
-
- printer->Print(
- "\n"
- "// @@protoc_insertion_point(namespace_scope)\n");
+ GenerateInlineFunctionDefinitions(printer);
// Close up namespace.
GenerateNamespaceClosers(printer);
- // Emit GetEnumDescriptor specializations into google::protobuf namespace:
- if (HasEnumDefinitions(file_)) {
- // The SWIG conditional is to avoid a null-pointer dereference
- // (bug 1984964) in swig-1.3.21 resulting from the following syntax:
- // namespace X { void Y<Z::W>(); }
- // which appears in GetEnumDescriptor() specializations.
- printer->Print(
- "\n"
- "#ifndef SWIG\n"
- "namespace google {\nnamespace protobuf {\n"
- "\n");
- for (int i = 0; i < file_->message_type_count(); i++) {
- message_generators_[i]->GenerateGetEnumDescriptorSpecializations(printer);
- }
- for (int i = 0; i < file_->enum_type_count(); i++) {
- enum_generators_[i]->GenerateGetEnumDescriptorSpecializations(printer);
- }
- printer->Print(
- "\n"
- "} // namespace protobuf\n} // namespace google\n"
- "#endif // SWIG\n");
- }
+ // We need to specialize some templates in the ::google::protobuf namespace:
+ GenerateProto2NamespaceEnumSpecializations(printer);
printer->Print(
"\n"
"// @@protoc_insertion_point(global_scope)\n"
"\n");
- printer->Print(
- "#endif // PROTOBUF_$filename_identifier$__INCLUDED\n",
- "filename_identifier", filename_identifier);
+ GenerateBottomHeaderGuard(printer);
}
void FileGenerator::GenerateSource(io::Printer* printer) {
@@ -707,6 +516,294 @@ void FileGenerator::GenerateNamespaceClosers(io::Printer* printer) {
}
}
+void FileGenerator::GenerateTopHeaderGuard(io::Printer* printer) {
+ string filename_identifier = FilenameIdentifier(file_->name());
+ // Generate top of header.
+ printer->Print(
+ "// Generated by the protocol buffer compiler. DO NOT EDIT!\n"
+ "// source: $filename$\n"
+ "\n"
+ "#ifndef PROTOBUF_$filename_identifier$__INCLUDED\n"
+ "#define PROTOBUF_$filename_identifier$__INCLUDED\n"
+ "\n"
+ "#include <string>\n"
+ "\n",
+ "filename", file_->name(),
+ "filename_identifier", filename_identifier);
+}
+
+void FileGenerator::GenerateBottomHeaderGuard(io::Printer* printer) {
+ string filename_identifier = FilenameIdentifier(file_->name());
+ printer->Print(
+ "#endif // PROTOBUF_$filename_identifier$__INCLUDED\n",
+ "filename_identifier", filename_identifier);
+}
+
+void FileGenerator::GenerateLibraryIncludes(io::Printer* printer) {
+
+ printer->Print(
+ "#include <google/protobuf/stubs/common.h>\n"
+ "\n");
+
+ // Verify the protobuf library header version is compatible with the protoc
+ // version before going any further.
+ printer->Print(
+ "#if GOOGLE_PROTOBUF_VERSION < $min_header_version$\n"
+ "#error This file was generated by a newer version of protoc which is\n"
+ "#error incompatible with your Protocol Buffer headers. Please update\n"
+ "#error your headers.\n"
+ "#endif\n"
+ "#if $protoc_version$ < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION\n"
+ "#error This file was generated by an older version of protoc which is\n"
+ "#error incompatible with your Protocol Buffer headers. Please\n"
+ "#error regenerate this file with a newer version of protoc.\n"
+ "#endif\n"
+ "\n",
+ "min_header_version",
+ SimpleItoa(protobuf::internal::kMinHeaderVersionForProtoc),
+ "protoc_version", SimpleItoa(GOOGLE_PROTOBUF_VERSION));
+
+ // OK, it's now safe to #include other files.
+ printer->Print(
+ "#include <google/protobuf/arena.h>\n"
+ "#include <google/protobuf/arenastring.h>\n"
+ "#include <google/protobuf/generated_message_util.h>\n");
+ if (UseUnknownFieldSet(file_)) {
+ printer->Print(
+ "#include <google/protobuf/metadata.h>\n");
+ }
+ if (file_->message_type_count() > 0) {
+ if (HasDescriptorMethods(file_)) {
+ printer->Print(
+ "#include <google/protobuf/message.h>\n");
+ } else {
+ printer->Print(
+ "#include <google/protobuf/message_lite.h>\n");
+ }
+ }
+ printer->Print(
+ "#include <google/protobuf/repeated_field.h>\n"
+ "#include <google/protobuf/extension_set.h>\n");
+ if (HasMapFields(file_)) {
+ printer->Print(
+ "#include <google/protobuf/map.h>\n");
+ if (HasDescriptorMethods(file_)) {
+ printer->Print(
+ "#include <google/protobuf/map_field_inl.h>\n");
+ } else {
+ printer->Print(
+ "#include <google/protobuf/map_field_lite.h>\n");
+ }
+ }
+
+ if (HasEnumDefinitions(file_)) {
+ if (HasDescriptorMethods(file_)) {
+ printer->Print(
+ "#include <google/protobuf/generated_enum_reflection.h>\n");
+ } else {
+ printer->Print(
+ "#include <google/protobuf/generated_enum_util.h>\n");
+ }
+ }
+
+ if (HasGenericServices(file_)) {
+ printer->Print(
+ "#include <google/protobuf/service.h>\n");
+ }
+
+ if (UseUnknownFieldSet(file_) && file_->message_type_count() > 0) {
+ printer->Print(
+ "#include <google/protobuf/unknown_field_set.h>\n");
+ }
+
+
+ if (IsAnyMessage(file_)) {
+ printer->Print(
+ "#include \"google/protobuf/any.h\"\n");
+ }
+}
+
+void FileGenerator::GenerateDependencyIncludes(io::Printer* printer) {
+ set<string> public_import_names;
+ for (int i = 0; i < file_->public_dependency_count(); i++) {
+ public_import_names.insert(file_->public_dependency(i)->name());
+ }
+
+ for (int i = 0; i < file_->dependency_count(); i++) {
+ const string& name = file_->dependency(i)->name();
+ bool public_import = (public_import_names.count(name) != 0);
+
+
+ printer->Print(
+ "#include \"$dependency$.pb.h\"$iwyu$\n",
+ "dependency", StripProto(name),
+ "iwyu", (public_import) ? " // IWYU pragma: export" : "");
+ }
+}
+
+void FileGenerator::GenerateGlobalStateFunctionDeclarations(
+ io::Printer* printer) {
+ // Forward-declare the AddDescriptors, AssignDescriptors, and ShutdownFile
+ // functions, so that we can declare them to be friends of each class.
+ printer->Print(
+ "\n"
+ "// Internal implementation detail -- do not call these.\n"
+ "void $dllexport_decl$$adddescriptorsname$();\n",
+ "adddescriptorsname", GlobalAddDescriptorsName(file_->name()),
+ "dllexport_decl",
+ options_.dllexport_decl.empty() ? "" : options_.dllexport_decl + " ");
+
+ printer->Print(
+ // Note that we don't put dllexport_decl on these because they are only
+ // called by the .pb.cc file in which they are defined.
+ "void $assigndescriptorsname$();\n"
+ "void $shutdownfilename$();\n"
+ "\n",
+ "assigndescriptorsname", GlobalAssignDescriptorsName(file_->name()),
+ "shutdownfilename", GlobalShutdownFileName(file_->name()));
+}
+
+void FileGenerator::GenerateMessageForwardDeclarations(io::Printer* printer) {
+ // Generate forward declarations of classes.
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ message_generators_[i]->GenerateMessageForwardDeclaration(printer);
+ }
+}
+
+void FileGenerator::GenerateMessageDefinitions(io::Printer* printer) {
+ // Generate class definitions.
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ if (i > 0) {
+ printer->Print("\n");
+ printer->Print(kThinSeparator);
+ printer->Print("\n");
+ }
+ message_generators_[i]->GenerateClassDefinition(printer);
+ }
+}
+
+void FileGenerator::GenerateEnumDefinitions(io::Printer* printer) {
+ // Generate enum definitions.
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ message_generators_[i]->GenerateEnumDefinitions(printer);
+ }
+ for (int i = 0; i < file_->enum_type_count(); i++) {
+ enum_generators_[i]->GenerateDefinition(printer);
+ }
+}
+
+void FileGenerator::GenerateServiceDefinitions(io::Printer* printer) {
+ if (HasGenericServices(file_)) {
+ // Generate service definitions.
+ for (int i = 0; i < file_->service_count(); i++) {
+ if (i > 0) {
+ printer->Print("\n");
+ printer->Print(kThinSeparator);
+ printer->Print("\n");
+ }
+ service_generators_[i]->GenerateDeclarations(printer);
+ }
+
+ printer->Print("\n");
+ printer->Print(kThickSeparator);
+ printer->Print("\n");
+ }
+}
+
+void FileGenerator::GenerateExtensionIdentifiers(io::Printer* printer) {
+ // Declare extension identifiers.
+ for (int i = 0; i < file_->extension_count(); i++) {
+ extension_generators_[i]->GenerateDeclaration(printer);
+ }
+}
+
+void FileGenerator::GenerateInlineFunctionDefinitions(io::Printer* printer) {
+ // An aside about inline functions in .proto.h mode:
+ //
+ // The PROTOBUF_INLINE_NOT_IN_HEADERS symbol controls conditionally
+ // moving much of the inline functions to the .pb.cc file, which can be a
+ // significant performance benefit for compilation time, at the expense
+ // of non-inline function calls.
+ //
+ // However, in .proto.h mode, the definition of the internal dependent
+ // base class must remain in the header, and can never be out-lined. The
+ // dependent base class also needs access to has-bit manipuation
+ // functions, so the has-bit functions must be unconditionally inlined in
+ // proto_h mode.
+ //
+ // This gives us three flavors of functions:
+ //
+ // 1. Functions on the message not used by the internal dependent base
+ // class: in .proto.h mode, only some functions are defined on the
+ // message class; others are defined on the dependent base class.
+ // These are guarded and can be out-lined. These are generated by
+ // GenerateInlineMethods, and include has_* bit functions in
+ // non-proto_h mode.
+ //
+ // 2. Functions on the internal dependent base class: these functions
+ // are dependent on a template parameter, so they always need to
+ // remain in the header.
+ //
+ // 3. Functions on the message that are used by the dependent base: the
+ // dependent base class down casts itself to the message
+ // implementation class to access these functions (the has_* bit
+ // manipulation functions). Unlike #1, these functions must
+ // unconditionally remain in the header. These are emitted by
+ // GenerateDependentInlineMethods, even though they are not actually
+ // dependent.
+
+ printer->Print("#if !PROTOBUF_INLINE_NOT_IN_HEADERS\n");
+ // Generate class inline methods.
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ if (i > 0) {
+ printer->Print(kThinSeparator);
+ printer->Print("\n");
+ }
+ message_generators_[i]->GenerateInlineMethods(printer,
+ /* is_inline = */ true);
+ }
+ printer->Print("#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS\n");
+
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ if (i > 0) {
+ printer->Print(kThinSeparator);
+ printer->Print("\n");
+ }
+ // Methods of the dependent base class must always be inline in the header.
+ message_generators_[i]->GenerateDependentInlineMethods(printer);
+ }
+
+ printer->Print(
+ "\n"
+ "// @@protoc_insertion_point(namespace_scope)\n");
+}
+
+void FileGenerator::GenerateProto2NamespaceEnumSpecializations(
+ io::Printer* printer) {
+ // Emit GetEnumDescriptor specializations into google::protobuf namespace:
+ if (HasEnumDefinitions(file_)) {
+ // The SWIG conditional is to avoid a null-pointer dereference
+ // (bug 1984964) in swig-1.3.21 resulting from the following syntax:
+ // namespace X { void Y<Z::W>(); }
+ // which appears in GetEnumDescriptor() specializations.
+ printer->Print(
+ "\n"
+ "#ifndef SWIG\n"
+ "namespace google {\nnamespace protobuf {\n"
+ "\n");
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ message_generators_[i]->GenerateGetEnumDescriptorSpecializations(printer);
+ }
+ for (int i = 0; i < file_->enum_type_count(); i++) {
+ enum_generators_[i]->GenerateGetEnumDescriptorSpecializations(printer);
+ }
+ printer->Print(
+ "\n"
+ "} // namespace protobuf\n} // namespace google\n"
+ "#endif // SWIG\n");
+ }
+}
+
} // namespace cpp
} // namespace compiler
} // namespace protobuf
diff --git a/src/google/protobuf/compiler/cpp/cpp_file.h b/src/google/protobuf/compiler/cpp/cpp_file.h
index 0e06547d..e68f67bb 100644
--- a/src/google/protobuf/compiler/cpp/cpp_file.h
+++ b/src/google/protobuf/compiler/cpp/cpp_file.h
@@ -80,6 +80,35 @@ class FileGenerator {
void GenerateNamespaceOpeners(io::Printer* printer);
void GenerateNamespaceClosers(io::Printer* printer);
+ // Generates top or bottom of a header file.
+ void GenerateTopHeaderGuard(io::Printer* printer);
+ void GenerateBottomHeaderGuard(io::Printer* printer);
+
+ // Generates #include directives.
+ void GenerateLibraryIncludes(io::Printer* printer);
+ void GenerateDependencyIncludes(io::Printer* printer);
+
+ // Generates a couple of different pieces before definitions:
+ void GenerateGlobalStateFunctionDeclarations(io::Printer* printer);
+
+ // Generates types for classes.
+ void GenerateMessageForwardDeclarations(io::Printer* printer);
+ void GenerateMessageDefinitions(io::Printer* printer);
+
+ // Generates enum definitions.
+ void GenerateEnumDefinitions(io::Printer* printer);
+
+ // Generates generic service definitions.
+ void GenerateServiceDefinitions(io::Printer* printer);
+
+ // Generates extension identifiers.
+ void GenerateExtensionIdentifiers(io::Printer* printer);
+
+ // Generates inline function defintions.
+ void GenerateInlineFunctionDefinitions(io::Printer* printer);
+
+ void GenerateProto2NamespaceEnumSpecializations(io::Printer* printer);
+
const FileDescriptor* file_;
google::protobuf::scoped_array<google::protobuf::scoped_ptr<MessageGenerator> > message_generators_;
diff --git a/src/google/protobuf/compiler/cpp/cpp_generator.cc b/src/google/protobuf/compiler/cpp/cpp_generator.cc
index c999b93f..99416372 100644
--- a/src/google/protobuf/compiler/cpp/cpp_generator.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_generator.cc
@@ -82,6 +82,7 @@ bool CppGenerator::Generate(const FileDescriptor* file,
// }
// FOO_EXPORT is a macro which should expand to __declspec(dllexport) or
// __declspec(dllimport) depending on what is being compiled.
+ //
Options file_options;
for (int i = 0; i < options.size(); i++) {
diff --git a/src/google/protobuf/compiler/cpp/cpp_helpers.cc b/src/google/protobuf/compiler/cpp/cpp_helpers.cc
index 4e7155c3..0f3688d0 100644
--- a/src/google/protobuf/compiler/cpp/cpp_helpers.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_helpers.cc
@@ -51,6 +51,9 @@ namespace cpp {
namespace {
+static const char kAnyMessageName[] = "Any";
+static const char kAnyProtoFile[] = "google/protobuf/any.proto";
+
string DotsToUnderscores(const string& name) {
return StringReplace(name, ".", "_", true);
}
@@ -162,6 +165,10 @@ string ClassName(const EnumDescriptor* enum_descriptor, bool qualified) {
}
+string DependentBaseClassTemplateName(const Descriptor* descriptor) {
+ return ClassName(descriptor, false) + "_InternalBase";
+}
+
string SuperClassName(const Descriptor* descriptor) {
return HasDescriptorMethods(descriptor->file()) ?
"::google::protobuf::Message" : "::google::protobuf::MessageLite";
@@ -200,6 +207,47 @@ string FieldConstantName(const FieldDescriptor *field) {
return result;
}
+bool IsFieldDependent(const FieldDescriptor* field) {
+ if (field->cpp_type() != FieldDescriptor::CPPTYPE_MESSAGE) {
+ return false;
+ }
+ if (field->containing_oneof() != NULL) {
+ // Oneof fields will always be dependent.
+ //
+ // This is a unique case for field codegen. Field generators are
+ // responsible for generating all the field-specific accessor
+ // functions, except for the clear_*() function; instead, field
+ // generators produce inline clearing code.
+ //
+ // For non-oneof fields, the Message class uses the inline clearing
+ // code to define the field's clear_*() function, as well as in the
+ // destructor. For oneof fields, the Message class generates a much
+ // more complicated clear_*() function, which clears only the oneof
+ // member that is set, in addition to clearing methods for each of the
+ // oneof members individually.
+ //
+ // Since oneofs do not have their own generator class, the Message code
+ // generation logic would be significantly complicated in order to
+ // split dependent and non-dependent manipulation logic based on
+ // whether the oneof truly needs to be dependent; so, for oneof fields,
+ // we just assume it (and its constituents) should be manipulated by a
+ // dependent base class function.
+ //
+ // This is less precise than how dependent message-typed fields are
+ // handled, but the cost is limited to only the generated code for the
+ // oneof field, which seems like an acceptable tradeoff.
+ return true;
+ }
+ if (field->file() == field->message_type()->file()) {
+ return false;
+ }
+ return true;
+}
+
+string DependentTypeName(const FieldDescriptor* field) {
+ return "InternalBase_" + field->name() + "_T";
+}
+
string FieldMessageTypeName(const FieldDescriptor* field) {
// Note: The Google-internal version of Protocol Buffers uses this function
// as a hook point for hacks to support legacy code.
@@ -360,7 +408,7 @@ string FilenameIdentifier(const string& filename) {
} else {
// Not alphanumeric. To avoid any possibility of name conflicts we
// use the hex code for the character.
- StrAppend(&result, "_", ToHex(static_cast<uint8>(filename[i])));
+ StrAppend(&result, "_", strings::Hex(static_cast<uint8>(filename[i])));
}
}
return result;
@@ -521,6 +569,15 @@ FieldOptions::CType EffectiveStringCType(const FieldDescriptor* field) {
}
+bool IsAnyMessage(const FileDescriptor* descriptor) {
+ return descriptor->name() == kAnyProtoFile;
+}
+
+bool IsAnyMessage(const Descriptor* descriptor) {
+ return descriptor->name() == kAnyMessageName &&
+ descriptor->file()->name() == kAnyProtoFile;
+}
+
} // namespace cpp
} // namespace compiler
} // namespace protobuf
diff --git a/src/google/protobuf/compiler/cpp/cpp_helpers.h b/src/google/protobuf/compiler/cpp/cpp_helpers.h
index 284fa2c1..4bbf8303 100644
--- a/src/google/protobuf/compiler/cpp/cpp_helpers.h
+++ b/src/google/protobuf/compiler/cpp/cpp_helpers.h
@@ -66,6 +66,10 @@ extern const char kThinSeparator[];
string ClassName(const Descriptor* descriptor, bool qualified);
string ClassName(const EnumDescriptor* enum_descriptor, bool qualified);
+// Name of the CRTP class template (for use with proto_h).
+// This is a class name, like "ProtoName_InternalBase".
+string DependentBaseClassTemplateName(const Descriptor* descriptor);
+
string SuperClassName(const Descriptor* descriptor);
// Get the (unqualified) name that should be used for this field in C++ code.
@@ -88,6 +92,20 @@ inline const Descriptor* FieldScope(const FieldDescriptor* field) {
field->extension_scope() : field->containing_type();
}
+// Returns true if the given 'field_descriptor' has a message type that is
+// a dependency of the file where the field is defined (i.e., the field
+// type is defined in a different file than the message holding the field).
+//
+// This only applies to Message-typed fields. Enum-typed fields may refer
+// to an enum in a dependency; however, enums are specified and
+// forward-declared with an enum-base, so the definition is not required to
+// manipulate the field value.
+bool IsFieldDependent(const FieldDescriptor* field_descriptor);
+
+// Returns the name that should be used for forcing dependent lookup from a
+// dependent base class.
+string DependentTypeName(const FieldDescriptor* field);
+
// Returns the fully-qualified type name field->message_type(). Usually this
// is just ClassName(field->message_type(), true);
string FieldMessageTypeName(const FieldDescriptor* field);
@@ -242,6 +260,9 @@ inline bool SupportsArenas(const FieldDescriptor* field) {
return SupportsArenas(field->file());
}
+bool IsAnyMessage(const FileDescriptor* descriptor);
+bool IsAnyMessage(const Descriptor* descriptor);
+
} // namespace cpp
} // namespace compiler
} // namespace protobuf
diff --git a/src/google/protobuf/compiler/cpp/cpp_map_field.cc b/src/google/protobuf/compiler/cpp/cpp_map_field.cc
index 8c38db2b..0ff0d27c 100644
--- a/src/google/protobuf/compiler/cpp/cpp_map_field.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_map_field.cc
@@ -244,7 +244,8 @@ GenerateSerializeWithCachedSizes(io::Printer* printer) const {
"{\n"
" ::google::protobuf::scoped_ptr<$map_classname$> entry;\n"
" for (::google::protobuf::Map< $key_cpp$, $val_cpp$ >::const_iterator\n"
- " it = $name$().begin(); it != $name$().end(); ++it) {\n");
+ " it = this->$name$().begin();\n"
+ " it != this->$name$().end(); ++it) {\n");
// If entry is allocated by arena, its desctructor should be avoided.
if (SupportsArenas(descriptor_)) {
@@ -277,7 +278,8 @@ GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const {
"{\n"
" ::google::protobuf::scoped_ptr<$map_classname$> entry;\n"
" for (::google::protobuf::Map< $key_cpp$, $val_cpp$ >::const_iterator\n"
- " it = $name$().begin(); it != $name$().end(); ++it) {\n");
+ " it = this->$name$().begin();\n"
+ " it != this->$name$().end(); ++it) {\n");
// If entry is allocated by arena, its desctructor should be avoided.
if (SupportsArenas(descriptor_)) {
@@ -312,7 +314,8 @@ GenerateByteSize(io::Printer* printer) const {
"{\n"
" ::google::protobuf::scoped_ptr<$map_classname$> entry;\n"
" for (::google::protobuf::Map< $key_cpp$, $val_cpp$ >::const_iterator\n"
- " it = $name$().begin(); it != $name$().end(); ++it) {\n");
+ " it = this->$name$().begin();\n"
+ " it != this->$name$().end(); ++it) {\n");
// If entry is allocated by arena, its desctructor should be avoided.
if (SupportsArenas(descriptor_)) {
diff --git a/src/google/protobuf/compiler/cpp/cpp_message.cc b/src/google/protobuf/compiler/cpp/cpp_message.cc
index bafa36f5..af85919a 100644
--- a/src/google/protobuf/compiler/cpp/cpp_message.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_message.cc
@@ -64,10 +64,15 @@ using internal::WireFormatLite;
namespace {
-void PrintFieldComment(io::Printer* printer, const FieldDescriptor* field) {
- // Print the field's proto-syntax definition as a comment. We don't want to
- // print group bodies so we cut off after the first line.
- string def = field->DebugString();
+template <class T>
+void PrintFieldComment(io::Printer* printer, const T* field) {
+ // Print the field's (or oneof's) proto-syntax definition as a comment.
+ // We don't want to print group bodies so we cut off after the first
+ // line.
+ DebugStringOptions options;
+ options.elide_group_body = true;
+ options.elide_oneof_body = true;
+ string def = field->DebugStringWithOptions(options);
printer->Print("// $def$\n",
"def", def.substr(0, def.find_first_of('\n')));
}
@@ -280,6 +285,10 @@ void OptimizePadding(vector<const FieldDescriptor*>* fields) {
}
}
+string MessageTypeProtoName(const FieldDescriptor* field) {
+ return field->message_type()->full_name();
+}
+
// Emits an if-statement with a condition that evaluates to true if |field| is
// considered non-default (will be sent over the wire), for message types
// without true field presence. Should only be called if
@@ -379,7 +388,8 @@ MessageGenerator::MessageGenerator(const Descriptor* descriptor,
enum_generators_(
new google::protobuf::scoped_ptr<EnumGenerator>[descriptor->enum_type_count()]),
extension_generators_(new google::protobuf::scoped_ptr<
- ExtensionGenerator>[descriptor->extension_count()]) {
+ ExtensionGenerator>[descriptor->extension_count()]),
+ use_dependent_base_(false) {
for (int i = 0; i < descriptor->nested_type_count(); i++) {
nested_generators_[i].reset(
@@ -401,13 +411,16 @@ MessageGenerator::MessageGenerator(const Descriptor* descriptor,
if (descriptor->field(i)->is_required()) {
++num_required_fields_;
}
+ if (options.proto_h && IsFieldDependent(descriptor->field(i))) {
+ use_dependent_base_ = true;
+ }
}
}
MessageGenerator::~MessageGenerator() {}
void MessageGenerator::
-GenerateForwardDeclaration(io::Printer* printer) {
+GenerateMessageForwardDeclaration(io::Printer* printer) {
printer->Print("class $classname$;\n",
"classname", classname_);
@@ -416,7 +429,17 @@ GenerateForwardDeclaration(io::Printer* printer) {
// message cannot be a top level class, we just need to avoid calling
// GenerateForwardDeclaration here.
if (IsMapEntryMessage(descriptor_->nested_type(i))) continue;
- nested_generators_[i]->GenerateForwardDeclaration(printer);
+ nested_generators_[i]->GenerateMessageForwardDeclaration(printer);
+ }
+}
+
+void MessageGenerator::
+GenerateEnumForwardDeclaration(io::Printer* printer) {
+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
+ nested_generators_[i]->GenerateEnumForwardDeclaration(printer);
+ }
+ for (int i = 0; i < descriptor_->enum_type_count(); i++) {
+ enum_generators_[i]->GenerateForwardDeclaration(printer);
}
}
@@ -442,6 +465,35 @@ GenerateGetEnumDescriptorSpecializations(io::Printer* printer) {
}
void MessageGenerator::
+GenerateDependentFieldAccessorDeclarations(io::Printer* printer) {
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+
+ PrintFieldComment(printer, field);
+
+ map<string, string> vars;
+ SetCommonFieldVariables(field, &vars, options_);
+
+ if (use_dependent_base_ && IsFieldDependent(field)) {
+ // If the message is dependent, the inline clear_*() method will need
+ // to delete the message type, so it must be in the dependent base
+ // class. (See also GenerateFieldAccessorDeclarations.)
+ printer->Print(vars, "void clear_$name$()$deprecation$;\n");
+ }
+ // Generate type-specific accessor declarations.
+ field_generators_.get(field).GenerateDependentAccessorDeclarations(printer);
+ printer->Print("\n");
+ }
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ const OneofDescriptor* oneof = descriptor_->oneof_decl(i);
+ PrintFieldComment(printer, oneof);
+ printer->Print(
+ "void clear_$oneof_name$();\n",
+ "oneof_name", oneof->name());
+ }
+}
+
+void MessageGenerator::
GenerateFieldAccessorDeclarations(io::Printer* printer) {
for (int i = 0; i < descriptor_->field_count(); i++) {
const FieldDescriptor* field = descriptor_->field(i);
@@ -452,6 +504,19 @@ GenerateFieldAccessorDeclarations(io::Printer* printer) {
SetCommonFieldVariables(field, &vars, options_);
vars["constant_name"] = FieldConstantName(field);
+ bool dependent_field = use_dependent_base_ && IsFieldDependent(field);
+ if (dependent_field) {
+ // If this field is dependent, the dependent base class determines
+ // the message type from the derived class (which is a template
+ // parameter). This typedef is for that:
+ printer->Print(
+ "private:\n"
+ "typedef $field_type$ $dependent_type$;\n"
+ "public:\n",
+ "field_type", FieldMessageTypeName(field),
+ "dependent_type", DependentTypeName(field));
+ }
+
if (field->is_repeated()) {
printer->Print(vars, "int $name$_size() const$deprecation$;\n");
} else if (HasHasMethod(field)) {
@@ -463,7 +528,11 @@ GenerateFieldAccessorDeclarations(io::Printer* printer) {
"public:\n");
}
- printer->Print(vars, "void clear_$name$()$deprecation$;\n");
+ if (!dependent_field) {
+ // If this field is dependent, then its clear_() method is in the
+ // depenent base class. (See also GenerateDependentAccessorDeclarations.)
+ printer->Print(vars, "void clear_$name$()$deprecation$;\n");
+ }
printer->Print(vars, "static const int $constant_name$ = $number$;\n");
// Generate type-specific accessor declarations.
@@ -490,6 +559,188 @@ GenerateFieldAccessorDeclarations(io::Printer* printer) {
}
void MessageGenerator::
+GenerateDependentFieldAccessorDefinitions(io::Printer* printer) {
+ if (!use_dependent_base_) return;
+
+ printer->Print("// $classname$\n\n", "classname",
+ DependentBaseClassTemplateName(descriptor_));
+
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+
+ PrintFieldComment(printer, field);
+
+ // These functions are not really dependent: they are part of the
+ // (non-dependent) derived class. However, they need to live outside
+ // any #ifdef guards, so we treat them as if they were dependent.
+ //
+ // See the comment in FileGenerator::GenerateInlineFunctionDefinitions
+ // for a more complete explanation.
+ if (use_dependent_base_ && IsFieldDependent(field)) {
+ map<string, string> vars;
+ SetCommonFieldVariables(field, &vars, options_);
+ vars["inline"] = "inline ";
+ if (field->containing_oneof()) {
+ vars["field_name"] = UnderscoresToCamelCase(field->name(), true);
+ vars["oneof_name"] = field->containing_oneof()->name();
+ vars["oneof_index"] = SimpleItoa(field->containing_oneof()->index());
+ GenerateOneofMemberHasBits(field, vars, printer);
+ } else if (!field->is_repeated()) {
+ // There will be no header guard, so this always has to be inline.
+ GenerateSingularFieldHasBits(field, vars, printer);
+ }
+ // vars needed for clear_(), which is in the dependent base:
+ // (See also GenerateDependentFieldAccessorDeclarations.)
+ vars["tmpl"] = "template<class T>\n";
+ vars["dependent_classname"] =
+ DependentBaseClassTemplateName(descriptor_) + "<T>";
+ vars["this_message"] = "reinterpret_cast<T*>(this)->";
+ vars["this_const_message"] = "reinterpret_cast<const T*>(this)->";
+ GenerateFieldClear(field, vars, printer);
+ }
+
+ // Generate type-specific accessors.
+ field_generators_.get(field)
+ .GenerateDependentInlineAccessorDefinitions(printer);
+
+ printer->Print("\n");
+ }
+
+ // Generate has_$name$() and clear_has_$name$() functions for oneofs
+ // Similar to other has-bits, these must always be in the header if we
+ // are using a dependent base class.
+ GenerateOneofHasBits(printer, true /* is_inline */);
+}
+
+void MessageGenerator::
+GenerateSingularFieldHasBits(const FieldDescriptor* field,
+ map<string, string> vars,
+ io::Printer* printer) {
+ if (HasFieldPresence(descriptor_->file())) {
+ // N.B.: without field presence, we do not use has-bits or generate
+ // has_$name$() methods.
+ vars["has_array_index"] = SimpleItoa(field->index() / 32);
+ vars["has_mask"] = StrCat(strings::Hex(1u << (field->index() % 32),
+ strings::Hex::ZERO_PAD_8));
+ printer->Print(vars,
+ "$inline$"
+ "bool $classname$::has_$name$() const {\n"
+ " return (_has_bits_[$has_array_index$] & 0x$has_mask$u) != 0;\n"
+ "}\n"
+ "$inline$"
+ "void $classname$::set_has_$name$() {\n"
+ " _has_bits_[$has_array_index$] |= 0x$has_mask$u;\n"
+ "}\n"
+ "$inline$"
+ "void $classname$::clear_has_$name$() {\n"
+ " _has_bits_[$has_array_index$] &= ~0x$has_mask$u;\n"
+ "}\n");
+ } else {
+ // Message fields have a has_$name$() method.
+ if (field->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
+ bool is_lazy = false;
+ if (is_lazy) {
+ printer->Print(vars,
+ "$inline$"
+ "bool $classname$::has_$name$() const {\n"
+ " return !$name$_.IsCleared();\n"
+ "}\n");
+ } else {
+ printer->Print(vars,
+ "$inline$"
+ "bool $classname$::has_$name$() const {\n"
+ " return !_is_default_instance_ && $name$_ != NULL;\n"
+ "}\n");
+ }
+ }
+ }
+}
+
+void MessageGenerator::
+GenerateOneofHasBits(io::Printer* printer, bool is_inline) {
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ map<string, string> vars;
+ vars["oneof_name"] = descriptor_->oneof_decl(i)->name();
+ vars["oneof_index"] = SimpleItoa(descriptor_->oneof_decl(i)->index());
+ vars["cap_oneof_name"] =
+ ToUpper(descriptor_->oneof_decl(i)->name());
+ vars["classname"] = classname_;
+ vars["inline"] = (is_inline ? "inline " : "");
+ printer->Print(
+ vars,
+ "$inline$"
+ "bool $classname$::has_$oneof_name$() const {\n"
+ " return $oneof_name$_case() != $cap_oneof_name$_NOT_SET;\n"
+ "}\n"
+ "$inline$"
+ "void $classname$::clear_has_$oneof_name$() {\n"
+ " _oneof_case_[$oneof_index$] = $cap_oneof_name$_NOT_SET;\n"
+ "}\n");
+ }
+}
+
+void MessageGenerator::
+GenerateOneofMemberHasBits(const FieldDescriptor* field,
+ const map<string, string>& vars,
+ io::Printer* printer) {
+ // Singular field in a oneof
+ // N.B.: Without field presence, we do not use has-bits or generate
+ // has_$name$() methods, but oneofs still have set_has_$name$().
+ // Oneofs also have has_$name$() but only as a private helper
+ // method, so that generated code is slightly cleaner (vs. comparing
+ // _oneof_case_[index] against a constant everywhere).
+ printer->Print(vars,
+ "$inline$"
+ "bool $classname$::has_$name$() const {\n"
+ " return $oneof_name$_case() == k$field_name$;\n"
+ "}\n");
+ printer->Print(vars,
+ "$inline$"
+ "void $classname$::set_has_$name$() {\n"
+ " _oneof_case_[$oneof_index$] = k$field_name$;\n"
+ "}\n");
+}
+
+void MessageGenerator::
+GenerateFieldClear(const FieldDescriptor* field,
+ const map<string, string>& vars,
+ io::Printer* printer) {
+ // Generate clear_$name$() (See GenerateFieldAccessorDeclarations and
+ // GenerateDependentFieldAccessorDeclarations, $dependent_classname$ is
+ // set by the Generate*Definitions functions.)
+ printer->Print(vars,
+ "$tmpl$"
+ "$inline$"
+ "void $dependent_classname$::clear_$name$() {\n");
+
+ printer->Indent();
+
+ if (field->containing_oneof()) {
+ // Clear this field only if it is the active field in this oneof,
+ // otherwise ignore
+ printer->Print(vars,
+ "if ($this_message$has_$name$()) {\n");
+ printer->Indent();
+ field_generators_.get(field).GenerateClearingCode(printer);
+ printer->Print(vars,
+ "$this_message$clear_has_$oneof_name$();\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ } else {
+ field_generators_.get(field).GenerateClearingCode(printer);
+ if (HasFieldPresence(descriptor_->file())) {
+ if (!field->is_repeated()) {
+ printer->Print(vars,
+ "$this_message$clear_has_$name$();\n");
+ }
+ }
+ }
+
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+void MessageGenerator::
GenerateFieldAccessorDefinitions(io::Printer* printer, bool is_inline) {
printer->Print("// $classname$\n\n", "classname", classname_);
@@ -500,101 +751,37 @@ GenerateFieldAccessorDefinitions(io::Printer* printer, bool is_inline) {
map<string, string> vars;
SetCommonFieldVariables(field, &vars, options_);
- vars["inline"] = is_inline ? "inline" : "";
+ vars["inline"] = is_inline ? "inline " : "";
// Generate has_$name$() or $name$_size().
if (field->is_repeated()) {
printer->Print(vars,
- "$inline$ int $classname$::$name$_size() const {\n"
+ "$inline$"
+ "int $classname$::$name$_size() const {\n"
" return $name$_.size();\n"
"}\n");
} else if (field->containing_oneof()) {
- // Singular field in a oneof
- // N.B.: Without field presence, we do not use has-bits or generate
- // has_$name$() methods, but oneofs still have set_has_$name$().
- // Oneofs also have has_$name$() but only as a private helper
- // method, so that generated code is slightly cleaner (vs. comparing
- // _oneof_case_[index] against a constant everywhere).
vars["field_name"] = UnderscoresToCamelCase(field->name(), true);
vars["oneof_name"] = field->containing_oneof()->name();
vars["oneof_index"] = SimpleItoa(field->containing_oneof()->index());
- printer->Print(vars,
- "$inline$ bool $classname$::has_$name$() const {\n"
- " return $oneof_name$_case() == k$field_name$;\n"
- "}\n");
- printer->Print(vars,
- "$inline$ void $classname$::set_has_$name$() {\n"
- " _oneof_case_[$oneof_index$] = k$field_name$;\n"
- "}\n");
+ if (!use_dependent_base_ || !IsFieldDependent(field)) {
+ GenerateOneofMemberHasBits(field, vars, printer);
+ }
} else {
// Singular field.
- if (HasFieldPresence(descriptor_->file())) {
- // N.B.: without field presence, we do not use has-bits or generate
- // has_$name$() methods.
- char buffer[kFastToBufferSize];
- vars["has_array_index"] = SimpleItoa(field->index() / 32);
- vars["has_mask"] = FastHex32ToBuffer(1u << (field->index() % 32),
- buffer);
- printer->Print(vars,
- "$inline$ bool $classname$::has_$name$() const {\n"
- " return (_has_bits_[$has_array_index$] & 0x$has_mask$u) != 0;\n"
- "}\n"
- "$inline$ void $classname$::set_has_$name$() {\n"
- " _has_bits_[$has_array_index$] |= 0x$has_mask$u;\n"
- "}\n"
- "$inline$ void $classname$::clear_has_$name$() {\n"
- " _has_bits_[$has_array_index$] &= ~0x$has_mask$u;\n"
- "}\n"
- );
- } else {
- // Message fields have a has_$name$() method.
- if (field->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
- bool is_lazy = false;
- if (is_lazy) {
- printer->Print(vars,
- "$inline$ bool $classname$::has_$name$() const {\n"
- " return !$name$_.IsCleared();\n"
- "}\n");
- } else {
- printer->Print(vars,
- "$inline$ bool $classname$::has_$name$() const {\n"
- " return !_is_default_instance_ && $name$_ != NULL;\n"
- "}\n");
- }
- }
+ if (!use_dependent_base_ || !IsFieldDependent(field)) {
+ GenerateSingularFieldHasBits(field, vars, printer);
}
}
- // Generate clear_$name$()
- printer->Print(vars,
- "$inline$ void $classname$::clear_$name$() {\n");
-
- printer->Indent();
-
- if (field->containing_oneof()) {
- // Clear this field only if it is the active field in this oneof,
- // otherwise ignore
- printer->Print(vars,
- "if (has_$name$()) {\n");
- printer->Indent();
- field_generators_.get(field).GenerateClearingCode(printer);
- printer->Print(vars,
- "clear_has_$oneof_name$();\n");
- printer->Outdent();
- printer->Print("}\n");
- } else {
- field_generators_.get(field).GenerateClearingCode(printer);
- if (HasFieldPresence(descriptor_->file())) {
- if (!field->is_repeated()) {
- printer->Print(vars,
- "clear_has_$name$();\n");
- }
- }
+ if (!use_dependent_base_ || !IsFieldDependent(field)) {
+ vars["tmpl"] = "";
+ vars["dependent_classname"] = vars["classname"];
+ vars["this_message"] = "";
+ vars["this_const_message"] = "";
+ GenerateFieldClear(field, vars, printer);
}
- printer->Outdent();
- printer->Print("}\n");
-
// Generate type-specific accessors.
field_generators_.get(field).GenerateInlineAccessorDefinitions(printer,
is_inline);
@@ -602,23 +789,11 @@ GenerateFieldAccessorDefinitions(io::Printer* printer, bool is_inline) {
printer->Print("\n");
}
- // Generate has_$name$() and clear_has_$name$() functions for oneofs
- for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
- map<string, string> vars;
- vars["oneof_name"] = descriptor_->oneof_decl(i)->name();
- vars["oneof_index"] = SimpleItoa(descriptor_->oneof_decl(i)->index());
- vars["cap_oneof_name"] =
- ToUpper(descriptor_->oneof_decl(i)->name());
- vars["classname"] = classname_;
- vars["inline"] = is_inline ? "inline" : "";
- printer->Print(
- vars,
- "$inline$ bool $classname$::has_$oneof_name$() const {\n"
- " return $oneof_name$_case() != $cap_oneof_name$_NOT_SET;\n"
- "}\n"
- "$inline$ void $classname$::clear_has_$oneof_name$() {\n"
- " _oneof_case_[$oneof_index$] = $cap_oneof_name$_NOT_SET;\n"
- "}\n");
+ if (!use_dependent_base_) {
+ // Generate has_$name$() and clear_has_$name$() functions for oneofs
+ // If we aren't using a dependent base, they can be with the other functions
+ // that are #ifdef-guarded.
+ GenerateOneofHasBits(printer, is_inline);
}
}
@@ -648,6 +823,34 @@ static bool CanClearByZeroing(const FieldDescriptor* field) {
}
void MessageGenerator::
+GenerateDependentBaseClassDefinition(io::Printer* printer) {
+ if (!use_dependent_base_) {
+ return;
+ }
+
+ map<string, string> vars;
+ vars["classname"] = DependentBaseClassTemplateName(descriptor_);
+ vars["superclass"] = SuperClassName(descriptor_);
+
+ printer->Print(vars,
+ "template <class T>\n"
+ "class $classname$ : public $superclass$ {\n"
+ " public:\n");
+ printer->Indent();
+
+ printer->Print(vars,
+ "$classname$() {}\n"
+ "virtual ~$classname$() {}\n"
+ "\n");
+
+ // Generate dependent accessor methods for all fields.
+ GenerateDependentFieldAccessorDeclarations(printer);
+
+ printer->Outdent();
+ printer->Print("};\n");
+}
+
+void MessageGenerator::
GenerateClassDefinition(io::Printer* printer) {
for (int i = 0; i < descriptor_->nested_type_count(); i++) {
// map entry message doesn't need class definition. Since map entry message
@@ -660,6 +863,11 @@ GenerateClassDefinition(io::Printer* printer) {
printer->Print("\n");
}
+ if (use_dependent_base_) {
+ GenerateDependentBaseClassDefinition(printer);
+ printer->Print("\n");
+ }
+
map<string, string> vars;
vars["classname"] = classname_;
vars["field_count"] = SimpleItoa(descriptor_->field_count());
@@ -669,11 +877,18 @@ GenerateClassDefinition(io::Printer* printer) {
} else {
vars["dllexport"] = options_.dllexport_decl + " ";
}
- vars["superclass"] = SuperClassName(descriptor_);
-
+ if (use_dependent_base_) {
+ vars["superclass"] =
+ DependentBaseClassTemplateName(descriptor_) + "<" + classname_ + ">";
+ } else {
+ vars["superclass"] = SuperClassName(descriptor_);
+ }
printer->Print(vars,
- "class $dllexport$$classname$ : public $superclass$ {\n"
- " public:\n");
+ "class $dllexport$$classname$ : public $superclass$ {\n");
+ if (use_dependent_base_) {
+ printer->Print(vars, " friend class $superclass$;\n");
+ }
+ printer->Print(" public:\n");
printer->Indent();
printer->Print(vars,
@@ -782,6 +997,19 @@ GenerateClassDefinition(io::Printer* printer) {
printer->Print(vars,
"void UnsafeArenaSwap($classname$* other);\n");
}
+
+ if (IsAnyMessage(descriptor_)) {
+ printer->Print(vars,
+ "// implements Any -----------------------------------------------\n"
+ "\n"
+ "void PackFrom(const ::google::protobuf::Message& message);\n"
+ "bool UnpackTo(::google::protobuf::Message* message) const;\n"
+ "template<typename T> bool Is() const {\n"
+ " return _any_metadata_.Is<T>();\n"
+ "}\n"
+ "\n");
+ }
+
printer->Print(vars,
"void Swap($classname$* other);\n"
"\n"
@@ -973,11 +1201,18 @@ GenerateClassDefinition(io::Printer* printer) {
// Generate oneof function declarations
for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
- printer->Print(
- "inline bool has_$oneof_name$() const;\n"
- "void clear_$oneof_name$();\n"
- "inline void clear_has_$oneof_name$();\n\n",
- "oneof_name", descriptor_->oneof_decl(i)->name());
+ if (use_dependent_base_) {
+ printer->Print(
+ "inline bool has_$oneof_name$() const;\n"
+ "inline void clear_has_$oneof_name$();\n\n",
+ "oneof_name", descriptor_->oneof_decl(i)->name());
+ } else {
+ printer->Print(
+ "inline bool has_$oneof_name$() const;\n"
+ "void clear_$oneof_name$();\n"
+ "inline void clear_has_$oneof_name$();\n\n",
+ "oneof_name", descriptor_->oneof_decl(i)->name());
+ }
}
if (HasGeneratedMethods(descriptor_->file()) &&
@@ -1139,6 +1374,12 @@ GenerateClassDefinition(io::Printer* printer) {
"\n");
}
+ // Generate _any_metadata_ for the Any type.
+ if (IsAnyMessage(descriptor_)) {
+ printer->Print(vars,
+ "::google::protobuf::internal::AnyMetadata _any_metadata_;\n");
+ }
+
// Declare AddDescriptors(), BuildDescriptors(), and ShutdownFile() as
// friends so that they can access private static variables like
// default_instance_ and reflection_.
@@ -1172,6 +1413,21 @@ GenerateClassDefinition(io::Printer* printer) {
}
void MessageGenerator::
+GenerateDependentInlineMethods(io::Printer* printer) {
+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
+ // map entry message doesn't need inline methods. Since map entry message
+ // cannot be a top level class, we just need to avoid calling
+ // GenerateInlineMethods here.
+ if (IsMapEntryMessage(descriptor_->nested_type(i))) continue;
+ nested_generators_[i]->GenerateDependentInlineMethods(printer);
+ printer->Print(kThinSeparator);
+ printer->Print("\n");
+ }
+
+ GenerateDependentFieldAccessorDefinitions(printer);
+}
+
+void MessageGenerator::
GenerateInlineMethods(io::Printer* printer, bool is_inline) {
for (int i = 0; i < descriptor_->nested_type_count(); i++) {
// map entry message doesn't need inline methods. Since map entry message
@@ -1196,7 +1452,8 @@ GenerateInlineMethods(io::Printer* printer, bool is_inline) {
vars["inline"] = is_inline ? "inline " : "";
printer->Print(
vars,
- "$inline$$class_name$::$camel_oneof_name$Case $class_name$::"
+ "$inline$"
+ "$class_name$::$camel_oneof_name$Case $class_name$::"
"$oneof_name$_case() const {\n"
" return $class_name$::$camel_oneof_name$Case("
"_oneof_case_[$oneof_index$]);\n"
@@ -1494,6 +1751,19 @@ GenerateShutdownCode(io::Printer* printer) {
void MessageGenerator::
GenerateClassMethods(io::Printer* printer) {
+ if (IsAnyMessage(descriptor_)) {
+ printer->Print(
+ "void $classname$::PackFrom(const ::google::protobuf::Message& message) {\n"
+ " _any_metadata_.PackFrom(message);\n"
+ "}\n"
+ "\n"
+ "bool $classname$::UnpackTo(::google::protobuf::Message* message) const {\n"
+ " return _any_metadata_.UnpackTo(message);\n"
+ "}\n"
+ "\n",
+ "classname", classname_);
+ }
+
for (int i = 0; i < descriptor_->enum_type_count(); i++) {
enum_generators_[i]->GenerateMethods(printer);
}
@@ -1767,7 +2037,7 @@ GenerateArenaDestructorCode(io::Printer* printer) {
if (need_registration) {
printer->Print(
"inline void $classname$::RegisterArenaDtor(::google::protobuf::Arena* arena) {\n"
- " if (arena != NULL) {"
+ " if (arena != NULL) {\n"
" arena->OwnCustomDestructor(this, &$classname$::ArenaDtor);\n"
" }\n"
"}\n",
@@ -1782,18 +2052,23 @@ GenerateArenaDestructorCode(io::Printer* printer) {
void MessageGenerator::
GenerateStructors(io::Printer* printer) {
- string superclass = SuperClassName(descriptor_);
- string initializer_with_arena;
- if (UseUnknownFieldSet(descriptor_->file())) {
- initializer_with_arena = "_internal_metadata_(arena)";
+ string superclass;
+ if (use_dependent_base_) {
+ superclass =
+ DependentBaseClassTemplateName(descriptor_) + "<" + classname_ + ">";
} else {
- initializer_with_arena = "_arena_ptr_(arena)";
+ superclass = SuperClassName(descriptor_);
}
+ string initializer_with_arena = superclass + "()";
+
if (descriptor_->extension_range_count() > 0) {
- initializer_with_arena = string("\n _extensions_(arena)") +
- (!initializer_with_arena.empty() ? ", " : "") + initializer_with_arena;
+ initializer_with_arena += ",\n _extensions_(arena)";
+ }
+
+ if (UseUnknownFieldSet(descriptor_->file())) {
+ initializer_with_arena += ",\n _internal_metadata_(arena)";
} else {
- initializer_with_arena = "\n " + initializer_with_arena;
+ initializer_with_arena += ",\n _arena_ptr_(arena)";
}
// Initialize member variables with arena constructor.
@@ -1804,16 +2079,21 @@ GenerateStructors(io::Printer* printer) {
FieldName(descriptor_->field(i)) + string("_(arena)");
}
}
- initializer_with_arena = superclass + "()" +
- (!initializer_with_arena.empty() ? "," : " ") + initializer_with_arena;
+
+ if (IsAnyMessage(descriptor_)) {
+ initializer_with_arena += ",\n _any_metadata_(&type_url, &value_)";
+ }
string initializer_null;
initializer_null = (UseUnknownFieldSet(descriptor_->file()) ?
- ", _internal_metadata_(NULL) " : ", _arena_ptr_(NULL)");
+ ", _internal_metadata_(NULL)" : ", _arena_ptr_(NULL)");
+ if (IsAnyMessage(descriptor_)) {
+ initializer_null += ", _any_metadata_(&type_url_, &value_)";
+ }
printer->Print(
"$classname$::$classname$()\n"
- " : $superclass$() $initializer$ {\n"
+ " : $superclass$()$initializer$ {\n"
" SharedCtor();\n"
" // @@protoc_insertion_point(constructor:$full_name$)\n"
"}\n",
@@ -1894,10 +2174,14 @@ GenerateStructors(io::Printer* printer) {
"full_name", descriptor_->full_name());
if (UseUnknownFieldSet(descriptor_->file())) {
printer->Print(
- ",\n _internal_metadata_(NULL) {\n");
+ ",\n _internal_metadata_(NULL)");
} else if (!UseUnknownFieldSet(descriptor_->file())) {
- printer->Print(",\n _arena_ptr_(NULL) {\n");
+ printer->Print(",\n _arena_ptr_(NULL)");
}
+ if (IsAnyMessage(descriptor_)) {
+ printer->Print(",\n _any_metadata_(&type_url_, &value_)");
+ }
+ printer->Print(" {\n");
printer->Print(
" SharedCtor();\n"
" MergeFrom(from);\n"
@@ -2096,7 +2380,7 @@ GenerateClear(io::Printer* printer) {
} else {
if (HasFieldPresence(descriptor_->file())) {
printer->Print(
- "if (_has_bits_[$index$ / 32] & $mask$) {\n",
+ "if (_has_bits_[$index$ / 32] & $mask$u) {\n",
"index", SimpleItoa(i / 8 * 8),
"mask", SimpleItoa(mask));
printer->Indent();
@@ -2124,7 +2408,11 @@ GenerateClear(io::Printer* printer) {
have_enclosing_if = true;
}
- field_generators_.get(field).GenerateClearingCode(printer);
+ if (use_dependent_base_ && IsFieldDependent(field)) {
+ printer->Print("clear_$name$();\n", "name", fieldname);
+ } else {
+ field_generators_.get(field).GenerateClearingCode(printer);
+ }
if (have_enclosing_if) {
printer->Outdent();
@@ -2147,7 +2435,11 @@ GenerateClear(io::Printer* printer) {
const FieldDescriptor* field = descriptor_->field(i);
if (field->is_repeated()) {
- field_generators_.get(field).GenerateClearingCode(printer);
+ if (use_dependent_base_ && IsFieldDependent(field)) {
+ printer->Print("clear_$name$();\n", "name", FieldName(field));
+ } else {
+ field_generators_.get(field).GenerateClearingCode(printer);
+ }
}
}
@@ -2184,19 +2476,38 @@ void MessageGenerator::
GenerateOneofClear(io::Printer* printer) {
// Generated function clears the active field and union case (e.g. foo_case_).
for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
- printer->Print(
- "void $classname$::clear_$oneofname$() {\n",
- "classname", classname_,
- "oneofname", descriptor_->oneof_decl(i)->name());
+ map<string, string> oneof_vars;
+ oneof_vars["classname"] = classname_;
+ oneof_vars["oneofname"] = descriptor_->oneof_decl(i)->name();
+ string message_class;
+
+ if (use_dependent_base_) {
+ oneof_vars["tmpl"] = "template<class T>\n";
+ oneof_vars["inline"] = "inline ";
+ oneof_vars["dependent_classname"] =
+ DependentBaseClassTemplateName(descriptor_) + "<T>";
+ oneof_vars["this_message"] = "reinterpret_cast<T*>(this)->";
+ message_class = "T::";
+ } else {
+ oneof_vars["tmpl"] = "";
+ oneof_vars["inline"] = "";
+ oneof_vars["dependent_classname"] = classname_;
+ oneof_vars["this_message"] = "";
+ }
+
+ printer->Print(oneof_vars,
+ "$tmpl$"
+ "$inline$"
+ "void $dependent_classname$::clear_$oneofname$() {\n");
printer->Indent();
- printer->Print(
- "switch($oneofname$_case()) {\n",
- "oneofname", descriptor_->oneof_decl(i)->name());
+ printer->Print(oneof_vars,
+ "switch($this_message$$oneofname$_case()) {\n");
printer->Indent();
for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
const FieldDescriptor* field = descriptor_->oneof_decl(i)->field(j);
printer->Print(
- "case k$field_name$: {\n",
+ "case $message_class$k$field_name$: {\n",
+ "message_class", message_class,
"field_name", UnderscoresToCamelCase(field->name(), true));
printer->Indent();
// We clear only allocated objects in oneofs
@@ -2213,16 +2524,20 @@ GenerateOneofClear(io::Printer* printer) {
"}\n");
}
printer->Print(
- "case $cap_oneof_name$_NOT_SET: {\n"
+ "case $message_class$$cap_oneof_name$_NOT_SET: {\n"
" break;\n"
"}\n",
+ "message_class", message_class,
"cap_oneof_name",
ToUpper(descriptor_->oneof_decl(i)->name()));
printer->Outdent();
printer->Print(
"}\n"
- "_oneof_case_[$oneof_index$] = $cap_oneof_name$_NOT_SET;\n",
+ "$this_message$_oneof_case_[$oneof_index$] = "
+ "$message_class$$cap_oneof_name$_NOT_SET;\n",
+ "this_message", oneof_vars["this_message"],
"oneof_index", SimpleItoa(i),
+ "message_class", message_class,
"cap_oneof_name",
ToUpper(descriptor_->oneof_decl(i)->name()));
printer->Outdent();
@@ -2333,9 +2648,9 @@ GenerateMergeFrom(io::Printer* printer) {
// system, as the GOOGLE_CHECK above ensured that we have the same descriptor
// for each message.
printer->Print(
- "const $classname$* source =\n"
- " ::google::protobuf::internal::dynamic_cast_if_available<const $classname$*>(\n"
- " &from);\n"
+ "const $classname$* source = \n"
+ " ::google::protobuf::internal::DynamicCastToGenerated<const $classname$>(\n"
+ " &from);\n"
"if (source == NULL) {\n"
" ::google::protobuf::internal::ReflectionOps::Merge(from, this);\n"
"} else {\n"
@@ -2585,8 +2900,24 @@ GenerateMergeFromCodedStream(io::Printer* printer) {
printer->Indent();
+ // Find repeated messages and groups now, to simplify what follows.
+ hash_set<int> fields_with_parse_loop;
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = ordered_fields[i];
+ if (field->is_repeated() &&
+ (field->type() == FieldDescriptor::TYPE_MESSAGE ||
+ field->type() == FieldDescriptor::TYPE_GROUP)) {
+ fields_with_parse_loop.insert(i);
+ }
+ }
+
+ // need_label is true if we generated "goto parse_$name$" while handling the
+ // previous field.
+ bool need_label = false;
for (int i = 0; i < descriptor_->field_count(); i++) {
const FieldDescriptor* field = ordered_fields[i];
+ const bool loops = fields_with_parse_loop.count(i) > 0;
+ const bool next_field_loops = fields_with_parse_loop.count(i + 1) > 0;
PrintFieldComment(printer, field);
@@ -2600,9 +2931,16 @@ GenerateMergeFromCodedStream(io::Printer* printer) {
printer->Print("if (tag == $commontag$) {\n",
"commontag", SimpleItoa(WireFormat::MakeTag(field)));
- if (i > 0 || (field->is_repeated() && !field->options().packed())) {
+ if (need_label ||
+ (field->is_repeated() && !field->options().packed() && !loops)) {
+ printer->Print(
+ " parse_$name$:\n",
+ "name", field->name());
+ }
+ if (loops) {
printer->Print(
- " parse_$name$:\n",
+ " DO_(input->IncrementRecursionDepth());\n"
+ " parse_loop_$name$:\n",
"name", field->name());
}
@@ -2644,26 +2982,53 @@ GenerateMergeFromCodedStream(io::Printer* printer) {
// switch() is slow since it can't be predicted well. Insert some if()s
// here that attempt to predict the next tag.
- if (field->is_repeated() && !field->options().packed()) {
- // Expect repeats of this field.
+ // For non-packed repeated fields, expect the same tag again.
+ if (loops) {
+ printer->Print(
+ "if (input->ExpectTag($tag$)) goto parse_loop_$name$;\n",
+ "tag", SimpleItoa(WireFormat::MakeTag(field)),
+ "name", field->name());
+ } else if (field->is_repeated() && !field->options().packed()) {
printer->Print(
"if (input->ExpectTag($tag$)) goto parse_$name$;\n",
"tag", SimpleItoa(WireFormat::MakeTag(field)),
"name", field->name());
}
- if (i + 1 < descriptor_->field_count()) {
- // Expect the next field in order.
- const FieldDescriptor* next_field = ordered_fields[i + 1];
- printer->Print(
- "if (input->ExpectTag($next_tag$)) goto parse_$next_name$;\n",
- "next_tag", SimpleItoa(WireFormat::MakeTag(next_field)),
- "next_name", next_field->name());
- } else {
- // Expect EOF.
- // TODO(kenton): Expect group end-tag?
+ // Have we emitted "if (input->ExpectTag($next_tag$)) ..." yet?
+ bool emitted_goto_next_tag = false;
+
+ // For repeated messages/groups, we need to decrement recursion depth,
+ // unless the next tag is also for a repeated message/group.
+ if (loops) {
+ if (next_field_loops) {
+ const FieldDescriptor* next_field = ordered_fields[i + 1];
+ printer->Print(
+ "if (input->ExpectTag($next_tag$)) goto parse_loop_$next_name$;\n",
+ "next_tag", SimpleItoa(WireFormat::MakeTag(next_field)),
+ "next_name", next_field->name());
+ emitted_goto_next_tag = true;
+ }
printer->Print(
- "if (input->ExpectAtEnd()) goto success;\n");
+ "input->UnsafeDecrementRecursionDepth();\n");
+ }
+
+ // If there are more fields, expect the next one.
+ need_label = false;
+ if (!emitted_goto_next_tag) {
+ if (i + 1 == descriptor_->field_count()) {
+ // Expect EOF.
+ // TODO(kenton): Expect group end-tag?
+ printer->Print(
+ "if (input->ExpectAtEnd()) goto success;\n");
+ } else {
+ const FieldDescriptor* next_field = ordered_fields[i + 1];
+ printer->Print(
+ "if (input->ExpectTag($next_tag$)) goto parse_$next_name$;\n",
+ "next_tag", SimpleItoa(WireFormat::MakeTag(next_field)),
+ "next_name", next_field->name());
+ need_label = true;
+ }
}
printer->Print(
@@ -2999,9 +3364,7 @@ static string ConditionalToCheckBitmasks(const vector<uint32>& masks) {
vector<string> parts;
for (int i = 0; i < masks.size(); i++) {
if (masks[i] == 0) continue;
- char buffer[kFastToBufferSize];
- FastHex32ToBuffer(masks[i], buffer);
- string m = StrCat("0x", buffer);
+ string m = StrCat("0x", strings::Hex(masks[i], strings::Hex::ZERO_PAD_8));
// Each xor evaluates to 0 if the expected bits are present.
parts.push_back(StrCat("((_has_bits_[", i, "] & ", m, ") ^ ", m, ")"));
}
@@ -3147,7 +3510,7 @@ GenerateByteSize(io::Printer* printer) {
} else {
if (HasFieldPresence(descriptor_->file())) {
printer->Print(
- "if (_has_bits_[$index$ / 32] & $mask$) {\n",
+ "if (_has_bits_[$index$ / 32] & $mask$u) {\n",
"index", SimpleItoa(i),
"mask", SimpleItoa(mask));
printer->Indent();
@@ -3293,11 +3656,10 @@ GenerateIsInitialized(io::Printer* printer) {
}
if (mask != 0) {
- char buffer[kFastToBufferSize];
printer->Print(
"if ((_has_bits_[$i$] & 0x$mask$) != 0x$mask$) return false;\n",
"i", SimpleItoa(i),
- "mask", FastHex32ToBuffer(mask, buffer));
+ "mask", StrCat(strings::Hex(mask, strings::Hex::ZERO_PAD_8)));
}
}
}
diff --git a/src/google/protobuf/compiler/cpp/cpp_message.h b/src/google/protobuf/compiler/cpp/cpp_message.h
index ea96581d..23dad10c 100644
--- a/src/google/protobuf/compiler/cpp/cpp_message.h
+++ b/src/google/protobuf/compiler/cpp/cpp_message.h
@@ -67,7 +67,8 @@ class MessageGenerator {
// Header stuff.
// Generate foward declarations for this class and all its nested types.
- void GenerateForwardDeclaration(io::Printer* printer);
+ void GenerateMessageForwardDeclaration(io::Printer* printer);
+ void GenerateEnumForwardDeclaration(io::Printer* printer);
// Generate definitions of all nested enums (must come before class
// definitions because those classes use the enums definitions).
@@ -84,6 +85,9 @@ class MessageGenerator {
// file).
void GenerateInlineMethods(io::Printer* printer, bool is_inline);
+ // Dependent methods are always inline.
+ void GenerateDependentInlineMethods(io::Printer* printer);
+
// Source file stuff.
// Generate code which declares all the global descriptor pointers which
@@ -115,7 +119,10 @@ class MessageGenerator {
private:
// Generate declarations and definitions of accessors for fields.
+ void GenerateDependentBaseClassDefinition(io::Printer* printer);
+ void GenerateDependentFieldAccessorDeclarations(io::Printer* printer);
void GenerateFieldAccessorDeclarations(io::Printer* printer);
+ void GenerateDependentFieldAccessorDefinitions(io::Printer* printer);
void GenerateFieldAccessorDefinitions(io::Printer* printer, bool is_inline);
// Generate the field offsets array.
@@ -158,6 +165,21 @@ class MessageGenerator {
bool unbounded);
+ // Generates has_foo() functions and variables for singular field has-bits.
+ void GenerateSingularFieldHasBits(const FieldDescriptor* field,
+ map<string, string> vars,
+ io::Printer* printer);
+ // Generates has_foo() functions and variables for oneof field has-bits.
+ void GenerateOneofHasBits(io::Printer* printer, bool is_inline);
+ // Generates has_foo_bar() functions for oneof members.
+ void GenerateOneofMemberHasBits(const FieldDescriptor* field,
+ const map<string, string>& vars,
+ io::Printer* printer);
+ // Generates the clear_foo() method for a field.
+ void GenerateFieldClear(const FieldDescriptor* field,
+ const map<string, string>& vars,
+ io::Printer* printer);
+
const Descriptor* descriptor_;
string classname_;
Options options_;
@@ -168,6 +190,7 @@ class MessageGenerator {
google::protobuf::scoped_array<google::protobuf::scoped_ptr<ExtensionGenerator> > extension_generators_;
int num_required_fields_;
bool uses_string_;
+ bool use_dependent_base_;
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator);
};
diff --git a/src/google/protobuf/compiler/cpp/cpp_message_field.cc b/src/google/protobuf/compiler/cpp/cpp_message_field.cc
index 467b6bf6..ba318d10 100644
--- a/src/google/protobuf/compiler/cpp/cpp_message_field.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_message_field.cc
@@ -72,7 +72,8 @@ void SetMessageVariables(const FieldDescriptor* descriptor,
MessageFieldGenerator::
MessageFieldGenerator(const FieldDescriptor* descriptor,
const Options& options)
- : descriptor_(descriptor) {
+ : descriptor_(descriptor),
+ dependent_field_(options.proto_h && IsFieldDependent(descriptor)) {
SetMessageVariables(descriptor, &variables_, options);
}
@@ -84,6 +85,10 @@ GeneratePrivateMembers(io::Printer* printer) const {
}
void MessageFieldGenerator::
+GenerateDependentAccessorDeclarations(io::Printer* printer) const {
+}
+
+void MessageFieldGenerator::
GenerateAccessorDeclarations(io::Printer* printer) const {
if (SupportsArenas(descriptor_)) {
printer->Print(variables_,
@@ -144,6 +149,8 @@ void MessageFieldGenerator::GenerateNonInlineAccessorDefinitions(
" return temp;\n"
"}\n");
if (SupportsArenas(descriptor_->message_type())) {
+ // NOTE: the same logic is mirrored in weak_message_field.cc. Any
+ // arena-related semantics changes should be made in both places.
printer->Print(variables_,
"void $classname$::_slow_set_allocated_$name$(\n"
" ::google::protobuf::Arena* message_arena, $type$** $name$) {\n"
@@ -181,6 +188,10 @@ void MessageFieldGenerator::GenerateNonInlineAccessorDefinitions(
}
void MessageFieldGenerator::
+GenerateDependentInlineAccessorDefinitions(io::Printer* printer) const {
+}
+
+void MessageFieldGenerator::
GenerateInlineAccessorDefinitions(io::Printer* printer,
bool is_inline) const {
map<string, string> variables(variables_);
@@ -294,7 +305,7 @@ GenerateClearingCode(io::Printer* printer) const {
// If we don't have has-bits, message presence is indicated only by ptr !=
// NULL. Thus on clear, we need to delete the object.
printer->Print(variables_,
- "if ($name$_ != NULL) delete $name$_;\n"
+ "if (GetArenaNoVirtual() == NULL && $name$_ != NULL) delete $name$_;\n"
"$name$_ = NULL;\n");
} else {
printer->Print(variables_,
@@ -366,6 +377,10 @@ MessageOneofFieldGenerator(const FieldDescriptor* descriptor,
MessageOneofFieldGenerator::~MessageOneofFieldGenerator() {}
void MessageOneofFieldGenerator::
+GenerateDependentInlineAccessorDefinitions(io::Printer* printer) const {
+}
+
+void MessageOneofFieldGenerator::
GenerateInlineAccessorDefinitions(io::Printer* printer,
bool is_inline) const {
map<string, string> variables(variables_);
@@ -560,6 +575,10 @@ GeneratePrivateMembers(io::Printer* printer) const {
}
void RepeatedMessageFieldGenerator::
+GenerateDependentAccessorDeclarations(io::Printer* printer) const {
+}
+
+void RepeatedMessageFieldGenerator::
GenerateAccessorDeclarations(io::Printer* printer) const {
printer->Print(variables_,
"const $type$& $name$(int index) const$deprecation$;\n"
@@ -573,6 +592,10 @@ GenerateAccessorDeclarations(io::Printer* printer) const {
}
void RepeatedMessageFieldGenerator::
+GenerateDependentInlineAccessorDefinitions(io::Printer* printer) const {
+}
+
+void RepeatedMessageFieldGenerator::
GenerateInlineAccessorDefinitions(io::Printer* printer,
bool is_inline) const {
map<string, string> variables(variables_);
@@ -627,11 +650,13 @@ void RepeatedMessageFieldGenerator::
GenerateMergeFromCodedStream(io::Printer* printer) const {
if (descriptor_->type() == FieldDescriptor::TYPE_MESSAGE) {
printer->Print(variables_,
- "DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(\n"
+ "DO_(::google::protobuf::internal::WireFormatLite::"
+ "ReadMessageNoVirtualNoRecursionDepth(\n"
" input, add_$name$()));\n");
} else {
printer->Print(variables_,
- "DO_(::google::protobuf::internal::WireFormatLite::ReadGroupNoVirtual(\n"
+ "DO_(::google::protobuf::internal::WireFormatLite::"
+ "ReadGroupNoVirtualNoRecursionDepth(\n"
" $number$, input, add_$name$()));\n");
}
}
diff --git a/src/google/protobuf/compiler/cpp/cpp_message_field.h b/src/google/protobuf/compiler/cpp/cpp_message_field.h
index c1704fc1..9ddf9643 100644
--- a/src/google/protobuf/compiler/cpp/cpp_message_field.h
+++ b/src/google/protobuf/compiler/cpp/cpp_message_field.h
@@ -52,7 +52,9 @@ class MessageFieldGenerator : public FieldGenerator {
// implements FieldGenerator ---------------------------------------
void GeneratePrivateMembers(io::Printer* printer) const;
+ void GenerateDependentAccessorDeclarations(io::Printer* printer) const;
void GenerateAccessorDeclarations(io::Printer* printer) const;
+ void GenerateDependentInlineAccessorDefinitions(io::Printer* printer) const;
void GenerateInlineAccessorDefinitions(io::Printer* printer,
bool is_inline) const;
void GenerateNonInlineAccessorDefinitions(io::Printer* printer) const;
@@ -67,6 +69,7 @@ class MessageFieldGenerator : public FieldGenerator {
protected:
const FieldDescriptor* descriptor_;
+ const bool dependent_field_;
map<string, string> variables_;
private:
@@ -80,6 +83,7 @@ class MessageOneofFieldGenerator : public MessageFieldGenerator {
~MessageOneofFieldGenerator();
// implements FieldGenerator ---------------------------------------
+ void GenerateDependentInlineAccessorDefinitions(io::Printer* printer) const;
void GenerateInlineAccessorDefinitions(io::Printer* printer,
bool is_inline) const;
void GenerateNonInlineAccessorDefinitions(io::Printer* printer) const {}
@@ -99,7 +103,9 @@ class RepeatedMessageFieldGenerator : public FieldGenerator {
// implements FieldGenerator ---------------------------------------
void GeneratePrivateMembers(io::Printer* printer) const;
+ void GenerateDependentAccessorDeclarations(io::Printer* printer) const;
void GenerateAccessorDeclarations(io::Printer* printer) const;
+ void GenerateDependentInlineAccessorDefinitions(io::Printer* printer) const;
void GenerateInlineAccessorDefinitions(io::Printer* printer,
bool is_inline) const;
void GenerateClearingCode(io::Printer* printer) const;
diff --git a/src/google/protobuf/compiler/cpp/cpp_options.h b/src/google/protobuf/compiler/cpp/cpp_options.h
index 0c99cff1..4463f200 100644
--- a/src/google/protobuf/compiler/cpp/cpp_options.h
+++ b/src/google/protobuf/compiler/cpp/cpp_options.h
@@ -41,12 +41,13 @@ namespace protobuf {
namespace compiler {
namespace cpp {
-// Generator options:
+// Generator options (see generator.cc for a description of each):
struct Options {
- Options() : safe_boundary_check(false) {
+ Options() : safe_boundary_check(false), proto_h(false) {
}
string dllexport_decl;
bool safe_boundary_check;
+ bool proto_h;
};
} // namespace cpp
diff --git a/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc b/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc
index 329eae32..9f929d37 100644
--- a/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc
@@ -262,7 +262,7 @@ RepeatedPrimitiveFieldGenerator(const FieldDescriptor* descriptor,
: descriptor_(descriptor) {
SetPrimitiveVariables(descriptor, &variables_, options);
- if (descriptor->options().packed()) {
+ if (descriptor->is_packed()) {
variables_["packed_reader"] = "ReadPackedPrimitive";
variables_["repeated_reader"] = "ReadRepeatedPrimitiveNoInline";
} else {
@@ -277,7 +277,7 @@ void RepeatedPrimitiveFieldGenerator::
GeneratePrivateMembers(io::Printer* printer) const {
printer->Print(variables_,
"::google::protobuf::RepeatedField< $type$ > $name$_;\n");
- if (descriptor_->options().packed() && HasGeneratedMethods(descriptor_->file())) {
+ if (descriptor_->is_packed() && HasGeneratedMethods(descriptor_->file())) {
printer->Print(variables_,
"mutable int _$name$_cached_byte_size_;\n");
}
@@ -364,7 +364,7 @@ GenerateMergeFromCodedStreamWithPacking(io::Printer* printer) const {
void RepeatedPrimitiveFieldGenerator::
GenerateSerializeWithCachedSizes(io::Printer* printer) const {
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
// Write the tag and the size.
printer->Print(variables_,
"if (this->$name$_size() > 0) {\n"
@@ -377,7 +377,7 @@ GenerateSerializeWithCachedSizes(io::Printer* printer) const {
}
printer->Print(variables_,
"for (int i = 0; i < this->$name$_size(); i++) {\n");
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
" ::google::protobuf::internal::WireFormatLite::Write$declared_type$NoTag(\n"
" this->$name$(i), output);\n");
@@ -391,7 +391,7 @@ GenerateSerializeWithCachedSizes(io::Printer* printer) const {
void RepeatedPrimitiveFieldGenerator::
GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const {
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
// Write the tag and the size.
printer->Print(variables_,
"if (this->$name$_size() > 0) {\n"
@@ -405,7 +405,7 @@ GenerateSerializeWithCachedSizesToArray(io::Printer* printer) const {
}
printer->Print(variables_,
"for (int i = 0; i < this->$name$_size(); i++) {\n");
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
" target = ::google::protobuf::internal::WireFormatLite::\n"
" Write$declared_type$NoTagToArray(this->$name$(i), target);\n");
@@ -435,7 +435,7 @@ GenerateByteSize(io::Printer* printer) const {
"data_size = $fixed_size$ * this->$name$_size();\n");
}
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
"if (data_size > 0) {\n"
" total_size += $tag_size$ +\n"
diff --git a/src/google/protobuf/compiler/cpp/cpp_string_field.cc b/src/google/protobuf/compiler/cpp/cpp_string_field.cc
index 1a1bcd3d..1a3896a1 100644
--- a/src/google/protobuf/compiler/cpp/cpp_string_field.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_string_field.cc
@@ -226,7 +226,6 @@ GenerateInlineAccessorDefinitions(io::Printer* printer,
" } else {\n"
" $clear_hasbit$\n"
" }\n"
- " $set_hasbit$\n"
" $name$_.UnsafeArenaSetAllocated($default_variable$,\n"
" $name$, GetArenaNoVirtual());\n"
" // @@protoc_insertion_point(field_set_allocated:$full_name$)\n"
diff --git a/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto b/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto
index 9f63155b..4e25b2ea 100644
--- a/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto
+++ b/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto
@@ -131,23 +131,23 @@ message TestConflictingSymbolNamesExtension { // NO_PROTO3
} // NO_PROTO3
} // NO_PROTO3
-message TestConflictingEnumNames {
- enum NestedConflictingEnum {
- and = 1;
- class = 2;
- int = 3;
- typedef = 4;
- XOR = 5;
- }
-
- optional NestedConflictingEnum conflicting_enum = 1;
-}
-
-enum ConflictingEnum {
- NOT_EQ = 1;
- volatile = 2;
- return = 3;
-}
+message TestConflictingEnumNames { // NO_PROTO3
+ enum NestedConflictingEnum { // NO_PROTO3
+ and = 1; // NO_PROTO3
+ class = 2; // NO_PROTO3
+ int = 3; // NO_PROTO3
+ typedef = 4; // NO_PROTO3
+ XOR = 5; // NO_PROTO3
+ } // NO_PROTO3
+
+ optional NestedConflictingEnum conflicting_enum = 1; // NO_PROTO3
+} // NO_PROTO3
+
+enum ConflictingEnum { // NO_PROTO3
+ NOT_EQ = 1; // NO_PROTO3
+ volatile = 2; // NO_PROTO3
+ return = 3; // NO_PROTO3
+} // NO_PROTO3
message DummyMessage {}
diff --git a/src/google/protobuf/compiler/cpp/cpp_unittest.cc b/src/google/protobuf/compiler/cpp/cpp_unittest.cc
index 9d14a924..b11fb21a 100644
--- a/src/google/protobuf/compiler/cpp/cpp_unittest.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_unittest.cc
@@ -941,6 +941,22 @@ TEST(GeneratedMessageTest, ExtensionConstantValues) {
EXPECT_EQ(unittest::kRepeatedNestedEnumExtensionFieldNumber, 51);
}
+TEST(GeneratedMessageTest, ParseFromTruncated) {
+ const string long_string = string(128, 'q');
+ FileDescriptorProto p;
+ p.add_extension()->set_name(long_string);
+ const string msg = p.SerializeAsString();
+ int successful_count = 0;
+ for (int i = 0; i <= msg.size(); i++) {
+ if (p.ParseFromArray(msg.c_str(), i)) {
+ ++successful_count;
+ }
+ }
+ // We don't really care about how often we succeeded.
+ // As long as we didn't crash, we're happy.
+ EXPECT_GE(successful_count, 1);
+}
+
// ===================================================================
TEST(GeneratedEnumTest, EnumValuesAsSwitchCases) {
diff --git a/src/google/protobuf/compiler/cpp/test_large_enum_value.proto b/src/google/protobuf/compiler/cpp/test_large_enum_value.proto
new file mode 100644
index 00000000..cb6ca1b1
--- /dev/null
+++ b/src/google/protobuf/compiler/cpp/test_large_enum_value.proto
@@ -0,0 +1,43 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Test that proto2 compiler can generate valid code when the enum value
+// is INT_MAX. Note that this is a compile-only test and this proto is not
+// referenced in any C++ code.
+syntax = "proto2";
+
+package protobuf_unittest;
+
+message TestLargeEnumValue {
+ enum EnumWithLargeValue {
+ VALUE_1 = 1;
+ VALUE_MAX = 0x7fffffff;
+ }
+}
diff --git a/src/google/protobuf/compiler/csharp/csharp_enum.cc b/src/google/protobuf/compiler/csharp/csharp_enum.cc
new file mode 100644
index 00000000..0e8f9836
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_enum.cc
@@ -0,0 +1,78 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+#include <google/protobuf/stubs/strutil.h>
+
+#include <google/protobuf/compiler/csharp/csharp_enum.h>
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+
+using google::protobuf::internal::scoped_ptr;
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+EnumGenerator::EnumGenerator(const EnumDescriptor* descriptor) :
+ SourceGeneratorBase(descriptor->file()),
+ descriptor_(descriptor) {
+}
+
+EnumGenerator::~EnumGenerator() {
+}
+
+void EnumGenerator::Generate(io::Printer* printer) {
+ WriteGeneratedCodeAttributes(printer);
+ printer->Print("$access_level$ enum $name$ {\n",
+ "access_level", class_access_level(),
+ "name", descriptor_->name());
+ printer->Indent();
+ for (int i = 0; i < descriptor_->value_count(); i++) {
+ printer->Print("$name$ = $number$,\n",
+ "name", descriptor_->value(i)->name(),
+ "number", SimpleItoa(descriptor_->value(i)->number()));
+ }
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("\n");
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_enum.h b/src/google/protobuf/compiler/csharp/csharp_enum.h
new file mode 100644
index 00000000..2cf2fad4
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_enum.h
@@ -0,0 +1,63 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_ENUM_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_ENUM_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_source_generator_base.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class EnumGenerator : public SourceGeneratorBase {
+ public:
+ EnumGenerator(const EnumDescriptor* descriptor);
+ ~EnumGenerator();
+
+ void Generate(io::Printer* printer);
+
+ private:
+ const EnumDescriptor* descriptor_;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumGenerator);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_ENUM_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_enum_field.cc b/src/google/protobuf/compiler/csharp/csharp_enum_field.cc
new file mode 100644
index 00000000..51a95b9f
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_enum_field.cc
@@ -0,0 +1,137 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+#include <google/protobuf/compiler/csharp/csharp_enum_field.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+EnumFieldGenerator::EnumFieldGenerator(const FieldDescriptor* descriptor,
+ int fieldOrdinal)
+ : PrimitiveFieldGenerator(descriptor, fieldOrdinal) {
+}
+
+EnumFieldGenerator::~EnumFieldGenerator() {
+}
+
+void EnumFieldGenerator::GenerateParsingCode(io::Printer* printer) {
+ printer->Print(variables_,
+ "object unknown;\n"
+ "if(input.ReadEnum(ref result.$name$_, out unknown)) {\n");
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(variables_,
+ " result.has$property_name$ = true;\n");
+ }
+ printer->Print("} else if(unknown is int) {\n");
+ if (!use_lite_runtime()) {
+ printer->Print(variables_,
+ " if (unknownFields == null) {\n" // First unknown field - create builder now
+ " unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);\n"
+ " }\n"
+ " unknownFields.MergeVarintField($number$, (ulong)(int)unknown);\n");
+ }
+ printer->Print("}\n");
+}
+
+void EnumFieldGenerator::GenerateSerializationCode(io::Printer* printer) {
+ printer->Print(variables_,
+ "if ($has_property_check$) {\n"
+ " output.WriteEnum($number$, field_names[$field_ordinal$], (int) $property_name$, $property_name$);\n"
+ "}\n");
+}
+
+void EnumFieldGenerator::GenerateSerializedSizeCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if ($has_property_check$) {\n"
+ " size += pb::CodedOutputStream.ComputeEnumSize($number$, (int) $property_name$);\n"
+ "}\n");
+}
+
+EnumOneofFieldGenerator::EnumOneofFieldGenerator(const FieldDescriptor* descriptor,
+ int fieldOrdinal)
+ : PrimitiveOneofFieldGenerator(descriptor, fieldOrdinal) {
+}
+
+EnumOneofFieldGenerator::~EnumOneofFieldGenerator() {
+}
+
+void EnumOneofFieldGenerator::GenerateParsingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "object unknown;\n"
+ "$type_name$ enumValue = $default_value$;\n"
+ "if(input.ReadEnum(ref enumValue, out unknown)) {\n"
+ " result.$oneof_name$_ = enumValue;\n"
+ " result.$oneof_name$Case_ = $oneof_property_name$OneofCase.$property_name$;\n"
+ "} else if(unknown is int) {\n");
+ if (!use_lite_runtime()) {
+ printer->Print(
+ variables_,
+ " if (unknownFields == null) {\n" // First unknown field - create builder now
+ " unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);\n"
+ " }\n"
+ " unknownFields.MergeVarintField($number$, (ulong)(int)unknown);\n");
+ }
+ printer->Print("}\n");
+}
+
+void EnumOneofFieldGenerator::GenerateSerializationCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if ($has_property_check$) {\n"
+ " output.WriteEnum($number$, field_names[$field_ordinal$], (int) $property_name$, $property_name$);\n"
+ "}\n");
+}
+
+void EnumOneofFieldGenerator::GenerateSerializedSizeCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if ($has_property_check$) {\n"
+ " size += pb::CodedOutputStream.ComputeEnumSize($number$, (int) $property_name$);\n"
+ "}\n");
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_enum_field.h b/src/google/protobuf/compiler/csharp/csharp_enum_field.h
new file mode 100644
index 00000000..e627b7cc
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_enum_field.h
@@ -0,0 +1,76 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_ENUM_FIELD_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_ENUM_FIELD_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_primitive_field.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class EnumFieldGenerator : public PrimitiveFieldGenerator {
+ public:
+ EnumFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
+ ~EnumFieldGenerator();
+
+ virtual void GenerateParsingCode(io::Printer* printer);
+ virtual void GenerateSerializationCode(io::Printer* printer);
+ virtual void GenerateSerializedSizeCode(io::Printer* printer);
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumFieldGenerator);
+};
+
+class EnumOneofFieldGenerator : public PrimitiveOneofFieldGenerator {
+ public:
+ EnumOneofFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
+ ~EnumOneofFieldGenerator();
+
+ virtual void GenerateParsingCode(io::Printer* printer);
+ virtual void GenerateSerializationCode(io::Printer* printer);
+ virtual void GenerateSerializedSizeCode(io::Printer* printer);
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumOneofFieldGenerator);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_ENUM_FIELD_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_extension.cc b/src/google/protobuf/compiler/csharp/csharp_extension.cc
new file mode 100644
index 00000000..8b665ae4
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_extension.cc
@@ -0,0 +1,184 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+
+#include <google/protobuf/compiler/csharp/csharp_extension.h>
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+
+using google::protobuf::internal::scoped_ptr;
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+ExtensionGenerator::ExtensionGenerator(const FieldDescriptor* descriptor)
+ : FieldGeneratorBase(descriptor, 0) {
+ if (descriptor_->extension_scope()) {
+ variables_["scope"] = GetClassName(descriptor_->extension_scope());
+ } else {
+ variables_["scope"] = GetFullUmbrellaClassName(descriptor_->file());
+ }
+ variables_["extends"] = GetClassName(descriptor_->containing_type());
+ variables_["capitalized_type_name"] = capitalized_type_name();
+ variables_["full_name"] = descriptor_->full_name();
+ variables_["access_level"] = class_access_level();
+ variables_["index"] = SimpleItoa(descriptor_->index());
+ variables_["property_name"] = property_name();
+ variables_["type_name"] = type_name();
+ if (use_lite_runtime()) {
+ variables_["generated_extension"] = descriptor_->is_repeated() ?
+ "GeneratedRepeatExtensionLite" : "GeneratedExtensionLite";
+ } else {
+ variables_["generated_extension"] = descriptor_->is_repeated() ?
+ "GeneratedRepeatExtension" : "GeneratedExtension";
+ }
+}
+
+ExtensionGenerator::~ExtensionGenerator() {
+}
+
+void ExtensionGenerator::Generate(io::Printer* printer) {
+ printer->Print(
+ "public const int $constant_name$ = $number$;\n",
+ "constant_name", GetFieldConstantName(descriptor_),
+ "number", SimpleItoa(descriptor_->number()));
+
+ if (use_lite_runtime()) {
+ // TODO(jtattermusch): include the following check
+ //if (Descriptor.MappedType == MappedType.Message && Descriptor.MessageType.Options.MessageSetWireFormat)
+ //{
+ // throw new ArgumentException(
+ // "option message_set_wire_format = true; is not supported in Lite runtime extensions.");
+ //}
+
+ printer->Print(
+ variables_,
+ "$access_level$ static pb::$generated_extension$<$extends$, $type_name$> $property_name$;\n");
+ } else if (descriptor_->is_repeated()) {
+ printer->Print(
+ variables_,
+ "$access_level$ static pb::GeneratedExtensionBase<scg::IList<$type_name$>> $property_name$;\n");
+ } else {
+ printer->Print(
+ variables_,
+ "$access_level$ static pb::GeneratedExtensionBase<$type_name$> $property_name$;\n");
+ }
+}
+
+void ExtensionGenerator::GenerateStaticVariableInitializers(io::Printer* printer) {
+ if (use_lite_runtime()) {
+ printer->Print(
+ variables_,
+ "$scope$.$property_name$ = \n");
+ printer->Indent();
+ printer->Print(
+ variables_,
+ "new pb::$generated_extension$<$extends$, $type_name$>(\n");
+ printer->Indent();
+ printer->Print(
+ variables_,
+ "\"$full_name$\",\n"
+ "$extends$.DefaultInstance,\n");
+ if (!descriptor_->is_repeated()) {
+ std::string default_val;
+ if (descriptor_->has_default_value()) {
+ default_val = default_value();
+ } else {
+ default_val = is_nullable_type() ? "null" : ("default(" + type_name() + ")");
+ }
+ printer->Print("$default_val$,\n", "default_val", default_val);
+ }
+ printer->Print(
+ "$message_val$,\n",
+ "message_val",
+ (GetCSharpType(descriptor_->type()) == CSHARPTYPE_MESSAGE) ?
+ type_name() + ".DefaultInstance" : "null");
+ printer->Print(
+ "$enum_val$,\n",
+ "enum_val",
+ (GetCSharpType(descriptor_->type()) == CSHARPTYPE_ENUM) ?
+ "new EnumLiteMap<" + type_name() + ">()" : "null");
+ printer->Print(
+ variables_,
+ "$scope$.$property_name$FieldNumber,\n"
+ "pbd::FieldType.$capitalized_type_name$");
+ if (descriptor_->is_repeated()) {
+ printer->Print(
+ ",\n"
+ "$is_packed$",
+ "is_packed", descriptor_->is_packed() ? "true" : "false");
+ }
+ printer->Outdent();
+ printer->Print(");\n");
+ printer->Outdent();
+ }
+ else if (descriptor_->is_repeated())
+ {
+ printer->Print(
+ variables_,
+ "$scope$.$property_name$ = pb::GeneratedRepeatExtension<$type_name$>.CreateInstance($scope$.Descriptor.Extensions[$index$]);\n");
+ }
+ else
+ {
+ printer->Print(
+ variables_,
+ "$scope$.$property_name$ = pb::GeneratedSingleExtension<$type_name$>.CreateInstance($scope$.Descriptor.Extensions[$index$]);\n");
+ }
+}
+
+void ExtensionGenerator::GenerateExtensionRegistrationCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "registry.Add($scope$.$property_name$);\n");
+}
+
+void ExtensionGenerator::WriteHash(io::Printer* printer) {
+}
+
+void ExtensionGenerator::WriteEquals(io::Printer* printer) {
+}
+
+void ExtensionGenerator::WriteToString(io::Printer* printer) {
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_extension.h b/src/google/protobuf/compiler/csharp/csharp_extension.h
new file mode 100644
index 00000000..f251a21c
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_extension.h
@@ -0,0 +1,78 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_EXTENSION_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_EXTENSION_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class ExtensionGenerator : public FieldGeneratorBase {
+ public:
+ ExtensionGenerator(const FieldDescriptor* descriptor);
+ ~ExtensionGenerator();
+
+ void GenerateStaticVariableInitializers(io::Printer* printer);
+ void GenerateExtensionRegistrationCode(io::Printer* printer);
+ void Generate(io::Printer* printer);
+
+ virtual void WriteHash(io::Printer* printer);
+ virtual void WriteEquals(io::Printer* printer);
+ virtual void WriteToString(io::Printer* printer);
+
+ virtual void GenerateMembers(io::Printer* printer) {};
+ virtual void GenerateBuilderMembers(io::Printer* printer) {};
+ virtual void GenerateMergingCode(io::Printer* printer) {};
+ virtual void GenerateBuildingCode(io::Printer* printer) {};
+ virtual void GenerateParsingCode(io::Printer* printer) {};
+ virtual void GenerateSerializationCode(io::Printer* printer) {};
+ virtual void GenerateSerializedSizeCode(io::Printer* printer) {};
+
+ private:
+ std::string scope_;
+ std::string extends_;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ExtensionGenerator);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_EXTENSION_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_field_base.cc b/src/google/protobuf/compiler/csharp/csharp_field_base.cc
new file mode 100644
index 00000000..c3ce426b
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_field_base.cc
@@ -0,0 +1,424 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <limits>
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+#include <google/protobuf/stubs/strutil.h>
+
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+
+using google::protobuf::internal::scoped_ptr;
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+void FieldGeneratorBase::SetCommonFieldVariables(
+ map<string, string>* variables) {
+ (*variables)["property_name"] = property_name();
+ (*variables)["type_name"] = type_name();
+ (*variables)["name"] = name();
+ (*variables)["descriptor_name"] = descriptor_->name();
+ (*variables)["default_value"] = default_value();
+ if (has_default_value()) {
+ (*variables)["name_def_message"] =
+ (*variables)["name"] + "_ = " + (*variables)["default_value"];
+ } else {
+ (*variables)["name_def_message"] = (*variables)["name"] + "_";
+ }
+ (*variables)["capitalized_type_name"] = capitalized_type_name();
+ (*variables)["number"] = number();
+ (*variables)["field_ordinal"] = field_ordinal();
+ if (SupportFieldPresence(descriptor_->file())) {
+ (*variables)["has_property_check"] = "has" + (*variables)["property_name"];
+ (*variables)["other_has_property_check"] = "other.Has" + (*variables)["property_name"];
+ } else {
+ (*variables)["has_property_check"] =
+ (*variables)["property_name"] + " != " + (*variables)["default_value"];
+ (*variables)["other_has_property_check"] = "other." +
+ (*variables)["property_name"] + " != " + (*variables)["default_value"];
+ }
+}
+
+void FieldGeneratorBase::SetCommonOneofFieldVariables(
+ map<string, string>* variables) {
+ (*variables)["oneof_name"] = oneof_name();
+ (*variables)["has_property_check"] = oneof_name() + "Case_ == " + oneof_property_name() +
+ "OneofCase." + property_name();
+ (*variables)["oneof_property_name"] = oneof_property_name();
+}
+
+FieldGeneratorBase::FieldGeneratorBase(const FieldDescriptor* descriptor,
+ int fieldOrdinal)
+ : SourceGeneratorBase(descriptor->file()),
+ descriptor_(descriptor),
+ fieldOrdinal_(fieldOrdinal) {
+ SetCommonFieldVariables(&variables_);
+}
+
+FieldGeneratorBase::~FieldGeneratorBase() {
+}
+
+void FieldGeneratorBase::AddDeprecatedFlag(io::Printer* printer) {
+ if (descriptor_->options().deprecated())
+ {
+ printer->Print("[global::System.ObsoleteAttribute()]\n");
+ }
+}
+
+void FieldGeneratorBase::AddNullCheck(io::Printer* printer) {
+ AddNullCheck(printer, "value");
+}
+
+void FieldGeneratorBase::AddNullCheck(io::Printer* printer, const std::string& name) {
+ if (is_nullable_type()) {
+ printer->Print(" pb::ThrowHelper.ThrowIfNull($name$, \"$name$\");\n",
+ "name", name);
+ }
+}
+
+void FieldGeneratorBase::AddPublicMemberAttributes(io::Printer* printer) {
+ AddDeprecatedFlag(printer);
+}
+
+std::string FieldGeneratorBase::oneof_property_name() {
+ return UnderscoresToCamelCase(descriptor_->containing_oneof()->name(), true);
+}
+
+std::string FieldGeneratorBase::oneof_name() {
+ return UnderscoresToCamelCase(descriptor_->containing_oneof()->name(), false);
+}
+
+std::string FieldGeneratorBase::property_name() {
+ return GetPropertyName(descriptor_);
+}
+
+std::string FieldGeneratorBase::name() {
+ return UnderscoresToCamelCase(GetFieldName(descriptor_), false);
+}
+
+std::string FieldGeneratorBase::type_name() {
+ switch (descriptor_->type()) {
+ case FieldDescriptor::TYPE_ENUM:
+ return GetClassName(descriptor_->enum_type());
+ case FieldDescriptor::TYPE_MESSAGE:
+ case FieldDescriptor::TYPE_GROUP:
+ return GetClassName(descriptor_->message_type());
+ case FieldDescriptor::TYPE_DOUBLE:
+ return "double";
+ case FieldDescriptor::TYPE_FLOAT:
+ return "float";
+ case FieldDescriptor::TYPE_INT64:
+ return "long";
+ case FieldDescriptor::TYPE_UINT64:
+ return "ulong";
+ case FieldDescriptor::TYPE_INT32:
+ return "int";
+ case FieldDescriptor::TYPE_FIXED64:
+ return "ulong";
+ case FieldDescriptor::TYPE_FIXED32:
+ return "uint";
+ case FieldDescriptor::TYPE_BOOL:
+ return "bool";
+ case FieldDescriptor::TYPE_STRING:
+ return "string";
+ case FieldDescriptor::TYPE_BYTES:
+ return "pb::ByteString";
+ case FieldDescriptor::TYPE_UINT32:
+ return "uint";
+ case FieldDescriptor::TYPE_SFIXED32:
+ return "int";
+ case FieldDescriptor::TYPE_SFIXED64:
+ return "long";
+ case FieldDescriptor::TYPE_SINT32:
+ return "int";
+ case FieldDescriptor::TYPE_SINT64:
+ return "long";
+ default:
+ GOOGLE_LOG(FATAL)<< "Unknown field type.";
+ return "";
+ }
+}
+
+bool FieldGeneratorBase::has_default_value() {
+ switch (descriptor_->type()) {
+ case FieldDescriptor::TYPE_ENUM:
+ case FieldDescriptor::TYPE_MESSAGE:
+ case FieldDescriptor::TYPE_GROUP:
+ return true;
+ case FieldDescriptor::TYPE_DOUBLE:
+ return descriptor_->default_value_double() != 0.0;
+ case FieldDescriptor::TYPE_FLOAT:
+ return descriptor_->default_value_float() != 0.0;
+ case FieldDescriptor::TYPE_INT64:
+ return descriptor_->default_value_int64() != 0L;
+ case FieldDescriptor::TYPE_UINT64:
+ return descriptor_->default_value_uint64() != 0L;
+ case FieldDescriptor::TYPE_INT32:
+ return descriptor_->default_value_int32() != 0;
+ case FieldDescriptor::TYPE_FIXED64:
+ return descriptor_->default_value_uint64() != 0L;
+ case FieldDescriptor::TYPE_FIXED32:
+ return descriptor_->default_value_uint32() != 0;
+ case FieldDescriptor::TYPE_BOOL:
+ return descriptor_->default_value_bool();
+ case FieldDescriptor::TYPE_STRING:
+ return true;
+ case FieldDescriptor::TYPE_BYTES:
+ return true;
+ case FieldDescriptor::TYPE_UINT32:
+ return descriptor_->default_value_uint32() != 0;
+ case FieldDescriptor::TYPE_SFIXED32:
+ return descriptor_->default_value_int32() != 0;
+ case FieldDescriptor::TYPE_SFIXED64:
+ return descriptor_->default_value_int64() != 0L;
+ case FieldDescriptor::TYPE_SINT32:
+ return descriptor_->default_value_int32() != 0;
+ case FieldDescriptor::TYPE_SINT64:
+ return descriptor_->default_value_int64() != 0L;
+ default:
+ GOOGLE_LOG(FATAL)<< "Unknown field type.";
+ return true;
+ }
+}
+
+bool FieldGeneratorBase::is_nullable_type() {
+ switch (descriptor_->type()) {
+ case FieldDescriptor::TYPE_ENUM:
+ case FieldDescriptor::TYPE_DOUBLE:
+ case FieldDescriptor::TYPE_FLOAT:
+ case FieldDescriptor::TYPE_INT64:
+ case FieldDescriptor::TYPE_UINT64:
+ case FieldDescriptor::TYPE_INT32:
+ case FieldDescriptor::TYPE_FIXED64:
+ case FieldDescriptor::TYPE_FIXED32:
+ case FieldDescriptor::TYPE_BOOL:
+ case FieldDescriptor::TYPE_UINT32:
+ case FieldDescriptor::TYPE_SFIXED32:
+ case FieldDescriptor::TYPE_SFIXED64:
+ case FieldDescriptor::TYPE_SINT32:
+ case FieldDescriptor::TYPE_SINT64:
+ return false;
+
+ case FieldDescriptor::TYPE_MESSAGE:
+ case FieldDescriptor::TYPE_GROUP:
+ case FieldDescriptor::TYPE_STRING:
+ case FieldDescriptor::TYPE_BYTES:
+ return true;
+
+ default:
+ GOOGLE_LOG(FATAL)<< "Unknown field type.";
+ return true;
+ }
+}
+
+inline bool IsNaN(double value) {
+ // NaN is never equal to anything, even itself.
+ return value != value;
+}
+
+bool AllPrintableAscii(const std::string& text) {
+ for(int i = 0; i < text.size(); i++) {
+ if (text[i] < 0x20 || text[i] > 0x7e) {
+ return false;
+ }
+ }
+ return true;
+}
+
+std::string FieldGeneratorBase::GetStringDefaultValueInternal() {
+ if (!descriptor_->has_default_value()) {
+ return "\"\"";
+ }
+ if (AllPrintableAscii(descriptor_->default_value_string())) {
+ // All chars are ASCII and printable. In this case we only
+ // need to escape quotes and backslashes.
+ std::string temp = descriptor_->default_value_string();
+ temp = StringReplace(temp, "\\", "\\\\", true);
+ temp = StringReplace(temp, "'", "\\'", true);
+ temp = StringReplace(temp, "\"", "\\\"", true);
+ return "\"" + temp + "\"";
+ }
+ if (use_lite_runtime()) {
+ return "pb::ByteString.FromBase64(\""
+ + StringToBase64(descriptor_->default_value_string())
+ + "\").ToStringUtf8()";
+ }
+ return "(string) " + GetClassName(descriptor_->containing_type())
+ + ".Descriptor.Fields[" + SimpleItoa(descriptor_->index())
+ + "].DefaultValue";
+}
+
+std::string FieldGeneratorBase::GetBytesDefaultValueInternal() {
+ if (!descriptor_->has_default_value()) {
+ return "pb::ByteString.Empty";
+ }
+ if (use_lite_runtime()) {
+ return "pb::ByteString.FromBase64(\"" + StringToBase64(descriptor_->default_value_string()) + "\")";
+ }
+ return "(pb::ByteString) "+ GetClassName(descriptor_->containing_type()) +
+ ".Descriptor.Fields[" + SimpleItoa(descriptor_->index()) + "].DefaultValue";
+}
+
+std::string FieldGeneratorBase::default_value() {
+ switch (descriptor_->type()) {
+ case FieldDescriptor::TYPE_ENUM:
+ return type_name() + "." + descriptor_->default_value_enum()->name();
+ case FieldDescriptor::TYPE_MESSAGE:
+ case FieldDescriptor::TYPE_GROUP:
+ return type_name() + ".DefaultInstance";
+ case FieldDescriptor::TYPE_DOUBLE: {
+ double value = descriptor_->default_value_double();
+ if (value == numeric_limits<double>::infinity()) {
+ return "double.PositiveInfinity";
+ } else if (value == -numeric_limits<double>::infinity()) {
+ return "double.NegativeInfinity";
+ } else if (IsNaN(value)) {
+ return "double.NaN";
+ }
+ return SimpleDtoa(value) + "D";
+ }
+ case FieldDescriptor::TYPE_FLOAT: {
+ float value = descriptor_->default_value_float();
+ if (value == numeric_limits<float>::infinity()) {
+ return "float.PositiveInfinity";
+ } else if (value == -numeric_limits<float>::infinity()) {
+ return "float.NegativeInfinity";
+ } else if (IsNaN(value)) {
+ return "float.NaN";
+ }
+ return SimpleFtoa(value) + "F";
+ }
+ case FieldDescriptor::TYPE_INT64:
+ return SimpleItoa(descriptor_->default_value_int64()) + "L";
+ case FieldDescriptor::TYPE_UINT64:
+ return SimpleItoa(descriptor_->default_value_uint64()) + "UL";
+ case FieldDescriptor::TYPE_INT32:
+ return SimpleItoa(descriptor_->default_value_int32());
+ case FieldDescriptor::TYPE_FIXED64:
+ return SimpleItoa(descriptor_->default_value_uint64()) + "UL";
+ case FieldDescriptor::TYPE_FIXED32:
+ return SimpleItoa(descriptor_->default_value_uint32());
+ case FieldDescriptor::TYPE_BOOL:
+ if (descriptor_->default_value_bool()) {
+ return "true";
+ } else {
+ return "false";
+ }
+ case FieldDescriptor::TYPE_STRING:
+ return GetStringDefaultValueInternal();
+ case FieldDescriptor::TYPE_BYTES:
+ return GetBytesDefaultValueInternal();
+ case FieldDescriptor::TYPE_UINT32:
+ return SimpleItoa(descriptor_->default_value_uint32());
+ case FieldDescriptor::TYPE_SFIXED32:
+ return SimpleItoa(descriptor_->default_value_int32());
+ case FieldDescriptor::TYPE_SFIXED64:
+ return SimpleItoa(descriptor_->default_value_int64()) + "L";
+ case FieldDescriptor::TYPE_SINT32:
+ return SimpleItoa(descriptor_->default_value_int32());
+ case FieldDescriptor::TYPE_SINT64:
+ return SimpleItoa(descriptor_->default_value_int64()) + "L";
+ default:
+ GOOGLE_LOG(FATAL)<< "Unknown field type.";
+ return "";
+ }
+}
+
+std::string FieldGeneratorBase::number() {
+ return SimpleItoa(descriptor_->number());
+}
+
+std::string FieldGeneratorBase::message_or_group() {
+ return
+ (descriptor_->type() == FieldDescriptor::TYPE_GROUP) ? "Group" : "Message";
+}
+
+std::string FieldGeneratorBase::capitalized_type_name() {
+ switch (descriptor_->type()) {
+ case FieldDescriptor::TYPE_ENUM:
+ return "Enum";
+ case FieldDescriptor::TYPE_MESSAGE:
+ return "Message";
+ case FieldDescriptor::TYPE_GROUP:
+ return "Group";
+ case FieldDescriptor::TYPE_DOUBLE:
+ return "Double";
+ case FieldDescriptor::TYPE_FLOAT:
+ return "Float";
+ case FieldDescriptor::TYPE_INT64:
+ return "Int64";
+ case FieldDescriptor::TYPE_UINT64:
+ return "UInt64";
+ case FieldDescriptor::TYPE_INT32:
+ return "Int32";
+ case FieldDescriptor::TYPE_FIXED64:
+ return "Fixed64";
+ case FieldDescriptor::TYPE_FIXED32:
+ return "Fixed32";
+ case FieldDescriptor::TYPE_BOOL:
+ return "Bool";
+ case FieldDescriptor::TYPE_STRING:
+ return "String";
+ case FieldDescriptor::TYPE_BYTES:
+ return "Bytes";
+ case FieldDescriptor::TYPE_UINT32:
+ return "UInt32";
+ case FieldDescriptor::TYPE_SFIXED32:
+ return "SFixed32";
+ case FieldDescriptor::TYPE_SFIXED64:
+ return "SFixed64";
+ case FieldDescriptor::TYPE_SINT32:
+ return "SInt32";
+ case FieldDescriptor::TYPE_SINT64:
+ return "SInt64";
+ default:
+ GOOGLE_LOG(FATAL)<< "Unknown field type.";
+ return "";
+ }
+}
+
+std::string FieldGeneratorBase::field_ordinal() {
+ return SimpleItoa(fieldOrdinal_);
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_field_base.h b/src/google/protobuf/compiler/csharp/csharp_field_base.h
new file mode 100644
index 00000000..b1570587
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_field_base.h
@@ -0,0 +1,103 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_FIELD_BASE_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_FIELD_BASE_H__
+
+#include <string>
+#include <google/protobuf/stubs/strutil.h>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_source_generator_base.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class Writer;
+
+class FieldGeneratorBase : public SourceGeneratorBase {
+ public:
+ FieldGeneratorBase(const FieldDescriptor* descriptor, int fieldOrdinal);
+ ~FieldGeneratorBase();
+
+ virtual void GenerateMembers(io::Printer* printer) = 0;
+ virtual void GenerateBuilderMembers(io::Printer* printer) = 0;
+ virtual void GenerateMergingCode(io::Printer* printer) = 0;
+ virtual void GenerateBuildingCode(io::Printer* printer) = 0;
+ virtual void GenerateParsingCode(io::Printer* printer) = 0;
+ virtual void GenerateSerializationCode(io::Printer* printer) = 0;
+ virtual void GenerateSerializedSizeCode(io::Printer* printer) = 0;
+
+ virtual void WriteHash(io::Printer* printer) = 0;
+ virtual void WriteEquals(io::Printer* printer) = 0;
+ virtual void WriteToString(io::Printer* printer) = 0;
+
+ protected:
+ const FieldDescriptor* descriptor_;
+ const int fieldOrdinal_;
+ map<string, string> variables_;
+
+ void AddDeprecatedFlag(io::Printer* printer);
+ void AddNullCheck(io::Printer* printer);
+ void AddNullCheck(io::Printer* printer, const std::string& name);
+
+ void AddPublicMemberAttributes(io::Printer* printer);
+ void SetCommonOneofFieldVariables(map<string, string>* variables);
+
+ std::string oneof_property_name();
+ std::string oneof_name();
+ std::string property_name();
+ std::string name();
+ std::string type_name();
+ bool has_default_value();
+ bool is_nullable_type();
+ std::string default_value();
+ std::string number();
+ std::string message_or_group();
+ std::string capitalized_type_name();
+ std::string field_ordinal();
+
+ private:
+ void SetCommonFieldVariables(map<string, string>* variables);
+ std::string GetStringDefaultValueInternal();
+ std::string GetBytesDefaultValueInternal();
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGeneratorBase);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_FIELD_BASE_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_generator.cc b/src/google/protobuf/compiler/csharp/csharp_generator.cc
new file mode 100644
index 00000000..2a416fac
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_generator.cc
@@ -0,0 +1,94 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+
+#include <google/protobuf/compiler/csharp/csharp_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_umbrella_class.h>
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+
+using google::protobuf::internal::scoped_ptr;
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+std::string GetOutputFile(const google::protobuf::FileDescriptor* file, const std::string file_extension)
+{
+ return GetFileUmbrellaClassname(file) + file_extension;
+}
+
+void GenerateFile(const google::protobuf::FileDescriptor* file,
+ io::Printer* printer) {
+ UmbrellaClassGenerator umbrellaGenerator(file);
+ umbrellaGenerator.Generate(printer);
+}
+
+bool Generator::Generate(
+ const FileDescriptor* file,
+ const string& parameter,
+ GeneratorContext* generator_context,
+ string* error) const {
+
+ vector<pair<string, string> > options;
+ ParseGeneratorParameter(parameter, &options);
+
+ std::string file_extension = ".cs";
+ for (int i = 0; i < options.size(); i++) {
+ if (options[i].first == "file_extension") {
+ file_extension = options[i].second;
+ } else {
+ *error = "Unknown generator option: " + options[i].first;
+ return false;
+ }
+ }
+
+ std::string filename = GetOutputFile(file, file_extension);
+ scoped_ptr<io::ZeroCopyOutputStream> output(
+ generator_context->Open(filename));
+ io::Printer printer(output.get(), '$');
+
+ GenerateFile(file, &printer);
+
+ return true;
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_generator.h b/src/google/protobuf/compiler/csharp/csharp_generator.h
new file mode 100644
index 00000000..9b54e914
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_generator.h
@@ -0,0 +1,58 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_GENERATOR_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_GENERATOR_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class LIBPROTOC_EXPORT Generator
+ : public google::protobuf::compiler::CodeGenerator {
+ virtual bool Generate(
+ const FileDescriptor* file,
+ const string& parameter,
+ GeneratorContext* generator_context,
+ string* error) const;
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_GENERATOR_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_generator_unittest.cc b/src/google/protobuf/compiler/csharp/csharp_generator_unittest.cc
new file mode 100644
index 00000000..7ef7df42
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_generator_unittest.cc
@@ -0,0 +1,54 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2014 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <memory>
+
+#include <google/protobuf/compiler/ruby/ruby_generator.h>
+#include <google/protobuf/compiler/command_line_interface.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+#include <google/protobuf/io/printer.h>
+
+#include <google/protobuf/testing/googletest.h>
+#include <gtest/gtest.h>
+#include <google/protobuf/testing/file.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+namespace {
+
+// TODO(jtattermusch): add some tests.
+
+} // namespace
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_helpers.cc b/src/google/protobuf/compiler/csharp/csharp_helpers.cc
new file mode 100644
index 00000000..76e2c850
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_helpers.cc
@@ -0,0 +1,421 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#include <algorithm>
+#include <google/protobuf/stubs/hash.h>
+#include <limits>
+#include <vector>
+
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/wire_format.h>
+#include <google/protobuf/stubs/strutil.h>
+#include <google/protobuf/stubs/substitute.h>
+
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+#include <google/protobuf/compiler/csharp/csharp_enum_field.h>
+#include <google/protobuf/compiler/csharp/csharp_message_field.h>
+#include <google/protobuf/compiler/csharp/csharp_primitive_field.h>
+#include <google/protobuf/compiler/csharp/csharp_repeated_enum_field.h>
+#include <google/protobuf/compiler/csharp/csharp_repeated_message_field.h>
+#include <google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+CSharpType GetCSharpType(FieldDescriptor::Type type) {
+ switch (type) {
+ case FieldDescriptor::TYPE_INT32:
+ return CSHARPTYPE_INT32;
+ case FieldDescriptor::TYPE_INT64:
+ return CSHARPTYPE_INT64;
+ case FieldDescriptor::TYPE_UINT32:
+ return CSHARPTYPE_UINT32;
+ case FieldDescriptor::TYPE_UINT64:
+ return CSHARPTYPE_UINT32;
+ case FieldDescriptor::TYPE_SINT32:
+ return CSHARPTYPE_INT32;
+ case FieldDescriptor::TYPE_SINT64:
+ return CSHARPTYPE_INT64;
+ case FieldDescriptor::TYPE_FIXED32:
+ return CSHARPTYPE_UINT32;
+ case FieldDescriptor::TYPE_FIXED64:
+ return CSHARPTYPE_UINT64;
+ case FieldDescriptor::TYPE_SFIXED32:
+ return CSHARPTYPE_INT32;
+ case FieldDescriptor::TYPE_SFIXED64:
+ return CSHARPTYPE_INT64;
+ case FieldDescriptor::TYPE_FLOAT:
+ return CSHARPTYPE_FLOAT;
+ case FieldDescriptor::TYPE_DOUBLE:
+ return CSHARPTYPE_DOUBLE;
+ case FieldDescriptor::TYPE_BOOL:
+ return CSHARPTYPE_BOOL;
+ case FieldDescriptor::TYPE_ENUM:
+ return CSHARPTYPE_ENUM;
+ case FieldDescriptor::TYPE_STRING:
+ return CSHARPTYPE_STRING;
+ case FieldDescriptor::TYPE_BYTES:
+ return CSHARPTYPE_BYTESTRING;
+ case FieldDescriptor::TYPE_GROUP:
+ return CSHARPTYPE_MESSAGE;
+ case FieldDescriptor::TYPE_MESSAGE:
+ return CSHARPTYPE_MESSAGE;
+
+ // No default because we want the compiler to complain if any new
+ // types are added.
+ }
+ GOOGLE_LOG(FATAL)<< "Can't get here.";
+ return (CSharpType) -1;
+}
+
+std::string StripDotProto(const std::string& proto_file) {
+ int lastindex = proto_file.find_last_of(".");
+ return proto_file.substr(0, lastindex);
+}
+
+std::string GetFileNamespace(const FileDescriptor* descriptor) {
+ if (descriptor->options().has_csharp_namespace()) {
+ return descriptor->options().csharp_namespace();
+ }
+ return descriptor->package();
+}
+
+std::string GetUmbrellaClassNameInternal(const std::string& proto_file) {
+ int lastslash = proto_file.find_last_of("/");
+ std::string base = proto_file.substr(lastslash + 1);
+ return UnderscoresToPascalCase(StripDotProto(base));
+}
+
+std::string GetFileUmbrellaClassname(const FileDescriptor* descriptor) {
+ // umbrella_classname can no longer be set using message option.
+ return GetUmbrellaClassNameInternal(descriptor->name());
+}
+
+std::string GetFileUmbrellaNamespace(const FileDescriptor* descriptor) {
+ // TODO(jtattermusch): reintroduce csharp_umbrella_namespace option
+ bool collision = false;
+ std::string umbrella_classname = GetFileUmbrellaClassname(descriptor);
+ for(int i = 0; i < descriptor->message_type_count(); i++) {
+ if (descriptor->message_type(i)->name() == umbrella_classname) {
+ collision = true;
+ break;
+ }
+ }
+ for (int i = 0; i < descriptor->service_count(); i++) {
+ if (descriptor->service(i)->name() == umbrella_classname) {
+ collision = true;
+ break;
+ }
+ }
+ for (int i = 0; i < descriptor->enum_type_count(); i++) {
+ if (descriptor->enum_type(i)->name() == umbrella_classname) {
+ collision = true;
+ break;
+ }
+ }
+ return collision ? "Proto" : "";
+}
+
+// TODO(jtattermusch): can we reuse a utility function?
+std::string UnderscoresToCamelCase(const std::string& input,
+ bool cap_next_letter) {
+ string result;
+ // Note: I distrust ctype.h due to locales.
+ for (int i = 0; i < input.size(); i++) {
+ if ('a' <= input[i] && input[i] <= 'z') {
+ if (cap_next_letter) {
+ result += input[i] + ('A' - 'a');
+ } else {
+ result += input[i];
+ }
+ cap_next_letter = false;
+ } else if ('A' <= input[i] && input[i] <= 'Z') {
+ if (i == 0 && !cap_next_letter) {
+ // Force first letter to lower-case unless explicitly told to
+ // capitalize it.
+ result += input[i] + ('a' - 'A');
+ } else {
+ // Capital letters after the first are left as-is.
+ result += input[i];
+ }
+ cap_next_letter = false;
+ } else if ('0' <= input[i] && input[i] <= '9') {
+ result += input[i];
+ cap_next_letter = true;
+ } else {
+ cap_next_letter = true;
+ }
+ }
+ // Add a trailing "_" if the name should be altered.
+ if (input[input.size() - 1] == '#') {
+ result += '_';
+ }
+ return result;
+}
+
+std::string UnderscoresToPascalCase(const std::string& input) {
+ return UnderscoresToCamelCase(input, true);
+}
+
+std::string ToCSharpName(const std::string& name, const FileDescriptor* file) {
+ std::string result = GetFileNamespace(file);
+ if (result != "") {
+ result += '.';
+ }
+ string classname;
+ if (file->package().empty()) {
+ classname = name;
+ } else {
+ // Strip the proto package from full_name since we've replaced it with
+ // the C# namespace.
+ classname = name.substr(file->package().size() + 1);
+ }
+ result += StringReplace(classname, ".", ".Types.", false);
+ return "global::" + result;
+}
+
+
+
+std::string GetFullUmbrellaClassName(const FileDescriptor* descriptor) {
+ std::string result = GetFileNamespace(descriptor);
+ if (!result.empty()) {
+ result += '.';
+ }
+ result += GetQualifiedUmbrellaClassName(descriptor);
+ return "global::" + result;
+}
+
+std::string GetQualifiedUmbrellaClassName(const FileDescriptor* descriptor) {
+ std::string umbrellaNamespace = GetFileUmbrellaNamespace(descriptor);
+ std::string umbrellaClassname = GetFileUmbrellaClassname(descriptor);
+
+ std::string fullName = umbrellaClassname;
+ if (!umbrellaNamespace.empty()) {
+ fullName = umbrellaNamespace + "." + umbrellaClassname;
+ }
+ return fullName;
+}
+
+std::string GetClassName(const Descriptor* descriptor) {
+ return ToCSharpName(descriptor->full_name(), descriptor->file());
+}
+
+std::string GetClassName(const EnumDescriptor* descriptor) {
+ return ToCSharpName(descriptor->full_name(), descriptor->file());
+}
+
+// Groups are hacky: The name of the field is just the lower-cased name
+// of the group type. In C#, though, we would like to retain the original
+// capitalization of the type name.
+std::string GetFieldName(const FieldDescriptor* descriptor) {
+ if (descriptor->type() == FieldDescriptor::TYPE_GROUP) {
+ return descriptor->message_type()->name();
+ } else {
+ return descriptor->name();
+ }
+}
+
+std::string GetFieldConstantName(const FieldDescriptor* field) {
+ return GetPropertyName(field) + "FieldNumber";
+}
+
+std::string GetPropertyName(const FieldDescriptor* descriptor) {
+ // TODO(jtattermusch): consider introducing csharp_property_name field option
+ std::string property_name = UnderscoresToPascalCase(GetFieldName(descriptor));
+ if (property_name == descriptor->containing_type()->name()) {
+ property_name += "_";
+ }
+ return property_name;
+}
+
+// TODO: c&p from Java protoc plugin
+// For encodings with fixed sizes, returns that size in bytes. Otherwise
+// returns -1.
+int GetFixedSize(FieldDescriptor::Type type) {
+ switch (type) {
+ case FieldDescriptor::TYPE_INT32 : return -1;
+ case FieldDescriptor::TYPE_INT64 : return -1;
+ case FieldDescriptor::TYPE_UINT32 : return -1;
+ case FieldDescriptor::TYPE_UINT64 : return -1;
+ case FieldDescriptor::TYPE_SINT32 : return -1;
+ case FieldDescriptor::TYPE_SINT64 : return -1;
+ case FieldDescriptor::TYPE_FIXED32 : return internal::WireFormatLite::kFixed32Size;
+ case FieldDescriptor::TYPE_FIXED64 : return internal::WireFormatLite::kFixed64Size;
+ case FieldDescriptor::TYPE_SFIXED32: return internal::WireFormatLite::kSFixed32Size;
+ case FieldDescriptor::TYPE_SFIXED64: return internal::WireFormatLite::kSFixed64Size;
+ case FieldDescriptor::TYPE_FLOAT : return internal::WireFormatLite::kFloatSize;
+ case FieldDescriptor::TYPE_DOUBLE : return internal::WireFormatLite::kDoubleSize;
+
+ case FieldDescriptor::TYPE_BOOL : return internal::WireFormatLite::kBoolSize;
+ case FieldDescriptor::TYPE_ENUM : return -1;
+
+ case FieldDescriptor::TYPE_STRING : return -1;
+ case FieldDescriptor::TYPE_BYTES : return -1;
+ case FieldDescriptor::TYPE_GROUP : return -1;
+ case FieldDescriptor::TYPE_MESSAGE : return -1;
+
+ // No default because we want the compiler to complain if any new
+ // types are added.
+ }
+ GOOGLE_LOG(FATAL) << "Can't get here.";
+ return -1;
+}
+
+static const char base64_chars[] =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+std::string StringToBase64(const std::string& input) {
+ std::string result;
+ size_t remaining = input.size();
+ const unsigned char *src = (const unsigned char*) input.c_str();
+ while (remaining > 2) {
+ result += base64_chars[src[0] >> 2];
+ result += base64_chars[((src[0] & 0x3) << 4) | (src[1] >> 4)];
+ result += base64_chars[((src[1] & 0xf) << 2) | (src[2] >> 6)];
+ result += base64_chars[src[2] & 0x3f];
+ remaining -= 3;
+ src += 3;
+ }
+ switch (remaining) {
+ case 2:
+ result += base64_chars[src[0] >> 2];
+ result += base64_chars[((src[0] & 0x3) << 4) | (src[1] >> 4)];
+ result += base64_chars[(src[1] & 0xf) << 2];
+ result += '=';
+ src += 2;
+ break;
+ case 1:
+ result += base64_chars[src[0] >> 2];
+ result += base64_chars[((src[0] & 0x3) << 4)];
+ result += '=';
+ result += '=';
+ src += 1;
+ break;
+ }
+ return result;
+}
+
+std::string FileDescriptorToBase64(const FileDescriptor* descriptor) {
+ std::string fdp_bytes;
+ FileDescriptorProto fdp;
+ descriptor->CopyTo(&fdp);
+ fdp.SerializeToString(&fdp_bytes);
+ return StringToBase64(fdp_bytes);
+}
+
+FieldGeneratorBase* CreateFieldGenerator(const FieldDescriptor* descriptor,
+ int fieldOrdinal) {
+ switch (descriptor->type()) {
+ case FieldDescriptor::TYPE_GROUP:
+ case FieldDescriptor::TYPE_MESSAGE:
+ if (descriptor->is_repeated()) {
+ return new RepeatedMessageFieldGenerator(descriptor, fieldOrdinal);
+ } else {
+ if (descriptor->containing_oneof()) {
+ return new MessageOneofFieldGenerator(descriptor, fieldOrdinal);
+ } else {
+ return new MessageFieldGenerator(descriptor, fieldOrdinal);
+ }
+ }
+ case FieldDescriptor::TYPE_ENUM:
+ if (descriptor->is_repeated()) {
+ return new RepeatedEnumFieldGenerator(descriptor, fieldOrdinal);
+ } else {
+ if (descriptor->containing_oneof()) {
+ return new EnumOneofFieldGenerator(descriptor, fieldOrdinal);
+ } else {
+ return new EnumFieldGenerator(descriptor, fieldOrdinal);
+ }
+ }
+ default:
+ if (descriptor->is_repeated()) {
+ return new RepeatedPrimitiveFieldGenerator(descriptor, fieldOrdinal);
+ } else {
+ if (descriptor->containing_oneof()) {
+ return new PrimitiveOneofFieldGenerator(descriptor, fieldOrdinal);
+ } else {
+ return new PrimitiveFieldGenerator(descriptor, fieldOrdinal);
+ }
+ }
+ }
+}
+
+bool HasRequiredFields(const Descriptor* descriptor, std::set<const Descriptor*>* already_seen) {
+ if (already_seen->find(descriptor) != already_seen->end()) {
+ // The type is already in cache. This means that either:
+ // a. The type has no required fields.
+ // b. We are in the midst of checking if the type has required fields,
+ // somewhere up the stack. In this case, we know that if the type
+ // has any required fields, they'll be found when we return to it,
+ // and the whole call to HasRequiredFields() will return true.
+ // Therefore, we don't have to check if this type has required fields
+ // here.
+ return false;
+ }
+ already_seen->insert(descriptor);
+
+ // If the type has extensions, an extension with message type could contain
+ // required fields, so we have to be conservative and assume such an
+ // extension exists.
+ if (descriptor->extension_count() > 0) {
+ return true;
+ }
+
+ for (int i = 0; i < descriptor->field_count(); i++) {
+ const FieldDescriptor* field = descriptor->field(i);
+ if (field->is_required()) {
+ return true;
+ }
+ if (GetCSharpType(field->type()) == CSHARPTYPE_MESSAGE) {
+ if (HasRequiredFields(field->message_type(), already_seen)) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+bool HasRequiredFields(const Descriptor* descriptor) {
+ std::set<const Descriptor*> already_seen;
+ return HasRequiredFields(descriptor, &already_seen);
+}
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_helpers.h b/src/google/protobuf/compiler/csharp/csharp_helpers.h
new file mode 100644
index 00000000..bc77f43a
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_helpers.h
@@ -0,0 +1,112 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_HELPERS_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_HELPERS_H__
+
+#include <string>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/io/printer.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class FieldGeneratorBase;
+
+// TODO: start using this enum.
+enum CSharpType {
+ CSHARPTYPE_INT32 = 1,
+ CSHARPTYPE_INT64 = 2,
+ CSHARPTYPE_UINT32 = 3,
+ CSHARPTYPE_UINT64 = 4,
+ CSHARPTYPE_FLOAT = 5,
+ CSHARPTYPE_DOUBLE = 6,
+ CSHARPTYPE_BOOL = 7,
+ CSHARPTYPE_STRING = 8,
+ CSHARPTYPE_BYTESTRING = 9,
+ CSHARPTYPE_MESSAGE = 10,
+ CSHARPTYPE_ENUM = 11,
+ MAX_CSHARPTYPE = 11
+};
+
+// Converts field type to corresponding C# type.
+CSharpType GetCSharpType(FieldDescriptor::Type type);
+
+std::string StripDotProto(const std::string& proto_file);
+
+std::string GetFileNamespace(const FileDescriptor* descriptor);
+std::string GetFileUmbrellaClassname(const FileDescriptor* descriptor);
+std::string GetFileUmbrellaNamespace(const FileDescriptor* descriptor);
+
+std::string GetFullUmbrellaClassName(const FileDescriptor* descriptor);
+
+std::string GetQualifiedUmbrellaClassName(const FileDescriptor* descriptor);
+
+std::string GetClassName(const Descriptor* descriptor);
+std::string GetClassName(const EnumDescriptor* descriptor);
+
+std::string GetFieldName(const FieldDescriptor* descriptor);
+
+std::string GetFieldConstantName(const FieldDescriptor* field);
+
+std::string GetPropertyName(const FieldDescriptor* descriptor);
+
+int GetFixedSize(FieldDescriptor::Type type);
+
+std::string UnderscoresToCamelCase(const std::string& input, bool cap_next_letter);
+
+std::string UnderscoresToPascalCase(const std::string& input);
+
+// TODO(jtattermusch): perhaps we could move this to strutil
+std::string StringToBase64(const std::string& input);
+
+std::string FileDescriptorToBase64(const FileDescriptor* descriptor);
+
+FieldGeneratorBase* CreateFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
+
+bool HasRequiredFields(const Descriptor* descriptor);
+
+inline bool SupportFieldPresence(const FileDescriptor* file) {
+ return file->syntax() != FileDescriptor::SYNTAX_PROTO3;
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_HELPERS_H__
diff --git a/src/google/protobuf/compiler/csharp/csharp_message.cc b/src/google/protobuf/compiler/csharp/csharp_message.cc
new file mode 100644
index 00000000..66b87110
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_message.cc
@@ -0,0 +1,1006 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+#include <algorithm>
+#include <map>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+#include <google/protobuf/stubs/strutil.h>
+#include <google/protobuf/wire_format.h>
+#include <google/protobuf/wire_format_lite.h>
+
+#include <google/protobuf/compiler/csharp/csharp_enum.h>
+#include <google/protobuf/compiler/csharp/csharp_extension.h>
+#include <google/protobuf/compiler/csharp/csharp_message.h>
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+
+using google::protobuf::internal::scoped_ptr;
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+bool CompareFieldNumbers(const FieldDescriptor* d1, const FieldDescriptor* d2) {
+ return d1->number() < d2->number();
+}
+
+MessageGenerator::MessageGenerator(const Descriptor* descriptor)
+ : SourceGeneratorBase(descriptor->file()),
+ descriptor_(descriptor) {
+
+ // sorted field names
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ field_names_.push_back(descriptor_->field(i)->name());
+ }
+ std::sort(field_names_.begin(), field_names_.end());
+
+ // fields by number
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ fields_by_number_.push_back(descriptor_->field(i));
+ }
+ std::sort(fields_by_number_.begin(), fields_by_number_.end(),
+ CompareFieldNumbers);
+}
+
+MessageGenerator::~MessageGenerator() {
+}
+
+std::string MessageGenerator::class_name() {
+ return descriptor_->name();
+}
+
+std::string MessageGenerator::full_class_name() {
+ return GetClassName(descriptor_);
+}
+
+const std::vector<std::string>& MessageGenerator::field_names() {
+ return field_names_;
+}
+
+const std::vector<const FieldDescriptor*>& MessageGenerator::fields_by_number() {
+ return fields_by_number_;
+}
+
+/// Get an identifier that uniquely identifies this type within the file.
+/// This is used to declare static variables related to this type at the
+/// outermost file scope.
+std::string GetUniqueFileScopeIdentifier(const Descriptor* descriptor) {
+ std::string result = descriptor->full_name();
+ std::replace(result.begin(), result.end(), '.', '_');
+ return "static_" + result;
+}
+
+void MessageGenerator::GenerateStaticVariables(io::Printer* printer) {
+ // Because descriptor.proto (Google.ProtocolBuffers.DescriptorProtos) is
+ // used in the construction of descriptors, we have a tricky bootstrapping
+ // problem. To help control static initialization order, we make sure all
+ // descriptors and other static data that depends on them are members of
+ // the proto-descriptor class. This way, they will be initialized in
+ // a deterministic order.
+
+ std::string identifier = GetUniqueFileScopeIdentifier(descriptor_);
+
+ if (!use_lite_runtime()) {
+ // The descriptor for this type.
+ printer->Print(
+ "internal static pbd::MessageDescriptor internal__$identifier$__Descriptor;\n"
+ "internal static pb::FieldAccess.FieldAccessorTable<$full_class_name$, $full_class_name$.Builder> internal__$identifier$__FieldAccessorTable;\n",
+ "identifier", GetUniqueFileScopeIdentifier(descriptor_),
+ "full_class_name", full_class_name());
+ }
+
+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
+ MessageGenerator messageGenerator(descriptor_->nested_type(i));
+ messageGenerator.GenerateStaticVariables(printer);
+ }
+}
+
+void MessageGenerator::GenerateStaticVariableInitializers(io::Printer* printer) {
+ map<string, string> vars;
+ vars["identifier"] = GetUniqueFileScopeIdentifier(descriptor_);
+ vars["index"] = SimpleItoa(descriptor_->index());
+ vars["full_class_name"] = full_class_name();
+ if (descriptor_->containing_type() != NULL) {
+ vars["parent"] = GetUniqueFileScopeIdentifier(
+ descriptor_->containing_type());
+ }
+ if (!use_lite_runtime()) {
+ printer->Print(vars, "internal__$identifier$__Descriptor = ");
+
+ if (!descriptor_->containing_type()) {
+ printer->Print(vars, "Descriptor.MessageTypes[$index$];\n");
+ } else {
+ printer->Print(vars, "internal__$parent$__Descriptor.NestedTypes[$index$];\n");
+ }
+
+ printer->Print(
+ vars,
+ "internal__$identifier$__FieldAccessorTable = \n"
+ " new pb::FieldAccess.FieldAccessorTable<$full_class_name$, $full_class_name$.Builder>(internal__$identifier$__Descriptor,\n");
+ printer->Print(" new string[] { ");
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ printer->Print("\"$property_name$\", ",
+ "property_name", GetPropertyName(descriptor_->field(i)));
+ }
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ printer->Print("\"$oneof_name$\", ",
+ "oneof_name",
+ UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), true));
+ }
+ printer->Print("});\n");
+ }
+
+ // Generate static member initializers for all nested types.
+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
+ MessageGenerator messageGenerator(descriptor_->nested_type(i));
+ messageGenerator.GenerateStaticVariableInitializers(printer);
+ }
+
+ for (int i = 0; i < descriptor_->extension_count(); i++) {
+ ExtensionGenerator extensionGenerator(descriptor_->extension(i));
+ extensionGenerator.GenerateStaticVariableInitializers(printer);
+ }
+}
+
+void MessageGenerator::Generate(io::Printer* printer) {
+ map<string, string> vars;
+ vars["class_name"] = class_name();
+ vars["access_level"] = class_access_level();
+ vars["extendable_or_generated"] = descriptor_->extension_range_count() > 0 ?
+ "Extendable" : "Generated";
+ vars["suffix"] = runtime_suffix();
+ vars["umbrella_class_name"] = GetFullUmbrellaClassName(descriptor_->file());
+ vars["identifier"] = GetUniqueFileScopeIdentifier(descriptor_);
+
+ printer->Print(
+ "[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n");
+ WriteGeneratedCodeAttributes(printer);
+ printer->Print(
+ vars,
+ "$access_level$ sealed partial class $class_name$ : pb::$extendable_or_generated$Message$suffix$<$class_name$, $class_name$.Builder> {\n");
+ printer->Indent();
+ printer->Print(
+ vars,
+ "private $class_name$() { }\n" // Private ctor.
+ // Must call MakeReadOnly() to make sure all lists are made read-only
+ "private static readonly $class_name$ defaultInstance = new $class_name$().MakeReadOnly();\n");
+
+ if (optimize_speed()) {
+ printer->Print(
+ "private static readonly string[] _$name$FieldNames = "
+ "new string[] { $slash$$field_names$$slash$ };\n",
+ "name", UnderscoresToCamelCase(class_name(), false),
+ "field_names", JoinStrings(field_names(), "\", \""),
+ "slash", field_names().size() > 0 ? "\"" : "");
+ std::vector<std::string> tags;
+ for (int i = 0; i < field_names().size(); i++) {
+ uint32 tag = internal::WireFormat::MakeTag(
+ descriptor_->FindFieldByName(field_names()[i]));
+ tags.push_back(SimpleItoa(tag));
+ }
+ printer->Print(
+ "private static readonly uint[] _$name$FieldTags = new uint[] { $tags$ };\n",
+ "name", UnderscoresToCamelCase(class_name(), false),
+ "tags", JoinStrings(tags, ", "));
+ }
+ printer->Print(
+ vars,
+ "public static $class_name$ DefaultInstance {\n"
+ " get { return defaultInstance; }\n"
+ "}\n"
+ "\n"
+ "public override $class_name$ DefaultInstanceForType {\n"
+ " get { return DefaultInstance; }\n"
+ "}\n"
+ "\n"
+ "protected override $class_name$ ThisMessage {\n"
+ " get { return this; }\n"
+ "}\n\n");
+
+ if (!use_lite_runtime()) {
+ printer->Print(
+ vars,
+ "public static pbd::MessageDescriptor Descriptor {\n"
+ " get { return $umbrella_class_name$.internal__$identifier$__Descriptor; }\n"
+ "}\n"
+ "\n"
+ "protected override pb::FieldAccess.FieldAccessorTable<$class_name$, $class_name$.Builder> InternalFieldAccessors {\n"
+ " get { return $umbrella_class_name$.internal__$identifier$__FieldAccessorTable; }\n"
+ "}\n"
+ "\n");
+ }
+
+ // Extensions don't need to go in an extra nested type
+ for (int i = 0; i < descriptor_->extension_count(); i++) {
+ ExtensionGenerator extensionGenerator(descriptor_->extension(i));
+ extensionGenerator.Generate(printer);
+ }
+
+ if (descriptor_->enum_type_count() + descriptor_->nested_type_count() > 0) {
+ printer->Print("#region Nested types\n"
+ "[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n");
+ WriteGeneratedCodeAttributes(printer);
+ printer->Print("public static partial class Types {\n");
+ printer->Indent();
+ for (int i = 0; i < descriptor_->enum_type_count(); i++) {
+ EnumGenerator enumGenerator(descriptor_->enum_type(i));
+ enumGenerator.Generate(printer);
+ }
+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
+ MessageGenerator messageGenerator(descriptor_->nested_type(i));
+ messageGenerator.Generate(printer);
+ }
+ printer->Outdent();
+ printer->Print("}\n"
+ "#endregion\n"
+ "\n");
+ }
+
+ // oneof
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ vars["name"] = UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), false);
+ vars["property_name"] = UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), true);
+ printer->Print(
+ vars,
+ "private object $name$_;\n"
+ "public enum $property_name$OneofCase {\n");
+ printer->Indent();
+ for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
+ const FieldDescriptor* field = descriptor_->oneof_decl(i)->field(j);
+ printer->Print("$field_property_name$ = $index$,\n",
+ "field_property_name", GetPropertyName(field),
+ "index", SimpleItoa(field->number()));
+ }
+ printer->Print("None = 0,\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print(
+ vars,
+ "private $property_name$OneofCase $name$Case_ = $property_name$OneofCase.None;\n"
+ "public $property_name$OneofCase $property_name$Case {\n"
+ " get { return $name$Case_; }\n"
+ "}\n\n");
+ }
+
+ // Fields
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* fieldDescriptor = descriptor_->field(i);
+
+ // Rats: we lose the debug comment here :(
+ printer->Print(
+ "public const int $field_constant_name$ = $index$;\n",
+ "field_constant_name", GetFieldConstantName(fieldDescriptor),
+ "index", SimpleItoa(fieldDescriptor->number()));
+ scoped_ptr<FieldGeneratorBase> generator(
+ CreateFieldGeneratorInternal(fieldDescriptor));
+ generator->GenerateMembers(printer);
+ printer->Print("\n");
+ }
+
+ if (optimize_speed()) {
+ if (SupportFieldPresence(descriptor_->file())) {
+ GenerateIsInitialized(printer);
+ }
+ GenerateMessageSerializationMethods(printer);
+ }
+ if (use_lite_runtime()) {
+ GenerateLiteRuntimeMethods(printer);
+ }
+
+ GenerateParseFromMethods(printer);
+ GenerateBuilder(printer);
+
+ // Force the static initialization code for the file to run, since it may
+ // initialize static variables declared in this class.
+ printer->Print(vars, "static $class_name$() {\n");
+ // We call object.ReferenceEquals() just to make it a valid statement on its own.
+ // Another option would be GetType(), but that causes problems in DescriptorProtoFile,
+ // where the bootstrapping is somewhat recursive - type initializers call
+ // each other, effectively. We temporarily see Descriptor as null.
+ printer->Print(
+ vars,
+ " object.ReferenceEquals($umbrella_class_name$.Descriptor, null);\n"
+ "}\n");
+
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("\n");
+
+}
+
+void MessageGenerator::GenerateLiteRuntimeMethods(io::Printer* printer) {
+ map<string, string> vars;
+ vars["class_name"] = class_name();
+
+ bool callbase = descriptor_->extension_range_count() > 0;
+ printer->Print("#region Lite runtime methods\n"
+ "public override int GetHashCode() {\n");
+ printer->Indent();
+ printer->Print("int hash = GetType().GetHashCode();\n");
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+ if (field->containing_oneof() == NULL) {
+ scoped_ptr<FieldGeneratorBase> generator(
+ CreateFieldGeneratorInternal(field));
+ generator->WriteHash(printer);
+ }
+ }
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ string name = UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), false);
+ string property_name = UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), true);
+ printer->Print(
+ "if ($name$Case_ != $property_name$OneofCase.None) {\n"
+ " hash ^= $name$_.GetHashCode();\n"
+ "}\n",
+ "name", UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), false),
+ "property_name",
+ UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), true));
+ }
+ if (callbase) {
+ printer->Print("hash ^= base.GetHashCode();\n");
+ }
+ printer->Print("return hash;\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("\n");
+
+ printer->Print("public override bool Equals(object obj) {\n");
+ printer->Indent();
+ printer->Print(
+ vars,
+ "$class_name$ other = obj as $class_name$;\n"
+ "if (other == null) return false;\n");
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ scoped_ptr<FieldGeneratorBase> generator(
+ CreateFieldGeneratorInternal(descriptor_->field(i)));
+ generator->WriteEquals(printer);
+ }
+ if (callbase) {
+ printer->Print("if (!base.Equals(other)) return false;\n");
+ }
+ printer->Print("return true;\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("\n");
+
+ printer->Print(
+ "public override void PrintTo(global::System.IO.TextWriter writer) {\n");
+ printer->Indent();
+
+ for (int i = 0; i < fields_by_number().size(); i++) {
+ scoped_ptr<FieldGeneratorBase> generator(
+ CreateFieldGeneratorInternal(fields_by_number()[i]));
+ generator->WriteToString(printer);
+ }
+
+ if (callbase) {
+ printer->Print("base.PrintTo(writer);\n");
+ }
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("#endregion\n");
+ printer->Print("\n");
+}
+
+bool CompareExtensionRangesStart(const Descriptor::ExtensionRange* r1,
+ const Descriptor::ExtensionRange* r2) {
+ return r1->start < r2->start;
+}
+
+void MessageGenerator::GenerateMessageSerializationMethods(io::Printer* printer) {
+ std::vector<const Descriptor::ExtensionRange*> extension_ranges_sorted;
+ for (int i = 0; i < descriptor_->extension_range_count(); i++) {
+ extension_ranges_sorted.push_back(descriptor_->extension_range(i));
+ }
+ std::sort(extension_ranges_sorted.begin(), extension_ranges_sorted.end(),
+ CompareExtensionRangesStart);
+
+ printer->Print(
+ "public override void WriteTo(pb::ICodedOutputStream output) {\n");
+ printer->Indent();
+ // Make sure we've computed the serialized length, so that packed fields are generated correctly.
+ printer->Print("CalcSerializedSize();\n"
+ "string[] field_names = _$class_name$FieldNames;\n",
+ "class_name", UnderscoresToCamelCase(class_name(), false));
+ if (descriptor_->extension_range_count()) {
+ printer->Print(
+ "pb::ExtendableMessage$runtime_suffix$<$class_name$, $class_name$.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);\n",
+ "class_name", class_name(),
+ "runtime_suffix", runtime_suffix());
+ }
+
+ // Merge the fields and the extension ranges, both sorted by field number.
+ for (int i = 0, j = 0;
+ i < fields_by_number().size() || j < extension_ranges_sorted.size();) {
+ if (i == fields_by_number().size()) {
+ GenerateSerializeOneExtensionRange(printer, extension_ranges_sorted[j++]);
+ } else if (j == extension_ranges_sorted.size()) {
+ GenerateSerializeOneField(printer, fields_by_number()[i++]);
+ } else if (fields_by_number()[i]->number()
+ < extension_ranges_sorted[j]->start) {
+ GenerateSerializeOneField(printer, fields_by_number()[i++]);
+ } else {
+ GenerateSerializeOneExtensionRange(printer, extension_ranges_sorted[j++]);
+ }
+ }
+
+ if (!use_lite_runtime()) {
+ if (descriptor_->options().message_set_wire_format())
+ {
+ printer->Print("UnknownFields.WriteAsMessageSetTo(output);\n");
+ } else {
+ printer->Print("UnknownFields.WriteTo(output);\n");
+ }
+ }
+
+ printer->Outdent();
+ printer->Print(
+ "}\n"
+ "\n"
+ "private int memoizedSerializedSize = -1;\n"
+ "public override int SerializedSize {\n");
+ printer->Indent();
+ printer->Print("get {\n");
+ printer->Indent();
+ printer->Print(
+ "int size = memoizedSerializedSize;\n"
+ "if (size != -1) return size;\n"
+ "return CalcSerializedSize();\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("\n");
+
+ printer->Print("private int CalcSerializedSize() {\n");
+ printer->Indent();
+ printer->Print(
+ "int size = memoizedSerializedSize;\n"
+ "if (size != -1) return size;\n"
+ "\n"
+ "size = 0;\n");
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ scoped_ptr<FieldGeneratorBase> generator(
+ CreateFieldGeneratorInternal(descriptor_->field(i)));
+ generator->GenerateSerializedSizeCode(printer);
+ }
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print("size += ExtensionsSerializedSize;\n");
+ }
+
+ if (!use_lite_runtime()) {
+ if (descriptor_->options().message_set_wire_format()) {
+ printer->Print("size += UnknownFields.SerializedSizeAsMessageSet;\n");
+ } else {
+ printer->Print("size += UnknownFields.SerializedSize;\n");
+ }
+ }
+ printer->Print(
+ "memoizedSerializedSize = size;\n"
+ "return size;\n");
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+void MessageGenerator::GenerateSerializeOneField(
+ io::Printer* printer, const FieldDescriptor* fieldDescriptor) {
+ scoped_ptr<FieldGeneratorBase> generator(
+ CreateFieldGeneratorInternal(fieldDescriptor));
+ generator->GenerateSerializationCode(printer);
+}
+
+void MessageGenerator::GenerateSerializeOneExtensionRange(
+ io::Printer* printer, const Descriptor::ExtensionRange* extensionRange) {
+ printer->Print("extensionWriter.WriteUntil($range_end$, output);\n",
+ "range_end", SimpleItoa(extensionRange->end));
+}
+
+void MessageGenerator::GenerateParseFromMethods(io::Printer* printer) {
+ // Note: These are separate from GenerateMessageSerializationMethods()
+ // because they need to be generated even for messages that are optimized
+ // for code size.
+ map<string, string> vars;
+ vars["class_name"] = class_name();
+
+ printer->Print(
+ vars,
+ "public static $class_name$ ParseFrom(pb::ByteString data) {\n"
+ " return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();\n"
+ "}\n"
+ "public static $class_name$ ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {\n"
+ " return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();\n"
+ "}\n"
+ "public static $class_name$ ParseFrom(byte[] data) {\n"
+ " return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();\n"
+ "}\n"
+ "public static $class_name$ ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {\n"
+ " return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();\n"
+ "}\n"
+ "public static $class_name$ ParseFrom(global::System.IO.Stream input) {\n"
+ " return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();\n"
+ "}\n"
+ "public static $class_name$ ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {\n"
+ " return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();\n"
+ "}\n"
+ "public static $class_name$ ParseDelimitedFrom(global::System.IO.Stream input) {\n"
+ " return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();\n"
+ "}\n"
+ "public static $class_name$ ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {\n"
+ " return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();\n"
+ "}\n"
+ "public static $class_name$ ParseFrom(pb::ICodedInputStream input) {\n"
+ " return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();\n"
+ "}\n"
+ "public static $class_name$ ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {\n"
+ " return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();\n"
+ "}\n");
+}
+
+void MessageGenerator::GenerateBuilder(io::Printer* printer) {
+ map<string, string> vars;
+ vars["class_name"] = class_name();
+ vars["access_level"] = class_access_level();
+ vars["extendable_or_generated"] = descriptor_->extension_range_count() > 0 ?
+ "Extendable" : "Generated";
+ vars["suffix"] = runtime_suffix();
+
+ printer->Print(vars, "private $class_name$ MakeReadOnly() {\n");
+ printer->Indent();
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ scoped_ptr<FieldGeneratorBase> generator(
+ CreateFieldGeneratorInternal(descriptor_->field(i)));
+ generator->GenerateBuildingCode(printer);
+ }
+ printer->Print("return this;\n");
+ printer->Outdent();
+ printer->Print("}\n\n");
+
+ printer->Print(
+ vars,
+ "public static Builder CreateBuilder() { return new Builder(); }\n"
+ "public override Builder ToBuilder() { return CreateBuilder(this); }\n"
+ "public override Builder CreateBuilderForType() { return new Builder(); }\n"
+ "public static Builder CreateBuilder($class_name$ prototype) {\n"
+ " return new Builder(prototype);\n"
+ "}\n"
+ "\n"
+ "[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n");
+ WriteGeneratedCodeAttributes(printer);
+ printer->Print(
+ vars,
+ "$access_level$ sealed partial class Builder : pb::$extendable_or_generated$Builder$suffix$<$class_name$, Builder> {\n");
+ printer->Indent();
+ printer->Print(
+ "protected override Builder ThisBuilder {\n"
+ " get { return this; }\n"
+ "}\n");
+ GenerateCommonBuilderMethods(printer);
+ if (optimize_speed()) {
+ GenerateBuilderParsingMethods(printer);
+ }
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ scoped_ptr<FieldGeneratorBase> generator(
+ CreateFieldGeneratorInternal(descriptor_->field(i)));
+ printer->Print("\n");
+ // No field comment :(
+ generator->GenerateBuilderMembers(printer);
+ }
+
+ // oneof
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ printer->Print("\n");
+ string name = UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), false);
+ string property_name = UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), true);
+ printer->Print(
+ "public $property_name$OneofCase $property_name$Case {\n"
+ " get { return result.$name$Case_; }\n"
+ "}\n"
+ "public Builder Clear$property_name$() {\n"
+ " PrepareBuilder();\n"
+ " result.$name$_ = null;\n"
+ " result.$name$Case_ = $property_name$OneofCase.None;\n"
+ " return this;\n"
+ "}\n",
+ "name", UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), false),
+ "property_name",
+ UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), true));
+ }
+
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+void MessageGenerator::GenerateCommonBuilderMethods(io::Printer* printer) {
+ map<string, string> vars;
+ vars["class_name"] = class_name();
+ vars["full_class_name"] = full_class_name();
+ vars["suffix"] = runtime_suffix();
+
+ printer->Print(
+ vars,
+ //default constructor
+ "public Builder() {\n"
+ //Durring static initialization of message, DefaultInstance is expected to return null.
+ " result = DefaultInstance;\n"
+ " resultIsReadOnly = true;\n"
+ "}\n"
+ //clone constructor
+ "internal Builder($class_name$ cloneFrom) {\n"
+ " result = cloneFrom;\n"
+ " resultIsReadOnly = true;\n"
+ "}\n"
+ "\n"
+ "private bool resultIsReadOnly;\n"
+ "private $class_name$ result;\n"
+ "\n"
+ "private $class_name$ PrepareBuilder() {\n"
+ " if (resultIsReadOnly) {\n"
+ " $class_name$ original = result;\n"
+ " result = new $class_name$();\n"
+ " resultIsReadOnly = false;\n"
+ " MergeFrom(original);\n"
+ " }\n"
+ " return result;\n"
+ "}\n"
+ "\n"
+ "public override bool IsInitialized {\n"
+ " get { return result.IsInitialized; }\n"
+ "}\n"
+ "\n"
+ "protected override $class_name$ MessageBeingBuilt {\n"
+ " get { return PrepareBuilder(); }\n"
+ "}\n"
+ "\n");
+ //Not actually expecting that DefaultInstance would ever be null here; however, we will ensure it does not break
+ printer->Print(
+ "public override Builder Clear() {\n"
+ " result = DefaultInstance;\n"
+ " resultIsReadOnly = true;\n"
+ " return this;\n"
+ "}\n"
+ "\n"
+ "public override Builder Clone() {\n"
+ " if (resultIsReadOnly) {\n"
+ " return new Builder(result);\n"
+ " } else {\n"
+ " return new Builder().MergeFrom(result);\n"
+ " }\n"
+ "}\n"
+ "\n");
+ if (!use_lite_runtime()) {
+ printer->Print(
+ vars,
+ "public override pbd::MessageDescriptor DescriptorForType {\n"
+ " get { return $full_class_name$.Descriptor; }\n"
+ "}\n\n");
+ }
+ printer->Print(
+ vars,
+ "public override $class_name$ DefaultInstanceForType {\n"
+ " get { return $full_class_name$.DefaultInstance; }\n"
+ "}\n\n");
+
+ printer->Print(
+ vars,
+ "public override $class_name$ BuildPartial() {\n"
+ " if (resultIsReadOnly) {\n"
+ " return result;\n"
+ " }\n"
+ " resultIsReadOnly = true;\n"
+ " return result.MakeReadOnly();\n"
+ "}\n\n");
+
+ if (optimize_speed()) {
+ printer->Print(
+ vars,
+ "public override Builder MergeFrom(pb::IMessage$suffix$ other) {\n"
+ " if (other is $class_name$) {\n"
+ " return MergeFrom(($class_name$) other);\n"
+ " } else {\n"
+ " base.MergeFrom(other);\n"
+ " return this;\n"
+ " }\n"
+ "}\n\n");
+
+ printer->Print(vars,"public override Builder MergeFrom($class_name$ other) {\n");
+ // Optimization: If other is the default instance, we know none of its
+ // fields are set so we can skip the merge.
+ printer->Indent();
+ printer->Print(
+ vars,
+ "if (other == $full_class_name$.DefaultInstance) return this;\n"
+ "PrepareBuilder();\n");
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ if (!descriptor_->field(i)->containing_oneof()) {
+ scoped_ptr<FieldGeneratorBase> generator(
+ CreateFieldGeneratorInternal(descriptor_->field(i)));
+ generator->GenerateMergingCode(printer);
+ }
+ }
+
+ // Merge oneof fields
+ for (int i = 0; i < descriptor_->oneof_decl_count(); ++i) {
+ vars["name"] = UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), false);
+ vars["property_name"] = UnderscoresToCamelCase(descriptor_->oneof_decl(i)->name(), true);
+ printer->Print(vars, "switch (other.$property_name$Case) {\n");
+ printer->Indent();
+ for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
+ const FieldDescriptor* field = descriptor_->oneof_decl(i)->field(j);
+ vars["field_property_name"] = GetPropertyName(field);
+ printer->Print(
+ vars,
+ "case $property_name$OneofCase.$field_property_name$: {\n");
+ if (field->type() == FieldDescriptor::TYPE_GROUP ||
+ field->type() == FieldDescriptor::TYPE_MESSAGE) {
+ printer->Print(
+ vars,
+ " Merge$field_property_name$(other.$field_property_name$);\n");
+ } else {
+ printer->Print(
+ vars,
+ " Set$field_property_name$(other.$field_property_name$);\n");
+ }
+ printer->Print(" break;\n");
+ printer->Print("}\n");
+ }
+ printer->Print(vars, "case $property_name$OneofCase.None: { break; }\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ }
+
+ // if message type has extensions
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print(" this.MergeExtensionFields(other);\n");
+ }
+ if (!use_lite_runtime()) {
+ printer->Print("this.MergeUnknownFields(other.UnknownFields);\n");
+ }
+ printer->Print("return this;\n");
+ printer->Outdent();
+ printer->Print("}\n\n");
+ }
+
+}
+
+void MessageGenerator::GenerateBuilderParsingMethods(io::Printer* printer) {
+ printer->Print(
+ "public override Builder MergeFrom(pb::ICodedInputStream input) {\n"
+ " return MergeFrom(input, pb::ExtensionRegistry.Empty);\n"
+ "}\n\n");
+
+ printer->Print(
+ "public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {\n");
+ printer->Indent();
+ printer->Print("PrepareBuilder();\n");
+ if (!use_lite_runtime()) {
+ printer->Print("pb::UnknownFieldSet.Builder unknownFields = null;\n");
+ }
+ printer->Print(
+ "uint tag;\n"
+ "string field_name;\n"
+ "while (input.ReadTag(out tag, out field_name)) {\n");
+ printer->Indent();
+ printer->Print("if(tag == 0 && field_name != null) {\n");
+ printer->Indent();
+ //if you change from StringComparer.Ordinal, the array sort in FieldNames { get; } must also change
+ printer->Print(
+ "int field_ordinal = global::System.Array.BinarySearch(_$camel_class_name$FieldNames, field_name, global::System.StringComparer.Ordinal);\n"
+ "if(field_ordinal >= 0)\n"
+ " tag = _$camel_class_name$FieldTags[field_ordinal];\n"
+ "else {\n",
+ "camel_class_name", UnderscoresToCamelCase(class_name(), false));
+ if (!use_lite_runtime()) {
+ printer->Print(
+ " if (unknownFields == null) {\n" // First unknown field - create builder now
+ " unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);\n"
+ " }\n");
+ }
+ printer->Print(
+ " ParseUnknownField(input, $prefix$extensionRegistry, tag, field_name);\n",
+ "prefix", use_lite_runtime() ? "" : "unknownFields, ");
+ printer->Print(" continue;\n");
+ printer->Print("}\n");
+ printer->Outdent();
+ printer->Print("}\n");
+
+ printer->Print("switch (tag) {\n");
+ printer->Indent();
+ printer->Print(
+ "case 0: {\n" // 0 signals EOF / limit reached
+ " throw pb::InvalidProtocolBufferException.InvalidTag();\n"
+ "}\n"
+ "default: {\n"
+ " if (pb::WireFormat.IsEndGroupTag(tag)) {\n");
+ if (!use_lite_runtime()) {
+ printer->Print(
+ " if (unknownFields != null) {\n"
+ " this.UnknownFields = unknownFields.Build();\n"
+ " }\n");
+ }
+ printer->Print(
+ " return this;\n" // it's an endgroup tag
+ " }\n");
+ if (!use_lite_runtime()) {
+ printer->Print(
+ " if (unknownFields == null) {\n" // First unknown field - create builder now
+ " unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);\n"
+ " }\n");
+ }
+ printer->Print(
+ " ParseUnknownField(input, $prefix$extensionRegistry, tag, field_name);\n",
+ "prefix", use_lite_runtime() ? "" : "unknownFields, ");
+ printer->Print(" break;\n");
+ printer->Print("}\n");
+
+ for (int i = 0; i < fields_by_number().size(); i++) {
+ const FieldDescriptor* field = fields_by_number()[i];
+ internal::WireFormatLite::WireType wt =
+ internal::WireFormat::WireTypeForFieldType(field->type());
+ uint32 tag = internal::WireFormatLite::MakeTag(field->number(), wt);
+ if (field->is_repeated()
+ && (wt == internal::WireFormatLite::WIRETYPE_VARINT
+ || wt == internal::WireFormatLite::WIRETYPE_FIXED32
+ || wt == internal::WireFormatLite::WIRETYPE_FIXED64)) {
+ printer->Print(
+ "case $number$:\n",
+ "number",
+ SimpleItoa(
+ internal::WireFormatLite::MakeTag(
+ field->number(),
+ internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED)));
+ }
+
+ printer->Print("case $tag$: {\n", "tag", SimpleItoa(tag));
+ printer->Indent();
+ scoped_ptr<FieldGeneratorBase> generator(
+ CreateFieldGeneratorInternal(field));
+ generator->GenerateParsingCode(printer);
+ printer->Print("break;\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ }
+
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("\n");
+ if (!use_lite_runtime()) {
+ printer->Print(
+ "if (unknownFields != null) {\n"
+ " this.UnknownFields = unknownFields.Build();\n"
+ "}\n");
+ }
+ printer->Print("return this;\n");
+ printer->Outdent();
+ printer->Print("}\n\n");
+}
+
+void MessageGenerator::GenerateIsInitialized(io::Printer* printer) {
+ printer->Print("public override bool IsInitialized {\n");
+ printer->Indent();
+ printer->Print("get {\n");
+ printer->Indent();
+
+ // Check that all required fields in this message are set.
+ // TODO(kenton): We can optimize this when we switch to putting all the
+ // "has" fields into a single bitfield.
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ if (descriptor_->field(i)->is_required()) {
+ printer->Print("if (!has$property_name$) return false;\n",
+ "property_name", GetPropertyName(descriptor_->field(i)));
+ }
+ }
+
+ // Now check that all embedded messages are initialized.
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+
+ if (field->type() != FieldDescriptor::TYPE_MESSAGE ||
+ !HasRequiredFields(field->message_type()))
+ {
+ continue;
+ }
+ // TODO(jtattermusch): shouldn't we use GetPropertyName here?
+ string propertyName = UnderscoresToPascalCase(GetFieldName(field));
+ if (field->is_repeated())
+ {
+ printer->Print(
+ "foreach ($class_name$ element in $property_name$List) {\n"
+ " if (!element.IsInitialized) return false;\n"
+ "}\n",
+ "class_name", GetClassName(field->message_type()),
+ "property_name", propertyName);
+ }
+ else if (field->is_optional())
+ {
+ printer->Print(
+ "if (Has$property_name$) {\n"
+ " if (!$property_name$.IsInitialized) return false;\n"
+ "}\n",
+ "property_name", propertyName);
+ }
+ else
+ {
+ printer->Print(
+ "if (!$property_name$.IsInitialized) return false;\n",
+ "property_name", propertyName);
+ }
+ }
+
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print("if (!ExtensionsAreInitialized) return false;\n");
+ }
+ printer->Print("return true;\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("\n");
+}
+
+void MessageGenerator::GenerateExtensionRegistrationCode(io::Printer* printer) {
+ for (int i = 0; i < descriptor_->extension_count(); i++) {
+ ExtensionGenerator extensionGenerator(descriptor_->extension(i));
+ extensionGenerator.GenerateExtensionRegistrationCode(printer);
+ }
+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
+ MessageGenerator messageGenerator(descriptor_->nested_type(i));
+ messageGenerator.GenerateExtensionRegistrationCode(printer);
+ }
+}
+
+int MessageGenerator::GetFieldOrdinal(const FieldDescriptor* descriptor) {
+ for (int i = 0; i < field_names().size(); i++) {
+ if (field_names()[i] == descriptor->name()) {
+ return i;
+ }
+ }
+ GOOGLE_LOG(DFATAL)<< "Could not find ordinal for field " << descriptor->name();
+ return -1;
+}
+
+FieldGeneratorBase* MessageGenerator::CreateFieldGeneratorInternal(
+ const FieldDescriptor* descriptor) {
+ return CreateFieldGenerator(descriptor, GetFieldOrdinal(descriptor));
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_message.h b/src/google/protobuf/compiler/csharp/csharp_message.h
new file mode 100644
index 00000000..ebe58618
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_message.h
@@ -0,0 +1,98 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_MESSAGE_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_MESSAGE_H__
+
+#include <string>
+#include <vector>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_source_generator_base.h>
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class Writer;
+class FieldGeneratorBase;
+
+class MessageGenerator : public SourceGeneratorBase {
+ public:
+ MessageGenerator(const Descriptor* descriptor);
+ ~MessageGenerator();
+
+ void GenerateStaticVariables(io::Printer* printer);
+ void GenerateStaticVariableInitializers(io::Printer* printer);
+ void GenerateExtensionRegistrationCode(io::Printer* printer);
+ void Generate(io::Printer* printer);
+
+ private:
+ const Descriptor* descriptor_;
+ std::vector<std::string> field_names_;
+ std::vector<const FieldDescriptor*> fields_by_number_;
+
+ void GenerateLiteRuntimeMethods(io::Printer* printer);
+ void GenerateMessageSerializationMethods(io::Printer* printer);
+ void GenerateSerializeOneField(io::Printer* printer,
+ const FieldDescriptor* fieldDescriptor);
+ void GenerateSerializeOneExtensionRange(
+ io::Printer* printer, const Descriptor::ExtensionRange* extendsionRange);
+ void GenerateParseFromMethods(io::Printer* printer);
+ void GenerateBuilder(io::Printer* printer);
+ void GenerateCommonBuilderMethods(io::Printer* printer);
+ void GenerateBuilderParsingMethods(io::Printer* printer);
+ void GenerateIsInitialized(io::Printer* printer);
+
+ int GetFieldOrdinal(const FieldDescriptor* descriptor);
+ FieldGeneratorBase* CreateFieldGeneratorInternal(
+ const FieldDescriptor* descriptor);
+
+ std::string class_name();
+ std::string full_class_name();
+
+ // field names sorted alphabetically
+ const std::vector<std::string>& field_names();
+
+ // field descriptors sorted by number
+ const std::vector<const FieldDescriptor*>& fields_by_number();
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_MESSAGE_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_message_field.cc b/src/google/protobuf/compiler/csharp/csharp_message_field.cc
new file mode 100644
index 00000000..50eb9df6
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_message_field.cc
@@ -0,0 +1,342 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+#include <google/protobuf/stubs/strutil.h>
+
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+#include <google/protobuf/compiler/csharp/csharp_message_field.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+MessageFieldGenerator::MessageFieldGenerator(const FieldDescriptor* descriptor,
+ int fieldOrdinal)
+ : FieldGeneratorBase(descriptor, fieldOrdinal) {
+ variables_["has_property_check"] = "has" + property_name();
+ variables_["message_or_group"] = message_or_group();
+}
+
+MessageFieldGenerator::~MessageFieldGenerator() {
+
+}
+
+void MessageFieldGenerator::GenerateMembers(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "private bool has$property_name$;\n"
+ "private $type_name$ $name$_;\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public bool Has$property_name$ {\n"
+ " get { return has$property_name$; }\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ $property_name$ {\n"
+ " get { return $name$_ ?? $default_value$; }\n"
+ "}\n");
+}
+
+void MessageFieldGenerator::GenerateBuilderMembers(io::Printer* printer) {
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public bool Has$property_name$ {\n"
+ " get { return result.has$property_name$; }\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ $property_name$ {\n"
+ " get { return result.$property_name$; }\n"
+ " set { Set$property_name$(value); }\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Set$property_name$($type_name$ value) {\n");
+ AddNullCheck(printer);
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.has$property_name$ = true;\n"
+ " result.$name$_ = value;\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Set$property_name$($type_name$.Builder builderForValue) {\n");
+ AddNullCheck(printer, "builderForValue");
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.has$property_name$ = true;\n"
+ " result.$name$_ = builderForValue.Build();\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Merge$property_name$($type_name$ value) {\n");
+ AddNullCheck(printer);
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " if (result.has$property_name$ &&\n"
+ " result.$name$_ != $default_value$) {\n"
+ " result.$name$_ = $type_name$.CreateBuilder(result.$name$_).MergeFrom(value).BuildPartial();\n"
+ " } else {\n"
+ " result.$name$_ = value;\n"
+ " }\n"
+ " result.has$property_name$ = true;\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Clear$property_name$() {\n"
+ " PrepareBuilder();\n"
+ " result.has$property_name$ = false;\n"
+ " result.$name$_ = null;\n"
+ " return this;\n"
+ "}\n");
+}
+
+void MessageFieldGenerator::GenerateMergingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if (other.Has$property_name$) {\n"
+ " Merge$property_name$(other.$property_name$);\n"
+ "}\n");
+}
+
+void MessageFieldGenerator::GenerateBuildingCode(io::Printer* printer) {
+ // Nothing to do for singular fields
+}
+
+void MessageFieldGenerator::GenerateParsingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "$type_name$.Builder subBuilder = $type_name$.CreateBuilder();\n"
+ "if (result.has$property_name$) {\n"
+ " subBuilder.MergeFrom($property_name$);\n"
+ "}\n");
+
+ if (descriptor_->type() == FieldDescriptor::TYPE_GROUP) {
+ printer->Print(
+ variables_,
+ "input.ReadGroup($number$, subBuilder, extensionRegistry);\n");
+ } else {
+ printer->Print("input.ReadMessage(subBuilder, extensionRegistry);\n");
+ }
+ printer->Print(
+ variables_,
+ "$property_name$ = subBuilder.BuildPartial();\n");
+}
+
+void MessageFieldGenerator::GenerateSerializationCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if ($has_property_check$) {\n"
+ " output.Write$message_or_group$($number$, field_names[$field_ordinal$], $property_name$);\n"
+ "}\n");
+}
+
+void MessageFieldGenerator::GenerateSerializedSizeCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if ($has_property_check$) {\n"
+ " size += pb::CodedOutputStream.Compute$message_or_group$Size($number$, $property_name$);\n"
+ "}\n");
+}
+
+void MessageFieldGenerator::WriteHash(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if (has$property_name$) hash ^= $name$_.GetHashCode();\n");
+}
+void MessageFieldGenerator::WriteEquals(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if (has$property_name$ != other.has$property_name$ || (has$property_name$ && !$name$_.Equals(other.$name$_))) return false;\n");
+}
+void MessageFieldGenerator::WriteToString(io::Printer* printer) {
+ variables_["field_name"] = GetFieldName(descriptor_);
+ printer->Print(
+ variables_,
+ "PrintField(\"$field_name$\", has$property_name$, $name$_, writer);\n");
+}
+
+MessageOneofFieldGenerator::MessageOneofFieldGenerator(const FieldDescriptor* descriptor,
+ int fieldOrdinal)
+ : MessageFieldGenerator(descriptor, fieldOrdinal) {
+ SetCommonOneofFieldVariables(&variables_);
+}
+
+MessageOneofFieldGenerator::~MessageOneofFieldGenerator() {
+
+}
+
+void MessageOneofFieldGenerator::GenerateMembers(io::Printer* printer) {
+ if (SupportFieldPresence(descriptor_->file())) {
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public bool Has$property_name$ {\n"
+ " get { return $has_property_check$; }\n"
+ "}\n");
+ }
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ $property_name$ {\n"
+ " get { return $has_property_check$ ? ($type_name$) $oneof_name$_ : $default_value$; }\n"
+ "}\n");
+}
+
+void MessageOneofFieldGenerator::GenerateBuilderMembers(io::Printer* printer) {
+ if (SupportFieldPresence(descriptor_->file())) {
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public bool Has$property_name$ {\n"
+ " get { return result.$has_property_check$; }\n"
+ "}\n");
+ }
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ $property_name$ {\n"
+ " get { return result.$has_property_check$ ? ($type_name$) result.$oneof_name$_ : $default_value$; }\n"
+ " set { Set$property_name$(value); }\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Set$property_name$($type_name$ value) {\n");
+ AddNullCheck(printer);
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$oneof_name$Case_ = $oneof_property_name$OneofCase.$property_name$;\n"
+ " result.$oneof_name$_ = value;\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Set$property_name$($type_name$.Builder builderForValue) {\n");
+ AddNullCheck(printer, "builderForValue");
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$oneof_name$Case_ = $oneof_property_name$OneofCase.$property_name$;\n"
+ " result.$oneof_name$_ = builderForValue.Build();\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Merge$property_name$($type_name$ value) {\n");
+ AddNullCheck(printer);
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " if (result.$has_property_check$ &&\n"
+ " result.$property_name$ != $default_value$) {\n"
+ " result.$oneof_name$_ = $type_name$.CreateBuilder(result.$property_name$).MergeFrom(value).BuildPartial();\n"
+ " } else {\n"
+ " result.$oneof_name$_ = value;\n"
+ " }\n"
+ " result.$oneof_name$Case_ = $oneof_property_name$OneofCase.$property_name$;\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Clear$property_name$() {\n"
+ " if (result.$has_property_check$) {\n"
+ " PrepareBuilder();\n"
+ " result.$oneof_name$Case_ = $oneof_property_name$OneofCase.None;\n"
+ " result.$oneof_name$_ = null;\n"
+ " }\n"
+ " return this;\n"
+ "}\n");
+}
+
+void MessageOneofFieldGenerator::GenerateParsingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "$type_name$.Builder subBuilder = $type_name$.CreateBuilder();\n"
+ "if (result.$has_property_check$) {\n"
+ " subBuilder.MergeFrom($property_name$);\n"
+ "}\n");
+
+ if (descriptor_->type() == FieldDescriptor::TYPE_GROUP) {
+ printer->Print(
+ variables_,
+ "input.ReadGroup($number$, subBuilder, extensionRegistry);\n");
+ } else {
+ printer->Print("input.ReadMessage(subBuilder, extensionRegistry);\n");
+ }
+ printer->Print(
+ variables_,
+ "result.$oneof_name$_ = subBuilder.BuildPartial();\n"
+ "result.$oneof_name$Case_ = $oneof_property_name$OneofCase.$property_name$;\n");
+}
+
+void MessageOneofFieldGenerator::WriteEquals(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if (!$property_name$.Equals(other.$property_name$)) return false;\n");
+}
+void MessageOneofFieldGenerator::WriteToString(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "PrintField(\"$descriptor_name$\", $has_property_check$, $oneof_name$_, writer);\n");
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_message_field.h b/src/google/protobuf/compiler/csharp/csharp_message_field.h
new file mode 100644
index 00000000..d820908c
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_message_field.h
@@ -0,0 +1,88 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_MESSAGE_FIELD_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_MESSAGE_FIELD_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class Writer;
+
+class MessageFieldGenerator : public FieldGeneratorBase {
+ public:
+ MessageFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
+ ~MessageFieldGenerator();
+
+ virtual void GenerateMembers(io::Printer* printer);
+ virtual void GenerateBuilderMembers(io::Printer* printer);
+ virtual void GenerateMergingCode(io::Printer* printer);
+ virtual void GenerateBuildingCode(io::Printer* printer);
+ virtual void GenerateParsingCode(io::Printer* printer);
+ virtual void GenerateSerializationCode(io::Printer* printer);
+ virtual void GenerateSerializedSizeCode(io::Printer* printer);
+
+ virtual void WriteHash(io::Printer* printer);
+ virtual void WriteEquals(io::Printer* printer);
+ virtual void WriteToString(io::Printer* printer);
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator);
+};
+
+class MessageOneofFieldGenerator : public MessageFieldGenerator {
+ public:
+ MessageOneofFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
+ ~MessageOneofFieldGenerator();
+
+ virtual void GenerateMembers(io::Printer* printer);
+ virtual void GenerateBuilderMembers(io::Printer* printer);
+ virtual void WriteEquals(io::Printer* printer);
+ virtual void WriteToString(io::Printer* printer);
+ virtual void GenerateParsingCode(io::Printer* printer);
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageOneofFieldGenerator);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_MESSAGE_FIELD_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc b/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc
new file mode 100644
index 00000000..652eb6b9
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc
@@ -0,0 +1,283 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+#include <google/protobuf/stubs/strutil.h>
+
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+#include <google/protobuf/compiler/csharp/csharp_primitive_field.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+PrimitiveFieldGenerator::PrimitiveFieldGenerator(
+ const FieldDescriptor* descriptor, int fieldOrdinal)
+ : FieldGeneratorBase(descriptor, fieldOrdinal) {
+}
+
+PrimitiveFieldGenerator::~PrimitiveFieldGenerator() {
+
+}
+
+void PrimitiveFieldGenerator::GenerateMembers(io::Printer* printer) {
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(variables_, "private bool has$property_name$;\n");
+ }
+ printer->Print(
+ variables_,
+ "private $type_name$ $name_def_message$;\n");
+ AddDeprecatedFlag(printer);
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(
+ variables_,
+ "public bool Has$property_name$ {\n"
+ " get { return has$property_name$; }\n"
+ "}\n");
+ }
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ $property_name$ {\n"
+ " get { return $name$_; }\n"
+ "}\n");
+}
+
+void PrimitiveFieldGenerator::GenerateBuilderMembers(io::Printer* printer) {
+ AddDeprecatedFlag(printer);
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(
+ variables_,
+ "public bool Has$property_name$ {\n"
+ " get { return result.has$property_name$; }\n"
+ "}\n");
+ }
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ $property_name$ {\n"
+ " get { return result.$property_name$; }\n"
+ " set { Set$property_name$(value); }\n"
+ "}\n");
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public Builder Set$property_name$($type_name$ value) {\n");
+ AddNullCheck(printer);
+ printer->Print(" PrepareBuilder();\n");
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(
+ variables_,
+ " result.has$property_name$ = true;\n");
+ }
+ printer->Print(
+ variables_,
+ " result.$name$_ = value;\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Clear$property_name$() {\n"
+ " PrepareBuilder();\n");
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(
+ variables_,
+ " result.has$property_name$ = false;\n");
+ }
+ printer->Print(
+ variables_,
+ " result.$name$_ = $default_value$;\n"
+ " return this;\n"
+ "}\n");
+}
+
+void PrimitiveFieldGenerator::GenerateMergingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if ($other_has_property_check$) {\n"
+ " $property_name$ = other.$property_name$;\n"
+ "}\n");
+}
+
+void PrimitiveFieldGenerator::GenerateBuildingCode(io::Printer* printer) {
+ // Nothing to do here for primitive types
+}
+
+void PrimitiveFieldGenerator::GenerateParsingCode(io::Printer* printer) {
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(
+ variables_,
+ "result.has$property_name$ = input.Read$capitalized_type_name$(ref result.$name$_);\n");
+ } else {
+ printer->Print(
+ variables_,
+ "input.Read$capitalized_type_name$(ref result.$name$_);\n");
+ }
+}
+
+void PrimitiveFieldGenerator::GenerateSerializationCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if ($has_property_check$) {\n"
+ " output.Write$capitalized_type_name$($number$, field_names[$field_ordinal$], $property_name$);\n"
+ "}\n");
+}
+
+void PrimitiveFieldGenerator::GenerateSerializedSizeCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if ($has_property_check$) {\n"
+ " size += pb::CodedOutputStream.Compute$capitalized_type_name$Size($number$, $property_name$);\n"
+ "}\n");
+}
+
+void PrimitiveFieldGenerator::WriteHash(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if ($has_property_check$) {\n"
+ " hash ^= $name$_.GetHashCode();\n"
+ "}\n");
+}
+void PrimitiveFieldGenerator::WriteEquals(io::Printer* printer) {
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(
+ variables_,
+ "if (has$property_name$ != other.has$property_name$ || (has$property_name$ && !$name$_.Equals(other.$name$_))) return false;\n");
+ } else {
+ printer->Print(
+ variables_,
+ "if (!$name$_.Equals(other.$name$_)) return false;\n");
+ }
+}
+void PrimitiveFieldGenerator::WriteToString(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "PrintField(\"$descriptor_name$\", $has_property_check$, $name$_, writer);\n");
+}
+
+PrimitiveOneofFieldGenerator::PrimitiveOneofFieldGenerator(
+ const FieldDescriptor* descriptor, int fieldOrdinal)
+ : PrimitiveFieldGenerator(descriptor, fieldOrdinal) {
+ SetCommonOneofFieldVariables(&variables_);
+}
+
+PrimitiveOneofFieldGenerator::~PrimitiveOneofFieldGenerator() {
+}
+
+void PrimitiveOneofFieldGenerator::GenerateMembers(io::Printer* printer) {
+ AddDeprecatedFlag(printer);
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(
+ variables_,
+ "public bool Has$property_name$ {\n"
+ " get { return $has_property_check$; }\n"
+ "}\n");
+ }
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ $property_name$ {\n"
+ " get { return $has_property_check$ ? ($type_name$) $oneof_name$_ : $default_value$; }\n"
+ "}\n");
+}
+
+void PrimitiveOneofFieldGenerator::GenerateBuilderMembers(io::Printer* printer) {
+ AddDeprecatedFlag(printer);
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(
+ variables_,
+ "public bool Has$property_name$ {\n"
+ " get { return result.$has_property_check$; }\n"
+ "}\n");
+ }
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ $property_name$ {\n"
+ " get { return result.$has_property_check$ ? ($type_name$) result.$oneof_name$_ : $default_value$; }\n"
+ " set { Set$property_name$(value); }\n"
+ "}\n");
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public Builder Set$property_name$($type_name$ value) {\n");
+ AddNullCheck(printer);
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$oneof_name$_ = value;\n"
+ " result.$oneof_name$Case_ = $oneof_property_name$OneofCase.$property_name$;\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Clear$property_name$() {\n"
+ " PrepareBuilder();\n"
+ " if (result.$has_property_check$) {\n"
+ " result.$oneof_name$Case_ = $oneof_property_name$OneofCase.None;\n"
+ " }\n"
+ " return this;\n"
+ "}\n");
+}
+
+void PrimitiveOneofFieldGenerator::WriteEquals(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if (!$property_name$.Equals(other.$property_name$)) return false;\n");
+}
+void PrimitiveOneofFieldGenerator::WriteToString(io::Printer* printer) {
+ printer->Print(variables_,
+ "PrintField(\"$descriptor_name$\", $has_property_check$, $oneof_name$_, writer);\n");
+}
+
+void PrimitiveOneofFieldGenerator::GenerateParsingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "$type_name$ value = $default_value$;\n"
+ "if (input.Read$capitalized_type_name$(ref value)) {\n"
+ " result.$oneof_name$_ = value;\n"
+ " result.$oneof_name$Case_ = $oneof_property_name$OneofCase.$property_name$;\n"
+ "}\n");
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_primitive_field.h b/src/google/protobuf/compiler/csharp/csharp_primitive_field.h
new file mode 100644
index 00000000..8a2d5020
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_primitive_field.h
@@ -0,0 +1,88 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_PRIMITIVE_FIELD_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_PRIMITIVE_FIELD_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class Writer;
+
+class PrimitiveFieldGenerator : public FieldGeneratorBase {
+ public:
+ PrimitiveFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
+ ~PrimitiveFieldGenerator();
+
+ virtual void GenerateMembers(io::Printer* printer);
+ virtual void GenerateBuilderMembers(io::Printer* printer);
+ virtual void GenerateMergingCode(io::Printer* printer);
+ virtual void GenerateBuildingCode(io::Printer* printer);
+ virtual void GenerateParsingCode(io::Printer* printer);
+ virtual void GenerateSerializationCode(io::Printer* printer);
+ virtual void GenerateSerializedSizeCode(io::Printer* printer);
+
+ virtual void WriteHash(io::Printer* printer);
+ virtual void WriteEquals(io::Printer* printer);
+ virtual void WriteToString(io::Printer* printer);
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveFieldGenerator);
+};
+
+class PrimitiveOneofFieldGenerator : public PrimitiveFieldGenerator {
+ public:
+ PrimitiveOneofFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
+ ~PrimitiveOneofFieldGenerator();
+
+ virtual void GenerateMembers(io::Printer* printer);
+ virtual void GenerateBuilderMembers(io::Printer* printer);
+ virtual void WriteEquals(io::Printer* printer);
+ virtual void WriteToString(io::Printer* printer);
+ virtual void GenerateParsingCode(io::Printer* printer);
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveOneofFieldGenerator);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_PRIMITIVE_FIELD_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc b/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc
new file mode 100644
index 00000000..f5ebcfb1
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc
@@ -0,0 +1,250 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+#include <google/protobuf/wire_format.h>
+
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+#include <google/protobuf/compiler/csharp/csharp_repeated_enum_field.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+RepeatedEnumFieldGenerator::RepeatedEnumFieldGenerator(
+ const FieldDescriptor* descriptor, int fieldOrdinal)
+ : FieldGeneratorBase(descriptor, fieldOrdinal) {
+}
+
+RepeatedEnumFieldGenerator::~RepeatedEnumFieldGenerator() {
+
+}
+
+void RepeatedEnumFieldGenerator::GenerateMembers(io::Printer* printer) {
+ if (descriptor_->is_packed() && optimize_speed()) {
+ printer->Print(variables_, "private int $name$MemoizedSerializedSize;\n");
+ }
+ printer->Print(variables_,
+ "private pbc::PopsicleList<$type_name$> $name$_ = new pbc::PopsicleList<$type_name$>();\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public scg::IList<$type_name$> $property_name$List {\n"
+ " get { return pbc::Lists.AsReadOnly($name$_); }\n"
+ "}\n");
+
+ // TODO(jonskeet): Redundant API calls? Possibly - include for portability though. Maybe create an option.
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public int $property_name$Count {\n"
+ " get { return $name$_.Count; }\n"
+ "}\n");
+
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ Get$property_name$(int index) {\n"
+ " return $name$_[index];\n"
+ "}\n");
+}
+
+void RepeatedEnumFieldGenerator::GenerateBuilderMembers(io::Printer* printer) {
+ // Note: We can return the original list here, because we make it unmodifiable when we build
+ // We return it via IPopsicleList so that collection initializers work more pleasantly.
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public pbc::IPopsicleList<$type_name$> $property_name$List {\n"
+ " get { return PrepareBuilder().$name$_; }\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public int $property_name$Count {\n"
+ " get { return result.$property_name$Count; }\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ Get$property_name$(int index) {\n"
+ " return result.Get$property_name$(index);\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Set$property_name$(int index, $type_name$ value) {\n");
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$name$_[index] = value;\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(variables_,
+ "public Builder Add$property_name$($type_name$ value) {\n");
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$name$_.Add(value);\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder AddRange$property_name$(scg::IEnumerable<$type_name$> values) {\n"
+ " PrepareBuilder();\n"
+ " result.$name$_.Add(values);\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Clear$property_name$() {\n"
+ " PrepareBuilder();\n"
+ " result.$name$_.Clear();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void RepeatedEnumFieldGenerator::GenerateMergingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if (other.$name$_.Count != 0) {\n"
+ " result.$name$_.Add(other.$name$_);\n"
+ "}\n");
+}
+
+void RepeatedEnumFieldGenerator::GenerateBuildingCode(io::Printer* printer) {
+ printer->Print(variables_, "$name$_.MakeReadOnly();\n");
+}
+
+void RepeatedEnumFieldGenerator::GenerateParsingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "scg::ICollection<object> unknownItems;\n"
+ "input.ReadEnumArray<$type_name$>(tag, field_name, result.$name$_, out unknownItems);\n");
+ if (!use_lite_runtime()) {
+ printer->Print(
+ variables_,
+ "if (unknownItems != null) {\n"
+ " if (unknownFields == null) {\n"
+ " unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);\n"
+ " }\n"
+ " foreach (object rawValue in unknownItems)\n"
+ " if (rawValue is int)\n"
+ " unknownFields.MergeVarintField($number$, (ulong)(int)rawValue);\n"
+ "}\n");
+ }
+}
+
+void RepeatedEnumFieldGenerator::GenerateSerializationCode(io::Printer* printer) {
+ printer->Print(variables_, "if ($name$_.Count > 0) {\n");
+ printer->Indent();
+ if (descriptor_->is_packed()) {
+ printer->Print(
+ variables_,
+ "output.WritePackedEnumArray($number$, field_names[$field_ordinal$], $name$MemoizedSerializedSize, $name$_);\n");
+ } else {
+ printer->Print(variables_,
+ "output.WriteEnumArray($number$, field_names[$field_ordinal$], $name$_);\n");
+ }
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+void RepeatedEnumFieldGenerator::GenerateSerializedSizeCode(io::Printer* printer) {
+ printer->Print("{\n");
+ printer->Indent();
+ printer->Print(
+ variables_,
+ "int dataSize = 0;\n"
+ "if ($name$_.Count > 0) {\n");
+ printer->Indent();
+ printer->Print(
+ variables_,
+ "foreach ($type_name$ element in $name$_) {\n"
+ " dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);\n"
+ "}\n"
+ "size += dataSize;\n");
+ int tagSize = internal::WireFormat::TagSize(descriptor_->number(), descriptor_->type());
+ if (descriptor_->is_packed()) {
+ printer->Print(
+ "size += $tag_size$;\n"
+ "size += pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);\n",
+ "tag_size", SimpleItoa(tagSize));
+ } else {
+ printer->Print(
+ "size += $tag_size$ * $name$_.Count;\n",
+ "tag_size", SimpleItoa(tagSize), "name", name());
+ }
+ printer->Outdent();
+ printer->Print("}\n");
+ // cache the data size for packed fields.
+ if (descriptor_->is_packed()) {
+ printer->Print(variables_,
+ "$name$MemoizedSerializedSize = dataSize;\n");
+ }
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+void RepeatedEnumFieldGenerator::WriteHash(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "foreach($type_name$ i in $name$_)\n"
+ " hash ^= i.GetHashCode();\n");
+}
+
+void RepeatedEnumFieldGenerator::WriteEquals(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if($name$_.Count != other.$name$_.Count) return false;\n"
+ "for(int ix=0; ix < $name$_.Count; ix++)\n"
+ " if(!$name$_[ix].Equals(other.$name$_[ix])) return false;\n");
+}
+
+void RepeatedEnumFieldGenerator::WriteToString(io::Printer* printer) {
+ printer->Print(variables_,
+ "PrintField(\"$descriptor_name$\", $name$_, writer);\n");
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h b/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h
new file mode 100644
index 00000000..68c3d6c9
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h
@@ -0,0 +1,73 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_ENUM_FIELD_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_ENUM_FIELD_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class Writer;
+
+class RepeatedEnumFieldGenerator : public FieldGeneratorBase {
+ public:
+ RepeatedEnumFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
+ ~RepeatedEnumFieldGenerator();
+
+ virtual void GenerateMembers(io::Printer* printer);
+ virtual void GenerateBuilderMembers(io::Printer* printer);
+ virtual void GenerateMergingCode(io::Printer* printer);
+ virtual void GenerateBuildingCode(io::Printer* printer);
+ virtual void GenerateParsingCode(io::Printer* printer);
+ virtual void GenerateSerializationCode(io::Printer* printer);
+ virtual void GenerateSerializedSizeCode(io::Printer* printer);
+
+ virtual void WriteHash(io::Printer* printer);
+ virtual void WriteEquals(io::Printer* printer);
+ virtual void WriteToString(io::Printer* printer);
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedEnumFieldGenerator);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_ENUM_FIELD_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc b/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc
new file mode 100644
index 00000000..2ae1d579
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc
@@ -0,0 +1,227 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+#include <google/protobuf/compiler/csharp/csharp_repeated_message_field.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+RepeatedMessageFieldGenerator::RepeatedMessageFieldGenerator(
+ const FieldDescriptor* descriptor, int fieldOrdinal)
+ : FieldGeneratorBase(descriptor, fieldOrdinal) {
+ variables_["message_or_group"] = message_or_group();
+}
+
+RepeatedMessageFieldGenerator::~RepeatedMessageFieldGenerator() {
+
+}
+
+void RepeatedMessageFieldGenerator::GenerateMembers(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "private pbc::PopsicleList<$type_name$> $name$_ = new pbc::PopsicleList<$type_name$>();\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public scg::IList<$type_name$> $property_name$List {\n"
+ " get { return $name$_; }\n"
+ "}\n");
+
+ // TODO(jonskeet): Redundant API calls? Possibly - include for portability though. Maybe create an option.
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public int $property_name$Count {\n"
+ " get { return $name$_.Count; }\n"
+ "}\n");
+
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ Get$property_name$(int index) {\n"
+ " return $name$_[index];\n"
+ "}\n");
+}
+
+void RepeatedMessageFieldGenerator::GenerateBuilderMembers(io::Printer* printer) {
+ // Note: We can return the original list here, because we make it unmodifiable when we build
+ // We return it via IPopsicleList so that collection initializers work more pleasantly.
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public pbc::IPopsicleList<$type_name$> $property_name$List {\n"
+ " get { return PrepareBuilder().$name$_; }\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public int $property_name$Count {\n"
+ " get { return result.$property_name$Count; }\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ Get$property_name$(int index) {\n"
+ " return result.Get$property_name$(index);\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Set$property_name$(int index, $type_name$ value) {\n");
+ AddNullCheck(printer);
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$name$_[index] = value;\n"
+ " return this;\n"
+ "}\n");
+ // Extra overload for builder (just on messages)
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Set$property_name$(int index, $type_name$.Builder builderForValue) {\n");
+ AddNullCheck(printer, "builderForValue");
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$name$_[index] = builderForValue.Build();\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Add$property_name$($type_name$ value) {\n");
+ AddNullCheck(printer);
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$name$_.Add(value);\n"
+ " return this;\n"
+ "}\n");
+ // Extra overload for builder (just on messages)
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Add$property_name$($type_name$.Builder builderForValue) {\n");
+ AddNullCheck(printer, "builderForValue");
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$name$_.Add(builderForValue.Build());\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder AddRange$property_name$(scg::IEnumerable<$type_name$> values) {\n"
+ " PrepareBuilder();\n"
+ " result.$name$_.Add(values);\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Clear$property_name$() {\n"
+ " PrepareBuilder();\n"
+ " result.$name$_.Clear();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void RepeatedMessageFieldGenerator::GenerateMergingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if (other.$name$_.Count != 0) {\n"
+ " result.$name$_.Add(other.$name$_);\n"
+ "}\n");
+}
+
+void RepeatedMessageFieldGenerator::GenerateBuildingCode(io::Printer* printer) {
+ printer->Print(variables_, "$name$_.MakeReadOnly();\n");
+}
+
+void RepeatedMessageFieldGenerator::GenerateParsingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "input.Read$message_or_group$Array(tag, field_name, result.$name$_, $type_name$.DefaultInstance, extensionRegistry);\n");
+}
+
+void RepeatedMessageFieldGenerator::GenerateSerializationCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if ($name$_.Count > 0) {\n"
+ " output.Write$message_or_group$Array($number$, field_names[$field_ordinal$], $name$_);\n"
+ "}\n");
+}
+
+void RepeatedMessageFieldGenerator::GenerateSerializedSizeCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "foreach ($type_name$ element in $property_name$List) {\n"
+ " size += pb::CodedOutputStream.Compute$message_or_group$Size($number$, element);\n"
+ "}\n");
+}
+
+void RepeatedMessageFieldGenerator::WriteHash(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "foreach($type_name$ i in $name$_)\n"
+ " hash ^= i.GetHashCode();\n");
+}
+void RepeatedMessageFieldGenerator::WriteEquals(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if($name$_.Count != other.$name$_.Count) return false;\n"
+ "for(int ix=0; ix < $name$_.Count; ix++)\n"
+ " if(!$name$_[ix].Equals(other.$name$_[ix])) return false;\n");
+}
+void RepeatedMessageFieldGenerator::WriteToString(io::Printer* printer) {
+ variables_["field_name"] = GetFieldName(descriptor_);
+ printer->Print(
+ variables_,
+ "PrintField(\"$field_name$\", $name$_, writer);\n");
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h b/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h
new file mode 100644
index 00000000..9db76939
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h
@@ -0,0 +1,73 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_MESSAGE_FIELD_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_MESSAGE_FIELD_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class Writer;
+
+class RepeatedMessageFieldGenerator : public FieldGeneratorBase {
+ public:
+ RepeatedMessageFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
+ ~RepeatedMessageFieldGenerator();
+
+ virtual void GenerateMembers(io::Printer* printer);
+ virtual void GenerateBuilderMembers(io::Printer* printer);
+ virtual void GenerateMergingCode(io::Printer* printer);
+ virtual void GenerateBuildingCode(io::Printer* printer);
+ virtual void GenerateParsingCode(io::Printer* printer);
+ virtual void GenerateSerializationCode(io::Printer* printer);
+ virtual void GenerateSerializedSizeCode(io::Printer* printer);
+
+ virtual void WriteHash(io::Printer* printer);
+ virtual void WriteEquals(io::Printer* printer);
+ virtual void WriteToString(io::Printer* printer);
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedMessageFieldGenerator);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_MESSAGE_FIELD_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc b/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc
new file mode 100644
index 00000000..e27458bb
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc
@@ -0,0 +1,239 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+#include <google/protobuf/wire_format.h>
+
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+#include <google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+RepeatedPrimitiveFieldGenerator::RepeatedPrimitiveFieldGenerator(
+ const FieldDescriptor* descriptor, int fieldOrdinal)
+ : FieldGeneratorBase(descriptor, fieldOrdinal) {
+}
+
+RepeatedPrimitiveFieldGenerator::~RepeatedPrimitiveFieldGenerator() {
+
+}
+
+void RepeatedPrimitiveFieldGenerator::GenerateMembers(io::Printer* printer) {
+ if (descriptor_->is_packed() && optimize_speed()) {
+ printer->Print(variables_, "private int $name$MemoizedSerializedSize;\n");
+ }
+ printer->Print(variables_,
+ "private pbc::PopsicleList<$type_name$> $name$_ = new pbc::PopsicleList<$type_name$>();\n");
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public scg::IList<$type_name$> $property_name$List {\n"
+ " get { return pbc::Lists.AsReadOnly($name$_); }\n"
+ "}\n");
+
+ // TODO(jonskeet): Redundant API calls? Possibly - include for portability though. Maybe create an option.
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public int $property_name$Count {\n"
+ " get { return $name$_.Count; }\n"
+ "}\n");
+
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ Get$property_name$(int index) {\n"
+ " return $name$_[index];\n"
+ "}\n");
+}
+
+void RepeatedPrimitiveFieldGenerator::GenerateBuilderMembers(io::Printer* printer) {
+ // Note: We can return the original list here, because we make it unmodifiable when we build
+ // We return it via IPopsicleList so that collection initializers work more pleasantly.
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public pbc::IPopsicleList<$type_name$> $property_name$List {\n"
+ " get { return PrepareBuilder().$name$_; }\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public int $property_name$Count {\n"
+ " get { return result.$property_name$Count; }\n"
+ "}\n");
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public $type_name$ Get$property_name$(int index) {\n"
+ " return result.Get$property_name$(index);\n"
+ "}\n");
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public Builder Set$property_name$(int index, $type_name$ value) {\n");
+ AddNullCheck(printer);
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$name$_[index] = value;\n"
+ " return this;\n"
+ "}\n");
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public Builder Add$property_name$($type_name$ value) {\n");
+ AddNullCheck(printer);
+ printer->Print(
+ variables_,
+ " PrepareBuilder();\n"
+ " result.$name$_.Add(value);\n"
+ " return this;\n"
+ "}\n");
+ AddPublicMemberAttributes(printer);
+ printer->Print(
+ variables_,
+ "public Builder AddRange$property_name$(scg::IEnumerable<$type_name$> values) {\n"
+ " PrepareBuilder();\n"
+ " result.$name$_.Add(values);\n"
+ " return this;\n"
+ "}\n");
+ AddDeprecatedFlag(printer);
+ printer->Print(
+ variables_,
+ "public Builder Clear$property_name$() {\n"
+ " PrepareBuilder();\n"
+ " result.$name$_.Clear();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void RepeatedPrimitiveFieldGenerator::GenerateMergingCode(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if (other.$name$_.Count != 0) {\n"
+ " result.$name$_.Add(other.$name$_);\n"
+ "}\n");
+}
+
+void RepeatedPrimitiveFieldGenerator::GenerateBuildingCode(io::Printer* printer) {
+ printer->Print(variables_, "$name$_.MakeReadOnly();\n");
+}
+
+void RepeatedPrimitiveFieldGenerator::GenerateParsingCode(io::Printer* printer) {
+ printer->Print(variables_,
+ "input.Read$capitalized_type_name$Array(tag, field_name, result.$name$_);\n");
+}
+
+void RepeatedPrimitiveFieldGenerator::GenerateSerializationCode(
+ io::Printer* printer) {
+ printer->Print(variables_, "if ($name$_.Count > 0) {\n");
+ printer->Indent();
+ if (descriptor_->is_packed()) {
+ printer->Print(variables_,
+ "output.WritePacked$capitalized_type_name$Array($number$, field_names[$field_ordinal$], $name$MemoizedSerializedSize, $name$_);\n");
+ } else {
+ printer->Print(variables_,
+ "output.Write$capitalized_type_name$Array($number$, field_names[$field_ordinal$], $name$_);\n");
+ }
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+void RepeatedPrimitiveFieldGenerator::GenerateSerializedSizeCode(
+ io::Printer* printer) {
+ printer->Print("{\n");
+ printer->Indent();
+ printer->Print("int dataSize = 0;\n");
+ int fixedSize = GetFixedSize(descriptor_->type());
+ if (fixedSize == -1) {
+ printer->Print(
+ variables_,
+ "foreach ($type_name$ element in $property_name$List) {\n"
+ " dataSize += pb::CodedOutputStream.Compute$capitalized_type_name$SizeNoTag(element);\n"
+ "}\n");
+ } else {
+ printer->Print(
+ "dataSize = $size$ * $name$_.Count;\n",
+ "size", SimpleItoa(fixedSize), "name", name());
+ }
+ printer->Print("size += dataSize;\n");
+ int tagSize = internal::WireFormat::TagSize(descriptor_->number(), descriptor_->type());
+ if (descriptor_->is_packed()) {
+ printer->Print(
+ "if ($name$_.Count != 0) {\n"
+ " size += $tag_size$ + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);\n"
+ "}\n",
+ "name", name(), "tag_size", SimpleItoa(tagSize));
+ } else {
+ printer->Print(
+ "size += $tag_size$ * $name$_.Count;\n",
+ "tag_size", SimpleItoa(tagSize), "name", name());
+ }
+ // cache the data size for packed fields.
+ if (descriptor_->is_packed()) {
+ printer->Print(variables_, "$name$MemoizedSerializedSize = dataSize;\n");
+ }
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+void RepeatedPrimitiveFieldGenerator::WriteHash(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "foreach($type_name$ i in $name$_)\n"
+ " hash ^= i.GetHashCode();\n");
+}
+void RepeatedPrimitiveFieldGenerator::WriteEquals(io::Printer* printer) {
+ printer->Print(
+ variables_,
+ "if($name$_.Count != other.$name$_.Count) return false;\n"
+ "for(int ix=0; ix < $name$_.Count; ix++)\n"
+ " if(!$name$_[ix].Equals(other.$name$_[ix])) return false;\n");
+}
+void RepeatedPrimitiveFieldGenerator::WriteToString(io::Printer* printer) {
+ printer->Print(variables_,
+ "PrintField(\"$descriptor_name$\", $name$_, writer);\n");
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h b/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h
new file mode 100644
index 00000000..50af9dda
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h
@@ -0,0 +1,73 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_PRIMITIVE_FIELD_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_PRIMITIVE_FIELD_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class Writer;
+
+class RepeatedPrimitiveFieldGenerator : public FieldGeneratorBase {
+ public:
+ RepeatedPrimitiveFieldGenerator(const FieldDescriptor* descriptor, int fieldOrdinal);
+ ~RepeatedPrimitiveFieldGenerator();
+
+ virtual void GenerateMembers(io::Printer* printer);
+ virtual void GenerateBuilderMembers(io::Printer* printer);
+ virtual void GenerateMergingCode(io::Printer* printer);
+ virtual void GenerateBuildingCode(io::Printer* printer);
+ virtual void GenerateParsingCode(io::Printer* printer);
+ virtual void GenerateSerializationCode(io::Printer* printer);
+ virtual void GenerateSerializedSizeCode(io::Printer* printer);
+
+ virtual void WriteHash(io::Printer* printer);
+ virtual void WriteEquals(io::Printer* printer);
+ virtual void WriteToString(io::Printer* printer);
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedPrimitiveFieldGenerator);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_REPEATED_PRIMITIVE_FIELD_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc b/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc
new file mode 100644
index 00000000..c52f6092
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc
@@ -0,0 +1,74 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+
+#include <google/protobuf/compiler/csharp/csharp_source_generator_base.h>
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+SourceGeneratorBase::SourceGeneratorBase(const FileDescriptor* descriptor)
+ : descriptor_(descriptor) {
+ optimizeSize_ = (descriptor->options().optimize_for()
+ == FileOptions::CODE_SIZE);
+ optimizeSpeed_ = (descriptor->options().optimize_for() == FileOptions::SPEED);
+ useLiteRuntime_ = (descriptor->options().optimize_for()
+ == FileOptions::LITE_RUNTIME);
+
+ optimizeSpeed_ |= useLiteRuntime_;
+ runtimeSuffix_ = useLiteRuntime_ ? "Lite" : "";
+}
+
+SourceGeneratorBase::~SourceGeneratorBase() {
+}
+
+void SourceGeneratorBase::WriteGeneratedCodeAttributes(io::Printer* printer) {
+ // This hook can be used to reintroduce generated code attributes in the future.
+}
+
+std::string SourceGeneratorBase::class_access_level() {
+ return "public"; // public_classes is always on.
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_source_generator_base.h b/src/google/protobuf/compiler/csharp/csharp_source_generator_base.h
new file mode 100644
index 00000000..61c19511
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_source_generator_base.h
@@ -0,0 +1,81 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_SOURCE_GENERATOR_BASE_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_SOURCE_GENERATOR_BASE_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class SourceGeneratorBase {
+ protected:
+ SourceGeneratorBase(const FileDescriptor* descriptor);
+ virtual ~SourceGeneratorBase();
+
+ std::string class_access_level();
+
+ bool optimize_size() {
+ return optimizeSize_;
+ }
+ bool optimize_speed() {
+ return optimizeSpeed_;
+ }
+ bool use_lite_runtime() {
+ return useLiteRuntime_;
+ }
+ std::string runtime_suffix() {
+ return runtimeSuffix_;
+ }
+
+ void WriteGeneratedCodeAttributes(io::Printer* printer);
+
+ private:
+ const FileDescriptor* descriptor_;
+ bool optimizeSize_;
+ bool optimizeSpeed_;
+ bool useLiteRuntime_;
+ std::string runtimeSuffix_;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(SourceGeneratorBase);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_SOURCE_GENERATOR_BASE_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_umbrella_class.cc b/src/google/protobuf/compiler/csharp/csharp_umbrella_class.cc
new file mode 100644
index 00000000..b14bf5e8
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_umbrella_class.cc
@@ -0,0 +1,291 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <sstream>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/plugin.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/io/zero_copy_stream.h>
+
+#include <google/protobuf/compiler/csharp/csharp_umbrella_class.h>
+#include <google/protobuf/compiler/csharp/csharp_enum.h>
+#include <google/protobuf/compiler/csharp/csharp_extension.h>
+#include <google/protobuf/compiler/csharp/csharp_helpers.h>
+#include <google/protobuf/compiler/csharp/csharp_message.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+UmbrellaClassGenerator::UmbrellaClassGenerator(const FileDescriptor* file)
+ : SourceGeneratorBase(file),
+ file_(file) {
+ namespace_ = GetFileNamespace(file);
+ umbrellaClassname_ = GetFileUmbrellaClassname(file);
+ umbrellaNamespace_ = GetFileUmbrellaNamespace(file);
+}
+
+UmbrellaClassGenerator::~UmbrellaClassGenerator() {
+}
+
+void UmbrellaClassGenerator::Generate(io::Printer* printer) {
+ WriteIntroduction(printer);
+ WriteExtensionRegistration(printer);
+
+ // write children: Extensions
+ if (file_->extension_count() > 0) {
+ printer->Print("#region Extensions\n");
+ for (int i = 0; i < file_->extension_count(); i++) {
+ ExtensionGenerator extensionGenerator(file_->extension(i));
+ extensionGenerator.Generate(printer);
+ }
+ printer->Print("#endregion\n");
+ printer->Print("\n");
+ }
+
+ printer->Print("#region Static variables\n");
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ MessageGenerator messageGenerator(file_->message_type(i));
+ messageGenerator.GenerateStaticVariables(printer);
+ }
+ printer->Print("#endregion\n");
+ if (!use_lite_runtime()) {
+ WriteDescriptor(printer);
+ } else {
+ WriteLiteExtensions(printer);
+ }
+ // Close the class declaration.
+ printer->Outdent();
+ printer->Print("}\n");
+
+ // Close the namespace around the umbrella class if defined
+ if (!umbrellaNamespace_.empty()) {
+ printer->Outdent();
+ printer->Print("}\n");
+ }
+
+ // write children: Enums
+ if (file_->enum_type_count() > 0) {
+ printer->Print("#region Enums\n");
+ for (int i = 0; i < file_->enum_type_count(); i++) {
+ EnumGenerator enumGenerator(file_->enum_type(i));
+ enumGenerator.Generate(printer);
+ }
+ printer->Print("#endregion\n");
+ printer->Print("\n");
+ }
+
+ // write children: Messages
+ if (file_->message_type_count() > 0) {
+ printer->Print("#region Messages\n");
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ MessageGenerator messageGenerator(file_->message_type(i));
+ messageGenerator.Generate(printer);
+ }
+ printer->Print("#endregion\n");
+ printer->Print("\n");
+ }
+
+ // TODO(jtattermusch): add insertion point for services.
+
+ if (!namespace_.empty()) {
+ printer->Outdent();
+ printer->Print("}\n");
+ }
+ printer->Print("\n");
+ printer->Print("#endregion Designer generated code\n");
+}
+
+void UmbrellaClassGenerator::WriteIntroduction(io::Printer* printer) {
+ printer->Print(
+ "// Generated by the protocol buffer compiler. DO NOT EDIT!\n"
+ "// source: $file_name$\n"
+ "#pragma warning disable 1591, 0612, 3021\n"
+ "#region Designer generated code\n"
+ "\n"
+ "using pb = global::Google.ProtocolBuffers;\n"
+ "using pbc = global::Google.ProtocolBuffers.Collections;\n"
+ "using pbd = global::Google.ProtocolBuffers.Descriptors;\n"
+ "using scg = global::System.Collections.Generic;\n",
+ "file_name", file_->name());
+
+ if (!namespace_.empty()) {
+ printer->Print("namespace $namespace$ {\n", "namespace", namespace_);
+ printer->Indent();
+ printer->Print("\n");
+ }
+
+ // Add the namespace around the umbrella class if defined
+ if (!umbrellaNamespace_.empty()) {
+ printer->Print("namespace $umbrella_namespace$ {\n",
+ "umbrella_namespace", umbrellaNamespace_);
+ printer->Indent();
+ printer->Print("\n");
+ }
+
+ printer->Print(
+ "[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]\n");
+ WriteGeneratedCodeAttributes(printer);
+ printer->Print(
+ "$access_level$ static partial class $umbrella_class_name$ {\n"
+ "\n",
+ "access_level", class_access_level(),
+ "umbrella_class_name", umbrellaClassname_);
+ printer->Indent();
+}
+
+void UmbrellaClassGenerator::WriteExtensionRegistration(io::Printer* printer) {
+ printer->Print(
+ "#region Extension registration\n"
+ "public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {\n");
+ printer->Indent();
+ for (int i = 0; i < file_->extension_count(); i++) {
+ ExtensionGenerator extensionGenerator(file_->extension(i));
+ extensionGenerator.GenerateExtensionRegistrationCode(printer);
+ }
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ MessageGenerator messageGenerator(file_->message_type(i));
+ messageGenerator.GenerateExtensionRegistrationCode(printer);
+ }
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("#endregion\n");
+}
+
+void UmbrellaClassGenerator::WriteDescriptor(io::Printer* printer) {
+ printer->Print(
+ "#region Descriptor\n"
+ "public static pbd::FileDescriptor Descriptor {\n"
+ " get { return descriptor; }\n"
+ "}\n"
+ "private static pbd::FileDescriptor descriptor;\n"
+ "\n"
+ "static $umbrella_class_name$() {\n",
+ "umbrella_class_name", umbrellaClassname_);
+ printer->Indent();
+ printer->Print(
+ "byte[] descriptorData = global::System.Convert.FromBase64String(\n");
+ printer->Indent();
+ printer->Indent();
+ printer->Print("string.Concat(\n");
+ printer->Indent();
+
+ // TODO(jonskeet): Consider a C#-escaping format here instead of just Base64.
+ std::string base64 = FileDescriptorToBase64(file_);
+ while (base64.size() > 60) {
+ printer->Print("\"$base64$\", \n", "base64", base64.substr(0, 60));
+ base64 = base64.substr(60);
+ }
+ printer->Outdent();
+ printer->Print("\"$base64$\"));\n", "base64", base64);
+ printer->Outdent();
+ printer->Outdent();
+ printer->Print(
+ "pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {\n");
+ printer->Indent();
+ printer->Print("descriptor = root;\n");
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ MessageGenerator messageGenerator(file_->message_type(i));
+ messageGenerator.GenerateStaticVariableInitializers(printer);
+ }
+ for (int i = 0; i < file_->extension_count(); i++) {
+ ExtensionGenerator extensionGenerator(file_->extension(i));
+ extensionGenerator.GenerateStaticVariableInitializers(printer);
+ }
+
+ if (uses_extensions()) {
+ // Must construct an ExtensionRegistry containing all possible extensions
+ // and return it.
+ printer->Print(
+ "pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();\n");
+ printer->Print("RegisterAllExtensions(registry);\n");
+ for (int i = 0; i < file_->dependency_count(); i++) {
+ printer->Print("$dependency$.RegisterAllExtensions(registry);\n",
+ "dependency", GetFullUmbrellaClassName(file_->dependency(i)));
+ }
+ printer->Print("return registry;\n");
+ } else {
+ printer->Print("return null;\n");
+ }
+ printer->Outdent();
+ printer->Print("};\n");
+
+ // -----------------------------------------------------------------
+ // Invoke internalBuildGeneratedFileFrom() to build the file.
+ printer->Print(
+ "pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,\n");
+ printer->Print(" new pbd::FileDescriptor[] {\n");
+ for (int i = 0; i < file_->dependency_count(); i++) {
+ printer->Print(
+ " $full_umbrella_class_name$.Descriptor, \n",
+ "full_umbrella_class_name",
+ GetFullUmbrellaClassName(file_->dependency(i)));
+ }
+ printer->Print(" }, assigner);\n");
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("#endregion\n\n");
+}
+
+void UmbrellaClassGenerator::WriteLiteExtensions(io::Printer* printer) {
+ printer->Print(
+ "#region Extensions\n"
+ "internal static readonly object Descriptor;\n"
+ "static $umbrella_class_name$() {\n",
+ "umbrella_class_name", umbrellaClassname_);
+ printer->Indent();
+ printer->Print("Descriptor = null;\n");
+ for (int i = 0; i < file_->message_type_count(); i++) {
+ MessageGenerator messageGenerator(file_->message_type(i));
+ messageGenerator.GenerateStaticVariableInitializers(printer);
+ }
+ for (int i = 0; i < file_->extension_count(); i++) {
+ ExtensionGenerator extensionGenerator(file_->extension(i));
+ extensionGenerator.GenerateStaticVariableInitializers(printer);
+ }
+ printer->Outdent();
+ printer->Print("}\n");
+ printer->Print("#endregion\n\n");
+}
+
+bool UmbrellaClassGenerator::uses_extensions() {
+ // TODO(jtattermusch): implement recursive descent that looks for extensions.
+ // For now, we conservatively assume that extensions are used.
+ return true;
+}
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_umbrella_class.h b/src/google/protobuf/compiler/csharp/csharp_umbrella_class.h
new file mode 100644
index 00000000..83e1f347
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_umbrella_class.h
@@ -0,0 +1,76 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_UMBRELLA_CLASS_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_UMBRELLA_CLASS_H__
+
+#include <string>
+
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_source_generator_base.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+class Writer;
+
+class UmbrellaClassGenerator : public SourceGeneratorBase {
+ public:
+ UmbrellaClassGenerator(const FileDescriptor* file);
+ ~UmbrellaClassGenerator();
+
+ void Generate(io::Printer* printer);
+
+ private:
+ const FileDescriptor* file_;
+
+ std::string namespace_;
+ std::string umbrellaClassname_;
+ std::string umbrellaNamespace_;
+
+ void WriteIntroduction(io::Printer* printer);
+ void WriteExtensionRegistration(io::Printer* printer);
+ void WriteDescriptor(io::Printer* printer);
+ void WriteLiteExtensions(io::Printer* printer);
+
+ bool uses_extensions();
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(UmbrellaClassGenerator);
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_UMBRELLA_CLASS_H__
+
diff --git a/src/google/protobuf/compiler/csharp/csharp_writer.cc b/src/google/protobuf/compiler/csharp/csharp_writer.cc
new file mode 100644
index 00000000..2bcafde5
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_writer.cc
@@ -0,0 +1,136 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#include <algorithm>
+#include <google/protobuf/stubs/hash.h>
+#include <limits>
+#include <vector>
+
+#include <google/protobuf/compiler/csharp/csharp_writer.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/wire_format.h>
+#include <google/protobuf/stubs/strutil.h>
+#include <google/protobuf/stubs/substitute.h>
+
+#include <google/protobuf/compiler/csharp/csharp_field_base.h>
+#include <google/protobuf/compiler/csharp/csharp_enum_field.h>
+#include <google/protobuf/compiler/csharp/csharp_message_field.h>
+#include <google/protobuf/compiler/csharp/csharp_primitive_field.h>
+#include <google/protobuf/compiler/csharp/csharp_repeated_enum_field.h>
+#include <google/protobuf/compiler/csharp/csharp_repeated_message_field.h>
+#include <google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+Writer::Writer(google::protobuf::io::Printer* printer)
+ : printer_(printer),
+ newline_("\n") {
+ // TODO(jtattermusch): make newline customizable.
+}
+
+Writer::~Writer() {
+}
+
+void Writer::Indent() {
+ printer_->Indent();
+}
+
+void Writer::Outdent() {
+ printer_->Outdent();
+}
+
+void Writer::Write(const char* text) {
+ printer_->Print(text);
+}
+
+void Writer::Write(const char* text, const string& value0) {
+ printer_->Print(text, "0", value0);
+}
+
+void Writer::Write(const char* text, const string& value0,
+ const string& value1) {
+ printer_->Print(text, "0", value0, "1", value1);
+}
+
+void Writer::Write(const char* text, const string& value0, const string& value1,
+ const string& value2) {
+ printer_->Print(text, "0", value0, "1", value1, "2", value2);
+}
+
+void Writer::Write(const char* text, const string& value0, const string& value1,
+ const string& value2, const string& value3) {
+ printer_->Print(text, "0", value0, "1", value1, "2", value2, "3", value3);
+}
+
+void Writer::WriteLine() {
+ printer_->Print(newline_);
+}
+
+void Writer::WriteLine(const char* text) {
+ Write(text);
+ WriteLine();
+}
+
+void Writer::WriteLine(const char* text, const string& value0) {
+ Write(text, value0);
+ WriteLine();
+}
+
+void Writer::WriteLine(const char* text, const string& value0,
+ const string& value1) {
+ Write(text, value0, value1);
+ WriteLine();
+}
+
+void Writer::WriteLine(const char* text, const string& value0,
+ const string& value1, const string& value2) {
+ Write(text, value0, value1, value2);
+ WriteLine();
+}
+
+void Writer::WriteLine(const char* text, const string& value0,
+ const string& value1, const string& value2,
+ const string& value3) {
+ Write(text, value0, value1, value2, value3);
+ WriteLine();
+}
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/csharp/csharp_writer.h b/src/google/protobuf/compiler/csharp/csharp_writer.h
new file mode 100644
index 00000000..26c59b31
--- /dev/null
+++ b/src/google/protobuf/compiler/csharp/csharp_writer.h
@@ -0,0 +1,93 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_WRITER_H__
+#define GOOGLE_PROTOBUF_COMPILER_CSHARP_WRITER_H__
+
+#include <string>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/compiler/code_generator.h>
+#include <google/protobuf/io/printer.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace csharp {
+
+// Simple wrapper around Printer that supports customizable line endings
+// and number-based variables (e.g. $0$).
+class Writer {
+ public:
+ Writer(io::Printer* printer);
+ ~Writer();
+
+ void Indent();
+ void Outdent();
+
+ void Write(const char* text);
+
+ void Write(const char* text, const string& value0);
+
+ void Write(const char* text, const string& value0, const string& value1);
+
+ void Write(const char* text, const string& value0, const string& value1,
+ const string& value2);
+
+ void Write(const char* text, const string& value0, const string& value1,
+ const string& value2, const string& value3);
+
+ void WriteLine();
+
+ void WriteLine(const char* text);
+
+ void WriteLine(const char* text, const string& value0);
+
+ void WriteLine(const char* text, const string& value0, const string& value1);
+
+ void WriteLine(const char* text, const string& value0, const string& value1,
+ const string& value2);
+
+ void WriteLine(const char* text, const string& value0, const string& value1,
+ const string& value2, const string& value3);
+ private:
+ io::Printer* printer_;
+ const char* newline_;
+};
+
+} // namespace csharp
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_WRITER_H__
diff --git a/src/google/protobuf/compiler/java/java_enum_field.cc b/src/google/protobuf/compiler/java/java_enum_field.cc
index 71a2ba4b..39318a19 100644
--- a/src/google/protobuf/compiler/java/java_enum_field.cc
+++ b/src/google/protobuf/compiler/java/java_enum_field.cc
@@ -67,7 +67,13 @@ void SetEnumVariables(const FieldDescriptor* descriptor,
(*variables)["default"] = ImmutableDefaultValue(descriptor, name_resolver);
(*variables)["default_number"] = SimpleItoa(
descriptor->default_value_enum()->number());
- (*variables)["tag"] = SimpleItoa(internal::WireFormat::MakeTag(descriptor));
+ if (descriptor->is_packed()) {
+ (*variables)["tag"] = SimpleItoa(internal::WireFormatLite::MakeTag(
+ descriptor->number(),
+ internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED));
+ } else {
+ (*variables)["tag"] = SimpleItoa(internal::WireFormat::MakeTag(descriptor));
+ }
(*variables)["tag_size"] = SimpleItoa(
internal::WireFormat::TagSize(descriptor->number(), GetType(descriptor)));
// TODO(birdo): Add @deprecated javadoc when generating javadoc is supported
@@ -641,7 +647,7 @@ GenerateMembers(io::Printer* printer) const {
"}\n");
}
- if (descriptor_->options().packed() &&
+ if (descriptor_->is_packed() &&
HasGeneratedMethods(descriptor_->containing_type())) {
printer->Print(variables_,
"private int $name$MemoizedSerializedSize;\n");
@@ -884,7 +890,7 @@ GenerateParsingDoneCode(io::Printer* printer) const {
void RepeatedImmutableEnumFieldGenerator::
GenerateSerializationCode(io::Printer* printer) const {
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
"if (get$capitalized_name$List().size() > 0) {\n"
" output.writeRawVarint32($tag$);\n"
@@ -915,7 +921,7 @@ GenerateSerializedSizeCode(io::Printer* printer) const {
"}\n");
printer->Print(
"size += dataSize;\n");
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
"if (!get$capitalized_name$List().isEmpty()) {"
" size += $tag_size$;\n"
@@ -928,7 +934,7 @@ GenerateSerializedSizeCode(io::Printer* printer) const {
}
// cache the data size for packed fields.
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
"$name$MemoizedSerializedSize = dataSize;\n");
}
diff --git a/src/google/protobuf/compiler/java/java_enum_field_lite.cc b/src/google/protobuf/compiler/java/java_enum_field_lite.cc
new file mode 100644
index 00000000..697a07a7
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_enum_field_lite.cc
@@ -0,0 +1,967 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#include <map>
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/compiler/java/java_context.h>
+#include <google/protobuf/compiler/java/java_doc_comment.h>
+#include <google/protobuf/compiler/java/java_enum_field_lite.h>
+#include <google/protobuf/compiler/java/java_helpers.h>
+#include <google/protobuf/compiler/java/java_name_resolver.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/wire_format.h>
+#include <google/protobuf/stubs/strutil.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+namespace {
+
+void SetEnumVariables(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ const FieldGeneratorInfo* info,
+ ClassNameResolver* name_resolver,
+ map<string, string>* variables) {
+ SetCommonFieldVariables(descriptor, info, variables);
+
+ (*variables)["type"] =
+ name_resolver->GetImmutableClassName(descriptor->enum_type());
+ (*variables)["mutable_type"] =
+ name_resolver->GetMutableClassName(descriptor->enum_type());
+ (*variables)["default"] = ImmutableDefaultValue(descriptor, name_resolver);
+ (*variables)["default_number"] = SimpleItoa(
+ descriptor->default_value_enum()->number());
+ (*variables)["tag"] = SimpleItoa(internal::WireFormat::MakeTag(descriptor));
+ (*variables)["tag_size"] = SimpleItoa(
+ internal::WireFormat::TagSize(descriptor->number(), GetType(descriptor)));
+ // TODO(birdo): Add @deprecated javadoc when generating javadoc is supported
+ // by the proto compiler
+ (*variables)["deprecation"] = descriptor->options().deprecated()
+ ? "@java.lang.Deprecated " : "";
+ (*variables)["on_changed"] =
+ HasDescriptorMethods(descriptor->containing_type()) ? "onChanged();" : "";
+
+ if (SupportFieldPresence(descriptor->file())) {
+ // For singular messages and builders, one bit is used for the hasField bit.
+ (*variables)["get_has_field_bit_message"] = GenerateGetBit(messageBitIndex);
+
+ // Note that these have a trailing ";".
+ (*variables)["set_has_field_bit_message"] =
+ GenerateSetBit(messageBitIndex) + ";";
+ (*variables)["clear_has_field_bit_message"] =
+ GenerateClearBit(messageBitIndex) + ";";
+
+ (*variables)["is_field_present_message"] = GenerateGetBit(messageBitIndex);
+ } else {
+ (*variables)["set_has_field_bit_message"] = "";
+ (*variables)["clear_has_field_bit_message"] = "";
+
+ (*variables)["is_field_present_message"] =
+ (*variables)["name"] + "_ != " +
+ (*variables)["default"] + ".getNumber()";
+ }
+
+ // For repeated builders, the underlying list tracks mutability state.
+ (*variables)["is_mutable"] = (*variables)["name"] + "_.isModifiable()";
+
+ (*variables)["get_has_field_bit_from_local"] =
+ GenerateGetBitFromLocal(builderBitIndex);
+ (*variables)["set_has_field_bit_to_local"] =
+ GenerateSetBitToLocal(messageBitIndex);
+
+ if (SupportUnknownEnumValue(descriptor->file())) {
+ (*variables)["unknown"] = (*variables)["type"] + ".UNRECOGNIZED";
+ } else {
+ (*variables)["unknown"] = (*variables)["default"];
+ }
+}
+
+} // namespace
+
+// ===================================================================
+
+ImmutableEnumFieldLiteGenerator::
+ImmutableEnumFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : descriptor_(descriptor), messageBitIndex_(messageBitIndex),
+ builderBitIndex_(builderBitIndex),
+ name_resolver_(context->GetNameResolver()) {
+ SetEnumVariables(descriptor, messageBitIndex, builderBitIndex,
+ context->GetFieldGeneratorInfo(descriptor),
+ name_resolver_, &variables_);
+}
+
+ImmutableEnumFieldLiteGenerator::~ImmutableEnumFieldLiteGenerator() {}
+
+int ImmutableEnumFieldLiteGenerator::GetNumBitsForMessage() const {
+ return 1;
+}
+
+int ImmutableEnumFieldLiteGenerator::GetNumBitsForBuilder() const {
+ return 0;
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateInterfaceMembers(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$boolean has$capitalized_name$();\n");
+ }
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$int get$capitalized_name$Value();\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$$type$ get$capitalized_name$();\n");
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(variables_,
+ "private int $name$_;\n");
+ PrintExtraFieldInfo(variables_, printer);
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $get_has_field_bit_message$;\n"
+ "}\n");
+ }
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Value() {\n"
+ " return $name$_;\n"
+ "}\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " $type$ result = $type$.valueOf($name$_);\n"
+ " return result == null ? $unknown$ : result;\n"
+ "}\n");
+
+ // Generate private setters for the builder to proxy into.
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$Value(int value) {\n"
+ " $set_has_field_bit_message$"
+ " $name$_ = value;\n"
+ "}\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$($type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " $set_has_field_bit_message$\n"
+ " $name$_ = value.getNumber();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " $clear_has_field_bit_message$\n"
+ " $name$_ = $default_number$;\n"
+ "}\n");
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return instance.has$capitalized_name$();\n"
+ "}\n");
+ }
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Value() {\n"
+ " return instance.get$capitalized_name$Value();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$Value(int value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$Value(int value);\n"
+ " return this;\n"
+ "}\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
+ // noop for enums
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateInitializationCode(io::Printer* printer) const {
+ printer->Print(variables_, "$name$_ = $default_number$;\n");
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(variables_,
+ "if (other.has$capitalized_name$()) {\n"
+ " set$capitalized_name$(other.get$capitalized_name$());\n"
+ "}\n");
+ } else if (SupportUnknownEnumValue(descriptor_->file())) {
+ printer->Print(variables_,
+ "if (other.$name$_ != $default_number$) {\n"
+ " set$capitalized_name$Value(other.get$capitalized_name$Value());\n"
+ "}\n");
+ } else {
+ GOOGLE_LOG(FATAL) << "Can't reach here.";
+ }
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const {
+ // noop for scalars
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ printer->Print(variables_,
+ "int rawValue = input.readEnum();\n"
+ "$set_has_field_bit_message$\n"
+ "$name$_ = rawValue;\n");
+ } else {
+ printer->Print(variables_,
+ "int rawValue = input.readEnum();\n"
+ "$type$ value = $type$.valueOf(rawValue);\n"
+ "if (value == null) {\n");
+ if (PreserveUnknownFields(descriptor_->containing_type())) {
+ printer->Print(variables_,
+ " unknownFields.mergeVarintField($number$, rawValue);\n");
+ }
+ printer->Print(variables_,
+ "} else {\n"
+ " $set_has_field_bit_message$\n"
+ " $name$_ = rawValue;\n"
+ "}\n");
+ }
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateParsingDoneCode(io::Printer* printer) const {
+ // noop for enums
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_field_present_message$) {\n"
+ " output.writeEnum($number$, $name$_);\n"
+ "}\n");
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_field_present_message$) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeEnumSize($number$, $name$_);\n"
+ "}\n");
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateEqualsCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "result = result && $name$_ == other.$name$_;\n");
+}
+
+void ImmutableEnumFieldLiteGenerator::
+GenerateHashCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "hash = (37 * hash) + $constant_name$;\n"
+ "hash = (53 * hash) + $name$_;\n");
+}
+
+string ImmutableEnumFieldLiteGenerator::GetBoxedType() const {
+ return name_resolver_->GetImmutableClassName(descriptor_->enum_type());
+}
+
+// ===================================================================
+
+ImmutableEnumOneofFieldLiteGenerator::
+ImmutableEnumOneofFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : ImmutableEnumFieldLiteGenerator(
+ descriptor, messageBitIndex, builderBitIndex, context) {
+ const OneofGeneratorInfo* info =
+ context->GetOneofGeneratorInfo(descriptor->containing_oneof());
+ SetCommonOneofVariables(descriptor, info, &variables_);
+}
+
+ImmutableEnumOneofFieldLiteGenerator::
+~ImmutableEnumOneofFieldLiteGenerator() {}
+
+void ImmutableEnumOneofFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ PrintExtraFieldInfo(variables_, printer);
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $has_oneof_case_message$;\n"
+ "}\n");
+ }
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Value() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " return (java.lang.Integer) $oneof_name$_;\n"
+ " }\n"
+ " return $default_number$;\n"
+ "}\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " $type$ result = $type$.valueOf((java.lang.Integer) $oneof_name$_);\n"
+ " return result == null ? $unknown$ : result;\n"
+ " }\n"
+ " return $default$;\n"
+ "}\n");
+
+ // Generate private setters for the builder to proxy into.
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$Value(int value) {\n"
+ " $set_oneof_case_message$;\n"
+ " $oneof_name$_ = value;\n"
+ "}\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$($type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " $set_oneof_case_message$;\n"
+ " $oneof_name$_ = value.getNumber();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " $clear_oneof_case_message$;\n"
+ " $oneof_name$_ = null;\n"
+ " }\n"
+ "}\n");
+}
+
+void ImmutableEnumOneofFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return instance.has$capitalized_name$();\n"
+ "}\n");
+ }
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Value() {\n"
+ " return instance.get$capitalized_name$Value();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$Value(int value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$Value(value);\n"
+ " return this;\n"
+ "}\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void ImmutableEnumOneofFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ printer->Print(variables_,
+ "set$capitalized_name$Value(other.get$capitalized_name$Value());\n");
+ } else {
+ printer->Print(variables_,
+ "set$capitalized_name$(other.get$capitalized_name$());\n");
+ }
+}
+
+void ImmutableEnumOneofFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ printer->Print(variables_,
+ "int rawValue = input.readEnum();\n"
+ "$set_oneof_case_message$;\n"
+ "$oneof_name$_ = rawValue;\n");
+ } else {
+ printer->Print(variables_,
+ "int rawValue = input.readEnum();\n"
+ "$type$ value = $type$.valueOf(rawValue);\n"
+ "if (value == null) {\n");
+ if (PreserveUnknownFields(descriptor_->containing_type())) {
+ printer->Print(variables_,
+ " unknownFields.mergeVarintField($number$, rawValue);\n");
+ }
+ printer->Print(variables_,
+ "} else {\n"
+ " $set_oneof_case_message$;\n"
+ " $oneof_name$_ = rawValue;\n"
+ "}\n");
+ }
+}
+
+void ImmutableEnumOneofFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($has_oneof_case_message$) {\n"
+ " output.writeEnum($number$, ((java.lang.Integer) $oneof_name$_));\n"
+ "}\n");
+}
+
+void ImmutableEnumOneofFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($has_oneof_case_message$) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeEnumSize($number$, ((java.lang.Integer) $oneof_name$_));\n"
+ "}\n");
+}
+
+void ImmutableEnumOneofFieldLiteGenerator::
+GenerateEqualsCode(io::Printer* printer) const {
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ printer->Print(variables_,
+ "result = result && get$capitalized_name$Value()\n"
+ " == other.get$capitalized_name$Value();\n");
+ } else {
+ printer->Print(variables_,
+ "result = result && get$capitalized_name$()\n"
+ " .equals(other.get$capitalized_name$());\n");
+ }
+}
+
+void ImmutableEnumOneofFieldLiteGenerator::
+GenerateHashCode(io::Printer* printer) const {
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ printer->Print(variables_,
+ "hash = (37 * hash) + $constant_name$;\n"
+ "hash = (53 * hash) + get$capitalized_name$Value();\n");
+ } else {
+ printer->Print(variables_,
+ "hash = (37 * hash) + $constant_name$;\n"
+ "hash = (53 * hash) + get$capitalized_name$().getNumber();\n");
+ }
+}
+
+// ===================================================================
+
+RepeatedImmutableEnumFieldLiteGenerator::
+RepeatedImmutableEnumFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : descriptor_(descriptor), messageBitIndex_(messageBitIndex),
+ builderBitIndex_(builderBitIndex), context_(context),
+ name_resolver_(context->GetNameResolver()) {
+ SetEnumVariables(descriptor, messageBitIndex, builderBitIndex,
+ context->GetFieldGeneratorInfo(descriptor),
+ name_resolver_, &variables_);
+}
+
+RepeatedImmutableEnumFieldLiteGenerator::
+~RepeatedImmutableEnumFieldLiteGenerator() {}
+
+int RepeatedImmutableEnumFieldLiteGenerator::GetNumBitsForMessage() const {
+ return 0;
+}
+
+int RepeatedImmutableEnumFieldLiteGenerator::GetNumBitsForBuilder() const {
+ return 0;
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateInterfaceMembers(io::Printer* printer) const {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$java.util.List<$type$> get$capitalized_name$List();\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$int get$capitalized_name$Count();\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$$type$ get$capitalized_name$(int index);\n");
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$java.util.List<java.lang.Integer>\n"
+ "get$capitalized_name$ValueList();\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$int get$capitalized_name$Value(int index);\n");
+ }
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(variables_,
+ // TODO(dweis): Switch to IntList?
+ "private com.google.protobuf.Internal.ProtobufList<\n"
+ " java.lang.Integer> $name$_;\n"
+ "private static final com.google.protobuf.Internal.ListAdapter.Converter<\n"
+ " java.lang.Integer, $type$> $name$_converter_ =\n"
+ " new com.google.protobuf.Internal.ListAdapter.Converter<\n"
+ " java.lang.Integer, $type$>() {\n"
+ " public $type$ convert(java.lang.Integer from) {\n"
+ " $type$ result = $type$.valueOf(from);\n"
+ " return result == null ? $unknown$ : result;\n"
+ " }\n"
+ " };\n");
+ PrintExtraFieldInfo(variables_, printer);
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<$type$> get$capitalized_name$List() {\n"
+ " return new com.google.protobuf.Internal.ListAdapter<\n"
+ " java.lang.Integer, $type$>($name$_, $name$_converter_);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Count() {\n"
+ " return $name$_.size();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$(int index) {\n"
+ " return $name$_converter_.convert($name$_.get(index));\n"
+ "}\n");
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<java.lang.Integer>\n"
+ "get$capitalized_name$ValueList() {\n"
+ " return $name$_;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Value(int index) {\n"
+ " return $name$_.get(index);\n"
+ "}\n");
+ }
+
+ if (descriptor_->options().packed() &&
+ HasGeneratedMethods(descriptor_->containing_type())) {
+ printer->Print(variables_,
+ "private int $name$MemoizedSerializedSize;\n");
+ }
+
+ // Generate private setters for the builder to proxy into.
+ printer->Print(variables_,
+ "private void ensure$capitalized_name$IsMutable() {\n"
+ " if (!$is_mutable$) {\n"
+ " $name$_ = newProtobufList($name$_);\n"
+ " }\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.set(index, value.getNumber());\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$($type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(value.getNumber());\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void addAll$capitalized_name$(\n"
+ " java.lang.Iterable<? extends $type$> values) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " for ($type$ value : values) {\n"
+ " $name$_.add(value.getNumber());\n"
+ " }\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " $name$_ = emptyProtobufList();\n"
+ "}\n");
+
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$Value(\n"
+ " int index, int value) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.set(index, value);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$Value(int value) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(value);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void addAll$capitalized_name$Value(\n"
+ " java.lang.Iterable<java.lang.Integer> values) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " for (int value : values) {\n"
+ " $name$_.add(value);\n"
+ " }\n"
+ "}\n");
+ }
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<$type$> get$capitalized_name$List() {\n"
+ " return instance.get$capitalized_name$List();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Count() {\n"
+ " return instance.get$capitalized_name$Count();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$(int index) {\n"
+ " return instance.get$capitalized_name$(index);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(index, value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder addAll$capitalized_name$(\n"
+ " java.lang.Iterable<? extends $type$> values) {\n"
+ " copyOnWrite();\n"
+ " instance.addAll$capitalized_name$(values);"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<java.lang.Integer>\n"
+ "get$capitalized_name$ValueList() {\n"
+ " return java.util.Collections.unmodifiableList(\n"
+ " instance.get$capitalized_name$ValueList());\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Value(int index) {\n"
+ " return instance.get$capitalized_name$Value(index);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$Value(\n"
+ " int index, int value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$Value(index, value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$Value(int value) {\n"
+ " instance.add$capitalized_name$Value(value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder addAll$capitalized_name$Value(\n"
+ " java.lang.Iterable<java.lang.Integer> values) {\n"
+ " copyOnWrite();\n"
+ " instance.addAll$capitalized_name$Value(values);\n"
+ " return this;\n"
+ "}\n");
+ }
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
+ // noop for enums
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateInitializationCode(io::Printer* printer) const {
+ printer->Print(variables_, "$name$_ = emptyProtobufList();\n");
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ // The code below does two optimizations:
+ // 1. If the other list is empty, there's nothing to do. This ensures we
+ // don't allocate a new array if we already have an immutable one.
+ // 2. If the other list is non-empty and our current list is empty, we can
+ // reuse the other list which is guaranteed to be immutable.
+ printer->Print(variables_,
+ "if (!other.$name$_.isEmpty()) {\n"
+ " if ($name$_.isEmpty()) {\n"
+ " $name$_ = other.$name$_;\n"
+ " } else {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.addAll(other.$name$_);\n"
+ " }\n"
+ " $on_changed$\n"
+ "}\n");
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "$name$_.makeImmutable();\n");
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ // Read and store the enum
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ printer->Print(variables_,
+ "int rawValue = input.readEnum();\n"
+ "if (!$is_mutable$) {\n"
+ " $name$_ = newProtobufList();\n"
+ "}\n"
+ "$name$_.add(rawValue);\n");
+ } else {
+ printer->Print(variables_,
+ "int rawValue = input.readEnum();\n"
+ "$type$ value = $type$.valueOf(rawValue);\n"
+ "if (value == null) {\n");
+ if (PreserveUnknownFields(descriptor_->containing_type())) {
+ printer->Print(variables_,
+ " unknownFields.mergeVarintField($number$, rawValue);\n");
+ }
+ printer->Print(variables_,
+ "} else {\n"
+ " if (!$is_mutable$) {\n"
+ " $name$_ = newProtobufList();\n"
+ " }\n"
+ " $name$_.add(rawValue);\n"
+ "}\n");
+ }
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateParsingCodeFromPacked(io::Printer* printer) const {
+ // Wrap GenerateParsingCode's contents with a while loop.
+
+ printer->Print(variables_,
+ "int length = input.readRawVarint32();\n"
+ "int oldLimit = input.pushLimit(length);\n"
+ "while(input.getBytesUntilLimit() > 0) {\n");
+ printer->Indent();
+
+ GenerateParsingCode(printer);
+
+ printer->Outdent();
+ printer->Print(variables_,
+ "}\n"
+ "input.popLimit(oldLimit);\n");
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateParsingDoneCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_mutable$) {\n"
+ " $name$_.makeImmutable();\n"
+ "}\n");
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ if (descriptor_->options().packed()) {
+ printer->Print(variables_,
+ "if (get$capitalized_name$List().size() > 0) {\n"
+ " output.writeRawVarint32($tag$);\n"
+ " output.writeRawVarint32($name$MemoizedSerializedSize);\n"
+ "}\n"
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " output.writeEnumNoTag($name$_.get(i));\n"
+ "}\n");
+ } else {
+ printer->Print(variables_,
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " output.writeEnum($number$, $name$_.get(i));\n"
+ "}\n");
+ }
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "{\n"
+ " int dataSize = 0;\n");
+ printer->Indent();
+
+ printer->Print(variables_,
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " dataSize += com.google.protobuf.CodedOutputStream\n"
+ " .computeEnumSizeNoTag($name$_.get(i));\n"
+ "}\n");
+ printer->Print(
+ "size += dataSize;\n");
+ if (descriptor_->options().packed()) {
+ printer->Print(variables_,
+ "if (!get$capitalized_name$List().isEmpty()) {"
+ " size += $tag_size$;\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeRawVarint32Size(dataSize);\n"
+ "}");
+ } else {
+ printer->Print(variables_,
+ "size += $tag_size$ * $name$_.size();\n");
+ }
+
+ // cache the data size for packed fields.
+ if (descriptor_->options().packed()) {
+ printer->Print(variables_,
+ "$name$MemoizedSerializedSize = dataSize;\n");
+ }
+
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateEqualsCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "result = result && $name$_.equals(other.$name$_);\n");
+}
+
+void RepeatedImmutableEnumFieldLiteGenerator::
+GenerateHashCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (get$capitalized_name$Count() > 0) {\n"
+ " hash = (37 * hash) + $constant_name$;\n"
+ " hash = (53 * hash) + $name$_.hashCode();\n"
+ "}\n");
+}
+
+string RepeatedImmutableEnumFieldLiteGenerator::GetBoxedType() const {
+ return name_resolver_->GetImmutableClassName(descriptor_->enum_type());
+}
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/java/java_enum_field_lite.h b/src/google/protobuf/compiler/java/java_enum_field_lite.h
new file mode 100644
index 00000000..2c41c3e4
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_enum_field_lite.h
@@ -0,0 +1,159 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_FIELD_LITE_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_FIELD_LITE_H__
+
+#include <map>
+#include <string>
+#include <google/protobuf/compiler/java/java_field.h>
+
+namespace google {
+namespace protobuf {
+ namespace compiler {
+ namespace java {
+ class Context; // context.h
+ class ClassNameResolver; // name_resolver.h
+ }
+ }
+}
+
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+class ImmutableEnumFieldLiteGenerator : public ImmutableFieldLiteGenerator {
+ public:
+ explicit ImmutableEnumFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutableEnumFieldLiteGenerator();
+
+ // implements ImmutableFieldLiteGenerator ------------------------------------
+ int GetNumBitsForMessage() const;
+ int GetNumBitsForBuilder() const;
+ void GenerateInterfaceMembers(io::Printer* printer) const;
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateInitializationCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateParsingDoneCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+ void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
+ void GenerateEqualsCode(io::Printer* printer) const;
+ void GenerateHashCode(io::Printer* printer) const;
+
+ string GetBoxedType() const;
+
+ protected:
+ const FieldDescriptor* descriptor_;
+ map<string, string> variables_;
+ const int messageBitIndex_;
+ const int builderBitIndex_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableEnumFieldLiteGenerator);
+};
+
+class ImmutableEnumOneofFieldLiteGenerator
+ : public ImmutableEnumFieldLiteGenerator {
+ public:
+ ImmutableEnumOneofFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutableEnumOneofFieldLiteGenerator();
+
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+ void GenerateEqualsCode(io::Printer* printer) const;
+ void GenerateHashCode(io::Printer* printer) const;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableEnumOneofFieldLiteGenerator);
+};
+
+class RepeatedImmutableEnumFieldLiteGenerator
+ : public ImmutableFieldLiteGenerator {
+ public:
+ explicit RepeatedImmutableEnumFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~RepeatedImmutableEnumFieldLiteGenerator();
+
+ // implements ImmutableFieldLiteGenerator ------------------------------------
+ int GetNumBitsForMessage() const;
+ int GetNumBitsForBuilder() const;
+ void GenerateInterfaceMembers(io::Printer* printer) const;
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateInitializationCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateParsingCodeFromPacked(io::Printer* printer) const;
+ void GenerateParsingDoneCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+ void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
+ void GenerateEqualsCode(io::Printer* printer) const;
+ void GenerateHashCode(io::Printer* printer) const;
+
+ string GetBoxedType() const;
+
+ private:
+ const FieldDescriptor* descriptor_;
+ map<string, string> variables_;
+ const int messageBitIndex_;
+ const int builderBitIndex_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedImmutableEnumFieldLiteGenerator);
+};
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_ENUM_FIELD_LITE_H__
diff --git a/src/google/protobuf/compiler/java/java_field.cc b/src/google/protobuf/compiler/java/java_field.cc
index af9978e2..3f0fa11f 100644
--- a/src/google/protobuf/compiler/java/java_field.cc
+++ b/src/google/protobuf/compiler/java/java_field.cc
@@ -42,12 +42,18 @@
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/compiler/java/java_context.h>
#include <google/protobuf/compiler/java/java_enum_field.h>
+#include <google/protobuf/compiler/java/java_enum_field_lite.h>
#include <google/protobuf/compiler/java/java_helpers.h>
#include <google/protobuf/compiler/java/java_lazy_message_field.h>
+#include <google/protobuf/compiler/java/java_lazy_message_field_lite.h>
#include <google/protobuf/compiler/java/java_map_field.h>
+#include <google/protobuf/compiler/java/java_map_field_lite.h>
#include <google/protobuf/compiler/java/java_message_field.h>
+#include <google/protobuf/compiler/java/java_message_field_lite.h>
#include <google/protobuf/compiler/java/java_primitive_field.h>
+#include <google/protobuf/compiler/java/java_primitive_field_lite.h>
#include <google/protobuf/compiler/java/java_string_field.h>
+#include <google/protobuf/compiler/java/java_string_field_lite.h>
#include <google/protobuf/io/printer.h>
#include <google/protobuf/stubs/strutil.h>
#include <google/protobuf/stubs/substitute.h>
@@ -133,6 +139,79 @@ ImmutableFieldGenerator* MakeImmutableGenerator(
}
}
+ImmutableFieldLiteGenerator* MakeImmutableLiteGenerator(
+ const FieldDescriptor* field, int messageBitIndex, int builderBitIndex,
+ Context* context) {
+ if (field->is_repeated()) {
+ switch (GetJavaType(field)) {
+ case JAVATYPE_MESSAGE:
+ if (IsMapEntry(field->message_type())) {
+ return new ImmutableMapFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ } else {
+ if (IsLazy(field)) {
+ return new RepeatedImmutableLazyMessageFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ } else {
+ return new RepeatedImmutableMessageFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ }
+ }
+ case JAVATYPE_ENUM:
+ return new RepeatedImmutableEnumFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ case JAVATYPE_STRING:
+ return new RepeatedImmutableStringFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ default:
+ return new RepeatedImmutablePrimitiveFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ }
+ } else {
+ if (field->containing_oneof()) {
+ switch (GetJavaType(field)) {
+ case JAVATYPE_MESSAGE:
+ if (IsLazy(field)) {
+ return new ImmutableLazyMessageOneofFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ } else {
+ return new ImmutableMessageOneofFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ }
+ case JAVATYPE_ENUM:
+ return new ImmutableEnumOneofFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ case JAVATYPE_STRING:
+ return new ImmutableStringOneofFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ default:
+ return new ImmutablePrimitiveOneofFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ }
+ } else {
+ switch (GetJavaType(field)) {
+ case JAVATYPE_MESSAGE:
+ if (IsLazy(field)) {
+ return new ImmutableLazyMessageFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ } else {
+ return new ImmutableMessageFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ }
+ case JAVATYPE_ENUM:
+ return new ImmutableEnumFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ case JAVATYPE_STRING:
+ return new ImmutableStringFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ default:
+ return new ImmutablePrimitiveFieldLiteGenerator(
+ field, messageBitIndex, builderBitIndex, context);
+ }
+ }
+ }
+}
+
static inline void ReportUnexpectedPackedFieldsCall(io::Printer* printer) {
// Reaching here indicates a bug. Cases are:
@@ -153,6 +232,13 @@ GenerateParsingCodeFromPacked(io::Printer* printer) const {
ReportUnexpectedPackedFieldsCall(printer);
}
+ImmutableFieldLiteGenerator::~ImmutableFieldLiteGenerator() {}
+
+void ImmutableFieldLiteGenerator::
+GenerateParsingCodeFromPacked(io::Printer* printer) const {
+ ReportUnexpectedPackedFieldsCall(printer);
+}
+
// ===================================================================
template <>
@@ -178,6 +264,28 @@ FieldGeneratorMap<ImmutableFieldGenerator>::FieldGeneratorMap(
template<>
FieldGeneratorMap<ImmutableFieldGenerator>::~FieldGeneratorMap() {}
+template <>
+FieldGeneratorMap<ImmutableFieldLiteGenerator>::FieldGeneratorMap(
+ const Descriptor* descriptor, Context* context)
+ : descriptor_(descriptor),
+ field_generators_(new google::protobuf::scoped_ptr<
+ ImmutableFieldLiteGenerator>[descriptor->field_count()]) {
+ // Construct all the FieldGenerators and assign them bit indices for their
+ // bit fields.
+ int messageBitIndex = 0;
+ int builderBitIndex = 0;
+ for (int i = 0; i < descriptor->field_count(); i++) {
+ ImmutableFieldLiteGenerator* generator = MakeImmutableLiteGenerator(
+ descriptor->field(i), messageBitIndex, builderBitIndex, context);
+ field_generators_[i].reset(generator);
+ messageBitIndex += generator->GetNumBitsForMessage();
+ builderBitIndex += generator->GetNumBitsForBuilder();
+ }
+}
+
+template<>
+FieldGeneratorMap<ImmutableFieldLiteGenerator>::~FieldGeneratorMap() {}
+
void SetCommonFieldVariables(const FieldDescriptor* descriptor,
const FieldGeneratorInfo* info,
diff --git a/src/google/protobuf/compiler/java/java_field.h b/src/google/protobuf/compiler/java/java_field.h
index 1cf360c1..00f3c601 100644
--- a/src/google/protobuf/compiler/java/java_field.h
+++ b/src/google/protobuf/compiler/java/java_field.h
@@ -83,7 +83,6 @@ class ImmutableFieldGenerator {
virtual void GenerateSerializedSizeCode(io::Printer* printer) const = 0;
virtual void GenerateFieldBuilderInitializationCode(io::Printer* printer)
const = 0;
- virtual void GenerateStaticInitializationCode(io::Printer* printer) const {}
virtual void GenerateEqualsCode(io::Printer* printer) const = 0;
virtual void GenerateHashCode(io::Printer* printer) const = 0;
@@ -94,6 +93,37 @@ class ImmutableFieldGenerator {
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableFieldGenerator);
};
+class ImmutableFieldLiteGenerator {
+ public:
+ ImmutableFieldLiteGenerator() {}
+ virtual ~ImmutableFieldLiteGenerator();
+
+ virtual int GetNumBitsForMessage() const = 0;
+ virtual int GetNumBitsForBuilder() const = 0;
+ virtual void GenerateInterfaceMembers(io::Printer* printer) const = 0;
+ virtual void GenerateMembers(io::Printer* printer) const = 0;
+ virtual void GenerateBuilderMembers(io::Printer* printer) const = 0;
+ virtual void GenerateInitializationCode(io::Printer* printer) const = 0;
+ virtual void GenerateMergingCode(io::Printer* printer) const = 0;
+ virtual void GenerateDynamicMethodMakeImmutableCode(io::Printer* printer)
+ const = 0;
+ virtual void GenerateParsingCode(io::Printer* printer) const = 0;
+ virtual void GenerateParsingCodeFromPacked(io::Printer* printer) const;
+ virtual void GenerateParsingDoneCode(io::Printer* printer) const = 0;
+ virtual void GenerateSerializationCode(io::Printer* printer) const = 0;
+ virtual void GenerateSerializedSizeCode(io::Printer* printer) const = 0;
+ virtual void GenerateFieldBuilderInitializationCode(io::Printer* printer)
+ const = 0;
+
+ virtual void GenerateEqualsCode(io::Printer* printer) const = 0;
+ virtual void GenerateHashCode(io::Printer* printer) const = 0;
+
+ virtual string GetBoxedType() const = 0;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableFieldLiteGenerator);
+};
+
// Convenience class which constructs FieldGenerators for a Descriptor.
template<typename FieldGeneratorType>
diff --git a/src/google/protobuf/compiler/java/java_file.cc b/src/google/protobuf/compiler/java/java_file.cc
index 4a1f4529..68b47ee1 100644
--- a/src/google/protobuf/compiler/java/java_file.cc
+++ b/src/google/protobuf/compiler/java/java_file.cc
@@ -35,10 +35,10 @@
#include <google/protobuf/compiler/java/java_file.h>
#include <memory>
-#include <set>
#ifndef _SHARED_PTR_H
#include <google/protobuf/stubs/shared_ptr.h>
#endif
+#include <set>
#include <google/protobuf/compiler/java/java_context.h>
#include <google/protobuf/compiler/java/java_enum.h>
@@ -153,6 +153,12 @@ void CollectExtensions(const FileDescriptorProto& file_proto,
}
}
+// Compare two field descriptors, returning true if the first should come
+// before the second.
+bool CompareFieldsByName(const FieldDescriptor *a, const FieldDescriptor *b) {
+ return a->full_name() < b->full_name();
+}
+
// Our static initialization methods can become very, very large.
// So large that if we aren't careful we end up blowing the JVM's
// 64K bytes of bytecode/method. Fortunately, since these static
@@ -166,7 +172,6 @@ void MaybeRestartJavaMethod(io::Printer* printer,
int *method_num,
const char *chain_statement,
const char *method_decl) {
-
// The goal here is to stay under 64K bytes of jvm bytecode/method,
// since otherwise we hit a hardcoded limit in the jvm and javac will
// then fail with the error "code too large". This limit lets our
@@ -184,6 +189,7 @@ void MaybeRestartJavaMethod(io::Printer* printer,
}
}
+
} // namespace
FileGenerator::FileGenerator(const FileDescriptor* file, bool immutable_api)
diff --git a/src/google/protobuf/compiler/java/java_generator_factory.cc b/src/google/protobuf/compiler/java/java_generator_factory.cc
index 2d1437f0..92ef851b 100644
--- a/src/google/protobuf/compiler/java/java_generator_factory.cc
+++ b/src/google/protobuf/compiler/java/java_generator_factory.cc
@@ -38,6 +38,7 @@
#include <google/protobuf/compiler/java/java_field.h>
#include <google/protobuf/compiler/java/java_helpers.h>
#include <google/protobuf/compiler/java/java_message.h>
+#include <google/protobuf/compiler/java/java_message_lite.h>
#include <google/protobuf/compiler/java/java_service.h>
namespace google {
@@ -57,7 +58,12 @@ ImmutableGeneratorFactory::~ImmutableGeneratorFactory() {}
MessageGenerator* ImmutableGeneratorFactory::NewMessageGenerator(
const Descriptor* descriptor) const {
- return new ImmutableMessageGenerator(descriptor, context_);
+ if (descriptor->file()->options().optimize_for() ==
+ FileOptions::LITE_RUNTIME) {
+ return new ImmutableMessageLiteGenerator(descriptor, context_);
+ } else {
+ return new ImmutableMessageGenerator(descriptor, context_);
+ }
}
ExtensionGenerator* ImmutableGeneratorFactory::NewExtensionGenerator(
diff --git a/src/google/protobuf/compiler/java/java_helpers.h b/src/google/protobuf/compiler/java/java_helpers.h
index 62efbefa..96d2545f 100644
--- a/src/google/protobuf/compiler/java/java_helpers.h
+++ b/src/google/protobuf/compiler/java/java_helpers.h
@@ -196,12 +196,6 @@ inline bool HasDescriptorMethods(const FileDescriptor* descriptor) {
FileOptions::LITE_RUNTIME;
}
-inline bool HasNestedBuilders(const Descriptor* descriptor) {
- // The proto-lite version doesn't support nested builders.
- return descriptor->file()->options().optimize_for() !=
- FileOptions::LITE_RUNTIME;
-}
-
// Should we generate generic services for this file?
inline bool HasGenericServices(const FileDescriptor *file) {
return file->service_count() > 0 &&
@@ -330,6 +324,10 @@ inline bool IsMapEntry(const Descriptor* descriptor) {
return descriptor->options().map_entry();
}
+inline bool IsMapField(const FieldDescriptor* descriptor) {
+ return descriptor->is_map();
+}
+
inline bool PreserveUnknownFields(const Descriptor* descriptor) {
return descriptor->file()->syntax() != FileDescriptor::SYNTAX_PROTO3;
}
diff --git a/src/google/protobuf/compiler/java/java_lazy_message_field.cc b/src/google/protobuf/compiler/java/java_lazy_message_field.cc
index 6e29a40b..0de8cbe5 100644
--- a/src/google/protobuf/compiler/java/java_lazy_message_field.cc
+++ b/src/google/protobuf/compiler/java/java_lazy_message_field.cc
@@ -72,14 +72,12 @@ GenerateMembers(io::Printer* printer) const {
printer->Print(variables_,
"$deprecation$public $type$ get$capitalized_name$() {\n"
" return ($type$) $name$_.getValue($type$.getDefaultInstance());\n"
- "}\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n"
- " return $name$_;\n"
- "}\n");
- }
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n"
+ " return $name$_;\n"
+ "}\n");
}
void ImmutableLazyMessageFieldGenerator::
@@ -92,14 +90,12 @@ GenerateBuilderMembers(io::Printer* printer) const {
"private com.google.protobuf.LazyFieldLite $name$_ =\n"
" new com.google.protobuf.LazyFieldLite();\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- printer->Print(variables_,
- // If this builder is non-null, it is used and the other fields are
- // ignored.
- "private com.google.protobuf.SingleFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;"
- "\n");
- }
+ printer->Print(variables_,
+ // If this builder is non-null, it is used and the other fields are
+ // ignored.
+ "private com.google.protobuf.SingleFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;"
+ "\n");
// The comments above the methods below are based on a hypothetical
// field of type "Field" called "Field".
@@ -179,39 +175,37 @@ GenerateBuilderMembers(io::Printer* printer) const {
"$clear_has_field_bit_builder$;\n"
"return this;\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$.Builder get$capitalized_name$Builder() {\n"
- " $set_has_field_bit_builder$;\n"
- " $on_changed$\n"
- " return get$capitalized_name$FieldBuilder().getBuilder();\n"
- "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n"
- " if ($name$Builder_ != null) {\n"
- " return $name$Builder_.getMessageOrBuilder();\n"
- " } else {\n"
- " return $name$_;\n"
- " }\n"
- "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "private com.google.protobuf.SingleFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder> \n"
- " get$capitalized_name$FieldBuilder() {\n"
- " if ($name$Builder_ == null) {\n"
- " $name$Builder_ = new com.google.protobuf.SingleFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder>(\n"
- " $name$_,\n"
- " getParentForChildren(),\n"
- " isClean());\n"
- " $name$_ = null;\n"
- " }\n"
- " return $name$Builder_;\n"
- "}\n");
- }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$.Builder get$capitalized_name$Builder() {\n"
+ " $set_has_field_bit_builder$;\n"
+ " $on_changed$\n"
+ " return get$capitalized_name$FieldBuilder().getBuilder();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n"
+ " if ($name$Builder_ != null) {\n"
+ " return $name$Builder_.getMessageOrBuilder();\n"
+ " } else {\n"
+ " return $name$_;\n"
+ " }\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private com.google.protobuf.SingleFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder> \n"
+ " get$capitalized_name$FieldBuilder() {\n"
+ " if ($name$Builder_ == null) {\n"
+ " $name$Builder_ = new com.google.protobuf.SingleFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder>(\n"
+ " $name$_,\n"
+ " getParentForChildren(),\n"
+ " isClean());\n"
+ " $name$_ = null;\n"
+ " }\n"
+ " return $name$Builder_;\n"
+ "}\n");
}
@@ -538,14 +532,12 @@ GenerateBuilderMembers(io::Printer* printer) const {
"}\n"
"\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- printer->Print(variables_,
- // If this builder is non-null, it is used and the other fields are
- // ignored.
- "private com.google.protobuf.RepeatedFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;\n"
- "\n");
- }
+ printer->Print(variables_,
+ // If this builder is non-null, it is used and the other fields are
+ // ignored.
+ "private com.google.protobuf.RepeatedFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;\n"
+ "\n");
// The comments above the methods below are based on a hypothetical
// repeated field of type "Field" called "RepeatedField".
@@ -723,70 +715,68 @@ GenerateBuilderMembers(io::Printer* printer) const {
"return this;\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$.Builder get$capitalized_name$Builder(\n"
- " int index) {\n"
- " return get$capitalized_name$FieldBuilder().getBuilder(index);\n"
- "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$.Builder get$capitalized_name$Builder(\n"
+ " int index) {\n"
+ " return get$capitalized_name$FieldBuilder().getBuilder(index);\n"
+ "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder(\n"
- " int index) {\n"
- " if ($name$Builder_ == null) {\n"
- " return $name$_.get(index);"
- " } else {\n"
- " return $name$Builder_.getMessageOrBuilder(index);\n"
- " }\n"
- "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder(\n"
+ " int index) {\n"
+ " if ($name$Builder_ == null) {\n"
+ " return $name$_.get(index);"
+ " } else {\n"
+ " return $name$Builder_.getMessageOrBuilder(index);\n"
+ " }\n"
+ "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public java.util.List<? extends $type$OrBuilder> \n"
- " get$capitalized_name$OrBuilderList() {\n"
- " if ($name$Builder_ != null) {\n"
- " return $name$Builder_.getMessageOrBuilderList();\n"
- " } else {\n"
- " return java.util.Collections.unmodifiableList($name$_);\n"
- " }\n"
- "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<? extends $type$OrBuilder> \n"
+ " get$capitalized_name$OrBuilderList() {\n"
+ " if ($name$Builder_ != null) {\n"
+ " return $name$Builder_.getMessageOrBuilderList();\n"
+ " } else {\n"
+ " return java.util.Collections.unmodifiableList($name$_);\n"
+ " }\n"
+ "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$.Builder add$capitalized_name$Builder() {\n"
- " return get$capitalized_name$FieldBuilder().addBuilder(\n"
- " $type$.getDefaultInstance());\n"
- "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$.Builder add$capitalized_name$Builder(\n"
- " int index) {\n"
- " return get$capitalized_name$FieldBuilder().addBuilder(\n"
- " index, $type$.getDefaultInstance());\n"
- "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public java.util.List<$type$.Builder> \n"
- " get$capitalized_name$BuilderList() {\n"
- " return get$capitalized_name$FieldBuilder().getBuilderList();\n"
- "}\n"
- "private com.google.protobuf.RepeatedFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder> \n"
- " get$capitalized_name$FieldBuilder() {\n"
- " if ($name$Builder_ == null) {\n"
- " $name$Builder_ = new com.google.protobuf.RepeatedFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder>(\n"
- " $name$_,\n"
- " $get_mutable_bit_builder$,\n"
- " getParentForChildren(),\n"
- " isClean());\n"
- " $name$_ = null;\n"
- " }\n"
- " return $name$Builder_;\n"
- "}\n");
- }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$.Builder add$capitalized_name$Builder() {\n"
+ " return get$capitalized_name$FieldBuilder().addBuilder(\n"
+ " $type$.getDefaultInstance());\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$.Builder add$capitalized_name$Builder(\n"
+ " int index) {\n"
+ " return get$capitalized_name$FieldBuilder().addBuilder(\n"
+ " index, $type$.getDefaultInstance());\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<$type$.Builder> \n"
+ " get$capitalized_name$BuilderList() {\n"
+ " return get$capitalized_name$FieldBuilder().getBuilderList();\n"
+ "}\n"
+ "private com.google.protobuf.RepeatedFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder> \n"
+ " get$capitalized_name$FieldBuilder() {\n"
+ " if ($name$Builder_ == null) {\n"
+ " $name$Builder_ = new com.google.protobuf.RepeatedFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder>(\n"
+ " $name$_,\n"
+ " $get_mutable_bit_builder$,\n"
+ " getParentForChildren(),\n"
+ " isClean());\n"
+ " $name$_ = null;\n"
+ " }\n"
+ " return $name$Builder_;\n"
+ "}\n");
}
void RepeatedImmutableLazyMessageFieldGenerator::
diff --git a/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc b/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc
new file mode 100644
index 00000000..283ba1d3
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc
@@ -0,0 +1,708 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: niwasaki@google.com (Naoki Iwasaki)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#include <google/protobuf/compiler/java/java_context.h>
+#include <google/protobuf/compiler/java/java_lazy_message_field_lite.h>
+#include <google/protobuf/compiler/java/java_doc_comment.h>
+#include <google/protobuf/compiler/java/java_helpers.h>
+#include <google/protobuf/io/printer.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+ImmutableLazyMessageFieldLiteGenerator::
+ImmutableLazyMessageFieldLiteGenerator(
+ const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : ImmutableMessageFieldLiteGenerator(
+ descriptor, messageBitIndex, builderBitIndex, context) {
+}
+
+ImmutableLazyMessageFieldLiteGenerator::
+~ImmutableLazyMessageFieldLiteGenerator() {}
+
+void ImmutableLazyMessageFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(variables_,
+ "private com.google.protobuf.LazyFieldLite $name$_ =\n"
+ " new com.google.protobuf.LazyFieldLite();\n");
+
+ PrintExtraFieldInfo(variables_, printer);
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $get_has_field_bit_message$;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return ($type$) $name$_.getValue($type$.getDefaultInstance());\n"
+ "}\n");
+
+ // Field.Builder setField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$($type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " $name$_.setValue(value);\n"
+ " $set_has_field_bit_message$;\n"
+ "}\n");
+
+ // Field.Builder setField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " $name$_.setValue(builderForValue.build());\n"
+ " $set_has_field_bit_message$;\n"
+ "}\n");
+
+ // Field.Builder mergeField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void merge$capitalized_name$($type$ value) {\n"
+ " if ($get_has_field_bit_message$ &&\n"
+ " !$name$_.containsDefaultInstance()) {\n"
+ " $name$_.setValue(\n"
+ " $type$.newBuilder(\n"
+ " get$capitalized_name$()).mergeFrom(value).buildPartial());\n"
+ " } else {\n"
+ " $name$_.setValue(value);\n"
+ " }\n"
+ " $set_has_field_bit_message$;\n"
+ "}\n");
+
+ // Field.Builder clearField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " $name$_.clear();\n"
+ " $clear_has_field_bit_message$;\n"
+ "}\n");
+}
+
+void ImmutableLazyMessageFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ // The comments above the methods below are based on a hypothetical
+ // field of type "Field" called "Field".
+
+ // boolean hasField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return instance.has$capitalized_name$();\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+
+ // Field.Builder setField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder setField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(builderForValue);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder mergeField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder merge$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.merge$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder clearField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+}
+
+
+void ImmutableLazyMessageFieldLiteGenerator::
+GenerateInitializationCode(io::Printer* printer) const {
+ printer->Print(variables_, "$name$_.clear();\n");
+}
+
+void ImmutableLazyMessageFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (other.has$capitalized_name$()) {\n"
+ " $name$_.merge(other.$name$_);\n"
+ " $set_has_field_bit_message$;\n"
+ "}\n");
+}
+
+void ImmutableLazyMessageFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "$name$_.setByteString(input.readBytes(), extensionRegistry);\n");
+ printer->Print(variables_,
+ "$set_has_field_bit_message$;\n");
+}
+
+void ImmutableLazyMessageFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ // Do not de-serialize lazy fields.
+ printer->Print(variables_,
+ "if ($get_has_field_bit_message$) {\n"
+ " output.writeBytes($number$, $name$_.toByteString());\n"
+ "}\n");
+}
+
+void ImmutableLazyMessageFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($get_has_field_bit_message$) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeLazyFieldSize($number$, $name$_);\n"
+ "}\n");
+}
+
+// ===================================================================
+
+ImmutableLazyMessageOneofFieldLiteGenerator::
+ImmutableLazyMessageOneofFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : ImmutableLazyMessageFieldLiteGenerator(
+ descriptor, messageBitIndex, builderBitIndex, context) {
+ const OneofGeneratorInfo* info =
+ context->GetOneofGeneratorInfo(descriptor->containing_oneof());
+ SetCommonOneofVariables(descriptor, info, &variables_);
+ variables_["lazy_type"] = "com.google.protobuf.LazyFieldLite";
+}
+
+ImmutableLazyMessageOneofFieldLiteGenerator::
+~ImmutableLazyMessageOneofFieldLiteGenerator() {}
+
+void ImmutableLazyMessageOneofFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ PrintExtraFieldInfo(variables_, printer);
+ WriteFieldDocComment(printer, descriptor_);
+
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $has_oneof_case_message$;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " return ($type$) (($lazy_type$) $oneof_name$_).getValue(\n"
+ " $type$.getDefaultInstance());\n"
+ " }\n"
+ " return $type$.getDefaultInstance();\n"
+ "}\n");
+
+ // Field.Builder setField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$($type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " if (!($has_oneof_case_message$)) {\n"
+ " $oneof_name$_ = new $lazy_type$();\n"
+ " $set_oneof_case_message$;\n"
+ " }\n"
+ " (($lazy_type$) $oneof_name$_).setValue(value);\n"
+ "}\n");
+
+ // Field.Builder setField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " if (!($has_oneof_case_message$)) {\n"
+ " $oneof_name$_ = new $lazy_type$();\n"
+ " $set_oneof_case_message$;\n"
+ " }\n"
+ " (($lazy_type$) $oneof_name$_).setValue(builderForValue.build());\n"
+ "}\n");
+
+ // Field.Builder mergeField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void merge$capitalized_name$($type$ value) {\n"
+ " if ($has_oneof_case_message$ &&\n"
+ " !(($lazy_type$) $oneof_name$_).containsDefaultInstance()) {\n"
+ " (($lazy_type$) $oneof_name$_).setValue(\n"
+ " $type$.newBuilder(\n"
+ " get$capitalized_name$()).mergeFrom(value).buildPartial());\n"
+ " } else {\n"
+ " if (!($has_oneof_case_message$)) {\n"
+ " $oneof_name$_ = new $lazy_type$();\n"
+ " $set_oneof_case_message$;\n"
+ " }\n"
+ " (($lazy_type$) $oneof_name$_).setValue(value);\n"
+ " }\n"
+ "}\n");
+
+ // Field.Builder clearField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " $clear_oneof_case_message$;\n"
+ " $oneof_name$_ = null;\n"
+ " }\n"
+ "}\n");
+}
+
+void ImmutableLazyMessageOneofFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ // boolean hasField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return instance.has$capitalized_name$();\n"
+ "}\n");
+
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+
+ // Field.Builder setField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder setField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(builderForValue);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder mergeField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder merge$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.merge$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder clearField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void ImmutableLazyMessageOneofFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (!($has_oneof_case_message$)) {\n"
+ " $oneof_name$_ = new $lazy_type$();\n"
+ "}\n"
+ "(($lazy_type$) $oneof_name$_).merge(\n"
+ " ($lazy_type$) other.$oneof_name$_);\n"
+ "$set_oneof_case_message$;\n");
+}
+
+void ImmutableLazyMessageOneofFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (!($has_oneof_case_message$)) {\n"
+ " $oneof_name$_ = new $lazy_type$();\n"
+ "}\n"
+ "(($lazy_type$) $oneof_name$_).setByteString(\n"
+ " input.readBytes(), extensionRegistry);\n"
+ "$set_oneof_case_message$;\n");
+}
+
+void ImmutableLazyMessageOneofFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ // Do not de-serialize lazy fields.
+ printer->Print(variables_,
+ "if ($has_oneof_case_message$) {\n"
+ " output.writeBytes(\n"
+ " $number$, (($lazy_type$) $oneof_name$_).toByteString());\n"
+ "}\n");
+}
+
+void ImmutableLazyMessageOneofFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($has_oneof_case_message$) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeLazyFieldSize($number$, ($lazy_type$) $oneof_name$_);\n"
+ "}\n");
+}
+
+// ===================================================================
+
+RepeatedImmutableLazyMessageFieldLiteGenerator::
+RepeatedImmutableLazyMessageFieldLiteGenerator(
+ const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : RepeatedImmutableMessageFieldLiteGenerator(
+ descriptor, messageBitIndex, builderBitIndex, context) {
+}
+
+
+RepeatedImmutableLazyMessageFieldLiteGenerator::
+~RepeatedImmutableLazyMessageFieldLiteGenerator() {}
+
+void RepeatedImmutableLazyMessageFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(variables_,
+ "private com.google.protobuf.Internal.ProtobufList<\n"
+ " com.google.protobuf.LazyFieldLite> $name$_;\n");
+ PrintExtraFieldInfo(variables_, printer);
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<$type$>\n"
+ " get$capitalized_name$List() {\n"
+ " java.util.List<$type$> list =\n"
+ " new java.util.ArrayList<$type$>($name$_.size());\n"
+ " for (com.google.protobuf.LazyFieldLite lf : $name$_) {\n"
+ " list.add(($type$) lf.getValue($type$.getDefaultInstance()));\n"
+ " }\n"
+ // TODO(dweis): Make this list immutable?
+ " return list;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<? extends $type$OrBuilder>\n"
+ " get$capitalized_name$OrBuilderList() {\n"
+ " return get$capitalized_name$List();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Count() {\n"
+ " return $name$_.size();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$(int index) {\n"
+ " return ($type$)\n"
+ " $name$_.get(index).getValue($type$.getDefaultInstance());\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder(\n"
+ " int index) {\n"
+ " return ($type$OrBuilder)\n"
+ " $name$_.get(index).getValue($type$.getDefaultInstance());\n"
+ "}\n");
+
+ printer->Print(variables_,
+ "private void ensure$capitalized_name$IsMutable() {\n"
+ " if (!$is_mutable$) {\n"
+ " $name$_ = newProtobufList($name$_);\n"
+ " }\n"
+ "}\n"
+ "\n");
+
+ // Builder setRepeatedField(int index, Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.set(\n"
+ " index, com.google.protobuf.LazyFieldLite.fromValue(value));\n"
+ "}\n");
+
+ // Builder setRepeatedField(int index, Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " int index, $type$.Builder builderForValue) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.set(index, com.google.protobuf.LazyFieldLite.fromValue(\n"
+ " builderForValue.build()));\n"
+ "}\n");
+
+ // Builder addRepeatedField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$($type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(com.google.protobuf.LazyFieldLite.fromValue(value));\n"
+ "}\n");
+
+ // Builder addRepeatedField(int index, Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(\n"
+ " index, com.google.protobuf.LazyFieldLite.fromValue(value));\n"
+ "}\n");
+
+ // Builder addRepeatedField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(com.google.protobuf.LazyFieldLite.fromValue(\n"
+ " builderForValue.build()));\n"
+ "}\n");
+
+ // Builder addRepeatedField(int index, Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$(\n"
+ " int index, $type$.Builder builderForValue) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(index, com.google.protobuf.LazyFieldLite.fromValue(\n"
+ " builderForValue.build()));\n"
+ "}\n");
+
+ // Builder addAllRepeatedField(Iterable<Field> values)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void addAll$capitalized_name$(\n"
+ " java.lang.Iterable<? extends $type$> values) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " for (com.google.protobuf.MessageLite v : values) {\n"
+ " $name$_.add(com.google.protobuf.LazyFieldLite.fromValue(v));\n"
+ " }\n"
+ "}\n");
+
+ // Builder clearAllRepeatedField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " $name$_ = emptyProtobufList();\n"
+ "}\n");
+
+ // Builder removeRepeatedField(int index)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void remove$capitalized_name$(int index) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.remove(index);\n"
+ "}\n");
+}
+
+void RepeatedImmutableLazyMessageFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ // List<Field> getRepeatedFieldList()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<$type$> get$capitalized_name$List() {\n"
+ " return java.util.Collections.unmodifiableList(\n"
+ " instance.get$capitalized_name$List());\n"
+ "}\n");
+
+ // int getRepeatedFieldCount()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Count() {\n"
+ " return instance.get$capitalized_name$Count();\n"
+ "}\n");
+
+ // Field getRepeatedField(int index)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$(int index) {\n"
+ " return instance.get$capitalized_name$(index);\n"
+ "}\n");
+
+ // Builder setRepeatedField(int index, Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(index, value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder setRepeatedField(int index, Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " int index, $type$.Builder builderForValue) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(index, builderForValue);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder addRepeatedField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder addRepeatedField(int index, Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(index, value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder addRepeatedField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(builderForValue);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder addRepeatedField(int index, Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$(\n"
+ " int index, $type$.Builder builderForValue) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(index, builderForValue);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder addAllRepeatedField(Iterable<Field> values)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder addAll$capitalized_name$(\n"
+ " java.lang.Iterable<? extends $type$> values) {\n"
+ " copyOnWrite();\n"
+ " instance.addAll$capitalized_name$(values);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder clearAllRepeatedField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder removeRepeatedField(int index)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder remove$capitalized_name$(int index) {\n"
+ " copyOnWrite();\n"
+ " instance.remove$capitalized_name$(index);\n"
+ " return this;\n"
+ "}\n");
+}
+
+void RepeatedImmutableLazyMessageFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (!$is_mutable$) {\n"
+ " $name$_ = newProtobufList();\n"
+ "}\n"
+ "$name$_.add(new com.google.protobuf.LazyFieldLite(\n"
+ " extensionRegistry, input.readBytes()));\n");
+}
+
+void RepeatedImmutableLazyMessageFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " output.writeBytes($number$, $name$_.get(i).toByteString());\n"
+ "}\n");
+}
+
+void RepeatedImmutableLazyMessageFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeLazyFieldSize($number$, $name$_.get(i));\n"
+ "}\n");
+}
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/java/java_lazy_message_field_lite.h b/src/google/protobuf/compiler/java/java_lazy_message_field_lite.h
new file mode 100644
index 00000000..e85ec0f3
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_lazy_message_field_lite.h
@@ -0,0 +1,118 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: niwasaki@google.com (Naoki Iwasaki)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_LAZY_MESSAGE_FIELD_LITE_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVA_LAZY_MESSAGE_FIELD_LITE_H__
+
+#include <google/protobuf/compiler/java/java_field.h>
+#include <google/protobuf/compiler/java/java_message_field_lite.h>
+
+namespace google {
+namespace protobuf {
+ namespace compiler {
+ namespace java {
+ class Context; // context.h
+ }
+ }
+}
+
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+class ImmutableLazyMessageFieldLiteGenerator
+ : public ImmutableMessageFieldLiteGenerator {
+ public:
+ explicit ImmutableLazyMessageFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutableLazyMessageFieldLiteGenerator();
+
+ // overroads ImmutableMessageFieldLiteGenerator ------------------------------
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateInitializationCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableLazyMessageFieldLiteGenerator);
+};
+
+class ImmutableLazyMessageOneofFieldLiteGenerator
+ : public ImmutableLazyMessageFieldLiteGenerator {
+ public:
+ ImmutableLazyMessageOneofFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutableLazyMessageOneofFieldLiteGenerator();
+
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableLazyMessageOneofFieldLiteGenerator);
+};
+
+class RepeatedImmutableLazyMessageFieldLiteGenerator
+ : public RepeatedImmutableMessageFieldLiteGenerator {
+ public:
+ explicit RepeatedImmutableLazyMessageFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~RepeatedImmutableLazyMessageFieldLiteGenerator();
+
+ // overroads RepeatedImmutableMessageFieldLiteGenerator ----------------------
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedImmutableLazyMessageFieldLiteGenerator);
+};
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_LAZY_MESSAGE_FIELD_LITE_H__
diff --git a/src/google/protobuf/compiler/java/java_map_field.cc b/src/google/protobuf/compiler/java/java_map_field.cc
index cf1ef589..f25970e5 100644
--- a/src/google/protobuf/compiler/java/java_map_field.cc
+++ b/src/google/protobuf/compiler/java/java_map_field.cc
@@ -133,9 +133,11 @@ void SetMessageVariables(const FieldDescriptor* descriptor,
(*variables)["set_mutable_bit_parser"] =
GenerateSetBitMutableLocal(builderBitIndex);
+ (*variables)["default_entry"] = (*variables)["capitalized_name"] +
+ "DefaultEntryHolder.defaultEntry";
if (HasDescriptorMethods(descriptor->file())) {
(*variables)["lite"] = "";
- (*variables)["map_field_parameter"] = (*variables)["name"] + "DefaultEntry";
+ (*variables)["map_field_parameter"] = (*variables)["default_entry"];
(*variables)["descriptor"] =
name_resolver->GetImmutableClassName(descriptor->file()) +
".internal_" + UniqueFileScopeIdentifier(descriptor->message_type()) +
@@ -198,26 +200,20 @@ GenerateInterfaceMembers(io::Printer* printer) const {
}
void ImmutableMapFieldGenerator::
-GenerateStaticInitializationCode(io::Printer* printer) const {
- printer->Print(
- variables_,
- "$name$DefaultEntry =\n"
- " com.google.protobuf.MapEntry$lite$\n"
- " .<$type_parameters$>newDefaultInstance(\n"
- " $descriptor$\n"
- " $key_wire_type$,\n"
- " $key_default_value$,\n"
- " $value_wire_type$,\n"
- " $value_default_value$);\n"
- "\n");
-}
-
-void ImmutableMapFieldGenerator::
GenerateMembers(io::Printer* printer) const {
printer->Print(
variables_,
- "private static final com.google.protobuf.MapEntry$lite$<\n"
- " $type_parameters$> $name$DefaultEntry;\n");
+ "private static final class $capitalized_name$DefaultEntryHolder {\n"
+ " static final com.google.protobuf.MapEntry$lite$<\n"
+ " $type_parameters$> defaultEntry =\n"
+ " com.google.protobuf.MapEntry$lite$\n"
+ " .<$type_parameters$>newDefaultInstance(\n"
+ " $descriptor$\n"
+ " $key_wire_type$,\n"
+ " $key_default_value$,\n"
+ " $value_wire_type$,\n"
+ " $value_default_value$);\n"
+ "}\n");
printer->Print(
variables_,
"private com.google.protobuf.MapField$lite$<\n"
@@ -291,7 +287,10 @@ GenerateBuilderMembers(io::Printer* printer) const {
" if ($name$_ == null) {\n"
" $name$_ = com.google.protobuf.MapField$lite$.newMapField(\n"
" $map_field_parameter$);\n"
- " }\n"
+ " }\n"
+ " if (!$name$_.isMutable()) {\n"
+ " $name$_ = $name$_.copy();\n"
+ " }\n"
" return $name$_;\n"
"}\n");
if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
@@ -381,10 +380,8 @@ void ImmutableMapFieldGenerator::
GenerateBuildingCode(io::Printer* printer) const {
printer->Print(
variables_,
- // We do a copy of the map field to ensure that the built result is
- // immutable. Implementation of this copy() method can do copy-on-write
- // to defer this copy until further modifications are made on the field.
- "result.$name$_ = internalGet$capitalized_name$().copy();\n");
+ "result.$name$_ = internalGet$capitalized_name$();\n"
+ "result.$name$_.makeImmutable();\n");
}
void ImmutableMapFieldGenerator::
@@ -402,7 +399,7 @@ GenerateParsingCode(io::Printer* printer) const {
variables_,
"com.google.protobuf.ByteString bytes = input.readBytes();\n"
"com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
- "$name$ = $name$DefaultEntry.getParserForType().parseFrom(bytes);\n");
+ "$name$ = $default_entry$.getParserForType().parseFrom(bytes);\n");
printer->Print(
variables_,
"if ($value_enum_type$.valueOf($name$.getValue()) == null) {\n"
@@ -415,7 +412,7 @@ GenerateParsingCode(io::Printer* printer) const {
variables_,
"com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
"$name$ = input.readMessage(\n"
- " $name$DefaultEntry.getParserForType(), extensionRegistry);\n"
+ " $default_entry$.getParserForType(), extensionRegistry);\n"
"$name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n");
}
}
@@ -432,7 +429,7 @@ GenerateSerializationCode(io::Printer* printer) const {
"for (java.util.Map.Entry<$type_parameters$> entry\n"
" : internalGet$capitalized_name$().getMap().entrySet()) {\n"
" com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
- " $name$ = $name$DefaultEntry.newBuilderForType()\n"
+ " $name$ = $default_entry$.newBuilderForType()\n"
" .setKey(entry.getKey())\n"
" .setValue(entry.getValue())\n"
" .build();\n"
@@ -447,7 +444,7 @@ GenerateSerializedSizeCode(io::Printer* printer) const {
"for (java.util.Map.Entry<$type_parameters$> entry\n"
" : internalGet$capitalized_name$().getMap().entrySet()) {\n"
" com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
- " $name$ = $name$DefaultEntry.newBuilderForType()\n"
+ " $name$ = $default_entry$.newBuilderForType()\n"
" .setKey(entry.getKey())\n"
" .setValue(entry.getValue())\n"
" .build();\n"
diff --git a/src/google/protobuf/compiler/java/java_map_field.h b/src/google/protobuf/compiler/java/java_map_field.h
index 3e6dd973..80a94f45 100644
--- a/src/google/protobuf/compiler/java/java_map_field.h
+++ b/src/google/protobuf/compiler/java/java_map_field.h
@@ -60,7 +60,6 @@ class ImmutableMapFieldGenerator : public ImmutableFieldGenerator {
void GenerateSerializationCode(io::Printer* printer) const;
void GenerateSerializedSizeCode(io::Printer* printer) const;
void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
- void GenerateStaticInitializationCode(io::Printer* printer) const;
void GenerateEqualsCode(io::Printer* printer) const;
void GenerateHashCode(io::Printer* printer) const;
diff --git a/src/google/protobuf/compiler/java/java_map_field_lite.cc b/src/google/protobuf/compiler/java/java_map_field_lite.cc
new file mode 100644
index 00000000..ccc1b32e
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_map_field_lite.cc
@@ -0,0 +1,461 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include <google/protobuf/compiler/java/java_map_field_lite.h>
+
+#include <google/protobuf/compiler/java/java_context.h>
+#include <google/protobuf/compiler/java/java_doc_comment.h>
+#include <google/protobuf/compiler/java/java_helpers.h>
+#include <google/protobuf/compiler/java/java_name_resolver.h>
+#include <google/protobuf/io/printer.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+namespace {
+
+const FieldDescriptor* KeyField(const FieldDescriptor* descriptor) {
+ GOOGLE_CHECK_EQ(FieldDescriptor::TYPE_MESSAGE, descriptor->type());
+ const Descriptor* message = descriptor->message_type();
+ GOOGLE_CHECK(message->options().map_entry());
+ return message->FindFieldByName("key");
+}
+
+const FieldDescriptor* ValueField(const FieldDescriptor* descriptor) {
+ GOOGLE_CHECK_EQ(FieldDescriptor::TYPE_MESSAGE, descriptor->type());
+ const Descriptor* message = descriptor->message_type();
+ GOOGLE_CHECK(message->options().map_entry());
+ return message->FindFieldByName("value");
+}
+
+string TypeName(const FieldDescriptor* field,
+ ClassNameResolver* name_resolver,
+ bool boxed) {
+ if (GetJavaType(field) == JAVATYPE_MESSAGE) {
+ return name_resolver->GetImmutableClassName(field->message_type());
+ } else if (GetJavaType(field) == JAVATYPE_ENUM) {
+ return name_resolver->GetImmutableClassName(field->enum_type());
+ } else {
+ return boxed ? BoxedPrimitiveTypeName(GetJavaType(field))
+ : PrimitiveTypeName(GetJavaType(field));
+ }
+}
+
+string WireType(const FieldDescriptor* field) {
+ return "com.google.protobuf.WireFormat.FieldType." +
+ string(FieldTypeName(field->type()));
+}
+
+void SetMessageVariables(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ const FieldGeneratorInfo* info,
+ ClassNameResolver* name_resolver,
+ map<string, string>* variables) {
+ SetCommonFieldVariables(descriptor, info, variables);
+
+ (*variables)["type"] =
+ name_resolver->GetImmutableClassName(descriptor->message_type());
+ const FieldDescriptor* key = KeyField(descriptor);
+ const FieldDescriptor* value = ValueField(descriptor);
+ (*variables)["key_type"] = TypeName(key, name_resolver, false);
+ (*variables)["boxed_key_type"] = TypeName(key, name_resolver, true);
+ (*variables)["key_wire_type"] = WireType(key);
+ (*variables)["key_default_value"] = DefaultValue(key, true, name_resolver);
+ if (GetJavaType(value) == JAVATYPE_ENUM) {
+ // We store enums as Integers internally.
+ (*variables)["value_type"] = "int";
+ (*variables)["boxed_value_type"] = "java.lang.Integer";
+ (*variables)["value_wire_type"] = WireType(value);
+ (*variables)["value_default_value"] =
+ DefaultValue(value, true, name_resolver) + ".getNumber()";
+
+ (*variables)["value_enum_type"] = TypeName(value, name_resolver, false);
+
+ if (SupportUnknownEnumValue(descriptor->file())) {
+ // Map unknown values to a special UNRECOGNIZED value if supported.
+ (*variables)["unrecognized_value"] =
+ (*variables)["value_enum_type"] + ".UNRECOGNIZED";
+ } else {
+ // Map unknown values to the default value if we don't have UNRECOGNIZED.
+ (*variables)["unrecognized_value"] =
+ DefaultValue(value, true, name_resolver);
+ }
+ } else {
+ (*variables)["value_type"] = TypeName(value, name_resolver, false);
+ (*variables)["boxed_value_type"] = TypeName(value, name_resolver, true);
+ (*variables)["value_wire_type"] = WireType(value);
+ (*variables)["value_default_value"] =
+ DefaultValue(value, true, name_resolver);
+ }
+ (*variables)["type_parameters"] =
+ (*variables)["boxed_key_type"] + ", " + (*variables)["boxed_value_type"];
+ // TODO(birdo): Add @deprecated javadoc when generating javadoc is supported
+ // by the proto compiler
+ (*variables)["deprecation"] = descriptor->options().deprecated()
+ ? "@java.lang.Deprecated " : "";
+ (*variables)["on_changed"] =
+ HasDescriptorMethods(descriptor->containing_type()) ? "onChanged();" : "";
+
+ (*variables)["default_entry"] = (*variables)["capitalized_name"] +
+ "DefaultEntryHolder.defaultEntry";
+ (*variables)["lite"] = "Lite";
+ (*variables)["descriptor"] = "";
+}
+
+} // namespace
+
+ImmutableMapFieldLiteGenerator::
+ImmutableMapFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : descriptor_(descriptor), messageBitIndex_(messageBitIndex),
+ builderBitIndex_(builderBitIndex), context_(context),
+ name_resolver_(context->GetNameResolver()) {
+ SetMessageVariables(descriptor, messageBitIndex, builderBitIndex,
+ context->GetFieldGeneratorInfo(descriptor),
+ name_resolver_, &variables_);
+}
+
+ImmutableMapFieldLiteGenerator::
+~ImmutableMapFieldLiteGenerator() {}
+
+int ImmutableMapFieldLiteGenerator::GetNumBitsForMessage() const {
+ return 0;
+}
+
+int ImmutableMapFieldLiteGenerator::GetNumBitsForBuilder() const {
+ return 0;
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateInterfaceMembers(io::Printer* printer) const {
+ if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "$deprecation$java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
+ "get$capitalized_name$();\n");
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "$deprecation$java.util.Map<$type_parameters$>\n"
+ "get$capitalized_name$Value();\n");
+ }
+ } else {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "$deprecation$java.util.Map<$type_parameters$>\n"
+ "get$capitalized_name$();\n");
+ }
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(
+ variables_,
+ "private static final class $capitalized_name$DefaultEntryHolder {\n"
+ " static final com.google.protobuf.MapEntry$lite$<\n"
+ " $type_parameters$> defaultEntry =\n"
+ " com.google.protobuf.MapEntry$lite$\n"
+ " .<$type_parameters$>newDefaultInstance(\n"
+ " $descriptor$\n"
+ " $key_wire_type$,\n"
+ " $key_default_value$,\n"
+ " $value_wire_type$,\n"
+ " $value_default_value$);\n"
+ "}\n");
+ printer->Print(
+ variables_,
+ "private com.google.protobuf.MapField$lite$<\n"
+ " $type_parameters$> $name$_ =\n"
+ " com.google.protobuf.MapField$lite$.emptyMapField();\n"
+ "private com.google.protobuf.MapField$lite$<$type_parameters$>\n"
+ "internalGet$capitalized_name$() {\n"
+ " return $name$_;\n"
+ "}\n"
+ "private com.google.protobuf.MapField$lite$<$type_parameters$>\n"
+ "internalGetMutable$capitalized_name$() {\n"
+ " if (!$name$_.isMutable()) {\n"
+ " $name$_ = $name$_.copy();\n"
+ " }\n"
+ " return $name$_;\n"
+ "}\n");
+ if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
+ printer->Print(
+ variables_,
+ "private static final\n"
+ "com.google.protobuf.Internal.MapAdapter.Converter<\n"
+ " java.lang.Integer, $value_enum_type$> $name$ValueConverter =\n"
+ " com.google.protobuf.Internal.MapAdapter.newEnumConverter(\n"
+ " $value_enum_type$.internalGetValueMap(),\n"
+ " $unrecognized_value$);\n");
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "$deprecation$\n"
+ "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
+ "get$capitalized_name$Value() {\n"
+ " return internalGet$capitalized_name$().getMap();\n"
+ "}\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "$deprecation$\n"
+ "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
+ "get$capitalized_name$() {\n"
+ " return new com.google.protobuf.Internal.MapAdapter<\n"
+ " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
+ " internalGet$capitalized_name$().getMap(),\n"
+ " $name$ValueConverter);\n"
+ "}\n");
+ } else {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "$deprecation$\n"
+ "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n"
+ " return internalGet$capitalized_name$().getMap();\n"
+ "}\n");
+ }
+
+ // Generate private setters for the builder to proxy into.
+ if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "private java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
+ "getMutable$capitalized_name$() {\n"
+ " return new com.google.protobuf.Internal.MapAdapter<\n"
+ " $boxed_key_type$, $value_enum_type$, java.lang.Integer>(\n"
+ " internalGetMutable$capitalized_name$().getMutableMap(),\n"
+ " $name$ValueConverter);\n"
+ "}\n");
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "private java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
+ "getMutable$capitalized_name$Value() {\n"
+ " return internalGetMutable$capitalized_name$().getMutableMap();\n"
+ "}\n");
+ }
+ } else {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "private java.util.Map<$type_parameters$>\n"
+ "getMutable$capitalized_name$() {\n"
+ " return internalGetMutable$capitalized_name$().getMutableMap();\n"
+ "}\n");
+ }
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ if (GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "$deprecation$\n"
+ "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
+ "get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "$deprecation$\n"
+ "public java.util.Map<$boxed_key_type$, $value_enum_type$>\n"
+ "getMutable$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " return instance.getMutable$capitalized_name$();\n"
+ "}\n");
+ if (SupportUnknownEnumValue(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "$deprecation$\n"
+ "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
+ "get$capitalized_name$Value() {\n"
+ " return instance.get$capitalized_name$Value();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "$deprecation$\n"
+ "public java.util.Map<$boxed_key_type$, $boxed_value_type$>\n"
+ "getMutable$capitalized_name$Value() {\n"
+ " copyOnWrite();\n"
+ " return instance.getMutable$capitalized_name$Value();\n"
+ "}\n");
+ }
+ } else {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "public java.util.Map<$type_parameters$> get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(
+ variables_,
+ "public java.util.Map<$type_parameters$>\n"
+ "getMutable$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " return instance.getMutable$capitalized_name$();\n"
+ "}\n");
+ }
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
+ // Nothing to initialize.
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateInitializationCode(io::Printer* printer) const {
+ // Nothing to initialize.
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ printer->Print(
+ variables_,
+ "internalGetMutable$capitalized_name$().mergeFrom(\n"
+ " other.internalGet$capitalized_name$());\n");
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "$name$_.makeImmutable();\n");
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ printer->Print(
+ variables_,
+ "if (!$name$_.isMutable()) {\n"
+ " $name$_ = $name$_.copy();\n"
+ "}\n");
+ if (!SupportUnknownEnumValue(descriptor_->file()) &&
+ GetJavaType(ValueField(descriptor_)) == JAVATYPE_ENUM) {
+ printer->Print(
+ variables_,
+ "com.google.protobuf.ByteString bytes = input.readBytes();\n"
+ "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
+ "$name$ = $default_entry$.getParserForType().parseFrom(bytes);\n");
+ printer->Print(
+ variables_,
+ "if ($value_enum_type$.valueOf($name$.getValue()) == null) {\n"
+ " unknownFields.mergeLengthDelimitedField($number$, bytes);\n"
+ "} else {\n"
+ " $name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n"
+ "}\n");
+ } else {
+ printer->Print(
+ variables_,
+ "com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
+ "$name$ = input.readMessage(\n"
+ " $default_entry$.getParserForType(), extensionRegistry);\n"
+ "$name$_.getMutableMap().put($name$.getKey(), $name$.getValue());\n");
+ }
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateParsingDoneCode(io::Printer* printer) const {
+ // Nothing to do here.
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(
+ variables_,
+ "for (java.util.Map.Entry<$type_parameters$> entry\n"
+ " : internalGet$capitalized_name$().getMap().entrySet()) {\n"
+ " com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
+ " $name$ = $default_entry$.newBuilderForType()\n"
+ " .setKey(entry.getKey())\n"
+ " .setValue(entry.getValue())\n"
+ " .build();\n"
+ " output.writeMessage($number$, $name$);\n"
+ "}\n");
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(
+ variables_,
+ "for (java.util.Map.Entry<$type_parameters$> entry\n"
+ " : internalGet$capitalized_name$().getMap().entrySet()) {\n"
+ " com.google.protobuf.MapEntry$lite$<$type_parameters$>\n"
+ " $name$ = $default_entry$.newBuilderForType()\n"
+ " .setKey(entry.getKey())\n"
+ " .setValue(entry.getValue())\n"
+ " .build();\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeMessageSize($number$, $name$);\n"
+ "}\n");
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateEqualsCode(io::Printer* printer) const {
+ printer->Print(
+ variables_,
+ "result = result && internalGet$capitalized_name$().equals(\n"
+ " other.internalGet$capitalized_name$());\n");
+}
+
+void ImmutableMapFieldLiteGenerator::
+GenerateHashCode(io::Printer* printer) const {
+ printer->Print(
+ variables_,
+ "if (!internalGet$capitalized_name$().getMap().isEmpty()) {\n"
+ " hash = (37 * hash) + $constant_name$;\n"
+ " hash = (53 * hash) + internalGet$capitalized_name$().hashCode();\n"
+ "}\n");
+}
+
+string ImmutableMapFieldLiteGenerator::GetBoxedType() const {
+ return name_resolver_->GetImmutableClassName(descriptor_->message_type());
+}
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/java/java_map_field_lite.h b/src/google/protobuf/compiler/java/java_map_field_lite.h
new file mode 100644
index 00000000..82472602
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_map_field_lite.h
@@ -0,0 +1,81 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MAP_FIELD_LITE_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVA_MAP_FIELD_LITE_H__
+
+#include <google/protobuf/compiler/java/java_field.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+class ImmutableMapFieldLiteGenerator : public ImmutableFieldLiteGenerator {
+ public:
+ explicit ImmutableMapFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutableMapFieldLiteGenerator();
+
+ // implements ImmutableFieldLiteGenerator ------------------------------------
+ int GetNumBitsForMessage() const;
+ int GetNumBitsForBuilder() const;
+ void GenerateInterfaceMembers(io::Printer* printer) const;
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateInitializationCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateParsingDoneCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+ void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
+ void GenerateEqualsCode(io::Printer* printer) const;
+ void GenerateHashCode(io::Printer* printer) const;
+
+ string GetBoxedType() const;
+
+ private:
+ const FieldDescriptor* descriptor_;
+ map<string, string> variables_;
+ const int messageBitIndex_;
+ const int builderBitIndex_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+};
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_MAP_FIELD_LITE_H__
diff --git a/src/google/protobuf/compiler/java/java_message.cc b/src/google/protobuf/compiler/java/java_message.cc
index 63df10b4..09b0fd94 100644
--- a/src/google/protobuf/compiler/java/java_message.cc
+++ b/src/google/protobuf/compiler/java/java_message.cc
@@ -49,6 +49,8 @@
#include <google/protobuf/compiler/java/java_extension.h>
#include <google/protobuf/compiler/java/java_generator_factory.h>
#include <google/protobuf/compiler/java/java_helpers.h>
+#include <google/protobuf/compiler/java/java_message_builder.h>
+#include <google/protobuf/compiler/java/java_message_builder_lite.h>
#include <google/protobuf/compiler/java/java_name_resolver.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/io/printer.h>
@@ -93,43 +95,46 @@ ImmutableMessageGenerator::ImmutableMessageGenerator(
: MessageGenerator(descriptor), context_(context),
name_resolver_(context->GetNameResolver()),
field_generators_(descriptor, context_) {
+ GOOGLE_CHECK_NE(
+ FileOptions::LITE_RUNTIME, descriptor->file()->options().optimize_for());
}
ImmutableMessageGenerator::~ImmutableMessageGenerator() {}
void ImmutableMessageGenerator::GenerateStaticVariables(io::Printer* printer) {
- if (HasDescriptorMethods(descriptor_)) {
- // Because descriptor.proto (com.google.protobuf.DescriptorProtos) is
- // used in the construction of descriptors, we have a tricky bootstrapping
- // problem. To help control static initialization order, we make sure all
- // descriptors and other static data that depends on them are members of
- // the outermost class in the file. This way, they will be initialized in
- // a deterministic order.
-
- map<string, string> vars;
- vars["identifier"] = UniqueFileScopeIdentifier(descriptor_);
- vars["index"] = SimpleItoa(descriptor_->index());
- vars["classname"] = name_resolver_->GetImmutableClassName(descriptor_);
- if (descriptor_->containing_type() != NULL) {
- vars["parent"] = UniqueFileScopeIdentifier(
- descriptor_->containing_type());
- }
- if (MultipleJavaFiles(descriptor_->file(), /* immutable = */ true)) {
- // We can only make these package-private since the classes that use them
- // are in separate files.
- vars["private"] = "";
- } else {
- vars["private"] = "private ";
- }
-
- // The descriptor for this type.
- printer->Print(vars,
- "$private$static com.google.protobuf.Descriptors.Descriptor\n"
- " internal_$identifier$_descriptor;\n");
+ // Because descriptor.proto (com.google.protobuf.DescriptorProtos) is
+ // used in the construction of descriptors, we have a tricky bootstrapping
+ // problem. To help control static initialization order, we make sure all
+ // descriptors and other static data that depends on them are members of
+ // the outermost class in the file. This way, they will be initialized in
+ // a deterministic order.
- // And the FieldAccessorTable.
- GenerateFieldAccessorTable(printer);
+ map<string, string> vars;
+ vars["identifier"] = UniqueFileScopeIdentifier(descriptor_);
+ vars["index"] = SimpleItoa(descriptor_->index());
+ vars["classname"] = name_resolver_->GetImmutableClassName(descriptor_);
+ if (descriptor_->containing_type() != NULL) {
+ vars["parent"] = UniqueFileScopeIdentifier(
+ descriptor_->containing_type());
}
+ if (MultipleJavaFiles(descriptor_->file(), /* immutable = */ true)) {
+ // We can only make these package-private since the classes that use them
+ // are in separate files.
+ vars["private"] = "";
+ } else {
+ vars["private"] = "private ";
+ }
+
+ // The descriptor for this type.
+ printer->Print(vars,
+ // TODO(teboring): final needs to be added back. The way to fix it is to
+ // generate methods that can construct the types, and then still declare the
+ // types, and then init them in clinit with the new method calls.
+ "$private$static com.google.protobuf.Descriptors.Descriptor\n"
+ " internal_$identifier$_descriptor;\n");
+
+ // And the FieldAccessorTable.
+ GenerateFieldAccessorTable(printer);
// Generate static members for all nested types.
for (int i = 0; i < descriptor_->nested_type_count(); i++) {
@@ -142,38 +147,37 @@ void ImmutableMessageGenerator::GenerateStaticVariables(io::Printer* printer) {
int ImmutableMessageGenerator::GenerateStaticVariableInitializers(
io::Printer* printer) {
int bytecode_estimate = 0;
- if (HasDescriptorMethods(descriptor_)) {
- map<string, string> vars;
- vars["identifier"] = UniqueFileScopeIdentifier(descriptor_);
- vars["index"] = SimpleItoa(descriptor_->index());
- vars["classname"] = name_resolver_->GetImmutableClassName(descriptor_);
- if (descriptor_->containing_type() != NULL) {
- vars["parent"] = UniqueFileScopeIdentifier(
- descriptor_->containing_type());
- }
-
- // The descriptor for this type.
- if (descriptor_->containing_type() == NULL) {
- printer->Print(vars,
- "internal_$identifier$_descriptor =\n"
- " getDescriptor().getMessageTypes().get($index$);\n");
- bytecode_estimate += 30;
- } else {
- printer->Print(vars,
- "internal_$identifier$_descriptor =\n"
- " internal_$parent$_descriptor.getNestedTypes().get($index$);\n");
- bytecode_estimate += 30;
- }
+ map<string, string> vars;
+ vars["identifier"] = UniqueFileScopeIdentifier(descriptor_);
+ vars["index"] = SimpleItoa(descriptor_->index());
+ vars["classname"] = name_resolver_->GetImmutableClassName(descriptor_);
+ if (descriptor_->containing_type() != NULL) {
+ vars["parent"] = UniqueFileScopeIdentifier(
+ descriptor_->containing_type());
+ }
- // And the FieldAccessorTable.
- bytecode_estimate += GenerateFieldAccessorTableInitializer(printer);
+ // The descriptor for this type.
+ if (descriptor_->containing_type() == NULL) {
+ printer->Print(vars,
+ "internal_$identifier$_descriptor =\n"
+ " getDescriptor().getMessageTypes().get($index$);\n");
+ bytecode_estimate += 30;
+ } else {
+ printer->Print(vars,
+ "internal_$identifier$_descriptor =\n"
+ " internal_$parent$_descriptor.getNestedTypes().get($index$);\n");
+ bytecode_estimate += 30;
}
+ // And the FieldAccessorTable.
+ bytecode_estimate += GenerateFieldAccessorTableInitializer(printer);
+
// Generate static member initializers for all nested types.
for (int i = 0; i < descriptor_->nested_type_count(); i++) {
// TODO(kenton): Reuse MessageGenerator objects?
- bytecode_estimate += ImmutableMessageGenerator(descriptor_->nested_type(i), context_)
- .GenerateStaticVariableInitializers(printer);
+ bytecode_estimate +=
+ ImmutableMessageGenerator(descriptor_->nested_type(i), context_)
+ .GenerateStaticVariableInitializers(printer);
}
return bytecode_estimate;
}
@@ -229,40 +233,20 @@ GenerateFieldAccessorTableInitializer(io::Printer* printer) {
void ImmutableMessageGenerator::GenerateInterface(io::Printer* printer) {
if (descriptor_->extension_range_count() > 0) {
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "public interface $classname$OrBuilder extends\n"
- " $extra_interfaces$\n"
- " com.google.protobuf.GeneratedMessage.\n"
- " ExtendableMessageOrBuilder<$classname$> {\n",
- "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
- "classname", descriptor_->name());
- } else {
- printer->Print(
- "public interface $classname$OrBuilder extends \n"
- " $extra_interfaces$\n"
- " com.google.protobuf.GeneratedMessageLite.\n"
- " ExtendableMessageOrBuilder<\n"
- " $classname$, $classname$.Builder> {\n",
- "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
- "classname", descriptor_->name());
- }
+ printer->Print(
+ "public interface $classname$OrBuilder extends\n"
+ " $extra_interfaces$\n"
+ " com.google.protobuf.GeneratedMessage.\n"
+ " ExtendableMessageOrBuilder<$classname$> {\n",
+ "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
+ "classname", descriptor_->name());
} else {
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "public interface $classname$OrBuilder extends\n"
- " $extra_interfaces$\n"
- " com.google.protobuf.MessageOrBuilder {\n",
- "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
- "classname", descriptor_->name());
- } else {
- printer->Print(
- "public interface $classname$OrBuilder extends\n"
- " $extra_interfaces$\n"
- " com.google.protobuf.MessageLiteOrBuilder {\n",
- "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
- "classname", descriptor_->name());
- }
+ printer->Print(
+ "public interface $classname$OrBuilder extends\n"
+ " $extra_interfaces$\n"
+ " com.google.protobuf.MessageOrBuilder {\n",
+ "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
+ "classname", descriptor_->name());
}
printer->Indent();
@@ -287,98 +271,71 @@ void ImmutableMessageGenerator::Generate(io::Printer* printer) {
variables["static"] = is_own_file ? " " : " static ";
variables["classname"] = descriptor_->name();
variables["extra_interfaces"] = ExtraMessageInterfaces(descriptor_);
- variables["lite"] = HasDescriptorMethods(descriptor_) ? "" : "Lite";
WriteMessageDocComment(printer, descriptor_);
// The builder_type stores the super type name of the nested Builder class.
string builder_type;
if (descriptor_->extension_range_count() > 0) {
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(variables,
- "public $static$final class $classname$ extends\n"
- " com.google.protobuf.GeneratedMessage.ExtendableMessage<\n"
- " $classname$> implements\n"
- " $extra_interfaces$\n"
- " $classname$OrBuilder {\n");
- } else {
- printer->Print(variables,
- "public $static$final class $classname$ extends\n"
- " com.google.protobuf.GeneratedMessageLite.ExtendableMessage<\n"
- " $classname$, $classname$.Builder> implements\n"
- " $extra_interfaces$\n"
- " $classname$OrBuilder {\n");
- }
+ printer->Print(variables,
+ "public $static$final class $classname$ extends\n"
+ " com.google.protobuf.GeneratedMessage.ExtendableMessage<\n"
+ " $classname$> implements\n"
+ " $extra_interfaces$\n"
+ " $classname$OrBuilder {\n");
builder_type = strings::Substitute(
- "com.google.protobuf.GeneratedMessage$1.ExtendableBuilder<$0, ?>",
- name_resolver_->GetImmutableClassName(descriptor_),
- variables["lite"]);
+ "com.google.protobuf.GeneratedMessage.ExtendableBuilder<$0, ?>",
+ name_resolver_->GetImmutableClassName(descriptor_));
} else {
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(variables,
- "public $static$final class $classname$ extends\n"
- " com.google.protobuf.GeneratedMessage implements\n"
- " $extra_interfaces$\n"
- " $classname$OrBuilder {\n");
- } else {
- printer->Print(variables,
- "public $static$final class $classname$ extends\n"
- " com.google.protobuf.GeneratedMessageLite<\n"
- " $classname$, $classname$.Builder> implements\n"
- " $extra_interfaces$\n"
- " $classname$OrBuilder {\n");
- }
+ printer->Print(variables,
+ "public $static$final class $classname$ extends\n"
+ " com.google.protobuf.GeneratedMessage implements\n"
+ " $extra_interfaces$\n"
+ " $classname$OrBuilder {\n");
- builder_type = strings::Substitute(
- "com.google.protobuf.GeneratedMessage$0.Builder",
- variables["lite"]);
+ builder_type = "com.google.protobuf.GeneratedMessage.Builder";
}
printer->Indent();
- if (HasDescriptorMethods(descriptor_)) {
- // Using builder_type, instead of Builder, prevents the Builder class from
- // being loaded into PermGen space when the default instance is created.
- // This optimizes the PermGen space usage for clients that do not modify
- // messages.
- printer->Print(
- "// Use $classname$.newBuilder() to construct.\n"
- "private $classname$($buildertype$ builder) {\n"
- " super(builder);\n"
- "}\n",
- "classname", descriptor_->name(),
- "buildertype", builder_type);
- printer->Print(
- "private $classname$() {\n",
- "classname", descriptor_->name());
- printer->Indent();
- GenerateInitializers(printer);
- printer->Outdent();
- printer->Print(
- "}\n"
- "\n");
- }
+ // Using builder_type, instead of Builder, prevents the Builder class from
+ // being loaded into PermGen space when the default instance is created.
+ // This optimizes the PermGen space usage for clients that do not modify
+ // messages.
+ printer->Print(
+ "// Use $classname$.newBuilder() to construct.\n"
+ "private $classname$($buildertype$ builder) {\n"
+ " super(builder);\n"
+ "}\n",
+ "classname", descriptor_->name(),
+ "buildertype", builder_type);
+ printer->Print(
+ "private $classname$() {\n",
+ "classname", descriptor_->name());
+ printer->Indent();
+ GenerateInitializers(printer);
+ printer->Outdent();
+ printer->Print(
+ "}\n"
+ "\n");
- if (HasDescriptorMethods(descriptor_)) {
+ printer->Print(
+ "@java.lang.Override\n"
+ "public final com.google.protobuf.UnknownFieldSet\n"
+ "getUnknownFields() {\n");
+ if (PreserveUnknownFields(descriptor_)) {
printer->Print(
- "@java.lang.Override\n"
- "public final com.google.protobuf.UnknownFieldSet\n"
- "getUnknownFields() {\n");
- if (PreserveUnknownFields(descriptor_)) {
- printer->Print(
- " return this.unknownFields;\n");
- } else {
- printer->Print(
- " return com.google.protobuf.UnknownFieldSet.getDefaultInstance();\n");
- }
+ " return this.unknownFields;\n");
+ } else {
printer->Print(
- "}\n");
+ " return com.google.protobuf.UnknownFieldSet.getDefaultInstance();\n");
}
+ printer->Print(
+ "}\n");
if (HasGeneratedMethods(descriptor_)) {
GenerateParsingConstructor(printer);
}
- GenerateDescriptorMethods(printer, false);
- GenerateParser(printer);
+ GenerateDescriptorMethods(printer);
// Nested types
for (int i = 0; i < descriptor_->enum_type_count(); i++) {
@@ -488,7 +445,7 @@ void ImmutableMessageGenerator::Generate(io::Printer* printer) {
}
if (HasGeneratedMethods(descriptor_)) {
- GenerateIsInitialized(printer, MEMOIZE);
+ GenerateIsInitialized(printer);
GenerateMessageSerializationMethods(printer);
}
@@ -509,78 +466,39 @@ void ImmutableMessageGenerator::Generate(io::Printer* printer) {
// Carefully initialize the default instance in such a way that it doesn't
// conflict with other initialization.
printer->Print(
- "private static final $classname$ defaultInstance;\n",
+ "private static final $classname$ DEFAULT_INSTANCE;\n",
"classname", name_resolver_->GetImmutableClassName(descriptor_));
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "static {\n"
- " defaultInstance = new $classname$();\n"
- "}\n"
- "\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- } else {
- // LITE_RUNTIME only has one constructor.
- printer->Print(
- "static {\n"
- " defaultInstance = new $classname$(\n"
- " com.google.protobuf.Internal\n"
- " .EMPTY_CODED_INPUT_STREAM,\n"
- " com.google.protobuf.ExtensionRegistryLite\n"
- " .getEmptyRegistry());\n"
- "}\n"
- "\n",
- "classname", descriptor_->name());
- }
+ printer->Print(
+ "static {\n"
+ " DEFAULT_INSTANCE = new $classname$();\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
printer->Print(
"public static $classname$ getDefaultInstance() {\n"
- " return defaultInstance;\n"
+ " return DEFAULT_INSTANCE;\n"
"}\n"
"\n",
"classname", name_resolver_->GetImmutableClassName(descriptor_));
- if (HasDescriptorMethods(descriptor_)) {
- // LITE_RUNTIME implements this at the GeneratedMessageLite level.
- printer->Print(
- "public $classname$ getDefaultInstanceForType() {\n"
- " return defaultInstance;\n"
- "}\n"
- "\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- } else {
- // LITE_RUNTIME uses this to implement the *ForType methods at the
- // GeneratedMessageLite level.
- printer->Print(
- "static {"
- " com.google.protobuf.GeneratedMessageLite.onLoad(\n"
- " $classname$.class, new com.google.protobuf.GeneratedMessageLite\n"
- " .PrototypeHolder<$classname$, Builder>(\n"
- " defaultInstance, PARSER));"
- "}\n"
- "\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- }
+ GenerateParser(printer);
- // Extensions must be declared after the defaultInstance is initialized
- // because the defaultInstance is used by the extension to lazily retrieve
+ printer->Print(
+ "public $classname$ getDefaultInstanceForType() {\n"
+ " return DEFAULT_INSTANCE;\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ // Extensions must be declared after the DEFAULT_INSTANCE is initialized
+ // because the DEFAULT_INSTANCE is used by the extension to lazily retrieve
// the outer class's FileDescriptor.
for (int i = 0; i < descriptor_->extension_count(); i++) {
ImmutableExtensionGenerator(descriptor_->extension(i), context_)
.Generate(printer);
}
- // Some fields also have static members that must be initialized after we
- // have the default instance available.
- printer->Print(
- "static {\n");
- printer->Indent();
- for (int i = 0; i < descriptor_->field_count(); i++) {
- field_generators_.get(descriptor_->field(i))
- .GenerateStaticInitializationCode(printer);
- }
- printer->Outdent();
- printer->Print(
- "}\n");
-
printer->Outdent();
printer->Print("}\n\n");
}
@@ -617,35 +535,17 @@ GenerateMessageSerializationMethods(io::Printer* printer) {
if (descriptor_->extension_range_count() > 0) {
if (descriptor_->options().message_set_wire_format()) {
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "com.google.protobuf.GeneratedMessage\n"
- " .ExtendableMessage<$classname$>.ExtensionWriter\n"
- " extensionWriter = newMessageSetExtensionWriter();\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- } else {
- printer->Print(
- "com.google.protobuf.GeneratedMessageLite\n"
- " .ExtendableMessage<$classname$, $classname$.Builder>\n"
- " .ExtensionWriter extensionWriter =\n"
- " newMessageSetExtensionWriter();\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- }
+ printer->Print(
+ "com.google.protobuf.GeneratedMessage\n"
+ " .ExtendableMessage<$classname$>.ExtensionWriter\n"
+ " extensionWriter = newMessageSetExtensionWriter();\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
} else {
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "com.google.protobuf.GeneratedMessage\n"
- " .ExtendableMessage<$classname$>.ExtensionWriter\n"
- " extensionWriter = newExtensionWriter();\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- } else {
- printer->Print(
- "com.google.protobuf.GeneratedMessageLite\n"
- " .ExtendableMessage<$classname$, $classname$.Builder>\n"
- " .ExtensionWriter extensionWriter =\n"
- " newExtensionWriter();\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- }
+ printer->Print(
+ "com.google.protobuf.GeneratedMessage\n"
+ " .ExtendableMessage<$classname$>.ExtensionWriter\n"
+ " extensionWriter = newExtensionWriter();\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
}
}
@@ -665,8 +565,7 @@ GenerateMessageSerializationMethods(io::Printer* printer) {
}
if (PreserveUnknownFields(descriptor_)) {
- if (descriptor_->options().message_set_wire_format()
- && HasDescriptorMethods(descriptor_)) {
+ if (descriptor_->options().message_set_wire_format()) {
printer->Print(
"unknownFields.writeAsMessageSetTo(output);\n");
} else {
@@ -702,8 +601,7 @@ GenerateMessageSerializationMethods(io::Printer* printer) {
}
if (PreserveUnknownFields(descriptor_)) {
- if (descriptor_->options().message_set_wire_format()
- && HasDescriptorMethods(descriptor_)) {
+ if (descriptor_->options().message_set_wire_format()) {
printer->Print(
"size += unknownFields.getSerializedSizeAsMessageSet();\n");
} else {
@@ -800,609 +698,115 @@ void ImmutableMessageGenerator::GenerateSerializeOneExtensionRange(
// ===================================================================
void ImmutableMessageGenerator::GenerateBuilder(io::Printer* printer) {
- if (HasDescriptorMethods(descriptor_)) {
- // LITE_RUNTIME implements this at the GeneratedMessageLite level.
- printer->Print(
- "public Builder newBuilderForType() { return newBuilder(); }\n");
- }
+ // LITE_RUNTIME implements this at the GeneratedMessageLite level.
+ printer->Print(
+ "public Builder newBuilderForType() { return newBuilder(); }\n");
printer->Print(
"public static Builder newBuilder() {\n"
- " return defaultInstance.toBuilder();\n"
+ " return DEFAULT_INSTANCE.toBuilder();\n"
"}\n"
"public static Builder newBuilder($classname$ prototype) {\n"
- " return defaultInstance.toBuilder().mergeFrom(prototype);\n"
+ " return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);\n"
"}\n"
"public Builder toBuilder() {\n"
- " return this == defaultInstance\n"
+ " return this == DEFAULT_INSTANCE\n"
" ? new Builder() : new Builder().mergeFrom(this);\n"
"}\n"
"\n",
"classname", name_resolver_->GetImmutableClassName(descriptor_));
- if (HasNestedBuilders(descriptor_)) {
- printer->Print(
- "@java.lang.Override\n"
- "protected Builder newBuilderForType(\n"
- " com.google.protobuf.GeneratedMessage.BuilderParent parent) {\n"
- " Builder builder = new Builder(parent);\n"
- " return builder;\n"
- "}\n");
- }
-
- WriteMessageDocComment(printer, descriptor_);
-
- if (descriptor_->extension_range_count() > 0) {
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "public static final class Builder extends\n"
- " com.google.protobuf.GeneratedMessage.ExtendableBuilder<\n"
- " $classname$, Builder> implements\n"
- " $extra_interfaces$\n"
- " $classname$OrBuilder {\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_),
- "extra_interfaces", ExtraBuilderInterfaces(descriptor_));
- } else {
- printer->Print(
- "public static final class Builder extends\n"
- " com.google.protobuf.GeneratedMessageLite.ExtendableBuilder<\n"
- " $classname$, Builder> implements\n"
- " $extra_interfaces$\n"
- " $classname$OrBuilder {\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_),
- "extra_interfaces", ExtraBuilderInterfaces(descriptor_));
- }
- } else {
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "public static final class Builder extends\n"
- " com.google.protobuf.GeneratedMessage.Builder<Builder> implements\n"
- " $extra_interfaces$\n"
- " $classname$OrBuilder {\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_),
- "extra_interfaces", ExtraBuilderInterfaces(descriptor_));
- } else {
- printer->Print(
- "public static final class Builder extends\n"
- " com.google.protobuf.GeneratedMessageLite.Builder<\n"
- " $classname$, Builder>\n"
- " implements\n"
- " $extra_interfaces$\n"
- " $classname$OrBuilder {\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_),
- "extra_interfaces", ExtraBuilderInterfaces(descriptor_));
- }
- }
- printer->Indent();
-
- GenerateDescriptorMethods(printer, true);
- GenerateCommonBuilderMethods(printer);
-
- if (HasGeneratedMethods(descriptor_)) {
- GenerateIsInitialized(printer, DONT_MEMOIZE);
- GenerateBuilderParsingMethods(printer);
- }
-
- // oneof
- map<string, string> vars;
- for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
- vars["oneof_name"] = context_->GetOneofGeneratorInfo(
- descriptor_->oneof_decl(i))->name;
- vars["oneof_capitalized_name"] = context_->GetOneofGeneratorInfo(
- descriptor_->oneof_decl(i))->capitalized_name;
- vars["oneof_index"] = SimpleItoa(descriptor_->oneof_decl(i)->index());
- // oneofCase_ and oneof_
- printer->Print(vars,
- "private int $oneof_name$Case_ = 0;\n"
- "private java.lang.Object $oneof_name$_;\n");
- // oneofCase() and clearOneof()
- printer->Print(vars,
- "public $oneof_capitalized_name$Case\n"
- " get$oneof_capitalized_name$Case() {\n"
- " return $oneof_capitalized_name$Case.valueOf(\n"
- " $oneof_name$Case_);\n"
- "}\n"
- "\n"
- "public Builder clear$oneof_capitalized_name$() {\n"
- " $oneof_name$Case_ = 0;\n"
- " $oneof_name$_ = null;\n");
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(" onChanged();\n");
- }
- printer->Print(
- " return this;\n"
- "}\n"
- "\n");
- }
-
- if (GenerateHasBits(descriptor_)) {
- // Integers for bit fields.
- int totalBits = 0;
- for (int i = 0; i < descriptor_->field_count(); i++) {
- totalBits += field_generators_.get(descriptor_->field(i))
- .GetNumBitsForBuilder();
- }
- int totalInts = (totalBits + 31) / 32;
- for (int i = 0; i < totalInts; i++) {
- printer->Print("private int $bit_field_name$;\n",
- "bit_field_name", GetBitFieldName(i));
- }
- }
-
- for (int i = 0; i < descriptor_->field_count(); i++) {
- printer->Print("\n");
- field_generators_.get(descriptor_->field(i))
- .GenerateBuilderMembers(printer);
- }
-
- if (!PreserveUnknownFields(descriptor_)) {
- printer->Print(
- "public final Builder setUnknownFields(\n"
- " final com.google.protobuf.UnknownFieldSet unknownFields) {\n"
- " return this;\n"
- "}\n"
- "\n"
- "public final Builder mergeUnknownFields(\n"
- " final com.google.protobuf.UnknownFieldSet unknownFields) {\n"
- " return this;\n"
- "}\n"
- "\n");
- }
-
printer->Print(
- "\n"
- "// @@protoc_insertion_point(builder_scope:$full_name$)\n",
- "full_name", descriptor_->full_name());
-
- printer->Outdent();
- printer->Print("}\n");
+ "@java.lang.Override\n"
+ "protected Builder newBuilderForType(\n"
+ " com.google.protobuf.GeneratedMessage.BuilderParent parent) {\n"
+ " Builder builder = new Builder(parent);\n"
+ " return builder;\n"
+ "}\n");
+
+ MessageBuilderGenerator builderGenerator(descriptor_, context_);
+ builderGenerator.Generate(printer);
}
void ImmutableMessageGenerator::
-GenerateDescriptorMethods(io::Printer* printer, bool is_builder) {
- if (HasDescriptorMethods(descriptor_)) {
- if (!descriptor_->options().no_standard_descriptor_accessor()) {
- printer->Print(
- "public static final com.google.protobuf.Descriptors.Descriptor\n"
- " getDescriptor() {\n"
- " return $fileclass$.internal_$identifier$_descriptor;\n"
- "}\n"
- "\n",
- "fileclass", name_resolver_->GetImmutableClassName(descriptor_->file()),
- "identifier", UniqueFileScopeIdentifier(descriptor_));
- }
- vector<const FieldDescriptor*> map_fields;
- for (int i = 0; i < descriptor_->field_count(); i++) {
- const FieldDescriptor* field = descriptor_->field(i);
- if (GetJavaType(field) == JAVATYPE_MESSAGE &&
- IsMapEntry(field->message_type())) {
- map_fields.push_back(field);
- }
- }
- if (!map_fields.empty()) {
- printer->Print(
- "@SuppressWarnings({\"rawtypes\"})\n"
- "protected com.google.protobuf.MapField internalGetMapField(\n"
- " int number) {\n"
- " switch (number) {\n");
- printer->Indent();
- printer->Indent();
- for (int i = 0; i < map_fields.size(); ++i) {
- const FieldDescriptor* field = map_fields[i];
- const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
- printer->Print(
- "case $number$:\n"
- " return internalGet$capitalized_name$();\n",
- "number", SimpleItoa(field->number()),
- "capitalized_name", info->capitalized_name);
- }
- printer->Print(
- "default:\n"
- " throw new RuntimeException(\n"
- " \"Invalid map field number: \" + number);\n");
- printer->Outdent();
- printer->Outdent();
- printer->Print(
- " }\n"
- "}\n");
- if (is_builder) {
- printer->Print(
- "@SuppressWarnings({\"rawtypes\"})\n"
- "protected com.google.protobuf.MapField internalGetMutableMapField(\n"
- " int number) {\n"
- " switch (number) {\n");
- printer->Indent();
- printer->Indent();
- for (int i = 0; i < map_fields.size(); ++i) {
- const FieldDescriptor* field = map_fields[i];
- const FieldGeneratorInfo* info =
- context_->GetFieldGeneratorInfo(field);
- printer->Print(
- "case $number$:\n"
- " return internalGetMutable$capitalized_name$();\n",
- "number", SimpleItoa(field->number()),
- "capitalized_name", info->capitalized_name);
- }
- printer->Print(
- "default:\n"
- " throw new RuntimeException(\n"
- " \"Invalid map field number: \" + number);\n");
- printer->Outdent();
- printer->Outdent();
- printer->Print(
- " }\n"
- "}\n");
- }
- }
+GenerateDescriptorMethods(io::Printer* printer) {
+ if (!descriptor_->options().no_standard_descriptor_accessor()) {
printer->Print(
- "protected com.google.protobuf.GeneratedMessage.FieldAccessorTable\n"
- " internalGetFieldAccessorTable() {\n"
- " return $fileclass$.internal_$identifier$_fieldAccessorTable\n"
- " .ensureFieldAccessorsInitialized(\n"
- " $classname$.class, $classname$.Builder.class);\n"
+ "public static final com.google.protobuf.Descriptors.Descriptor\n"
+ " getDescriptor() {\n"
+ " return $fileclass$.internal_$identifier$_descriptor;\n"
"}\n"
"\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_),
"fileclass", name_resolver_->GetImmutableClassName(descriptor_->file()),
"identifier", UniqueFileScopeIdentifier(descriptor_));
}
-}
-
-// ===================================================================
-
-void ImmutableMessageGenerator::
-GenerateCommonBuilderMethods(io::Printer* printer) {
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "// Construct using $classname$.newBuilder()\n"
- "private Builder() {\n"
- " maybeForceBuilderInitialization();\n"
- "}\n"
- "\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
-
- printer->Print(
- "private Builder(\n"
- " com.google.protobuf.GeneratedMessage.BuilderParent parent) {\n"
- " super(parent);\n"
- " maybeForceBuilderInitialization();\n"
- "}\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- } else {
- // LITE runtime passes along the default instance to implement
- // getDefaultInstanceForType() at the GeneratedMessageLite level.
- printer->Print(
- "// Construct using $classname$.newBuilder()\n"
- "private Builder() {\n"
- " super(defaultInstance);\n"
- " maybeForceBuilderInitialization();\n"
- "}\n"
- "\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
+ vector<const FieldDescriptor*> map_fields;
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+ if (GetJavaType(field) == JAVATYPE_MESSAGE &&
+ IsMapEntry(field->message_type())) {
+ map_fields.push_back(field);
+ }
}
-
-
- if (HasNestedBuilders(descriptor_)) {
+ if (!map_fields.empty()) {
printer->Print(
- "private void maybeForceBuilderInitialization() {\n"
- " if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {\n");
-
+ "@SuppressWarnings({\"rawtypes\"})\n"
+ "protected com.google.protobuf.MapField internalGetMapField(\n"
+ " int number) {\n"
+ " switch (number) {\n");
printer->Indent();
printer->Indent();
- for (int i = 0; i < descriptor_->field_count(); i++) {
- if (!descriptor_->field(i)->containing_oneof()) {
- field_generators_.get(descriptor_->field(i))
- .GenerateFieldBuilderInitializationCode(printer);
- }
+ for (int i = 0; i < map_fields.size(); ++i) {
+ const FieldDescriptor* field = map_fields[i];
+ const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
+ printer->Print(
+ "case $number$:\n"
+ " return internalGet$capitalized_name$();\n",
+ "number", SimpleItoa(field->number()),
+ "capitalized_name", info->capitalized_name);
}
+ printer->Print(
+ "default:\n"
+ " throw new RuntimeException(\n"
+ " \"Invalid map field number: \" + number);\n");
printer->Outdent();
printer->Outdent();
-
- printer->Print(
- " }\n"
- "}\n");
- } else {
- printer->Print(
- "private void maybeForceBuilderInitialization() {\n"
- "}\n");
- }
-
- printer->Print(
- "public Builder clear() {\n"
- " super.clear();\n");
-
- printer->Indent();
-
- for (int i = 0; i < descriptor_->field_count(); i++) {
- if (!descriptor_->field(i)->containing_oneof()) {
- field_generators_.get(descriptor_->field(i))
- .GenerateBuilderClearCode(printer);
- }
- }
-
- for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
- printer->Print(
- "$oneof_name$Case_ = 0;\n"
- "$oneof_name$_ = null;\n",
- "oneof_name", context_->GetOneofGeneratorInfo(
- descriptor_->oneof_decl(i))->name);
- }
-
- printer->Outdent();
-
- printer->Print(
- " return this;\n"
- "}\n"
- "\n");
-
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "public com.google.protobuf.Descriptors.Descriptor\n"
- " getDescriptorForType() {\n"
- " return $fileclass$.internal_$identifier$_descriptor;\n"
- "}\n"
- "\n",
- "fileclass", name_resolver_->GetImmutableClassName(descriptor_->file()),
- "identifier", UniqueFileScopeIdentifier(descriptor_));
-
- // LITE runtime implements this in GeneratedMessageLite.
- printer->Print(
- "public $classname$ getDefaultInstanceForType() {\n"
- " return $classname$.getDefaultInstance();\n"
- "}\n"
- "\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- }
-
- // -----------------------------------------------------------------
-
- if (HasDescriptorMethods(descriptor_)) {
- // LITE implements build in GeneratedMessageLite to save methods.
printer->Print(
- "public $classname$ build() {\n"
- " $classname$ result = buildPartial();\n"
- " if (!result.isInitialized()) {\n"
- " throw newUninitializedMessageException(result);\n"
- " }\n"
- " return result;\n"
- "}\n"
- "\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- }
-
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "public $classname$ buildPartial() {\n"
- " $classname$ result = new $classname$(this);\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- } else {
- // LITE_RUNTIME only provides a single message constructor.
- printer->Print(
- "public $classname$ buildPartial() {\n"
- " $classname$ result = new $classname$(\n"
- " com.google.protobuf.Internal\n"
- " .EMPTY_CODED_INPUT_STREAM,\n"
- " com.google.protobuf.ExtensionRegistryLite\n"
- " .getEmptyRegistry());\n"
- " result.unknownFields = this.unknownFields;\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
-
- if (descriptor_->extension_range_count() > 0) {
- printer->Print(
- " result.extensions = this.buildExtensions();\n");
- }
- }
-
- printer->Indent();
-
- int totalBuilderBits = 0;
- int totalMessageBits = 0;
- for (int i = 0; i < descriptor_->field_count(); i++) {
- const ImmutableFieldGenerator& field =
- field_generators_.get(descriptor_->field(i));
- totalBuilderBits += field.GetNumBitsForBuilder();
- totalMessageBits += field.GetNumBitsForMessage();
- }
- int totalBuilderInts = (totalBuilderBits + 31) / 32;
- int totalMessageInts = (totalMessageBits + 31) / 32;
-
- if (GenerateHasBits(descriptor_)) {
- // Local vars for from and to bit fields to avoid accessing the builder and
- // message over and over for these fields. Seems to provide a slight
- // perforamance improvement in micro benchmark and this is also what proto1
- // code does.
- for (int i = 0; i < totalBuilderInts; i++) {
- printer->Print("int from_$bit_field_name$ = $bit_field_name$;\n",
- "bit_field_name", GetBitFieldName(i));
- }
- for (int i = 0; i < totalMessageInts; i++) {
- printer->Print("int to_$bit_field_name$ = 0;\n",
- "bit_field_name", GetBitFieldName(i));
- }
- }
-
- // Output generation code for each field.
- for (int i = 0; i < descriptor_->field_count(); i++) {
- field_generators_.get(descriptor_->field(i)).GenerateBuildingCode(printer);
- }
-
- if (GenerateHasBits(descriptor_)) {
- // Copy the bit field results to the generated message
- for (int i = 0; i < totalMessageInts; i++) {
- printer->Print("result.$bit_field_name$ = to_$bit_field_name$;\n",
- "bit_field_name", GetBitFieldName(i));
- }
- }
-
- for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
- printer->Print("result.$oneof_name$Case_ = $oneof_name$Case_;\n",
- "oneof_name", context_->GetOneofGeneratorInfo(
- descriptor_->oneof_decl(i))->name);
- }
-
- printer->Outdent();
-
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- " onBuilt();\n");
+ " }\n"
+ "}\n");
}
-
printer->Print(
- " return result;\n"
+ "protected com.google.protobuf.GeneratedMessage.FieldAccessorTable\n"
+ " internalGetFieldAccessorTable() {\n"
+ " return $fileclass$.internal_$identifier$_fieldAccessorTable\n"
+ " .ensureFieldAccessorsInitialized(\n"
+ " $classname$.class, $classname$.Builder.class);\n"
"}\n"
"\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
-
- // -----------------------------------------------------------------
-
- if (HasGeneratedMethods(descriptor_)) {
- // MergeFrom(Message other) requires the ability to distinguish the other
- // messages type by its descriptor.
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "public Builder mergeFrom(com.google.protobuf.Message other) {\n"
- " if (other instanceof $classname$) {\n"
- " return mergeFrom(($classname$)other);\n"
- " } else {\n"
- " super.mergeFrom(other);\n"
- " return this;\n"
- " }\n"
- "}\n"
- "\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- }
-
- printer->Print(
- "public Builder mergeFrom($classname$ other) {\n"
- // Optimization: If other is the default instance, we know none of its
- // fields are set so we can skip the merge.
- " if (other == $classname$.getDefaultInstance()) return this;\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- printer->Indent();
-
- for (int i = 0; i < descriptor_->field_count(); i++) {
- if (!descriptor_->field(i)->containing_oneof()) {
- field_generators_.get(
- descriptor_->field(i)).GenerateMergingCode(printer);
- }
- }
-
- // Merge oneof fields.
- for (int i = 0; i < descriptor_->oneof_decl_count(); ++i) {
- printer->Print(
- "switch (other.get$oneof_capitalized_name$Case()) {\n",
- "oneof_capitalized_name",
- context_->GetOneofGeneratorInfo(
- descriptor_->oneof_decl(i))->capitalized_name);
- printer->Indent();
- for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
- const FieldDescriptor* field = descriptor_->oneof_decl(i)->field(j);
- printer->Print(
- "case $field_name$: {\n",
- "field_name",
- ToUpper(field->name()));
- printer->Indent();
- field_generators_.get(field).GenerateMergingCode(printer);
- printer->Print(
- "break;\n");
- printer->Outdent();
- printer->Print(
- "}\n");
- }
- printer->Print(
- "case $cap_oneof_name$_NOT_SET: {\n"
- " break;\n"
- "}\n",
- "cap_oneof_name",
- ToUpper(context_->GetOneofGeneratorInfo(
- descriptor_->oneof_decl(i))->name));
- printer->Outdent();
- printer->Print(
- "}\n");
- }
-
- printer->Outdent();
-
- // if message type has extensions
- if (descriptor_->extension_range_count() > 0) {
- printer->Print(
- " this.mergeExtensionFields(other);\n");
- }
-
- if (PreserveUnknownFields(descriptor_)) {
- printer->Print(
- " this.mergeUnknownFields(other.unknownFields);\n");
- }
-
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(" onChanged();\n");
- }
-
- printer->Print(
- " return this;\n"
- "}\n"
- "\n");
- }
-}
-
-// ===================================================================
-
-void ImmutableMessageGenerator::
-GenerateBuilderParsingMethods(io::Printer* printer) {
- if (HasDescriptorMethods(descriptor_)) {
- // LITE_RUNTIME implements this at the GeneratedMessageLite level.
- printer->Print(
- "public Builder mergeFrom(\n"
- " com.google.protobuf.CodedInputStream input,\n"
- " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
- " throws java.io.IOException {\n"
- " $classname$ parsedMessage = null;\n"
- " try {\n"
- " parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);\n"
- " } catch (com.google.protobuf.InvalidProtocolBufferException e) {\n"
- " parsedMessage = ($classname$) e.getUnfinishedMessage();\n"
- " throw e;\n"
- " } finally {\n"
- " if (parsedMessage != null) {\n"
- " mergeFrom(parsedMessage);\n"
- " }\n"
- " }\n"
- " return this;\n"
- "}\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- }
+ "classname", name_resolver_->GetImmutableClassName(descriptor_),
+ "fileclass", name_resolver_->GetImmutableClassName(descriptor_->file()),
+ "identifier", UniqueFileScopeIdentifier(descriptor_));
}
// ===================================================================
void ImmutableMessageGenerator::GenerateIsInitialized(
- io::Printer* printer, UseMemoization useMemoization) {
- // LITE_RUNTIME avoids generating isInitialized if it's not needed.
- if (!HasDescriptorMethods(descriptor_)
- && !HasRequiredFields(descriptor_)) {
- return;
- }
-
- bool memoization = useMemoization == MEMOIZE;
- if (memoization) {
- // Memoizes whether the protocol buffer is fully initialized (has all
- // required fields). -1 means not yet computed. 0 means false and 1 means
- // true.
- printer->Print(
- "private byte memoizedIsInitialized = -1;\n");
- }
+ io::Printer* printer) {
+ // Memoizes whether the protocol buffer is fully initialized (has all
+ // required fields). -1 means not yet computed. 0 means false and 1 means
+ // true.
+ printer->Print(
+ "private byte memoizedIsInitialized = -1;\n");
printer->Print(
"public final boolean isInitialized() {\n");
printer->Indent();
- if (memoization) {
- // Don't directly compare to -1 to avoid an Android x86 JIT bug.
- printer->Print(
- "byte isInitialized = memoizedIsInitialized;\n"
- "if (isInitialized == 1) return true;\n"
- "if (isInitialized == 0) return false;\n"
- "\n");
- }
+ // Don't directly compare to -1 to avoid an Android x86 JIT bug.
+ printer->Print(
+ "byte isInitialized = memoizedIsInitialized;\n"
+ "if (isInitialized == 1) return true;\n"
+ "if (isInitialized == 0) return false;\n"
+ "\n");
// Check that all required fields in this message are set.
// TODO(kenton): We can optimize this when we switch to putting all the
@@ -1414,11 +818,10 @@ void ImmutableMessageGenerator::GenerateIsInitialized(
if (field->is_required()) {
printer->Print(
"if (!has$name$()) {\n"
- " $memoize$\n"
+ " memoizedIsInitialized = 0;\n"
" return false;\n"
"}\n",
- "name", info->capitalized_name,
- "memoize", memoization ? "memoizedIsInitialized = 0;" : "");
+ "name", info->capitalized_name);
}
}
@@ -1432,13 +835,12 @@ void ImmutableMessageGenerator::GenerateIsInitialized(
case FieldDescriptor::LABEL_REQUIRED:
printer->Print(
"if (!get$name$().isInitialized()) {\n"
- " $memoize$\n"
+ " memoizedIsInitialized = 0;\n"
" return false;\n"
"}\n",
"type", name_resolver_->GetImmutableClassName(
field->message_type()),
- "name", info->capitalized_name,
- "memoize", memoization ? "memoizedIsInitialized = 0;" : "");
+ "name", info->capitalized_name);
break;
case FieldDescriptor::LABEL_OPTIONAL:
if (!SupportFieldPresence(descriptor_->file()) &&
@@ -1457,38 +859,35 @@ void ImmutableMessageGenerator::GenerateIsInitialized(
}
printer->Print(
" if (!get$name$().isInitialized()) {\n"
- " $memoize$\n"
+ " memoizedIsInitialized = 0;\n"
" return false;\n"
" }\n"
"}\n",
- "name", info->capitalized_name,
- "memoize", memoization ? "memoizedIsInitialized = 0;" : "");
+ "name", info->capitalized_name);
break;
case FieldDescriptor::LABEL_REPEATED:
if (IsMapEntry(field->message_type())) {
printer->Print(
"for ($type$ item : get$name$().values()) {\n"
" if (!item.isInitialized()) {\n"
- " $memoize$\n"
+ " memoizedIsInitialized = 0;\n"
" return false;\n"
" }\n"
"}\n",
"type", MapValueImmutableClassdName(field->message_type(),
name_resolver_),
- "name", info->capitalized_name,
- "memoize", memoization ? "memoizedIsInitialized = 0;" : "");
+ "name", info->capitalized_name);
} else {
printer->Print(
"for (int i = 0; i < get$name$Count(); i++) {\n"
" if (!get$name$(i).isInitialized()) {\n"
- " $memoize$\n"
+ " memoizedIsInitialized = 0;\n"
" return false;\n"
" }\n"
"}\n",
"type", name_resolver_->GetImmutableClassName(
field->message_type()),
- "name", info->capitalized_name,
- "memoize", memoization ? "memoizedIsInitialized = 0;" : "");
+ "name", info->capitalized_name);
}
break;
}
@@ -1498,18 +897,15 @@ void ImmutableMessageGenerator::GenerateIsInitialized(
if (descriptor_->extension_range_count() > 0) {
printer->Print(
"if (!extensionsAreInitialized()) {\n"
- " $memoize$\n"
+ " memoizedIsInitialized = 0;\n"
" return false;\n"
- "}\n",
- "memoize", memoization ? "memoizedIsInitialized = 0;" : "");
+ "}\n");
}
printer->Outdent();
- if (memoization) {
- printer->Print(
- " memoizedIsInitialized = 1;\n");
- }
+ printer->Print(
+ " memoizedIsInitialized = 1;\n");
printer->Print(
" return true;\n"
@@ -1575,12 +971,10 @@ GenerateEqualsAndHashCode(io::Printer* printer) {
printer->Print(
"result = result && unknownFields.equals(other.unknownFields);\n");
}
- if (HasDescriptorMethods(descriptor_)) {
- if (descriptor_->extension_range_count() > 0) {
- printer->Print(
- "result = result &&\n"
- " getExtensionFields().equals(other.getExtensionFields());\n");
- }
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print(
+ "result = result &&\n"
+ " getExtensionFields().equals(other.getExtensionFields());\n");
}
printer->Print(
"return result;\n");
@@ -1603,14 +997,7 @@ GenerateEqualsAndHashCode(io::Printer* printer) {
"}\n"
"int hash = 41;\n");
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print("hash = (19 * hash) + getDescriptorForType().hashCode();\n");
- } else {
- // Include the hash of the class so that two objects with different types
- // but the same field values will probably have different hashes.
- printer->Print("hash = (19 * hash) + $classname$.class.hashCode();\n",
- "classname", name_resolver_->GetImmutableClassName(descriptor_));
- }
+ printer->Print("hash = (19 * hash) + getDescriptorForType().hashCode();\n");
for (int i = 0; i < descriptor_->field_count(); i++) {
const FieldDescriptor* field = descriptor_->field(i);
@@ -1628,11 +1015,9 @@ GenerateEqualsAndHashCode(io::Printer* printer) {
printer->Print("}\n");
}
}
- if (HasDescriptorMethods(descriptor_)) {
- if (descriptor_->extension_range_count() > 0) {
- printer->Print(
- "hash = hashFields(hash, getExtensionFields());\n");
- }
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print(
+ "hash = hashFields(hash, getExtensionFields());\n");
}
printer->Print(
@@ -1675,13 +1060,8 @@ GenerateParsingConstructor(io::Printer* printer) {
printer->Indent();
// Initialize all fields to default.
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "this();\n");
- } else {
- // LITE_RUNTIME only has one constructor.
- GenerateInitializers(printer);
- }
+ printer->Print(
+ "this();\n");
// Use builder bits to track mutable repeated fields.
int totalBuilderBits = 0;
@@ -1697,15 +1077,9 @@ GenerateParsingConstructor(io::Printer* printer) {
}
if (PreserveUnknownFields(descriptor_)) {
- if (HasDescriptorMethods(descriptor_)) {
- printer->Print(
- "com.google.protobuf.UnknownFieldSet.Builder unknownFields =\n"
- " com.google.protobuf.UnknownFieldSet.newBuilder();\n");
- } else {
- printer->Print(
- "com.google.protobuf.UnknownFieldSetLite.Builder unknownFields =\n"
- " com.google.protobuf.UnknownFieldSetLite.newBuilder();\n");
- }
+ printer->Print(
+ "com.google.protobuf.UnknownFieldSet.Builder unknownFields =\n"
+ " com.google.protobuf.UnknownFieldSet.newBuilder();\n");
}
printer->Print(
@@ -1728,29 +1102,14 @@ GenerateParsingConstructor(io::Printer* printer) {
" break;\n");
if (PreserveUnknownFields(descriptor_)) {
- if (!HasDescriptorMethods(descriptor_)
- && descriptor_->extension_range_count() > 0) {
- // Lite runtime directly invokes parseUnknownField to reduce method
- // counts.
- printer->Print(
- "default: {\n"
- " if (!parseUnknownField(extensions, getDefaultInstanceForType(),\n"
- " input, unknownFields,\n"
- " extensionRegistry, tag)) {\n"
- " done = true;\n" // it's an endgroup tag
- " }\n"
- " break;\n"
- "}\n");
- } else {
- printer->Print(
- "default: {\n"
- " if (!parseUnknownField(input, unknownFields,\n"
- " extensionRegistry, tag)) {\n"
- " done = true;\n" // it's an endgroup tag
- " }\n"
- " break;\n"
- "}\n");
- }
+ printer->Print(
+ "default: {\n"
+ " if (!parseUnknownField(input, unknownFields,\n"
+ " extensionRegistry, tag)) {\n"
+ " done = true;\n" // it's an endgroup tag
+ " }\n"
+ " break;\n"
+ "}\n");
} else {
printer->Print(
"default: {\n"
@@ -1825,18 +1184,9 @@ GenerateParsingConstructor(io::Printer* printer) {
printer->Print("this.unknownFields = unknownFields.build();\n");
}
- if (!HasDescriptorMethods(descriptor_)) {
- // LITE runtime uses a static method to reduce method count.
- if (descriptor_->extension_range_count() > 0) {
- // Make extensions immutable.
- printer->Print(
- "makeExtensionsImmutable(extensions);\n");
- }
- } else {
- // Make extensions immutable.
- printer->Print(
- "makeExtensionsImmutable();\n");
- }
+ // Make extensions immutable.
+ printer->Print(
+ "makeExtensionsImmutable();\n");
printer->Outdent();
printer->Outdent();
@@ -1874,9 +1224,9 @@ void ImmutableMessageGenerator::GenerateParser(io::Printer* printer) {
" }\n",
"classname", descriptor_->name());
} else {
- // When parsing constructor isn't generated, use builder to parse messages.
- // Note, will fallback to use reflection based mergeFieldFrom() in
- // AbstractMessage.Builder.
+ // When parsing constructor isn't generated, use builder to parse
+ // messages. Note, will fallback to use reflection based mergeFieldFrom()
+ // in AbstractMessage.Builder.
printer->Indent();
printer->Print(
"Builder builder = newBuilder();\n"
@@ -1886,7 +1236,8 @@ void ImmutableMessageGenerator::GenerateParser(io::Printer* printer) {
" throw e.setUnfinishedMessage(builder.buildPartial());\n"
"} catch (java.io.IOException e) {\n"
" throw new com.google.protobuf.InvalidProtocolBufferException(\n"
- " e.getMessage()).setUnfinishedMessage(builder.buildPartial());\n"
+ " e.getMessage()).setUnfinishedMessage(\n"
+ " builder.buildPartial());\n"
"}\n"
"return builder.buildPartial();\n");
printer->Outdent();
@@ -1898,16 +1249,13 @@ void ImmutableMessageGenerator::GenerateParser(io::Printer* printer) {
"};\n"
"\n");
- if (HasDescriptorMethods(descriptor_)) {
- // LITE_RUNTIME implements this at the GeneratedMessageLite level.
- printer->Print(
- "@java.lang.Override\n"
- "public com.google.protobuf.Parser<$classname$> getParserForType() {\n"
- " return PARSER;\n"
- "}\n"
- "\n",
- "classname", descriptor_->name());
- }
+ printer->Print(
+ "@java.lang.Override\n"
+ "public com.google.protobuf.Parser<$classname$> getParserForType() {\n"
+ " return PARSER;\n"
+ "}\n"
+ "\n",
+ "classname", descriptor_->name());
}
// ===================================================================
diff --git a/src/google/protobuf/compiler/java/java_message.h b/src/google/protobuf/compiler/java/java_message.h
index 58dd5f99..c3c37765 100644
--- a/src/google/protobuf/compiler/java/java_message.h
+++ b/src/google/protobuf/compiler/java/java_message.h
@@ -102,10 +102,6 @@ class ImmutableMessageGenerator : public MessageGenerator {
virtual int GenerateStaticVariableInitializers(io::Printer* printer);
private:
- enum UseMemoization {
- MEMOIZE,
- DONT_MEMOIZE
- };
void GenerateFieldAccessorTable(io::Printer* printer);
@@ -120,11 +116,8 @@ class ImmutableMessageGenerator : public MessageGenerator {
io::Printer* printer, const Descriptor::ExtensionRange* range);
void GenerateBuilder(io::Printer* printer);
- void GenerateCommonBuilderMethods(io::Printer* printer);
- void GenerateDescriptorMethods(io::Printer* printer, bool is_builder);
- void GenerateBuilderParsingMethods(io::Printer* printer);
- void GenerateIsInitialized(io::Printer* printer,
- UseMemoization useMemoization);
+ void GenerateIsInitialized(io::Printer* printer);
+ void GenerateDescriptorMethods(io::Printer* printer);
void GenerateInitializers(io::Printer* printer);
void GenerateEqualsAndHashCode(io::Printer* printer);
void GenerateParser(io::Printer* printer);
diff --git a/src/google/protobuf/compiler/java/java_message_builder.cc b/src/google/protobuf/compiler/java/java_message_builder.cc
new file mode 100644
index 00000000..72694119
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_message_builder.cc
@@ -0,0 +1,661 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: dweis@google.com (Daniel Weis)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#include <google/protobuf/compiler/java/java_message_builder.h>
+
+#include <algorithm>
+#include <google/protobuf/stubs/hash.h>
+#include <map>
+#include <memory>
+#ifndef _SHARED_PTR_H
+#include <google/protobuf/stubs/shared_ptr.h>
+#endif
+#include <vector>
+
+#include <google/protobuf/compiler/java/java_context.h>
+#include <google/protobuf/compiler/java/java_doc_comment.h>
+#include <google/protobuf/compiler/java/java_enum.h>
+#include <google/protobuf/compiler/java/java_extension.h>
+#include <google/protobuf/compiler/java/java_generator_factory.h>
+#include <google/protobuf/compiler/java/java_helpers.h>
+#include <google/protobuf/compiler/java/java_name_resolver.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/wire_format.h>
+#include <google/protobuf/stubs/strutil.h>
+#include <google/protobuf/stubs/substitute.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+namespace {
+bool GenerateHasBits(const Descriptor* descriptor) {
+ return SupportFieldPresence(descriptor->file()) ||
+ HasRepeatedFields(descriptor);
+}
+
+string MapValueImmutableClassdName(const Descriptor* descriptor,
+ ClassNameResolver* name_resolver) {
+ const FieldDescriptor* value_field = descriptor->FindFieldByName("value");
+ GOOGLE_CHECK_EQ(FieldDescriptor::TYPE_MESSAGE, value_field->type());
+ return name_resolver->GetImmutableClassName(value_field->message_type());
+}
+} // namespace
+
+MessageBuilderGenerator::MessageBuilderGenerator(
+ const Descriptor* descriptor, Context* context)
+ : descriptor_(descriptor), context_(context),
+ name_resolver_(context->GetNameResolver()),
+ field_generators_(descriptor, context_) {
+ GOOGLE_CHECK_NE(
+ FileOptions::LITE_RUNTIME, descriptor->file()->options().optimize_for());
+}
+
+MessageBuilderGenerator::~MessageBuilderGenerator() {}
+
+void MessageBuilderGenerator::
+Generate(io::Printer* printer) {
+ WriteMessageDocComment(printer, descriptor_);
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print(
+ "public static final class Builder extends\n"
+ " com.google.protobuf.GeneratedMessage.ExtendableBuilder<\n"
+ " $classname$, Builder> implements\n"
+ " $extra_interfaces$\n"
+ " $classname$OrBuilder {\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_),
+ "extra_interfaces", ExtraBuilderInterfaces(descriptor_));
+ } else {
+ printer->Print(
+ "public static final class Builder extends\n"
+ " com.google.protobuf.GeneratedMessage.Builder<Builder> implements\n"
+ " $extra_interfaces$\n"
+ " $classname$OrBuilder {\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_),
+ "extra_interfaces", ExtraBuilderInterfaces(descriptor_));
+ }
+ printer->Indent();
+
+ GenerateDescriptorMethods(printer);
+ GenerateCommonBuilderMethods(printer);
+
+ if (HasGeneratedMethods(descriptor_)) {
+ GenerateIsInitialized(printer);
+ GenerateBuilderParsingMethods(printer);
+ }
+
+ // oneof
+ map<string, string> vars;
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ vars["oneof_name"] = context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->name;
+ vars["oneof_capitalized_name"] = context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->capitalized_name;
+ vars["oneof_index"] = SimpleItoa(descriptor_->oneof_decl(i)->index());
+ // oneofCase_ and oneof_
+ printer->Print(vars,
+ "private int $oneof_name$Case_ = 0;\n"
+ "private java.lang.Object $oneof_name$_;\n");
+ // oneofCase() and clearOneof()
+ printer->Print(vars,
+ "public $oneof_capitalized_name$Case\n"
+ " get$oneof_capitalized_name$Case() {\n"
+ " return $oneof_capitalized_name$Case.valueOf(\n"
+ " $oneof_name$Case_);\n"
+ "}\n"
+ "\n"
+ "public Builder clear$oneof_capitalized_name$() {\n"
+ " $oneof_name$Case_ = 0;\n"
+ " $oneof_name$_ = null;\n");
+ printer->Print(" onChanged();\n");
+ printer->Print(
+ " return this;\n"
+ "}\n"
+ "\n");
+ }
+
+ if (GenerateHasBits(descriptor_)) {
+ // Integers for bit fields.
+ int totalBits = 0;
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ totalBits += field_generators_.get(descriptor_->field(i))
+ .GetNumBitsForBuilder();
+ }
+ int totalInts = (totalBits + 31) / 32;
+ for (int i = 0; i < totalInts; i++) {
+ printer->Print("private int $bit_field_name$;\n",
+ "bit_field_name", GetBitFieldName(i));
+ }
+ }
+
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ printer->Print("\n");
+ field_generators_.get(descriptor_->field(i))
+ .GenerateBuilderMembers(printer);
+ }
+
+ if (!PreserveUnknownFields(descriptor_)) {
+ printer->Print(
+ "public final Builder setUnknownFields(\n"
+ " final com.google.protobuf.UnknownFieldSet unknownFields) {\n"
+ " return this;\n"
+ "}\n"
+ "\n"
+ "public final Builder mergeUnknownFields(\n"
+ " final com.google.protobuf.UnknownFieldSet unknownFields) {\n"
+ " return this;\n"
+ "}\n"
+ "\n");
+ }
+
+ printer->Print(
+ "\n"
+ "// @@protoc_insertion_point(builder_scope:$full_name$)\n",
+ "full_name", descriptor_->full_name());
+
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+// ===================================================================
+
+void MessageBuilderGenerator::
+GenerateDescriptorMethods(io::Printer* printer) {
+ if (!descriptor_->options().no_standard_descriptor_accessor()) {
+ printer->Print(
+ "public static final com.google.protobuf.Descriptors.Descriptor\n"
+ " getDescriptor() {\n"
+ " return $fileclass$.internal_$identifier$_descriptor;\n"
+ "}\n"
+ "\n",
+ "fileclass", name_resolver_->GetImmutableClassName(descriptor_->file()),
+ "identifier", UniqueFileScopeIdentifier(descriptor_));
+ }
+ vector<const FieldDescriptor*> map_fields;
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+ if (GetJavaType(field) == JAVATYPE_MESSAGE &&
+ IsMapEntry(field->message_type())) {
+ map_fields.push_back(field);
+ }
+ }
+ if (!map_fields.empty()) {
+ printer->Print(
+ "@SuppressWarnings({\"rawtypes\"})\n"
+ "protected com.google.protobuf.MapField internalGetMapField(\n"
+ " int number) {\n"
+ " switch (number) {\n");
+ printer->Indent();
+ printer->Indent();
+ for (int i = 0; i < map_fields.size(); ++i) {
+ const FieldDescriptor* field = map_fields[i];
+ const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
+ printer->Print(
+ "case $number$:\n"
+ " return internalGet$capitalized_name$();\n",
+ "number", SimpleItoa(field->number()),
+ "capitalized_name", info->capitalized_name);
+ }
+ printer->Print(
+ "default:\n"
+ " throw new RuntimeException(\n"
+ " \"Invalid map field number: \" + number);\n");
+ printer->Outdent();
+ printer->Outdent();
+ printer->Print(
+ " }\n"
+ "}\n");
+ printer->Print(
+ "@SuppressWarnings({\"rawtypes\"})\n"
+ "protected com.google.protobuf.MapField internalGetMutableMapField(\n"
+ " int number) {\n"
+ " switch (number) {\n");
+ printer->Indent();
+ printer->Indent();
+ for (int i = 0; i < map_fields.size(); ++i) {
+ const FieldDescriptor* field = map_fields[i];
+ const FieldGeneratorInfo* info =
+ context_->GetFieldGeneratorInfo(field);
+ printer->Print(
+ "case $number$:\n"
+ " return internalGetMutable$capitalized_name$();\n",
+ "number", SimpleItoa(field->number()),
+ "capitalized_name", info->capitalized_name);
+ }
+ printer->Print(
+ "default:\n"
+ " throw new RuntimeException(\n"
+ " \"Invalid map field number: \" + number);\n");
+ printer->Outdent();
+ printer->Outdent();
+ printer->Print(
+ " }\n"
+ "}\n");
+ }
+ printer->Print(
+ "protected com.google.protobuf.GeneratedMessage.FieldAccessorTable\n"
+ " internalGetFieldAccessorTable() {\n"
+ " return $fileclass$.internal_$identifier$_fieldAccessorTable\n"
+ " .ensureFieldAccessorsInitialized(\n"
+ " $classname$.class, $classname$.Builder.class);\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_),
+ "fileclass", name_resolver_->GetImmutableClassName(descriptor_->file()),
+ "identifier", UniqueFileScopeIdentifier(descriptor_));
+}
+
+// ===================================================================
+
+void MessageBuilderGenerator::
+GenerateCommonBuilderMethods(io::Printer* printer) {
+ printer->Print(
+ "// Construct using $classname$.newBuilder()\n"
+ "private Builder() {\n"
+ " maybeForceBuilderInitialization();\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ printer->Print(
+ "private Builder(\n"
+ " com.google.protobuf.GeneratedMessage.BuilderParent parent) {\n"
+ " super(parent);\n"
+ " maybeForceBuilderInitialization();\n"
+ "}\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ printer->Print(
+ "private void maybeForceBuilderInitialization() {\n"
+ " if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {\n");
+
+ printer->Indent();
+ printer->Indent();
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ if (!descriptor_->field(i)->containing_oneof()) {
+ field_generators_.get(descriptor_->field(i))
+ .GenerateFieldBuilderInitializationCode(printer);
+ }
+ }
+ printer->Outdent();
+ printer->Outdent();
+
+ printer->Print(
+ " }\n"
+ "}\n");
+
+ printer->Print(
+ "public Builder clear() {\n"
+ " super.clear();\n");
+
+ printer->Indent();
+
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ if (!descriptor_->field(i)->containing_oneof()) {
+ field_generators_.get(descriptor_->field(i))
+ .GenerateBuilderClearCode(printer);
+ }
+ }
+
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ printer->Print(
+ "$oneof_name$Case_ = 0;\n"
+ "$oneof_name$_ = null;\n",
+ "oneof_name", context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->name);
+ }
+
+ printer->Outdent();
+
+ printer->Print(
+ " return this;\n"
+ "}\n"
+ "\n");
+
+ printer->Print(
+ "public com.google.protobuf.Descriptors.Descriptor\n"
+ " getDescriptorForType() {\n"
+ " return $fileclass$.internal_$identifier$_descriptor;\n"
+ "}\n"
+ "\n",
+ "fileclass", name_resolver_->GetImmutableClassName(descriptor_->file()),
+ "identifier", UniqueFileScopeIdentifier(descriptor_));
+
+ // LITE runtime implements this in GeneratedMessageLite.
+ printer->Print(
+ "public $classname$ getDefaultInstanceForType() {\n"
+ " return $classname$.getDefaultInstance();\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ printer->Print(
+ "public $classname$ build() {\n"
+ " $classname$ result = buildPartial();\n"
+ " if (!result.isInitialized()) {\n"
+ " throw newUninitializedMessageException(result);\n"
+ " }\n"
+ " return result;\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ printer->Print(
+ "public $classname$ buildPartial() {\n"
+ " $classname$ result = new $classname$(this);\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ printer->Indent();
+
+ int totalBuilderBits = 0;
+ int totalMessageBits = 0;
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const ImmutableFieldGenerator& field =
+ field_generators_.get(descriptor_->field(i));
+ totalBuilderBits += field.GetNumBitsForBuilder();
+ totalMessageBits += field.GetNumBitsForMessage();
+ }
+ int totalBuilderInts = (totalBuilderBits + 31) / 32;
+ int totalMessageInts = (totalMessageBits + 31) / 32;
+
+ if (GenerateHasBits(descriptor_)) {
+ // Local vars for from and to bit fields to avoid accessing the builder and
+ // message over and over for these fields. Seems to provide a slight
+ // perforamance improvement in micro benchmark and this is also what proto1
+ // code does.
+ for (int i = 0; i < totalBuilderInts; i++) {
+ printer->Print("int from_$bit_field_name$ = $bit_field_name$;\n",
+ "bit_field_name", GetBitFieldName(i));
+ }
+ for (int i = 0; i < totalMessageInts; i++) {
+ printer->Print("int to_$bit_field_name$ = 0;\n",
+ "bit_field_name", GetBitFieldName(i));
+ }
+ }
+
+ // Output generation code for each field.
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ field_generators_.get(descriptor_->field(i)).GenerateBuildingCode(printer);
+ }
+
+ if (GenerateHasBits(descriptor_)) {
+ // Copy the bit field results to the generated message
+ for (int i = 0; i < totalMessageInts; i++) {
+ printer->Print("result.$bit_field_name$ = to_$bit_field_name$;\n",
+ "bit_field_name", GetBitFieldName(i));
+ }
+ }
+
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ printer->Print("result.$oneof_name$Case_ = $oneof_name$Case_;\n",
+ "oneof_name", context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->name);
+ }
+
+ printer->Outdent();
+
+ printer->Print(
+ " onBuilt();\n");
+
+ printer->Print(
+ " return result;\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ // -----------------------------------------------------------------
+
+ if (HasGeneratedMethods(descriptor_)) {
+ printer->Print(
+ "public Builder mergeFrom(com.google.protobuf.Message other) {\n"
+ " if (other instanceof $classname$) {\n"
+ " return mergeFrom(($classname$)other);\n"
+ " } else {\n"
+ " super.mergeFrom(other);\n"
+ " return this;\n"
+ " }\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ printer->Print(
+ "public Builder mergeFrom($classname$ other) {\n"
+ // Optimization: If other is the default instance, we know none of its
+ // fields are set so we can skip the merge.
+ " if (other == $classname$.getDefaultInstance()) return this;\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+ printer->Indent();
+
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ if (!descriptor_->field(i)->containing_oneof()) {
+ field_generators_.get(
+ descriptor_->field(i)).GenerateMergingCode(printer);
+ }
+ }
+
+ // Merge oneof fields.
+ for (int i = 0; i < descriptor_->oneof_decl_count(); ++i) {
+ printer->Print(
+ "switch (other.get$oneof_capitalized_name$Case()) {\n",
+ "oneof_capitalized_name",
+ context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->capitalized_name);
+ printer->Indent();
+ for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
+ const FieldDescriptor* field = descriptor_->oneof_decl(i)->field(j);
+ printer->Print(
+ "case $field_name$: {\n",
+ "field_name",
+ ToUpper(field->name()));
+ printer->Indent();
+ field_generators_.get(field).GenerateMergingCode(printer);
+ printer->Print(
+ "break;\n");
+ printer->Outdent();
+ printer->Print(
+ "}\n");
+ }
+ printer->Print(
+ "case $cap_oneof_name$_NOT_SET: {\n"
+ " break;\n"
+ "}\n",
+ "cap_oneof_name",
+ ToUpper(context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->name));
+ printer->Outdent();
+ printer->Print(
+ "}\n");
+ }
+
+ printer->Outdent();
+
+ // if message type has extensions
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print(
+ " this.mergeExtensionFields(other);\n");
+ }
+
+ if (PreserveUnknownFields(descriptor_)) {
+ printer->Print(
+ " this.mergeUnknownFields(other.unknownFields);\n");
+ }
+
+ printer->Print(
+ " onChanged();\n");
+
+ printer->Print(
+ " return this;\n"
+ "}\n"
+ "\n");
+ }
+}
+
+// ===================================================================
+
+void MessageBuilderGenerator::
+GenerateBuilderParsingMethods(io::Printer* printer) {
+ printer->Print(
+ "public Builder mergeFrom(\n"
+ " com.google.protobuf.CodedInputStream input,\n"
+ " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
+ " throws java.io.IOException {\n"
+ " $classname$ parsedMessage = null;\n"
+ " try {\n"
+ " parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);\n"
+ " } catch (com.google.protobuf.InvalidProtocolBufferException e) {\n"
+ " parsedMessage = ($classname$) e.getUnfinishedMessage();\n"
+ " throw e;\n"
+ " } finally {\n"
+ " if (parsedMessage != null) {\n"
+ " mergeFrom(parsedMessage);\n"
+ " }\n"
+ " }\n"
+ " return this;\n"
+ "}\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+}
+
+// ===================================================================
+
+void MessageBuilderGenerator::GenerateIsInitialized(
+ io::Printer* printer) {
+ printer->Print(
+ "public final boolean isInitialized() {\n");
+ printer->Indent();
+
+ // Check that all required fields in this message are set.
+ // TODO(kenton): We can optimize this when we switch to putting all the
+ // "has" fields into a single bitfield.
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+ const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
+
+ if (field->is_required()) {
+ printer->Print(
+ "if (!has$name$()) {\n"
+ " return false;\n"
+ "}\n",
+ "name", info->capitalized_name);
+ }
+ }
+
+ // Now check that all embedded messages are initialized.
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+ const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
+ if (GetJavaType(field) == JAVATYPE_MESSAGE &&
+ HasRequiredFields(field->message_type())) {
+ switch (field->label()) {
+ case FieldDescriptor::LABEL_REQUIRED:
+ printer->Print(
+ "if (!get$name$().isInitialized()) {\n"
+ " return false;\n"
+ "}\n",
+ "type", name_resolver_->GetImmutableClassName(
+ field->message_type()),
+ "name", info->capitalized_name);
+ break;
+ case FieldDescriptor::LABEL_OPTIONAL:
+ if (!SupportFieldPresence(descriptor_->file()) &&
+ field->containing_oneof() != NULL) {
+ const OneofDescriptor* oneof = field->containing_oneof();
+ const OneofGeneratorInfo* oneof_info =
+ context_->GetOneofGeneratorInfo(oneof);
+ printer->Print(
+ "if ($oneof_name$Case_ == $field_number$) {\n",
+ "oneof_name", oneof_info->name,
+ "field_number", SimpleItoa(field->number()));
+ } else {
+ printer->Print(
+ "if (has$name$()) {\n",
+ "name", info->capitalized_name);
+ }
+ printer->Print(
+ " if (!get$name$().isInitialized()) {\n"
+ " return false;\n"
+ " }\n"
+ "}\n",
+ "name", info->capitalized_name);
+ break;
+ case FieldDescriptor::LABEL_REPEATED:
+ if (IsMapEntry(field->message_type())) {
+ printer->Print(
+ "for ($type$ item : get$name$().values()) {\n"
+ " if (!item.isInitialized()) {\n"
+ " return false;\n"
+ " }\n"
+ "}\n",
+ "type", MapValueImmutableClassdName(field->message_type(),
+ name_resolver_),
+ "name", info->capitalized_name);
+ } else {
+ printer->Print(
+ "for (int i = 0; i < get$name$Count(); i++) {\n"
+ " if (!get$name$(i).isInitialized()) {\n"
+ " return false;\n"
+ " }\n"
+ "}\n",
+ "type", name_resolver_->GetImmutableClassName(
+ field->message_type()),
+ "name", info->capitalized_name);
+ }
+ break;
+ }
+ }
+ }
+
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print(
+ "if (!extensionsAreInitialized()) {\n"
+ " return false;\n"
+ "}\n");
+ }
+
+ printer->Outdent();
+
+ printer->Print(
+ " return true;\n"
+ "}\n"
+ "\n");
+}
+
+// ===================================================================
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/java/java_message_builder.h b/src/google/protobuf/compiler/java/java_message_builder.h
new file mode 100644
index 00000000..015ea062
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_message_builder.h
@@ -0,0 +1,86 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: dweis@google.com (Daniel Weis)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_BUILDER_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_BUILDER_H__
+
+#include <string>
+#include <map>
+#include <google/protobuf/compiler/java/java_field.h>
+
+namespace google {
+namespace protobuf {
+ namespace compiler {
+ namespace java {
+ class Context; // context.h
+ class ClassNameResolver; // name_resolver.h
+ }
+ }
+ namespace io {
+ class Printer; // printer.h
+ }
+}
+
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+class MessageBuilderGenerator {
+ public:
+ explicit MessageBuilderGenerator(const Descriptor* descriptor,
+ Context* context);
+ virtual ~MessageBuilderGenerator();
+
+ virtual void Generate(io::Printer* printer);
+
+ private:
+ void GenerateCommonBuilderMethods(io::Printer* printer);
+ void GenerateDescriptorMethods(io::Printer* printer);
+ void GenerateBuilderParsingMethods(io::Printer* printer);
+ void GenerateIsInitialized(io::Printer* printer);
+
+ const Descriptor* descriptor_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+ FieldGeneratorMap<ImmutableFieldGenerator> field_generators_;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageBuilderGenerator);
+};
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_BUILDER_H__
diff --git a/src/google/protobuf/compiler/java/java_message_builder_lite.cc b/src/google/protobuf/compiler/java/java_message_builder_lite.cc
new file mode 100644
index 00000000..8719d00d
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_message_builder_lite.cc
@@ -0,0 +1,192 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: dweis@google.com (Daniel Weis)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#include <google/protobuf/compiler/java/java_message_builder_lite.h>
+
+#include <algorithm>
+#include <google/protobuf/stubs/hash.h>
+#include <map>
+#include <memory>
+#ifndef _SHARED_PTR_H
+#include <google/protobuf/stubs/shared_ptr.h>
+#endif
+#include <vector>
+
+#include <google/protobuf/compiler/java/java_context.h>
+#include <google/protobuf/compiler/java/java_doc_comment.h>
+#include <google/protobuf/compiler/java/java_enum.h>
+#include <google/protobuf/compiler/java/java_extension.h>
+#include <google/protobuf/compiler/java/java_generator_factory.h>
+#include <google/protobuf/compiler/java/java_helpers.h>
+#include <google/protobuf/compiler/java/java_name_resolver.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/wire_format.h>
+#include <google/protobuf/stubs/strutil.h>
+#include <google/protobuf/stubs/substitute.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+namespace {
+bool GenerateHasBits(const Descriptor* descriptor) {
+ return SupportFieldPresence(descriptor->file()) ||
+ HasRepeatedFields(descriptor);
+}
+
+string MapValueImmutableClassdName(const Descriptor* descriptor,
+ ClassNameResolver* name_resolver) {
+ const FieldDescriptor* value_field = descriptor->FindFieldByName("value");
+ GOOGLE_CHECK_EQ(FieldDescriptor::TYPE_MESSAGE, value_field->type());
+ return name_resolver->GetImmutableClassName(value_field->message_type());
+}
+} // namespace
+
+MessageBuilderLiteGenerator::MessageBuilderLiteGenerator(
+ const Descriptor* descriptor, Context* context)
+ : descriptor_(descriptor), context_(context),
+ name_resolver_(context->GetNameResolver()),
+ field_generators_(descriptor, context_) {
+ GOOGLE_CHECK_EQ(
+ FileOptions::LITE_RUNTIME, descriptor->file()->options().optimize_for());
+}
+
+MessageBuilderLiteGenerator::~MessageBuilderLiteGenerator() {}
+
+void MessageBuilderLiteGenerator::
+Generate(io::Printer* printer) {
+ WriteMessageDocComment(printer, descriptor_);
+ printer->Print(
+ "public static final class Builder extends\n"
+ " com.google.protobuf.GeneratedMessageLite.$extendible$Builder<\n"
+ " $classname$, Builder> implements\n"
+ " $extra_interfaces$\n"
+ " $classname$OrBuilder {\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_),
+ "extra_interfaces", ExtraBuilderInterfaces(descriptor_),
+ "extendible",
+ descriptor_->extension_range_count() > 0 ? "Extendable" : "");
+ printer->Indent();
+
+ GenerateCommonBuilderMethods(printer);
+
+ // oneof
+ map<string, string> vars;
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ vars["oneof_name"] = context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->name;
+ vars["oneof_capitalized_name"] = context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->capitalized_name;
+ vars["oneof_index"] = SimpleItoa(descriptor_->oneof_decl(i)->index());
+
+ // oneofCase() and clearOneof()
+ printer->Print(vars,
+ "public $oneof_capitalized_name$Case\n"
+ " get$oneof_capitalized_name$Case() {\n"
+ " return instance.get$oneof_capitalized_name$Case();\n"
+ "}\n"
+ "\n"
+ "public Builder clear$oneof_capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$oneof_capitalized_name$();\n"
+ " return this;\n"
+ "}\n"
+ "\n");
+ }
+
+ if (GenerateHasBits(descriptor_)) {
+ // Integers for bit fields.
+ int totalBits = 0;
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ totalBits += field_generators_.get(descriptor_->field(i))
+ .GetNumBitsForBuilder();
+ }
+ int totalInts = (totalBits + 31) / 32;
+ for (int i = 0; i < totalInts; i++) {
+ printer->Print("private int $bit_field_name$;\n",
+ "bit_field_name", GetBitFieldName(i));
+ }
+ }
+
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ printer->Print("\n");
+ field_generators_.get(descriptor_->field(i))
+ .GenerateBuilderMembers(printer);
+ }
+
+ if (!PreserveUnknownFields(descriptor_)) {
+ printer->Print(
+ "public final Builder setUnknownFields(\n"
+ " final com.google.protobuf.UnknownFieldSet unknownFields) {\n"
+ " return this;\n"
+ "}\n"
+ "\n"
+ "public final Builder mergeUnknownFields(\n"
+ " final com.google.protobuf.UnknownFieldSet unknownFields) {\n"
+ " return this;\n"
+ "}\n"
+ "\n");
+ }
+
+ printer->Print(
+ "\n"
+ "// @@protoc_insertion_point(builder_scope:$full_name$)\n",
+ "full_name", descriptor_->full_name());
+
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+// ===================================================================
+
+void MessageBuilderLiteGenerator::
+GenerateCommonBuilderMethods(io::Printer* printer) {
+ printer->Print(
+ "// Construct using $classname$.newBuilder()\n"
+ "private Builder() {\n"
+ " super(DEFAULT_INSTANCE);\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+}
+
+// ===================================================================
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/java/java_message_builder_lite.h b/src/google/protobuf/compiler/java/java_message_builder_lite.h
new file mode 100644
index 00000000..8597b2e6
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_message_builder_lite.h
@@ -0,0 +1,83 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: dweis@google.com (Daniel Weis)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_BUILDER_LITE_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_BUILDER_LITE_H__
+
+#include <string>
+#include <map>
+#include <google/protobuf/compiler/java/java_field.h>
+
+namespace google {
+namespace protobuf {
+ namespace compiler {
+ namespace java {
+ class Context; // context.h
+ class ClassNameResolver; // name_resolver.h
+ }
+ }
+ namespace io {
+ class Printer; // printer.h
+ }
+}
+
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+class MessageBuilderLiteGenerator {
+ public:
+ explicit MessageBuilderLiteGenerator(const Descriptor* descriptor,
+ Context* context);
+ virtual ~MessageBuilderLiteGenerator();
+
+ virtual void Generate(io::Printer* printer);
+
+ private:
+ void GenerateCommonBuilderMethods(io::Printer* printer);
+
+ const Descriptor* descriptor_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+ FieldGeneratorMap<ImmutableFieldLiteGenerator> field_generators_;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageBuilderLiteGenerator);
+};
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_BUILDER_LITE_H__
diff --git a/src/google/protobuf/compiler/java/java_message_field.cc b/src/google/protobuf/compiler/java/java_message_field.cc
index a2d12a38..b180b4a7 100644
--- a/src/google/protobuf/compiler/java/java_message_field.cc
+++ b/src/google/protobuf/compiler/java/java_message_field.cc
@@ -157,11 +157,9 @@ GenerateInterfaceMembers(io::Printer* printer) const {
printer->Print(variables_,
"$deprecation$$type$ get$capitalized_name$();\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$$type$OrBuilder get$capitalized_name$OrBuilder();\n");
- }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$$type$OrBuilder get$capitalized_name$OrBuilder();\n");
}
void ImmutableMessageFieldGenerator::
@@ -182,14 +180,12 @@ GenerateMembers(io::Printer* printer) const {
" return $name$_ == null ? $type$.getDefaultInstance() : $name$_;\n"
"}\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$OrBuilder "
- "get$capitalized_name$OrBuilder() {\n"
- " return $name$_ == null ? $type$.getDefaultInstance() : $name$_;\n"
- "}\n");
- }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder "
+ "get$capitalized_name$OrBuilder() {\n"
+ " return $name$_ == null ? $type$.getDefaultInstance() : $name$_;\n"
+ "}\n");
} else {
WriteFieldDocComment(printer, descriptor_);
printer->Print(variables_,
@@ -202,14 +198,12 @@ GenerateMembers(io::Printer* printer) const {
" return $name$_ == null ? $type$.getDefaultInstance() : $name$_;\n"
"}\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$OrBuilder "
- "get$capitalized_name$OrBuilder() {\n"
- " return get$capitalized_name$();\n"
- "}\n");
- }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder "
+ "get$capitalized_name$OrBuilder() {\n"
+ " return get$capitalized_name$();\n"
+ "}\n");
}
}
@@ -217,19 +211,15 @@ void ImmutableMessageFieldGenerator::PrintNestedBuilderCondition(
io::Printer* printer,
const char* regular_case,
const char* nested_builder_case) const {
- if (HasNestedBuilders(descriptor_->containing_type())) {
- printer->Print(variables_, "if ($name$Builder_ == null) {\n");
- printer->Indent();
- printer->Print(variables_, regular_case);
- printer->Outdent();
- printer->Print("} else {\n");
- printer->Indent();
- printer->Print(variables_, nested_builder_case);
- printer->Outdent();
- printer->Print("}\n");
- } else {
- printer->Print(variables_, regular_case);
- }
+ printer->Print(variables_, "if ($name$Builder_ == null) {\n");
+ printer->Indent();
+ printer->Print(variables_, regular_case);
+ printer->Outdent();
+ printer->Print("} else {\n");
+ printer->Indent();
+ printer->Print(variables_, nested_builder_case);
+ printer->Outdent();
+ printer->Print("}\n");
}
void ImmutableMessageFieldGenerator::PrintNestedBuilderFunction(
@@ -260,14 +250,12 @@ GenerateBuilderMembers(io::Printer* printer) const {
printer->Print(variables_,
"private $type$ $name$_ = null;\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- printer->Print(variables_,
+ printer->Print(variables_,
// If this builder is non-null, it is used and the other fields are
// ignored.
"private com.google.protobuf.SingleFieldBuilder<\n"
" $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;"
"\n");
- }
// The comments above the methods below are based on a hypothetical
// field of type "Field" called "Field".
@@ -368,40 +356,38 @@ GenerateBuilderMembers(io::Printer* printer) const {
"$clear_has_field_bit_builder$\n"
"return this;\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$.Builder get$capitalized_name$Builder() {\n"
- " $set_has_field_bit_builder$\n"
- " $on_changed$\n"
- " return get$capitalized_name$FieldBuilder().getBuilder();\n"
- "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n"
- " if ($name$Builder_ != null) {\n"
- " return $name$Builder_.getMessageOrBuilder();\n"
- " } else {\n"
- " return $name$_ == null ?\n"
- " $type$.getDefaultInstance() : $name$_;\n"
- " }\n"
- "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "private com.google.protobuf.SingleFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder> \n"
- " get$capitalized_name$FieldBuilder() {\n"
- " if ($name$Builder_ == null) {\n"
- " $name$Builder_ = new com.google.protobuf.SingleFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder>(\n"
- " get$capitalized_name$(),\n"
- " getParentForChildren(),\n"
- " isClean());\n"
- " $name$_ = null;\n"
- " }\n"
- " return $name$Builder_;\n"
- "}\n");
- }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$.Builder get$capitalized_name$Builder() {\n"
+ " $set_has_field_bit_builder$\n"
+ " $on_changed$\n"
+ " return get$capitalized_name$FieldBuilder().getBuilder();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n"
+ " if ($name$Builder_ != null) {\n"
+ " return $name$Builder_.getMessageOrBuilder();\n"
+ " } else {\n"
+ " return $name$_ == null ?\n"
+ " $type$.getDefaultInstance() : $name$_;\n"
+ " }\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private com.google.protobuf.SingleFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder> \n"
+ " get$capitalized_name$FieldBuilder() {\n"
+ " if ($name$Builder_ == null) {\n"
+ " $name$Builder_ = new com.google.protobuf.SingleFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder>(\n"
+ " get$capitalized_name$(),\n"
+ " getParentForChildren(),\n"
+ " isClean());\n"
+ " $name$_ = null;\n"
+ " }\n"
+ " return $name$Builder_;\n"
+ "}\n");
}
void ImmutableMessageFieldGenerator::
@@ -557,16 +543,14 @@ GenerateMembers(io::Printer* printer) const {
" return $type$.getDefaultInstance();\n"
"}\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n"
- " if ($has_oneof_case_message$) {\n"
- " return ($type$) $oneof_name$_;\n"
- " }\n"
- " return $type$.getDefaultInstance();\n"
- "}\n");
- }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " return ($type$) $oneof_name$_;\n"
+ " }\n"
+ " return $type$.getDefaultInstance();\n"
+ "}\n");
}
void ImmutableMessageOneofFieldGenerator::
@@ -574,14 +558,12 @@ GenerateBuilderMembers(io::Printer* printer) const {
// When using nested-builders, the code initially works just like the
// non-nested builder case. It only creates a nested builder lazily on
// demand and then forever delegates to it after creation.
- if (HasNestedBuilders(descriptor_->containing_type())) {
- printer->Print(variables_,
- // If this builder is non-null, it is used and the other fields are
- // ignored.
- "private com.google.protobuf.SingleFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;"
- "\n");
- }
+ printer->Print(variables_,
+ // If this builder is non-null, it is used and the other fields are
+ // ignored.
+ "private com.google.protobuf.SingleFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;"
+ "\n");
// The comments above the methods below are based on a hypothetical
// field of type "Field" called "Field".
@@ -683,45 +665,43 @@ GenerateBuilderMembers(io::Printer* printer) const {
"return this;\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$.Builder get$capitalized_name$Builder() {\n"
- " return get$capitalized_name$FieldBuilder().getBuilder();\n"
- "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n"
- " if (($has_oneof_case_message$) && ($name$Builder_ != null)) {\n"
- " return $name$Builder_.getMessageOrBuilder();\n"
- " } else {\n"
- " if ($has_oneof_case_message$) {\n"
- " return ($type$) $oneof_name$_;\n"
- " }\n"
- " return $type$.getDefaultInstance();\n"
- " }\n"
- "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "private com.google.protobuf.SingleFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder> \n"
- " get$capitalized_name$FieldBuilder() {\n"
- " if ($name$Builder_ == null) {\n"
- " if (!($has_oneof_case_message$)) {\n"
- " $oneof_name$_ = $type$.getDefaultInstance();\n"
- " }\n"
- " $name$Builder_ = new com.google.protobuf.SingleFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder>(\n"
- " ($type$) $oneof_name$_,\n"
- " getParentForChildren(),\n"
- " isClean());\n"
- " $oneof_name$_ = null;\n"
- " }\n"
- " $set_oneof_case_message$;\n"
- " $on_changed$;\n"
- " return $name$Builder_;\n"
- "}\n");
- }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$.Builder get$capitalized_name$Builder() {\n"
+ " return get$capitalized_name$FieldBuilder().getBuilder();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder() {\n"
+ " if (($has_oneof_case_message$) && ($name$Builder_ != null)) {\n"
+ " return $name$Builder_.getMessageOrBuilder();\n"
+ " } else {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " return ($type$) $oneof_name$_;\n"
+ " }\n"
+ " return $type$.getDefaultInstance();\n"
+ " }\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private com.google.protobuf.SingleFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder> \n"
+ " get$capitalized_name$FieldBuilder() {\n"
+ " if ($name$Builder_ == null) {\n"
+ " if (!($has_oneof_case_message$)) {\n"
+ " $oneof_name$_ = $type$.getDefaultInstance();\n"
+ " }\n"
+ " $name$Builder_ = new com.google.protobuf.SingleFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder>(\n"
+ " ($type$) $oneof_name$_,\n"
+ " getParentForChildren(),\n"
+ " isClean());\n"
+ " $oneof_name$_ = null;\n"
+ " }\n"
+ " $set_oneof_case_message$;\n"
+ " $on_changed$;\n"
+ " return $name$Builder_;\n"
+ "}\n");
}
void ImmutableMessageOneofFieldGenerator::
@@ -831,16 +811,15 @@ GenerateInterfaceMembers(io::Printer* printer) const {
WriteFieldDocComment(printer, descriptor_);
printer->Print(variables_,
"$deprecation$int get$capitalized_name$Count();\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$java.util.List<? extends $type$OrBuilder> \n"
- " get$capitalized_name$OrBuilderList();\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$$type$OrBuilder get$capitalized_name$OrBuilder(\n"
- " int index);\n");
- }
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$java.util.List<? extends $type$OrBuilder> \n"
+ " get$capitalized_name$OrBuilderList();\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$$type$OrBuilder get$capitalized_name$OrBuilder(\n"
+ " int index);\n");
}
void RepeatedImmutableMessageFieldGenerator::
@@ -882,19 +861,15 @@ void RepeatedImmutableMessageFieldGenerator::PrintNestedBuilderCondition(
io::Printer* printer,
const char* regular_case,
const char* nested_builder_case) const {
- if (HasNestedBuilders(descriptor_->containing_type())) {
- printer->Print(variables_, "if ($name$Builder_ == null) {\n");
- printer->Indent();
- printer->Print(variables_, regular_case);
- printer->Outdent();
- printer->Print("} else {\n");
- printer->Indent();
- printer->Print(variables_, nested_builder_case);
- printer->Outdent();
- printer->Print("}\n");
- } else {
- printer->Print(variables_, regular_case);
- }
+ printer->Print(variables_, "if ($name$Builder_ == null) {\n");
+ printer->Indent();
+ printer->Print(variables_, regular_case);
+ printer->Outdent();
+ printer->Print("} else {\n");
+ printer->Indent();
+ printer->Print(variables_, nested_builder_case);
+ printer->Outdent();
+ printer->Print("}\n");
}
void RepeatedImmutableMessageFieldGenerator::PrintNestedBuilderFunction(
@@ -942,14 +917,12 @@ GenerateBuilderMembers(io::Printer* printer) const {
"}\n"
"\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- printer->Print(variables_,
- // If this builder is non-null, it is used and the other fields are
- // ignored.
- "private com.google.protobuf.RepeatedFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;\n"
- "\n");
- }
+ printer->Print(variables_,
+ // If this builder is non-null, it is used and the other fields are
+ // ignored.
+ "private com.google.protobuf.RepeatedFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder> $name$Builder_;\n"
+ "\n");
// The comments above the methods below are based on a hypothetical
// repeated field of type "Field" called "RepeatedField".
@@ -1116,70 +1089,68 @@ GenerateBuilderMembers(io::Printer* printer) const {
"return this;\n");
- if (HasNestedBuilders(descriptor_->containing_type())) {
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$.Builder get$capitalized_name$Builder(\n"
- " int index) {\n"
- " return get$capitalized_name$FieldBuilder().getBuilder(index);\n"
- "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$.Builder get$capitalized_name$Builder(\n"
+ " int index) {\n"
+ " return get$capitalized_name$FieldBuilder().getBuilder(index);\n"
+ "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder(\n"
- " int index) {\n"
- " if ($name$Builder_ == null) {\n"
- " return $name$_.get(index);"
- " } else {\n"
- " return $name$Builder_.getMessageOrBuilder(index);\n"
- " }\n"
- "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder(\n"
+ " int index) {\n"
+ " if ($name$Builder_ == null) {\n"
+ " return $name$_.get(index);"
+ " } else {\n"
+ " return $name$Builder_.getMessageOrBuilder(index);\n"
+ " }\n"
+ "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public java.util.List<? extends $type$OrBuilder> \n"
- " get$capitalized_name$OrBuilderList() {\n"
- " if ($name$Builder_ != null) {\n"
- " return $name$Builder_.getMessageOrBuilderList();\n"
- " } else {\n"
- " return java.util.Collections.unmodifiableList($name$_);\n"
- " }\n"
- "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<? extends $type$OrBuilder> \n"
+ " get$capitalized_name$OrBuilderList() {\n"
+ " if ($name$Builder_ != null) {\n"
+ " return $name$Builder_.getMessageOrBuilderList();\n"
+ " } else {\n"
+ " return java.util.Collections.unmodifiableList($name$_);\n"
+ " }\n"
+ "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$.Builder add$capitalized_name$Builder() {\n"
- " return get$capitalized_name$FieldBuilder().addBuilder(\n"
- " $type$.getDefaultInstance());\n"
- "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public $type$.Builder add$capitalized_name$Builder(\n"
- " int index) {\n"
- " return get$capitalized_name$FieldBuilder().addBuilder(\n"
- " index, $type$.getDefaultInstance());\n"
- "}\n");
- WriteFieldDocComment(printer, descriptor_);
- printer->Print(variables_,
- "$deprecation$public java.util.List<$type$.Builder> \n"
- " get$capitalized_name$BuilderList() {\n"
- " return get$capitalized_name$FieldBuilder().getBuilderList();\n"
- "}\n"
- "private com.google.protobuf.RepeatedFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder> \n"
- " get$capitalized_name$FieldBuilder() {\n"
- " if ($name$Builder_ == null) {\n"
- " $name$Builder_ = new com.google.protobuf.RepeatedFieldBuilder<\n"
- " $type$, $type$.Builder, $type$OrBuilder>(\n"
- " $name$_,\n"
- " $get_mutable_bit_builder$,\n"
- " getParentForChildren(),\n"
- " isClean());\n"
- " $name$_ = null;\n"
- " }\n"
- " return $name$Builder_;\n"
- "}\n");
- }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$.Builder add$capitalized_name$Builder() {\n"
+ " return get$capitalized_name$FieldBuilder().addBuilder(\n"
+ " $type$.getDefaultInstance());\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$.Builder add$capitalized_name$Builder(\n"
+ " int index) {\n"
+ " return get$capitalized_name$FieldBuilder().addBuilder(\n"
+ " index, $type$.getDefaultInstance());\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<$type$.Builder> \n"
+ " get$capitalized_name$BuilderList() {\n"
+ " return get$capitalized_name$FieldBuilder().getBuilderList();\n"
+ "}\n"
+ "private com.google.protobuf.RepeatedFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder> \n"
+ " get$capitalized_name$FieldBuilder() {\n"
+ " if ($name$Builder_ == null) {\n"
+ " $name$Builder_ = new com.google.protobuf.RepeatedFieldBuilder<\n"
+ " $type$, $type$.Builder, $type$OrBuilder>(\n"
+ " $name$_,\n"
+ " $get_mutable_bit_builder$,\n"
+ " getParentForChildren(),\n"
+ " isClean());\n"
+ " $name$_ = null;\n"
+ " }\n"
+ " return $name$Builder_;\n"
+ "}\n");
}
void RepeatedImmutableMessageFieldGenerator::
diff --git a/src/google/protobuf/compiler/java/java_message_field_lite.cc b/src/google/protobuf/compiler/java/java_message_field_lite.cc
new file mode 100644
index 00000000..8332202c
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_message_field_lite.cc
@@ -0,0 +1,944 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#include <map>
+#include <string>
+
+#include <google/protobuf/compiler/java/java_context.h>
+#include <google/protobuf/compiler/java/java_message_field_lite.h>
+#include <google/protobuf/compiler/java/java_doc_comment.h>
+#include <google/protobuf/compiler/java/java_helpers.h>
+#include <google/protobuf/compiler/java/java_name_resolver.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/wire_format.h>
+#include <google/protobuf/stubs/strutil.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+namespace {
+
+void SetMessageVariables(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ const FieldGeneratorInfo* info,
+ ClassNameResolver* name_resolver,
+ map<string, string>* variables) {
+ SetCommonFieldVariables(descriptor, info, variables);
+
+ (*variables)["type"] =
+ name_resolver->GetImmutableClassName(descriptor->message_type());
+ (*variables)["mutable_type"] =
+ name_resolver->GetMutableClassName(descriptor->message_type());
+ (*variables)["group_or_message"] =
+ (GetType(descriptor) == FieldDescriptor::TYPE_GROUP) ?
+ "Group" : "Message";
+ // TODO(birdo): Add @deprecated javadoc when generating javadoc is supported
+ // by the proto compiler
+ (*variables)["deprecation"] = descriptor->options().deprecated()
+ ? "@java.lang.Deprecated " : "";
+ (*variables)["on_changed"] =
+ HasDescriptorMethods(descriptor->containing_type()) ? "onChanged();" : "";
+
+ if (SupportFieldPresence(descriptor->file())) {
+ // For singular messages and builders, one bit is used for the hasField bit.
+ (*variables)["get_has_field_bit_message"] = GenerateGetBit(messageBitIndex);
+
+ // Note that these have a trailing ";".
+ (*variables)["set_has_field_bit_message"] =
+ GenerateSetBit(messageBitIndex) + ";";
+ (*variables)["clear_has_field_bit_message"] =
+ GenerateClearBit(messageBitIndex) + ";";
+
+ (*variables)["is_field_present_message"] = GenerateGetBit(messageBitIndex);
+ } else {
+ (*variables)["set_has_field_bit_message"] = "";
+ (*variables)["clear_has_field_bit_message"] = "";
+
+ (*variables)["is_field_present_message"] =
+ (*variables)["name"] + "_ != null";
+ }
+
+ // For repeated builders, the underlying list tracks mutability state.
+ (*variables)["is_mutable"] = (*variables)["name"] + "_.isModifiable()";
+
+ (*variables)["get_has_field_bit_from_local"] =
+ GenerateGetBitFromLocal(builderBitIndex);
+ (*variables)["set_has_field_bit_to_local"] =
+ GenerateSetBitToLocal(messageBitIndex);
+}
+
+} // namespace
+
+// ===================================================================
+
+ImmutableMessageFieldLiteGenerator::
+ImmutableMessageFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : descriptor_(descriptor), messageBitIndex_(messageBitIndex),
+ builderBitIndex_(builderBitIndex), context_(context),
+ name_resolver_(context->GetNameResolver()) {
+ SetMessageVariables(descriptor, messageBitIndex, builderBitIndex,
+ context->GetFieldGeneratorInfo(descriptor),
+ name_resolver_, &variables_);
+}
+
+ImmutableMessageFieldLiteGenerator::~ImmutableMessageFieldLiteGenerator() {}
+
+int ImmutableMessageFieldLiteGenerator::GetNumBitsForMessage() const {
+ return 1;
+}
+
+int ImmutableMessageFieldLiteGenerator::GetNumBitsForBuilder() const {
+ return 0;
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateInterfaceMembers(io::Printer* printer) const {
+ // TODO(jonp): In the future, consider having a method specific to the
+ // interface so that builders can choose dynamically to either return a
+ // message or a nested builder, so that asking for the interface doesn't
+ // cause a message to ever be built.
+ if (SupportFieldPresence(descriptor_->file()) ||
+ descriptor_->containing_oneof() == NULL) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$boolean has$capitalized_name$();\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$$type$ get$capitalized_name$();\n");
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(variables_,
+ "private $type$ $name$_;\n");
+ PrintExtraFieldInfo(variables_, printer);
+
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $get_has_field_bit_message$;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return $name$_ == null ? $type$.getDefaultInstance() : $name$_;\n"
+ "}\n");
+ } else {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $name$_ != null;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return $name$_ == null ? $type$.getDefaultInstance() : $name$_;\n"
+ "}\n");
+ }
+
+ // Field.Builder setField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$($type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " $name$_ = value;\n"
+ " $set_has_field_bit_message$\n"
+ " }\n");
+
+ // Field.Builder setField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " $name$_ = builderForValue.build();\n"
+ " $set_has_field_bit_message$\n"
+ "}\n");
+
+ // Field.Builder mergeField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void merge$capitalized_name$($type$ value) {\n"
+ " if ($name$_ != null &&\n"
+ " $name$_ != $type$.getDefaultInstance()) {\n"
+ " $name$_ =\n"
+ " $type$.newBuilder($name$_).mergeFrom(value).buildPartial();\n"
+ " } else {\n"
+ " $name$_ = value;\n"
+ " }\n"
+ " $set_has_field_bit_message$\n"
+ "}\n");
+
+ // Field.Builder clearField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {"
+ " $name$_ = null;\n"
+ " $clear_has_field_bit_message$\n"
+ "}\n");
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ // The comments above the methods below are based on a hypothetical
+ // field of type "Field" called "Field".
+
+ // boolean hasField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return instance.has$capitalized_name$();\n"
+ "}\n");
+
+ // Field getField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+
+ // Field.Builder setField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(value);\n"
+ " return this;\n"
+ " }\n");
+
+ // Field.Builder setField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(builderForValue);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder mergeField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder merge$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.merge$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder clearField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(variables_,
+ "get$capitalized_name$FieldBuilder();\n");
+ }
+}
+
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateInitializationCode(io::Printer* printer) const {}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (other.has$capitalized_name$()) {\n"
+ " merge$capitalized_name$(other.get$capitalized_name$());\n"
+ "}\n");
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const {
+ // noop for scalars
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "$type$.Builder subBuilder = null;\n"
+ "if ($is_field_present_message$) {\n"
+ " subBuilder = $name$_.toBuilder();\n"
+ "}\n");
+
+ if (GetType(descriptor_) == FieldDescriptor::TYPE_GROUP) {
+ printer->Print(variables_,
+ "$name$_ = input.readGroup($number$, $type$.PARSER,\n"
+ " extensionRegistry);\n");
+ } else {
+ printer->Print(variables_,
+ "$name$_ = input.readMessage($type$.PARSER, extensionRegistry);\n");
+ }
+
+ printer->Print(variables_,
+ "if (subBuilder != null) {\n"
+ " subBuilder.mergeFrom($name$_);\n"
+ " $name$_ = subBuilder.buildPartial();\n"
+ "}\n"
+ "$set_has_field_bit_message$\n");
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateParsingDoneCode(io::Printer* printer) const {
+ // noop for messages.
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_field_present_message$) {\n"
+ " output.write$group_or_message$($number$, get$capitalized_name$());\n"
+ "}\n");
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_field_present_message$) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .compute$group_or_message$Size($number$, get$capitalized_name$());\n"
+ "}\n");
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateEqualsCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "result = result && get$capitalized_name$()\n"
+ " .equals(other.get$capitalized_name$());\n");
+}
+
+void ImmutableMessageFieldLiteGenerator::
+GenerateHashCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "hash = (37 * hash) + $constant_name$;\n"
+ "hash = (53 * hash) + get$capitalized_name$().hashCode();\n");
+}
+
+string ImmutableMessageFieldLiteGenerator::GetBoxedType() const {
+ return name_resolver_->GetImmutableClassName(descriptor_->message_type());
+}
+
+// ===================================================================
+
+ImmutableMessageOneofFieldLiteGenerator::
+ImmutableMessageOneofFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : ImmutableMessageFieldLiteGenerator(
+ descriptor, messageBitIndex, builderBitIndex, context) {
+ const OneofGeneratorInfo* info =
+ context->GetOneofGeneratorInfo(descriptor->containing_oneof());
+ SetCommonOneofVariables(descriptor, info, &variables_);
+}
+
+ImmutableMessageOneofFieldLiteGenerator::
+~ImmutableMessageOneofFieldLiteGenerator() {}
+
+void ImmutableMessageOneofFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ PrintExtraFieldInfo(variables_, printer);
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $has_oneof_case_message$;\n"
+ "}\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " return ($type$) $oneof_name$_;\n"
+ " }\n"
+ " return $type$.getDefaultInstance();\n"
+ "}\n");
+
+ // Field.Builder setField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$($type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " $oneof_name$_ = value;\n"
+ " $set_oneof_case_message$;\n"
+ "}\n");
+
+ // Field.Builder setField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " $oneof_name$_ = builderForValue.build();\n"
+ " $set_oneof_case_message$;\n"
+ "}\n");
+
+ // Field.Builder mergeField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void merge$capitalized_name$($type$ value) {\n"
+ " if ($has_oneof_case_message$ &&\n"
+ " $oneof_name$_ != $type$.getDefaultInstance()) {\n"
+ " $oneof_name$_ = $type$.newBuilder(($type$) $oneof_name$_)\n"
+ " .mergeFrom(value).buildPartial();\n"
+ " } else {\n"
+ " $oneof_name$_ = value;\n"
+ " }\n"
+ " $set_oneof_case_message$;\n"
+ "}\n");
+
+ // Field.Builder clearField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " $clear_oneof_case_message$;\n"
+ " $oneof_name$_ = null;\n"
+ " }\n"
+ "}\n");
+}
+
+void ImmutableMessageOneofFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ // The comments above the methods below are based on a hypothetical
+ // field of type "Field" called "Field".
+
+ if (SupportFieldPresence(descriptor_->file())) {
+ // boolean hasField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return instance.has$capitalized_name$();\n"
+ "}\n");
+ }
+
+ // Field getField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+
+ // Field.Builder setField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder setField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(builderForValue);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder mergeField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder merge$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.merge$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Field.Builder clearField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void ImmutableMessageOneofFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "merge$capitalized_name$(other.get$capitalized_name$());\n");
+}
+
+void ImmutableMessageOneofFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "$type$.Builder subBuilder = null;\n"
+ "if ($has_oneof_case_message$) {\n"
+ " subBuilder = (($type$) $oneof_name$_).toBuilder();\n"
+ "}\n");
+
+ if (GetType(descriptor_) == FieldDescriptor::TYPE_GROUP) {
+ printer->Print(variables_,
+ "$oneof_name$_ = input.readGroup($number$, $type$.PARSER,\n"
+ " extensionRegistry);\n");
+ } else {
+ printer->Print(variables_,
+ "$oneof_name$_ = input.readMessage($type$.PARSER, extensionRegistry);\n");
+ }
+
+ printer->Print(variables_,
+ "if (subBuilder != null) {\n"
+ " subBuilder.mergeFrom(($type$) $oneof_name$_);\n"
+ " $oneof_name$_ = subBuilder.buildPartial();\n"
+ "}\n");
+ printer->Print(variables_,
+ "$set_oneof_case_message$;\n");
+}
+
+void ImmutableMessageOneofFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($has_oneof_case_message$) {\n"
+ " output.write$group_or_message$($number$, ($type$) $oneof_name$_);\n"
+ "}\n");
+}
+
+void ImmutableMessageOneofFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($has_oneof_case_message$) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .compute$group_or_message$Size($number$, ($type$) $oneof_name$_);\n"
+ "}\n");
+}
+
+// ===================================================================
+
+RepeatedImmutableMessageFieldLiteGenerator::
+RepeatedImmutableMessageFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : descriptor_(descriptor), messageBitIndex_(messageBitIndex),
+ builderBitIndex_(builderBitIndex), context_(context),
+ name_resolver_(context->GetNameResolver()) {
+ SetMessageVariables(descriptor, messageBitIndex, builderBitIndex,
+ context->GetFieldGeneratorInfo(descriptor),
+ name_resolver_, &variables_);
+}
+
+RepeatedImmutableMessageFieldLiteGenerator::
+~RepeatedImmutableMessageFieldLiteGenerator() {}
+
+int RepeatedImmutableMessageFieldLiteGenerator::GetNumBitsForMessage() const {
+ return 0;
+}
+
+int RepeatedImmutableMessageFieldLiteGenerator::GetNumBitsForBuilder() const {
+ return 0;
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateInterfaceMembers(io::Printer* printer) const {
+ // TODO(jonp): In the future, consider having methods specific to the
+ // interface so that builders can choose dynamically to either return a
+ // message or a nested builder, so that asking for the interface doesn't
+ // cause a message to ever be built.
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$java.util.List<$type$> \n"
+ " get$capitalized_name$List();\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$$type$ get$capitalized_name$(int index);\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$int get$capitalized_name$Count();\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(variables_,
+ "private com.google.protobuf.Internal.ProtobufList<$type$> $name$_;\n");
+ PrintExtraFieldInfo(variables_, printer);
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<$type$> get$capitalized_name$List() {\n"
+ " return $name$_;\n" // note: unmodifiable list
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<? extends $type$OrBuilder> \n"
+ " get$capitalized_name$OrBuilderList() {\n"
+ " return $name$_;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Count() {\n"
+ " return $name$_.size();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$(int index) {\n"
+ " return $name$_.get(index);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$OrBuilder get$capitalized_name$OrBuilder(\n"
+ " int index) {\n"
+ " return $name$_.get(index);\n"
+ "}\n");
+
+ printer->Print(variables_,
+ "private void ensure$capitalized_name$IsMutable() {\n"
+ " if (!$is_mutable$) {\n"
+ " $name$_ = newProtobufList($name$_);\n"
+ " }\n"
+ "}\n"
+ "\n");
+
+ // Builder setRepeatedField(int index, Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.set(index, value);\n"
+ "}\n");
+
+ // Builder setRepeatedField(int index, Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " int index, $type$.Builder builderForValue) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.set(index, builderForValue.build());\n"
+ "}\n");
+
+ // Builder addRepeatedField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$($type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(value);\n"
+ "}\n");
+
+ // Builder addRepeatedField(int index, Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(index, value);\n"
+ "}\n");
+ // Builder addRepeatedField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(builderForValue.build());\n"
+ "}\n");
+
+ // Builder addRepeatedField(int index, Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$(\n"
+ " int index, $type$.Builder builderForValue) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(index, builderForValue.build());\n"
+ "}\n");
+
+ // Builder addAllRepeatedField(Iterable<Field> values)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void addAll$capitalized_name$(\n"
+ " java.lang.Iterable<? extends $type$> values) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " com.google.protobuf.AbstractMessageLite.addAll(\n"
+ " values, $name$_);\n"
+ "}\n");
+
+ // Builder clearAllRepeatedField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " $name$_ = emptyProtobufList();\n"
+ "}\n");
+
+ // Builder removeRepeatedField(int index)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void remove$capitalized_name$(int index) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.remove(index);\n"
+ "}\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ // The comments above the methods below are based on a hypothetical
+ // repeated field of type "Field" called "RepeatedField".
+
+ // List<Field> getRepeatedFieldList()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<$type$> get$capitalized_name$List() {\n"
+ " return java.util.Collections.unmodifiableList(\n"
+ " instance.get$capitalized_name$List());\n"
+ "}\n");
+
+ // int getRepeatedFieldCount()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Count() {\n"
+ " return instance.get$capitalized_name$Count();\n"
+ "}");
+
+ // Field getRepeatedField(int index)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$(int index) {\n"
+ " return instance.get$capitalized_name$(index);\n"
+ "}\n");
+
+ // Builder setRepeatedField(int index, Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(index, value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder setRepeatedField(int index, Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " int index, $type$.Builder builderForValue) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(index, builderForValue);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder addRepeatedField(Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder addRepeatedField(int index, Field value)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(index, value);\n"
+ " return this;\n"
+ "}\n");
+ // Builder addRepeatedField(Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$(\n"
+ " $type$.Builder builderForValue) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(builderForValue);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder addRepeatedField(int index, Field.Builder builderForValue)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$(\n"
+ " int index, $type$.Builder builderForValue) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(index, builderForValue);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder addAllRepeatedField(Iterable<Field> values)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder addAll$capitalized_name$(\n"
+ " java.lang.Iterable<? extends $type$> values) {\n"
+ " copyOnWrite();\n"
+ " instance.addAll$capitalized_name$(values);\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder clearAllRepeatedField()
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+
+ // Builder removeRepeatedField(int index)
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder remove$capitalized_name$(int index) {\n"
+ " copyOnWrite();\n"
+ " instance.remove$capitalized_name$(index);\n"
+ " return this;\n"
+ "}\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "get$capitalized_name$FieldBuilder();\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateInitializationCode(io::Printer* printer) const {
+ printer->Print(variables_, "$name$_ = emptyProtobufList();\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ // The code below does two optimizations (non-nested builder case):
+ // 1. If the other list is empty, there's nothing to do. This ensures we
+ // don't allocate a new array if we already have an immutable one.
+ // 2. If the other list is non-empty and our current list is empty, we can
+ // reuse the other list which is guaranteed to be immutable.
+ printer->Print(variables_,
+ "if (!other.$name$_.isEmpty()) {\n"
+ " if ($name$_.isEmpty()) {\n"
+ " $name$_ = other.$name$_;\n"
+ " } else {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.addAll(other.$name$_);\n"
+ " }\n"
+ " $on_changed$\n"
+ "}\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "$name$_.makeImmutable();\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (!$is_mutable$) {\n"
+ " $name$_ = newProtobufList();\n"
+ "}\n");
+
+ if (GetType(descriptor_) == FieldDescriptor::TYPE_GROUP) {
+ printer->Print(variables_,
+ "$name$_.add(input.readGroup($number$, $type$.PARSER,\n"
+ " extensionRegistry));\n");
+ } else {
+ printer->Print(variables_,
+ "$name$_.add(input.readMessage($type$.PARSER, extensionRegistry));\n");
+ }
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateParsingDoneCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_mutable$) {\n"
+ " $name$_.makeImmutable();\n"
+ "}\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " output.write$group_or_message$($number$, $name$_.get(i));\n"
+ "}\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .compute$group_or_message$Size($number$, $name$_.get(i));\n"
+ "}\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateEqualsCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "result = result && get$capitalized_name$List()\n"
+ " .equals(other.get$capitalized_name$List());\n");
+}
+
+void RepeatedImmutableMessageFieldLiteGenerator::
+GenerateHashCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (get$capitalized_name$Count() > 0) {\n"
+ " hash = (37 * hash) + $constant_name$;\n"
+ " hash = (53 * hash) + get$capitalized_name$List().hashCode();\n"
+ "}\n");
+}
+
+string RepeatedImmutableMessageFieldLiteGenerator::GetBoxedType() const {
+ return name_resolver_->GetImmutableClassName(descriptor_->message_type());
+}
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/java/java_message_field_lite.h b/src/google/protobuf/compiler/java/java_message_field_lite.h
new file mode 100644
index 00000000..ae26c06a
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_message_field_lite.h
@@ -0,0 +1,157 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_LITE_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_LITE_H__
+
+#include <map>
+#include <string>
+#include <google/protobuf/compiler/java/java_field.h>
+
+namespace google {
+namespace protobuf {
+ namespace compiler {
+ namespace java {
+ class Context; // context.h
+ class ClassNameResolver; // name_resolver.h
+ }
+ }
+}
+
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+class ImmutableMessageFieldLiteGenerator : public ImmutableFieldLiteGenerator {
+ public:
+ explicit ImmutableMessageFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutableMessageFieldLiteGenerator();
+
+ // implements ImmutableFieldLiteGenerator ------------------------------------
+ int GetNumBitsForMessage() const;
+ int GetNumBitsForBuilder() const;
+ void GenerateInterfaceMembers(io::Printer* printer) const;
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateInitializationCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateParsingDoneCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+ void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
+ void GenerateEqualsCode(io::Printer* printer) const;
+ void GenerateHashCode(io::Printer* printer) const;
+
+ string GetBoxedType() const;
+
+ protected:
+ const FieldDescriptor* descriptor_;
+ map<string, string> variables_;
+ const int messageBitIndex_;
+ const int builderBitIndex_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableMessageFieldLiteGenerator);
+};
+
+class ImmutableMessageOneofFieldLiteGenerator
+ : public ImmutableMessageFieldLiteGenerator {
+ public:
+ ImmutableMessageOneofFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutableMessageOneofFieldLiteGenerator();
+
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableMessageOneofFieldLiteGenerator);
+};
+
+class RepeatedImmutableMessageFieldLiteGenerator
+ : public ImmutableFieldLiteGenerator {
+ public:
+ explicit RepeatedImmutableMessageFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~RepeatedImmutableMessageFieldLiteGenerator();
+
+ // implements ImmutableFieldLiteGenerator ------------------------------------
+ int GetNumBitsForMessage() const;
+ int GetNumBitsForBuilder() const;
+ void GenerateInterfaceMembers(io::Printer* printer) const;
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateInitializationCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateParsingDoneCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+ void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
+ void GenerateEqualsCode(io::Printer* printer) const;
+ void GenerateHashCode(io::Printer* printer) const;
+
+ string GetBoxedType() const;
+
+ protected:
+ const FieldDescriptor* descriptor_;
+ map<string, string> variables_;
+ const int messageBitIndex_;
+ const int builderBitIndex_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedImmutableMessageFieldLiteGenerator);
+};
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_FIELD_LITE_H__
diff --git a/src/google/protobuf/compiler/java/java_message_lite.cc b/src/google/protobuf/compiler/java/java_message_lite.cc
new file mode 100644
index 00000000..3accee92
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_message_lite.cc
@@ -0,0 +1,1174 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: dweis@google.com (Daniel Weis)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#include <google/protobuf/compiler/java/java_message_lite.h>
+
+#include <algorithm>
+#include <google/protobuf/stubs/hash.h>
+#include <map>
+#include <memory>
+#ifndef _SHARED_PTR_H
+#include <google/protobuf/stubs/shared_ptr.h>
+#endif
+#include <vector>
+
+#include <google/protobuf/compiler/java/java_context.h>
+#include <google/protobuf/compiler/java/java_doc_comment.h>
+#include <google/protobuf/compiler/java/java_enum.h>
+#include <google/protobuf/compiler/java/java_extension.h>
+#include <google/protobuf/compiler/java/java_generator_factory.h>
+#include <google/protobuf/compiler/java/java_helpers.h>
+#include <google/protobuf/compiler/java/java_message_builder.h>
+#include <google/protobuf/compiler/java/java_message_builder_lite.h>
+#include <google/protobuf/compiler/java/java_name_resolver.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/descriptor.pb.h>
+#include <google/protobuf/wire_format.h>
+#include <google/protobuf/stubs/strutil.h>
+#include <google/protobuf/stubs/substitute.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+using internal::WireFormat;
+using internal::WireFormatLite;
+
+namespace {
+bool GenerateHasBits(const Descriptor* descriptor) {
+ return SupportFieldPresence(descriptor->file()) ||
+ HasRepeatedFields(descriptor);
+}
+
+string MapValueImmutableClassdName(const Descriptor* descriptor,
+ ClassNameResolver* name_resolver) {
+ const FieldDescriptor* value_field = descriptor->FindFieldByName("value");
+ GOOGLE_CHECK_EQ(FieldDescriptor::TYPE_MESSAGE, value_field->type());
+ return name_resolver->GetImmutableClassName(value_field->message_type());
+}
+} // namespace
+
+// ===================================================================
+ImmutableMessageLiteGenerator::ImmutableMessageLiteGenerator(
+ const Descriptor* descriptor, Context* context)
+ : MessageGenerator(descriptor), context_(context),
+ name_resolver_(context->GetNameResolver()),
+ field_generators_(descriptor, context_) {
+ GOOGLE_CHECK_EQ(
+ FileOptions::LITE_RUNTIME, descriptor->file()->options().optimize_for());
+}
+
+ImmutableMessageLiteGenerator::~ImmutableMessageLiteGenerator() {}
+
+void ImmutableMessageLiteGenerator::GenerateStaticVariables(
+ io::Printer* printer) {
+ // Generate static members for all nested types.
+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
+ // TODO(kenton): Reuse MessageGenerator objects?
+ ImmutableMessageLiteGenerator(descriptor_->nested_type(i), context_)
+ .GenerateStaticVariables(printer);
+ }
+}
+
+int ImmutableMessageLiteGenerator::GenerateStaticVariableInitializers(
+ io::Printer* printer) {
+ int bytecode_estimate = 0;
+ // Generate static member initializers for all nested types.
+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
+ // TODO(kenton): Reuse MessageGenerator objects?
+ bytecode_estimate +=
+ ImmutableMessageLiteGenerator(descriptor_->nested_type(i), context_)
+ .GenerateStaticVariableInitializers(printer);
+ }
+ return bytecode_estimate;
+}
+
+// ===================================================================
+
+void ImmutableMessageLiteGenerator::GenerateInterface(io::Printer* printer) {
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print(
+ "public interface $classname$OrBuilder extends \n"
+ " $extra_interfaces$\n"
+ " com.google.protobuf.GeneratedMessageLite.\n"
+ " ExtendableMessageOrBuilder<\n"
+ " $classname$, $classname$.Builder> {\n",
+ "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
+ "classname", descriptor_->name());
+ } else {
+ printer->Print(
+ "public interface $classname$OrBuilder extends\n"
+ " $extra_interfaces$\n"
+ " com.google.protobuf.MessageLiteOrBuilder {\n",
+ "extra_interfaces", ExtraMessageOrBuilderInterfaces(descriptor_),
+ "classname", descriptor_->name());
+ }
+
+ printer->Indent();
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ printer->Print("\n");
+ field_generators_.get(descriptor_->field(i))
+ .GenerateInterfaceMembers(printer);
+ }
+ printer->Outdent();
+
+ printer->Print("}\n");
+}
+
+// ===================================================================
+
+void ImmutableMessageLiteGenerator::Generate(io::Printer* printer) {
+ bool is_own_file =
+ descriptor_->containing_type() == NULL &&
+ MultipleJavaFiles(descriptor_->file(), /* immutable = */ true);
+
+ map<string, string> variables;
+ variables["static"] = is_own_file ? " " : " static ";
+ variables["classname"] = descriptor_->name();
+ variables["extra_interfaces"] = ExtraMessageInterfaces(descriptor_);
+
+ WriteMessageDocComment(printer, descriptor_);
+
+ // The builder_type stores the super type name of the nested Builder class.
+ string builder_type;
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print(variables,
+ "public $static$final class $classname$ extends\n"
+ " com.google.protobuf.GeneratedMessageLite.ExtendableMessage<\n"
+ " $classname$, $classname$.Builder> implements\n"
+ " $extra_interfaces$\n"
+ " $classname$OrBuilder {\n");
+ builder_type = strings::Substitute(
+ "com.google.protobuf.GeneratedMessageLite.ExtendableBuilder<$0, ?>",
+ name_resolver_->GetImmutableClassName(descriptor_));
+ } else {
+ printer->Print(variables,
+ "public $static$final class $classname$ extends\n"
+ " com.google.protobuf.GeneratedMessageLite<\n"
+ " $classname$, $classname$.Builder> implements\n"
+ " $extra_interfaces$\n"
+ " $classname$OrBuilder {\n");
+
+ builder_type = "com.google.protobuf.GeneratedMessageLite.Builder";
+ }
+ printer->Indent();
+
+ GenerateParsingConstructor(printer);
+
+ // Nested types
+ for (int i = 0; i < descriptor_->enum_type_count(); i++) {
+ EnumGenerator(descriptor_->enum_type(i), true, context_)
+ .Generate(printer);
+ }
+
+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
+ // Don't generate Java classes for map entry messages.
+ if (IsMapEntry(descriptor_->nested_type(i))) continue;
+ ImmutableMessageLiteGenerator messageGenerator(
+ descriptor_->nested_type(i), context_);
+ messageGenerator.GenerateInterface(printer);
+ messageGenerator.Generate(printer);
+ }
+
+ if (GenerateHasBits(descriptor_)) {
+ // Integers for bit fields.
+ int totalBits = 0;
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ totalBits += field_generators_.get(descriptor_->field(i))
+ .GetNumBitsForMessage();
+ }
+ int totalInts = (totalBits + 31) / 32;
+ for (int i = 0; i < totalInts; i++) {
+ printer->Print("private int $bit_field_name$;\n",
+ "bit_field_name", GetBitFieldName(i));
+ }
+ }
+
+ // oneof
+ map<string, string> vars;
+ for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
+ vars["oneof_name"] = context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->name;
+ vars["oneof_capitalized_name"] = context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->capitalized_name;
+ vars["oneof_index"] = SimpleItoa(descriptor_->oneof_decl(i)->index());
+ // oneofCase_ and oneof_
+ printer->Print(vars,
+ "private int $oneof_name$Case_ = 0;\n"
+ "private java.lang.Object $oneof_name$_;\n");
+ // OneofCase enum
+ printer->Print(vars,
+ "public enum $oneof_capitalized_name$Case\n"
+ " implements com.google.protobuf.Internal.EnumLite {\n");
+ printer->Indent();
+ for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
+ const FieldDescriptor* field = descriptor_->oneof_decl(i)->field(j);
+ printer->Print(
+ "$field_name$($field_number$),\n",
+ "field_name",
+ ToUpper(field->name()),
+ "field_number",
+ SimpleItoa(field->number()));
+ }
+ printer->Print(
+ "$cap_oneof_name$_NOT_SET(0);\n",
+ "cap_oneof_name",
+ ToUpper(vars["oneof_name"]));
+ printer->Print(vars,
+ "private int value = 0;\n"
+ "private $oneof_capitalized_name$Case(int value) {\n"
+ " this.value = value;\n"
+ "}\n");
+ printer->Print(vars,
+ "public static $oneof_capitalized_name$Case valueOf(int value) {\n"
+ " switch (value) {\n");
+ for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
+ const FieldDescriptor* field = descriptor_->oneof_decl(i)->field(j);
+ printer->Print(
+ " case $field_number$: return $field_name$;\n",
+ "field_number",
+ SimpleItoa(field->number()),
+ "field_name",
+ ToUpper(field->name()));
+ }
+ printer->Print(
+ " case 0: return $cap_oneof_name$_NOT_SET;\n"
+ " default: throw new java.lang.IllegalArgumentException(\n"
+ " \"Value is undefined for this oneof enum.\");\n"
+ " }\n"
+ "}\n"
+ "public int getNumber() {\n"
+ " return this.value;\n"
+ "}\n",
+ "cap_oneof_name", ToUpper(vars["oneof_name"]));
+ printer->Outdent();
+ printer->Print("};\n\n");
+ // oneofCase()
+ printer->Print(vars,
+ "public $oneof_capitalized_name$Case\n"
+ "get$oneof_capitalized_name$Case() {\n"
+ " return $oneof_capitalized_name$Case.valueOf(\n"
+ " $oneof_name$Case_);\n"
+ "}\n"
+ "\n"
+ "private void clear$oneof_capitalized_name$() {\n"
+ " $oneof_name$Case_ = 0;\n"
+ " $oneof_name$_ = null;\n"
+ "}\n"
+ "\n");
+ }
+
+ // Fields
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ printer->Print("public static final int $constant_name$ = $number$;\n",
+ "constant_name", FieldConstantName(descriptor_->field(i)),
+ "number", SimpleItoa(descriptor_->field(i)->number()));
+ field_generators_.get(descriptor_->field(i)).GenerateMembers(printer);
+ printer->Print("\n");
+ }
+
+ GenerateMessageSerializationMethods(printer);
+
+ if (HasEqualsAndHashCode(descriptor_)) {
+ GenerateEqualsAndHashCode(printer);
+ }
+
+
+ GenerateParseFromMethods(printer);
+ GenerateBuilder(printer);
+
+ if (HasRequiredFields(descriptor_)) {
+ // Memoizes whether the protocol buffer is fully initialized (has all
+ // required fields). -1 means not yet computed. 0 means false and 1 means
+ // true.
+ printer->Print(
+ "private byte memoizedIsInitialized = -1;\n");
+ }
+
+ printer->Print(
+ "protected final Object dynamicMethod(\n"
+ " com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,\n"
+ " Object... args) {\n"
+ " switch (method) {\n"
+ " case PARSE_PARTIAL_FROM: {\n"
+ " return new $classname$("
+ " (com.google.protobuf.CodedInputStream) args[0],\n"
+ " (com.google.protobuf.ExtensionRegistryLite) args[1]);\n"
+ " }\n"
+ " case NEW_INSTANCE: {\n"
+ " return new $classname$(\n"
+ " com.google.protobuf.Internal.EMPTY_CODED_INPUT_STREAM,\n"
+ " com.google.protobuf.ExtensionRegistryLite\n"
+ " .getEmptyRegistry());\n"
+ " }\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ printer->Indent();
+ printer->Indent();
+
+ printer->Print(
+ "case IS_INITIALIZED: {\n");
+ printer->Indent();
+ GenerateDynamicMethodIsInitialized(printer);
+ printer->Outdent();
+
+ printer->Print(
+ "}\n"
+ "case MAKE_IMMUTABLE: {\n");
+
+ printer->Indent();
+ GenerateDynamicMethodMakeImmutable(printer);
+ printer->Outdent();
+
+ printer->Print(
+ "}\n"
+ "case NEW_BUILDER: {\n");
+
+ printer->Indent();
+ GenerateDynamicMethodNewBuilder(printer);
+ printer->Outdent();
+
+ printer->Print(
+ "}\n"
+ "case MERGE_FROM: {\n");
+
+ printer->Indent();
+ GenerateDynamicMethodMergeFrom(printer);
+ printer->Outdent();
+
+ printer->Print(
+ "}\n");
+
+ printer->Outdent();
+ printer->Outdent();
+
+ printer->Print(
+ " }\n"
+ " throw new UnsupportedOperationException();\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ printer->Print(
+ "\n"
+ "// @@protoc_insertion_point(class_scope:$full_name$)\n",
+ "full_name", descriptor_->full_name());
+
+
+ // Carefully initialize the default instance in such a way that it doesn't
+ // conflict with other initialization.
+ printer->Print(
+ "private static final $classname$ DEFAULT_INSTANCE;\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ printer->Print(
+ "static {\n"
+ " DEFAULT_INSTANCE = new $classname$(\n"
+ " com.google.protobuf.Internal\n"
+ " .EMPTY_CODED_INPUT_STREAM,\n"
+ " com.google.protobuf.ExtensionRegistryLite\n"
+ " .getEmptyRegistry());\n"
+ "}\n"
+ "\n",
+ "classname", descriptor_->name());
+ printer->Print(
+ "public static $classname$ getDefaultInstance() {\n"
+ " return DEFAULT_INSTANCE;\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ GenerateParser(printer);
+
+ // LITE_RUNTIME uses this to implement the *ForType methods at the
+ // GeneratedMessageLite level.
+ printer->Print(
+ "static {\n"
+ " com.google.protobuf.GeneratedMessageLite.onLoad(\n"
+ " $classname$.class, new com.google.protobuf.GeneratedMessageLite\n"
+ " .PrototypeHolder<$classname$, Builder>(\n"
+ " DEFAULT_INSTANCE, PARSER));"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ // Extensions must be declared after the DEFAULT_INSTANCE is initialized
+ // because the DEFAULT_INSTANCE is used by the extension to lazily retrieve
+ // the outer class's FileDescriptor.
+ for (int i = 0; i < descriptor_->extension_count(); i++) {
+ ImmutableExtensionGenerator(descriptor_->extension(i), context_)
+ .Generate(printer);
+ }
+
+ printer->Outdent();
+ printer->Print("}\n\n");
+}
+
+// ===================================================================
+
+void ImmutableMessageLiteGenerator::
+GenerateMessageSerializationMethods(io::Printer* printer) {
+ google::protobuf::scoped_array<const FieldDescriptor * > sorted_fields(
+ SortFieldsByNumber(descriptor_));
+
+ vector<const Descriptor::ExtensionRange*> sorted_extensions;
+ for (int i = 0; i < descriptor_->extension_range_count(); ++i) {
+ sorted_extensions.push_back(descriptor_->extension_range(i));
+ }
+ std::sort(sorted_extensions.begin(), sorted_extensions.end(),
+ ExtensionRangeOrdering());
+
+ printer->Print(
+ "public void writeTo(com.google.protobuf.CodedOutputStream output)\n"
+ " throws java.io.IOException {\n");
+ printer->Indent();
+ if (HasPackedFields(descriptor_)) {
+ // writeTo(CodedOutputStream output) might be invoked without
+ // getSerializedSize() ever being called, but we need the memoized
+ // sizes in case this message has packed fields. Rather than emit checks for
+ // each packed field, just call getSerializedSize() up front.
+ // In most cases, getSerializedSize() will have already been called anyway
+ // by one of the wrapper writeTo() methods, making this call cheap.
+ printer->Print(
+ "getSerializedSize();\n");
+ }
+
+ if (descriptor_->extension_range_count() > 0) {
+ if (descriptor_->options().message_set_wire_format()) {
+ printer->Print(
+ "com.google.protobuf.GeneratedMessageLite\n"
+ " .ExtendableMessage<$classname$, $classname$.Builder>\n"
+ " .ExtensionWriter extensionWriter =\n"
+ " newMessageSetExtensionWriter();\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+ } else {
+ printer->Print(
+ "com.google.protobuf.GeneratedMessageLite\n"
+ " .ExtendableMessage<$classname$, $classname$.Builder>\n"
+ " .ExtensionWriter extensionWriter =\n"
+ " newExtensionWriter();\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+ }
+ }
+
+ // Merge the fields and the extension ranges, both sorted by field number.
+ for (int i = 0, j = 0;
+ i < descriptor_->field_count() || j < sorted_extensions.size();
+ ) {
+ if (i == descriptor_->field_count()) {
+ GenerateSerializeOneExtensionRange(printer, sorted_extensions[j++]);
+ } else if (j == sorted_extensions.size()) {
+ GenerateSerializeOneField(printer, sorted_fields[i++]);
+ } else if (sorted_fields[i]->number() < sorted_extensions[j]->start) {
+ GenerateSerializeOneField(printer, sorted_fields[i++]);
+ } else {
+ GenerateSerializeOneExtensionRange(printer, sorted_extensions[j++]);
+ }
+ }
+
+ if (PreserveUnknownFields(descriptor_)) {
+ printer->Print(
+ "unknownFields.writeTo(output);\n");
+ }
+
+ printer->Outdent();
+ printer->Print(
+ "}\n"
+ "\n"
+ "public int getSerializedSize() {\n"
+ " int size = memoizedSerializedSize;\n"
+ " if (size != -1) return size;\n"
+ "\n"
+ " size = 0;\n");
+ printer->Indent();
+
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ field_generators_.get(sorted_fields[i]).GenerateSerializedSizeCode(printer);
+ }
+
+ if (descriptor_->extension_range_count() > 0) {
+ if (descriptor_->options().message_set_wire_format()) {
+ printer->Print(
+ "size += extensionsSerializedSizeAsMessageSet();\n");
+ } else {
+ printer->Print(
+ "size += extensionsSerializedSize();\n");
+ }
+ }
+
+ if (PreserveUnknownFields(descriptor_)) {
+ printer->Print(
+ "size += unknownFields.getSerializedSize();\n");
+ }
+
+ printer->Outdent();
+ printer->Print(
+ " memoizedSerializedSize = size;\n"
+ " return size;\n"
+ "}\n"
+ "\n");
+
+ printer->Print(
+ "private static final long serialVersionUID = 0L;\n");
+}
+
+void ImmutableMessageLiteGenerator::
+GenerateParseFromMethods(io::Printer* printer) {
+ // Note: These are separate from GenerateMessageSerializationMethods()
+ // because they need to be generated even for messages that are optimized
+ // for code size.
+ printer->Print(
+ "public static $classname$ parseFrom(\n"
+ " com.google.protobuf.ByteString data)\n"
+ " throws com.google.protobuf.InvalidProtocolBufferException {\n"
+ " return PARSER.parseFrom(data);\n"
+ "}\n"
+ "public static $classname$ parseFrom(\n"
+ " com.google.protobuf.ByteString data,\n"
+ " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
+ " throws com.google.protobuf.InvalidProtocolBufferException {\n"
+ " return PARSER.parseFrom(data, extensionRegistry);\n"
+ "}\n"
+ "public static $classname$ parseFrom(byte[] data)\n"
+ " throws com.google.protobuf.InvalidProtocolBufferException {\n"
+ " return PARSER.parseFrom(data);\n"
+ "}\n"
+ "public static $classname$ parseFrom(\n"
+ " byte[] data,\n"
+ " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
+ " throws com.google.protobuf.InvalidProtocolBufferException {\n"
+ " return PARSER.parseFrom(data, extensionRegistry);\n"
+ "}\n"
+ "public static $classname$ parseFrom(java.io.InputStream input)\n"
+ " throws java.io.IOException {\n"
+ " return PARSER.parseFrom(input);\n"
+ "}\n"
+ "public static $classname$ parseFrom(\n"
+ " java.io.InputStream input,\n"
+ " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
+ " throws java.io.IOException {\n"
+ " return PARSER.parseFrom(input, extensionRegistry);\n"
+ "}\n"
+ "public static $classname$ parseDelimitedFrom(java.io.InputStream input)\n"
+ " throws java.io.IOException {\n"
+ " return PARSER.parseDelimitedFrom(input);\n"
+ "}\n"
+ "public static $classname$ parseDelimitedFrom(\n"
+ " java.io.InputStream input,\n"
+ " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
+ " throws java.io.IOException {\n"
+ " return PARSER.parseDelimitedFrom(input, extensionRegistry);\n"
+ "}\n"
+ "public static $classname$ parseFrom(\n"
+ " com.google.protobuf.CodedInputStream input)\n"
+ " throws java.io.IOException {\n"
+ " return PARSER.parseFrom(input);\n"
+ "}\n"
+ "public static $classname$ parseFrom(\n"
+ " com.google.protobuf.CodedInputStream input,\n"
+ " com.google.protobuf.ExtensionRegistryLite extensionRegistry)\n"
+ " throws java.io.IOException {\n"
+ " return PARSER.parseFrom(input, extensionRegistry);\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+}
+
+void ImmutableMessageLiteGenerator::GenerateSerializeOneField(
+ io::Printer* printer, const FieldDescriptor* field) {
+ field_generators_.get(field).GenerateSerializationCode(printer);
+}
+
+void ImmutableMessageLiteGenerator::GenerateSerializeOneExtensionRange(
+ io::Printer* printer, const Descriptor::ExtensionRange* range) {
+ printer->Print(
+ "extensionWriter.writeUntil($end$, output);\n",
+ "end", SimpleItoa(range->end));
+}
+
+// ===================================================================
+
+void ImmutableMessageLiteGenerator::GenerateBuilder(io::Printer* printer) {
+ printer->Print(
+ "public static Builder newBuilder() {\n"
+ " return DEFAULT_INSTANCE.toBuilder();\n"
+ "}\n"
+ "public static Builder newBuilder($classname$ prototype) {\n"
+ " return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);\n"
+ "}\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ MessageBuilderLiteGenerator builderGenerator(descriptor_, context_);
+ builderGenerator.Generate(printer);
+}
+
+// ===================================================================
+
+void ImmutableMessageLiteGenerator::GenerateDynamicMethodIsInitialized(
+ io::Printer* printer) {
+ // Returns null for false, DEFAULT_INSTANCE for true.
+ if (!HasRequiredFields(descriptor_)) {
+ printer->Print("return DEFAULT_INSTANCE;\n");
+ return;
+ }
+
+ // Don't directly compare to -1 to avoid an Android x86 JIT bug.
+ printer->Print(
+ "byte isInitialized = memoizedIsInitialized;\n"
+ "if (isInitialized == 1) return DEFAULT_INSTANCE;\n"
+ "if (isInitialized == 0) return null;\n"
+ "\n"
+ "boolean shouldMemoize = ((Boolean) args[0]).booleanValue();\n");
+
+ // Check that all required fields in this message are set.
+ // TODO(kenton): We can optimize this when we switch to putting all the
+ // "has" fields into a single bitfield.
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+ const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
+
+ if (field->is_required()) {
+ printer->Print(
+ "if (!has$name$()) {\n"
+ " if (shouldMemoize) {\n"
+ " memoizedIsInitialized = 0;\n"
+ " }\n"
+ " return null;\n"
+ "}\n",
+ "name", info->capitalized_name);
+ }
+ }
+
+ // Now check that all embedded messages are initialized.
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+ const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
+ if (GetJavaType(field) == JAVATYPE_MESSAGE &&
+ HasRequiredFields(field->message_type())) {
+ switch (field->label()) {
+ case FieldDescriptor::LABEL_REQUIRED:
+ printer->Print(
+ "if (!get$name$().isInitialized()) {\n"
+ " if (shouldMemoize) {\n"
+ " memoizedIsInitialized = 0;\n"
+ " }\n"
+ " return null;\n"
+ "}\n",
+ "type", name_resolver_->GetImmutableClassName(
+ field->message_type()),
+ "name", info->capitalized_name);
+ break;
+ case FieldDescriptor::LABEL_OPTIONAL:
+ if (!SupportFieldPresence(descriptor_->file()) &&
+ field->containing_oneof() != NULL) {
+ const OneofDescriptor* oneof = field->containing_oneof();
+ const OneofGeneratorInfo* oneof_info =
+ context_->GetOneofGeneratorInfo(oneof);
+ printer->Print(
+ "if ($oneof_name$Case_ == $field_number$) {\n",
+ "oneof_name", oneof_info->name,
+ "field_number", SimpleItoa(field->number()));
+ } else {
+ printer->Print(
+ "if (has$name$()) {\n",
+ "name", info->capitalized_name);
+ }
+ printer->Print(
+ " if (!get$name$().isInitialized()) {\n"
+ " if (shouldMemoize) {\n"
+ " memoizedIsInitialized = 0;\n"
+ " }\n"
+ " return null;\n"
+ " }\n"
+ "}\n",
+ "name", info->capitalized_name);
+ break;
+ case FieldDescriptor::LABEL_REPEATED:
+ if (IsMapEntry(field->message_type())) {
+ printer->Print(
+ "for ($type$ item : get$name$().values()) {\n"
+ " if (!item.isInitialized()) {\n"
+ " if (shouldMemoize) {\n"
+ " memoizedIsInitialized = 0;\n"
+ " }\n"
+ " return null;\n"
+ " }\n"
+ "}\n",
+ "type", MapValueImmutableClassdName(field->message_type(),
+ name_resolver_),
+ "name", info->capitalized_name);
+ } else {
+ printer->Print(
+ "for (int i = 0; i < get$name$Count(); i++) {\n"
+ " if (!get$name$(i).isInitialized()) {\n"
+ " if (shouldMemoize) {\n"
+ " memoizedIsInitialized = 0;\n"
+ " }\n"
+ " return null;\n"
+ " }\n"
+ "}\n",
+ "type", name_resolver_->GetImmutableClassName(
+ field->message_type()),
+ "name", info->capitalized_name);
+ }
+ break;
+ }
+ }
+ }
+
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print(
+ "if (!extensionsAreInitialized()) {\n"
+ " if (shouldMemoize) {\n"
+ " memoizedIsInitialized = 0;\n"
+ " }\n"
+ " return null;\n"
+ "}\n");
+ }
+
+ printer->Print(
+ "if (shouldMemoize) memoizedIsInitialized = 1;\n");
+
+ printer->Print(
+ "return DEFAULT_INSTANCE;\n"
+ "\n");
+}
+
+// ===================================================================
+
+void ImmutableMessageLiteGenerator::GenerateDynamicMethodMakeImmutable(
+ io::Printer* printer) {
+ // Output generation code for each field.
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ field_generators_.get(descriptor_->field(i))
+ .GenerateDynamicMethodMakeImmutableCode(printer);
+ }
+ printer->Print(
+ "return null;");
+}
+
+// ===================================================================
+
+void ImmutableMessageLiteGenerator::GenerateDynamicMethodNewBuilder(
+ io::Printer* printer) {
+ printer->Print(
+ "return new Builder();");
+}
+
+// ===================================================================
+
+void ImmutableMessageLiteGenerator::GenerateDynamicMethodMergeFrom(
+ io::Printer* printer) {
+ printer->Print(
+ // Optimization: If other is the default instance, we know none of its
+ // fields are set so we can skip the merge.
+ "Object arg = args[0];\n"
+ "if (arg == $classname$.getDefaultInstance()) return this;\n"
+ "$classname$ other = ($classname$) arg;\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ if (!descriptor_->field(i)->containing_oneof()) {
+ field_generators_.get(
+ descriptor_->field(i)).GenerateMergingCode(printer);
+ }
+ }
+
+ // Merge oneof fields.
+ for (int i = 0; i < descriptor_->oneof_decl_count(); ++i) {
+ printer->Print(
+ "switch (other.get$oneof_capitalized_name$Case()) {\n",
+ "oneof_capitalized_name",
+ context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->capitalized_name);
+ printer->Indent();
+ for (int j = 0; j < descriptor_->oneof_decl(i)->field_count(); j++) {
+ const FieldDescriptor* field = descriptor_->oneof_decl(i)->field(j);
+ printer->Print(
+ "case $field_name$: {\n",
+ "field_name",
+ ToUpper(field->name()));
+ printer->Indent();
+ field_generators_.get(field).GenerateMergingCode(printer);
+ printer->Print(
+ "break;\n");
+ printer->Outdent();
+ printer->Print(
+ "}\n");
+ }
+ printer->Print(
+ "case $cap_oneof_name$_NOT_SET: {\n"
+ " break;\n"
+ "}\n",
+ "cap_oneof_name",
+ ToUpper(context_->GetOneofGeneratorInfo(
+ descriptor_->oneof_decl(i))->name));
+ printer->Outdent();
+ printer->Print(
+ "}\n");
+ }
+
+ // if message type has extensions
+ if (descriptor_->extension_range_count() > 0) {
+ printer->Print(
+ "this.mergeExtensionFields(other);\n");
+ }
+
+ if (PreserveUnknownFields(descriptor_)) {
+ printer->Print(
+ "this.mergeUnknownFields(other.unknownFields);\n");
+ }
+
+ printer->Print(
+ "return this;\n");
+}
+
+// ===================================================================
+
+namespace {
+bool CheckHasBitsForEqualsAndHashCode(const FieldDescriptor* field) {
+ if (field->is_repeated()) {
+ return false;
+ }
+ if (SupportFieldPresence(field->file())) {
+ return true;
+ }
+ return GetJavaType(field) == JAVATYPE_MESSAGE &&
+ field->containing_oneof() == NULL;
+}
+} // namespace
+
+void ImmutableMessageLiteGenerator::
+GenerateEqualsAndHashCode(io::Printer* printer) {
+ printer->Print(
+ "@java.lang.Override\n"
+ "public boolean equals(final java.lang.Object obj) {\n");
+ printer->Indent();
+ printer->Print(
+ "if (obj == this) {\n"
+ " return true;\n"
+ "}\n"
+ "if (!(obj instanceof $classname$)) {\n"
+ " return super.equals(obj);\n"
+ "}\n"
+ "$classname$ other = ($classname$) obj;\n"
+ "\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ printer->Print("boolean result = true;\n");
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+ const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
+ bool check_has_bits = CheckHasBitsForEqualsAndHashCode(field);
+ if (check_has_bits) {
+ printer->Print(
+ "result = result && (has$name$() == other.has$name$());\n"
+ "if (has$name$()) {\n",
+ "name", info->capitalized_name);
+ printer->Indent();
+ }
+ field_generators_.get(field).GenerateEqualsCode(printer);
+ if (check_has_bits) {
+ printer->Outdent();
+ printer->Print(
+ "}\n");
+ }
+ }
+ if (PreserveUnknownFields(descriptor_)) {
+ // Always consider unknown fields for equality. This will sometimes return
+ // false for non-canonical ordering when running in LITE_RUNTIME but it's
+ // the best we can do.
+ printer->Print(
+ "result = result && unknownFields.equals(other.unknownFields);\n");
+ }
+ printer->Print(
+ "return result;\n");
+ printer->Outdent();
+ printer->Print(
+ "}\n"
+ "\n");
+
+ printer->Print(
+ "@java.lang.Override\n"
+ "public int hashCode() {\n");
+ printer->Indent();
+ printer->Print(
+ "if (memoizedHashCode != 0) {\n");
+ printer->Indent();
+ printer->Print(
+ "return memoizedHashCode;\n");
+ printer->Outdent();
+ printer->Print(
+ "}\n"
+ "int hash = 41;\n");
+
+ // Include the hash of the class so that two objects with different types
+ // but the same field values will probably have different hashes.
+ printer->Print("hash = (19 * hash) + $classname$.class.hashCode();\n",
+ "classname", name_resolver_->GetImmutableClassName(descriptor_));
+
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = descriptor_->field(i);
+ const FieldGeneratorInfo* info = context_->GetFieldGeneratorInfo(field);
+ bool check_has_bits = CheckHasBitsForEqualsAndHashCode(field);
+ if (check_has_bits) {
+ printer->Print(
+ "if (has$name$()) {\n",
+ "name", info->capitalized_name);
+ printer->Indent();
+ }
+ field_generators_.get(field).GenerateHashCode(printer);
+ if (check_has_bits) {
+ printer->Outdent();
+ printer->Print("}\n");
+ }
+ }
+
+ printer->Print(
+ "hash = (29 * hash) + unknownFields.hashCode();\n");
+ printer->Print(
+ "memoizedHashCode = hash;\n"
+ "return hash;\n");
+ printer->Outdent();
+ printer->Print(
+ "}\n"
+ "\n");
+}
+
+// ===================================================================
+
+void ImmutableMessageLiteGenerator::
+GenerateExtensionRegistrationCode(io::Printer* printer) {
+ for (int i = 0; i < descriptor_->extension_count(); i++) {
+ ImmutableExtensionGenerator(descriptor_->extension(i), context_)
+ .GenerateRegistrationCode(printer);
+ }
+
+ for (int i = 0; i < descriptor_->nested_type_count(); i++) {
+ ImmutableMessageLiteGenerator(descriptor_->nested_type(i), context_)
+ .GenerateExtensionRegistrationCode(printer);
+ }
+}
+
+// ===================================================================
+void ImmutableMessageLiteGenerator::
+GenerateParsingConstructor(io::Printer* printer) {
+ google::protobuf::scoped_array<const FieldDescriptor * > sorted_fields(
+ SortFieldsByNumber(descriptor_));
+
+ printer->Print(
+ "private $classname$(\n"
+ " com.google.protobuf.CodedInputStream input,\n"
+ " com.google.protobuf.ExtensionRegistryLite extensionRegistry) {\n",
+ "classname", descriptor_->name());
+ printer->Indent();
+
+ // Initialize all fields to default.
+ GenerateInitializers(printer);
+
+ // Use builder bits to track mutable repeated fields.
+ int totalBuilderBits = 0;
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const ImmutableFieldLiteGenerator& field =
+ field_generators_.get(descriptor_->field(i));
+ totalBuilderBits += field.GetNumBitsForBuilder();
+ }
+ int totalBuilderInts = (totalBuilderBits + 31) / 32;
+ for (int i = 0; i < totalBuilderInts; i++) {
+ printer->Print("int mutable_$bit_field_name$ = 0;\n",
+ "bit_field_name", GetBitFieldName(i));
+ }
+
+ if (PreserveUnknownFields(descriptor_)) {
+ printer->Print(
+ "com.google.protobuf.UnknownFieldSetLite.Builder unknownFields =\n"
+ " com.google.protobuf.UnknownFieldSetLite.newBuilder();\n");
+ }
+
+ printer->Print(
+ "try {\n");
+ printer->Indent();
+
+ printer->Print(
+ "boolean done = false;\n"
+ "while (!done) {\n");
+ printer->Indent();
+
+ printer->Print(
+ "int tag = input.readTag();\n"
+ "switch (tag) {\n");
+ printer->Indent();
+
+ printer->Print(
+ "case 0:\n" // zero signals EOF / limit reached
+ " done = true;\n"
+ " break;\n");
+
+ if (PreserveUnknownFields(descriptor_)) {
+ if (descriptor_->extension_range_count() > 0) {
+ // Lite runtime directly invokes parseUnknownField to reduce method
+ // counts.
+ printer->Print(
+ "default: {\n"
+ " if (!parseUnknownField(extensions, getDefaultInstanceForType(),\n"
+ " input, unknownFields,\n"
+ " extensionRegistry, tag)) {\n"
+ " done = true;\n" // it's an endgroup tag
+ " }\n"
+ " break;\n"
+ "}\n");
+ } else {
+ printer->Print(
+ "default: {\n"
+ " if (!parseUnknownField(input, unknownFields,\n"
+ " extensionRegistry, tag)) {\n"
+ " done = true;\n" // it's an endgroup tag
+ " }\n"
+ " break;\n"
+ "}\n");
+ }
+ } else {
+ printer->Print(
+ "default: {\n"
+ " if (!input.skipField(tag)) {\n"
+ " done = true;\n" // it's an endgroup tag
+ " }\n"
+ " break;\n"
+ "}\n");
+ }
+
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = sorted_fields[i];
+ uint32 tag = WireFormatLite::MakeTag(field->number(),
+ WireFormat::WireTypeForFieldType(field->type()));
+
+ printer->Print(
+ "case $tag$: {\n",
+ "tag", SimpleItoa(tag));
+ printer->Indent();
+
+ field_generators_.get(field).GenerateParsingCode(printer);
+
+ printer->Outdent();
+ printer->Print(
+ " break;\n"
+ "}\n");
+
+ if (field->is_packable()) {
+ // To make packed = true wire compatible, we generate parsing code from a
+ // packed version of this field regardless of field->options().packed().
+ uint32 packed_tag = WireFormatLite::MakeTag(field->number(),
+ WireFormatLite::WIRETYPE_LENGTH_DELIMITED);
+ printer->Print(
+ "case $tag$: {\n",
+ "tag", SimpleItoa(packed_tag));
+ printer->Indent();
+
+ field_generators_.get(field).GenerateParsingCodeFromPacked(printer);
+
+ printer->Outdent();
+ printer->Print(
+ " break;\n"
+ "}\n");
+ }
+ }
+
+ printer->Outdent();
+ printer->Outdent();
+ printer->Print(
+ " }\n" // switch (tag)
+ "}\n"); // while (!done)
+
+ printer->Outdent();
+ printer->Print(
+ "} catch (com.google.protobuf.InvalidProtocolBufferException e) {\n"
+ " throw new RuntimeException(e.setUnfinishedMessage(this));\n"
+ "} catch (java.io.IOException e) {\n"
+ " throw new RuntimeException(\n"
+ " new com.google.protobuf.InvalidProtocolBufferException(\n"
+ " e.getMessage()).setUnfinishedMessage(this));\n"
+ "} finally {\n");
+ printer->Indent();
+
+ // Make repeated field list immutable.
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* field = sorted_fields[i];
+ field_generators_.get(field).GenerateParsingDoneCode(printer);
+ }
+
+ if (PreserveUnknownFields(descriptor_)) {
+ // Make unknown fields immutable.
+ printer->Print("this.unknownFields = unknownFields.build();\n");
+ }
+
+ if (descriptor_->extension_range_count() > 0) {
+ // Make extensions immutable.
+ printer->Print(
+ "makeExtensionsImmutable(extensions);\n");
+ }
+
+ printer->Outdent();
+ printer->Outdent();
+ printer->Print(
+ " }\n" // finally
+ "}\n");
+}
+
+// ===================================================================
+void ImmutableMessageLiteGenerator::GenerateParser(io::Printer* printer) {
+ printer->Print(
+ "public static final com.google.protobuf.Parser<$classname$> PARSER =\n"
+ " new DefaultInstanceBasedParser(DEFAULT_INSTANCE);\n"
+ "\n",
+ "classname", descriptor_->name());
+}
+
+// ===================================================================
+void ImmutableMessageLiteGenerator::GenerateInitializers(io::Printer* printer) {
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ if (!descriptor_->field(i)->containing_oneof()) {
+ field_generators_.get(descriptor_->field(i))
+ .GenerateInitializationCode(printer);
+ }
+ }
+}
+
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/java/java_message_lite.h b/src/google/protobuf/compiler/java/java_message_lite.h
new file mode 100644
index 00000000..2bd3cdd4
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_message_lite.h
@@ -0,0 +1,91 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: dweis@google.com (Daniel Weis)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_LITE_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_LITE_H__
+
+#include <string>
+#include <map>
+#include <google/protobuf/compiler/java/java_field.h>
+#include <google/protobuf/compiler/java/java_message.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+class ImmutableMessageLiteGenerator : public MessageGenerator {
+ public:
+ explicit ImmutableMessageLiteGenerator(const Descriptor* descriptor,
+ Context* context);
+ virtual ~ImmutableMessageLiteGenerator();
+
+ virtual void Generate(io::Printer* printer);
+ virtual void GenerateInterface(io::Printer* printer);
+ virtual void GenerateExtensionRegistrationCode(io::Printer* printer);
+ virtual void GenerateStaticVariables(io::Printer* printer);
+ virtual int GenerateStaticVariableInitializers(io::Printer* printer);
+
+ private:
+
+ void GenerateMessageSerializationMethods(io::Printer* printer);
+ void GenerateParseFromMethods(io::Printer* printer);
+ void GenerateSerializeOneField(io::Printer* printer,
+ const FieldDescriptor* field);
+ void GenerateSerializeOneExtensionRange(
+ io::Printer* printer, const Descriptor::ExtensionRange* range);
+
+ void GenerateBuilder(io::Printer* printer);
+ void GenerateDynamicMethodIsInitialized(io::Printer* printer);
+ void GenerateDynamicMethodMakeImmutable(io::Printer* printer);
+ void GenerateDynamicMethodMergeFrom(io::Printer* printer);
+ void GenerateDynamicMethodNewBuilder(io::Printer* printer);
+ void GenerateInitializers(io::Printer* printer);
+ void GenerateEqualsAndHashCode(io::Printer* printer);
+ void GenerateParser(io::Printer* printer);
+ void GenerateParsingConstructor(io::Printer* printer);
+
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+ FieldGeneratorMap<ImmutableFieldLiteGenerator> field_generators_;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableMessageLiteGenerator);
+};
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_MESSAGE_LITE_H__
diff --git a/src/google/protobuf/compiler/java/java_primitive_field.cc b/src/google/protobuf/compiler/java/java_primitive_field.cc
index 48757c60..7bebe12a 100644
--- a/src/google/protobuf/compiler/java/java_primitive_field.cc
+++ b/src/google/protobuf/compiler/java/java_primitive_field.cc
@@ -74,7 +74,12 @@ void SetPrimitiveVariables(const FieldDescriptor* descriptor,
"" : ("= " + ImmutableDefaultValue(descriptor, name_resolver));
(*variables)["capitalized_type"] =
GetCapitalizedType(descriptor, /* immutable = */ true);
- (*variables)["tag"] = SimpleItoa(WireFormat::MakeTag(descriptor));
+ if (descriptor->is_packed()) {
+ (*variables)["tag"] = SimpleItoa(WireFormatLite::MakeTag(
+ descriptor->number(), WireFormatLite::WIRETYPE_LENGTH_DELIMITED));
+ } else {
+ (*variables)["tag"] = SimpleItoa(WireFormat::MakeTag(descriptor));
+ }
(*variables)["tag_size"] = SimpleItoa(
WireFormat::TagSize(descriptor->number(), GetType(descriptor)));
if (IsReferenceType(GetJavaType(descriptor))) {
@@ -599,7 +604,7 @@ GenerateMembers(io::Printer* printer) const {
" return $name$_.get(index);\n"
"}\n");
- if (descriptor_->options().packed() &&
+ if (descriptor_->is_packed() &&
HasGeneratedMethods(descriptor_->containing_type())) {
printer->Print(variables_,
"private int $name$MemoizedSerializedSize = -1;\n");
@@ -771,7 +776,7 @@ GenerateParsingDoneCode(io::Printer* printer) const {
void RepeatedImmutablePrimitiveFieldGenerator::
GenerateSerializationCode(io::Printer* printer) const {
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
// We invoke getSerializedSize in writeTo for messages that have packed
// fields in ImmutableMessageGenerator::GenerateMessageSerializationMethods.
// That makes it safe to rely on the memoized size here.
@@ -812,7 +817,7 @@ GenerateSerializedSizeCode(io::Printer* printer) const {
printer->Print(
"size += dataSize;\n");
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
"if (!get$capitalized_name$List().isEmpty()) {\n"
" size += $tag_size$;\n"
@@ -825,7 +830,7 @@ GenerateSerializedSizeCode(io::Printer* printer) const {
}
// cache the data size for packed fields.
- if (descriptor_->options().packed()) {
+ if (descriptor_->is_packed()) {
printer->Print(variables_,
"$name$MemoizedSerializedSize = dataSize;\n");
}
diff --git a/src/google/protobuf/compiler/java/java_primitive_field_lite.cc b/src/google/protobuf/compiler/java/java_primitive_field_lite.cc
new file mode 100644
index 00000000..217ff9b6
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_primitive_field_lite.cc
@@ -0,0 +1,892 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#include <map>
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/compiler/java/java_context.h>
+#include <google/protobuf/compiler/java/java_doc_comment.h>
+#include <google/protobuf/compiler/java/java_helpers.h>
+#include <google/protobuf/compiler/java/java_name_resolver.h>
+#include <google/protobuf/compiler/java/java_primitive_field_lite.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/wire_format.h>
+#include <google/protobuf/stubs/strutil.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+using internal::WireFormat;
+using internal::WireFormatLite;
+
+namespace {
+
+void SetPrimitiveVariables(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ const FieldGeneratorInfo* info,
+ ClassNameResolver* name_resolver,
+ map<string, string>* variables) {
+ SetCommonFieldVariables(descriptor, info, variables);
+
+ (*variables)["type"] = PrimitiveTypeName(GetJavaType(descriptor));
+ (*variables)["boxed_type"] = BoxedPrimitiveTypeName(GetJavaType(descriptor));
+ (*variables)["field_type"] = (*variables)["type"];
+ (*variables)["default"] = ImmutableDefaultValue(descriptor, name_resolver);
+ (*variables)["default_init"] = IsDefaultValueJavaDefault(descriptor) ?
+ "" : ("= " + ImmutableDefaultValue(descriptor, name_resolver));
+ (*variables)["capitalized_type"] =
+ GetCapitalizedType(descriptor, /* immutable = */ true);
+ (*variables)["tag"] = SimpleItoa(WireFormat::MakeTag(descriptor));
+ (*variables)["tag_size"] = SimpleItoa(
+ WireFormat::TagSize(descriptor->number(), GetType(descriptor)));
+
+ string capitalized_type = UnderscoresToCamelCase(PrimitiveTypeName(
+ GetJavaType(descriptor)), true /* cap_next_letter */);
+ switch (GetJavaType(descriptor)) {
+ case JAVATYPE_INT:
+ case JAVATYPE_LONG:
+ case JAVATYPE_FLOAT:
+ case JAVATYPE_DOUBLE:
+ case JAVATYPE_BOOLEAN:
+ (*variables)["field_list_type"] =
+ "com.google.protobuf.Internal." + capitalized_type + "List";
+ (*variables)["new_list"] = "new" + capitalized_type + "List";
+ (*variables)["empty_list"] = "empty" + capitalized_type + "List()";
+ (*variables)["make_name_unmodifiable"] =
+ (*variables)["name"] + "_.makeImmutable()";
+ (*variables)["repeated_index_get"] =
+ (*variables)["name"] + "_.get" + capitalized_type + "(index)";
+ (*variables)["repeated_add"] =
+ (*variables)["name"] + "_.add" + capitalized_type;
+ (*variables)["repeated_set"] =
+ (*variables)["name"] + "_.set" + capitalized_type;
+ break;
+ default:
+ (*variables)["field_list_type"] =
+ "com.google.protobuf.Internal.ProtobufList<" +
+ (*variables)["boxed_type"] + ">";
+ (*variables)["new_list"] = "newProtobufList";
+ (*variables)["empty_list"] = "emptyProtobufList()";
+ (*variables)["make_name_unmodifiable"] =
+ (*variables)["name"] + "_.makeImmutable()";
+ (*variables)["repeated_index_get"] =
+ (*variables)["name"] + "_.get(index)";
+ (*variables)["repeated_add"] = (*variables)["name"] + "_.add";
+ (*variables)["repeated_set"] = (*variables)["name"] + "_.set";
+ }
+
+ if (IsReferenceType(GetJavaType(descriptor))) {
+ (*variables)["null_check"] =
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n";
+ } else {
+ (*variables)["null_check"] = "";
+ }
+ // TODO(birdo): Add @deprecated javadoc when generating javadoc is supported
+ // by the proto compiler
+ (*variables)["deprecation"] = descriptor->options().deprecated()
+ ? "@java.lang.Deprecated " : "";
+ int fixed_size = FixedSize(GetType(descriptor));
+ if (fixed_size != -1) {
+ (*variables)["fixed_size"] = SimpleItoa(fixed_size);
+ }
+ (*variables)["on_changed"] =
+ HasDescriptorMethods(descriptor->containing_type()) ? "onChanged();" : "";
+
+ if (SupportFieldPresence(descriptor->file())) {
+ // For singular messages and builders, one bit is used for the hasField bit.
+ (*variables)["get_has_field_bit_message"] = GenerateGetBit(messageBitIndex);
+
+ // Note that these have a trailing ";".
+ (*variables)["set_has_field_bit_message"] =
+ GenerateSetBit(messageBitIndex) + ";";
+ (*variables)["clear_has_field_bit_message"] =
+ GenerateClearBit(messageBitIndex) + ";";
+
+ (*variables)["is_field_present_message"] = GenerateGetBit(messageBitIndex);
+ } else {
+ (*variables)["set_has_field_bit_message"] = "";
+ (*variables)["set_has_field_bit_message"] = "";
+ (*variables)["clear_has_field_bit_message"] = "";
+
+ if (descriptor->type() == FieldDescriptor::TYPE_BYTES) {
+ (*variables)["is_field_present_message"] =
+ "!" + (*variables)["name"] + "_.isEmpty()";
+ } else {
+ (*variables)["is_field_present_message"] =
+ (*variables)["name"] + "_ != " + (*variables)["default"];
+ }
+ }
+
+ // For repeated builders, the underlying list tracks mutability state.
+ (*variables)["is_mutable"] = (*variables)["name"] + "_.isModifiable()";
+
+ (*variables)["get_has_field_bit_from_local"] =
+ GenerateGetBitFromLocal(builderBitIndex);
+ (*variables)["set_has_field_bit_to_local"] =
+ GenerateSetBitToLocal(messageBitIndex);
+}
+
+} // namespace
+
+// ===================================================================
+
+ImmutablePrimitiveFieldLiteGenerator::
+ImmutablePrimitiveFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : descriptor_(descriptor), messageBitIndex_(messageBitIndex),
+ builderBitIndex_(builderBitIndex), context_(context),
+ name_resolver_(context->GetNameResolver()) {
+ SetPrimitiveVariables(descriptor, messageBitIndex, builderBitIndex,
+ context->GetFieldGeneratorInfo(descriptor),
+ name_resolver_, &variables_);
+}
+
+ImmutablePrimitiveFieldLiteGenerator::~ImmutablePrimitiveFieldLiteGenerator() {}
+
+int ImmutablePrimitiveFieldLiteGenerator::GetNumBitsForMessage() const {
+ return 1;
+}
+
+int ImmutablePrimitiveFieldLiteGenerator::GetNumBitsForBuilder() const {
+ return 0;
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateInterfaceMembers(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$boolean has$capitalized_name$();\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$$type$ get$capitalized_name$();\n");
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(variables_,
+ "private $field_type$ $name$_;\n");
+ PrintExtraFieldInfo(variables_, printer);
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $get_has_field_bit_message$;\n"
+ "}\n");
+ }
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return $name$_;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$($type$ value) {\n"
+ "$null_check$"
+ " $set_has_field_bit_message$\n"
+ " $name$_ = value;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " $clear_has_field_bit_message$\n");
+ JavaType type = GetJavaType(descriptor_);
+ if (type == JAVATYPE_STRING || type == JAVATYPE_BYTES) {
+ // The default value is not a simple literal so we want to avoid executing
+ // it multiple times. Instead, get the default out of the default instance.
+ printer->Print(variables_,
+ " $name$_ = getDefaultInstance().get$capitalized_name$();\n");
+ } else {
+ printer->Print(variables_,
+ " $name$_ = $default$;\n");
+ }
+ printer->Print(variables_,
+ "}\n");
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return instance.has$capitalized_name$();\n"
+ "}\n");
+ }
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
+ // noop for primitives
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateInitializationCode(io::Printer* printer) const {
+ printer->Print(variables_, "$name$_ = $default$;\n");
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateBuilderClearCode(io::Printer* printer) const {
+ // noop for primitives
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ printer->Print(variables_,
+ "if (other.has$capitalized_name$()) {\n"
+ " set$capitalized_name$(other.get$capitalized_name$());\n"
+ "}\n");
+ } else {
+ printer->Print(variables_,
+ "if (other.get$capitalized_name$() != $default$) {\n"
+ " set$capitalized_name$(other.get$capitalized_name$());\n"
+ "}\n");
+ }
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateBuildingCode(io::Printer* printer) const {
+ // noop for primitives
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const {
+ // noop for scalars
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "$set_has_field_bit_message$\n"
+ "$name$_ = input.read$capitalized_type$();\n");
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateParsingDoneCode(io::Printer* printer) const {
+ // noop for primitives.
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_field_present_message$) {\n"
+ " output.write$capitalized_type$($number$, $name$_);\n"
+ "}\n");
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_field_present_message$) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .compute$capitalized_type$Size($number$, $name$_);\n"
+ "}\n");
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateEqualsCode(io::Printer* printer) const {
+ switch (GetJavaType(descriptor_)) {
+ case JAVATYPE_INT:
+ case JAVATYPE_LONG:
+ case JAVATYPE_BOOLEAN:
+ printer->Print(variables_,
+ "result = result && (get$capitalized_name$()\n"
+ " == other.get$capitalized_name$());\n");
+ break;
+
+ case JAVATYPE_FLOAT:
+ printer->Print(variables_,
+ "result = result && (\n"
+ " java.lang.Float.floatToIntBits(get$capitalized_name$())\n"
+ " == java.lang.Float.floatToIntBits(\n"
+ " other.get$capitalized_name$()));\n");
+ break;
+
+ case JAVATYPE_DOUBLE:
+ printer->Print(variables_,
+ "result = result && (\n"
+ " java.lang.Double.doubleToLongBits(get$capitalized_name$())\n"
+ " == java.lang.Double.doubleToLongBits(\n"
+ " other.get$capitalized_name$()));\n");
+ break;
+
+ case JAVATYPE_STRING:
+ case JAVATYPE_BYTES:
+ printer->Print(variables_,
+ "result = result && get$capitalized_name$()\n"
+ " .equals(other.get$capitalized_name$());\n");
+ break;
+
+ case JAVATYPE_ENUM:
+ case JAVATYPE_MESSAGE:
+ default:
+ GOOGLE_LOG(FATAL) << "Can't get here.";
+ break;
+ }
+}
+
+void ImmutablePrimitiveFieldLiteGenerator::
+GenerateHashCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "hash = (37 * hash) + $constant_name$;\n");
+ switch (GetJavaType(descriptor_)) {
+ case JAVATYPE_INT:
+ printer->Print(variables_,
+ "hash = (53 * hash) + get$capitalized_name$();\n");
+ break;
+
+ case JAVATYPE_LONG:
+ printer->Print(variables_,
+ "hash = (53 * hash) + com.google.protobuf.Internal.hashLong(\n"
+ " get$capitalized_name$());\n");
+ break;
+
+ case JAVATYPE_BOOLEAN:
+ printer->Print(variables_,
+ "hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(\n"
+ " get$capitalized_name$());\n");
+ break;
+
+ case JAVATYPE_FLOAT:
+ printer->Print(variables_,
+ "hash = (53 * hash) + java.lang.Float.floatToIntBits(\n"
+ " get$capitalized_name$());\n");
+ break;
+
+ case JAVATYPE_DOUBLE:
+ printer->Print(variables_,
+ "hash = (53 * hash) + com.google.protobuf.Internal.hashLong(\n"
+ " java.lang.Double.doubleToLongBits(get$capitalized_name$()));\n");
+ break;
+
+ case JAVATYPE_STRING:
+ case JAVATYPE_BYTES:
+ printer->Print(variables_,
+ "hash = (53 * hash) + get$capitalized_name$().hashCode();\n");
+ break;
+
+ case JAVATYPE_ENUM:
+ case JAVATYPE_MESSAGE:
+ default:
+ GOOGLE_LOG(FATAL) << "Can't get here.";
+ break;
+ }
+}
+
+string ImmutablePrimitiveFieldLiteGenerator::GetBoxedType() const {
+ return BoxedPrimitiveTypeName(GetJavaType(descriptor_));
+}
+
+// ===================================================================
+
+ImmutablePrimitiveOneofFieldLiteGenerator::
+ImmutablePrimitiveOneofFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : ImmutablePrimitiveFieldLiteGenerator(
+ descriptor, messageBitIndex, builderBitIndex, context) {
+ const OneofGeneratorInfo* info =
+ context->GetOneofGeneratorInfo(descriptor->containing_oneof());
+ SetCommonOneofVariables(descriptor, info, &variables_);
+}
+
+ImmutablePrimitiveOneofFieldLiteGenerator::
+~ImmutablePrimitiveOneofFieldLiteGenerator() {}
+
+void ImmutablePrimitiveOneofFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ PrintExtraFieldInfo(variables_, printer);
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $has_oneof_case_message$;\n"
+ "}\n");
+ }
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " return ($boxed_type$) $oneof_name$_;\n"
+ " }\n"
+ " return $default$;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$($type$ value) {\n"
+ "$null_check$"
+ " $set_oneof_case_message$;\n"
+ " $oneof_name$_ = value;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " $clear_oneof_case_message$;\n"
+ " $oneof_name$_ = null;\n"
+ " }\n"
+ "}\n");
+}
+
+
+void ImmutablePrimitiveOneofFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return instance.has$capitalized_name$();\n"
+ "}\n");
+ }
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void ImmutablePrimitiveOneofFieldLiteGenerator::
+GenerateBuildingCode(io::Printer* printer) const {
+ // noop for primitives
+}
+
+void ImmutablePrimitiveOneofFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "set$capitalized_name$(other.get$capitalized_name$());\n");
+}
+
+void ImmutablePrimitiveOneofFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "$set_oneof_case_message$;\n"
+ "$oneof_name$_ = input.read$capitalized_type$();\n");
+}
+
+void ImmutablePrimitiveOneofFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($has_oneof_case_message$) {\n"
+ " output.write$capitalized_type$(\n"
+ " $number$, ($type$)(($boxed_type$) $oneof_name$_));\n"
+ "}\n");
+}
+
+void ImmutablePrimitiveOneofFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($has_oneof_case_message$) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .compute$capitalized_type$Size(\n"
+ " $number$, ($type$)(($boxed_type$) $oneof_name$_));\n"
+ "}\n");
+}
+
+// ===================================================================
+
+RepeatedImmutablePrimitiveFieldLiteGenerator::
+RepeatedImmutablePrimitiveFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : descriptor_(descriptor), messageBitIndex_(messageBitIndex),
+ builderBitIndex_(builderBitIndex), context_(context),
+ name_resolver_(context->GetNameResolver()) {
+ SetPrimitiveVariables(descriptor, messageBitIndex, builderBitIndex,
+ context->GetFieldGeneratorInfo(descriptor),
+ name_resolver_, &variables_);
+}
+
+RepeatedImmutablePrimitiveFieldLiteGenerator::
+~RepeatedImmutablePrimitiveFieldLiteGenerator() {}
+
+int RepeatedImmutablePrimitiveFieldLiteGenerator::GetNumBitsForMessage() const {
+ return 0;
+}
+
+int RepeatedImmutablePrimitiveFieldLiteGenerator::GetNumBitsForBuilder() const {
+ return 0;
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateInterfaceMembers(io::Printer* printer) const {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$java.util.List<$boxed_type$> get$capitalized_name$List();\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$int get$capitalized_name$Count();\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$$type$ get$capitalized_name$(int index);\n");
+}
+
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(variables_,
+ "private $field_list_type$ $name$_;\n");
+ PrintExtraFieldInfo(variables_, printer);
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<$boxed_type$>\n"
+ " get$capitalized_name$List() {\n"
+ " return $name$_;\n" // note: unmodifiable list
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Count() {\n"
+ " return $name$_.size();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$(int index) {\n"
+ " return $repeated_index_get$;\n"
+ "}\n");
+
+ if (descriptor_->options().packed() &&
+ HasGeneratedMethods(descriptor_->containing_type())) {
+ printer->Print(variables_,
+ "private int $name$MemoizedSerializedSize = -1;\n");
+ }
+
+ printer->Print(variables_,
+ "private void ensure$capitalized_name$IsMutable() {\n"
+ " if (!$is_mutable$) {\n"
+ " $name$_ = $new_list$($name$_);\n"
+ " }\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ "$null_check$"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $repeated_set$(index, value);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$($type$ value) {\n"
+ "$null_check$"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $repeated_add$(value);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void addAll$capitalized_name$(\n"
+ " java.lang.Iterable<? extends $boxed_type$> values) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " com.google.protobuf.AbstractMessageLite.addAll(\n"
+ " values, $name$_);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " $name$_ = $empty_list$;\n"
+ "}\n");
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.util.List<$boxed_type$>\n"
+ " get$capitalized_name$List() {\n"
+ " return java.util.Collections.unmodifiableList(\n"
+ " instance.get$capitalized_name$List());\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Count() {\n"
+ " return instance.get$capitalized_name$Count();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public $type$ get$capitalized_name$(int index) {\n"
+ " return instance.get$capitalized_name$(index);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " int index, $type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(index, value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$($type$ value) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder addAll$capitalized_name$(\n"
+ " java.lang.Iterable<? extends $boxed_type$> values) {\n"
+ " copyOnWrite();\n"
+ " instance.addAll$capitalized_name$(values);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
+ // noop for primitives
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateInitializationCode(io::Printer* printer) const {
+ printer->Print(variables_, "$name$_ = $empty_list$;\n");
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateBuilderClearCode(io::Printer* printer) const {
+ // noop for primitives
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ // The code below does two optimizations:
+ // 1. If the other list is empty, there's nothing to do. This ensures we
+ // don't allocate a new array if we already have an immutable one.
+ // 2. If the other list is non-empty and our current list is empty, we can
+ // reuse the other list which is guaranteed to be immutable.
+ printer->Print(variables_,
+ "if (!other.$name$_.isEmpty()) {\n"
+ " if ($name$_.isEmpty()) {\n"
+ " $name$_ = other.$name$_;\n"
+ " } else {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.addAll(other.$name$_);\n"
+ " }\n"
+ " $on_changed$\n"
+ "}\n");
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateBuildingCode(io::Printer* printer) const {
+ // noop for primitives
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "$name$_.makeImmutable();\n");
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (!$is_mutable$) {\n"
+ " $name$_ = $new_list$();\n"
+ "}\n"
+ "$repeated_add$(input.read$capitalized_type$());\n");
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateParsingCodeFromPacked(io::Printer* printer) const {
+ printer->Print(variables_,
+ "int length = input.readRawVarint32();\n"
+ "int limit = input.pushLimit(length);\n"
+ "if (!$is_mutable$ && input.getBytesUntilLimit() > 0) {\n"
+ " $name$_ = $new_list$();\n"
+ "}\n"
+ "while (input.getBytesUntilLimit() > 0) {\n"
+ " $repeated_add$(input.read$capitalized_type$());\n"
+ "}\n"
+ "input.popLimit(limit);\n");
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateParsingDoneCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_mutable$) {\n"
+ " $make_name_unmodifiable$;\n"
+ "}\n");
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ if (descriptor_->options().packed()) {
+ // We invoke getSerializedSize in writeTo for messages that have packed
+ // fields in ImmutableMessageGenerator::GenerateMessageSerializationMethods.
+ // That makes it safe to rely on the memoized size here.
+ printer->Print(variables_,
+ "if (get$capitalized_name$List().size() > 0) {\n"
+ " output.writeRawVarint32($tag$);\n"
+ " output.writeRawVarint32($name$MemoizedSerializedSize);\n"
+ "}\n"
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " output.write$capitalized_type$NoTag($name$_.get(i));\n"
+ "}\n");
+ } else {
+ printer->Print(variables_,
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " output.write$capitalized_type$($number$, $name$_.get(i));\n"
+ "}\n");
+ }
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "{\n"
+ " int dataSize = 0;\n");
+ printer->Indent();
+
+ if (FixedSize(GetType(descriptor_)) == -1) {
+ printer->Print(variables_,
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " dataSize += com.google.protobuf.CodedOutputStream\n"
+ " .compute$capitalized_type$SizeNoTag($name$_.get(i));\n"
+ "}\n");
+ } else {
+ printer->Print(variables_,
+ "dataSize = $fixed_size$ * get$capitalized_name$List().size();\n");
+ }
+
+ printer->Print(
+ "size += dataSize;\n");
+
+ if (descriptor_->options().packed()) {
+ printer->Print(variables_,
+ "if (!get$capitalized_name$List().isEmpty()) {\n"
+ " size += $tag_size$;\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeInt32SizeNoTag(dataSize);\n"
+ "}\n");
+ } else {
+ printer->Print(variables_,
+ "size += $tag_size$ * get$capitalized_name$List().size();\n");
+ }
+
+ // cache the data size for packed fields.
+ if (descriptor_->options().packed()) {
+ printer->Print(variables_,
+ "$name$MemoizedSerializedSize = dataSize;\n");
+ }
+
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateEqualsCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "result = result && get$capitalized_name$List()\n"
+ " .equals(other.get$capitalized_name$List());\n");
+}
+
+void RepeatedImmutablePrimitiveFieldLiteGenerator::
+GenerateHashCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (get$capitalized_name$Count() > 0) {\n"
+ " hash = (37 * hash) + $constant_name$;\n"
+ " hash = (53 * hash) + get$capitalized_name$List().hashCode();\n"
+ "}\n");
+}
+
+string RepeatedImmutablePrimitiveFieldLiteGenerator::GetBoxedType() const {
+ return BoxedPrimitiveTypeName(GetJavaType(descriptor_));
+}
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/java/java_primitive_field_lite.h b/src/google/protobuf/compiler/java/java_primitive_field_lite.h
new file mode 100644
index 00000000..ad603c2a
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_primitive_field_lite.h
@@ -0,0 +1,163 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_LITE_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_LITE_H__
+
+#include <map>
+#include <string>
+#include <google/protobuf/compiler/java/java_field.h>
+
+namespace google {
+namespace protobuf {
+ namespace compiler {
+ namespace java {
+ class Context; // context.h
+ class ClassNameResolver; // name_resolver.h
+ }
+ }
+}
+
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+class ImmutablePrimitiveFieldLiteGenerator
+ : public ImmutableFieldLiteGenerator {
+ public:
+ explicit ImmutablePrimitiveFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutablePrimitiveFieldLiteGenerator();
+
+ // implements ImmutableFieldLiteGenerator ------------------------------------
+ int GetNumBitsForMessage() const;
+ int GetNumBitsForBuilder() const;
+ void GenerateInterfaceMembers(io::Printer* printer) const;
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateInitializationCode(io::Printer* printer) const;
+ void GenerateBuilderClearCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateBuildingCode(io::Printer* printer) const;
+ void GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateParsingDoneCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+ void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
+ void GenerateEqualsCode(io::Printer* printer) const;
+ void GenerateHashCode(io::Printer* printer) const;
+
+ string GetBoxedType() const;
+
+ protected:
+ const FieldDescriptor* descriptor_;
+ map<string, string> variables_;
+ const int messageBitIndex_;
+ const int builderBitIndex_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutablePrimitiveFieldLiteGenerator);
+};
+
+class ImmutablePrimitiveOneofFieldLiteGenerator
+ : public ImmutablePrimitiveFieldLiteGenerator {
+ public:
+ ImmutablePrimitiveOneofFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutablePrimitiveOneofFieldLiteGenerator();
+
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateBuildingCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutablePrimitiveOneofFieldLiteGenerator);
+};
+
+class RepeatedImmutablePrimitiveFieldLiteGenerator
+ : public ImmutableFieldLiteGenerator {
+ public:
+ explicit RepeatedImmutablePrimitiveFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ virtual ~RepeatedImmutablePrimitiveFieldLiteGenerator();
+
+ // implements ImmutableFieldLiteGenerator ------------------------------------
+ int GetNumBitsForMessage() const;
+ int GetNumBitsForBuilder() const;
+ void GenerateInterfaceMembers(io::Printer* printer) const;
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateInitializationCode(io::Printer* printer) const;
+ void GenerateBuilderClearCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateBuildingCode(io::Printer* printer) const;
+ void GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateParsingCodeFromPacked(io::Printer* printer) const;
+ void GenerateParsingDoneCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+ void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
+ void GenerateEqualsCode(io::Printer* printer) const;
+ void GenerateHashCode(io::Printer* printer) const;
+
+ string GetBoxedType() const;
+
+ private:
+ const FieldDescriptor* descriptor_;
+ map<string, string> variables_;
+ const int messageBitIndex_;
+ const int builderBitIndex_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedImmutablePrimitiveFieldLiteGenerator);
+};
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_PRIMITIVE_FIELD_LITE_H__
diff --git a/src/google/protobuf/compiler/java/java_string_field.cc b/src/google/protobuf/compiler/java/java_string_field.cc
index 8aa5699c..68e863cc 100644
--- a/src/google/protobuf/compiler/java/java_string_field.cc
+++ b/src/google/protobuf/compiler/java/java_string_field.cc
@@ -208,7 +208,7 @@ GenerateInterfaceMembers(io::Printer* printer) const {
void ImmutableStringFieldGenerator::
GenerateMembers(io::Printer* printer) const {
printer->Print(variables_,
- "private java.lang.Object $name$_;\n");
+ "private volatile java.lang.Object $name$_;\n");
PrintExtraFieldInfo(variables_, printer);
if (SupportFieldPresence(descriptor_->file())) {
diff --git a/src/google/protobuf/compiler/java/java_string_field_lite.cc b/src/google/protobuf/compiler/java/java_string_field_lite.cc
new file mode 100644
index 00000000..51bb245c
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_string_field_lite.cc
@@ -0,0 +1,1013 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Author: jonp@google.com (Jon Perlow)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#include <map>
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/compiler/java/java_context.h>
+#include <google/protobuf/compiler/java/java_doc_comment.h>
+#include <google/protobuf/compiler/java/java_helpers.h>
+#include <google/protobuf/compiler/java/java_name_resolver.h>
+#include <google/protobuf/compiler/java/java_string_field_lite.h>
+#include <google/protobuf/io/printer.h>
+#include <google/protobuf/wire_format.h>
+#include <google/protobuf/stubs/strutil.h>
+
+namespace google {
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+using internal::WireFormat;
+using internal::WireFormatLite;
+
+namespace {
+
+void SetPrimitiveVariables(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ const FieldGeneratorInfo* info,
+ ClassNameResolver* name_resolver,
+ map<string, string>* variables) {
+ SetCommonFieldVariables(descriptor, info, variables);
+
+ (*variables)["empty_list"] = "emptyLazyStringArrayList()";
+
+ (*variables)["default"] = ImmutableDefaultValue(descriptor, name_resolver);
+ (*variables)["default_init"] =
+ "= " + ImmutableDefaultValue(descriptor, name_resolver);
+ (*variables)["capitalized_type"] = "String";
+ (*variables)["tag"] = SimpleItoa(WireFormat::MakeTag(descriptor));
+ (*variables)["tag_size"] = SimpleItoa(
+ WireFormat::TagSize(descriptor->number(), GetType(descriptor)));
+ (*variables)["null_check"] =
+ " if (value == null) {\n"
+ " throw new NullPointerException();\n"
+ " }\n";
+
+ // TODO(birdo): Add @deprecated javadoc when generating javadoc is supported
+ // by the proto compiler
+ (*variables)["deprecation"] = descriptor->options().deprecated()
+ ? "@java.lang.Deprecated " : "";
+ (*variables)["on_changed"] =
+ HasDescriptorMethods(descriptor->containing_type()) ? "onChanged();" : "";
+
+ if (SupportFieldPresence(descriptor->file())) {
+ // For singular messages and builders, one bit is used for the hasField bit.
+ (*variables)["get_has_field_bit_message"] = GenerateGetBit(messageBitIndex);
+
+ // Note that these have a trailing ";".
+ (*variables)["set_has_field_bit_message"] =
+ GenerateSetBit(messageBitIndex) + ";";
+ (*variables)["clear_has_field_bit_message"] =
+ GenerateClearBit(messageBitIndex) + ";";
+
+ (*variables)["is_field_present_message"] = GenerateGetBit(messageBitIndex);
+ } else {
+ (*variables)["set_has_field_bit_message"] = "";
+ (*variables)["clear_has_field_bit_message"] = "";
+
+ (*variables)["is_field_present_message"] =
+ "!get" + (*variables)["capitalized_name"] + "Bytes().isEmpty()";
+ }
+
+ // For repeated builders, the underlying list tracks mutability state.
+ (*variables)["is_mutable"] = (*variables)["name"] + "_.isModifiable()";
+
+ (*variables)["get_has_field_bit_from_local"] =
+ GenerateGetBitFromLocal(builderBitIndex);
+ (*variables)["set_has_field_bit_to_local"] =
+ GenerateSetBitToLocal(messageBitIndex);
+}
+
+bool CheckUtf8(const FieldDescriptor* descriptor) {
+ return descriptor->file()->options().java_string_check_utf8();
+}
+
+} // namespace
+
+// ===================================================================
+
+ImmutableStringFieldLiteGenerator::
+ImmutableStringFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : descriptor_(descriptor), messageBitIndex_(messageBitIndex),
+ builderBitIndex_(builderBitIndex), context_(context),
+ name_resolver_(context->GetNameResolver()) {
+ SetPrimitiveVariables(descriptor, messageBitIndex, builderBitIndex,
+ context->GetFieldGeneratorInfo(descriptor),
+ name_resolver_, &variables_);
+}
+
+ImmutableStringFieldLiteGenerator::~ImmutableStringFieldLiteGenerator() {}
+
+int ImmutableStringFieldLiteGenerator::GetNumBitsForMessage() const {
+ return 1;
+}
+
+int ImmutableStringFieldLiteGenerator::GetNumBitsForBuilder() const {
+ return 0;
+}
+
+// A note about how strings are handled. This code used to just store a String
+// in the Message. This had two issues:
+//
+// 1. It wouldn't roundtrip byte arrays that were not vaid UTF-8 encoded
+// strings, but rather fields that were raw bytes incorrectly marked
+// as strings in the proto file. This is common because in the proto1
+// syntax, string was the way to indicate bytes and C++ engineers can
+// easily make this mistake without affecting the C++ API. By converting to
+// strings immediately, some java code might corrupt these byte arrays as
+// it passes through a java server even if the field was never accessed by
+// application code.
+//
+// 2. There's a performance hit to converting between bytes and strings and
+// it many cases, the field is never even read by the application code. This
+// avoids unnecessary conversions in the common use cases.
+//
+// So now, the field for String is maintained as an Object reference which can
+// either store a String or a ByteString. The code uses an instanceof check
+// to see which one it has and converts to the other one if needed. It remembers
+// the last value requested (in a thread safe manner) as this is most likely
+// the one needed next. The thread safety is such that if two threads both
+// convert the field because the changes made by each thread were not visible to
+// the other, they may cause a conversion to happen more times than would
+// otherwise be necessary. This was deemed better than adding synchronization
+// overhead. It will not cause any corruption issues or affect the behavior of
+// the API. The instanceof check is also highly optimized in the JVM and we
+// decided it was better to reduce the memory overhead by not having two
+// separate fields but rather use dynamic type checking.
+//
+// For single fields, the logic for this is done inside the generated code. For
+// repeated fields, the logic is done in LazyStringArrayList and
+// UnmodifiableLazyStringList.
+void ImmutableStringFieldLiteGenerator::
+GenerateInterfaceMembers(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$boolean has$capitalized_name$();\n");
+ }
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$java.lang.String get$capitalized_name$();\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$com.google.protobuf.ByteString\n"
+ " get$capitalized_name$Bytes();\n");
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(variables_,
+ "private java.lang.Object $name$_;\n");
+ PrintExtraFieldInfo(variables_, printer);
+
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $get_has_field_bit_message$;\n"
+ "}\n");
+ }
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.lang.String get$capitalized_name$() {\n"
+ " java.lang.Object ref = $name$_;\n"
+ " if (ref instanceof java.lang.String) {\n"
+ " return (java.lang.String) ref;\n"
+ " } else {\n"
+ " com.google.protobuf.ByteString bs = \n"
+ " (com.google.protobuf.ByteString) ref;\n"
+ " java.lang.String s = bs.toStringUtf8();\n");
+ if (CheckUtf8(descriptor_)) {
+ printer->Print(variables_,
+ " $name$_ = s;\n");
+ } else {
+ printer->Print(variables_,
+ " if (bs.isValidUtf8()) {\n"
+ " $name$_ = s;\n"
+ " }\n");
+ }
+ printer->Print(variables_,
+ " return s;\n"
+ " }\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public com.google.protobuf.ByteString\n"
+ " get$capitalized_name$Bytes() {\n"
+ " java.lang.Object ref = $name$_;\n"
+ " if (ref instanceof java.lang.String) {\n"
+ " com.google.protobuf.ByteString b = \n"
+ " com.google.protobuf.ByteString.copyFromUtf8(\n"
+ " (java.lang.String) ref);\n"
+ " $name$_ = b;\n"
+ " return b;\n"
+ " } else {\n"
+ " return (com.google.protobuf.ByteString) ref;\n"
+ " }\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " java.lang.String value) {\n"
+ "$null_check$"
+ " $set_has_field_bit_message$\n"
+ " $name$_ = value;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " $clear_has_field_bit_message$\n"
+ // The default value is not a simple literal so we want to avoid executing
+ // it multiple times. Instead, get the default out of the default instance.
+ " $name$_ = getDefaultInstance().get$capitalized_name$();\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$Bytes(\n"
+ " com.google.protobuf.ByteString value) {\n"
+ "$null_check$");
+ if (CheckUtf8(descriptor_)) {
+ printer->Print(variables_,
+ " checkByteStringIsUtf8(value);\n");
+ }
+ printer->Print(variables_,
+ " $set_has_field_bit_message$\n"
+ " $name$_ = value;\n"
+ "}\n");
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return instance.has$capitalized_name$();\n"
+ "}\n");
+ }
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.lang.String get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public com.google.protobuf.ByteString\n"
+ " get$capitalized_name$Bytes() {\n"
+ " return instance.get$capitalized_name$Bytes();\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " java.lang.String value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$Bytes(\n"
+ " com.google.protobuf.ByteString value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$Bytes(value);\n"
+ " return this;\n"
+ "}\n");
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
+ // noop for strings
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateInitializationCode(io::Printer* printer) const {
+ printer->Print(variables_, "$name$_ = $default$;\n");
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ // Allow a slight breach of abstraction here in order to avoid forcing
+ // all string fields to Strings when copying fields from a Message.
+ printer->Print(variables_,
+ "if (other.has$capitalized_name$()) {\n"
+ " $set_has_field_bit_message$\n"
+ " $name$_ = other.$name$_;\n"
+ " $on_changed$\n"
+ "}\n");
+ } else {
+ printer->Print(variables_,
+ "if (!other.get$capitalized_name$().isEmpty()) {\n"
+ " $name$_ = other.$name$_;\n"
+ " $on_changed$\n"
+ "}\n");
+ }
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const {
+ // noop for scalars
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ if (CheckUtf8(descriptor_)) {
+ printer->Print(variables_,
+ "String s = input.readStringRequireUtf8();\n"
+ "$set_has_field_bit_message$\n"
+ "$name$_ = s;\n");
+ } else if (!HasDescriptorMethods(descriptor_->file())) {
+ // Lite runtime should attempt to reduce allocations by attempting to
+ // construct the string directly from the input stream buffer. This avoids
+ // spurious intermediary ByteString allocations, cutting overall allocations
+ // in half.
+ printer->Print(variables_,
+ "String s = input.readString();\n"
+ "$set_has_field_bit_message$\n"
+ "$name$_ = s;\n");
+ } else {
+ printer->Print(variables_,
+ "com.google.protobuf.ByteString bs = input.readBytes();\n"
+ "$set_has_field_bit_message$\n"
+ "$name$_ = bs;\n");
+ }
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateParsingDoneCode(io::Printer* printer) const {
+ // noop for strings
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_field_present_message$) {\n"
+ " output.writeBytes($number$, get$capitalized_name$Bytes());\n"
+ "}\n");
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_field_present_message$) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeBytesSize($number$, get$capitalized_name$Bytes());\n"
+ "}\n");
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateEqualsCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "result = result && get$capitalized_name$()\n"
+ " .equals(other.get$capitalized_name$());\n");
+}
+
+void ImmutableStringFieldLiteGenerator::
+GenerateHashCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "hash = (37 * hash) + $constant_name$;\n");
+ printer->Print(variables_,
+ "hash = (53 * hash) + get$capitalized_name$().hashCode();\n");
+}
+
+string ImmutableStringFieldLiteGenerator::GetBoxedType() const {
+ return "java.lang.String";
+}
+
+// ===================================================================
+
+ImmutableStringOneofFieldLiteGenerator::
+ImmutableStringOneofFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : ImmutableStringFieldLiteGenerator(
+ descriptor, messageBitIndex, builderBitIndex, context) {
+ const OneofGeneratorInfo* info =
+ context->GetOneofGeneratorInfo(descriptor->containing_oneof());
+ SetCommonOneofVariables(descriptor, info, &variables_);
+}
+
+ImmutableStringOneofFieldLiteGenerator::
+~ImmutableStringOneofFieldLiteGenerator() {}
+
+void ImmutableStringOneofFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ PrintExtraFieldInfo(variables_, printer);
+
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return $has_oneof_case_message$;\n"
+ "}\n");
+ }
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.lang.String get$capitalized_name$() {\n"
+ " java.lang.Object ref $default_init$;\n"
+ " if ($has_oneof_case_message$) {\n"
+ " ref = $oneof_name$_;\n"
+ " }\n"
+ " if (ref instanceof java.lang.String) {\n"
+ " return (java.lang.String) ref;\n"
+ " } else {\n"
+ " com.google.protobuf.ByteString bs = \n"
+ " (com.google.protobuf.ByteString) ref;\n"
+ " java.lang.String s = bs.toStringUtf8();\n");
+ if (CheckUtf8(descriptor_)) {
+ printer->Print(variables_,
+ " if ($has_oneof_case_message$) {\n"
+ " $oneof_name$_ = s;\n"
+ " }\n");
+ } else {
+ printer->Print(variables_,
+ " if (bs.isValidUtf8() && ($has_oneof_case_message$)) {\n"
+ " $oneof_name$_ = s;\n"
+ " }\n");
+ }
+ printer->Print(variables_,
+ " return s;\n"
+ " }\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+
+ printer->Print(variables_,
+ "$deprecation$public com.google.protobuf.ByteString\n"
+ " get$capitalized_name$Bytes() {\n"
+ " java.lang.Object ref $default_init$;\n"
+ " if ($has_oneof_case_message$) {\n"
+ " ref = $oneof_name$_;\n"
+ " }\n"
+ " if (ref instanceof java.lang.String) {\n"
+ " com.google.protobuf.ByteString b = \n"
+ " com.google.protobuf.ByteString.copyFromUtf8(\n"
+ " (java.lang.String) ref);\n"
+ " if ($has_oneof_case_message$) {\n"
+ " $oneof_name$_ = b;\n"
+ " }\n"
+ " return b;\n"
+ " } else {\n"
+ " return (com.google.protobuf.ByteString) ref;\n"
+ " }\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " java.lang.String value) {\n"
+ "$null_check$"
+ " $set_oneof_case_message$;\n"
+ " $oneof_name$_ = value;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " if ($has_oneof_case_message$) {\n"
+ " $clear_oneof_case_message$;\n"
+ " $oneof_name$_ = null;\n"
+ " }\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$Bytes(\n"
+ " com.google.protobuf.ByteString value) {\n"
+ "$null_check$");
+ if (CheckUtf8(descriptor_)) {
+ printer->Print(variables_,
+ " checkByteStringIsUtf8(value);\n");
+ }
+ printer->Print(variables_,
+ " $set_oneof_case_message$;\n"
+ " $oneof_name$_ = value;\n"
+ "}\n");
+}
+
+void ImmutableStringOneofFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ if (SupportFieldPresence(descriptor_->file())) {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public boolean has$capitalized_name$() {\n"
+ " return instance.has$capitalized_name$();\n"
+ "}\n");
+ }
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.lang.String get$capitalized_name$() {\n"
+ " return instance.get$capitalized_name$();\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public com.google.protobuf.ByteString\n"
+ " get$capitalized_name$Bytes() {\n"
+ " return instance.get$capitalized_name$Bytes();\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " java.lang.String value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$Bytes(\n"
+ " com.google.protobuf.ByteString value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$Bytes(value);\n"
+ " return this;\n"
+ "}\n");
+}
+
+void ImmutableStringOneofFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ // Allow a slight breach of abstraction here in order to avoid forcing
+ // all string fields to Strings when copying fields from a Message.
+ printer->Print(variables_,
+ "$set_oneof_case_message$;\n"
+ "$oneof_name$_ = other.$oneof_name$_;\n"
+ "$on_changed$\n");
+}
+
+void ImmutableStringOneofFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ if (CheckUtf8(descriptor_)) {
+ printer->Print(variables_,
+ "String s = input.readStringRequireUtf8();\n"
+ "$set_oneof_case_message$;\n"
+ "$oneof_name$_ = s;\n");
+ } else if (!HasDescriptorMethods(descriptor_->file())) {
+ // Lite runtime should attempt to reduce allocations by attempting to
+ // construct the string directly from the input stream buffer. This avoids
+ // spurious intermediary ByteString allocations, cutting overall allocations
+ // in half.
+ printer->Print(variables_,
+ "String s = input.readString();\n"
+ "$set_oneof_case_message$;\n"
+ "$oneof_name$_ = s;\n");
+ } else {
+ printer->Print(variables_,
+ "com.google.protobuf.ByteString bs = input.readBytes();\n"
+ "$set_oneof_case_message$;\n"
+ "$oneof_name$_ = bs;\n");
+ }
+}
+
+void ImmutableStringOneofFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($has_oneof_case_message$) {\n"
+ " output.writeBytes($number$, get$capitalized_name$Bytes());\n"
+ "}\n");
+}
+
+void ImmutableStringOneofFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($has_oneof_case_message$) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeBytesSize($number$, get$capitalized_name$Bytes());\n"
+ "}\n");
+}
+
+// ===================================================================
+
+RepeatedImmutableStringFieldLiteGenerator::
+RepeatedImmutableStringFieldLiteGenerator(const FieldDescriptor* descriptor,
+ int messageBitIndex,
+ int builderBitIndex,
+ Context* context)
+ : descriptor_(descriptor), messageBitIndex_(messageBitIndex),
+ builderBitIndex_(builderBitIndex), context_(context),
+ name_resolver_(context->GetNameResolver()) {
+ SetPrimitiveVariables(descriptor, messageBitIndex, builderBitIndex,
+ context->GetFieldGeneratorInfo(descriptor),
+ name_resolver_, &variables_);
+}
+
+RepeatedImmutableStringFieldLiteGenerator::
+~RepeatedImmutableStringFieldLiteGenerator() {}
+
+int RepeatedImmutableStringFieldLiteGenerator::GetNumBitsForMessage() const {
+ return 0;
+}
+
+int RepeatedImmutableStringFieldLiteGenerator::GetNumBitsForBuilder() const {
+ return 0;
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateInterfaceMembers(io::Printer* printer) const {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$com.google.protobuf.ProtocolStringList\n"
+ " get$capitalized_name$List();\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$int get$capitalized_name$Count();\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$java.lang.String get$capitalized_name$(int index);\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$com.google.protobuf.ByteString\n"
+ " get$capitalized_name$Bytes(int index);\n");
+}
+
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateMembers(io::Printer* printer) const {
+ printer->Print(variables_,
+ "private com.google.protobuf.LazyStringArrayList $name$_;\n");
+ PrintExtraFieldInfo(variables_, printer);
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public com.google.protobuf.ProtocolStringList\n"
+ " get$capitalized_name$List() {\n"
+ " return $name$_;\n" // note: unmodifiable list
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Count() {\n"
+ " return $name$_.size();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.lang.String get$capitalized_name$(int index) {\n"
+ " return $name$_.get(index);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public com.google.protobuf.ByteString\n"
+ " get$capitalized_name$Bytes(int index) {\n"
+ " return $name$_.getByteString(index);\n"
+ "}\n");
+
+ if (descriptor_->options().packed() &&
+ HasGeneratedMethods(descriptor_->containing_type())) {
+ printer->Print(variables_,
+ "private int $name$MemoizedSerializedSize = -1;\n");
+ }
+
+ printer->Print(variables_,
+ "private void ensure$capitalized_name$IsMutable() {\n"
+ " if (!$is_mutable$) {\n"
+ " $name$_ = new com.google.protobuf.LazyStringArrayList($name$_);\n"
+ " }\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void set$capitalized_name$(\n"
+ " int index, java.lang.String value) {\n"
+ "$null_check$"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.set(index, value);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$(\n"
+ " java.lang.String value) {\n"
+ "$null_check$"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(value);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void addAll$capitalized_name$(\n"
+ " java.lang.Iterable<java.lang.String> values) {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " com.google.protobuf.AbstractMessageLite.addAll(\n"
+ " values, $name$_);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void clear$capitalized_name$() {\n"
+ " $name$_ = $empty_list$;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "private void add$capitalized_name$Bytes(\n"
+ " com.google.protobuf.ByteString value) {\n"
+ "$null_check$");
+ if (CheckUtf8(descriptor_)) {
+ printer->Print(variables_,
+ " checkByteStringIsUtf8(value);\n");
+ }
+ printer->Print(variables_,
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.add(value);\n"
+ "}\n");
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateBuilderMembers(io::Printer* printer) const {
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public com.google.protobuf.ProtocolStringList\n"
+ " get$capitalized_name$List() {\n"
+ " return ((com.google.protobuf.LazyStringList)\n"
+ " instance.get$capitalized_name$List()).getUnmodifiableView();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public int get$capitalized_name$Count() {\n"
+ " return instance.get$capitalized_name$Count();\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public java.lang.String get$capitalized_name$(int index) {\n"
+ " return instance.get$capitalized_name$(index);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public com.google.protobuf.ByteString\n"
+ " get$capitalized_name$Bytes(int index) {\n"
+ " return instance.get$capitalized_name$Bytes(index);\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder set$capitalized_name$(\n"
+ " int index, java.lang.String value) {\n"
+ " copyOnWrite();\n"
+ " instance.set$capitalized_name$(index, value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$(\n"
+ " java.lang.String value) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$(value);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder addAll$capitalized_name$(\n"
+ " java.lang.Iterable<java.lang.String> values) {\n"
+ " copyOnWrite();\n"
+ " instance.addAll$capitalized_name$(values);\n"
+ " return this;\n"
+ "}\n");
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder clear$capitalized_name$() {\n"
+ " copyOnWrite();\n"
+ " instance.clear$capitalized_name$();\n"
+ " return this;\n"
+ "}\n");
+
+ WriteFieldDocComment(printer, descriptor_);
+ printer->Print(variables_,
+ "$deprecation$public Builder add$capitalized_name$Bytes(\n"
+ " com.google.protobuf.ByteString value) {\n"
+ " copyOnWrite();\n"
+ " instance.add$capitalized_name$Bytes(value);\n"
+ " return this;\n"
+ "}\n");
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateFieldBuilderInitializationCode(io::Printer* printer) const {
+ // noop for strings
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateInitializationCode(io::Printer* printer) const {
+ printer->Print(variables_, "$name$_ = $empty_list$;\n");
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateMergingCode(io::Printer* printer) const {
+ // The code below does two optimizations:
+ // 1. If the other list is empty, there's nothing to do. This ensures we
+ // don't allocate a new array if we already have an immutable one.
+ // 2. If the other list is non-empty and our current list is empty, we can
+ // reuse the other list which is guaranteed to be immutable.
+ printer->Print(variables_,
+ "if (!other.$name$_.isEmpty()) {\n"
+ " if ($name$_.isEmpty()) {\n"
+ " $name$_ = other.$name$_;\n"
+ " } else {\n"
+ " ensure$capitalized_name$IsMutable();\n"
+ " $name$_.addAll(other.$name$_);\n"
+ " }\n"
+ " $on_changed$\n"
+ "}\n");
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "$name$_.makeImmutable();\n");
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateParsingCode(io::Printer* printer) const {
+ if (CheckUtf8(descriptor_)) {
+ printer->Print(variables_,
+ "String s = input.readStringRequireUtf8();\n");
+ } else if (!HasDescriptorMethods(descriptor_->file())) {
+ // Lite runtime should attempt to reduce allocations by attempting to
+ // construct the string directly from the input stream buffer. This avoids
+ // spurious intermediary ByteString allocations, cutting overall allocations
+ // in half.
+ printer->Print(variables_,
+ "String s = input.readString();\n");
+ } else {
+ printer->Print(variables_,
+ "com.google.protobuf.ByteString bs = input.readBytes();\n");
+ }
+ printer->Print(variables_,
+ "if (!$is_mutable$) {\n"
+ " $name$_ = new com.google.protobuf.LazyStringArrayList();\n"
+ "}\n");
+ if (CheckUtf8(descriptor_) || !HasDescriptorMethods(descriptor_->file())) {
+ printer->Print(variables_,
+ "$name$_.add(s);\n");
+ } else {
+ printer->Print(variables_,
+ "$name$_.add(bs);\n");
+ }
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateParsingCodeFromPacked(io::Printer* printer) const {
+ printer->Print(variables_,
+ "int length = input.readRawVarint32();\n"
+ "int limit = input.pushLimit(length);\n"
+ "if (!$is_mutable$ && input.getBytesUntilLimit() > 0) {\n"
+ " $name$_ = new com.google.protobuf.LazyStringArrayList();\n"
+ "}\n"
+ "while (input.getBytesUntilLimit() > 0) {\n");
+ if (CheckUtf8(descriptor_)) {
+ printer->Print(variables_,
+ " String s = input.readStringRequireUtf8();\n");
+ } else {
+ printer->Print(variables_,
+ " String s = input.readString();\n");
+ }
+ printer->Print(variables_,
+ " $name$.add(s);\n");
+ printer->Print(variables_,
+ "}\n"
+ "input.popLimit(limit);\n");
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateParsingDoneCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if ($is_mutable$) {\n"
+ " $name$_.makeImmutable();\n"
+ "}\n");
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateSerializationCode(io::Printer* printer) const {
+ if (descriptor_->options().packed()) {
+ printer->Print(variables_,
+ "if (get$capitalized_name$List().size() > 0) {\n"
+ " output.writeRawVarint32($tag$);\n"
+ " output.writeRawVarint32($name$MemoizedSerializedSize);\n"
+ "}\n"
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " output.write$capitalized_type$NoTag($name$_.get(i));\n"
+ "}\n");
+ } else {
+ printer->Print(variables_,
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " output.writeBytes($number$, $name$_.getByteString(i));\n"
+ "}\n");
+ }
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateSerializedSizeCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "{\n"
+ " int dataSize = 0;\n");
+ printer->Indent();
+
+ printer->Print(variables_,
+ "for (int i = 0; i < $name$_.size(); i++) {\n"
+ " dataSize += com.google.protobuf.CodedOutputStream\n"
+ " .computeBytesSizeNoTag($name$_.getByteString(i));\n"
+ "}\n");
+
+ printer->Print(
+ "size += dataSize;\n");
+
+ if (descriptor_->options().packed()) {
+ printer->Print(variables_,
+ "if (!get$capitalized_name$List().isEmpty()) {\n"
+ " size += $tag_size$;\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .computeInt32SizeNoTag(dataSize);\n"
+ "}\n");
+ } else {
+ printer->Print(variables_,
+ "size += $tag_size$ * get$capitalized_name$List().size();\n");
+ }
+
+ // cache the data size for packed fields.
+ if (descriptor_->options().packed()) {
+ printer->Print(variables_,
+ "$name$MemoizedSerializedSize = dataSize;\n");
+ }
+
+ printer->Outdent();
+ printer->Print("}\n");
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateEqualsCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "result = result && get$capitalized_name$List()\n"
+ " .equals(other.get$capitalized_name$List());\n");
+}
+
+void RepeatedImmutableStringFieldLiteGenerator::
+GenerateHashCode(io::Printer* printer) const {
+ printer->Print(variables_,
+ "if (get$capitalized_name$Count() > 0) {\n"
+ " hash = (37 * hash) + $constant_name$;\n"
+ " hash = (53 * hash) + get$capitalized_name$List().hashCode();\n"
+ "}\n");
+}
+
+string RepeatedImmutableStringFieldLiteGenerator::GetBoxedType() const {
+ return "String";
+}
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/compiler/java/java_string_field_lite.h b/src/google/protobuf/compiler/java/java_string_field_lite.h
new file mode 100644
index 00000000..9d93b307
--- /dev/null
+++ b/src/google/protobuf/compiler/java/java_string_field_lite.h
@@ -0,0 +1,158 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Author: jonp@google.com (Jon Perlow)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+
+#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_STRING_FIELD_LITE_H__
+#define GOOGLE_PROTOBUF_COMPILER_JAVA_STRING_FIELD_LITE_H__
+
+#include <map>
+#include <string>
+#include <google/protobuf/compiler/java/java_field.h>
+
+namespace google {
+namespace protobuf {
+ namespace compiler {
+ namespace java {
+ class Context; // context.h
+ class ClassNameResolver; // name_resolver.h
+ }
+ }
+}
+
+namespace protobuf {
+namespace compiler {
+namespace java {
+
+class ImmutableStringFieldLiteGenerator : public ImmutableFieldLiteGenerator {
+ public:
+ explicit ImmutableStringFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutableStringFieldLiteGenerator();
+
+ // implements ImmutableFieldLiteGenerator ------------------------------------
+ int GetNumBitsForMessage() const;
+ int GetNumBitsForBuilder() const;
+ void GenerateInterfaceMembers(io::Printer* printer) const;
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateInitializationCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateParsingDoneCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+ void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
+ void GenerateEqualsCode(io::Printer* printer) const;
+ void GenerateHashCode(io::Printer* printer) const;
+
+ string GetBoxedType() const;
+
+ protected:
+ const FieldDescriptor* descriptor_;
+ map<string, string> variables_;
+ const int messageBitIndex_;
+ const int builderBitIndex_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+
+ private:
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableStringFieldLiteGenerator);
+};
+
+class ImmutableStringOneofFieldLiteGenerator
+ : public ImmutableStringFieldLiteGenerator {
+ public:
+ ImmutableStringOneofFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~ImmutableStringOneofFieldLiteGenerator();
+
+ private:
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ImmutableStringOneofFieldLiteGenerator);
+};
+
+class RepeatedImmutableStringFieldLiteGenerator
+ : public ImmutableFieldLiteGenerator {
+ public:
+ explicit RepeatedImmutableStringFieldLiteGenerator(
+ const FieldDescriptor* descriptor, int messageBitIndex,
+ int builderBitIndex, Context* context);
+ ~RepeatedImmutableStringFieldLiteGenerator();
+
+ // implements ImmutableFieldLiteGenerator ------------------------------------
+ int GetNumBitsForMessage() const;
+ int GetNumBitsForBuilder() const;
+ void GenerateInterfaceMembers(io::Printer* printer) const;
+ void GenerateMembers(io::Printer* printer) const;
+ void GenerateBuilderMembers(io::Printer* printer) const;
+ void GenerateInitializationCode(io::Printer* printer) const;
+ void GenerateMergingCode(io::Printer* printer) const;
+ void GenerateDynamicMethodMakeImmutableCode(io::Printer* printer) const;
+ void GenerateParsingCode(io::Printer* printer) const;
+ void GenerateParsingCodeFromPacked(io::Printer* printer) const;
+ void GenerateParsingDoneCode(io::Printer* printer) const;
+ void GenerateSerializationCode(io::Printer* printer) const;
+ void GenerateSerializedSizeCode(io::Printer* printer) const;
+ void GenerateFieldBuilderInitializationCode(io::Printer* printer) const;
+ void GenerateEqualsCode(io::Printer* printer) const;
+ void GenerateHashCode(io::Printer* printer) const;
+
+ string GetBoxedType() const;
+
+ private:
+ const FieldDescriptor* descriptor_;
+ map<string, string> variables_;
+ const int messageBitIndex_;
+ const int builderBitIndex_;
+ Context* context_;
+ ClassNameResolver* name_resolver_;
+
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(RepeatedImmutableStringFieldLiteGenerator);
+};
+
+} // namespace java
+} // namespace compiler
+} // namespace protobuf
+
+} // namespace google
+#endif // GOOGLE_PROTOBUF_COMPILER_JAVA_STRING_FIELD_LITE_H__
diff --git a/src/google/protobuf/compiler/main.cc b/src/google/protobuf/compiler/main.cc
index cff80164..4815a726 100644
--- a/src/google/protobuf/compiler/main.cc
+++ b/src/google/protobuf/compiler/main.cc
@@ -36,6 +36,7 @@
#include <google/protobuf/compiler/java/java_generator.h>
#include <google/protobuf/compiler/javanano/javanano_generator.h>
#include <google/protobuf/compiler/ruby/ruby_generator.h>
+#include <google/protobuf/compiler/csharp/csharp_generator.h>
#include <google/protobuf/compiler/objectivec/objectivec_generator.h>
int main(int argc, char* argv[]) {
@@ -69,6 +70,11 @@ int main(int argc, char* argv[]) {
cli.RegisterGenerator("--ruby_out", &rb_generator,
"Generate Ruby source file.");
+ // CSharp
+ google::protobuf::compiler::csharp::Generator csharp_generator;
+ cli.RegisterGenerator("--csharp_out", &csharp_generator,
+ "Generate C# source file.");
+
// Objective C
google::protobuf::compiler::objectivec::ObjectiveCGenerator objc_generator;
cli.RegisterGenerator("--objc_out", &objc_generator,
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_enum.h b/src/google/protobuf/compiler/objectivec/objectivec_enum.h
index 2dc5547b..0b41cf73 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_enum.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_enum.h
@@ -49,7 +49,7 @@ namespace objectivec {
class EnumGenerator {
public:
- EnumGenerator(const EnumDescriptor* descriptor);
+ explicit EnumGenerator(const EnumDescriptor* descriptor);
~EnumGenerator();
void GenerateHeader(io::Printer* printer);
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc b/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc
index 739282b2..d6609692 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc
@@ -48,6 +48,13 @@ void SetEnumVariables(const FieldDescriptor* descriptor,
map<string, string>* variables) {
string type = EnumName(descriptor->enum_type());
(*variables)["storage_type"] = type;
+ // For non repeated fields, if it was defined in a different file, the
+ // property decls need to use "enum NAME" rather than just "NAME" to support
+ // the forward declaration of the enums.
+ if (!descriptor->is_repeated() &&
+ (descriptor->file() != descriptor->enum_type()->file())) {
+ (*variables)["property_type"] = "enum " + type;
+ }
// TODO(thomasvl): Make inclusion of descriptor compile time and output
// both of these. Note: Extensions currently have to have the EnumDescription.
(*variables)["enum_verifier"] = type + "_IsValidValue";
@@ -76,7 +83,9 @@ void EnumFieldGenerator::GenerateFieldDescriptionTypeSpecific(
void EnumFieldGenerator::GenerateCFunctionDeclarations(
io::Printer* printer) const {
- if (!HasPreservingUnknownEnumSemantics(descriptor_->file())) return;
+ if (!HasPreservingUnknownEnumSemantics(descriptor_->file())) {
+ return;
+ }
printer->Print(
variables_,
@@ -105,6 +114,18 @@ void EnumFieldGenerator::GenerateCFunctionImplementations(
"\n");
}
+void EnumFieldGenerator::DetermineForwardDeclarations(
+ set<string>* fwd_decls) const {
+ // If it is an enum defined in a different file, then we'll need a forward
+ // declaration for it. When it is in our file, all the enums are output
+ // before the message, so it will be declared before it is needed.
+ if (descriptor_->file() != descriptor_->enum_type()->file()) {
+ // Enum name is already in "storage_type".
+ const string& name = variable("storage_type");
+ fwd_decls->insert("GPB_ENUM_FWD_DECLARE(" + name + ")");
+ }
+}
+
RepeatedEnumFieldGenerator::RepeatedEnumFieldGenerator(
const FieldDescriptor* descriptor)
: RepeatedFieldGenerator(descriptor) {
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_enum_field.h b/src/google/protobuf/compiler/objectivec/objectivec_enum_field.h
index 2d5822bb..b629eae8 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_enum_field.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_enum_field.h
@@ -47,9 +47,10 @@ class EnumFieldGenerator : public SingleFieldGenerator {
virtual void GenerateFieldDescriptionTypeSpecific(io::Printer* printer) const;
virtual void GenerateCFunctionDeclarations(io::Printer* printer) const;
virtual void GenerateCFunctionImplementations(io::Printer* printer) const;
+ virtual void DetermineForwardDeclarations(set<string>* fwd_decls) const;
protected:
- EnumFieldGenerator(const FieldDescriptor* descriptor);
+ explicit EnumFieldGenerator(const FieldDescriptor* descriptor);
virtual ~EnumFieldGenerator();
private:
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_extension.cc b/src/google/protobuf/compiler/objectivec/objectivec_extension.cc
index b19c1b45..76137c80 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_extension.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_extension.cc
@@ -66,7 +66,7 @@ ExtensionGenerator::ExtensionGenerator(const string& root_class_name,
}
if (descriptor->is_map()) {
// NOTE: src/google/protobuf/compiler/plugin.cc makes use of cerr for some
- // error case, so it seem to be ok to use as a back door for errors.
+ // error cases, so it seems to be ok to use as a back door for errors.
cerr << "error: Extension is a map<>!"
<< " That used to be blocked by the compiler." << endl;
cerr.flush();
@@ -77,7 +77,6 @@ ExtensionGenerator::ExtensionGenerator(const string& root_class_name,
ExtensionGenerator::~ExtensionGenerator() {}
void ExtensionGenerator::GenerateMembersHeader(io::Printer* printer) {
- WriteClassNameToClassList(root_class_and_method_name_);
if (IsFiltered()) {
printer->Print("// $filter_reason$\n\n", "filter_reason", filter_reason_);
return;
@@ -108,7 +107,7 @@ void ExtensionGenerator::GenerateStaticVariablesInitialization(
std::vector<string> options;
if (descriptor_->is_repeated()) options.push_back("GPBExtensionRepeated");
- if (descriptor_->options().packed()) options.push_back("GPBExtensionPacked");
+ if (descriptor_->is_packed()) options.push_back("GPBExtensionPacked");
if (descriptor_->containing_type()->options().message_set_wire_format())
options.push_back("GPBExtensionSetWireFormat");
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_extension.h b/src/google/protobuf/compiler/objectivec/objectivec_extension.h
index d17f5be9..553f0887 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_extension.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_extension.h
@@ -47,8 +47,8 @@ namespace objectivec {
class ExtensionGenerator {
public:
- explicit ExtensionGenerator(const string& root_class_name,
- const FieldDescriptor* descriptor);
+ ExtensionGenerator(const string& root_class_name,
+ const FieldDescriptor* descriptor);
~ExtensionGenerator();
void GenerateMembersHeader(io::Printer* printer);
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_field.cc b/src/google/protobuf/compiler/objectivec/objectivec_field.cc
index b071ce5d..c5f05653 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_field.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_field.cc
@@ -39,10 +39,6 @@
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/strutil.h>
-#ifndef htonl
-#include <netinet/in.h>
-#endif
-
namespace google {
namespace protobuf {
namespace compiler {
@@ -84,7 +80,7 @@ void SetCommonFieldVariables(const FieldDescriptor* descriptor,
if (descriptor->is_repeated()) field_flags.push_back("GPBFieldRepeated");
if (descriptor->is_required()) field_flags.push_back("GPBFieldRequired");
if (descriptor->is_optional()) field_flags.push_back("GPBFieldOptional");
- if (descriptor->options().packed()) field_flags.push_back("GPBFieldPacked");
+ if (descriptor->is_packed()) field_flags.push_back("GPBFieldPacked");
// ObjC custom flags.
if (descriptor->has_default_value())
@@ -107,7 +103,7 @@ void SetCommonFieldVariables(const FieldDescriptor* descriptor,
string field_options = descriptor->options().SerializeAsString();
// Must convert to a standard byte order for packing length into
// a cstring.
- uint32_t length = htonl(field_options.length());
+ uint32 length = ghtonl(field_options.length());
if (length > 0) {
string bytes((const char*)&length, sizeof(length));
bytes.append(field_options);
@@ -239,6 +235,11 @@ void FieldGenerator::GenerateCFunctionImplementations(
// Nothing
}
+void FieldGenerator::DetermineForwardDeclarations(
+ set<string>* fwd_decls) const {
+ // Nothing
+}
+
void FieldGenerator::GenerateFieldDescription(
io::Printer* printer) const {
printer->Print(
@@ -255,7 +256,7 @@ void FieldGenerator::GenerateFieldDescription(
// " .typeSpecific.value* = [something],"
GenerateFieldDescriptionTypeSpecific(printer);
- const string& field_options(variables_.at("fieldoptions"));
+ const string& field_options(variables_.find("fieldoptions")->second);
if (field_options.empty()) {
printer->Print(" .fieldOptions = NULL,\n");
} else {
@@ -286,12 +287,16 @@ void FieldGenerator::SetOneofIndexBase(int index_base) {
if (descriptor_->containing_oneof() != NULL) {
int index = descriptor_->containing_oneof()->index() + index_base;
// Flip the sign to mark it as a oneof.
- variables_["has_index"] = SimpleItoa(-index);;
+ variables_["has_index"] = SimpleItoa(-index);
}
}
void FieldGenerator::FinishInitialization(void) {
- // Nothing
+ // If "property_type" wasn't set, make it "storage_type".
+ if ((variables_.find("property_type") == variables_.end()) &&
+ (variables_.find("storage_type") != variables_.end())) {
+ variables_["property_type"] = variable("storage_type");
+ }
}
SingleFieldGenerator::SingleFieldGenerator(
@@ -317,7 +322,7 @@ void SingleFieldGenerator::GeneratePropertyDeclaration(
}
printer->Print(
variables_,
- "@property(nonatomic, readwrite) $storage_type$ $name$;\n"
+ "@property(nonatomic, readwrite) $property_type$ $name$;\n"
"\n");
}
@@ -373,12 +378,12 @@ void ObjCObjFieldGenerator::GeneratePropertyDeclaration(
}
printer->Print(
variables_,
- "@property(nonatomic, readwrite, $property_storage_attribute$) $storage_type$ *$name$$storage_attribute$;\n");
- if (IsInitName(variables_.at("name"))) {
+ "@property(nonatomic, readwrite, $property_storage_attribute$) $property_type$ *$name$$storage_attribute$;\n");
+ if (IsInitName(variables_.find("name")->second)) {
// If property name starts with init we need to annotate it to get past ARC.
// http://stackoverflow.com/questions/18723226/how-do-i-annotate-an-objective-c-property-with-an-objc-method-family/18723227#18723227
printer->Print(variables_,
- "- ($storage_type$ *)$name$ GPB_METHOD_FAMILY_NONE;\n");
+ "- ($property_type$ *)$name$ GPB_METHOD_FAMILY_NONE;\n");
}
printer->Print("\n");
}
@@ -421,7 +426,7 @@ void RepeatedFieldGenerator::GeneratePropertyDeclaration(
"$comments$"
"$array_comment$"
"@property(nonatomic, readwrite, strong) $array_storage_type$ *$name$$storage_attribute$;\n");
- if (IsInitName(variables_.at("name"))) {
+ if (IsInitName(variables_.find("name")->second)) {
// If property name starts with init we need to annotate it to get past ARC.
// http://stackoverflow.com/questions/18723226/how-do-i-annotate-an-objective-c-property-with-an-objc-method-family/18723227#18723227
printer->Print(variables_,
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_field.h b/src/google/protobuf/compiler/objectivec/objectivec_field.h
index c65e73b2..130a52dd 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_field.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_field.h
@@ -65,6 +65,8 @@ class FieldGenerator {
virtual void GenerateCFunctionDeclarations(io::Printer* printer) const;
virtual void GenerateCFunctionImplementations(io::Printer* printer) const;
+ virtual void DetermineForwardDeclarations(set<string>* fwd_decls) const;
+
void SetOneofIndexBase(int index_base);
string variable(const char* key) const {
@@ -79,7 +81,7 @@ class FieldGenerator {
string raw_field_name() const { return variable("raw_field_name"); }
protected:
- FieldGenerator(const FieldDescriptor* descriptor);
+ explicit FieldGenerator(const FieldDescriptor* descriptor);
virtual void FinishInitialization(void);
virtual bool WantsHasProperty(void) const = 0;
@@ -101,7 +103,7 @@ class SingleFieldGenerator : public FieldGenerator {
virtual void GeneratePropertyImplementation(io::Printer* printer) const;
protected:
- SingleFieldGenerator(const FieldDescriptor* descriptor);
+ explicit SingleFieldGenerator(const FieldDescriptor* descriptor);
virtual bool WantsHasProperty(void) const;
private:
@@ -117,7 +119,7 @@ class ObjCObjFieldGenerator : public SingleFieldGenerator {
virtual void GeneratePropertyDeclaration(io::Printer* printer) const;
protected:
- ObjCObjFieldGenerator(const FieldDescriptor* descriptor);
+ explicit ObjCObjFieldGenerator(const FieldDescriptor* descriptor);
private:
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ObjCObjFieldGenerator);
@@ -133,7 +135,7 @@ class RepeatedFieldGenerator : public ObjCObjFieldGenerator {
virtual void GeneratePropertyImplementation(io::Printer* printer) const;
protected:
- RepeatedFieldGenerator(const FieldDescriptor* descriptor);
+ explicit RepeatedFieldGenerator(const FieldDescriptor* descriptor);
virtual void FinishInitialization(void);
virtual bool WantsHasProperty(void) const;
@@ -144,7 +146,7 @@ class RepeatedFieldGenerator : public ObjCObjFieldGenerator {
// Convenience class which constructs FieldGenerators for a Descriptor.
class FieldGeneratorMap {
public:
- FieldGeneratorMap(const Descriptor* descriptor);
+ explicit FieldGeneratorMap(const Descriptor* descriptor);
~FieldGeneratorMap();
const FieldGenerator& get(const FieldDescriptor* field) const;
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_file.cc b/src/google/protobuf/compiler/objectivec/objectivec_file.cc
index f1e8c0a0..d04eee85 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_file.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_file.cc
@@ -40,20 +40,27 @@
#include <google/protobuf/stubs/strutil.h>
#include <sstream>
+namespace google {
+namespace protobuf {
+
// This is also found in GPBBootstrap.h, and needs to be kept in sync. It
// is the version check done to ensure generated code works with the current
// runtime being used.
-const int32_t GOOGLE_PROTOBUF_OBJC_GEN_VERSION = 30000;
+const int32 GOOGLE_PROTOBUF_OBJC_GEN_VERSION = 30000;
-namespace google {
-namespace protobuf {
namespace compiler {
namespace objectivec {
+
FileGenerator::FileGenerator(const FileDescriptor *file)
: file_(file),
root_class_name_(FileClassName(file)),
is_filtered_(true),
- all_extensions_filtered_(true) {
+ all_extensions_filtered_(true),
+ is_public_dep_(false) {
+ // Validate the objc prefix, do this even if the file's contents are filtered
+ // to catch a bad prefix as soon as it is found.
+ ValidateObjCClassPrefix(file_);
+
for (int i = 0; i < file_->enum_type_count(); i++) {
EnumGenerator *generator = new EnumGenerator(file_->enum_type(i));
// The enums are exposed via C functions, so they will dead strip if
@@ -95,7 +102,9 @@ void FileGenerator::GenerateHeader(io::Printer *printer) {
"\n",
"filename", file_->name());
- printer->Print("#import \"GPBProtocolBuffers.h\"\n\n");
+ printer->Print(
+ "#import \"GPBProtocolBuffers.h\"\n"
+ "\n");
// Add some verification that the generated code matches the source the
// code is being compiled with.
@@ -107,31 +116,34 @@ void FileGenerator::GenerateHeader(io::Printer *printer) {
"protoc_gen_objc_version",
SimpleItoa(GOOGLE_PROTOBUF_OBJC_GEN_VERSION));
- if (!IsFiltered()) {
- const vector<FileGenerator *> &dependency_generators =
- DependencyGenerators();
- if (dependency_generators.size() > 0) {
- for (vector<FileGenerator *>::const_iterator iter =
- dependency_generators.begin();
- iter != dependency_generators.end(); ++iter) {
- printer->Print("#import \"$header$.pbobjc.h\"\n",
- "header", (*iter)->Path());
- }
- printer->Print("\n");
+ const vector<FileGenerator *> &dependency_generators =
+ DependencyGenerators();
+ for (vector<FileGenerator *>::const_iterator iter =
+ dependency_generators.begin();
+ iter != dependency_generators.end(); ++iter) {
+ if ((*iter)->IsPublicDependency()) {
+ printer->Print("#import \"$header$.pbobjc.h\"\n",
+ "header", (*iter)->Path());
}
}
+ printer->Print(
+ "// @@protoc_insertion_point(imports)\n"
+ "\n");
+
printer->Print("CF_EXTERN_C_BEGIN\n\n");
if (!IsFiltered()) {
- set<string> dependencies;
- DetermineDependencies(&dependencies);
- for (set<string>::const_iterator i(dependencies.begin());
- i != dependencies.end(); ++i) {
+ set<string> fwd_decls;
+ for (vector<MessageGenerator *>::iterator iter = message_generators_.begin();
+ iter != message_generators_.end(); ++iter) {
+ (*iter)->DetermineForwardDeclarations(&fwd_decls);
+ }
+ for (set<string>::const_iterator i(fwd_decls.begin());
+ i != fwd_decls.end(); ++i) {
printer->Print("$value$;\n", "value", *i);
}
-
- if (dependencies.begin() != dependencies.end()) {
+ if (fwd_decls.begin() != fwd_decls.end()) {
printer->Print("\n");
}
}
@@ -155,7 +167,14 @@ void FileGenerator::GenerateHeader(io::Printer *printer) {
"#pragma mark - $root_class_name$\n"
"\n"
"@interface $root_class_name$ : GPBRootObject\n"
- "@end\n\n",
+ "\n"
+ "// The base class provides:\n"
+ "// + (GPBExtensionRegistry *)extensionRegistry;\n"
+ "// which is an GPBExtensionRegistry that includes all the extensions defined by\n"
+ "// this file and all files that it depends on.\n"
+ "\n"
+ "@end\n"
+ "\n",
"root_class_name", root_class_name_);
}
@@ -188,33 +207,10 @@ void FileGenerator::GenerateHeader(io::Printer *printer) {
}
printer->Print("CF_EXTERN_C_END\n");
-}
-
-void DetermineDependenciesWorker(set<string> *dependencies,
- set<string> *seen_files,
- const string &classname,
- const FileDescriptor *file) {
- if (seen_files->find(file->name()) != seen_files->end()) {
- // don't infinitely recurse
- return;
- }
-
- seen_files->insert(file->name());
- for (int i = 0; i < file->dependency_count(); i++) {
- DetermineDependenciesWorker(dependencies, seen_files, classname,
- file->dependency(i));
- }
- for (int i = 0; i < file->message_type_count(); i++) {
- MessageGenerator(classname, file->message_type(i))
- .DetermineDependencies(dependencies);
- }
-}
-
-void FileGenerator::DetermineDependencies(set<string> *dependencies) {
- set<string> seen_files;
- DetermineDependenciesWorker(dependencies, &seen_files, root_class_name_,
- file_);
+ printer->Print(
+ "\n"
+ "// @@protoc_insertion_point(global_scope)\n");
}
void FileGenerator::GenerateSource(io::Printer *printer) {
@@ -224,6 +220,25 @@ void FileGenerator::GenerateSource(io::Printer *printer) {
"\n",
"filename", file_->name());
+ string header_file = Path() + ".pbobjc.h";
+ printer->Print(
+ "#import \"GPBProtocolBuffers_RuntimeSupport.h\"\n"
+ "#import \"$header_file$\"\n",
+ "header_file", header_file);
+ const vector<FileGenerator *> &dependency_generators =
+ DependencyGenerators();
+ for (vector<FileGenerator *>::const_iterator iter =
+ dependency_generators.begin();
+ iter != dependency_generators.end(); ++iter) {
+ if (!(*iter)->IsPublicDependency()) {
+ printer->Print("#import \"$header$.pbobjc.h\"\n",
+ "header", (*iter)->Path());
+ }
+ }
+ printer->Print(
+ "// @@protoc_insertion_point(imports)\n"
+ "\n");
+
if (IsFiltered()) {
printer->Print(
"// File empty because all messages, extensions and enum have been filtered.\n"
@@ -231,22 +246,17 @@ void FileGenerator::GenerateSource(io::Printer *printer) {
"\n"
"// Dummy symbol that will be stripped but will avoid linker warnings about\n"
"// no symbols in the .o form compiling this file.\n"
- "static int $root_class_name$_dummy __attribute__((unused,used)) = 0;\n",
+ "static int $root_class_name$_dummy __attribute__((unused,used)) = 0;\n"
+ "\n"
+ "// @@protoc_insertion_point(global_scope)\n",
"root_class_name", root_class_name_);
return;
}
- printer->Print("#import \"GPBProtocolBuffers_RuntimeSupport.h\"\n\n");
-
- string header_file = Path() + ".pbobjc.h";
-
printer->Print(
- "#import \"$header_file$\"\n"
- "\n"
"#pragma mark - $root_class_name$\n"
"\n"
"@implementation $root_class_name$\n\n",
- "header_file", header_file,
"root_class_name", root_class_name_);
bool generated_extensions = false;
@@ -325,12 +335,7 @@ void FileGenerator::GenerateSource(io::Printer *printer) {
" }\n"
" return registry;\n"
"}\n"
- "\n"
- "+ (void)load {\n"
- " @autoreleasepool {\n"
- " [self extensionRegistry]; // Construct extension registry.\n"
- " }\n"
- "}\n\n");
+ "\n");
}
}
@@ -373,19 +378,31 @@ void FileGenerator::GenerateSource(io::Printer *printer) {
iter != message_generators_.end(); ++iter) {
(*iter)->GenerateSource(printer);
}
+
+ printer->Print(
+ "\n"
+ "// @@protoc_insertion_point(global_scope)\n");
}
const string FileGenerator::Path() const { return FilePath(file_); }
const vector<FileGenerator *> &FileGenerator::DependencyGenerators() {
if (file_->dependency_count() != dependency_generators_.size()) {
+ set<string> public_import_names;
+ for (int i = 0; i < file_->public_dependency_count(); i++) {
+ public_import_names.insert(file_->public_dependency(i)->name());
+ }
for (int i = 0; i < file_->dependency_count(); i++) {
FileGenerator *generator = new FileGenerator(file_->dependency(i));
+ const string& name = file_->dependency(i)->name();
+ bool public_import = (public_import_names.count(name) != 0);
+ generator->SetIsPublicDependency(public_import);
dependency_generators_.push_back(generator);
}
}
return dependency_generators_;
}
+
} // namespace objectivec
} // namespace compiler
} // namespace protobuf
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_file.h b/src/google/protobuf/compiler/objectivec/objectivec_file.h
index fbd08eae..95d17bfd 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_file.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_file.h
@@ -66,6 +66,12 @@ class FileGenerator {
bool IsFiltered() const { return is_filtered_; }
bool AreAllExtensionsFiltered() const { return all_extensions_filtered_; }
+ bool IsPublicDependency() const { return is_public_dep_; }
+
+ protected:
+ void SetIsPublicDependency(bool is_public_dep) {
+ is_public_dep_ = is_public_dep;
+ }
private:
const FileDescriptor* file_;
@@ -80,15 +86,16 @@ class FileGenerator {
vector<ExtensionGenerator*> extension_generators_;
bool is_filtered_;
bool all_extensions_filtered_;
-
- void DetermineDependencies(set<string>* dependencies);
+ bool is_public_dep_;
const vector<FileGenerator*>& DependencyGenerators();
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileGenerator);
};
+
} // namespace objectivec
} // namespace compiler
} // namespace protobuf
} // namespace google
+
#endif // GOOGLE_PROTOBUF_COMPILER_OBJECTIVEC_FILE_H__
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_generator.cc b/src/google/protobuf/compiler/objectivec/objectivec_generator.cc
index 1eb31a79..17776715 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_generator.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_generator.cc
@@ -82,10 +82,6 @@ bool ObjectiveCGenerator::Generate(const FileDescriptor* file,
file_generator.GenerateSource(&printer);
}
- if (!WriteClassList(error)) {
- return false;
- }
-
return true;
}
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc b/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc
index a4eba09b..6d6e5959 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc
@@ -28,12 +28,6 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#include <arpa/inet.h>
-#include <errno.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <unistd.h>
-
#include <fstream>
#include <iostream>
#include <sstream>
@@ -46,16 +40,8 @@
#include <google/protobuf/descriptor.pb.h>
#include <google/protobuf/stubs/strutil.h>
-#ifndef htonl
-#include <netinet/in.h>
-#endif
-
-#ifndef O_EXLOCK
-#include <sys/file.h>
-#endif
-
// NOTE: src/google/protobuf/compiler/plugin.cc makes use of cerr for some
-// error case, so it seem to be ok to use as a back door for errors.
+// error cases, so it seems to be ok to use as a back door for errors.
namespace google {
namespace protobuf {
@@ -65,9 +51,13 @@ namespace objectivec {
namespace {
hash_set<string> gClassWhitelist;
-stringstream gClassListStream;
// islower()/isupper()/tolower()/toupper() change based on locale.
+//
+// src/google/protobuf/stubs/strutil.h:150 has the same pattern. For the
+// Objective C plugin, test failures were seen on TravisCI because isupper('A')
+// was coming back false for some server's locale. This approach avoids any
+// such issues.
bool IsLower(const char c) {
return ('a' <= c && c <= 'z');
@@ -220,10 +210,9 @@ const char* const kReservedWordList[] = {
// Only need to add instance methods that may conflict with
// method declared in protos. The main cases are methods
// that take no arguments, or setFoo:/hasFoo: type methods.
- // These are currently in the same order as in GPBMessage.h.
- "unknownFields", "extensionRegistry", "isInitialized",
- "data", "delimitedData", "serializedSize",
- "descriptor", "extensionsCurrentlySet", "clear", "sortedExtensionsInUse",
+ "clear", "data", "delimitedData", "descriptor", "extensionRegistry",
+ "extensionsCurrentlySet", "isInitialized", "serializedSize",
+ "sortedExtensionsInUse", "unknownFields",
// MacTypes.h names
"Fixed", "Fract", "Size", "LogicalAddress", "PhysicalAddress", "ByteCount",
@@ -350,7 +339,32 @@ string FilePath(const FileDescriptor* file) {
string FileClassPrefix(const FileDescriptor* file) {
// Default is empty string, no need to check has_objc_class_prefix.
- return file->options().objc_class_prefix();
+ string result = file->options().objc_class_prefix();
+ return result;
+}
+
+void ValidateObjCClassPrefix(const FileDescriptor* file) {
+ string prefix = file->options().objc_class_prefix();
+ if (prefix.length() > 0) {
+ // NOTE: src/google/protobuf/compiler/plugin.cc makes use of cerr for some
+ // error cases, so it seems to be ok to use as a back door for errors.
+ if (!IsUpper(prefix[0])) {
+ cerr << endl
+ << "protoc:0: warning: Invalid 'option objc_class_prefix = \""
+ << prefix << "\";' in '" << file->name() << "';"
+ << " it should start with a capital letter."
+ << endl;
+ cerr.flush();
+ }
+ if (prefix.length() < 3) {
+ cerr << endl
+ << "protoc:0: warning: Invalid 'option objc_class_prefix = \""
+ << prefix << "\";' in '" << file->name() << "';"
+ << " Apple recommends they should be at least 3 characters long."
+ << endl;
+ cerr.flush();
+ }
+ }
}
string FileClassName(const FileDescriptor* file) {
@@ -483,7 +497,7 @@ string OneofEnumName(const OneofDescriptor* descriptor) {
const Descriptor* fieldDescriptor = descriptor->containing_type();
string name = ClassName(fieldDescriptor);
name += "_" + UnderscoresToCamelCase(descriptor->name(), true) + "_OneOfCase";
- // No sanitize needed because it the OS never has names that end in OneOfCase.
+ // No sanitize needed because the OS never has names that end in _OneOfCase.
return name;
}
@@ -575,6 +589,8 @@ string GetCapitalizedType(const FieldDescriptor* field) {
return "Message";
}
+ // Some compilers report reaching end of function even though all cases of
+ // the enum are handed in the switch.
GOOGLE_LOG(FATAL) << "Can't get here.";
return NULL;
}
@@ -622,6 +638,8 @@ ObjectiveCType GetObjectiveCType(FieldDescriptor::Type field_type) {
return OBJECTIVECTYPE_MESSAGE;
}
+ // Some compilers report reaching end of function even though all cases of
+ // the enum are handed in the switch.
GOOGLE_LOG(FATAL) << "Can't get here.";
return OBJECTIVECTYPE_INT32;
}
@@ -698,6 +716,8 @@ string GPBValueFieldName(const FieldDescriptor* field) {
return "valueMessage";
}
+ // Some compilers report reaching end of function even though all cases of
+ // the enum are handed in the switch.
GOOGLE_LOG(FATAL) << "Can't get here.";
return NULL;
}
@@ -754,7 +774,7 @@ string DefaultValue(const FieldDescriptor* field) {
// Must convert to a standard byte order for packing length into
// a cstring.
- uint32_t length = htonl(default_string.length());
+ uint32 length = ghtonl(default_string.length());
string bytes((const char*)&length, sizeof(length));
bytes.append(default_string);
return "(NSData*)\"" + CEscape(bytes) + "\"";
@@ -768,6 +788,8 @@ string DefaultValue(const FieldDescriptor* field) {
return "nil";
}
+ // Some compilers report reaching end of function even though all cases of
+ // the enum are handed in the switch.
GOOGLE_LOG(FATAL) << "Can't get here.";
return NULL;
}
@@ -809,60 +831,6 @@ string BuildCommentsString(const SourceLocation& location) {
return final_comments;
}
-bool WriteClassList(string* error) {
- const char* file_name = getenv("GPB_CLASSLIST_PATH");
- if (file_name != NULL) {
-#ifndef O_EXLOCK
- int fd = open(file_name, O_WRONLY | O_APPEND | O_CREAT,
- (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH));
-#else
- int fd = open(file_name, O_WRONLY | O_APPEND | O_EXLOCK | O_CREAT,
- (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH));
-#endif
- if (fd == -1) {
- if (error != NULL) {
- stringstream err_stream;
- err_stream << endl << file_name << ":0:0: error:"
- << "Unable to open (" << errno << ")";
- *error = err_stream.str();
- }
- return false;
- }
-#ifndef O_EXLOCK
- if (flock(fd, LOCK_EX) < 0) {
- if (error != NULL) {
- stringstream err_stream;
- err_stream << endl << file_name << ":0:0: error:"
- << "Unable to lock (" << errno << ")";
- *error = err_stream.str();
- }
- return false;
- }
-#endif
- // Need a local to hold the list so the cstring stays valid for the
- // write call.
- const string& class_list_str = gClassListStream.str();
- int write_out = write(fd, class_list_str.c_str(), class_list_str.length());
- int close_out = close(fd);
- if (write_out == -1 || close_out == -1) {
- if (error != NULL) {
- stringstream err_stream;
- err_stream << endl << file_name << ":0:0: error:"
- << "Unable to write (" << errno << ")";
- *error = err_stream.str();
- }
- return false;
- }
- }
- return true;
-}
-
-void WriteClassNameToClassList(const string& name) {
- if (gClassListStream.good()) {
- gClassListStream << name << '\n';
- }
-}
-
bool InitializeClassWhitelist(string* error) {
const char* env_var_value = getenv("GPB_OBJC_CLASS_WHITELIST_PATHS");
if (env_var_value == NULL) {
@@ -917,7 +885,7 @@ bool FilterClass(const string& name) {
return gClassWhitelist.size() > 0;
}
-void TextFormatDecodeData::AddString(int32_t key,
+void TextFormatDecodeData::AddString(int32 key,
const string& input_for_decode,
const string& desired_output) {
for (vector<DataEntry>::const_iterator i = entries_.begin();
@@ -973,14 +941,14 @@ class DecodeDataBuilder {
}
private:
- static const uint8_t kAddUnderscore = 0b10000000;
+ static const uint8 kAddUnderscore = 0x80;
- static const uint8_t kOpAsIs = 0b00000000;
- static const uint8_t kOpFirstUpper = 0b01000000;
- static const uint8_t kOpFirstLower = 0b00100000;
- static const uint8_t kOpAllUpper = 0b01100000;
+ static const uint8 kOpAsIs = 0x00;
+ static const uint8 kOpFirstUpper = 0x40;
+ static const uint8 kOpFirstLower = 0x20;
+ static const uint8 kOpAllUpper = 0x60;
- static const int kMaxSegmentLen = 0b00011111;
+ static const int kMaxSegmentLen = 0x1f;
void AddChar(const char desired) {
++segment_len_;
@@ -988,7 +956,7 @@ class DecodeDataBuilder {
}
void Push() {
- uint8_t op = (op_ | segment_len_);
+ uint8 op = (op_ | segment_len_);
if (need_underscore_) op |= kAddUnderscore;
if (op != 0) {
decode_data_ += (char)op;
@@ -1020,7 +988,7 @@ class DecodeDataBuilder {
bool need_underscore_;
bool is_all_upper_;
- uint8_t op_;
+ uint8 op_;
int segment_len_;
string decode_data_;
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_helpers.h b/src/google/protobuf/compiler/objectivec/objectivec_helpers.h
index 2701a30c..19317698 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_helpers.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_helpers.h
@@ -62,6 +62,9 @@ string FileName(const FileDescriptor* file);
// declared in the proto package.
string FilePath(const FileDescriptor* file);
+// Checks the prefix for a given file and outputs any warnings/errors needed.
+void ValidateObjCClassPrefix(const FileDescriptor* file);
+
// Gets the name of the root class we'll generate in the file. This class
// is not meant for external consumption, but instead contains helpers that
// the rest of the the classes need
@@ -142,19 +145,16 @@ string BuildFlagsString(const vector<string>& strings);
string BuildCommentsString(const SourceLocation& location);
-bool WriteClassList(string* error);
-void WriteClassNameToClassList(const string& name);
-
bool InitializeClassWhitelist(string* error);
bool FilterClass(const string& name);
// Generate decode data needed for ObjC's GPBDecodeTextFormatName() to transform
// the input into the the expected output.
-class TextFormatDecodeData {
+class LIBPROTOC_EXPORT TextFormatDecodeData {
public:
TextFormatDecodeData() {}
- void AddString(int32_t key, const string& input_for_decode,
+ void AddString(int32 key, const string& input_for_decode,
const string& desired_output);
size_t num_entries() const { return entries_.size(); }
string Data() const;
@@ -165,7 +165,7 @@ class TextFormatDecodeData {
private:
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(TextFormatDecodeData);
- typedef std::pair<int32_t, string> DataEntry;
+ typedef std::pair<int32, string> DataEntry;
vector<DataEntry> entries_;
};
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc b/src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc
index c9682b08..b091b77a 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc
@@ -111,6 +111,8 @@ TEST(ObjCHelper, TextFormatDecodeData_DecodeDataForString_ByteCodes) {
EXPECT_EQ(expected, result);
}
+// Death tests do not work on Windows as of yet.
+#ifdef PROTOBUF_HAS_DEATH_TEST
TEST(ObjCHelperDeathTest, TextFormatDecodeData_DecodeDataForString_Failures) {
// Empty inputs.
@@ -136,6 +138,7 @@ TEST(ObjCHelperDeathTest, TextFormatDecodeData_DecodeDataForString_Failures) {
::testing::KilledBySignal(SIGABRT),
"error: got a null char in a string for making TextFormat data, input:");
}
+#endif // PROTOBUF_HAS_DEATH_TEST
TEST(ObjCHelper, TextFormatDecodeData_RawStrings) {
TextFormatDecodeData decode_data;
@@ -150,7 +153,7 @@ TEST(ObjCHelper, TextFormatDecodeData_RawStrings) {
EXPECT_EQ(4, decode_data.num_entries());
- uint8_t expected_data[] = {
+ uint8 expected_data[] = {
0x4,
0x1, 0x0, 'z', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'I', 'J', 0x0,
0x3, 0x0, 'a', 'b', 'c', 'd', 'e', 'z', 'g', 'h', 'I', 'J', 0x0,
@@ -175,7 +178,7 @@ TEST(ObjCHelper, TextFormatDecodeData_ByteCodes) {
EXPECT_EQ(5, decode_data.num_entries());
- uint8_t expected_data[] = {
+ uint8 expected_data[] = {
0x5,
// All as is (00 op)
0x1, 0x0A, 0x0,
@@ -198,6 +201,9 @@ TEST(ObjCHelper, TextFormatDecodeData_ByteCodes) {
EXPECT_EQ(expected, decode_data.Data());
}
+
+// Death tests do not work on Windows as of yet.
+#ifdef PROTOBUF_HAS_DEATH_TEST
TEST(ObjCHelperDeathTest, TextFormatDecodeData_Failures) {
TextFormatDecodeData decode_data;
@@ -234,6 +240,7 @@ TEST(ObjCHelperDeathTest, TextFormatDecodeData_Failures) {
::testing::KilledBySignal(SIGABRT),
"error: duplicate key \\(2\\) making TextFormat data, input:");
}
+#endif // PROTOBUF_HAS_DEATH_TEST
} // namespace
} // namespace objectivec
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc b/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc
index cafdf39d..2987f3db 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc
@@ -76,6 +76,8 @@ const char* MapEntryTypeName(const FieldDescriptor* descriptor, bool isKey) {
return "Object";
}
+ // Some compilers report reaching end of function even though all cases of
+ // the enum are handed in the switch.
GOOGLE_LOG(FATAL) << "Can't get here.";
return NULL;
}
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_map_field.h b/src/google/protobuf/compiler/objectivec/objectivec_map_field.h
index 8862dc35..173541f2 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_map_field.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_map_field.h
@@ -48,7 +48,7 @@ class MapFieldGenerator : public RepeatedFieldGenerator {
virtual void GenerateFieldDescriptionTypeSpecific(io::Printer* printer) const;
protected:
- MapFieldGenerator(const FieldDescriptor* descriptor);
+ explicit MapFieldGenerator(const FieldDescriptor* descriptor);
virtual ~MapFieldGenerator();
private:
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_message.cc b/src/google/protobuf/compiler/objectivec/objectivec_message.cc
index 87e4d0f8..52e583bf 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_message.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_message.cc
@@ -119,6 +119,11 @@ int OrderGroupForFieldDescriptor(const FieldDescriptor* descriptor) {
case FieldDescriptor::TYPE_BOOL:
return 1;
}
+
+ // Some compilers report reaching end of function even though all cases of
+ // the enum are handed in the switch.
+ GOOGLE_LOG(FATAL) << "Can't get here.";
+ return 0;
}
struct FieldOrderingByStorageSize {
@@ -185,7 +190,7 @@ MessageGenerator::MessageGenerator(const string& root_classname,
extension_generators_.push_back(
new ExtensionGenerator(class_name_, descriptor_->extension(i)));
}
- // No need to oneofs if this message is filtered
+ // No need to generate oneofs if this message is filtered.
for (int i = 0; i < descriptor_->oneof_decl_count(); i++) {
OneofGenerator* generator = new OneofGenerator(descriptor_->oneof_decl(i));
oneof_generators_.push_back(generator);
@@ -250,15 +255,24 @@ void MessageGenerator::GenerateStaticVariablesInitialization(
}
}
-void MessageGenerator::DetermineDependencies(set<string>* dependencies) {
+void MessageGenerator::DetermineForwardDeclarations(set<string>* fwd_decls) {
if (!IsFiltered() && !IsMapEntryMessage(descriptor_)) {
- dependencies->insert("@class " + class_name_);
+ for (int i = 0; i < descriptor_->field_count(); i++) {
+ const FieldDescriptor* fieldDescriptor = descriptor_->field(i);
+ // If it is a the field is repeated, the type will be and *Array,
+ // and we don't need any forward decl.
+ if (fieldDescriptor->is_repeated()) {
+ continue;
+ }
+ field_generators_.get(fieldDescriptor)
+ .DetermineForwardDeclarations(fwd_decls);
+ }
}
for (vector<MessageGenerator*>::iterator iter =
nested_message_generators_.begin();
iter != nested_message_generators_.end(); ++iter) {
- (*iter)->DetermineDependencies(dependencies);
+ (*iter)->DetermineForwardDeclarations(fwd_decls);
}
}
@@ -303,8 +317,6 @@ void MessageGenerator::GenerateMessageHeader(io::Printer* printer) {
return;
}
- WriteClassNameToClassList(class_name_);
-
if (IsFiltered()) {
printer->Print("// $filter_reason$\n\n",
"filter_reason", filter_reason_);
@@ -360,13 +372,13 @@ void MessageGenerator::GenerateMessageHeader(io::Printer* printer) {
"classname", class_name_,
"comments", message_comments);
- vector<bool> seen_oneofs(descriptor_->oneof_decl_count(), false);
+ vector<char> seen_oneofs(descriptor_->oneof_decl_count(), 0);
for (int i = 0; i < descriptor_->field_count(); i++) {
const FieldDescriptor* field = descriptor_->field(i);
if (field->containing_oneof() != NULL) {
const int oneof_index = field->containing_oneof()->index();
if (!seen_oneofs[oneof_index]) {
- seen_oneofs[oneof_index] = true;
+ seen_oneofs[oneof_index] = 1;
oneof_generators_[oneof_index]->GeneratePublicCasePropertyDeclaration(
printer);
}
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_message.h b/src/google/protobuf/compiler/objectivec/objectivec_message.h
index 5992d0cf..8d03c0b8 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_message.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_message.h
@@ -63,7 +63,7 @@ class MessageGenerator {
void GenerateMessageHeader(io::Printer* printer);
void GenerateSource(io::Printer* printer);
void GenerateExtensionRegistrationSource(io::Printer* printer);
- void DetermineDependencies(set<string>* dependencies);
+ void DetermineForwardDeclarations(set<string>* fwd_decls);
// This only speaks for this message, not sub message/enums.
bool IsFiltered() const { return filter_reason_.length() > 0; }
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc b/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc
index 9c4a4e44..2e3bdfdb 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc
@@ -65,6 +65,12 @@ MessageFieldGenerator::MessageFieldGenerator(const FieldDescriptor* descriptor)
MessageFieldGenerator::~MessageFieldGenerator() {}
+void MessageFieldGenerator::DetermineForwardDeclarations(
+ set<string>* fwd_decls) const {
+ // Class name is already in "storage_type".
+ fwd_decls->insert("@class " + variable("storage_type"));
+}
+
bool MessageFieldGenerator::WantsHasProperty(void) const {
if (descriptor_->containing_oneof() != NULL) {
// If in a oneof, it uses the oneofcase instead of a has bit.
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_message_field.h b/src/google/protobuf/compiler/objectivec/objectivec_message_field.h
index a1ac2d39..708ea566 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_message_field.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_message_field.h
@@ -44,10 +44,13 @@ class MessageFieldGenerator : public ObjCObjFieldGenerator {
friend FieldGenerator* FieldGenerator::Make(const FieldDescriptor* field);
protected:
- MessageFieldGenerator(const FieldDescriptor* descriptor);
+ explicit MessageFieldGenerator(const FieldDescriptor* descriptor);
virtual ~MessageFieldGenerator();
virtual bool WantsHasProperty(void) const;
+ public:
+ virtual void DetermineForwardDeclarations(set<string>* fwd_decls) const;
+
private:
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator);
};
@@ -56,7 +59,7 @@ class RepeatedMessageFieldGenerator : public RepeatedFieldGenerator {
friend FieldGenerator* FieldGenerator::Make(const FieldDescriptor* field);
protected:
- RepeatedMessageFieldGenerator(const FieldDescriptor* descriptor);
+ explicit RepeatedMessageFieldGenerator(const FieldDescriptor* descriptor);
virtual ~RepeatedMessageFieldGenerator();
private:
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_oneof.h b/src/google/protobuf/compiler/objectivec/objectivec_oneof.h
index 77b7f800..bcba82da 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_oneof.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_oneof.h
@@ -49,7 +49,7 @@ namespace objectivec {
class OneofGenerator {
public:
- OneofGenerator(const OneofDescriptor* descriptor);
+ explicit OneofGenerator(const OneofDescriptor* descriptor);
~OneofGenerator();
void SetOneofIndexBase(int index_base);
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc b/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc
index 8272c67b..c185b66d 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc
+++ b/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc
@@ -76,6 +76,11 @@ const char* PrimitiveTypeName(const FieldDescriptor* descriptor) {
case OBJECTIVECTYPE_MESSAGE:
return NULL;
}
+
+ // Some compilers report reaching end of function even though all cases of
+ // the enum are handed in the switch.
+ GOOGLE_LOG(FATAL) << "Can't get here.";
+ return NULL;
}
const char* PrimitiveArrayTypeName(const FieldDescriptor* descriptor) {
@@ -104,6 +109,11 @@ const char* PrimitiveArrayTypeName(const FieldDescriptor* descriptor) {
case OBJECTIVECTYPE_MESSAGE:
return ""; // Want NSArray
}
+
+ // Some compilers report reaching end of function even though all cases of
+ // the enum are handed in the switch.
+ GOOGLE_LOG(FATAL) << "Can't get here.";
+ return NULL;
}
void SetPrimitiveVariables(const FieldDescriptor* descriptor,
@@ -155,7 +165,6 @@ void RepeatedPrimitiveFieldGenerator::FinishInitialization(void) {
}
}
-
} // namespace objectivec
} // namespace compiler
} // namespace protobuf
diff --git a/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h b/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h
index b3599297..9bb79343 100644
--- a/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h
+++ b/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h
@@ -44,7 +44,7 @@ class PrimitiveFieldGenerator : public SingleFieldGenerator {
friend FieldGenerator* FieldGenerator::Make(const FieldDescriptor* field);
protected:
- PrimitiveFieldGenerator(const FieldDescriptor* descriptor);
+ explicit PrimitiveFieldGenerator(const FieldDescriptor* descriptor);
virtual ~PrimitiveFieldGenerator();
private:
@@ -55,7 +55,7 @@ class PrimitiveObjFieldGenerator : public ObjCObjFieldGenerator {
friend FieldGenerator* FieldGenerator::Make(const FieldDescriptor* field);
protected:
- PrimitiveObjFieldGenerator(const FieldDescriptor* descriptor);
+ explicit PrimitiveObjFieldGenerator(const FieldDescriptor* descriptor);
virtual ~PrimitiveObjFieldGenerator();
private:
@@ -66,7 +66,7 @@ class RepeatedPrimitiveFieldGenerator : public RepeatedFieldGenerator {
friend FieldGenerator* FieldGenerator::Make(const FieldDescriptor* field);
protected:
- RepeatedPrimitiveFieldGenerator(const FieldDescriptor* descriptor);
+ explicit RepeatedPrimitiveFieldGenerator(const FieldDescriptor* descriptor);
virtual ~RepeatedPrimitiveFieldGenerator();
virtual void FinishInitialization(void);
diff --git a/src/google/protobuf/compiler/parser.cc b/src/google/protobuf/compiler/parser.cc
index c50cdf54..a2eeee2d 100644
--- a/src/google/protobuf/compiler/parser.cc
+++ b/src/google/protobuf/compiler/parser.cc
@@ -686,6 +686,8 @@ bool Parser::ParseMessageStatement(DescriptorProto* message,
LocationRecorder location(message_location,
DescriptorProto::kExtensionRangeFieldNumber);
return ParseExtensions(message, location, containing_file);
+ } else if (LookingAt("reserved")) {
+ return ParseReserved(message, message_location);
} else if (LookingAt("extend")) {
LocationRecorder location(message_location,
DescriptorProto::kExtensionFieldNumber);
@@ -733,6 +735,13 @@ bool Parser::ParseMessageField(FieldDescriptorProto* field,
FieldDescriptorProto::Label label;
if (ParseLabel(&label, containing_file)) {
field->set_label(label);
+ if (label == FieldDescriptorProto::LABEL_OPTIONAL &&
+ syntax_identifier_ == "proto3") {
+ AddError(
+ "Explicit 'optional' labels are disallowed in the Proto3 syntax. "
+ "To define 'optional' fields in Proto3, simply remove the "
+ "'optional' label, as fields are 'optional' by default.");
+ }
}
}
@@ -1353,6 +1362,77 @@ bool Parser::ParseExtensions(DescriptorProto* message,
return true;
}
+// This is similar to extension range parsing, except that "max" is not
+// supported, and accepts field name literals.
+bool Parser::ParseReserved(DescriptorProto* message,
+ const LocationRecorder& message_location) {
+ // Parse the declaration.
+ DO(Consume("reserved"));
+ if (LookingAtType(io::Tokenizer::TYPE_STRING)) {
+ LocationRecorder location(message_location,
+ DescriptorProto::kReservedNameFieldNumber);
+ return ParseReservedNames(message, location);
+ } else {
+ LocationRecorder location(message_location,
+ DescriptorProto::kReservedRangeFieldNumber);
+ return ParseReservedNumbers(message, location);
+ }
+}
+
+
+bool Parser::ParseReservedNames(DescriptorProto* message,
+ const LocationRecorder& parent_location) {
+ do {
+ LocationRecorder location(parent_location, message->reserved_name_size());
+ DO(ConsumeString(message->add_reserved_name(), "Expected field name."));
+ } while (TryConsume(","));
+ DO(ConsumeEndOfDeclaration(";", &parent_location));
+ return true;
+}
+
+bool Parser::ParseReservedNumbers(DescriptorProto* message,
+ const LocationRecorder& parent_location) {
+ bool first = true;
+ do {
+ LocationRecorder location(parent_location, message->reserved_range_size());
+
+ DescriptorProto::ReservedRange* range = message->add_reserved_range();
+ int start, end;
+ io::Tokenizer::Token start_token;
+ {
+ LocationRecorder start_location(
+ location, DescriptorProto::ReservedRange::kStartFieldNumber);
+ start_token = input_->current();
+ DO(ConsumeInteger(&start, (first ?
+ "Expected field name or number range." :
+ "Expected field number range.")));
+ }
+
+ if (TryConsume("to")) {
+ LocationRecorder end_location(
+ location, DescriptorProto::ReservedRange::kEndFieldNumber);
+ DO(ConsumeInteger(&end, "Expected integer."));
+ } else {
+ LocationRecorder end_location(
+ location, DescriptorProto::ReservedRange::kEndFieldNumber);
+ end_location.StartAt(start_token);
+ end_location.EndAt(start_token);
+ end = start;
+ }
+
+ // Users like to specify inclusive ranges, but in code we like the end
+ // number to be exclusive.
+ ++end;
+
+ range->set_start(start);
+ range->set_end(end);
+ first = false;
+ } while (TryConsume(","));
+
+ DO(ConsumeEndOfDeclaration(";", &parent_location));
+ return true;
+}
+
bool Parser::ParseExtend(RepeatedPtrField<FieldDescriptorProto>* extensions,
RepeatedPtrField<DescriptorProto>* messages,
const LocationRecorder& parent_location,
diff --git a/src/google/protobuf/compiler/parser.h b/src/google/protobuf/compiler/parser.h
index 7cb1678a..16012e96 100644
--- a/src/google/protobuf/compiler/parser.h
+++ b/src/google/protobuf/compiler/parser.h
@@ -364,6 +364,14 @@ class LIBPROTOBUF_EXPORT Parser {
const LocationRecorder& extensions_location,
const FileDescriptorProto* containing_file);
+ // Parse an "reserved" declaration.
+ bool ParseReserved(DescriptorProto* message,
+ const LocationRecorder& message_location);
+ bool ParseReservedNames(DescriptorProto* message,
+ const LocationRecorder& parent_location);
+ bool ParseReservedNumbers(DescriptorProto* message,
+ const LocationRecorder& parent_location);
+
// Parse an "extend" declaration. (See also comments for
// ParseMessageField().)
bool ParseExtend(RepeatedPtrField<FieldDescriptorProto>* extensions,
diff --git a/src/google/protobuf/compiler/parser_unittest.cc b/src/google/protobuf/compiler/parser_unittest.cc
index 1684bebe..ddf34bfa 100644
--- a/src/google/protobuf/compiler/parser_unittest.cc
+++ b/src/google/protobuf/compiler/parser_unittest.cc
@@ -620,6 +620,36 @@ TEST_F(ParseMessageTest, NestedEnum) {
"}");
}
+TEST_F(ParseMessageTest, ReservedRange) {
+ ExpectParsesTo(
+ "message TestMessage {\n"
+ " required int32 foo = 1;\n"
+ " reserved 2, 15, 9 to 11, 3;\n"
+ "}\n",
+
+ "message_type {"
+ " name: \"TestMessage\""
+ " field { name:\"foo\" label:LABEL_REQUIRED type:TYPE_INT32 number:1 }"
+ " reserved_range { start:2 end:3 }"
+ " reserved_range { start:15 end:16 }"
+ " reserved_range { start:9 end:12 }"
+ " reserved_range { start:3 end:4 }"
+ "}");
+}
+
+TEST_F(ParseMessageTest, ReservedNames) {
+ ExpectParsesTo(
+ "message TestMessage {\n"
+ " reserved \"foo\", \"bar\";\n"
+ "}\n",
+
+ "message_type {"
+ " name: \"TestMessage\""
+ " reserved_name: \"foo\""
+ " reserved_name: \"bar\""
+ "}");
+}
+
TEST_F(ParseMessageTest, ExtensionRange) {
ExpectParsesTo(
"message TestMessage {\n"
@@ -715,19 +745,17 @@ TEST_F(ParseMessageTest, MultipleExtensionsOneExtendee) {
" type_name:\"TestMessage\" extendee: \"Extendee1\" }");
}
-TEST_F(ParseMessageTest, OptionalOptionalLabelProto3) {
+TEST_F(ParseMessageTest, OptionalLabelProto3) {
ExpectParsesTo(
"syntax = \"proto3\";\n"
"message TestMessage {\n"
" int32 foo = 1;\n"
- " optional int32 bar = 2;\n"
"}\n",
"syntax: \"proto3\" "
"message_type {"
" name: \"TestMessage\""
- " field { name:\"foo\" label:LABEL_OPTIONAL type:TYPE_INT32 number:1 }"
- " field { name:\"bar\" label:LABEL_OPTIONAL type:TYPE_INT32 number:2 } }");
+ " field { name:\"foo\" label:LABEL_OPTIONAL type:TYPE_INT32 number:1 } }");
}
// ===================================================================
@@ -1230,6 +1258,18 @@ TEST_F(ParseErrorTest, EofInAggregateValue) {
"1:0: Unexpected end of stream while parsing aggregate value.\n");
}
+TEST_F(ParseErrorTest, ExplicitOptionalLabelProto3) {
+ ExpectHasErrors(
+ "syntax = 'proto3';\n"
+ "message TestMessage {\n"
+ " optional int32 foo = 1;\n"
+ "}\n",
+ "2:11: Explicit 'optional' labels are disallowed in the Proto3 syntax. "
+ "To define 'optional' fields in Proto3, simply remove the 'optional' "
+ "label, as fields are 'optional' by default.\n");
+}
+
+
// -------------------------------------------------------------------
// Enum errors
@@ -1248,6 +1288,33 @@ TEST_F(ParseErrorTest, EnumValueMissingNumber) {
}
// -------------------------------------------------------------------
+// Reserved field number errors
+
+TEST_F(ParseErrorTest, ReservedMaxNotAllowed) {
+ ExpectHasErrors(
+ "message Foo {\n"
+ " reserved 10 to max;\n"
+ "}\n",
+ "1:17: Expected integer.\n");
+}
+
+TEST_F(ParseErrorTest, ReservedMixNameAndNumber) {
+ ExpectHasErrors(
+ "message Foo {\n"
+ " reserved 10, \"foo\";\n"
+ "}\n",
+ "1:15: Expected field number range.\n");
+}
+
+TEST_F(ParseErrorTest, ReservedMissingQuotes) {
+ ExpectHasErrors(
+ "message Foo {\n"
+ " reserved foo;\n"
+ "}\n",
+ "1:11: Expected field name or number range.\n");
+}
+
+// -------------------------------------------------------------------
// Service errors
TEST_F(ParseErrorTest, EofInService) {
diff --git a/src/google/protobuf/compiler/plugin.cc b/src/google/protobuf/compiler/plugin.cc
index ad501acf..cdcaffde 100644
--- a/src/google/protobuf/compiler/plugin.cc
+++ b/src/google/protobuf/compiler/plugin.cc
@@ -134,20 +134,34 @@ int PluginMain(int argc, char* argv[], const CodeGenerator* generator) {
CodeGeneratorResponse response;
GeneratorResponseContext context(&response, parsed_files);
- for (int i = 0; i < parsed_files.size(); i++) {
- const FileDescriptor* file = parsed_files[i];
-
+ if (generator->HasGenerateAll()) {
string error;
- bool succeeded = generator->Generate(
- file, request.parameter(), &context, &error);
+ bool succeeded = generator->GenerateAll(
+ parsed_files, request.parameter(), &context, &error);
if (!succeeded && error.empty()) {
error = "Code generator returned false but provided no error "
"description.";
}
if (!error.empty()) {
- response.set_error(file->name() + ": " + error);
- break;
+ response.set_error(error);
+ }
+ } else {
+ for (int i = 0; i < parsed_files.size(); i++) {
+ const FileDescriptor* file = parsed_files[i];
+
+ string error;
+ bool succeeded = generator->Generate(
+ file, request.parameter(), &context, &error);
+
+ if (!succeeded && error.empty()) {
+ error = "Code generator returned false but provided no error "
+ "description.";
+ }
+ if (!error.empty()) {
+ response.set_error(file->name() + ": " + error);
+ break;
+ }
}
}
diff --git a/src/google/protobuf/compiler/plugin.pb.cc b/src/google/protobuf/compiler/plugin.pb.cc
index fed1726a..e7890fae 100644
--- a/src/google/protobuf/compiler/plugin.pb.cc
+++ b/src/google/protobuf/compiler/plugin.pb.cc
@@ -179,7 +179,7 @@ const int CodeGeneratorRequest::kProtoFileFieldNumber;
#endif // !_MSC_VER
CodeGeneratorRequest::CodeGeneratorRequest()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.compiler.CodeGeneratorRequest)
}
@@ -300,12 +300,15 @@ bool CodeGeneratorRequest::MergePartialFromCodedStream(
case 15: {
if (tag == 122) {
parse_proto_file:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_proto_file:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_proto_file()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(122)) goto parse_proto_file;
+ if (input->ExpectTag(122)) goto parse_loop_proto_file;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -445,9 +448,9 @@ int CodeGeneratorRequest::ByteSize() const {
void CodeGeneratorRequest::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const CodeGeneratorRequest* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const CodeGeneratorRequest*>(
- &from);
+ const CodeGeneratorRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const CodeGeneratorRequest>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -513,10 +516,10 @@ void CodeGeneratorRequest::InternalSwap(CodeGeneratorRequest* other) {
// CodeGeneratorRequest
// repeated string file_to_generate = 1;
- int CodeGeneratorRequest::file_to_generate_size() const {
+int CodeGeneratorRequest::file_to_generate_size() const {
return file_to_generate_.size();
}
- void CodeGeneratorRequest::clear_file_to_generate() {
+void CodeGeneratorRequest::clear_file_to_generate() {
file_to_generate_.Clear();
}
const ::std::string& CodeGeneratorRequest::file_to_generate(int index) const {
@@ -567,16 +570,16 @@ CodeGeneratorRequest::mutable_file_to_generate() {
}
// optional string parameter = 2;
- bool CodeGeneratorRequest::has_parameter() const {
+bool CodeGeneratorRequest::has_parameter() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void CodeGeneratorRequest::set_has_parameter() {
+void CodeGeneratorRequest::set_has_parameter() {
_has_bits_[0] |= 0x00000002u;
}
- void CodeGeneratorRequest::clear_has_parameter() {
+void CodeGeneratorRequest::clear_has_parameter() {
_has_bits_[0] &= ~0x00000002u;
}
- void CodeGeneratorRequest::clear_parameter() {
+void CodeGeneratorRequest::clear_parameter() {
parameter_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_parameter();
}
@@ -620,10 +623,10 @@ CodeGeneratorRequest::mutable_file_to_generate() {
}
// repeated .google.protobuf.FileDescriptorProto proto_file = 15;
- int CodeGeneratorRequest::proto_file_size() const {
+int CodeGeneratorRequest::proto_file_size() const {
return proto_file_.size();
}
- void CodeGeneratorRequest::clear_proto_file() {
+void CodeGeneratorRequest::clear_proto_file() {
proto_file_.Clear();
}
const ::google::protobuf::FileDescriptorProto& CodeGeneratorRequest::proto_file(int index) const {
@@ -660,7 +663,7 @@ const int CodeGeneratorResponse_File::kContentFieldNumber;
#endif // !_MSC_VER
CodeGeneratorResponse_File::CodeGeneratorResponse_File()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.compiler.CodeGeneratorResponse.File)
}
@@ -724,7 +727,7 @@ CodeGeneratorResponse_File* CodeGeneratorResponse_File::New(::google::protobuf::
}
void CodeGeneratorResponse_File::Clear() {
- if (_has_bits_[0 / 32] & 7) {
+ if (_has_bits_[0 / 32] & 7u) {
if (has_name()) {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -910,7 +913,7 @@ void CodeGeneratorResponse_File::SerializeWithCachedSizes(
int CodeGeneratorResponse_File::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 7) {
+ if (_has_bits_[0 / 32] & 7u) {
// optional string name = 1;
if (has_name()) {
total_size += 1 +
@@ -946,9 +949,9 @@ int CodeGeneratorResponse_File::ByteSize() const {
void CodeGeneratorResponse_File::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const CodeGeneratorResponse_File* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const CodeGeneratorResponse_File*>(
- &from);
+ const CodeGeneratorResponse_File* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const CodeGeneratorResponse_File>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -1024,7 +1027,7 @@ const int CodeGeneratorResponse::kFileFieldNumber;
#endif // !_MSC_VER
CodeGeneratorResponse::CodeGeneratorResponse()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.compiler.CodeGeneratorResponse)
}
@@ -1124,12 +1127,15 @@ bool CodeGeneratorResponse::MergePartialFromCodedStream(
case 15: {
if (tag == 122) {
parse_file:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_file:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_file()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(122)) goto parse_file;
+ if (input->ExpectTag(122)) goto parse_loop_file;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -1242,9 +1248,9 @@ int CodeGeneratorResponse::ByteSize() const {
void CodeGeneratorResponse::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const CodeGeneratorResponse* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const CodeGeneratorResponse*>(
- &from);
+ const CodeGeneratorResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const CodeGeneratorResponse>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -1307,16 +1313,16 @@ void CodeGeneratorResponse::InternalSwap(CodeGeneratorResponse* other) {
// CodeGeneratorResponse_File
// optional string name = 1;
- bool CodeGeneratorResponse_File::has_name() const {
+bool CodeGeneratorResponse_File::has_name() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void CodeGeneratorResponse_File::set_has_name() {
+void CodeGeneratorResponse_File::set_has_name() {
_has_bits_[0] |= 0x00000001u;
}
- void CodeGeneratorResponse_File::clear_has_name() {
+void CodeGeneratorResponse_File::clear_has_name() {
_has_bits_[0] &= ~0x00000001u;
}
- void CodeGeneratorResponse_File::clear_name() {
+void CodeGeneratorResponse_File::clear_name() {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_name();
}
@@ -1360,16 +1366,16 @@ void CodeGeneratorResponse::InternalSwap(CodeGeneratorResponse* other) {
}
// optional string insertion_point = 2;
- bool CodeGeneratorResponse_File::has_insertion_point() const {
+bool CodeGeneratorResponse_File::has_insertion_point() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void CodeGeneratorResponse_File::set_has_insertion_point() {
+void CodeGeneratorResponse_File::set_has_insertion_point() {
_has_bits_[0] |= 0x00000002u;
}
- void CodeGeneratorResponse_File::clear_has_insertion_point() {
+void CodeGeneratorResponse_File::clear_has_insertion_point() {
_has_bits_[0] &= ~0x00000002u;
}
- void CodeGeneratorResponse_File::clear_insertion_point() {
+void CodeGeneratorResponse_File::clear_insertion_point() {
insertion_point_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_insertion_point();
}
@@ -1413,16 +1419,16 @@ void CodeGeneratorResponse::InternalSwap(CodeGeneratorResponse* other) {
}
// optional string content = 15;
- bool CodeGeneratorResponse_File::has_content() const {
+bool CodeGeneratorResponse_File::has_content() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void CodeGeneratorResponse_File::set_has_content() {
+void CodeGeneratorResponse_File::set_has_content() {
_has_bits_[0] |= 0x00000004u;
}
- void CodeGeneratorResponse_File::clear_has_content() {
+void CodeGeneratorResponse_File::clear_has_content() {
_has_bits_[0] &= ~0x00000004u;
}
- void CodeGeneratorResponse_File::clear_content() {
+void CodeGeneratorResponse_File::clear_content() {
content_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_content();
}
@@ -1470,16 +1476,16 @@ void CodeGeneratorResponse::InternalSwap(CodeGeneratorResponse* other) {
// CodeGeneratorResponse
// optional string error = 1;
- bool CodeGeneratorResponse::has_error() const {
+bool CodeGeneratorResponse::has_error() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void CodeGeneratorResponse::set_has_error() {
+void CodeGeneratorResponse::set_has_error() {
_has_bits_[0] |= 0x00000001u;
}
- void CodeGeneratorResponse::clear_has_error() {
+void CodeGeneratorResponse::clear_has_error() {
_has_bits_[0] &= ~0x00000001u;
}
- void CodeGeneratorResponse::clear_error() {
+void CodeGeneratorResponse::clear_error() {
error_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_error();
}
@@ -1523,10 +1529,10 @@ void CodeGeneratorResponse::InternalSwap(CodeGeneratorResponse* other) {
}
// repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15;
- int CodeGeneratorResponse::file_size() const {
+int CodeGeneratorResponse::file_size() const {
return file_.size();
}
- void CodeGeneratorResponse::clear_file() {
+void CodeGeneratorResponse::clear_file() {
file_.Clear();
}
const ::google::protobuf::compiler::CodeGeneratorResponse_File& CodeGeneratorResponse::file(int index) const {
diff --git a/src/google/protobuf/compiler/plugin.pb.h b/src/google/protobuf/compiler/plugin.pb.h
index ea48b8b5..6fcaea2e 100644
--- a/src/google/protobuf/compiler/plugin.pb.h
+++ b/src/google/protobuf/compiler/plugin.pb.h
@@ -796,6 +796,10 @@ CodeGeneratorResponse::mutable_file() {
}
#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
// @@protoc_insertion_point(namespace_scope)
diff --git a/src/google/protobuf/compiler/ruby/ruby_generated_code.proto b/src/google/protobuf/compiler/ruby/ruby_generated_code.proto
new file mode 100644
index 00000000..42d82a6b
--- /dev/null
+++ b/src/google/protobuf/compiler/ruby/ruby_generated_code.proto
@@ -0,0 +1,67 @@
+syntax = "proto3";
+
+package A.B.C;
+
+message TestMessage {
+ int32 optional_int32 = 1;
+ int64 optional_int64 = 2;
+ uint32 optional_uint32 = 3;
+ uint64 optional_uint64 = 4;
+ bool optional_bool = 5;
+ double optional_double = 6;
+ float optional_float = 7;
+ string optional_string = 8;
+ bytes optional_bytes = 9;
+ TestEnum optional_enum = 10;
+ TestMessage optional_msg = 11;
+
+ repeated int32 repeated_int32 = 21;
+ repeated int64 repeated_int64 = 22;
+ repeated uint32 repeated_uint32 = 23;
+ repeated uint64 repeated_uint64 = 24;
+ repeated bool repeated_bool = 25;
+ repeated double repeated_double = 26;
+ repeated float repeated_float = 27;
+ repeated string repeated_string = 28;
+ repeated bytes repeated_bytes = 29;
+ repeated TestEnum repeated_enum = 30;
+ repeated TestMessage repeated_msg = 31;
+
+ oneof my_oneof {
+ int32 oneof_int32 = 41;
+ int64 oneof_int64 = 42;
+ uint32 oneof_uint32 = 43;
+ uint64 oneof_uint64 = 44;
+ bool oneof_bool = 45;
+ double oneof_double = 46;
+ float oneof_float = 47;
+ string oneof_string = 48;
+ bytes oneof_bytes = 49;
+ TestEnum oneof_enum = 50;
+ TestMessage oneof_msg = 51;
+ }
+
+ map<int32, string> map_int32_string = 61;
+ map<int64, string> map_int64_string = 62;
+ map<uint32, string> map_uint32_string = 63;
+ map<uint64, string> map_uint64_string = 64;
+ map<bool, string> map_bool_string = 65;
+ map<string, string> map_string_string = 66;
+ map<string, TestMessage> map_string_msg = 67;
+ map<string, TestEnum> map_string_enum = 68;
+ map<string, int32> map_string_int32 = 69;
+ map<string, bool> map_string_bool = 70;
+
+ message NestedMessage {
+ int32 foo = 1;
+ }
+
+ NestedMessage nested_message = 80;
+}
+
+enum TestEnum {
+ Default = 0;
+ A = 1;
+ B = 2;
+ C = 3;
+}
diff --git a/src/google/protobuf/compiler/ruby/ruby_generated_code.rb b/src/google/protobuf/compiler/ruby/ruby_generated_code.rb
new file mode 100644
index 00000000..100d6fa7
--- /dev/null
+++ b/src/google/protobuf/compiler/ruby/ruby_generated_code.rb
@@ -0,0 +1,74 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: ruby_generated_code.proto
+
+require 'google/protobuf'
+
+Google::Protobuf::DescriptorPool.generated_pool.build do
+ add_message "A.B.C.TestMessage" do
+ optional :optional_int32, :int32, 1
+ optional :optional_int64, :int64, 2
+ optional :optional_uint32, :uint32, 3
+ optional :optional_uint64, :uint64, 4
+ optional :optional_bool, :bool, 5
+ optional :optional_double, :double, 6
+ optional :optional_float, :float, 7
+ optional :optional_string, :string, 8
+ optional :optional_bytes, :string, 9
+ optional :optional_enum, :enum, 10, "A.B.C.TestEnum"
+ optional :optional_msg, :message, 11, "A.B.C.TestMessage"
+ repeated :repeated_int32, :int32, 21
+ repeated :repeated_int64, :int64, 22
+ repeated :repeated_uint32, :uint32, 23
+ repeated :repeated_uint64, :uint64, 24
+ repeated :repeated_bool, :bool, 25
+ repeated :repeated_double, :double, 26
+ repeated :repeated_float, :float, 27
+ repeated :repeated_string, :string, 28
+ repeated :repeated_bytes, :string, 29
+ repeated :repeated_enum, :enum, 30, "A.B.C.TestEnum"
+ repeated :repeated_msg, :message, 31, "A.B.C.TestMessage"
+ map :map_int32_string, :int32, :string, 61
+ map :map_int64_string, :int64, :string, 62
+ map :map_uint32_string, :uint32, :string, 63
+ map :map_uint64_string, :uint64, :string, 64
+ map :map_bool_string, :bool, :string, 65
+ map :map_string_string, :string, :string, 66
+ map :map_string_msg, :string, :message, 67, "A.B.C.TestMessage"
+ map :map_string_enum, :string, :enum, 68, "A.B.C.TestEnum"
+ map :map_string_int32, :string, :int32, 69
+ map :map_string_bool, :string, :bool, 70
+ optional :nested_message, :message, 80, "A.B.C.TestMessage.NestedMessage"
+ oneof :my_oneof do
+ optional :oneof_int32, :int32, 41
+ optional :oneof_int64, :int64, 42
+ optional :oneof_uint32, :uint32, 43
+ optional :oneof_uint64, :uint64, 44
+ optional :oneof_bool, :bool, 45
+ optional :oneof_double, :double, 46
+ optional :oneof_float, :float, 47
+ optional :oneof_string, :string, 48
+ optional :oneof_bytes, :string, 49
+ optional :oneof_enum, :enum, 50, "A.B.C.TestEnum"
+ optional :oneof_msg, :message, 51, "A.B.C.TestMessage"
+ end
+ end
+ add_message "A.B.C.TestMessage.NestedMessage" do
+ optional :foo, :int32, 1
+ end
+ add_enum "A.B.C.TestEnum" do
+ value :Default, 0
+ value :A, 1
+ value :B, 2
+ value :C, 3
+ end
+end
+
+module A
+ module B
+ module C
+ TestMessage = Google::Protobuf::DescriptorPool.generated_pool.lookup("A.B.C.TestMessage").msgclass
+ TestMessage::NestedMessage = Google::Protobuf::DescriptorPool.generated_pool.lookup("A.B.C.TestMessage.NestedMessage").msgclass
+ TestEnum = Google::Protobuf::DescriptorPool.generated_pool.lookup("A.B.C.TestEnum").enummodule
+ end
+ end
+end
diff --git a/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc b/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc
index e35ca695..6c203ab6 100644
--- a/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc
+++ b/src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc
@@ -45,10 +45,10 @@ namespace compiler {
namespace ruby {
namespace {
-string FindRubyTestDir() {
+string FindRubyTestDir(const string& file) {
// Inspired by TestSourceDir() in src/google/protobuf/testing/googletest.cc.
string prefix = ".";
- while (!File::Exists(prefix + "/ruby/tests")) {
+ while (!File::Exists(prefix + "/src/google/protobuf/compiler/ruby" + file)) {
if (!File::Exists(prefix)) {
GOOGLE_LOG(FATAL)
<< "Could not find Ruby test directory. Please run tests from "
@@ -56,7 +56,7 @@ string FindRubyTestDir() {
}
prefix += "/..";
}
- return prefix + "/ruby/tests";
+ return prefix + "/src/google/protobuf/compiler/ruby";
}
// This test is a simple golden-file test over the output of the Ruby code
@@ -67,7 +67,7 @@ string FindRubyTestDir() {
// extensions to the point where we can do this test in a more automated way.
TEST(RubyGeneratorTest, GeneratorTest) {
- string ruby_tests = FindRubyTestDir();
+ string ruby_tests = FindRubyTestDir("/ruby_generated_code.proto");
google::protobuf::compiler::CommandLineInterface cli;
cli.SetInputsAreProtoPathRelative(true);
@@ -78,11 +78,11 @@ TEST(RubyGeneratorTest, GeneratorTest) {
// Copy generated_code.proto to the temporary test directory.
string test_input;
GOOGLE_CHECK_OK(File::GetContents(
- ruby_tests + "/generated_code.proto",
+ ruby_tests + "/ruby_generated_code.proto",
&test_input,
true));
GOOGLE_CHECK_OK(File::SetContents(
- TestTempDir() + "/generated_code.proto",
+ TestTempDir() + "/ruby_generated_code.proto",
test_input,
true));
@@ -93,7 +93,7 @@ TEST(RubyGeneratorTest, GeneratorTest) {
"protoc",
ruby_out.c_str(),
proto_path.c_str(),
- "generated_code.proto",
+ "ruby_generated_code.proto",
};
EXPECT_EQ(0, cli.Run(4, argv));
@@ -101,12 +101,12 @@ TEST(RubyGeneratorTest, GeneratorTest) {
// Load the generated output and compare to the expected result.
string output;
GOOGLE_CHECK_OK(File::GetContents(
- TestTempDir() + "/generated_code.rb",
+ TestTempDir() + "/ruby_generated_code.rb",
&output,
true));
string expected_output;
GOOGLE_CHECK_OK(File::GetContents(
- ruby_tests + "/generated_code.rb",
+ ruby_tests + "/ruby_generated_code.rb",
&expected_output,
true));
EXPECT_EQ(expected_output, output);
diff --git a/src/google/protobuf/descriptor.cc b/src/google/protobuf/descriptor.cc
index bfdacd95..2855c377 100644
--- a/src/google/protobuf/descriptor.cc
+++ b/src/google/protobuf/descriptor.cc
@@ -1518,6 +1518,18 @@ Descriptor::FindExtensionRangeContainingNumber(int number) const {
return NULL;
}
+const Descriptor::ReservedRange*
+Descriptor::FindReservedRangeContainingNumber(int number) const {
+ // TODO(chrisn): Consider a non-linear search.
+ for (int i = 0; i < reserved_range_count(); i++) {
+ if (number >= reserved_range(i)->start &&
+ number < reserved_range(i)->end) {
+ return reserved_range(i);
+ }
+ }
+ return NULL;
+}
+
// -------------------------------------------------------------------
bool DescriptorPool::TryFindFileInFallbackDatabase(const string& name) const {
@@ -1741,6 +1753,14 @@ void Descriptor::CopyTo(DescriptorProto* proto) const {
for (int i = 0; i < extension_count(); i++) {
extension(i)->CopyTo(proto->add_extension());
}
+ for (int i = 0; i < reserved_range_count(); i++) {
+ DescriptorProto::ReservedRange* range = proto->add_reserved_range();
+ range->set_start(reserved_range(i)->start);
+ range->set_end(reserved_range(i)->end);
+ }
+ for (int i = 0; i < reserved_name_count(); i++) {
+ proto->add_reserved_name(reserved_name(i));
+ }
if (&options() != &MessageOptions::default_instance()) {
proto->mutable_options()->CopyFrom(options());
@@ -2186,6 +2206,29 @@ void Descriptor::DebugString(int depth, string *contents,
if (extension_count() > 0)
strings::SubstituteAndAppend(contents, "$0 }\n", prefix);
+ if (reserved_range_count() > 0) {
+ strings::SubstituteAndAppend(contents, "$0 reserved ", prefix);
+ for (int i = 0; i < reserved_range_count(); i++) {
+ const Descriptor::ReservedRange* range = reserved_range(i);
+ if (range->end == range->start + 1) {
+ strings::SubstituteAndAppend(contents, "$0, ", range->start);
+ } else {
+ strings::SubstituteAndAppend(contents, "$0 to $1, ",
+ range->start, range->end - 1);
+ }
+ }
+ contents->replace(contents->size() - 2, 2, ";\n");
+ }
+
+ if (reserved_name_count() > 0) {
+ strings::SubstituteAndAppend(contents, "$0 reserved ", prefix);
+ for (int i = 0; i < reserved_name_count(); i++) {
+ strings::SubstituteAndAppend(contents, "\"$0\", ",
+ CEscape(reserved_name(i)));
+ }
+ contents->replace(contents->size() - 2, 2, ";\n");
+ }
+
strings::SubstituteAndAppend(contents, "$0}\n", prefix);
comment_printer.AddPostComment(contents);
}
@@ -2278,8 +2321,12 @@ void FieldDescriptor::DebugString(int depth,
}
if (type() == TYPE_GROUP) {
- message_type()->DebugString(depth, contents, debug_string_options,
- /* include_opening_clause */ false);
+ if (debug_string_options.elide_group_body) {
+ contents->append(" { ... };\n");
+ } else {
+ message_type()->DebugString(depth, contents, debug_string_options,
+ /* include_opening_clause */ false);
+ }
} else {
contents->append(";\n");
}
@@ -2308,12 +2355,16 @@ void OneofDescriptor::DebugString(int depth, string* contents,
comment_printer(this, prefix, debug_string_options);
comment_printer.AddPreComment(contents);
strings::SubstituteAndAppend(
- contents, "$0 oneof $1 {\n", prefix, name());
- for (int i = 0; i < field_count(); i++) {
- field(i)->DebugString(depth, FieldDescriptor::OMIT_LABEL, contents,
- debug_string_options);
+ contents, "$0 oneof $1 {", prefix, name());
+ if (debug_string_options.elide_oneof_body) {
+ contents->append(" ... }\n");
+ } else {
+ for (int i = 0; i < field_count(); i++) {
+ field(i)->DebugString(depth, FieldDescriptor::OMIT_LABEL, contents,
+ debug_string_options);
+ }
+ strings::SubstituteAndAppend(contents, "$0}\n", prefix);
}
- strings::SubstituteAndAppend(contents, "$0}\n", prefix);
comment_printer.AddPostComment(contents);
}
@@ -2491,7 +2542,12 @@ bool FileDescriptor::GetSourceLocation(SourceLocation* out_location) const {
}
bool FieldDescriptor::is_packed() const {
- return is_packable() && (options_ != NULL) && options_->packed();
+ if (!is_packable()) return false;
+ if (file_->syntax() == FileDescriptor::SYNTAX_PROTO2) {
+ return (options_ != NULL) && options_->packed();
+ } else {
+ return options_ == NULL || !options_->has_packed() || options_->packed();
+ }
}
bool Descriptor::GetSourceLocation(SourceLocation* out_location) const {
@@ -2604,7 +2660,7 @@ void MethodDescriptor::GetLocationPath(vector<int>* output) const {
namespace {
// Represents an options message to interpret. Extension names in the option
-// name are respolved relative to name_scope. element_name and orig_opt are
+// name are resolved relative to name_scope. element_name and orig_opt are
// used only for error reporting (since the parser records locations against
// pointers in the original options, not the mutable copy). The Message must be
// one of the Options messages in descriptor.proto.
@@ -2830,6 +2886,9 @@ class DescriptorBuilder {
void BuildExtensionRange(const DescriptorProto::ExtensionRange& proto,
const Descriptor* parent,
Descriptor::ExtensionRange* result);
+ void BuildReservedRange(const DescriptorProto::ReservedRange& proto,
+ const Descriptor* parent,
+ Descriptor::ReservedRange* result);
void BuildOneof(const OneofDescriptorProto& proto,
Descriptor* parent,
OneofDescriptor* result);
@@ -3920,6 +3979,17 @@ void DescriptorBuilder::BuildMessage(const DescriptorProto& proto,
BUILD_ARRAY(proto, result, enum_type , BuildEnum , result);
BUILD_ARRAY(proto, result, extension_range, BuildExtensionRange, result);
BUILD_ARRAY(proto, result, extension , BuildExtension , result);
+ BUILD_ARRAY(proto, result, reserved_range , BuildReservedRange , result);
+
+ // Copy reserved names.
+ int reserved_name_count = proto.reserved_name_size();
+ result->reserved_name_count_ = reserved_name_count;
+ result->reserved_names_ =
+ tables_->AllocateArray<const string*>(reserved_name_count);
+ for (int i = 0; i < reserved_name_count; ++i) {
+ result->reserved_names_[i] =
+ tables_->AllocateString(proto.reserved_name(i));
+ }
// Copy options.
if (!proto.has_options()) {
@@ -3931,7 +4001,34 @@ void DescriptorBuilder::BuildMessage(const DescriptorProto& proto,
AddSymbol(result->full_name(), parent, result->name(),
proto, Symbol(result));
- // Check that no fields have numbers in extension ranges.
+ for (int i = 0; i < proto.reserved_range_size(); i++) {
+ const DescriptorProto_ReservedRange& range1 = proto.reserved_range(i);
+ for (int j = i + 1; j < proto.reserved_range_size(); j++) {
+ const DescriptorProto_ReservedRange& range2 = proto.reserved_range(j);
+ if (range1.end() > range2.start() && range2.end() > range1.start()) {
+ AddError(result->full_name(), proto.reserved_range(i),
+ DescriptorPool::ErrorCollector::NUMBER,
+ strings::Substitute("Reserved range $0 to $1 overlaps with "
+ "already-defined range $2 to $3.",
+ range2.start(), range2.end() - 1,
+ range1.start(), range1.end() - 1));
+ }
+ }
+ }
+
+ hash_set<string> reserved_name_set;
+ for (int i = 0; i < proto.reserved_name_size(); i++) {
+ const string& name = proto.reserved_name(i);
+ if (reserved_name_set.find(name) == reserved_name_set.end()) {
+ reserved_name_set.insert(name);
+ } else {
+ AddError(name, proto, DescriptorPool::ErrorCollector::NAME,
+ strings::Substitute(
+ "Field name \"$0\" is reserved multiple times.",
+ name));
+ }
+ }
+
for (int i = 0; i < result->field_count(); i++) {
const FieldDescriptor* field = result->field(i);
for (int j = 0; j < result->extension_range_count(); j++) {
@@ -3945,11 +4042,39 @@ void DescriptorBuilder::BuildMessage(const DescriptorProto& proto,
field->name(), field->number()));
}
}
+ for (int j = 0; j < result->reserved_range_count(); j++) {
+ const Descriptor::ReservedRange* range = result->reserved_range(j);
+ if (range->start <= field->number() && field->number() < range->end) {
+ AddError(field->full_name(), proto.reserved_range(j),
+ DescriptorPool::ErrorCollector::NUMBER,
+ strings::Substitute(
+ "Field \"$0\" uses reserved number $1.",
+ field->name(), field->number()));
+ }
+ }
+ if (reserved_name_set.find(field->name()) != reserved_name_set.end()) {
+ AddError(field->full_name(), proto.field(i),
+ DescriptorPool::ErrorCollector::NAME,
+ strings::Substitute(
+ "Field name \"$0\" is reserved.", field->name()));
+ }
}
- // Check that extension ranges don't overlap.
+ // Check that extension ranges don't overlap and don't include
+ // reserved field numbers.
for (int i = 0; i < result->extension_range_count(); i++) {
const Descriptor::ExtensionRange* range1 = result->extension_range(i);
+ for (int j = 0; j < result->reserved_range_count(); j++) {
+ const Descriptor::ReservedRange* range2 = result->reserved_range(j);
+ if (range1->end > range2->start && range2->end > range1->start) {
+ AddError(result->full_name(), proto.extension_range(j),
+ DescriptorPool::ErrorCollector::NUMBER,
+ strings::Substitute("Extension range $0 to $1 overlaps with "
+ "reserved range $2 to $3.",
+ range1->start, range1->end - 1,
+ range2->start, range2->end - 1));
+ }
+ }
for (int j = i + 1; j < result->extension_range_count(); j++) {
const Descriptor::ExtensionRange* range2 = result->extension_range(j);
if (range1->end > range2->start && range2->end > range1->start) {
@@ -4262,6 +4387,19 @@ void DescriptorBuilder::BuildExtensionRange(
}
}
+void DescriptorBuilder::BuildReservedRange(
+ const DescriptorProto::ReservedRange& proto,
+ const Descriptor* parent,
+ Descriptor::ReservedRange* result) {
+ result->start = proto.start();
+ result->end = proto.end();
+ if (result->start <= 0) {
+ AddError(parent->full_name(), proto,
+ DescriptorPool::ErrorCollector::NUMBER,
+ "Reserved numbers must be positive integers.");
+ }
+}
+
void DescriptorBuilder::BuildOneof(const OneofDescriptorProto& proto,
Descriptor* parent,
OneofDescriptor* result) {
@@ -4503,6 +4641,23 @@ void DescriptorBuilder::CrossLinkMessage(
for (int i = 0; i < message->field_count(); i++) {
const OneofDescriptor* oneof_decl = message->field(i)->containing_oneof();
if (oneof_decl != NULL) {
+ // Make sure fields belonging to the same oneof are defined consecutively.
+ // This enables optimizations in codegens and reflection libraries to
+ // skip fields in the oneof group, as only one of the field can be set.
+ // Note that field_count() returns how many fields in this oneof we have
+ // seen so far. field_count() > 0 guarantees that i > 0, so field(i-1) is
+ // safe.
+ if (oneof_decl->field_count() > 0 &&
+ message->field(i - 1)->containing_oneof() != oneof_decl) {
+ AddWarning(
+ message->full_name() + "." + message->field(i - 1)->name(),
+ proto.field(i - 1), DescriptorPool::ErrorCollector::OTHER,
+ strings::Substitute(
+ "Fields in the same oneof must be defined consecutively. "
+ "\"$0\" cannot be defined before the completion of the "
+ "\"$1\" oneof definition.",
+ message->field(i - 1)->name(), oneof_decl->name()));
+ }
// Must go through oneof_decls_ array to get a non-const version of the
// OneofDescriptor.
++message->oneof_decls_[oneof_decl->index()].field_count_;
@@ -4933,6 +5088,12 @@ void DescriptorBuilder::ValidateProto3Field(
field->containing_type()->full_name() +
"\" which is a proto3 message type.");
}
+ bool allow_groups = false;
+ if (field->type() == FieldDescriptor::TYPE_GROUP && !allow_groups) {
+ AddError(field->full_name(), proto,
+ DescriptorPool::ErrorCollector::TYPE,
+ "Groups are not supported in proto3 syntax.");
+ }
}
void DescriptorBuilder::ValidateProto3Enum(
diff --git a/src/google/protobuf/descriptor.h b/src/google/protobuf/descriptor.h
index c0a48cea..ca87d634 100644
--- a/src/google/protobuf/descriptor.h
+++ b/src/google/protobuf/descriptor.h
@@ -135,10 +135,14 @@ struct DebugStringOptions {
// example, the C++ code generation for fields in the proto compiler) rely on
// DebugString() output being unobstructed by user comments.
bool include_comments;
+ // If true, elide the braced body in the debug string.
+ bool elide_group_body;
+ bool elide_oneof_body;
DebugStringOptions()
- : include_comments(false)
- {}
+ : include_comments(false),
+ elide_group_body(false),
+ elide_oneof_body(false) {}
};
// Describes a type of protocol message, or a particular group within a
@@ -298,6 +302,36 @@ class LIBPROTOBUF_EXPORT Descriptor {
// this message type's scope.
const FieldDescriptor* FindExtensionByCamelcaseName(const string& name) const;
+ // Reserved fields -------------------------------------------------
+
+ // A range of reserved field numbers.
+ struct ReservedRange {
+ int start; // inclusive
+ int end; // exclusive
+ };
+
+ // The number of reserved ranges in this message type.
+ int reserved_range_count() const;
+ // Gets an reserved range by index, where 0 <= index <
+ // reserved_range_count(). These are returned in the order they were defined
+ // in the .proto file.
+ const ReservedRange* reserved_range(int index) const;
+
+ // Returns true if the number is in one of the reserved ranges.
+ bool IsReservedNumber(int number) const;
+
+ // Returns NULL if no reserved range contains the given number.
+ const ReservedRange* FindReservedRangeContainingNumber(int number) const;
+
+ // The number of reserved field names in this message type.
+ int reserved_name_count() const;
+
+ // Gets a reserved name by index, where 0 <= index < reserved_name_count().
+ const string& reserved_name(int index) const;
+
+ // Returns true if the field name is reserved.
+ bool IsReservedName(const string& name) const;
+
// Source Location ---------------------------------------------------
// Updates |*out_location| to the source location of the complete
@@ -343,6 +377,10 @@ class LIBPROTOBUF_EXPORT Descriptor {
ExtensionRange* extension_ranges_;
int extension_count_;
FieldDescriptor* extensions_;
+ int reserved_range_count_;
+ ReservedRange* reserved_ranges_;
+ int reserved_name_count_;
+ const string** reserved_names_;
// IMPORTANT: If you add a new field, make sure to search for all instances
// of Allocate<Descriptor>() and AllocateArray<Descriptor>() in descriptor.cc
// and update them to initialize the field.
@@ -1567,6 +1605,12 @@ PROTOBUF_DEFINE_ARRAY_ACCESSOR(Descriptor, extension_range,
const Descriptor::ExtensionRange*)
PROTOBUF_DEFINE_ARRAY_ACCESSOR(Descriptor, extension,
const FieldDescriptor*)
+
+PROTOBUF_DEFINE_ACCESSOR(Descriptor, reserved_range_count, int)
+PROTOBUF_DEFINE_ARRAY_ACCESSOR(Descriptor, reserved_range,
+ const Descriptor::ReservedRange*)
+PROTOBUF_DEFINE_ACCESSOR(Descriptor, reserved_name_count, int)
+
PROTOBUF_DEFINE_OPTIONS_ACCESSOR(Descriptor, MessageOptions);
PROTOBUF_DEFINE_ACCESSOR(Descriptor, is_placeholder, bool)
@@ -1667,6 +1711,25 @@ inline bool Descriptor::IsExtensionNumber(int number) const {
return FindExtensionRangeContainingNumber(number) != NULL;
}
+inline bool Descriptor::IsReservedNumber(int number) const {
+ return FindReservedRangeContainingNumber(number) != NULL;
+}
+
+inline bool Descriptor::IsReservedName(const string& name) const {
+ for (int i = 0; i < reserved_name_count(); i++) {
+ if (name == reserved_name(i)) {
+ return true;
+ }
+ }
+ return false;
+}
+
+// Can't use PROTOBUF_DEFINE_ARRAY_ACCESSOR because reserved_names_ is actually
+// an array of pointers rather than the usual array of objects.
+inline const string& Descriptor::reserved_name(int index) const {
+ return *reserved_names_[index];
+}
+
inline bool FieldDescriptor::is_required() const {
return label() == LABEL_REQUIRED;
}
diff --git a/src/google/protobuf/descriptor.pb.cc b/src/google/protobuf/descriptor.pb.cc
index c201136e..fc13d8dc 100644
--- a/src/google/protobuf/descriptor.pb.cc
+++ b/src/google/protobuf/descriptor.pb.cc
@@ -33,6 +33,9 @@ const ::google::protobuf::internal::GeneratedMessageReflection*
const ::google::protobuf::Descriptor* DescriptorProto_ExtensionRange_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
DescriptorProto_ExtensionRange_reflection_ = NULL;
+const ::google::protobuf::Descriptor* DescriptorProto_ReservedRange_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ DescriptorProto_ReservedRange_reflection_ = NULL;
const ::google::protobuf::Descriptor* FieldDescriptorProto_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
FieldDescriptorProto_reflection_ = NULL;
@@ -64,6 +67,7 @@ const ::google::protobuf::Descriptor* FieldOptions_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
FieldOptions_reflection_ = NULL;
const ::google::protobuf::EnumDescriptor* FieldOptions_CType_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* FieldOptions_JSType_descriptor_ = NULL;
const ::google::protobuf::Descriptor* EnumOptions_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
EnumOptions_reflection_ = NULL;
@@ -140,7 +144,7 @@ void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto() {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileDescriptorProto, _internal_metadata_),
-1);
DescriptorProto_descriptor_ = file->message_type(2);
- static const int DescriptorProto_offsets_[8] = {
+ static const int DescriptorProto_offsets_[10] = {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, name_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, field_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, extension_),
@@ -149,6 +153,8 @@ void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto() {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, extension_range_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, oneof_decl_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, options_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, reserved_range_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto, reserved_name_),
};
DescriptorProto_reflection_ =
::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
@@ -177,6 +183,22 @@ void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto() {
sizeof(DescriptorProto_ExtensionRange),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto_ExtensionRange, _internal_metadata_),
-1);
+ DescriptorProto_ReservedRange_descriptor_ = DescriptorProto_descriptor_->nested_type(1);
+ static const int DescriptorProto_ReservedRange_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto_ReservedRange, start_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto_ReservedRange, end_),
+ };
+ DescriptorProto_ReservedRange_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ DescriptorProto_ReservedRange_descriptor_,
+ DescriptorProto_ReservedRange::default_instance_,
+ DescriptorProto_ReservedRange_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto_ReservedRange, _has_bits_[0]),
+ -1,
+ -1,
+ sizeof(DescriptorProto_ReservedRange),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DescriptorProto_ReservedRange, _internal_metadata_),
+ -1);
FieldDescriptorProto_descriptor_ = file->message_type(3);
static const int FieldDescriptorProto_offsets_[9] = {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldDescriptorProto, name_),
@@ -289,7 +311,7 @@ void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto() {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MethodDescriptorProto, _internal_metadata_),
-1);
FileOptions_descriptor_ = file->message_type(9);
- static const int FileOptions_offsets_[14] = {
+ static const int FileOptions_offsets_[15] = {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_package_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_outer_classname_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, java_multiple_files_),
@@ -303,6 +325,7 @@ void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto() {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, deprecated_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, cc_enable_arenas_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, objc_class_prefix_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, csharp_namespace_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions, uninterpreted_option_),
};
FileOptions_reflection_ =
@@ -337,9 +360,10 @@ void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto() {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageOptions, _internal_metadata_),
-1);
FieldOptions_descriptor_ = file->message_type(11);
- static const int FieldOptions_offsets_[6] = {
+ static const int FieldOptions_offsets_[7] = {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, ctype_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, packed_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, jstype_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, lazy_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, deprecated_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, weak_),
@@ -357,6 +381,7 @@ void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto() {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldOptions, _internal_metadata_),
-1);
FieldOptions_CType_descriptor_ = FieldOptions_descriptor_->enum_type(0);
+ FieldOptions_JSType_descriptor_ = FieldOptions_descriptor_->enum_type(1);
EnumOptions_descriptor_ = file->message_type(12);
static const int EnumOptions_offsets_[3] = {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumOptions, allow_alias_),
@@ -514,6 +539,8 @@ void protobuf_RegisterTypes(const ::std::string&) {
::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
DescriptorProto_ExtensionRange_descriptor_, &DescriptorProto_ExtensionRange::default_instance());
::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ DescriptorProto_ReservedRange_descriptor_, &DescriptorProto_ReservedRange::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
FieldDescriptorProto_descriptor_, &FieldDescriptorProto::default_instance());
::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
OneofDescriptorProto_descriptor_, &OneofDescriptorProto::default_instance());
@@ -560,6 +587,8 @@ void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto() {
delete DescriptorProto_reflection_;
delete DescriptorProto_ExtensionRange::default_instance_;
delete DescriptorProto_ExtensionRange_reflection_;
+ delete DescriptorProto_ReservedRange::default_instance_;
+ delete DescriptorProto_ReservedRange_reflection_;
delete FieldDescriptorProto::default_instance_;
delete FieldDescriptorProto_reflection_;
delete OneofDescriptorProto::default_instance_;
@@ -618,7 +647,7 @@ void protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto() {
"\022-\n\007options\030\010 \001(\0132\034.google.protobuf.File"
"Options\0229\n\020source_code_info\030\t \001(\0132\037.goog"
"le.protobuf.SourceCodeInfo\022\016\n\006syntax\030\014 \001"
- "(\t\"\344\003\n\017DescriptorProto\022\014\n\004name\030\001 \001(\t\0224\n\005"
+ "(\t\"\360\004\n\017DescriptorProto\022\014\n\004name\030\001 \001(\t\0224\n\005"
"field\030\002 \003(\0132%.google.protobuf.FieldDescr"
"iptorProto\0228\n\textension\030\006 \003(\0132%.google.p"
"rotobuf.FieldDescriptorProto\0225\n\013nested_t"
@@ -629,102 +658,111 @@ void protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto() {
"ExtensionRange\0229\n\noneof_decl\030\010 \003(\0132%.goo"
"gle.protobuf.OneofDescriptorProto\0220\n\007opt"
"ions\030\007 \001(\0132\037.google.protobuf.MessageOpti"
- "ons\032,\n\016ExtensionRange\022\r\n\005start\030\001 \001(\005\022\013\n\003"
- "end\030\002 \001(\005\"\251\005\n\024FieldDescriptorProto\022\014\n\004na"
- "me\030\001 \001(\t\022\016\n\006number\030\003 \001(\005\022:\n\005label\030\004 \001(\0162"
- "+.google.protobuf.FieldDescriptorProto.L"
- "abel\0228\n\004type\030\005 \001(\0162*.google.protobuf.Fie"
- "ldDescriptorProto.Type\022\021\n\ttype_name\030\006 \001("
- "\t\022\020\n\010extendee\030\002 \001(\t\022\025\n\rdefault_value\030\007 \001"
- "(\t\022\023\n\013oneof_index\030\t \001(\005\022.\n\007options\030\010 \001(\013"
- "2\035.google.protobuf.FieldOptions\"\266\002\n\004Type"
- "\022\017\n\013TYPE_DOUBLE\020\001\022\016\n\nTYPE_FLOAT\020\002\022\016\n\nTYP"
- "E_INT64\020\003\022\017\n\013TYPE_UINT64\020\004\022\016\n\nTYPE_INT32"
- "\020\005\022\020\n\014TYPE_FIXED64\020\006\022\020\n\014TYPE_FIXED32\020\007\022\r"
- "\n\tTYPE_BOOL\020\010\022\017\n\013TYPE_STRING\020\t\022\016\n\nTYPE_G"
- "ROUP\020\n\022\020\n\014TYPE_MESSAGE\020\013\022\016\n\nTYPE_BYTES\020\014"
- "\022\017\n\013TYPE_UINT32\020\r\022\r\n\tTYPE_ENUM\020\016\022\021\n\rTYPE"
- "_SFIXED32\020\017\022\021\n\rTYPE_SFIXED64\020\020\022\017\n\013TYPE_S"
- "INT32\020\021\022\017\n\013TYPE_SINT64\020\022\"C\n\005Label\022\022\n\016LAB"
- "EL_OPTIONAL\020\001\022\022\n\016LABEL_REQUIRED\020\002\022\022\n\016LAB"
- "EL_REPEATED\020\003\"$\n\024OneofDescriptorProto\022\014\n"
- "\004name\030\001 \001(\t\"\214\001\n\023EnumDescriptorProto\022\014\n\004n"
- "ame\030\001 \001(\t\0228\n\005value\030\002 \003(\0132).google.protob"
- "uf.EnumValueDescriptorProto\022-\n\007options\030\003"
- " \001(\0132\034.google.protobuf.EnumOptions\"l\n\030En"
- "umValueDescriptorProto\022\014\n\004name\030\001 \001(\t\022\016\n\006"
- "number\030\002 \001(\005\0222\n\007options\030\003 \001(\0132!.google.p"
- "rotobuf.EnumValueOptions\"\220\001\n\026ServiceDesc"
- "riptorProto\022\014\n\004name\030\001 \001(\t\0226\n\006method\030\002 \003("
- "\0132&.google.protobuf.MethodDescriptorProt"
- "o\0220\n\007options\030\003 \001(\0132\037.google.protobuf.Ser"
- "viceOptions\"\301\001\n\025MethodDescriptorProto\022\014\n"
- "\004name\030\001 \001(\t\022\022\n\ninput_type\030\002 \001(\t\022\023\n\013outpu"
- "t_type\030\003 \001(\t\022/\n\007options\030\004 \001(\0132\036.google.p"
- "rotobuf.MethodOptions\022\037\n\020client_streamin"
- "g\030\005 \001(\010:\005false\022\037\n\020server_streaming\030\006 \001(\010"
- ":\005false\"\347\004\n\013FileOptions\022\024\n\014java_package\030"
- "\001 \001(\t\022\034\n\024java_outer_classname\030\010 \001(\t\022\"\n\023j"
- "ava_multiple_files\030\n \001(\010:\005false\022,\n\035java_"
- "generate_equals_and_hash\030\024 \001(\010:\005false\022%\n"
- "\026java_string_check_utf8\030\033 \001(\010:\005false\022F\n\014"
- "optimize_for\030\t \001(\0162).google.protobuf.Fil"
- "eOptions.OptimizeMode:\005SPEED\022\022\n\ngo_packa"
- "ge\030\013 \001(\t\022\"\n\023cc_generic_services\030\020 \001(\010:\005f"
- "alse\022$\n\025java_generic_services\030\021 \001(\010:\005fal"
- "se\022\"\n\023py_generic_services\030\022 \001(\010:\005false\022\031"
- "\n\ndeprecated\030\027 \001(\010:\005false\022\037\n\020cc_enable_a"
- "renas\030\037 \001(\010:\005false\022\031\n\021objc_class_prefix\030"
- "$ \001(\t\022C\n\024uninterpreted_option\030\347\007 \003(\0132$.g"
- "oogle.protobuf.UninterpretedOption\":\n\014Op"
- "timizeMode\022\t\n\005SPEED\020\001\022\r\n\tCODE_SIZE\020\002\022\020\n\014"
- "LITE_RUNTIME\020\003*\t\010\350\007\020\200\200\200\200\002\"\346\001\n\016MessageOpt"
- "ions\022&\n\027message_set_wire_format\030\001 \001(\010:\005f"
- "alse\022.\n\037no_standard_descriptor_accessor\030"
- "\002 \001(\010:\005false\022\031\n\ndeprecated\030\003 \001(\010:\005false\022"
- "\021\n\tmap_entry\030\007 \001(\010\022C\n\024uninterpreted_opti"
- "on\030\347\007 \003(\0132$.google.protobuf.Uninterprete"
- "dOption*\t\010\350\007\020\200\200\200\200\002\"\240\002\n\014FieldOptions\022:\n\005c"
- "type\030\001 \001(\0162#.google.protobuf.FieldOption"
- "s.CType:\006STRING\022\016\n\006packed\030\002 \001(\010\022\023\n\004lazy\030"
- "\005 \001(\010:\005false\022\031\n\ndeprecated\030\003 \001(\010:\005false\022"
- "\023\n\004weak\030\n \001(\010:\005false\022C\n\024uninterpreted_op"
- "tion\030\347\007 \003(\0132$.google.protobuf.Uninterpre"
- "tedOption\"/\n\005CType\022\n\n\006STRING\020\000\022\010\n\004CORD\020\001"
- "\022\020\n\014STRING_PIECE\020\002*\t\010\350\007\020\200\200\200\200\002\"\215\001\n\013EnumOp"
- "tions\022\023\n\013allow_alias\030\002 \001(\010\022\031\n\ndeprecated"
- "\030\003 \001(\010:\005false\022C\n\024uninterpreted_option\030\347\007"
- " \003(\0132$.google.protobuf.UninterpretedOpti"
- "on*\t\010\350\007\020\200\200\200\200\002\"}\n\020EnumValueOptions\022\031\n\ndep"
- "recated\030\001 \001(\010:\005false\022C\n\024uninterpreted_op"
- "tion\030\347\007 \003(\0132$.google.protobuf.Uninterpre"
- "tedOption*\t\010\350\007\020\200\200\200\200\002\"{\n\016ServiceOptions\022\031"
- "\n\ndeprecated\030! \001(\010:\005false\022C\n\024uninterpret"
- "ed_option\030\347\007 \003(\0132$.google.protobuf.Unint"
- "erpretedOption*\t\010\350\007\020\200\200\200\200\002\"z\n\rMethodOptio"
- "ns\022\031\n\ndeprecated\030! \001(\010:\005false\022C\n\024uninter"
- "preted_option\030\347\007 \003(\0132$.google.protobuf.U"
- "ninterpretedOption*\t\010\350\007\020\200\200\200\200\002\"\236\002\n\023Uninte"
- "rpretedOption\022;\n\004name\030\002 \003(\0132-.google.pro"
- "tobuf.UninterpretedOption.NamePart\022\030\n\020id"
- "entifier_value\030\003 \001(\t\022\032\n\022positive_int_val"
- "ue\030\004 \001(\004\022\032\n\022negative_int_value\030\005 \001(\003\022\024\n\014"
- "double_value\030\006 \001(\001\022\024\n\014string_value\030\007 \001(\014"
- "\022\027\n\017aggregate_value\030\010 \001(\t\0323\n\010NamePart\022\021\n"
- "\tname_part\030\001 \002(\t\022\024\n\014is_extension\030\002 \002(\010\"\325"
- "\001\n\016SourceCodeInfo\022:\n\010location\030\001 \003(\0132(.go"
- "ogle.protobuf.SourceCodeInfo.Location\032\206\001"
- "\n\010Location\022\020\n\004path\030\001 \003(\005B\002\020\001\022\020\n\004span\030\002 \003"
- "(\005B\002\020\001\022\030\n\020leading_comments\030\003 \001(\t\022\031\n\021trai"
- "ling_comments\030\004 \001(\t\022!\n\031leading_detached_"
- "comments\030\006 \003(\tB/\n\023com.google.protobufB\020D"
- "escriptorProtosH\001\242\002\003GPB", 4623);
+ "ons\022F\n\016reserved_range\030\t \003(\0132..google.pro"
+ "tobuf.DescriptorProto.ReservedRange\022\025\n\rr"
+ "eserved_name\030\n \003(\t\032,\n\016ExtensionRange\022\r\n\005"
+ "start\030\001 \001(\005\022\013\n\003end\030\002 \001(\005\032+\n\rReservedRang"
+ "e\022\r\n\005start\030\001 \001(\005\022\013\n\003end\030\002 \001(\005\"\251\005\n\024FieldD"
+ "escriptorProto\022\014\n\004name\030\001 \001(\t\022\016\n\006number\030\003"
+ " \001(\005\022:\n\005label\030\004 \001(\0162+.google.protobuf.Fi"
+ "eldDescriptorProto.Label\0228\n\004type\030\005 \001(\0162*"
+ ".google.protobuf.FieldDescriptorProto.Ty"
+ "pe\022\021\n\ttype_name\030\006 \001(\t\022\020\n\010extendee\030\002 \001(\t\022"
+ "\025\n\rdefault_value\030\007 \001(\t\022\023\n\013oneof_index\030\t "
+ "\001(\005\022.\n\007options\030\010 \001(\0132\035.google.protobuf.F"
+ "ieldOptions\"\266\002\n\004Type\022\017\n\013TYPE_DOUBLE\020\001\022\016\n"
+ "\nTYPE_FLOAT\020\002\022\016\n\nTYPE_INT64\020\003\022\017\n\013TYPE_UI"
+ "NT64\020\004\022\016\n\nTYPE_INT32\020\005\022\020\n\014TYPE_FIXED64\020\006"
+ "\022\020\n\014TYPE_FIXED32\020\007\022\r\n\tTYPE_BOOL\020\010\022\017\n\013TYP"
+ "E_STRING\020\t\022\016\n\nTYPE_GROUP\020\n\022\020\n\014TYPE_MESSA"
+ "GE\020\013\022\016\n\nTYPE_BYTES\020\014\022\017\n\013TYPE_UINT32\020\r\022\r\n"
+ "\tTYPE_ENUM\020\016\022\021\n\rTYPE_SFIXED32\020\017\022\021\n\rTYPE_"
+ "SFIXED64\020\020\022\017\n\013TYPE_SINT32\020\021\022\017\n\013TYPE_SINT"
+ "64\020\022\"C\n\005Label\022\022\n\016LABEL_OPTIONAL\020\001\022\022\n\016LAB"
+ "EL_REQUIRED\020\002\022\022\n\016LABEL_REPEATED\020\003\"$\n\024One"
+ "ofDescriptorProto\022\014\n\004name\030\001 \001(\t\"\214\001\n\023Enum"
+ "DescriptorProto\022\014\n\004name\030\001 \001(\t\0228\n\005value\030\002"
+ " \003(\0132).google.protobuf.EnumValueDescript"
+ "orProto\022-\n\007options\030\003 \001(\0132\034.google.protob"
+ "uf.EnumOptions\"l\n\030EnumValueDescriptorPro"
+ "to\022\014\n\004name\030\001 \001(\t\022\016\n\006number\030\002 \001(\005\0222\n\007opti"
+ "ons\030\003 \001(\0132!.google.protobuf.EnumValueOpt"
+ "ions\"\220\001\n\026ServiceDescriptorProto\022\014\n\004name\030"
+ "\001 \001(\t\0226\n\006method\030\002 \003(\0132&.google.protobuf."
+ "MethodDescriptorProto\0220\n\007options\030\003 \001(\0132\037"
+ ".google.protobuf.ServiceOptions\"\301\001\n\025Meth"
+ "odDescriptorProto\022\014\n\004name\030\001 \001(\t\022\022\n\ninput"
+ "_type\030\002 \001(\t\022\023\n\013output_type\030\003 \001(\t\022/\n\007opti"
+ "ons\030\004 \001(\0132\036.google.protobuf.MethodOption"
+ "s\022\037\n\020client_streaming\030\005 \001(\010:\005false\022\037\n\020se"
+ "rver_streaming\030\006 \001(\010:\005false\"\201\005\n\013FileOpti"
+ "ons\022\024\n\014java_package\030\001 \001(\t\022\034\n\024java_outer_"
+ "classname\030\010 \001(\t\022\"\n\023java_multiple_files\030\n"
+ " \001(\010:\005false\022,\n\035java_generate_equals_and_"
+ "hash\030\024 \001(\010:\005false\022%\n\026java_string_check_u"
+ "tf8\030\033 \001(\010:\005false\022F\n\014optimize_for\030\t \001(\0162)"
+ ".google.protobuf.FileOptions.OptimizeMod"
+ "e:\005SPEED\022\022\n\ngo_package\030\013 \001(\t\022\"\n\023cc_gener"
+ "ic_services\030\020 \001(\010:\005false\022$\n\025java_generic"
+ "_services\030\021 \001(\010:\005false\022\"\n\023py_generic_ser"
+ "vices\030\022 \001(\010:\005false\022\031\n\ndeprecated\030\027 \001(\010:\005"
+ "false\022\037\n\020cc_enable_arenas\030\037 \001(\010:\005false\022\031"
+ "\n\021objc_class_prefix\030$ \001(\t\022\030\n\020csharp_name"
+ "space\030% \001(\t\022C\n\024uninterpreted_option\030\347\007 \003"
+ "(\0132$.google.protobuf.UninterpretedOption"
+ "\":\n\014OptimizeMode\022\t\n\005SPEED\020\001\022\r\n\tCODE_SIZE"
+ "\020\002\022\020\n\014LITE_RUNTIME\020\003*\t\010\350\007\020\200\200\200\200\002\"\346\001\n\016Mess"
+ "ageOptions\022&\n\027message_set_wire_format\030\001 "
+ "\001(\010:\005false\022.\n\037no_standard_descriptor_acc"
+ "essor\030\002 \001(\010:\005false\022\031\n\ndeprecated\030\003 \001(\010:\005"
+ "false\022\021\n\tmap_entry\030\007 \001(\010\022C\n\024uninterprete"
+ "d_option\030\347\007 \003(\0132$.google.protobuf.Uninte"
+ "rpretedOption*\t\010\350\007\020\200\200\200\200\002\"\230\003\n\014FieldOption"
+ "s\022:\n\005ctype\030\001 \001(\0162#.google.protobuf.Field"
+ "Options.CType:\006STRING\022\016\n\006packed\030\002 \001(\010\022\?\n"
+ "\006jstype\030\006 \001(\0162$.google.protobuf.FieldOpt"
+ "ions.JSType:\tJS_NORMAL\022\023\n\004lazy\030\005 \001(\010:\005fa"
+ "lse\022\031\n\ndeprecated\030\003 \001(\010:\005false\022\023\n\004weak\030\n"
+ " \001(\010:\005false\022C\n\024uninterpreted_option\030\347\007 \003"
+ "(\0132$.google.protobuf.UninterpretedOption"
+ "\"/\n\005CType\022\n\n\006STRING\020\000\022\010\n\004CORD\020\001\022\020\n\014STRIN"
+ "G_PIECE\020\002\"5\n\006JSType\022\r\n\tJS_NORMAL\020\000\022\r\n\tJS"
+ "_STRING\020\001\022\r\n\tJS_NUMBER\020\002*\t\010\350\007\020\200\200\200\200\002\"\215\001\n\013"
+ "EnumOptions\022\023\n\013allow_alias\030\002 \001(\010\022\031\n\ndepr"
+ "ecated\030\003 \001(\010:\005false\022C\n\024uninterpreted_opt"
+ "ion\030\347\007 \003(\0132$.google.protobuf.Uninterpret"
+ "edOption*\t\010\350\007\020\200\200\200\200\002\"}\n\020EnumValueOptions\022"
+ "\031\n\ndeprecated\030\001 \001(\010:\005false\022C\n\024uninterpre"
+ "ted_option\030\347\007 \003(\0132$.google.protobuf.Unin"
+ "terpretedOption*\t\010\350\007\020\200\200\200\200\002\"{\n\016ServiceOpt"
+ "ions\022\031\n\ndeprecated\030! \001(\010:\005false\022C\n\024unint"
+ "erpreted_option\030\347\007 \003(\0132$.google.protobuf"
+ ".UninterpretedOption*\t\010\350\007\020\200\200\200\200\002\"z\n\rMetho"
+ "dOptions\022\031\n\ndeprecated\030! \001(\010:\005false\022C\n\024u"
+ "ninterpreted_option\030\347\007 \003(\0132$.google.prot"
+ "obuf.UninterpretedOption*\t\010\350\007\020\200\200\200\200\002\"\236\002\n\023"
+ "UninterpretedOption\022;\n\004name\030\002 \003(\0132-.goog"
+ "le.protobuf.UninterpretedOption.NamePart"
+ "\022\030\n\020identifier_value\030\003 \001(\t\022\032\n\022positive_i"
+ "nt_value\030\004 \001(\004\022\032\n\022negative_int_value\030\005 \001"
+ "(\003\022\024\n\014double_value\030\006 \001(\001\022\024\n\014string_value"
+ "\030\007 \001(\014\022\027\n\017aggregate_value\030\010 \001(\t\0323\n\010NameP"
+ "art\022\021\n\tname_part\030\001 \002(\t\022\024\n\014is_extension\030\002"
+ " \002(\010\"\325\001\n\016SourceCodeInfo\022:\n\010location\030\001 \003("
+ "\0132(.google.protobuf.SourceCodeInfo.Locat"
+ "ion\032\206\001\n\010Location\022\020\n\004path\030\001 \003(\005B\002\020\001\022\020\n\004sp"
+ "an\030\002 \003(\005B\002\020\001\022\030\n\020leading_comments\030\003 \001(\t\022\031"
+ "\n\021trailing_comments\030\004 \001(\t\022!\n\031leading_det"
+ "ached_comments\030\006 \003(\tBY\n\023com.google.proto"
+ "bufB\020DescriptorProtosH\001\242\002\003GPB\252\002\'Google.P"
+ "rotocolBuffers.DescriptorProtos", 4951);
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
"google/protobuf/descriptor.proto", &protobuf_RegisterTypes);
FileDescriptorSet::default_instance_ = new FileDescriptorSet();
FileDescriptorProto::default_instance_ = new FileDescriptorProto();
DescriptorProto::default_instance_ = new DescriptorProto();
DescriptorProto_ExtensionRange::default_instance_ = new DescriptorProto_ExtensionRange();
+ DescriptorProto_ReservedRange::default_instance_ = new DescriptorProto_ReservedRange();
FieldDescriptorProto::default_instance_ = new FieldDescriptorProto();
OneofDescriptorProto::default_instance_ = new OneofDescriptorProto();
EnumDescriptorProto::default_instance_ = new EnumDescriptorProto();
@@ -746,6 +784,7 @@ void protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto() {
FileDescriptorProto::default_instance_->InitAsDefaultInstance();
DescriptorProto::default_instance_->InitAsDefaultInstance();
DescriptorProto_ExtensionRange::default_instance_->InitAsDefaultInstance();
+ DescriptorProto_ReservedRange::default_instance_->InitAsDefaultInstance();
FieldDescriptorProto::default_instance_->InitAsDefaultInstance();
OneofDescriptorProto::default_instance_->InitAsDefaultInstance();
EnumDescriptorProto::default_instance_->InitAsDefaultInstance();
@@ -790,7 +829,7 @@ const int FileDescriptorSet::kFileFieldNumber;
#endif // !_MSC_VER
FileDescriptorSet::FileDescriptorSet()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.FileDescriptorSet)
}
@@ -867,13 +906,15 @@ bool FileDescriptorSet::MergePartialFromCodedStream(
// repeated .google.protobuf.FileDescriptorProto file = 1;
case 1: {
if (tag == 10) {
- parse_file:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_file:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_file()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(10)) goto parse_file;
+ if (input->ExpectTag(10)) goto parse_loop_file;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -958,9 +999,9 @@ int FileDescriptorSet::ByteSize() const {
void FileDescriptorSet::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const FileDescriptorSet* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const FileDescriptorSet*>(
- &from);
+ const FileDescriptorSet* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const FileDescriptorSet>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -1017,10 +1058,10 @@ void FileDescriptorSet::InternalSwap(FileDescriptorSet* other) {
// FileDescriptorSet
// repeated .google.protobuf.FileDescriptorProto file = 1;
- int FileDescriptorSet::file_size() const {
+int FileDescriptorSet::file_size() const {
return file_.size();
}
- void FileDescriptorSet::clear_file() {
+void FileDescriptorSet::clear_file() {
file_.Clear();
}
const ::google::protobuf::FileDescriptorProto& FileDescriptorSet::file(int index) const {
@@ -1066,7 +1107,7 @@ const int FileDescriptorProto::kSyntaxFieldNumber;
#endif // !_MSC_VER
FileDescriptorProto::FileDescriptorProto()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.FileDescriptorProto)
}
@@ -1136,7 +1177,7 @@ FileDescriptorProto* FileDescriptorProto::New(::google::protobuf::Arena* arena)
}
void FileDescriptorProto::Clear() {
- if (_has_bits_[0 / 32] & 3) {
+ if (_has_bits_[0 / 32] & 3u) {
if (has_name()) {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -1144,7 +1185,7 @@ void FileDescriptorProto::Clear() {
package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
}
- if (_has_bits_[8 / 32] & 3584) {
+ if (_has_bits_[8 / 32] & 3584u) {
if (has_options()) {
if (options_ != NULL) options_->::google::protobuf::FileOptions::Clear();
}
@@ -1234,54 +1275,63 @@ bool FileDescriptorProto::MergePartialFromCodedStream(
case 4: {
if (tag == 34) {
parse_message_type:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_message_type:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_message_type()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(34)) goto parse_message_type;
- if (input->ExpectTag(42)) goto parse_enum_type;
+ if (input->ExpectTag(34)) goto parse_loop_message_type;
+ if (input->ExpectTag(42)) goto parse_loop_enum_type;
+ input->UnsafeDecrementRecursionDepth();
break;
}
// repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
case 5: {
if (tag == 42) {
- parse_enum_type:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_enum_type:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_enum_type()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(42)) goto parse_enum_type;
- if (input->ExpectTag(50)) goto parse_service;
+ if (input->ExpectTag(42)) goto parse_loop_enum_type;
+ if (input->ExpectTag(50)) goto parse_loop_service;
+ input->UnsafeDecrementRecursionDepth();
break;
}
// repeated .google.protobuf.ServiceDescriptorProto service = 6;
case 6: {
if (tag == 50) {
- parse_service:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_service:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_service()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(50)) goto parse_service;
- if (input->ExpectTag(58)) goto parse_extension;
+ if (input->ExpectTag(50)) goto parse_loop_service;
+ if (input->ExpectTag(58)) goto parse_loop_extension;
+ input->UnsafeDecrementRecursionDepth();
break;
}
// repeated .google.protobuf.FieldDescriptorProto extension = 7;
case 7: {
if (tag == 58) {
- parse_extension:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_extension:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_extension()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(58)) goto parse_extension;
+ if (input->ExpectTag(58)) goto parse_loop_extension;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectTag(66)) goto parse_options;
break;
}
@@ -1598,7 +1648,7 @@ void FileDescriptorProto::SerializeWithCachedSizes(
int FileDescriptorProto::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 3) {
+ if (_has_bits_[0 / 32] & 3u) {
// optional string name = 1;
if (has_name()) {
total_size += 1 +
@@ -1614,7 +1664,7 @@ int FileDescriptorProto::ByteSize() const {
}
}
- if (_has_bits_[9 / 32] & 3584) {
+ if (_has_bits_[9 / 32] & 3584u) {
// optional .google.protobuf.FileOptions options = 8;
if (has_options()) {
total_size += 1 +
@@ -1709,9 +1759,9 @@ int FileDescriptorProto::ByteSize() const {
void FileDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const FileDescriptorProto* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const FileDescriptorProto*>(
- &from);
+ const FileDescriptorProto* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const FileDescriptorProto>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -1813,16 +1863,16 @@ void FileDescriptorProto::InternalSwap(FileDescriptorProto* other) {
// FileDescriptorProto
// optional string name = 1;
- bool FileDescriptorProto::has_name() const {
+bool FileDescriptorProto::has_name() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void FileDescriptorProto::set_has_name() {
+void FileDescriptorProto::set_has_name() {
_has_bits_[0] |= 0x00000001u;
}
- void FileDescriptorProto::clear_has_name() {
+void FileDescriptorProto::clear_has_name() {
_has_bits_[0] &= ~0x00000001u;
}
- void FileDescriptorProto::clear_name() {
+void FileDescriptorProto::clear_name() {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_name();
}
@@ -1866,16 +1916,16 @@ void FileDescriptorProto::InternalSwap(FileDescriptorProto* other) {
}
// optional string package = 2;
- bool FileDescriptorProto::has_package() const {
+bool FileDescriptorProto::has_package() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void FileDescriptorProto::set_has_package() {
+void FileDescriptorProto::set_has_package() {
_has_bits_[0] |= 0x00000002u;
}
- void FileDescriptorProto::clear_has_package() {
+void FileDescriptorProto::clear_has_package() {
_has_bits_[0] &= ~0x00000002u;
}
- void FileDescriptorProto::clear_package() {
+void FileDescriptorProto::clear_package() {
package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_package();
}
@@ -1919,10 +1969,10 @@ void FileDescriptorProto::InternalSwap(FileDescriptorProto* other) {
}
// repeated string dependency = 3;
- int FileDescriptorProto::dependency_size() const {
+int FileDescriptorProto::dependency_size() const {
return dependency_.size();
}
- void FileDescriptorProto::clear_dependency() {
+void FileDescriptorProto::clear_dependency() {
dependency_.Clear();
}
const ::std::string& FileDescriptorProto::dependency(int index) const {
@@ -1973,10 +2023,10 @@ FileDescriptorProto::mutable_dependency() {
}
// repeated int32 public_dependency = 10;
- int FileDescriptorProto::public_dependency_size() const {
+int FileDescriptorProto::public_dependency_size() const {
return public_dependency_.size();
}
- void FileDescriptorProto::clear_public_dependency() {
+void FileDescriptorProto::clear_public_dependency() {
public_dependency_.Clear();
}
::google::protobuf::int32 FileDescriptorProto::public_dependency(int index) const {
@@ -2003,10 +2053,10 @@ FileDescriptorProto::mutable_public_dependency() {
}
// repeated int32 weak_dependency = 11;
- int FileDescriptorProto::weak_dependency_size() const {
+int FileDescriptorProto::weak_dependency_size() const {
return weak_dependency_.size();
}
- void FileDescriptorProto::clear_weak_dependency() {
+void FileDescriptorProto::clear_weak_dependency() {
weak_dependency_.Clear();
}
::google::protobuf::int32 FileDescriptorProto::weak_dependency(int index) const {
@@ -2033,10 +2083,10 @@ FileDescriptorProto::mutable_weak_dependency() {
}
// repeated .google.protobuf.DescriptorProto message_type = 4;
- int FileDescriptorProto::message_type_size() const {
+int FileDescriptorProto::message_type_size() const {
return message_type_.size();
}
- void FileDescriptorProto::clear_message_type() {
+void FileDescriptorProto::clear_message_type() {
message_type_.Clear();
}
const ::google::protobuf::DescriptorProto& FileDescriptorProto::message_type(int index) const {
@@ -2063,10 +2113,10 @@ FileDescriptorProto::mutable_message_type() {
}
// repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
- int FileDescriptorProto::enum_type_size() const {
+int FileDescriptorProto::enum_type_size() const {
return enum_type_.size();
}
- void FileDescriptorProto::clear_enum_type() {
+void FileDescriptorProto::clear_enum_type() {
enum_type_.Clear();
}
const ::google::protobuf::EnumDescriptorProto& FileDescriptorProto::enum_type(int index) const {
@@ -2093,10 +2143,10 @@ FileDescriptorProto::mutable_enum_type() {
}
// repeated .google.protobuf.ServiceDescriptorProto service = 6;
- int FileDescriptorProto::service_size() const {
+int FileDescriptorProto::service_size() const {
return service_.size();
}
- void FileDescriptorProto::clear_service() {
+void FileDescriptorProto::clear_service() {
service_.Clear();
}
const ::google::protobuf::ServiceDescriptorProto& FileDescriptorProto::service(int index) const {
@@ -2123,10 +2173,10 @@ FileDescriptorProto::mutable_service() {
}
// repeated .google.protobuf.FieldDescriptorProto extension = 7;
- int FileDescriptorProto::extension_size() const {
+int FileDescriptorProto::extension_size() const {
return extension_.size();
}
- void FileDescriptorProto::clear_extension() {
+void FileDescriptorProto::clear_extension() {
extension_.Clear();
}
const ::google::protobuf::FieldDescriptorProto& FileDescriptorProto::extension(int index) const {
@@ -2153,16 +2203,16 @@ FileDescriptorProto::mutable_extension() {
}
// optional .google.protobuf.FileOptions options = 8;
- bool FileDescriptorProto::has_options() const {
+bool FileDescriptorProto::has_options() const {
return (_has_bits_[0] & 0x00000200u) != 0;
}
- void FileDescriptorProto::set_has_options() {
+void FileDescriptorProto::set_has_options() {
_has_bits_[0] |= 0x00000200u;
}
- void FileDescriptorProto::clear_has_options() {
+void FileDescriptorProto::clear_has_options() {
_has_bits_[0] &= ~0x00000200u;
}
- void FileDescriptorProto::clear_options() {
+void FileDescriptorProto::clear_options() {
if (options_ != NULL) options_->::google::protobuf::FileOptions::Clear();
clear_has_options();
}
@@ -2196,16 +2246,16 @@ FileDescriptorProto::mutable_extension() {
}
// optional .google.protobuf.SourceCodeInfo source_code_info = 9;
- bool FileDescriptorProto::has_source_code_info() const {
+bool FileDescriptorProto::has_source_code_info() const {
return (_has_bits_[0] & 0x00000400u) != 0;
}
- void FileDescriptorProto::set_has_source_code_info() {
+void FileDescriptorProto::set_has_source_code_info() {
_has_bits_[0] |= 0x00000400u;
}
- void FileDescriptorProto::clear_has_source_code_info() {
+void FileDescriptorProto::clear_has_source_code_info() {
_has_bits_[0] &= ~0x00000400u;
}
- void FileDescriptorProto::clear_source_code_info() {
+void FileDescriptorProto::clear_source_code_info() {
if (source_code_info_ != NULL) source_code_info_->::google::protobuf::SourceCodeInfo::Clear();
clear_has_source_code_info();
}
@@ -2239,16 +2289,16 @@ FileDescriptorProto::mutable_extension() {
}
// optional string syntax = 12;
- bool FileDescriptorProto::has_syntax() const {
+bool FileDescriptorProto::has_syntax() const {
return (_has_bits_[0] & 0x00000800u) != 0;
}
- void FileDescriptorProto::set_has_syntax() {
+void FileDescriptorProto::set_has_syntax() {
_has_bits_[0] |= 0x00000800u;
}
- void FileDescriptorProto::clear_has_syntax() {
+void FileDescriptorProto::clear_has_syntax() {
_has_bits_[0] &= ~0x00000800u;
}
- void FileDescriptorProto::clear_syntax() {
+void FileDescriptorProto::clear_syntax() {
syntax_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_syntax();
}
@@ -2301,7 +2351,7 @@ const int DescriptorProto_ExtensionRange::kEndFieldNumber;
#endif // !_MSC_VER
DescriptorProto_ExtensionRange::DescriptorProto_ExtensionRange()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.DescriptorProto.ExtensionRange)
}
@@ -2484,7 +2534,7 @@ void DescriptorProto_ExtensionRange::SerializeWithCachedSizes(
int DescriptorProto_ExtensionRange::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 3) {
+ if (_has_bits_[0 / 32] & 3u) {
// optional int32 start = 1;
if (has_start()) {
total_size += 1 +
@@ -2513,9 +2563,9 @@ int DescriptorProto_ExtensionRange::ByteSize() const {
void DescriptorProto_ExtensionRange::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const DescriptorProto_ExtensionRange* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const DescriptorProto_ExtensionRange*>(
- &from);
+ const DescriptorProto_ExtensionRange* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const DescriptorProto_ExtensionRange>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -2579,6 +2629,289 @@ void DescriptorProto_ExtensionRange::InternalSwap(DescriptorProto_ExtensionRange
// -------------------------------------------------------------------
#ifndef _MSC_VER
+const int DescriptorProto_ReservedRange::kStartFieldNumber;
+const int DescriptorProto_ReservedRange::kEndFieldNumber;
+#endif // !_MSC_VER
+
+DescriptorProto_ReservedRange::DescriptorProto_ReservedRange()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.DescriptorProto.ReservedRange)
+}
+
+void DescriptorProto_ReservedRange::InitAsDefaultInstance() {
+}
+
+DescriptorProto_ReservedRange::DescriptorProto_ReservedRange(const DescriptorProto_ReservedRange& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.DescriptorProto.ReservedRange)
+}
+
+void DescriptorProto_ReservedRange::SharedCtor() {
+ _cached_size_ = 0;
+ start_ = 0;
+ end_ = 0;
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+DescriptorProto_ReservedRange::~DescriptorProto_ReservedRange() {
+ // @@protoc_insertion_point(destructor:google.protobuf.DescriptorProto.ReservedRange)
+ SharedDtor();
+}
+
+void DescriptorProto_ReservedRange::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void DescriptorProto_ReservedRange::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* DescriptorProto_ReservedRange::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return DescriptorProto_ReservedRange_descriptor_;
+}
+
+const DescriptorProto_ReservedRange& DescriptorProto_ReservedRange::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
+ return *default_instance_;
+}
+
+DescriptorProto_ReservedRange* DescriptorProto_ReservedRange::default_instance_ = NULL;
+
+DescriptorProto_ReservedRange* DescriptorProto_ReservedRange::New(::google::protobuf::Arena* arena) const {
+ DescriptorProto_ReservedRange* n = new DescriptorProto_ReservedRange;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void DescriptorProto_ReservedRange::Clear() {
+#define ZR_HELPER_(f) reinterpret_cast<char*>(\
+ &reinterpret_cast<DescriptorProto_ReservedRange*>(16)->f)
+
+#define ZR_(first, last) do {\
+ ::memset(&first, 0,\
+ ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
+} while (0)
+
+ ZR_(start_, end_);
+
+#undef ZR_HELPER_
+#undef ZR_
+
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+ if (_internal_metadata_.have_unknown_fields()) {
+ mutable_unknown_fields()->Clear();
+ }
+}
+
+bool DescriptorProto_ReservedRange::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.DescriptorProto.ReservedRange)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional int32 start = 1;
+ case 1: {
+ if (tag == 8) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &start_)));
+ set_has_start();
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(16)) goto parse_end;
+ break;
+ }
+
+ // optional int32 end = 2;
+ case 2: {
+ if (tag == 16) {
+ parse_end:
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &end_)));
+ set_has_end();
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.DescriptorProto.ReservedRange)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.DescriptorProto.ReservedRange)
+ return false;
+#undef DO_
+}
+
+void DescriptorProto_ReservedRange::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.DescriptorProto.ReservedRange)
+ // optional int32 start = 1;
+ if (has_start()) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->start(), output);
+ }
+
+ // optional int32 end = 2;
+ if (has_end()) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->end(), output);
+ }
+
+ if (_internal_metadata_.have_unknown_fields()) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ unknown_fields(), output);
+ }
+ // @@protoc_insertion_point(serialize_end:google.protobuf.DescriptorProto.ReservedRange)
+}
+
+::google::protobuf::uint8* DescriptorProto_ReservedRange::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.DescriptorProto.ReservedRange)
+ // optional int32 start = 1;
+ if (has_start()) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->start(), target);
+ }
+
+ // optional int32 end = 2;
+ if (has_end()) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->end(), target);
+ }
+
+ if (_internal_metadata_.have_unknown_fields()) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ unknown_fields(), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.DescriptorProto.ReservedRange)
+ return target;
+}
+
+int DescriptorProto_ReservedRange::ByteSize() const {
+ int total_size = 0;
+
+ if (_has_bits_[0 / 32] & 3u) {
+ // optional int32 start = 1;
+ if (has_start()) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->start());
+ }
+
+ // optional int32 end = 2;
+ if (has_end()) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->end());
+ }
+
+ }
+ if (_internal_metadata_.have_unknown_fields()) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ unknown_fields());
+ }
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void DescriptorProto_ReservedRange::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const DescriptorProto_ReservedRange* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const DescriptorProto_ReservedRange>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void DescriptorProto_ReservedRange::MergeFrom(const DescriptorProto_ReservedRange& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
+ if (from.has_start()) {
+ set_start(from.start());
+ }
+ if (from.has_end()) {
+ set_end(from.end());
+ }
+ }
+ if (from._internal_metadata_.have_unknown_fields()) {
+ mutable_unknown_fields()->MergeFrom(from.unknown_fields());
+ }
+}
+
+void DescriptorProto_ReservedRange::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void DescriptorProto_ReservedRange::CopyFrom(const DescriptorProto_ReservedRange& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool DescriptorProto_ReservedRange::IsInitialized() const {
+
+ return true;
+}
+
+void DescriptorProto_ReservedRange::Swap(DescriptorProto_ReservedRange* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void DescriptorProto_ReservedRange::InternalSwap(DescriptorProto_ReservedRange* other) {
+ std::swap(start_, other->start_);
+ std::swap(end_, other->end_);
+ std::swap(_has_bits_[0], other->_has_bits_[0]);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata DescriptorProto_ReservedRange::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = DescriptorProto_ReservedRange_descriptor_;
+ metadata.reflection = DescriptorProto_ReservedRange_reflection_;
+ return metadata;
+}
+
+
+// -------------------------------------------------------------------
+
+#ifndef _MSC_VER
const int DescriptorProto::kNameFieldNumber;
const int DescriptorProto::kFieldFieldNumber;
const int DescriptorProto::kExtensionFieldNumber;
@@ -2587,10 +2920,12 @@ const int DescriptorProto::kEnumTypeFieldNumber;
const int DescriptorProto::kExtensionRangeFieldNumber;
const int DescriptorProto::kOneofDeclFieldNumber;
const int DescriptorProto::kOptionsFieldNumber;
+const int DescriptorProto::kReservedRangeFieldNumber;
+const int DescriptorProto::kReservedNameFieldNumber;
#endif // !_MSC_VER
DescriptorProto::DescriptorProto()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.DescriptorProto)
}
@@ -2653,7 +2988,7 @@ DescriptorProto* DescriptorProto::New(::google::protobuf::Arena* arena) const {
}
void DescriptorProto::Clear() {
- if (_has_bits_[0 / 32] & 129) {
+ if (_has_bits_[0 / 32] & 129u) {
if (has_name()) {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -2667,6 +3002,8 @@ void DescriptorProto::Clear() {
enum_type_.Clear();
extension_range_.Clear();
oneof_decl_.Clear();
+ reserved_range_.Clear();
+ reserved_name_.Clear();
::memset(_has_bits_, 0, sizeof(_has_bits_));
if (_internal_metadata_.have_unknown_fields()) {
mutable_unknown_fields()->Clear();
@@ -2703,68 +3040,79 @@ bool DescriptorProto::MergePartialFromCodedStream(
case 2: {
if (tag == 18) {
parse_field:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_field:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_field()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(18)) goto parse_field;
- if (input->ExpectTag(26)) goto parse_nested_type;
+ if (input->ExpectTag(18)) goto parse_loop_field;
+ if (input->ExpectTag(26)) goto parse_loop_nested_type;
+ input->UnsafeDecrementRecursionDepth();
break;
}
// repeated .google.protobuf.DescriptorProto nested_type = 3;
case 3: {
if (tag == 26) {
- parse_nested_type:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_nested_type:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_nested_type()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(26)) goto parse_nested_type;
- if (input->ExpectTag(34)) goto parse_enum_type;
+ if (input->ExpectTag(26)) goto parse_loop_nested_type;
+ if (input->ExpectTag(34)) goto parse_loop_enum_type;
+ input->UnsafeDecrementRecursionDepth();
break;
}
// repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
case 4: {
if (tag == 34) {
- parse_enum_type:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_enum_type:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_enum_type()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(34)) goto parse_enum_type;
- if (input->ExpectTag(42)) goto parse_extension_range;
+ if (input->ExpectTag(34)) goto parse_loop_enum_type;
+ if (input->ExpectTag(42)) goto parse_loop_extension_range;
+ input->UnsafeDecrementRecursionDepth();
break;
}
// repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
case 5: {
if (tag == 42) {
- parse_extension_range:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_extension_range:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_extension_range()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(42)) goto parse_extension_range;
- if (input->ExpectTag(50)) goto parse_extension;
+ if (input->ExpectTag(42)) goto parse_loop_extension_range;
+ if (input->ExpectTag(50)) goto parse_loop_extension;
+ input->UnsafeDecrementRecursionDepth();
break;
}
// repeated .google.protobuf.FieldDescriptorProto extension = 6;
case 6: {
if (tag == 50) {
- parse_extension:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_extension:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_extension()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(50)) goto parse_extension;
+ if (input->ExpectTag(50)) goto parse_loop_extension;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectTag(58)) goto parse_options;
break;
}
@@ -2786,12 +3134,50 @@ bool DescriptorProto::MergePartialFromCodedStream(
case 8: {
if (tag == 66) {
parse_oneof_decl:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_oneof_decl:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_oneof_decl()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(66)) goto parse_oneof_decl;
+ if (input->ExpectTag(66)) goto parse_loop_oneof_decl;
+ if (input->ExpectTag(74)) goto parse_loop_reserved_range;
+ input->UnsafeDecrementRecursionDepth();
+ break;
+ }
+
+ // repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
+ case 9: {
+ if (tag == 74) {
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_reserved_range:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_reserved_range()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(74)) goto parse_loop_reserved_range;
+ input->UnsafeDecrementRecursionDepth();
+ if (input->ExpectTag(82)) goto parse_reserved_name;
+ break;
+ }
+
+ // repeated string reserved_name = 10;
+ case 10: {
+ if (tag == 82) {
+ parse_reserved_name:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->add_reserved_name()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->reserved_name(this->reserved_name_size() - 1).data(),
+ this->reserved_name(this->reserved_name_size() - 1).length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.DescriptorProto.reserved_name");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(82)) goto parse_reserved_name;
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -2873,6 +3259,22 @@ void DescriptorProto::SerializeWithCachedSizes(
8, this->oneof_decl(i), output);
}
+ // repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
+ for (unsigned int i = 0, n = this->reserved_range_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 9, this->reserved_range(i), output);
+ }
+
+ // repeated string reserved_name = 10;
+ for (int i = 0; i < this->reserved_name_size(); i++) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->reserved_name(i).data(), this->reserved_name(i).length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.DescriptorProto.reserved_name");
+ ::google::protobuf::internal::WireFormatLite::WriteString(
+ 10, this->reserved_name(i), output);
+ }
+
if (_internal_metadata_.have_unknown_fields()) {
::google::protobuf::internal::WireFormat::SerializeUnknownFields(
unknown_fields(), output);
@@ -2943,6 +3345,23 @@ void DescriptorProto::SerializeWithCachedSizes(
8, this->oneof_decl(i), target);
}
+ // repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
+ for (unsigned int i = 0, n = this->reserved_range_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 9, this->reserved_range(i), target);
+ }
+
+ // repeated string reserved_name = 10;
+ for (int i = 0; i < this->reserved_name_size(); i++) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->reserved_name(i).data(), this->reserved_name(i).length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.DescriptorProto.reserved_name");
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteStringToArray(10, this->reserved_name(i), target);
+ }
+
if (_internal_metadata_.have_unknown_fields()) {
target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
unknown_fields(), target);
@@ -2954,7 +3373,7 @@ void DescriptorProto::SerializeWithCachedSizes(
int DescriptorProto::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 129) {
+ if (_has_bits_[0 / 32] & 129u) {
// optional string name = 1;
if (has_name()) {
total_size += 1 +
@@ -3018,6 +3437,21 @@ int DescriptorProto::ByteSize() const {
this->oneof_decl(i));
}
+ // repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
+ total_size += 1 * this->reserved_range_size();
+ for (int i = 0; i < this->reserved_range_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->reserved_range(i));
+ }
+
+ // repeated string reserved_name = 10;
+ total_size += 1 * this->reserved_name_size();
+ for (int i = 0; i < this->reserved_name_size(); i++) {
+ total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->reserved_name(i));
+ }
+
if (_internal_metadata_.have_unknown_fields()) {
total_size +=
::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
@@ -3031,9 +3465,9 @@ int DescriptorProto::ByteSize() const {
void DescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const DescriptorProto* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const DescriptorProto*>(
- &from);
+ const DescriptorProto* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const DescriptorProto>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -3049,6 +3483,8 @@ void DescriptorProto::MergeFrom(const DescriptorProto& from) {
enum_type_.MergeFrom(from.enum_type_);
extension_range_.MergeFrom(from.extension_range_);
oneof_decl_.MergeFrom(from.oneof_decl_);
+ reserved_range_.MergeFrom(from.reserved_range_);
+ reserved_name_.MergeFrom(from.reserved_name_);
if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
if (from.has_name()) {
set_has_name();
@@ -3100,6 +3536,8 @@ void DescriptorProto::InternalSwap(DescriptorProto* other) {
extension_range_.UnsafeArenaSwap(&other->extension_range_);
oneof_decl_.UnsafeArenaSwap(&other->oneof_decl_);
std::swap(options_, other->options_);
+ reserved_range_.UnsafeArenaSwap(&other->reserved_range_);
+ reserved_name_.UnsafeArenaSwap(&other->reserved_name_);
std::swap(_has_bits_[0], other->_has_bits_[0]);
_internal_metadata_.Swap(&other->_internal_metadata_);
std::swap(_cached_size_, other->_cached_size_);
@@ -3117,16 +3555,16 @@ void DescriptorProto::InternalSwap(DescriptorProto* other) {
// DescriptorProto_ExtensionRange
// optional int32 start = 1;
- bool DescriptorProto_ExtensionRange::has_start() const {
+bool DescriptorProto_ExtensionRange::has_start() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void DescriptorProto_ExtensionRange::set_has_start() {
+void DescriptorProto_ExtensionRange::set_has_start() {
_has_bits_[0] |= 0x00000001u;
}
- void DescriptorProto_ExtensionRange::clear_has_start() {
+void DescriptorProto_ExtensionRange::clear_has_start() {
_has_bits_[0] &= ~0x00000001u;
}
- void DescriptorProto_ExtensionRange::clear_start() {
+void DescriptorProto_ExtensionRange::clear_start() {
start_ = 0;
clear_has_start();
}
@@ -3141,16 +3579,16 @@ void DescriptorProto::InternalSwap(DescriptorProto* other) {
}
// optional int32 end = 2;
- bool DescriptorProto_ExtensionRange::has_end() const {
+bool DescriptorProto_ExtensionRange::has_end() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void DescriptorProto_ExtensionRange::set_has_end() {
+void DescriptorProto_ExtensionRange::set_has_end() {
_has_bits_[0] |= 0x00000002u;
}
- void DescriptorProto_ExtensionRange::clear_has_end() {
+void DescriptorProto_ExtensionRange::clear_has_end() {
_has_bits_[0] &= ~0x00000002u;
}
- void DescriptorProto_ExtensionRange::clear_end() {
+void DescriptorProto_ExtensionRange::clear_end() {
end_ = 0;
clear_has_end();
}
@@ -3166,19 +3604,71 @@ void DescriptorProto::InternalSwap(DescriptorProto* other) {
// -------------------------------------------------------------------
+// DescriptorProto_ReservedRange
+
+// optional int32 start = 1;
+bool DescriptorProto_ReservedRange::has_start() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void DescriptorProto_ReservedRange::set_has_start() {
+ _has_bits_[0] |= 0x00000001u;
+}
+void DescriptorProto_ReservedRange::clear_has_start() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+void DescriptorProto_ReservedRange::clear_start() {
+ start_ = 0;
+ clear_has_start();
+}
+ ::google::protobuf::int32 DescriptorProto_ReservedRange::start() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.DescriptorProto.ReservedRange.start)
+ return start_;
+}
+ void DescriptorProto_ReservedRange::set_start(::google::protobuf::int32 value) {
+ set_has_start();
+ start_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.DescriptorProto.ReservedRange.start)
+}
+
+// optional int32 end = 2;
+bool DescriptorProto_ReservedRange::has_end() const {
+ return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void DescriptorProto_ReservedRange::set_has_end() {
+ _has_bits_[0] |= 0x00000002u;
+}
+void DescriptorProto_ReservedRange::clear_has_end() {
+ _has_bits_[0] &= ~0x00000002u;
+}
+void DescriptorProto_ReservedRange::clear_end() {
+ end_ = 0;
+ clear_has_end();
+}
+ ::google::protobuf::int32 DescriptorProto_ReservedRange::end() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.DescriptorProto.ReservedRange.end)
+ return end_;
+}
+ void DescriptorProto_ReservedRange::set_end(::google::protobuf::int32 value) {
+ set_has_end();
+ end_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.DescriptorProto.ReservedRange.end)
+}
+
+// -------------------------------------------------------------------
+
// DescriptorProto
// optional string name = 1;
- bool DescriptorProto::has_name() const {
+bool DescriptorProto::has_name() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void DescriptorProto::set_has_name() {
+void DescriptorProto::set_has_name() {
_has_bits_[0] |= 0x00000001u;
}
- void DescriptorProto::clear_has_name() {
+void DescriptorProto::clear_has_name() {
_has_bits_[0] &= ~0x00000001u;
}
- void DescriptorProto::clear_name() {
+void DescriptorProto::clear_name() {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_name();
}
@@ -3222,10 +3712,10 @@ void DescriptorProto::InternalSwap(DescriptorProto* other) {
}
// repeated .google.protobuf.FieldDescriptorProto field = 2;
- int DescriptorProto::field_size() const {
+int DescriptorProto::field_size() const {
return field_.size();
}
- void DescriptorProto::clear_field() {
+void DescriptorProto::clear_field() {
field_.Clear();
}
const ::google::protobuf::FieldDescriptorProto& DescriptorProto::field(int index) const {
@@ -3252,10 +3742,10 @@ DescriptorProto::mutable_field() {
}
// repeated .google.protobuf.FieldDescriptorProto extension = 6;
- int DescriptorProto::extension_size() const {
+int DescriptorProto::extension_size() const {
return extension_.size();
}
- void DescriptorProto::clear_extension() {
+void DescriptorProto::clear_extension() {
extension_.Clear();
}
const ::google::protobuf::FieldDescriptorProto& DescriptorProto::extension(int index) const {
@@ -3282,10 +3772,10 @@ DescriptorProto::mutable_extension() {
}
// repeated .google.protobuf.DescriptorProto nested_type = 3;
- int DescriptorProto::nested_type_size() const {
+int DescriptorProto::nested_type_size() const {
return nested_type_.size();
}
- void DescriptorProto::clear_nested_type() {
+void DescriptorProto::clear_nested_type() {
nested_type_.Clear();
}
const ::google::protobuf::DescriptorProto& DescriptorProto::nested_type(int index) const {
@@ -3312,10 +3802,10 @@ DescriptorProto::mutable_nested_type() {
}
// repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
- int DescriptorProto::enum_type_size() const {
+int DescriptorProto::enum_type_size() const {
return enum_type_.size();
}
- void DescriptorProto::clear_enum_type() {
+void DescriptorProto::clear_enum_type() {
enum_type_.Clear();
}
const ::google::protobuf::EnumDescriptorProto& DescriptorProto::enum_type(int index) const {
@@ -3342,10 +3832,10 @@ DescriptorProto::mutable_enum_type() {
}
// repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
- int DescriptorProto::extension_range_size() const {
+int DescriptorProto::extension_range_size() const {
return extension_range_.size();
}
- void DescriptorProto::clear_extension_range() {
+void DescriptorProto::clear_extension_range() {
extension_range_.Clear();
}
const ::google::protobuf::DescriptorProto_ExtensionRange& DescriptorProto::extension_range(int index) const {
@@ -3372,10 +3862,10 @@ DescriptorProto::mutable_extension_range() {
}
// repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;
- int DescriptorProto::oneof_decl_size() const {
+int DescriptorProto::oneof_decl_size() const {
return oneof_decl_.size();
}
- void DescriptorProto::clear_oneof_decl() {
+void DescriptorProto::clear_oneof_decl() {
oneof_decl_.Clear();
}
const ::google::protobuf::OneofDescriptorProto& DescriptorProto::oneof_decl(int index) const {
@@ -3402,16 +3892,16 @@ DescriptorProto::mutable_oneof_decl() {
}
// optional .google.protobuf.MessageOptions options = 7;
- bool DescriptorProto::has_options() const {
+bool DescriptorProto::has_options() const {
return (_has_bits_[0] & 0x00000080u) != 0;
}
- void DescriptorProto::set_has_options() {
+void DescriptorProto::set_has_options() {
_has_bits_[0] |= 0x00000080u;
}
- void DescriptorProto::clear_has_options() {
+void DescriptorProto::clear_has_options() {
_has_bits_[0] &= ~0x00000080u;
}
- void DescriptorProto::clear_options() {
+void DescriptorProto::clear_options() {
if (options_ != NULL) options_->::google::protobuf::MessageOptions::Clear();
clear_has_options();
}
@@ -3444,6 +3934,90 @@ DescriptorProto::mutable_oneof_decl() {
// @@protoc_insertion_point(field_set_allocated:google.protobuf.DescriptorProto.options)
}
+// repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
+int DescriptorProto::reserved_range_size() const {
+ return reserved_range_.size();
+}
+void DescriptorProto::clear_reserved_range() {
+ reserved_range_.Clear();
+}
+ const ::google::protobuf::DescriptorProto_ReservedRange& DescriptorProto::reserved_range(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.DescriptorProto.reserved_range)
+ return reserved_range_.Get(index);
+}
+ ::google::protobuf::DescriptorProto_ReservedRange* DescriptorProto::mutable_reserved_range(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.DescriptorProto.reserved_range)
+ return reserved_range_.Mutable(index);
+}
+ ::google::protobuf::DescriptorProto_ReservedRange* DescriptorProto::add_reserved_range() {
+ // @@protoc_insertion_point(field_add:google.protobuf.DescriptorProto.reserved_range)
+ return reserved_range_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ReservedRange >&
+DescriptorProto::reserved_range() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.DescriptorProto.reserved_range)
+ return reserved_range_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ReservedRange >*
+DescriptorProto::mutable_reserved_range() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.DescriptorProto.reserved_range)
+ return &reserved_range_;
+}
+
+// repeated string reserved_name = 10;
+int DescriptorProto::reserved_name_size() const {
+ return reserved_name_.size();
+}
+void DescriptorProto::clear_reserved_name() {
+ reserved_name_.Clear();
+}
+ const ::std::string& DescriptorProto::reserved_name(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.DescriptorProto.reserved_name)
+ return reserved_name_.Get(index);
+}
+ ::std::string* DescriptorProto::mutable_reserved_name(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.DescriptorProto.reserved_name)
+ return reserved_name_.Mutable(index);
+}
+ void DescriptorProto::set_reserved_name(int index, const ::std::string& value) {
+ // @@protoc_insertion_point(field_set:google.protobuf.DescriptorProto.reserved_name)
+ reserved_name_.Mutable(index)->assign(value);
+}
+ void DescriptorProto::set_reserved_name(int index, const char* value) {
+ reserved_name_.Mutable(index)->assign(value);
+ // @@protoc_insertion_point(field_set_char:google.protobuf.DescriptorProto.reserved_name)
+}
+ void DescriptorProto::set_reserved_name(int index, const char* value, size_t size) {
+ reserved_name_.Mutable(index)->assign(
+ reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.DescriptorProto.reserved_name)
+}
+ ::std::string* DescriptorProto::add_reserved_name() {
+ return reserved_name_.Add();
+}
+ void DescriptorProto::add_reserved_name(const ::std::string& value) {
+ reserved_name_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add:google.protobuf.DescriptorProto.reserved_name)
+}
+ void DescriptorProto::add_reserved_name(const char* value) {
+ reserved_name_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add_char:google.protobuf.DescriptorProto.reserved_name)
+}
+ void DescriptorProto::add_reserved_name(const char* value, size_t size) {
+ reserved_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_add_pointer:google.protobuf.DescriptorProto.reserved_name)
+}
+ const ::google::protobuf::RepeatedPtrField< ::std::string>&
+DescriptorProto::reserved_name() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.DescriptorProto.reserved_name)
+ return reserved_name_;
+}
+ ::google::protobuf::RepeatedPtrField< ::std::string>*
+DescriptorProto::mutable_reserved_name() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.DescriptorProto.reserved_name)
+ return &reserved_name_;
+}
+
#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
// ===================================================================
@@ -3537,7 +4111,7 @@ const int FieldDescriptorProto::kOptionsFieldNumber;
#endif // !_MSC_VER
FieldDescriptorProto::FieldDescriptorProto()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.FieldDescriptorProto)
}
@@ -3610,7 +4184,7 @@ FieldDescriptorProto* FieldDescriptorProto::New(::google::protobuf::Arena* arena
}
void FieldDescriptorProto::Clear() {
- if (_has_bits_[0 / 32] & 255) {
+ if (_has_bits_[0 / 32] & 255u) {
if (has_name()) {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -3984,7 +4558,7 @@ void FieldDescriptorProto::SerializeWithCachedSizes(
int FieldDescriptorProto::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 255) {
+ if (_has_bits_[0 / 32] & 255u) {
// optional string name = 1;
if (has_name()) {
total_size += 1 +
@@ -4060,9 +4634,9 @@ int FieldDescriptorProto::ByteSize() const {
void FieldDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const FieldDescriptorProto* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const FieldDescriptorProto*>(
- &from);
+ const FieldDescriptorProto* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const FieldDescriptorProto>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -4163,16 +4737,16 @@ void FieldDescriptorProto::InternalSwap(FieldDescriptorProto* other) {
// FieldDescriptorProto
// optional string name = 1;
- bool FieldDescriptorProto::has_name() const {
+bool FieldDescriptorProto::has_name() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void FieldDescriptorProto::set_has_name() {
+void FieldDescriptorProto::set_has_name() {
_has_bits_[0] |= 0x00000001u;
}
- void FieldDescriptorProto::clear_has_name() {
+void FieldDescriptorProto::clear_has_name() {
_has_bits_[0] &= ~0x00000001u;
}
- void FieldDescriptorProto::clear_name() {
+void FieldDescriptorProto::clear_name() {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_name();
}
@@ -4216,16 +4790,16 @@ void FieldDescriptorProto::InternalSwap(FieldDescriptorProto* other) {
}
// optional int32 number = 3;
- bool FieldDescriptorProto::has_number() const {
+bool FieldDescriptorProto::has_number() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void FieldDescriptorProto::set_has_number() {
+void FieldDescriptorProto::set_has_number() {
_has_bits_[0] |= 0x00000002u;
}
- void FieldDescriptorProto::clear_has_number() {
+void FieldDescriptorProto::clear_has_number() {
_has_bits_[0] &= ~0x00000002u;
}
- void FieldDescriptorProto::clear_number() {
+void FieldDescriptorProto::clear_number() {
number_ = 0;
clear_has_number();
}
@@ -4240,16 +4814,16 @@ void FieldDescriptorProto::InternalSwap(FieldDescriptorProto* other) {
}
// optional .google.protobuf.FieldDescriptorProto.Label label = 4;
- bool FieldDescriptorProto::has_label() const {
+bool FieldDescriptorProto::has_label() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void FieldDescriptorProto::set_has_label() {
+void FieldDescriptorProto::set_has_label() {
_has_bits_[0] |= 0x00000004u;
}
- void FieldDescriptorProto::clear_has_label() {
+void FieldDescriptorProto::clear_has_label() {
_has_bits_[0] &= ~0x00000004u;
}
- void FieldDescriptorProto::clear_label() {
+void FieldDescriptorProto::clear_label() {
label_ = 1;
clear_has_label();
}
@@ -4265,16 +4839,16 @@ void FieldDescriptorProto::InternalSwap(FieldDescriptorProto* other) {
}
// optional .google.protobuf.FieldDescriptorProto.Type type = 5;
- bool FieldDescriptorProto::has_type() const {
+bool FieldDescriptorProto::has_type() const {
return (_has_bits_[0] & 0x00000008u) != 0;
}
- void FieldDescriptorProto::set_has_type() {
+void FieldDescriptorProto::set_has_type() {
_has_bits_[0] |= 0x00000008u;
}
- void FieldDescriptorProto::clear_has_type() {
+void FieldDescriptorProto::clear_has_type() {
_has_bits_[0] &= ~0x00000008u;
}
- void FieldDescriptorProto::clear_type() {
+void FieldDescriptorProto::clear_type() {
type_ = 1;
clear_has_type();
}
@@ -4290,16 +4864,16 @@ void FieldDescriptorProto::InternalSwap(FieldDescriptorProto* other) {
}
// optional string type_name = 6;
- bool FieldDescriptorProto::has_type_name() const {
+bool FieldDescriptorProto::has_type_name() const {
return (_has_bits_[0] & 0x00000010u) != 0;
}
- void FieldDescriptorProto::set_has_type_name() {
+void FieldDescriptorProto::set_has_type_name() {
_has_bits_[0] |= 0x00000010u;
}
- void FieldDescriptorProto::clear_has_type_name() {
+void FieldDescriptorProto::clear_has_type_name() {
_has_bits_[0] &= ~0x00000010u;
}
- void FieldDescriptorProto::clear_type_name() {
+void FieldDescriptorProto::clear_type_name() {
type_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_type_name();
}
@@ -4343,16 +4917,16 @@ void FieldDescriptorProto::InternalSwap(FieldDescriptorProto* other) {
}
// optional string extendee = 2;
- bool FieldDescriptorProto::has_extendee() const {
+bool FieldDescriptorProto::has_extendee() const {
return (_has_bits_[0] & 0x00000020u) != 0;
}
- void FieldDescriptorProto::set_has_extendee() {
+void FieldDescriptorProto::set_has_extendee() {
_has_bits_[0] |= 0x00000020u;
}
- void FieldDescriptorProto::clear_has_extendee() {
+void FieldDescriptorProto::clear_has_extendee() {
_has_bits_[0] &= ~0x00000020u;
}
- void FieldDescriptorProto::clear_extendee() {
+void FieldDescriptorProto::clear_extendee() {
extendee_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_extendee();
}
@@ -4396,16 +4970,16 @@ void FieldDescriptorProto::InternalSwap(FieldDescriptorProto* other) {
}
// optional string default_value = 7;
- bool FieldDescriptorProto::has_default_value() const {
+bool FieldDescriptorProto::has_default_value() const {
return (_has_bits_[0] & 0x00000040u) != 0;
}
- void FieldDescriptorProto::set_has_default_value() {
+void FieldDescriptorProto::set_has_default_value() {
_has_bits_[0] |= 0x00000040u;
}
- void FieldDescriptorProto::clear_has_default_value() {
+void FieldDescriptorProto::clear_has_default_value() {
_has_bits_[0] &= ~0x00000040u;
}
- void FieldDescriptorProto::clear_default_value() {
+void FieldDescriptorProto::clear_default_value() {
default_value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_default_value();
}
@@ -4449,16 +5023,16 @@ void FieldDescriptorProto::InternalSwap(FieldDescriptorProto* other) {
}
// optional int32 oneof_index = 9;
- bool FieldDescriptorProto::has_oneof_index() const {
+bool FieldDescriptorProto::has_oneof_index() const {
return (_has_bits_[0] & 0x00000080u) != 0;
}
- void FieldDescriptorProto::set_has_oneof_index() {
+void FieldDescriptorProto::set_has_oneof_index() {
_has_bits_[0] |= 0x00000080u;
}
- void FieldDescriptorProto::clear_has_oneof_index() {
+void FieldDescriptorProto::clear_has_oneof_index() {
_has_bits_[0] &= ~0x00000080u;
}
- void FieldDescriptorProto::clear_oneof_index() {
+void FieldDescriptorProto::clear_oneof_index() {
oneof_index_ = 0;
clear_has_oneof_index();
}
@@ -4473,16 +5047,16 @@ void FieldDescriptorProto::InternalSwap(FieldDescriptorProto* other) {
}
// optional .google.protobuf.FieldOptions options = 8;
- bool FieldDescriptorProto::has_options() const {
+bool FieldDescriptorProto::has_options() const {
return (_has_bits_[0] & 0x00000100u) != 0;
}
- void FieldDescriptorProto::set_has_options() {
+void FieldDescriptorProto::set_has_options() {
_has_bits_[0] |= 0x00000100u;
}
- void FieldDescriptorProto::clear_has_options() {
+void FieldDescriptorProto::clear_has_options() {
_has_bits_[0] &= ~0x00000100u;
}
- void FieldDescriptorProto::clear_options() {
+void FieldDescriptorProto::clear_options() {
if (options_ != NULL) options_->::google::protobuf::FieldOptions::Clear();
clear_has_options();
}
@@ -4524,7 +5098,7 @@ const int OneofDescriptorProto::kNameFieldNumber;
#endif // !_MSC_VER
OneofDescriptorProto::OneofDescriptorProto()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.OneofDescriptorProto)
}
@@ -4706,9 +5280,9 @@ int OneofDescriptorProto::ByteSize() const {
void OneofDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const OneofDescriptorProto* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const OneofDescriptorProto*>(
- &from);
+ const OneofDescriptorProto* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const OneofDescriptorProto>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -4769,16 +5343,16 @@ void OneofDescriptorProto::InternalSwap(OneofDescriptorProto* other) {
// OneofDescriptorProto
// optional string name = 1;
- bool OneofDescriptorProto::has_name() const {
+bool OneofDescriptorProto::has_name() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void OneofDescriptorProto::set_has_name() {
+void OneofDescriptorProto::set_has_name() {
_has_bits_[0] |= 0x00000001u;
}
- void OneofDescriptorProto::clear_has_name() {
+void OneofDescriptorProto::clear_has_name() {
_has_bits_[0] &= ~0x00000001u;
}
- void OneofDescriptorProto::clear_name() {
+void OneofDescriptorProto::clear_name() {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_name();
}
@@ -4832,7 +5406,7 @@ const int EnumDescriptorProto::kOptionsFieldNumber;
#endif // !_MSC_VER
EnumDescriptorProto::EnumDescriptorProto()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.EnumDescriptorProto)
}
@@ -4895,7 +5469,7 @@ EnumDescriptorProto* EnumDescriptorProto::New(::google::protobuf::Arena* arena)
}
void EnumDescriptorProto::Clear() {
- if (_has_bits_[0 / 32] & 5) {
+ if (_has_bits_[0 / 32] & 5u) {
if (has_name()) {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -4940,12 +5514,15 @@ bool EnumDescriptorProto::MergePartialFromCodedStream(
case 2: {
if (tag == 18) {
parse_value:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_value:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_value()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(18)) goto parse_value;
+ if (input->ExpectTag(18)) goto parse_loop_value;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectTag(26)) goto parse_options;
break;
}
@@ -5056,7 +5633,7 @@ void EnumDescriptorProto::SerializeWithCachedSizes(
int EnumDescriptorProto::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 5) {
+ if (_has_bits_[0 / 32] & 5u) {
// optional string name = 1;
if (has_name()) {
total_size += 1 +
@@ -5093,9 +5670,9 @@ int EnumDescriptorProto::ByteSize() const {
void EnumDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const EnumDescriptorProto* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const EnumDescriptorProto*>(
- &from);
+ const EnumDescriptorProto* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const EnumDescriptorProto>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -5166,16 +5743,16 @@ void EnumDescriptorProto::InternalSwap(EnumDescriptorProto* other) {
// EnumDescriptorProto
// optional string name = 1;
- bool EnumDescriptorProto::has_name() const {
+bool EnumDescriptorProto::has_name() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void EnumDescriptorProto::set_has_name() {
+void EnumDescriptorProto::set_has_name() {
_has_bits_[0] |= 0x00000001u;
}
- void EnumDescriptorProto::clear_has_name() {
+void EnumDescriptorProto::clear_has_name() {
_has_bits_[0] &= ~0x00000001u;
}
- void EnumDescriptorProto::clear_name() {
+void EnumDescriptorProto::clear_name() {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_name();
}
@@ -5219,10 +5796,10 @@ void EnumDescriptorProto::InternalSwap(EnumDescriptorProto* other) {
}
// repeated .google.protobuf.EnumValueDescriptorProto value = 2;
- int EnumDescriptorProto::value_size() const {
+int EnumDescriptorProto::value_size() const {
return value_.size();
}
- void EnumDescriptorProto::clear_value() {
+void EnumDescriptorProto::clear_value() {
value_.Clear();
}
const ::google::protobuf::EnumValueDescriptorProto& EnumDescriptorProto::value(int index) const {
@@ -5249,16 +5826,16 @@ EnumDescriptorProto::mutable_value() {
}
// optional .google.protobuf.EnumOptions options = 3;
- bool EnumDescriptorProto::has_options() const {
+bool EnumDescriptorProto::has_options() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void EnumDescriptorProto::set_has_options() {
+void EnumDescriptorProto::set_has_options() {
_has_bits_[0] |= 0x00000004u;
}
- void EnumDescriptorProto::clear_has_options() {
+void EnumDescriptorProto::clear_has_options() {
_has_bits_[0] &= ~0x00000004u;
}
- void EnumDescriptorProto::clear_options() {
+void EnumDescriptorProto::clear_options() {
if (options_ != NULL) options_->::google::protobuf::EnumOptions::Clear();
clear_has_options();
}
@@ -5302,7 +5879,7 @@ const int EnumValueDescriptorProto::kOptionsFieldNumber;
#endif // !_MSC_VER
EnumValueDescriptorProto::EnumValueDescriptorProto()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.EnumValueDescriptorProto)
}
@@ -5366,7 +5943,7 @@ EnumValueDescriptorProto* EnumValueDescriptorProto::New(::google::protobuf::Aren
}
void EnumValueDescriptorProto::Clear() {
- if (_has_bits_[0 / 32] & 7) {
+ if (_has_bits_[0 / 32] & 7u) {
if (has_name()) {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -5525,7 +6102,7 @@ void EnumValueDescriptorProto::SerializeWithCachedSizes(
int EnumValueDescriptorProto::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 7) {
+ if (_has_bits_[0 / 32] & 7u) {
// optional string name = 1;
if (has_name()) {
total_size += 1 +
@@ -5561,9 +6138,9 @@ int EnumValueDescriptorProto::ByteSize() const {
void EnumValueDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const EnumValueDescriptorProto* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const EnumValueDescriptorProto*>(
- &from);
+ const EnumValueDescriptorProto* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const EnumValueDescriptorProto>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -5635,16 +6212,16 @@ void EnumValueDescriptorProto::InternalSwap(EnumValueDescriptorProto* other) {
// EnumValueDescriptorProto
// optional string name = 1;
- bool EnumValueDescriptorProto::has_name() const {
+bool EnumValueDescriptorProto::has_name() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void EnumValueDescriptorProto::set_has_name() {
+void EnumValueDescriptorProto::set_has_name() {
_has_bits_[0] |= 0x00000001u;
}
- void EnumValueDescriptorProto::clear_has_name() {
+void EnumValueDescriptorProto::clear_has_name() {
_has_bits_[0] &= ~0x00000001u;
}
- void EnumValueDescriptorProto::clear_name() {
+void EnumValueDescriptorProto::clear_name() {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_name();
}
@@ -5688,16 +6265,16 @@ void EnumValueDescriptorProto::InternalSwap(EnumValueDescriptorProto* other) {
}
// optional int32 number = 2;
- bool EnumValueDescriptorProto::has_number() const {
+bool EnumValueDescriptorProto::has_number() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void EnumValueDescriptorProto::set_has_number() {
+void EnumValueDescriptorProto::set_has_number() {
_has_bits_[0] |= 0x00000002u;
}
- void EnumValueDescriptorProto::clear_has_number() {
+void EnumValueDescriptorProto::clear_has_number() {
_has_bits_[0] &= ~0x00000002u;
}
- void EnumValueDescriptorProto::clear_number() {
+void EnumValueDescriptorProto::clear_number() {
number_ = 0;
clear_has_number();
}
@@ -5712,16 +6289,16 @@ void EnumValueDescriptorProto::InternalSwap(EnumValueDescriptorProto* other) {
}
// optional .google.protobuf.EnumValueOptions options = 3;
- bool EnumValueDescriptorProto::has_options() const {
+bool EnumValueDescriptorProto::has_options() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void EnumValueDescriptorProto::set_has_options() {
+void EnumValueDescriptorProto::set_has_options() {
_has_bits_[0] |= 0x00000004u;
}
- void EnumValueDescriptorProto::clear_has_options() {
+void EnumValueDescriptorProto::clear_has_options() {
_has_bits_[0] &= ~0x00000004u;
}
- void EnumValueDescriptorProto::clear_options() {
+void EnumValueDescriptorProto::clear_options() {
if (options_ != NULL) options_->::google::protobuf::EnumValueOptions::Clear();
clear_has_options();
}
@@ -5765,7 +6342,7 @@ const int ServiceDescriptorProto::kOptionsFieldNumber;
#endif // !_MSC_VER
ServiceDescriptorProto::ServiceDescriptorProto()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.ServiceDescriptorProto)
}
@@ -5828,7 +6405,7 @@ ServiceDescriptorProto* ServiceDescriptorProto::New(::google::protobuf::Arena* a
}
void ServiceDescriptorProto::Clear() {
- if (_has_bits_[0 / 32] & 5) {
+ if (_has_bits_[0 / 32] & 5u) {
if (has_name()) {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -5873,12 +6450,15 @@ bool ServiceDescriptorProto::MergePartialFromCodedStream(
case 2: {
if (tag == 18) {
parse_method:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_method:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_method()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(18)) goto parse_method;
+ if (input->ExpectTag(18)) goto parse_loop_method;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectTag(26)) goto parse_options;
break;
}
@@ -5989,7 +6569,7 @@ void ServiceDescriptorProto::SerializeWithCachedSizes(
int ServiceDescriptorProto::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 5) {
+ if (_has_bits_[0 / 32] & 5u) {
// optional string name = 1;
if (has_name()) {
total_size += 1 +
@@ -6026,9 +6606,9 @@ int ServiceDescriptorProto::ByteSize() const {
void ServiceDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const ServiceDescriptorProto* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const ServiceDescriptorProto*>(
- &from);
+ const ServiceDescriptorProto* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const ServiceDescriptorProto>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -6099,16 +6679,16 @@ void ServiceDescriptorProto::InternalSwap(ServiceDescriptorProto* other) {
// ServiceDescriptorProto
// optional string name = 1;
- bool ServiceDescriptorProto::has_name() const {
+bool ServiceDescriptorProto::has_name() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void ServiceDescriptorProto::set_has_name() {
+void ServiceDescriptorProto::set_has_name() {
_has_bits_[0] |= 0x00000001u;
}
- void ServiceDescriptorProto::clear_has_name() {
+void ServiceDescriptorProto::clear_has_name() {
_has_bits_[0] &= ~0x00000001u;
}
- void ServiceDescriptorProto::clear_name() {
+void ServiceDescriptorProto::clear_name() {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_name();
}
@@ -6152,10 +6732,10 @@ void ServiceDescriptorProto::InternalSwap(ServiceDescriptorProto* other) {
}
// repeated .google.protobuf.MethodDescriptorProto method = 2;
- int ServiceDescriptorProto::method_size() const {
+int ServiceDescriptorProto::method_size() const {
return method_.size();
}
- void ServiceDescriptorProto::clear_method() {
+void ServiceDescriptorProto::clear_method() {
method_.Clear();
}
const ::google::protobuf::MethodDescriptorProto& ServiceDescriptorProto::method(int index) const {
@@ -6182,16 +6762,16 @@ ServiceDescriptorProto::mutable_method() {
}
// optional .google.protobuf.ServiceOptions options = 3;
- bool ServiceDescriptorProto::has_options() const {
+bool ServiceDescriptorProto::has_options() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void ServiceDescriptorProto::set_has_options() {
+void ServiceDescriptorProto::set_has_options() {
_has_bits_[0] |= 0x00000004u;
}
- void ServiceDescriptorProto::clear_has_options() {
+void ServiceDescriptorProto::clear_has_options() {
_has_bits_[0] &= ~0x00000004u;
}
- void ServiceDescriptorProto::clear_options() {
+void ServiceDescriptorProto::clear_options() {
if (options_ != NULL) options_->::google::protobuf::ServiceOptions::Clear();
clear_has_options();
}
@@ -6238,7 +6818,7 @@ const int MethodDescriptorProto::kServerStreamingFieldNumber;
#endif // !_MSC_VER
MethodDescriptorProto::MethodDescriptorProto()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.MethodDescriptorProto)
}
@@ -6315,7 +6895,7 @@ void MethodDescriptorProto::Clear() {
ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
} while (0)
- if (_has_bits_[0 / 32] & 63) {
+ if (_has_bits_[0 / 32] & 63u) {
ZR_(client_streaming_, server_streaming_);
if (has_name()) {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
@@ -6585,7 +7165,7 @@ void MethodDescriptorProto::SerializeWithCachedSizes(
int MethodDescriptorProto::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 63) {
+ if (_has_bits_[0 / 32] & 63u) {
// optional string name = 1;
if (has_name()) {
total_size += 1 +
@@ -6638,9 +7218,9 @@ int MethodDescriptorProto::ByteSize() const {
void MethodDescriptorProto::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const MethodDescriptorProto* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const MethodDescriptorProto*>(
- &from);
+ const MethodDescriptorProto* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const MethodDescriptorProto>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -6726,16 +7306,16 @@ void MethodDescriptorProto::InternalSwap(MethodDescriptorProto* other) {
// MethodDescriptorProto
// optional string name = 1;
- bool MethodDescriptorProto::has_name() const {
+bool MethodDescriptorProto::has_name() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void MethodDescriptorProto::set_has_name() {
+void MethodDescriptorProto::set_has_name() {
_has_bits_[0] |= 0x00000001u;
}
- void MethodDescriptorProto::clear_has_name() {
+void MethodDescriptorProto::clear_has_name() {
_has_bits_[0] &= ~0x00000001u;
}
- void MethodDescriptorProto::clear_name() {
+void MethodDescriptorProto::clear_name() {
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_name();
}
@@ -6779,16 +7359,16 @@ void MethodDescriptorProto::InternalSwap(MethodDescriptorProto* other) {
}
// optional string input_type = 2;
- bool MethodDescriptorProto::has_input_type() const {
+bool MethodDescriptorProto::has_input_type() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void MethodDescriptorProto::set_has_input_type() {
+void MethodDescriptorProto::set_has_input_type() {
_has_bits_[0] |= 0x00000002u;
}
- void MethodDescriptorProto::clear_has_input_type() {
+void MethodDescriptorProto::clear_has_input_type() {
_has_bits_[0] &= ~0x00000002u;
}
- void MethodDescriptorProto::clear_input_type() {
+void MethodDescriptorProto::clear_input_type() {
input_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_input_type();
}
@@ -6832,16 +7412,16 @@ void MethodDescriptorProto::InternalSwap(MethodDescriptorProto* other) {
}
// optional string output_type = 3;
- bool MethodDescriptorProto::has_output_type() const {
+bool MethodDescriptorProto::has_output_type() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void MethodDescriptorProto::set_has_output_type() {
+void MethodDescriptorProto::set_has_output_type() {
_has_bits_[0] |= 0x00000004u;
}
- void MethodDescriptorProto::clear_has_output_type() {
+void MethodDescriptorProto::clear_has_output_type() {
_has_bits_[0] &= ~0x00000004u;
}
- void MethodDescriptorProto::clear_output_type() {
+void MethodDescriptorProto::clear_output_type() {
output_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_output_type();
}
@@ -6885,16 +7465,16 @@ void MethodDescriptorProto::InternalSwap(MethodDescriptorProto* other) {
}
// optional .google.protobuf.MethodOptions options = 4;
- bool MethodDescriptorProto::has_options() const {
+bool MethodDescriptorProto::has_options() const {
return (_has_bits_[0] & 0x00000008u) != 0;
}
- void MethodDescriptorProto::set_has_options() {
+void MethodDescriptorProto::set_has_options() {
_has_bits_[0] |= 0x00000008u;
}
- void MethodDescriptorProto::clear_has_options() {
+void MethodDescriptorProto::clear_has_options() {
_has_bits_[0] &= ~0x00000008u;
}
- void MethodDescriptorProto::clear_options() {
+void MethodDescriptorProto::clear_options() {
if (options_ != NULL) options_->::google::protobuf::MethodOptions::Clear();
clear_has_options();
}
@@ -6928,16 +7508,16 @@ void MethodDescriptorProto::InternalSwap(MethodDescriptorProto* other) {
}
// optional bool client_streaming = 5 [default = false];
- bool MethodDescriptorProto::has_client_streaming() const {
+bool MethodDescriptorProto::has_client_streaming() const {
return (_has_bits_[0] & 0x00000010u) != 0;
}
- void MethodDescriptorProto::set_has_client_streaming() {
+void MethodDescriptorProto::set_has_client_streaming() {
_has_bits_[0] |= 0x00000010u;
}
- void MethodDescriptorProto::clear_has_client_streaming() {
+void MethodDescriptorProto::clear_has_client_streaming() {
_has_bits_[0] &= ~0x00000010u;
}
- void MethodDescriptorProto::clear_client_streaming() {
+void MethodDescriptorProto::clear_client_streaming() {
client_streaming_ = false;
clear_has_client_streaming();
}
@@ -6952,16 +7532,16 @@ void MethodDescriptorProto::InternalSwap(MethodDescriptorProto* other) {
}
// optional bool server_streaming = 6 [default = false];
- bool MethodDescriptorProto::has_server_streaming() const {
+bool MethodDescriptorProto::has_server_streaming() const {
return (_has_bits_[0] & 0x00000020u) != 0;
}
- void MethodDescriptorProto::set_has_server_streaming() {
+void MethodDescriptorProto::set_has_server_streaming() {
_has_bits_[0] |= 0x00000020u;
}
- void MethodDescriptorProto::clear_has_server_streaming() {
+void MethodDescriptorProto::clear_has_server_streaming() {
_has_bits_[0] &= ~0x00000020u;
}
- void MethodDescriptorProto::clear_server_streaming() {
+void MethodDescriptorProto::clear_server_streaming() {
server_streaming_ = false;
clear_has_server_streaming();
}
@@ -7016,11 +7596,12 @@ const int FileOptions::kPyGenericServicesFieldNumber;
const int FileOptions::kDeprecatedFieldNumber;
const int FileOptions::kCcEnableArenasFieldNumber;
const int FileOptions::kObjcClassPrefixFieldNumber;
+const int FileOptions::kCsharpNamespaceFieldNumber;
const int FileOptions::kUninterpretedOptionFieldNumber;
#endif // !_MSC_VER
FileOptions::FileOptions()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.FileOptions)
}
@@ -7052,6 +7633,7 @@ void FileOptions::SharedCtor() {
deprecated_ = false;
cc_enable_arenas_ = false;
objc_class_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ csharp_namespace_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(_has_bits_, 0, sizeof(_has_bits_));
}
@@ -7065,6 +7647,7 @@ void FileOptions::SharedDtor() {
java_outer_classname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
go_package_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
objc_class_prefix_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ csharp_namespace_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
if (this != default_instance_) {
}
}
@@ -7104,7 +7687,7 @@ void FileOptions::Clear() {
ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
} while (0)
- if (_has_bits_[0 / 32] & 255) {
+ if (_has_bits_[0 / 32] & 255u) {
ZR_(java_multiple_files_, cc_generic_services_);
if (has_java_package()) {
java_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
@@ -7117,11 +7700,14 @@ void FileOptions::Clear() {
go_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
}
- if (_has_bits_[8 / 32] & 7936) {
+ if (_has_bits_[8 / 32] & 16128u) {
ZR_(java_generic_services_, cc_enable_arenas_);
if (has_objc_class_prefix()) {
objc_class_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
+ if (has_csharp_namespace()) {
+ csharp_namespace_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
}
#undef ZR_HELPER_
@@ -7347,6 +7933,23 @@ bool FileOptions::MergePartialFromCodedStream(
} else {
goto handle_unusual;
}
+ if (input->ExpectTag(298)) goto parse_csharp_namespace;
+ break;
+ }
+
+ // optional string csharp_namespace = 37;
+ case 37: {
+ if (tag == 298) {
+ parse_csharp_namespace:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_csharp_namespace()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->csharp_namespace().data(), this->csharp_namespace().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.FileOptions.csharp_namespace");
+ } else {
+ goto handle_unusual;
+ }
if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
break;
}
@@ -7355,12 +7958,15 @@ bool FileOptions::MergePartialFromCodedStream(
case 999: {
if (tag == 7994) {
parse_uninterpreted_option:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_uninterpreted_option:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_uninterpreted_option()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
+ if (input->ExpectTag(7994)) goto parse_loop_uninterpreted_option;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -7481,6 +8087,16 @@ void FileOptions::SerializeWithCachedSizes(
36, this->objc_class_prefix(), output);
}
+ // optional string csharp_namespace = 37;
+ if (has_csharp_namespace()) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->csharp_namespace().data(), this->csharp_namespace().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.FileOptions.csharp_namespace");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 37, this->csharp_namespace(), output);
+ }
+
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
for (unsigned int i = 0, n = this->uninterpreted_option_size(); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
@@ -7591,6 +8207,17 @@ void FileOptions::SerializeWithCachedSizes(
36, this->objc_class_prefix(), target);
}
+ // optional string csharp_namespace = 37;
+ if (has_csharp_namespace()) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->csharp_namespace().data(), this->csharp_namespace().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.FileOptions.csharp_namespace");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 37, this->csharp_namespace(), target);
+ }
+
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
for (unsigned int i = 0, n = this->uninterpreted_option_size(); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
@@ -7613,7 +8240,7 @@ void FileOptions::SerializeWithCachedSizes(
int FileOptions::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 255) {
+ if (_has_bits_[0 / 32] & 255u) {
// optional string java_package = 1;
if (has_java_package()) {
total_size += 1 +
@@ -7662,7 +8289,7 @@ int FileOptions::ByteSize() const {
}
}
- if (_has_bits_[8 / 32] & 7936) {
+ if (_has_bits_[8 / 32] & 16128u) {
// optional bool java_generic_services = 17 [default = false];
if (has_java_generic_services()) {
total_size += 2 + 1;
@@ -7690,6 +8317,13 @@ int FileOptions::ByteSize() const {
this->objc_class_prefix());
}
+ // optional string csharp_namespace = 37;
+ if (has_csharp_namespace()) {
+ total_size += 2 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->csharp_namespace());
+ }
+
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
total_size += 2 * this->uninterpreted_option_size();
@@ -7714,9 +8348,9 @@ int FileOptions::ByteSize() const {
void FileOptions::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const FileOptions* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const FileOptions*>(
- &from);
+ const FileOptions* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const FileOptions>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -7773,6 +8407,10 @@ void FileOptions::MergeFrom(const FileOptions& from) {
set_has_objc_class_prefix();
objc_class_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.objc_class_prefix_);
}
+ if (from.has_csharp_namespace()) {
+ set_has_csharp_namespace();
+ csharp_namespace_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.csharp_namespace_);
+ }
}
_extensions_.MergeFrom(from._extensions_);
if (from._internal_metadata_.have_unknown_fields()) {
@@ -7817,6 +8455,7 @@ void FileOptions::InternalSwap(FileOptions* other) {
std::swap(deprecated_, other->deprecated_);
std::swap(cc_enable_arenas_, other->cc_enable_arenas_);
objc_class_prefix_.Swap(&other->objc_class_prefix_);
+ csharp_namespace_.Swap(&other->csharp_namespace_);
uninterpreted_option_.UnsafeArenaSwap(&other->uninterpreted_option_);
std::swap(_has_bits_[0], other->_has_bits_[0]);
_internal_metadata_.Swap(&other->_internal_metadata_);
@@ -7836,16 +8475,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
// FileOptions
// optional string java_package = 1;
- bool FileOptions::has_java_package() const {
+bool FileOptions::has_java_package() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void FileOptions::set_has_java_package() {
+void FileOptions::set_has_java_package() {
_has_bits_[0] |= 0x00000001u;
}
- void FileOptions::clear_has_java_package() {
+void FileOptions::clear_has_java_package() {
_has_bits_[0] &= ~0x00000001u;
}
- void FileOptions::clear_java_package() {
+void FileOptions::clear_java_package() {
java_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_java_package();
}
@@ -7889,16 +8528,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional string java_outer_classname = 8;
- bool FileOptions::has_java_outer_classname() const {
+bool FileOptions::has_java_outer_classname() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void FileOptions::set_has_java_outer_classname() {
+void FileOptions::set_has_java_outer_classname() {
_has_bits_[0] |= 0x00000002u;
}
- void FileOptions::clear_has_java_outer_classname() {
+void FileOptions::clear_has_java_outer_classname() {
_has_bits_[0] &= ~0x00000002u;
}
- void FileOptions::clear_java_outer_classname() {
+void FileOptions::clear_java_outer_classname() {
java_outer_classname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_java_outer_classname();
}
@@ -7942,16 +8581,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional bool java_multiple_files = 10 [default = false];
- bool FileOptions::has_java_multiple_files() const {
+bool FileOptions::has_java_multiple_files() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void FileOptions::set_has_java_multiple_files() {
+void FileOptions::set_has_java_multiple_files() {
_has_bits_[0] |= 0x00000004u;
}
- void FileOptions::clear_has_java_multiple_files() {
+void FileOptions::clear_has_java_multiple_files() {
_has_bits_[0] &= ~0x00000004u;
}
- void FileOptions::clear_java_multiple_files() {
+void FileOptions::clear_java_multiple_files() {
java_multiple_files_ = false;
clear_has_java_multiple_files();
}
@@ -7966,16 +8605,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional bool java_generate_equals_and_hash = 20 [default = false];
- bool FileOptions::has_java_generate_equals_and_hash() const {
+bool FileOptions::has_java_generate_equals_and_hash() const {
return (_has_bits_[0] & 0x00000008u) != 0;
}
- void FileOptions::set_has_java_generate_equals_and_hash() {
+void FileOptions::set_has_java_generate_equals_and_hash() {
_has_bits_[0] |= 0x00000008u;
}
- void FileOptions::clear_has_java_generate_equals_and_hash() {
+void FileOptions::clear_has_java_generate_equals_and_hash() {
_has_bits_[0] &= ~0x00000008u;
}
- void FileOptions::clear_java_generate_equals_and_hash() {
+void FileOptions::clear_java_generate_equals_and_hash() {
java_generate_equals_and_hash_ = false;
clear_has_java_generate_equals_and_hash();
}
@@ -7990,16 +8629,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional bool java_string_check_utf8 = 27 [default = false];
- bool FileOptions::has_java_string_check_utf8() const {
+bool FileOptions::has_java_string_check_utf8() const {
return (_has_bits_[0] & 0x00000010u) != 0;
}
- void FileOptions::set_has_java_string_check_utf8() {
+void FileOptions::set_has_java_string_check_utf8() {
_has_bits_[0] |= 0x00000010u;
}
- void FileOptions::clear_has_java_string_check_utf8() {
+void FileOptions::clear_has_java_string_check_utf8() {
_has_bits_[0] &= ~0x00000010u;
}
- void FileOptions::clear_java_string_check_utf8() {
+void FileOptions::clear_java_string_check_utf8() {
java_string_check_utf8_ = false;
clear_has_java_string_check_utf8();
}
@@ -8014,16 +8653,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
- bool FileOptions::has_optimize_for() const {
+bool FileOptions::has_optimize_for() const {
return (_has_bits_[0] & 0x00000020u) != 0;
}
- void FileOptions::set_has_optimize_for() {
+void FileOptions::set_has_optimize_for() {
_has_bits_[0] |= 0x00000020u;
}
- void FileOptions::clear_has_optimize_for() {
+void FileOptions::clear_has_optimize_for() {
_has_bits_[0] &= ~0x00000020u;
}
- void FileOptions::clear_optimize_for() {
+void FileOptions::clear_optimize_for() {
optimize_for_ = 1;
clear_has_optimize_for();
}
@@ -8039,16 +8678,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional string go_package = 11;
- bool FileOptions::has_go_package() const {
+bool FileOptions::has_go_package() const {
return (_has_bits_[0] & 0x00000040u) != 0;
}
- void FileOptions::set_has_go_package() {
+void FileOptions::set_has_go_package() {
_has_bits_[0] |= 0x00000040u;
}
- void FileOptions::clear_has_go_package() {
+void FileOptions::clear_has_go_package() {
_has_bits_[0] &= ~0x00000040u;
}
- void FileOptions::clear_go_package() {
+void FileOptions::clear_go_package() {
go_package_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_go_package();
}
@@ -8092,16 +8731,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional bool cc_generic_services = 16 [default = false];
- bool FileOptions::has_cc_generic_services() const {
+bool FileOptions::has_cc_generic_services() const {
return (_has_bits_[0] & 0x00000080u) != 0;
}
- void FileOptions::set_has_cc_generic_services() {
+void FileOptions::set_has_cc_generic_services() {
_has_bits_[0] |= 0x00000080u;
}
- void FileOptions::clear_has_cc_generic_services() {
+void FileOptions::clear_has_cc_generic_services() {
_has_bits_[0] &= ~0x00000080u;
}
- void FileOptions::clear_cc_generic_services() {
+void FileOptions::clear_cc_generic_services() {
cc_generic_services_ = false;
clear_has_cc_generic_services();
}
@@ -8116,16 +8755,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional bool java_generic_services = 17 [default = false];
- bool FileOptions::has_java_generic_services() const {
+bool FileOptions::has_java_generic_services() const {
return (_has_bits_[0] & 0x00000100u) != 0;
}
- void FileOptions::set_has_java_generic_services() {
+void FileOptions::set_has_java_generic_services() {
_has_bits_[0] |= 0x00000100u;
}
- void FileOptions::clear_has_java_generic_services() {
+void FileOptions::clear_has_java_generic_services() {
_has_bits_[0] &= ~0x00000100u;
}
- void FileOptions::clear_java_generic_services() {
+void FileOptions::clear_java_generic_services() {
java_generic_services_ = false;
clear_has_java_generic_services();
}
@@ -8140,16 +8779,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional bool py_generic_services = 18 [default = false];
- bool FileOptions::has_py_generic_services() const {
+bool FileOptions::has_py_generic_services() const {
return (_has_bits_[0] & 0x00000200u) != 0;
}
- void FileOptions::set_has_py_generic_services() {
+void FileOptions::set_has_py_generic_services() {
_has_bits_[0] |= 0x00000200u;
}
- void FileOptions::clear_has_py_generic_services() {
+void FileOptions::clear_has_py_generic_services() {
_has_bits_[0] &= ~0x00000200u;
}
- void FileOptions::clear_py_generic_services() {
+void FileOptions::clear_py_generic_services() {
py_generic_services_ = false;
clear_has_py_generic_services();
}
@@ -8164,16 +8803,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional bool deprecated = 23 [default = false];
- bool FileOptions::has_deprecated() const {
+bool FileOptions::has_deprecated() const {
return (_has_bits_[0] & 0x00000400u) != 0;
}
- void FileOptions::set_has_deprecated() {
+void FileOptions::set_has_deprecated() {
_has_bits_[0] |= 0x00000400u;
}
- void FileOptions::clear_has_deprecated() {
+void FileOptions::clear_has_deprecated() {
_has_bits_[0] &= ~0x00000400u;
}
- void FileOptions::clear_deprecated() {
+void FileOptions::clear_deprecated() {
deprecated_ = false;
clear_has_deprecated();
}
@@ -8188,16 +8827,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional bool cc_enable_arenas = 31 [default = false];
- bool FileOptions::has_cc_enable_arenas() const {
+bool FileOptions::has_cc_enable_arenas() const {
return (_has_bits_[0] & 0x00000800u) != 0;
}
- void FileOptions::set_has_cc_enable_arenas() {
+void FileOptions::set_has_cc_enable_arenas() {
_has_bits_[0] |= 0x00000800u;
}
- void FileOptions::clear_has_cc_enable_arenas() {
+void FileOptions::clear_has_cc_enable_arenas() {
_has_bits_[0] &= ~0x00000800u;
}
- void FileOptions::clear_cc_enable_arenas() {
+void FileOptions::clear_cc_enable_arenas() {
cc_enable_arenas_ = false;
clear_has_cc_enable_arenas();
}
@@ -8212,16 +8851,16 @@ void FileOptions::InternalSwap(FileOptions* other) {
}
// optional string objc_class_prefix = 36;
- bool FileOptions::has_objc_class_prefix() const {
+bool FileOptions::has_objc_class_prefix() const {
return (_has_bits_[0] & 0x00001000u) != 0;
}
- void FileOptions::set_has_objc_class_prefix() {
+void FileOptions::set_has_objc_class_prefix() {
_has_bits_[0] |= 0x00001000u;
}
- void FileOptions::clear_has_objc_class_prefix() {
+void FileOptions::clear_has_objc_class_prefix() {
_has_bits_[0] &= ~0x00001000u;
}
- void FileOptions::clear_objc_class_prefix() {
+void FileOptions::clear_objc_class_prefix() {
objc_class_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_objc_class_prefix();
}
@@ -8264,11 +8903,64 @@ void FileOptions::InternalSwap(FileOptions* other) {
// @@protoc_insertion_point(field_set_allocated:google.protobuf.FileOptions.objc_class_prefix)
}
+// optional string csharp_namespace = 37;
+bool FileOptions::has_csharp_namespace() const {
+ return (_has_bits_[0] & 0x00002000u) != 0;
+}
+void FileOptions::set_has_csharp_namespace() {
+ _has_bits_[0] |= 0x00002000u;
+}
+void FileOptions::clear_has_csharp_namespace() {
+ _has_bits_[0] &= ~0x00002000u;
+}
+void FileOptions::clear_csharp_namespace() {
+ csharp_namespace_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ clear_has_csharp_namespace();
+}
+ const ::std::string& FileOptions::csharp_namespace() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.FileOptions.csharp_namespace)
+ return csharp_namespace_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void FileOptions::set_csharp_namespace(const ::std::string& value) {
+ set_has_csharp_namespace();
+ csharp_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.FileOptions.csharp_namespace)
+}
+ void FileOptions::set_csharp_namespace(const char* value) {
+ set_has_csharp_namespace();
+ csharp_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.FileOptions.csharp_namespace)
+}
+ void FileOptions::set_csharp_namespace(const char* value, size_t size) {
+ set_has_csharp_namespace();
+ csharp_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.FileOptions.csharp_namespace)
+}
+ ::std::string* FileOptions::mutable_csharp_namespace() {
+ set_has_csharp_namespace();
+ // @@protoc_insertion_point(field_mutable:google.protobuf.FileOptions.csharp_namespace)
+ return csharp_namespace_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* FileOptions::release_csharp_namespace() {
+ clear_has_csharp_namespace();
+ return csharp_namespace_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void FileOptions::set_allocated_csharp_namespace(::std::string* csharp_namespace) {
+ if (csharp_namespace != NULL) {
+ set_has_csharp_namespace();
+ } else {
+ clear_has_csharp_namespace();
+ }
+ csharp_namespace_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), csharp_namespace);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.FileOptions.csharp_namespace)
+}
+
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- int FileOptions::uninterpreted_option_size() const {
+int FileOptions::uninterpreted_option_size() const {
return uninterpreted_option_.size();
}
- void FileOptions::clear_uninterpreted_option() {
+void FileOptions::clear_uninterpreted_option() {
uninterpreted_option_.Clear();
}
const ::google::protobuf::UninterpretedOption& FileOptions::uninterpreted_option(int index) const {
@@ -8307,7 +8999,7 @@ const int MessageOptions::kUninterpretedOptionFieldNumber;
#endif // !_MSC_VER
MessageOptions::MessageOptions()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.MessageOptions)
}
@@ -8462,12 +9154,15 @@ bool MessageOptions::MergePartialFromCodedStream(
case 999: {
if (tag == 7994) {
parse_uninterpreted_option:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_uninterpreted_option:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_uninterpreted_option()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
+ if (input->ExpectTag(7994)) goto parse_loop_uninterpreted_option;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -8584,7 +9279,7 @@ void MessageOptions::SerializeWithCachedSizes(
int MessageOptions::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 15) {
+ if (_has_bits_[0 / 32] & 15u) {
// optional bool message_set_wire_format = 1 [default = false];
if (has_message_set_wire_format()) {
total_size += 1 + 1;
@@ -8629,9 +9324,9 @@ int MessageOptions::ByteSize() const {
void MessageOptions::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const MessageOptions* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const MessageOptions*>(
- &from);
+ const MessageOptions* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const MessageOptions>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -8709,16 +9404,16 @@ void MessageOptions::InternalSwap(MessageOptions* other) {
// MessageOptions
// optional bool message_set_wire_format = 1 [default = false];
- bool MessageOptions::has_message_set_wire_format() const {
+bool MessageOptions::has_message_set_wire_format() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void MessageOptions::set_has_message_set_wire_format() {
+void MessageOptions::set_has_message_set_wire_format() {
_has_bits_[0] |= 0x00000001u;
}
- void MessageOptions::clear_has_message_set_wire_format() {
+void MessageOptions::clear_has_message_set_wire_format() {
_has_bits_[0] &= ~0x00000001u;
}
- void MessageOptions::clear_message_set_wire_format() {
+void MessageOptions::clear_message_set_wire_format() {
message_set_wire_format_ = false;
clear_has_message_set_wire_format();
}
@@ -8733,16 +9428,16 @@ void MessageOptions::InternalSwap(MessageOptions* other) {
}
// optional bool no_standard_descriptor_accessor = 2 [default = false];
- bool MessageOptions::has_no_standard_descriptor_accessor() const {
+bool MessageOptions::has_no_standard_descriptor_accessor() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void MessageOptions::set_has_no_standard_descriptor_accessor() {
+void MessageOptions::set_has_no_standard_descriptor_accessor() {
_has_bits_[0] |= 0x00000002u;
}
- void MessageOptions::clear_has_no_standard_descriptor_accessor() {
+void MessageOptions::clear_has_no_standard_descriptor_accessor() {
_has_bits_[0] &= ~0x00000002u;
}
- void MessageOptions::clear_no_standard_descriptor_accessor() {
+void MessageOptions::clear_no_standard_descriptor_accessor() {
no_standard_descriptor_accessor_ = false;
clear_has_no_standard_descriptor_accessor();
}
@@ -8757,16 +9452,16 @@ void MessageOptions::InternalSwap(MessageOptions* other) {
}
// optional bool deprecated = 3 [default = false];
- bool MessageOptions::has_deprecated() const {
+bool MessageOptions::has_deprecated() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void MessageOptions::set_has_deprecated() {
+void MessageOptions::set_has_deprecated() {
_has_bits_[0] |= 0x00000004u;
}
- void MessageOptions::clear_has_deprecated() {
+void MessageOptions::clear_has_deprecated() {
_has_bits_[0] &= ~0x00000004u;
}
- void MessageOptions::clear_deprecated() {
+void MessageOptions::clear_deprecated() {
deprecated_ = false;
clear_has_deprecated();
}
@@ -8781,16 +9476,16 @@ void MessageOptions::InternalSwap(MessageOptions* other) {
}
// optional bool map_entry = 7;
- bool MessageOptions::has_map_entry() const {
+bool MessageOptions::has_map_entry() const {
return (_has_bits_[0] & 0x00000008u) != 0;
}
- void MessageOptions::set_has_map_entry() {
+void MessageOptions::set_has_map_entry() {
_has_bits_[0] |= 0x00000008u;
}
- void MessageOptions::clear_has_map_entry() {
+void MessageOptions::clear_has_map_entry() {
_has_bits_[0] &= ~0x00000008u;
}
- void MessageOptions::clear_map_entry() {
+void MessageOptions::clear_map_entry() {
map_entry_ = false;
clear_has_map_entry();
}
@@ -8805,10 +9500,10 @@ void MessageOptions::InternalSwap(MessageOptions* other) {
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- int MessageOptions::uninterpreted_option_size() const {
+int MessageOptions::uninterpreted_option_size() const {
return uninterpreted_option_.size();
}
- void MessageOptions::clear_uninterpreted_option() {
+void MessageOptions::clear_uninterpreted_option() {
uninterpreted_option_.Clear();
}
const ::google::protobuf::UninterpretedOption& MessageOptions::uninterpreted_option(int index) const {
@@ -8861,9 +9556,33 @@ const FieldOptions_CType FieldOptions::CType_MIN;
const FieldOptions_CType FieldOptions::CType_MAX;
const int FieldOptions::CType_ARRAYSIZE;
#endif // _MSC_VER
+const ::google::protobuf::EnumDescriptor* FieldOptions_JSType_descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return FieldOptions_JSType_descriptor_;
+}
+bool FieldOptions_JSType_IsValid(int value) {
+ switch(value) {
+ case 0:
+ case 1:
+ case 2:
+ return true;
+ default:
+ return false;
+ }
+}
+
+#ifndef _MSC_VER
+const FieldOptions_JSType FieldOptions::JS_NORMAL;
+const FieldOptions_JSType FieldOptions::JS_STRING;
+const FieldOptions_JSType FieldOptions::JS_NUMBER;
+const FieldOptions_JSType FieldOptions::JSType_MIN;
+const FieldOptions_JSType FieldOptions::JSType_MAX;
+const int FieldOptions::JSType_ARRAYSIZE;
+#endif // _MSC_VER
#ifndef _MSC_VER
const int FieldOptions::kCtypeFieldNumber;
const int FieldOptions::kPackedFieldNumber;
+const int FieldOptions::kJstypeFieldNumber;
const int FieldOptions::kLazyFieldNumber;
const int FieldOptions::kDeprecatedFieldNumber;
const int FieldOptions::kWeakFieldNumber;
@@ -8871,7 +9590,7 @@ const int FieldOptions::kUninterpretedOptionFieldNumber;
#endif // !_MSC_VER
FieldOptions::FieldOptions()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.FieldOptions)
}
@@ -8891,6 +9610,7 @@ void FieldOptions::SharedCtor() {
_cached_size_ = 0;
ctype_ = 0;
packed_ = false;
+ jstype_ = 0;
lazy_ = false;
deprecated_ = false;
weak_ = false;
@@ -8942,8 +9662,9 @@ void FieldOptions::Clear() {
ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
} while (0)
- if (_has_bits_[0 / 32] & 31) {
- ZR_(ctype_, weak_);
+ if (_has_bits_[0 / 32] & 63u) {
+ ZR_(ctype_, jstype_);
+ ZR_(packed_, weak_);
}
#undef ZR_HELPER_
@@ -9026,6 +9747,26 @@ bool FieldOptions::MergePartialFromCodedStream(
} else {
goto handle_unusual;
}
+ if (input->ExpectTag(48)) goto parse_jstype;
+ break;
+ }
+
+ // optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
+ case 6: {
+ if (tag == 48) {
+ parse_jstype:
+ int value;
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+ input, &value)));
+ if (::google::protobuf::FieldOptions_JSType_IsValid(value)) {
+ set_jstype(static_cast< ::google::protobuf::FieldOptions_JSType >(value));
+ } else {
+ mutable_unknown_fields()->AddVarint(6, value);
+ }
+ } else {
+ goto handle_unusual;
+ }
if (input->ExpectTag(80)) goto parse_weak;
break;
}
@@ -9049,12 +9790,15 @@ bool FieldOptions::MergePartialFromCodedStream(
case 999: {
if (tag == 7994) {
parse_uninterpreted_option:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_uninterpreted_option:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_uninterpreted_option()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
+ if (input->ExpectTag(7994)) goto parse_loop_uninterpreted_option;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -9110,6 +9854,12 @@ void FieldOptions::SerializeWithCachedSizes(
::google::protobuf::internal::WireFormatLite::WriteBool(5, this->lazy(), output);
}
+ // optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
+ if (has_jstype()) {
+ ::google::protobuf::internal::WireFormatLite::WriteEnum(
+ 6, this->jstype(), output);
+ }
+
// optional bool weak = 10 [default = false];
if (has_weak()) {
::google::protobuf::internal::WireFormatLite::WriteBool(10, this->weak(), output);
@@ -9156,6 +9906,12 @@ void FieldOptions::SerializeWithCachedSizes(
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(5, this->lazy(), target);
}
+ // optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
+ if (has_jstype()) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+ 6, this->jstype(), target);
+ }
+
// optional bool weak = 10 [default = false];
if (has_weak()) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(10, this->weak(), target);
@@ -9183,7 +9939,7 @@ void FieldOptions::SerializeWithCachedSizes(
int FieldOptions::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 31) {
+ if (_has_bits_[0 / 32] & 63u) {
// optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
if (has_ctype()) {
total_size += 1 +
@@ -9195,6 +9951,12 @@ int FieldOptions::ByteSize() const {
total_size += 1 + 1;
}
+ // optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
+ if (has_jstype()) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::EnumSize(this->jstype());
+ }
+
// optional bool lazy = 5 [default = false];
if (has_lazy()) {
total_size += 1 + 1;
@@ -9234,9 +9996,9 @@ int FieldOptions::ByteSize() const {
void FieldOptions::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const FieldOptions* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const FieldOptions*>(
- &from);
+ const FieldOptions* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const FieldOptions>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -9254,6 +10016,9 @@ void FieldOptions::MergeFrom(const FieldOptions& from) {
if (from.has_packed()) {
set_packed(from.packed());
}
+ if (from.has_jstype()) {
+ set_jstype(from.jstype());
+ }
if (from.has_lazy()) {
set_lazy(from.lazy());
}
@@ -9296,6 +10061,7 @@ void FieldOptions::Swap(FieldOptions* other) {
void FieldOptions::InternalSwap(FieldOptions* other) {
std::swap(ctype_, other->ctype_);
std::swap(packed_, other->packed_);
+ std::swap(jstype_, other->jstype_);
std::swap(lazy_, other->lazy_);
std::swap(deprecated_, other->deprecated_);
std::swap(weak_, other->weak_);
@@ -9318,16 +10084,16 @@ void FieldOptions::InternalSwap(FieldOptions* other) {
// FieldOptions
// optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
- bool FieldOptions::has_ctype() const {
+bool FieldOptions::has_ctype() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void FieldOptions::set_has_ctype() {
+void FieldOptions::set_has_ctype() {
_has_bits_[0] |= 0x00000001u;
}
- void FieldOptions::clear_has_ctype() {
+void FieldOptions::clear_has_ctype() {
_has_bits_[0] &= ~0x00000001u;
}
- void FieldOptions::clear_ctype() {
+void FieldOptions::clear_ctype() {
ctype_ = 0;
clear_has_ctype();
}
@@ -9343,16 +10109,16 @@ void FieldOptions::InternalSwap(FieldOptions* other) {
}
// optional bool packed = 2;
- bool FieldOptions::has_packed() const {
+bool FieldOptions::has_packed() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void FieldOptions::set_has_packed() {
+void FieldOptions::set_has_packed() {
_has_bits_[0] |= 0x00000002u;
}
- void FieldOptions::clear_has_packed() {
+void FieldOptions::clear_has_packed() {
_has_bits_[0] &= ~0x00000002u;
}
- void FieldOptions::clear_packed() {
+void FieldOptions::clear_packed() {
packed_ = false;
clear_has_packed();
}
@@ -9366,17 +10132,42 @@ void FieldOptions::InternalSwap(FieldOptions* other) {
// @@protoc_insertion_point(field_set:google.protobuf.FieldOptions.packed)
}
-// optional bool lazy = 5 [default = false];
- bool FieldOptions::has_lazy() const {
+// optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
+bool FieldOptions::has_jstype() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void FieldOptions::set_has_lazy() {
+void FieldOptions::set_has_jstype() {
_has_bits_[0] |= 0x00000004u;
}
- void FieldOptions::clear_has_lazy() {
+void FieldOptions::clear_has_jstype() {
_has_bits_[0] &= ~0x00000004u;
}
- void FieldOptions::clear_lazy() {
+void FieldOptions::clear_jstype() {
+ jstype_ = 0;
+ clear_has_jstype();
+}
+ ::google::protobuf::FieldOptions_JSType FieldOptions::jstype() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.FieldOptions.jstype)
+ return static_cast< ::google::protobuf::FieldOptions_JSType >(jstype_);
+}
+ void FieldOptions::set_jstype(::google::protobuf::FieldOptions_JSType value) {
+ assert(::google::protobuf::FieldOptions_JSType_IsValid(value));
+ set_has_jstype();
+ jstype_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.FieldOptions.jstype)
+}
+
+// optional bool lazy = 5 [default = false];
+bool FieldOptions::has_lazy() const {
+ return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void FieldOptions::set_has_lazy() {
+ _has_bits_[0] |= 0x00000008u;
+}
+void FieldOptions::clear_has_lazy() {
+ _has_bits_[0] &= ~0x00000008u;
+}
+void FieldOptions::clear_lazy() {
lazy_ = false;
clear_has_lazy();
}
@@ -9391,16 +10182,16 @@ void FieldOptions::InternalSwap(FieldOptions* other) {
}
// optional bool deprecated = 3 [default = false];
- bool FieldOptions::has_deprecated() const {
- return (_has_bits_[0] & 0x00000008u) != 0;
+bool FieldOptions::has_deprecated() const {
+ return (_has_bits_[0] & 0x00000010u) != 0;
}
- void FieldOptions::set_has_deprecated() {
- _has_bits_[0] |= 0x00000008u;
+void FieldOptions::set_has_deprecated() {
+ _has_bits_[0] |= 0x00000010u;
}
- void FieldOptions::clear_has_deprecated() {
- _has_bits_[0] &= ~0x00000008u;
+void FieldOptions::clear_has_deprecated() {
+ _has_bits_[0] &= ~0x00000010u;
}
- void FieldOptions::clear_deprecated() {
+void FieldOptions::clear_deprecated() {
deprecated_ = false;
clear_has_deprecated();
}
@@ -9415,16 +10206,16 @@ void FieldOptions::InternalSwap(FieldOptions* other) {
}
// optional bool weak = 10 [default = false];
- bool FieldOptions::has_weak() const {
- return (_has_bits_[0] & 0x00000010u) != 0;
+bool FieldOptions::has_weak() const {
+ return (_has_bits_[0] & 0x00000020u) != 0;
}
- void FieldOptions::set_has_weak() {
- _has_bits_[0] |= 0x00000010u;
+void FieldOptions::set_has_weak() {
+ _has_bits_[0] |= 0x00000020u;
}
- void FieldOptions::clear_has_weak() {
- _has_bits_[0] &= ~0x00000010u;
+void FieldOptions::clear_has_weak() {
+ _has_bits_[0] &= ~0x00000020u;
}
- void FieldOptions::clear_weak() {
+void FieldOptions::clear_weak() {
weak_ = false;
clear_has_weak();
}
@@ -9439,10 +10230,10 @@ void FieldOptions::InternalSwap(FieldOptions* other) {
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- int FieldOptions::uninterpreted_option_size() const {
+int FieldOptions::uninterpreted_option_size() const {
return uninterpreted_option_.size();
}
- void FieldOptions::clear_uninterpreted_option() {
+void FieldOptions::clear_uninterpreted_option() {
uninterpreted_option_.Clear();
}
const ::google::protobuf::UninterpretedOption& FieldOptions::uninterpreted_option(int index) const {
@@ -9479,7 +10270,7 @@ const int EnumOptions::kUninterpretedOptionFieldNumber;
#endif // !_MSC_VER
EnumOptions::EnumOptions()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.EnumOptions)
}
@@ -9602,12 +10393,15 @@ bool EnumOptions::MergePartialFromCodedStream(
case 999: {
if (tag == 7994) {
parse_uninterpreted_option:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_uninterpreted_option:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_uninterpreted_option()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
+ if (input->ExpectTag(7994)) goto parse_loop_uninterpreted_option;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -9704,7 +10498,7 @@ void EnumOptions::SerializeWithCachedSizes(
int EnumOptions::ByteSize() const {
int total_size = 0;
- if (_has_bits_[0 / 32] & 3) {
+ if (_has_bits_[0 / 32] & 3u) {
// optional bool allow_alias = 2;
if (has_allow_alias()) {
total_size += 1 + 1;
@@ -9739,9 +10533,9 @@ int EnumOptions::ByteSize() const {
void EnumOptions::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const EnumOptions* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const EnumOptions*>(
- &from);
+ const EnumOptions* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const EnumOptions>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -9811,16 +10605,16 @@ void EnumOptions::InternalSwap(EnumOptions* other) {
// EnumOptions
// optional bool allow_alias = 2;
- bool EnumOptions::has_allow_alias() const {
+bool EnumOptions::has_allow_alias() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void EnumOptions::set_has_allow_alias() {
+void EnumOptions::set_has_allow_alias() {
_has_bits_[0] |= 0x00000001u;
}
- void EnumOptions::clear_has_allow_alias() {
+void EnumOptions::clear_has_allow_alias() {
_has_bits_[0] &= ~0x00000001u;
}
- void EnumOptions::clear_allow_alias() {
+void EnumOptions::clear_allow_alias() {
allow_alias_ = false;
clear_has_allow_alias();
}
@@ -9835,16 +10629,16 @@ void EnumOptions::InternalSwap(EnumOptions* other) {
}
// optional bool deprecated = 3 [default = false];
- bool EnumOptions::has_deprecated() const {
+bool EnumOptions::has_deprecated() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void EnumOptions::set_has_deprecated() {
+void EnumOptions::set_has_deprecated() {
_has_bits_[0] |= 0x00000002u;
}
- void EnumOptions::clear_has_deprecated() {
+void EnumOptions::clear_has_deprecated() {
_has_bits_[0] &= ~0x00000002u;
}
- void EnumOptions::clear_deprecated() {
+void EnumOptions::clear_deprecated() {
deprecated_ = false;
clear_has_deprecated();
}
@@ -9859,10 +10653,10 @@ void EnumOptions::InternalSwap(EnumOptions* other) {
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- int EnumOptions::uninterpreted_option_size() const {
+int EnumOptions::uninterpreted_option_size() const {
return uninterpreted_option_.size();
}
- void EnumOptions::clear_uninterpreted_option() {
+void EnumOptions::clear_uninterpreted_option() {
uninterpreted_option_.Clear();
}
const ::google::protobuf::UninterpretedOption& EnumOptions::uninterpreted_option(int index) const {
@@ -9898,7 +10692,7 @@ const int EnumValueOptions::kUninterpretedOptionFieldNumber;
#endif // !_MSC_VER
EnumValueOptions::EnumValueOptions()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.EnumValueOptions)
}
@@ -9993,12 +10787,15 @@ bool EnumValueOptions::MergePartialFromCodedStream(
case 999: {
if (tag == 7994) {
parse_uninterpreted_option:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_uninterpreted_option:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_uninterpreted_option()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
+ if (input->ExpectTag(7994)) goto parse_loop_uninterpreted_option;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -10113,9 +10910,9 @@ int EnumValueOptions::ByteSize() const {
void EnumValueOptions::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const EnumValueOptions* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const EnumValueOptions*>(
- &from);
+ const EnumValueOptions* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const EnumValueOptions>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -10181,16 +10978,16 @@ void EnumValueOptions::InternalSwap(EnumValueOptions* other) {
// EnumValueOptions
// optional bool deprecated = 1 [default = false];
- bool EnumValueOptions::has_deprecated() const {
+bool EnumValueOptions::has_deprecated() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void EnumValueOptions::set_has_deprecated() {
+void EnumValueOptions::set_has_deprecated() {
_has_bits_[0] |= 0x00000001u;
}
- void EnumValueOptions::clear_has_deprecated() {
+void EnumValueOptions::clear_has_deprecated() {
_has_bits_[0] &= ~0x00000001u;
}
- void EnumValueOptions::clear_deprecated() {
+void EnumValueOptions::clear_deprecated() {
deprecated_ = false;
clear_has_deprecated();
}
@@ -10205,10 +11002,10 @@ void EnumValueOptions::InternalSwap(EnumValueOptions* other) {
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- int EnumValueOptions::uninterpreted_option_size() const {
+int EnumValueOptions::uninterpreted_option_size() const {
return uninterpreted_option_.size();
}
- void EnumValueOptions::clear_uninterpreted_option() {
+void EnumValueOptions::clear_uninterpreted_option() {
uninterpreted_option_.Clear();
}
const ::google::protobuf::UninterpretedOption& EnumValueOptions::uninterpreted_option(int index) const {
@@ -10244,7 +11041,7 @@ const int ServiceOptions::kUninterpretedOptionFieldNumber;
#endif // !_MSC_VER
ServiceOptions::ServiceOptions()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.ServiceOptions)
}
@@ -10339,12 +11136,15 @@ bool ServiceOptions::MergePartialFromCodedStream(
case 999: {
if (tag == 7994) {
parse_uninterpreted_option:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_uninterpreted_option:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_uninterpreted_option()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
+ if (input->ExpectTag(7994)) goto parse_loop_uninterpreted_option;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -10459,9 +11259,9 @@ int ServiceOptions::ByteSize() const {
void ServiceOptions::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const ServiceOptions* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const ServiceOptions*>(
- &from);
+ const ServiceOptions* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const ServiceOptions>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -10527,16 +11327,16 @@ void ServiceOptions::InternalSwap(ServiceOptions* other) {
// ServiceOptions
// optional bool deprecated = 33 [default = false];
- bool ServiceOptions::has_deprecated() const {
+bool ServiceOptions::has_deprecated() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void ServiceOptions::set_has_deprecated() {
+void ServiceOptions::set_has_deprecated() {
_has_bits_[0] |= 0x00000001u;
}
- void ServiceOptions::clear_has_deprecated() {
+void ServiceOptions::clear_has_deprecated() {
_has_bits_[0] &= ~0x00000001u;
}
- void ServiceOptions::clear_deprecated() {
+void ServiceOptions::clear_deprecated() {
deprecated_ = false;
clear_has_deprecated();
}
@@ -10551,10 +11351,10 @@ void ServiceOptions::InternalSwap(ServiceOptions* other) {
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- int ServiceOptions::uninterpreted_option_size() const {
+int ServiceOptions::uninterpreted_option_size() const {
return uninterpreted_option_.size();
}
- void ServiceOptions::clear_uninterpreted_option() {
+void ServiceOptions::clear_uninterpreted_option() {
uninterpreted_option_.Clear();
}
const ::google::protobuf::UninterpretedOption& ServiceOptions::uninterpreted_option(int index) const {
@@ -10590,7 +11390,7 @@ const int MethodOptions::kUninterpretedOptionFieldNumber;
#endif // !_MSC_VER
MethodOptions::MethodOptions()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.MethodOptions)
}
@@ -10685,12 +11485,15 @@ bool MethodOptions::MergePartialFromCodedStream(
case 999: {
if (tag == 7994) {
parse_uninterpreted_option:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_uninterpreted_option:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_uninterpreted_option()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(7994)) goto parse_uninterpreted_option;
+ if (input->ExpectTag(7994)) goto parse_loop_uninterpreted_option;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -10805,9 +11608,9 @@ int MethodOptions::ByteSize() const {
void MethodOptions::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const MethodOptions* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const MethodOptions*>(
- &from);
+ const MethodOptions* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const MethodOptions>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -10873,16 +11676,16 @@ void MethodOptions::InternalSwap(MethodOptions* other) {
// MethodOptions
// optional bool deprecated = 33 [default = false];
- bool MethodOptions::has_deprecated() const {
+bool MethodOptions::has_deprecated() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void MethodOptions::set_has_deprecated() {
+void MethodOptions::set_has_deprecated() {
_has_bits_[0] |= 0x00000001u;
}
- void MethodOptions::clear_has_deprecated() {
+void MethodOptions::clear_has_deprecated() {
_has_bits_[0] &= ~0x00000001u;
}
- void MethodOptions::clear_deprecated() {
+void MethodOptions::clear_deprecated() {
deprecated_ = false;
clear_has_deprecated();
}
@@ -10897,10 +11700,10 @@ void MethodOptions::InternalSwap(MethodOptions* other) {
}
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
- int MethodOptions::uninterpreted_option_size() const {
+int MethodOptions::uninterpreted_option_size() const {
return uninterpreted_option_.size();
}
- void MethodOptions::clear_uninterpreted_option() {
+void MethodOptions::clear_uninterpreted_option() {
uninterpreted_option_.Clear();
}
const ::google::protobuf::UninterpretedOption& MethodOptions::uninterpreted_option(int index) const {
@@ -10936,7 +11739,7 @@ const int UninterpretedOption_NamePart::kIsExtensionFieldNumber;
#endif // !_MSC_VER
UninterpretedOption_NamePart::UninterpretedOption_NamePart()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.UninterpretedOption.NamePart)
}
@@ -10997,7 +11800,7 @@ UninterpretedOption_NamePart* UninterpretedOption_NamePart::New(::google::protob
}
void UninterpretedOption_NamePart::Clear() {
- if (_has_bits_[0 / 32] & 3) {
+ if (_has_bits_[0 / 32] & 3u) {
if (has_name_part()) {
name_part_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -11169,9 +11972,9 @@ int UninterpretedOption_NamePart::ByteSize() const {
void UninterpretedOption_NamePart::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const UninterpretedOption_NamePart* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const UninterpretedOption_NamePart*>(
- &from);
+ const UninterpretedOption_NamePart* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const UninterpretedOption_NamePart>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -11247,7 +12050,7 @@ const int UninterpretedOption::kAggregateValueFieldNumber;
#endif // !_MSC_VER
UninterpretedOption::UninterpretedOption()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.UninterpretedOption)
}
@@ -11322,7 +12125,7 @@ void UninterpretedOption::Clear() {
ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
} while (0)
- if (_has_bits_[0 / 32] & 126) {
+ if (_has_bits_[0 / 32] & 126u) {
ZR_(positive_int_value_, double_value_);
if (has_identifier_value()) {
identifier_value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
@@ -11358,13 +12161,15 @@ bool UninterpretedOption::MergePartialFromCodedStream(
// repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
case 2: {
if (tag == 18) {
- parse_name:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_name:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_name()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(18)) goto parse_name;
+ if (input->ExpectTag(18)) goto parse_loop_name;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectTag(26)) goto parse_identifier_value;
break;
}
@@ -11605,7 +12410,7 @@ void UninterpretedOption::SerializeWithCachedSizes(
int UninterpretedOption::ByteSize() const {
int total_size = 0;
- if (_has_bits_[1 / 32] & 126) {
+ if (_has_bits_[1 / 32] & 126u) {
// optional string identifier_value = 3;
if (has_identifier_value()) {
total_size += 1 +
@@ -11668,9 +12473,9 @@ int UninterpretedOption::ByteSize() const {
void UninterpretedOption::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const UninterpretedOption* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const UninterpretedOption*>(
- &from);
+ const UninterpretedOption* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const UninterpretedOption>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -11756,16 +12561,16 @@ void UninterpretedOption::InternalSwap(UninterpretedOption* other) {
// UninterpretedOption_NamePart
// required string name_part = 1;
- bool UninterpretedOption_NamePart::has_name_part() const {
+bool UninterpretedOption_NamePart::has_name_part() const {
return (_has_bits_[0] & 0x00000001u) != 0;
}
- void UninterpretedOption_NamePart::set_has_name_part() {
+void UninterpretedOption_NamePart::set_has_name_part() {
_has_bits_[0] |= 0x00000001u;
}
- void UninterpretedOption_NamePart::clear_has_name_part() {
+void UninterpretedOption_NamePart::clear_has_name_part() {
_has_bits_[0] &= ~0x00000001u;
}
- void UninterpretedOption_NamePart::clear_name_part() {
+void UninterpretedOption_NamePart::clear_name_part() {
name_part_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_name_part();
}
@@ -11809,16 +12614,16 @@ void UninterpretedOption::InternalSwap(UninterpretedOption* other) {
}
// required bool is_extension = 2;
- bool UninterpretedOption_NamePart::has_is_extension() const {
+bool UninterpretedOption_NamePart::has_is_extension() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void UninterpretedOption_NamePart::set_has_is_extension() {
+void UninterpretedOption_NamePart::set_has_is_extension() {
_has_bits_[0] |= 0x00000002u;
}
- void UninterpretedOption_NamePart::clear_has_is_extension() {
+void UninterpretedOption_NamePart::clear_has_is_extension() {
_has_bits_[0] &= ~0x00000002u;
}
- void UninterpretedOption_NamePart::clear_is_extension() {
+void UninterpretedOption_NamePart::clear_is_extension() {
is_extension_ = false;
clear_has_is_extension();
}
@@ -11837,10 +12642,10 @@ void UninterpretedOption::InternalSwap(UninterpretedOption* other) {
// UninterpretedOption
// repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
- int UninterpretedOption::name_size() const {
+int UninterpretedOption::name_size() const {
return name_.size();
}
- void UninterpretedOption::clear_name() {
+void UninterpretedOption::clear_name() {
name_.Clear();
}
const ::google::protobuf::UninterpretedOption_NamePart& UninterpretedOption::name(int index) const {
@@ -11867,16 +12672,16 @@ UninterpretedOption::mutable_name() {
}
// optional string identifier_value = 3;
- bool UninterpretedOption::has_identifier_value() const {
+bool UninterpretedOption::has_identifier_value() const {
return (_has_bits_[0] & 0x00000002u) != 0;
}
- void UninterpretedOption::set_has_identifier_value() {
+void UninterpretedOption::set_has_identifier_value() {
_has_bits_[0] |= 0x00000002u;
}
- void UninterpretedOption::clear_has_identifier_value() {
+void UninterpretedOption::clear_has_identifier_value() {
_has_bits_[0] &= ~0x00000002u;
}
- void UninterpretedOption::clear_identifier_value() {
+void UninterpretedOption::clear_identifier_value() {
identifier_value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_identifier_value();
}
@@ -11920,16 +12725,16 @@ UninterpretedOption::mutable_name() {
}
// optional uint64 positive_int_value = 4;
- bool UninterpretedOption::has_positive_int_value() const {
+bool UninterpretedOption::has_positive_int_value() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void UninterpretedOption::set_has_positive_int_value() {
+void UninterpretedOption::set_has_positive_int_value() {
_has_bits_[0] |= 0x00000004u;
}
- void UninterpretedOption::clear_has_positive_int_value() {
+void UninterpretedOption::clear_has_positive_int_value() {
_has_bits_[0] &= ~0x00000004u;
}
- void UninterpretedOption::clear_positive_int_value() {
+void UninterpretedOption::clear_positive_int_value() {
positive_int_value_ = GOOGLE_ULONGLONG(0);
clear_has_positive_int_value();
}
@@ -11944,16 +12749,16 @@ UninterpretedOption::mutable_name() {
}
// optional int64 negative_int_value = 5;
- bool UninterpretedOption::has_negative_int_value() const {
+bool UninterpretedOption::has_negative_int_value() const {
return (_has_bits_[0] & 0x00000008u) != 0;
}
- void UninterpretedOption::set_has_negative_int_value() {
+void UninterpretedOption::set_has_negative_int_value() {
_has_bits_[0] |= 0x00000008u;
}
- void UninterpretedOption::clear_has_negative_int_value() {
+void UninterpretedOption::clear_has_negative_int_value() {
_has_bits_[0] &= ~0x00000008u;
}
- void UninterpretedOption::clear_negative_int_value() {
+void UninterpretedOption::clear_negative_int_value() {
negative_int_value_ = GOOGLE_LONGLONG(0);
clear_has_negative_int_value();
}
@@ -11968,16 +12773,16 @@ UninterpretedOption::mutable_name() {
}
// optional double double_value = 6;
- bool UninterpretedOption::has_double_value() const {
+bool UninterpretedOption::has_double_value() const {
return (_has_bits_[0] & 0x00000010u) != 0;
}
- void UninterpretedOption::set_has_double_value() {
+void UninterpretedOption::set_has_double_value() {
_has_bits_[0] |= 0x00000010u;
}
- void UninterpretedOption::clear_has_double_value() {
+void UninterpretedOption::clear_has_double_value() {
_has_bits_[0] &= ~0x00000010u;
}
- void UninterpretedOption::clear_double_value() {
+void UninterpretedOption::clear_double_value() {
double_value_ = 0;
clear_has_double_value();
}
@@ -11992,16 +12797,16 @@ UninterpretedOption::mutable_name() {
}
// optional bytes string_value = 7;
- bool UninterpretedOption::has_string_value() const {
+bool UninterpretedOption::has_string_value() const {
return (_has_bits_[0] & 0x00000020u) != 0;
}
- void UninterpretedOption::set_has_string_value() {
+void UninterpretedOption::set_has_string_value() {
_has_bits_[0] |= 0x00000020u;
}
- void UninterpretedOption::clear_has_string_value() {
+void UninterpretedOption::clear_has_string_value() {
_has_bits_[0] &= ~0x00000020u;
}
- void UninterpretedOption::clear_string_value() {
+void UninterpretedOption::clear_string_value() {
string_value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_string_value();
}
@@ -12045,16 +12850,16 @@ UninterpretedOption::mutable_name() {
}
// optional string aggregate_value = 8;
- bool UninterpretedOption::has_aggregate_value() const {
+bool UninterpretedOption::has_aggregate_value() const {
return (_has_bits_[0] & 0x00000040u) != 0;
}
- void UninterpretedOption::set_has_aggregate_value() {
+void UninterpretedOption::set_has_aggregate_value() {
_has_bits_[0] |= 0x00000040u;
}
- void UninterpretedOption::clear_has_aggregate_value() {
+void UninterpretedOption::clear_has_aggregate_value() {
_has_bits_[0] &= ~0x00000040u;
}
- void UninterpretedOption::clear_aggregate_value() {
+void UninterpretedOption::clear_aggregate_value() {
aggregate_value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_aggregate_value();
}
@@ -12110,7 +12915,7 @@ const int SourceCodeInfo_Location::kLeadingDetachedCommentsFieldNumber;
#endif // !_MSC_VER
SourceCodeInfo_Location::SourceCodeInfo_Location()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.SourceCodeInfo.Location)
}
@@ -12172,7 +12977,7 @@ SourceCodeInfo_Location* SourceCodeInfo_Location::New(::google::protobuf::Arena*
}
void SourceCodeInfo_Location::Clear() {
- if (_has_bits_[0 / 32] & 12) {
+ if (_has_bits_[0 / 32] & 12u) {
if (has_leading_comments()) {
leading_comments_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
@@ -12443,7 +13248,7 @@ void SourceCodeInfo_Location::SerializeWithCachedSizes(
int SourceCodeInfo_Location::ByteSize() const {
int total_size = 0;
- if (_has_bits_[2 / 32] & 12) {
+ if (_has_bits_[2 / 32] & 12u) {
// optional string leading_comments = 3;
if (has_leading_comments()) {
total_size += 1 +
@@ -12513,9 +13318,9 @@ int SourceCodeInfo_Location::ByteSize() const {
void SourceCodeInfo_Location::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const SourceCodeInfo_Location* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const SourceCodeInfo_Location*>(
- &from);
+ const SourceCodeInfo_Location* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const SourceCodeInfo_Location>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -12591,7 +13396,7 @@ const int SourceCodeInfo::kLocationFieldNumber;
#endif // !_MSC_VER
SourceCodeInfo::SourceCodeInfo()
- : ::google::protobuf::Message() , _internal_metadata_(NULL) {
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
SharedCtor();
// @@protoc_insertion_point(constructor:google.protobuf.SourceCodeInfo)
}
@@ -12668,13 +13473,15 @@ bool SourceCodeInfo::MergePartialFromCodedStream(
// repeated .google.protobuf.SourceCodeInfo.Location location = 1;
case 1: {
if (tag == 10) {
- parse_location:
- DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_location:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
input, add_location()));
} else {
goto handle_unusual;
}
- if (input->ExpectTag(10)) goto parse_location;
+ if (input->ExpectTag(10)) goto parse_loop_location;
+ input->UnsafeDecrementRecursionDepth();
if (input->ExpectAtEnd()) goto success;
break;
}
@@ -12759,9 +13566,9 @@ int SourceCodeInfo::ByteSize() const {
void SourceCodeInfo::MergeFrom(const ::google::protobuf::Message& from) {
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
- const SourceCodeInfo* source =
- ::google::protobuf::internal::dynamic_cast_if_available<const SourceCodeInfo*>(
- &from);
+ const SourceCodeInfo* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const SourceCodeInfo>(
+ &from);
if (source == NULL) {
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
@@ -12817,10 +13624,10 @@ void SourceCodeInfo::InternalSwap(SourceCodeInfo* other) {
// SourceCodeInfo_Location
// repeated int32 path = 1 [packed = true];
- int SourceCodeInfo_Location::path_size() const {
+int SourceCodeInfo_Location::path_size() const {
return path_.size();
}
- void SourceCodeInfo_Location::clear_path() {
+void SourceCodeInfo_Location::clear_path() {
path_.Clear();
}
::google::protobuf::int32 SourceCodeInfo_Location::path(int index) const {
@@ -12847,10 +13654,10 @@ SourceCodeInfo_Location::mutable_path() {
}
// repeated int32 span = 2 [packed = true];
- int SourceCodeInfo_Location::span_size() const {
+int SourceCodeInfo_Location::span_size() const {
return span_.size();
}
- void SourceCodeInfo_Location::clear_span() {
+void SourceCodeInfo_Location::clear_span() {
span_.Clear();
}
::google::protobuf::int32 SourceCodeInfo_Location::span(int index) const {
@@ -12877,16 +13684,16 @@ SourceCodeInfo_Location::mutable_span() {
}
// optional string leading_comments = 3;
- bool SourceCodeInfo_Location::has_leading_comments() const {
+bool SourceCodeInfo_Location::has_leading_comments() const {
return (_has_bits_[0] & 0x00000004u) != 0;
}
- void SourceCodeInfo_Location::set_has_leading_comments() {
+void SourceCodeInfo_Location::set_has_leading_comments() {
_has_bits_[0] |= 0x00000004u;
}
- void SourceCodeInfo_Location::clear_has_leading_comments() {
+void SourceCodeInfo_Location::clear_has_leading_comments() {
_has_bits_[0] &= ~0x00000004u;
}
- void SourceCodeInfo_Location::clear_leading_comments() {
+void SourceCodeInfo_Location::clear_leading_comments() {
leading_comments_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_leading_comments();
}
@@ -12930,16 +13737,16 @@ SourceCodeInfo_Location::mutable_span() {
}
// optional string trailing_comments = 4;
- bool SourceCodeInfo_Location::has_trailing_comments() const {
+bool SourceCodeInfo_Location::has_trailing_comments() const {
return (_has_bits_[0] & 0x00000008u) != 0;
}
- void SourceCodeInfo_Location::set_has_trailing_comments() {
+void SourceCodeInfo_Location::set_has_trailing_comments() {
_has_bits_[0] |= 0x00000008u;
}
- void SourceCodeInfo_Location::clear_has_trailing_comments() {
+void SourceCodeInfo_Location::clear_has_trailing_comments() {
_has_bits_[0] &= ~0x00000008u;
}
- void SourceCodeInfo_Location::clear_trailing_comments() {
+void SourceCodeInfo_Location::clear_trailing_comments() {
trailing_comments_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
clear_has_trailing_comments();
}
@@ -12983,10 +13790,10 @@ SourceCodeInfo_Location::mutable_span() {
}
// repeated string leading_detached_comments = 6;
- int SourceCodeInfo_Location::leading_detached_comments_size() const {
+int SourceCodeInfo_Location::leading_detached_comments_size() const {
return leading_detached_comments_.size();
}
- void SourceCodeInfo_Location::clear_leading_detached_comments() {
+void SourceCodeInfo_Location::clear_leading_detached_comments() {
leading_detached_comments_.Clear();
}
const ::std::string& SourceCodeInfo_Location::leading_detached_comments(int index) const {
@@ -13041,10 +13848,10 @@ SourceCodeInfo_Location::mutable_leading_detached_comments() {
// SourceCodeInfo
// repeated .google.protobuf.SourceCodeInfo.Location location = 1;
- int SourceCodeInfo::location_size() const {
+int SourceCodeInfo::location_size() const {
return location_.size();
}
- void SourceCodeInfo::clear_location() {
+void SourceCodeInfo::clear_location() {
location_.Clear();
}
const ::google::protobuf::SourceCodeInfo_Location& SourceCodeInfo::location(int index) const {
diff --git a/src/google/protobuf/descriptor.pb.h b/src/google/protobuf/descriptor.pb.h
index d8cba659..b887b8cb 100644
--- a/src/google/protobuf/descriptor.pb.h
+++ b/src/google/protobuf/descriptor.pb.h
@@ -42,6 +42,7 @@ class FileDescriptorSet;
class FileDescriptorProto;
class DescriptorProto;
class DescriptorProto_ExtensionRange;
+class DescriptorProto_ReservedRange;
class FieldDescriptorProto;
class OneofDescriptorProto;
class EnumDescriptorProto;
@@ -155,6 +156,26 @@ inline bool FieldOptions_CType_Parse(
return ::google::protobuf::internal::ParseNamedEnum<FieldOptions_CType>(
FieldOptions_CType_descriptor(), name, value);
}
+enum FieldOptions_JSType {
+ FieldOptions_JSType_JS_NORMAL = 0,
+ FieldOptions_JSType_JS_STRING = 1,
+ FieldOptions_JSType_JS_NUMBER = 2
+};
+LIBPROTOBUF_EXPORT bool FieldOptions_JSType_IsValid(int value);
+const FieldOptions_JSType FieldOptions_JSType_JSType_MIN = FieldOptions_JSType_JS_NORMAL;
+const FieldOptions_JSType FieldOptions_JSType_JSType_MAX = FieldOptions_JSType_JS_NUMBER;
+const int FieldOptions_JSType_JSType_ARRAYSIZE = FieldOptions_JSType_JSType_MAX + 1;
+
+LIBPROTOBUF_EXPORT const ::google::protobuf::EnumDescriptor* FieldOptions_JSType_descriptor();
+inline const ::std::string& FieldOptions_JSType_Name(FieldOptions_JSType value) {
+ return ::google::protobuf::internal::NameOfEnum(
+ FieldOptions_JSType_descriptor(), value);
+}
+inline bool FieldOptions_JSType_Parse(
+ const ::std::string& name, FieldOptions_JSType* value) {
+ return ::google::protobuf::internal::ParseNamedEnum<FieldOptions_JSType>(
+ FieldOptions_JSType_descriptor(), name, value);
+}
// ===================================================================
class LIBPROTOBUF_EXPORT FileDescriptorSet : public ::google::protobuf::Message {
@@ -591,6 +612,105 @@ class LIBPROTOBUF_EXPORT DescriptorProto_ExtensionRange : public ::google::proto
};
// -------------------------------------------------------------------
+class LIBPROTOBUF_EXPORT DescriptorProto_ReservedRange : public ::google::protobuf::Message {
+ public:
+ DescriptorProto_ReservedRange();
+ virtual ~DescriptorProto_ReservedRange();
+
+ DescriptorProto_ReservedRange(const DescriptorProto_ReservedRange& from);
+
+ inline DescriptorProto_ReservedRange& operator=(const DescriptorProto_ReservedRange& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _internal_metadata_.unknown_fields();
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return _internal_metadata_.mutable_unknown_fields();
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const DescriptorProto_ReservedRange& default_instance();
+
+ void Swap(DescriptorProto_ReservedRange* other);
+
+ // implements Message ----------------------------------------------
+
+ inline DescriptorProto_ReservedRange* New() const { return New(NULL); }
+
+ DescriptorProto_ReservedRange* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const DescriptorProto_ReservedRange& from);
+ void MergeFrom(const DescriptorProto_ReservedRange& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(DescriptorProto_ReservedRange* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional int32 start = 1;
+ bool has_start() const;
+ void clear_start();
+ static const int kStartFieldNumber = 1;
+ ::google::protobuf::int32 start() const;
+ void set_start(::google::protobuf::int32 value);
+
+ // optional int32 end = 2;
+ bool has_end() const;
+ void clear_end();
+ static const int kEndFieldNumber = 2;
+ ::google::protobuf::int32 end() const;
+ void set_end(::google::protobuf::int32 value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.DescriptorProto.ReservedRange)
+ private:
+ inline void set_has_start();
+ inline void clear_has_start();
+ inline void set_has_end();
+ inline void clear_has_end();
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::google::protobuf::int32 start_;
+ ::google::protobuf::int32 end_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
+
+ void InitAsDefaultInstance();
+ static DescriptorProto_ReservedRange* default_instance_;
+};
+// -------------------------------------------------------------------
+
class LIBPROTOBUF_EXPORT DescriptorProto : public ::google::protobuf::Message {
public:
DescriptorProto();
@@ -654,6 +774,7 @@ class LIBPROTOBUF_EXPORT DescriptorProto : public ::google::protobuf::Message {
// nested types ----------------------------------------------------
typedef DescriptorProto_ExtensionRange ExtensionRange;
+ typedef DescriptorProto_ReservedRange ReservedRange;
// accessors -------------------------------------------------------
@@ -750,6 +871,34 @@ class LIBPROTOBUF_EXPORT DescriptorProto : public ::google::protobuf::Message {
::google::protobuf::MessageOptions* release_options();
void set_allocated_options(::google::protobuf::MessageOptions* options);
+ // repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
+ int reserved_range_size() const;
+ void clear_reserved_range();
+ static const int kReservedRangeFieldNumber = 9;
+ const ::google::protobuf::DescriptorProto_ReservedRange& reserved_range(int index) const;
+ ::google::protobuf::DescriptorProto_ReservedRange* mutable_reserved_range(int index);
+ ::google::protobuf::DescriptorProto_ReservedRange* add_reserved_range();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ReservedRange >&
+ reserved_range() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ReservedRange >*
+ mutable_reserved_range();
+
+ // repeated string reserved_name = 10;
+ int reserved_name_size() const;
+ void clear_reserved_name();
+ static const int kReservedNameFieldNumber = 10;
+ const ::std::string& reserved_name(int index) const;
+ ::std::string* mutable_reserved_name(int index);
+ void set_reserved_name(int index, const ::std::string& value);
+ void set_reserved_name(int index, const char* value);
+ void set_reserved_name(int index, const char* value, size_t size);
+ ::std::string* add_reserved_name();
+ void add_reserved_name(const ::std::string& value);
+ void add_reserved_name(const char* value);
+ void add_reserved_name(const char* value, size_t size);
+ const ::google::protobuf::RepeatedPtrField< ::std::string>& reserved_name() const;
+ ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_reserved_name();
+
// @@protoc_insertion_point(class_scope:google.protobuf.DescriptorProto)
private:
inline void set_has_name();
@@ -768,6 +917,8 @@ class LIBPROTOBUF_EXPORT DescriptorProto : public ::google::protobuf::Message {
::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ExtensionRange > extension_range_;
::google::protobuf::RepeatedPtrField< ::google::protobuf::OneofDescriptorProto > oneof_decl_;
::google::protobuf::MessageOptions* options_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ReservedRange > reserved_range_;
+ ::google::protobuf::RepeatedPtrField< ::std::string> reserved_name_;
friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
@@ -1837,6 +1988,18 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message {
::std::string* release_objc_class_prefix();
void set_allocated_objc_class_prefix(::std::string* objc_class_prefix);
+ // optional string csharp_namespace = 37;
+ bool has_csharp_namespace() const;
+ void clear_csharp_namespace();
+ static const int kCsharpNamespaceFieldNumber = 37;
+ const ::std::string& csharp_namespace() const;
+ void set_csharp_namespace(const ::std::string& value);
+ void set_csharp_namespace(const char* value);
+ void set_csharp_namespace(const char* value, size_t size);
+ ::std::string* mutable_csharp_namespace();
+ ::std::string* release_csharp_namespace();
+ void set_allocated_csharp_namespace(::std::string* csharp_namespace);
+
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
int uninterpreted_option_size() const;
void clear_uninterpreted_option();
@@ -1878,6 +2041,8 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message {
inline void clear_has_cc_enable_arenas();
inline void set_has_objc_class_prefix();
inline void clear_has_objc_class_prefix();
+ inline void set_has_csharp_namespace();
+ inline void clear_has_csharp_namespace();
::google::protobuf::internal::ExtensionSet _extensions_;
@@ -1893,6 +2058,7 @@ class LIBPROTOBUF_EXPORT FileOptions : public ::google::protobuf::Message {
int optimize_for_;
::google::protobuf::internal::ArenaStringPtr go_package_;
::google::protobuf::internal::ArenaStringPtr objc_class_prefix_;
+ ::google::protobuf::internal::ArenaStringPtr csharp_namespace_;
::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption > uninterpreted_option_;
bool java_generic_services_;
bool py_generic_services_;
@@ -2129,6 +2295,31 @@ class LIBPROTOBUF_EXPORT FieldOptions : public ::google::protobuf::Message {
return FieldOptions_CType_Parse(name, value);
}
+ typedef FieldOptions_JSType JSType;
+ static const JSType JS_NORMAL = FieldOptions_JSType_JS_NORMAL;
+ static const JSType JS_STRING = FieldOptions_JSType_JS_STRING;
+ static const JSType JS_NUMBER = FieldOptions_JSType_JS_NUMBER;
+ static inline bool JSType_IsValid(int value) {
+ return FieldOptions_JSType_IsValid(value);
+ }
+ static const JSType JSType_MIN =
+ FieldOptions_JSType_JSType_MIN;
+ static const JSType JSType_MAX =
+ FieldOptions_JSType_JSType_MAX;
+ static const int JSType_ARRAYSIZE =
+ FieldOptions_JSType_JSType_ARRAYSIZE;
+ static inline const ::google::protobuf::EnumDescriptor*
+ JSType_descriptor() {
+ return FieldOptions_JSType_descriptor();
+ }
+ static inline const ::std::string& JSType_Name(JSType value) {
+ return FieldOptions_JSType_Name(value);
+ }
+ static inline bool JSType_Parse(const ::std::string& name,
+ JSType* value) {
+ return FieldOptions_JSType_Parse(name, value);
+ }
+
// accessors -------------------------------------------------------
// optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
@@ -2145,6 +2336,13 @@ class LIBPROTOBUF_EXPORT FieldOptions : public ::google::protobuf::Message {
bool packed() const;
void set_packed(bool value);
+ // optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
+ bool has_jstype() const;
+ void clear_jstype();
+ static const int kJstypeFieldNumber = 6;
+ ::google::protobuf::FieldOptions_JSType jstype() const;
+ void set_jstype(::google::protobuf::FieldOptions_JSType value);
+
// optional bool lazy = 5 [default = false];
bool has_lazy() const;
void clear_lazy();
@@ -2185,6 +2383,8 @@ class LIBPROTOBUF_EXPORT FieldOptions : public ::google::protobuf::Message {
inline void clear_has_ctype();
inline void set_has_packed();
inline void clear_has_packed();
+ inline void set_has_jstype();
+ inline void clear_has_jstype();
inline void set_has_lazy();
inline void clear_has_lazy();
inline void set_has_deprecated();
@@ -2198,11 +2398,12 @@ class LIBPROTOBUF_EXPORT FieldOptions : public ::google::protobuf::Message {
::google::protobuf::uint32 _has_bits_[1];
mutable int _cached_size_;
int ctype_;
+ int jstype_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption > uninterpreted_option_;
bool packed_;
bool lazy_;
bool deprecated_;
bool weak_;
- ::google::protobuf::RepeatedPtrField< ::google::protobuf::UninterpretedOption > uninterpreted_option_;
friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fdescriptor_2eproto();
friend void protobuf_AssignDesc_google_2fprotobuf_2fdescriptor_2eproto();
friend void protobuf_ShutdownFile_google_2fprotobuf_2fdescriptor_2eproto();
@@ -3739,6 +3940,58 @@ inline void DescriptorProto_ExtensionRange::set_end(::google::protobuf::int32 va
// -------------------------------------------------------------------
+// DescriptorProto_ReservedRange
+
+// optional int32 start = 1;
+inline bool DescriptorProto_ReservedRange::has_start() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void DescriptorProto_ReservedRange::set_has_start() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void DescriptorProto_ReservedRange::clear_has_start() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void DescriptorProto_ReservedRange::clear_start() {
+ start_ = 0;
+ clear_has_start();
+}
+inline ::google::protobuf::int32 DescriptorProto_ReservedRange::start() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.DescriptorProto.ReservedRange.start)
+ return start_;
+}
+inline void DescriptorProto_ReservedRange::set_start(::google::protobuf::int32 value) {
+ set_has_start();
+ start_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.DescriptorProto.ReservedRange.start)
+}
+
+// optional int32 end = 2;
+inline bool DescriptorProto_ReservedRange::has_end() const {
+ return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void DescriptorProto_ReservedRange::set_has_end() {
+ _has_bits_[0] |= 0x00000002u;
+}
+inline void DescriptorProto_ReservedRange::clear_has_end() {
+ _has_bits_[0] &= ~0x00000002u;
+}
+inline void DescriptorProto_ReservedRange::clear_end() {
+ end_ = 0;
+ clear_has_end();
+}
+inline ::google::protobuf::int32 DescriptorProto_ReservedRange::end() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.DescriptorProto.ReservedRange.end)
+ return end_;
+}
+inline void DescriptorProto_ReservedRange::set_end(::google::protobuf::int32 value) {
+ set_has_end();
+ end_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.DescriptorProto.ReservedRange.end)
+}
+
+// -------------------------------------------------------------------
+
// DescriptorProto
// optional string name = 1;
@@ -4017,6 +4270,90 @@ inline void DescriptorProto::set_allocated_options(::google::protobuf::MessageOp
// @@protoc_insertion_point(field_set_allocated:google.protobuf.DescriptorProto.options)
}
+// repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
+inline int DescriptorProto::reserved_range_size() const {
+ return reserved_range_.size();
+}
+inline void DescriptorProto::clear_reserved_range() {
+ reserved_range_.Clear();
+}
+inline const ::google::protobuf::DescriptorProto_ReservedRange& DescriptorProto::reserved_range(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.DescriptorProto.reserved_range)
+ return reserved_range_.Get(index);
+}
+inline ::google::protobuf::DescriptorProto_ReservedRange* DescriptorProto::mutable_reserved_range(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.DescriptorProto.reserved_range)
+ return reserved_range_.Mutable(index);
+}
+inline ::google::protobuf::DescriptorProto_ReservedRange* DescriptorProto::add_reserved_range() {
+ // @@protoc_insertion_point(field_add:google.protobuf.DescriptorProto.reserved_range)
+ return reserved_range_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ReservedRange >&
+DescriptorProto::reserved_range() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.DescriptorProto.reserved_range)
+ return reserved_range_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::DescriptorProto_ReservedRange >*
+DescriptorProto::mutable_reserved_range() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.DescriptorProto.reserved_range)
+ return &reserved_range_;
+}
+
+// repeated string reserved_name = 10;
+inline int DescriptorProto::reserved_name_size() const {
+ return reserved_name_.size();
+}
+inline void DescriptorProto::clear_reserved_name() {
+ reserved_name_.Clear();
+}
+inline const ::std::string& DescriptorProto::reserved_name(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.DescriptorProto.reserved_name)
+ return reserved_name_.Get(index);
+}
+inline ::std::string* DescriptorProto::mutable_reserved_name(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.DescriptorProto.reserved_name)
+ return reserved_name_.Mutable(index);
+}
+inline void DescriptorProto::set_reserved_name(int index, const ::std::string& value) {
+ // @@protoc_insertion_point(field_set:google.protobuf.DescriptorProto.reserved_name)
+ reserved_name_.Mutable(index)->assign(value);
+}
+inline void DescriptorProto::set_reserved_name(int index, const char* value) {
+ reserved_name_.Mutable(index)->assign(value);
+ // @@protoc_insertion_point(field_set_char:google.protobuf.DescriptorProto.reserved_name)
+}
+inline void DescriptorProto::set_reserved_name(int index, const char* value, size_t size) {
+ reserved_name_.Mutable(index)->assign(
+ reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.DescriptorProto.reserved_name)
+}
+inline ::std::string* DescriptorProto::add_reserved_name() {
+ return reserved_name_.Add();
+}
+inline void DescriptorProto::add_reserved_name(const ::std::string& value) {
+ reserved_name_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add:google.protobuf.DescriptorProto.reserved_name)
+}
+inline void DescriptorProto::add_reserved_name(const char* value) {
+ reserved_name_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add_char:google.protobuf.DescriptorProto.reserved_name)
+}
+inline void DescriptorProto::add_reserved_name(const char* value, size_t size) {
+ reserved_name_.Add()->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_add_pointer:google.protobuf.DescriptorProto.reserved_name)
+}
+inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
+DescriptorProto::reserved_name() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.DescriptorProto.reserved_name)
+ return reserved_name_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::std::string>*
+DescriptorProto::mutable_reserved_name() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.DescriptorProto.reserved_name)
+ return &reserved_name_;
+}
+
// -------------------------------------------------------------------
// FieldDescriptorProto
@@ -5502,6 +5839,59 @@ inline void FileOptions::set_allocated_objc_class_prefix(::std::string* objc_cla
// @@protoc_insertion_point(field_set_allocated:google.protobuf.FileOptions.objc_class_prefix)
}
+// optional string csharp_namespace = 37;
+inline bool FileOptions::has_csharp_namespace() const {
+ return (_has_bits_[0] & 0x00002000u) != 0;
+}
+inline void FileOptions::set_has_csharp_namespace() {
+ _has_bits_[0] |= 0x00002000u;
+}
+inline void FileOptions::clear_has_csharp_namespace() {
+ _has_bits_[0] &= ~0x00002000u;
+}
+inline void FileOptions::clear_csharp_namespace() {
+ csharp_namespace_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ clear_has_csharp_namespace();
+}
+inline const ::std::string& FileOptions::csharp_namespace() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.FileOptions.csharp_namespace)
+ return csharp_namespace_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void FileOptions::set_csharp_namespace(const ::std::string& value) {
+ set_has_csharp_namespace();
+ csharp_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.FileOptions.csharp_namespace)
+}
+inline void FileOptions::set_csharp_namespace(const char* value) {
+ set_has_csharp_namespace();
+ csharp_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.FileOptions.csharp_namespace)
+}
+inline void FileOptions::set_csharp_namespace(const char* value, size_t size) {
+ set_has_csharp_namespace();
+ csharp_namespace_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.FileOptions.csharp_namespace)
+}
+inline ::std::string* FileOptions::mutable_csharp_namespace() {
+ set_has_csharp_namespace();
+ // @@protoc_insertion_point(field_mutable:google.protobuf.FileOptions.csharp_namespace)
+ return csharp_namespace_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* FileOptions::release_csharp_namespace() {
+ clear_has_csharp_namespace();
+ return csharp_namespace_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void FileOptions::set_allocated_csharp_namespace(::std::string* csharp_namespace) {
+ if (csharp_namespace != NULL) {
+ set_has_csharp_namespace();
+ } else {
+ clear_has_csharp_namespace();
+ }
+ csharp_namespace_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), csharp_namespace);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.FileOptions.csharp_namespace)
+}
+
// repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
inline int FileOptions::uninterpreted_option_size() const {
return uninterpreted_option_.size();
@@ -5715,15 +6105,40 @@ inline void FieldOptions::set_packed(bool value) {
// @@protoc_insertion_point(field_set:google.protobuf.FieldOptions.packed)
}
+// optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
+inline bool FieldOptions::has_jstype() const {
+ return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void FieldOptions::set_has_jstype() {
+ _has_bits_[0] |= 0x00000004u;
+}
+inline void FieldOptions::clear_has_jstype() {
+ _has_bits_[0] &= ~0x00000004u;
+}
+inline void FieldOptions::clear_jstype() {
+ jstype_ = 0;
+ clear_has_jstype();
+}
+inline ::google::protobuf::FieldOptions_JSType FieldOptions::jstype() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.FieldOptions.jstype)
+ return static_cast< ::google::protobuf::FieldOptions_JSType >(jstype_);
+}
+inline void FieldOptions::set_jstype(::google::protobuf::FieldOptions_JSType value) {
+ assert(::google::protobuf::FieldOptions_JSType_IsValid(value));
+ set_has_jstype();
+ jstype_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.FieldOptions.jstype)
+}
+
// optional bool lazy = 5 [default = false];
inline bool FieldOptions::has_lazy() const {
- return (_has_bits_[0] & 0x00000004u) != 0;
+ return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void FieldOptions::set_has_lazy() {
- _has_bits_[0] |= 0x00000004u;
+ _has_bits_[0] |= 0x00000008u;
}
inline void FieldOptions::clear_has_lazy() {
- _has_bits_[0] &= ~0x00000004u;
+ _has_bits_[0] &= ~0x00000008u;
}
inline void FieldOptions::clear_lazy() {
lazy_ = false;
@@ -5741,13 +6156,13 @@ inline void FieldOptions::set_lazy(bool value) {
// optional bool deprecated = 3 [default = false];
inline bool FieldOptions::has_deprecated() const {
- return (_has_bits_[0] & 0x00000008u) != 0;
+ return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void FieldOptions::set_has_deprecated() {
- _has_bits_[0] |= 0x00000008u;
+ _has_bits_[0] |= 0x00000010u;
}
inline void FieldOptions::clear_has_deprecated() {
- _has_bits_[0] &= ~0x00000008u;
+ _has_bits_[0] &= ~0x00000010u;
}
inline void FieldOptions::clear_deprecated() {
deprecated_ = false;
@@ -5765,13 +6180,13 @@ inline void FieldOptions::set_deprecated(bool value) {
// optional bool weak = 10 [default = false];
inline bool FieldOptions::has_weak() const {
- return (_has_bits_[0] & 0x00000010u) != 0;
+ return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void FieldOptions::set_has_weak() {
- _has_bits_[0] |= 0x00000010u;
+ _has_bits_[0] |= 0x00000020u;
}
inline void FieldOptions::clear_has_weak() {
- _has_bits_[0] &= ~0x00000010u;
+ _has_bits_[0] &= ~0x00000020u;
}
inline void FieldOptions::clear_weak() {
weak_ = false;
@@ -6678,6 +7093,48 @@ SourceCodeInfo::mutable_location() {
}
#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
// @@protoc_insertion_point(namespace_scope)
@@ -6708,6 +7165,11 @@ template <>
inline const EnumDescriptor* GetEnumDescriptor< ::google::protobuf::FieldOptions_CType>() {
return ::google::protobuf::FieldOptions_CType_descriptor();
}
+template <> struct is_proto_enum< ::google::protobuf::FieldOptions_JSType> : ::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::google::protobuf::FieldOptions_JSType>() {
+ return ::google::protobuf::FieldOptions_JSType_descriptor();
+}
} // namespace protobuf
} // namespace google
diff --git a/src/google/protobuf/descriptor.proto b/src/google/protobuf/descriptor.proto
index de242690..20a60080 100644
--- a/src/google/protobuf/descriptor.proto
+++ b/src/google/protobuf/descriptor.proto
@@ -42,6 +42,7 @@ syntax = "proto2";
package google.protobuf;
option java_package = "com.google.protobuf";
option java_outer_classname = "DescriptorProtos";
+option csharp_namespace = "Google.ProtocolBuffers.DescriptorProtos";
option objc_class_prefix = "GPB";
// descriptor.proto must be optimized for speed because reflection-based
@@ -105,6 +106,18 @@ message DescriptorProto {
repeated OneofDescriptorProto oneof_decl = 8;
optional MessageOptions options = 7;
+
+ // Range of reserved tag numbers. Reserved tag numbers may not be used by
+ // fields or extension ranges in the same message. Reserved ranges may
+ // not overlap.
+ message ReservedRange {
+ optional int32 start = 1; // Inclusive.
+ optional int32 end = 2; // Exclusive.
+ }
+ repeated ReservedRange reserved_range = 9;
+ // Reserved field names, which may not be used by fields in the same message.
+ // A given name may only be reserved once.
+ repeated string reserved_name = 10;
}
// Describes a field within a message.
@@ -250,11 +263,11 @@ message MethodDescriptorProto {
// * For options which will be published and used publicly by multiple
// independent entities, e-mail protobuf-global-extension-registry@google.com
// to reserve extension numbers. Simply provide your project name (e.g.
-// Object-C plugin) and your porject website (if available) -- there's no need
-// to explain how you intend to use them. Usually you only need one extension
-// number. You can declare multiple options with only one extension number by
-// putting them in a sub-message. See the Custom Options section of the docs
-// for examples:
+// Objective-C plugin) and your project website (if available) -- there's no
+// need to explain how you intend to use them. Usually you only need one
+// extension number. You can declare multiple options with only one extension
+// number by putting them in a sub-message. See the Custom Options section of
+// the docs for examples:
// https://developers.google.com/protocol-buffers/docs/proto#options
// If this turns out to be popular, a web service will be set up
// to automatically assign option numbers.
@@ -352,6 +365,9 @@ message FileOptions {
// generated classes from this .proto. There is no default.
optional string objc_class_prefix = 36;
+ // Namespace for generated classes; defaults to the package.
+ optional string csharp_namespace = 37;
+
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
@@ -438,10 +454,31 @@ message FieldOptions {
// The packed option can be enabled for repeated primitive fields to enable
// a more efficient representation on the wire. Rather than repeatedly
// writing the tag and type for each element, the entire array is encoded as
- // a single length-delimited blob.
+ // a single length-delimited blob. In proto3, only explicit setting it to
+ // false will avoid using packed encoding.
optional bool packed = 2;
+ // The jstype option determines the JavaScript type used for values of the
+ // field. The option is permitted only for 64 bit integral and fixed types
+ // (int64, uint64, sint64, fixed64, sfixed64). By default these types are
+ // represented as JavaScript strings. This avoids loss of precision that can
+ // happen when a large value is converted to a floating point JavaScript
+ // numbers. Specifying JS_NUMBER for the jstype causes the generated
+ // JavaScript code to use the JavaScript "number" type instead of strings.
+ // This option is an enum to permit additional types to be added,
+ // e.g. goog.math.Integer.
+ optional JSType jstype = 6 [default = JS_NORMAL];
+ enum JSType {
+ // Use the default type.
+ JS_NORMAL = 0;
+
+ // Use JavaScript strings.
+ JS_STRING = 1;
+
+ // Use JavaScript numbers.
+ JS_NUMBER = 2;
+ }
// Should this field be parsed lazily? Lazy applies only to message-type
// fields. It means that when the outer message is initially parsed, the
@@ -482,8 +519,6 @@ message FieldOptions {
// For Google-internal migration only. Do not use.
optional bool weak = 10 [default=false];
-
-
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
diff --git a/src/google/protobuf/descriptor_database.h b/src/google/protobuf/descriptor_database.h
index 934e4022..86002d56 100644
--- a/src/google/protobuf/descriptor_database.h
+++ b/src/google/protobuf/descriptor_database.h
@@ -312,7 +312,7 @@ class LIBPROTOBUF_EXPORT EncodedDescriptorDatabase : public DescriptorDatabase {
// A DescriptorDatabase that fetches files from a given pool.
class LIBPROTOBUF_EXPORT DescriptorPoolDatabase : public DescriptorDatabase {
public:
- DescriptorPoolDatabase(const DescriptorPool& pool);
+ explicit DescriptorPoolDatabase(const DescriptorPool& pool);
~DescriptorPoolDatabase();
// implements DescriptorDatabase -----------------------------------
@@ -341,7 +341,7 @@ class LIBPROTOBUF_EXPORT MergedDescriptorDatabase : public DescriptorDatabase {
// Merge more than two databases. The sources remain property of the caller.
// The vector may be deleted after the constructor returns but the
// DescriptorDatabases need to stick around.
- MergedDescriptorDatabase(const vector<DescriptorDatabase*>& sources);
+ explicit MergedDescriptorDatabase(const vector<DescriptorDatabase*>& sources);
~MergedDescriptorDatabase();
// implements DescriptorDatabase -----------------------------------
diff --git a/src/google/protobuf/descriptor_unittest.cc b/src/google/protobuf/descriptor_unittest.cc
index fdce3d78..760df097 100644
--- a/src/google/protobuf/descriptor_unittest.cc
+++ b/src/google/protobuf/descriptor_unittest.cc
@@ -139,6 +139,14 @@ DescriptorProto::ExtensionRange* AddExtensionRange(DescriptorProto* parent,
return result;
}
+DescriptorProto::ReservedRange* AddReservedRange(DescriptorProto* parent,
+ int start, int end) {
+ DescriptorProto::ReservedRange* result = parent->add_reserved_range();
+ result->set_start(start);
+ result->set_end(end);
+ return result;
+}
+
EnumValueDescriptorProto* AddEnumValue(EnumDescriptorProto* enum_proto,
const string& name, int number) {
EnumValueDescriptorProto* result = enum_proto->add_value();
@@ -1720,6 +1728,84 @@ TEST_F(ExtensionDescriptorTest, DuplicateFieldNumber) {
// ===================================================================
+// Test reserved fields.
+class ReservedDescriptorTest : public testing::Test {
+ protected:
+ virtual void SetUp() {
+ // Build descriptors for the following definitions:
+ //
+ // message Foo {
+ // reserved 2, 9 to 11, 15;
+ // reserved "foo", "bar";
+ // }
+
+ FileDescriptorProto foo_file;
+ foo_file.set_name("foo.proto");
+
+ DescriptorProto* foo = AddMessage(&foo_file, "Foo");
+ AddReservedRange(foo, 2, 3);
+ AddReservedRange(foo, 9, 12);
+ AddReservedRange(foo, 15, 16);
+
+ foo->add_reserved_name("foo");
+ foo->add_reserved_name("bar");
+
+ // Build the descriptors and get the pointers.
+ foo_file_ = pool_.BuildFile(foo_file);
+ ASSERT_TRUE(foo_file_ != NULL);
+
+ ASSERT_EQ(1, foo_file_->message_type_count());
+ foo_ = foo_file_->message_type(0);
+ }
+
+ DescriptorPool pool_;
+ const FileDescriptor* foo_file_;
+ const Descriptor* foo_;
+};
+
+TEST_F(ReservedDescriptorTest, ReservedRanges) {
+ ASSERT_EQ(3, foo_->reserved_range_count());
+
+ EXPECT_EQ(2, foo_->reserved_range(0)->start);
+ EXPECT_EQ(3, foo_->reserved_range(0)->end);
+
+ EXPECT_EQ(9, foo_->reserved_range(1)->start);
+ EXPECT_EQ(12, foo_->reserved_range(1)->end);
+
+ EXPECT_EQ(15, foo_->reserved_range(2)->start);
+ EXPECT_EQ(16, foo_->reserved_range(2)->end);
+};
+
+TEST_F(ReservedDescriptorTest, IsReservedNumber) {
+ EXPECT_FALSE(foo_->IsReservedNumber(1));
+ EXPECT_TRUE (foo_->IsReservedNumber(2));
+ EXPECT_FALSE(foo_->IsReservedNumber(3));
+ EXPECT_FALSE(foo_->IsReservedNumber(8));
+ EXPECT_TRUE (foo_->IsReservedNumber(9));
+ EXPECT_TRUE (foo_->IsReservedNumber(10));
+ EXPECT_TRUE (foo_->IsReservedNumber(11));
+ EXPECT_FALSE(foo_->IsReservedNumber(12));
+ EXPECT_FALSE(foo_->IsReservedNumber(13));
+ EXPECT_FALSE(foo_->IsReservedNumber(14));
+ EXPECT_TRUE (foo_->IsReservedNumber(15));
+ EXPECT_FALSE(foo_->IsReservedNumber(16));
+};
+
+TEST_F(ReservedDescriptorTest, ReservedNames) {
+ ASSERT_EQ(2, foo_->reserved_name_count());
+
+ EXPECT_EQ("foo", foo_->reserved_name(0));
+ EXPECT_EQ("bar", foo_->reserved_name(1));
+};
+
+TEST_F(ReservedDescriptorTest, IsReservedName) {
+ EXPECT_TRUE (foo_->IsReservedName("foo"));
+ EXPECT_TRUE (foo_->IsReservedName("bar"));
+ EXPECT_FALSE(foo_->IsReservedName("baz"));
+};
+
+// ===================================================================
+
class MiscTest : public testing::Test {
protected:
// Function which makes a field descriptor of the given type.
@@ -2997,10 +3083,10 @@ class ValidationErrorTest : public testing::Test {
protected:
// Parse file_text as a FileDescriptorProto in text format and add it
// to the DescriptorPool. Expect no errors.
- void BuildFile(const string& file_text) {
+ const FileDescriptor* BuildFile(const string& file_text) {
FileDescriptorProto file_proto;
- ASSERT_TRUE(TextFormat::ParseFromString(file_text, &file_proto));
- ASSERT_TRUE(pool_.BuildFile(file_proto) != NULL);
+ EXPECT_TRUE(TextFormat::ParseFromString(file_text, &file_proto));
+ return GOOGLE_CHECK_NOTNULL(pool_.BuildFile(file_proto));
}
// Parse file_text as a FileDescriptorProto in text format and add it
@@ -3251,6 +3337,102 @@ TEST_F(ValidationErrorTest, OverlappingExtensionRanges) {
"already-defined range 20 to 29.\n");
}
+TEST_F(ValidationErrorTest, ReservedFieldError) {
+ BuildFileWithErrors(
+ "name: \"foo.proto\" "
+ "message_type {"
+ " name: \"Foo\""
+ " field { name: \"foo\" number: 15 label:LABEL_OPTIONAL type:TYPE_INT32 }"
+ " reserved_range { start: 10 end: 20 }"
+ "}",
+
+ "foo.proto: Foo.foo: NUMBER: Field \"foo\" uses reserved number 15.\n");
+}
+
+TEST_F(ValidationErrorTest, ReservedExtensionRangeError) {
+ BuildFileWithErrors(
+ "name: \"foo.proto\" "
+ "message_type {"
+ " name: \"Foo\""
+ " extension_range { start: 10 end: 20 }"
+ " reserved_range { start: 5 end: 15 }"
+ "}",
+
+ "foo.proto: Foo: NUMBER: Extension range 10 to 19"
+ " overlaps with reserved range 5 to 14.\n");
+}
+
+TEST_F(ValidationErrorTest, ReservedExtensionRangeAdjacent) {
+ BuildFile(
+ "name: \"foo.proto\" "
+ "message_type {"
+ " name: \"Foo\""
+ " extension_range { start: 10 end: 20 }"
+ " reserved_range { start: 5 end: 10 }"
+ "}");
+}
+
+TEST_F(ValidationErrorTest, ReservedRangeOverlap) {
+ BuildFileWithErrors(
+ "name: \"foo.proto\" "
+ "message_type {"
+ " name: \"Foo\""
+ " reserved_range { start: 10 end: 20 }"
+ " reserved_range { start: 5 end: 15 }"
+ "}",
+
+ "foo.proto: Foo: NUMBER: Reserved range 5 to 14"
+ " overlaps with already-defined range 10 to 19.\n");
+}
+
+TEST_F(ValidationErrorTest, ReservedNameError) {
+ BuildFileWithErrors(
+ "name: \"foo.proto\" "
+ "message_type {"
+ " name: \"Foo\""
+ " field { name: \"foo\" number: 15 label:LABEL_OPTIONAL type:TYPE_INT32 }"
+ " field { name: \"bar\" number: 16 label:LABEL_OPTIONAL type:TYPE_INT32 }"
+ " field { name: \"baz\" number: 17 label:LABEL_OPTIONAL type:TYPE_INT32 }"
+ " reserved_name: \"foo\""
+ " reserved_name: \"bar\""
+ "}",
+
+ "foo.proto: Foo.foo: NAME: Field name \"foo\" is reserved.\n"
+ "foo.proto: Foo.bar: NAME: Field name \"bar\" is reserved.\n");
+}
+
+TEST_F(ValidationErrorTest, ReservedNameRedundant) {
+ BuildFileWithErrors(
+ "name: \"foo.proto\" "
+ "message_type {"
+ " name: \"Foo\""
+ " reserved_name: \"foo\""
+ " reserved_name: \"foo\""
+ "}",
+
+ "foo.proto: foo: NAME: Field name \"foo\" is reserved multiple times.\n");
+}
+
+TEST_F(ValidationErrorTest, ReservedFieldsDebugString) {
+ const FileDescriptor* file = BuildFile(
+ "name: \"foo.proto\" "
+ "message_type {"
+ " name: \"Foo\""
+ " reserved_name: \"foo\""
+ " reserved_name: \"bar\""
+ " reserved_range { start: 5 end: 6 }"
+ " reserved_range { start: 10 end: 20 }"
+ "}");
+
+ ASSERT_EQ(
+ "syntax = \"proto2\";\n\n"
+ "message Foo {\n"
+ " reserved 5, 10 to 19;\n"
+ " reserved \"foo\", \"bar\";\n"
+ "}\n\n",
+ file->DebugString());
+}
+
TEST_F(ValidationErrorTest, InvalidDefaults) {
BuildFileWithErrors(
"name: \"foo.proto\" "
@@ -3399,6 +3581,48 @@ TEST_F(ValidationErrorTest, FieldOneofIndexNegative) {
"range for type \"Foo\".\n");
}
+TEST_F(ValidationErrorTest, OneofFieldsConsecutiveDefinition) {
+ // Fields belonging to the same oneof must be defined consecutively.
+ BuildFileWithWarnings(
+ "name: \"foo.proto\" "
+ "message_type {"
+ " name: \"Foo\""
+ " field { name:\"foo1\" number: 1 label:LABEL_OPTIONAL type:TYPE_INT32 "
+ " oneof_index: 0 }"
+ " field { name:\"bar\" number: 2 label:LABEL_OPTIONAL type:TYPE_INT32 }"
+ " field { name:\"foo2\" number: 3 label:LABEL_OPTIONAL type:TYPE_INT32 "
+ " oneof_index: 0 }"
+ " oneof_decl { name:\"foos\" }"
+ "}",
+
+ "foo.proto: Foo.bar: OTHER: Fields in the same oneof must be defined "
+ "consecutively. \"bar\" cannot be defined before the completion of the "
+ "\"foos\" oneof definition.\n");
+
+ // Prevent interleaved fields, which belong to different oneofs.
+ BuildFileWithWarnings(
+ "name: \"foo2.proto\" "
+ "message_type {"
+ " name: \"Foo2\""
+ " field { name:\"foo1\" number: 1 label:LABEL_OPTIONAL type:TYPE_INT32 "
+ " oneof_index: 0 }"
+ " field { name:\"bar1\" number: 2 label:LABEL_OPTIONAL type:TYPE_INT32 "
+ " oneof_index: 1 }"
+ " field { name:\"foo2\" number: 3 label:LABEL_OPTIONAL type:TYPE_INT32 "
+ " oneof_index: 0 }"
+ " field { name:\"bar2\" number: 4 label:LABEL_OPTIONAL type:TYPE_INT32 "
+ " oneof_index: 1 }"
+ " oneof_decl { name:\"foos\" }"
+ " oneof_decl { name:\"bars\" }"
+ "}",
+ "foo2.proto: Foo2.bar1: OTHER: Fields in the same oneof must be defined "
+ "consecutively. \"bar1\" cannot be defined before the completion of the "
+ "\"foos\" oneof definition.\n"
+ "foo2.proto: Foo2.foo2: OTHER: Fields in the same oneof must be defined "
+ "consecutively. \"foo2\" cannot be defined before the completion of the "
+ "\"bars\" oneof definition.\n");
+}
+
TEST_F(ValidationErrorTest, FieldNumberConflict) {
BuildFileWithErrors(
"name: \"foo.proto\" "
@@ -5293,6 +5517,22 @@ TEST_F(ValidationErrorTest, ValidateProto3LiteRuntime) {
"in proto3.\n");
}
+TEST_F(ValidationErrorTest, ValidateProto3Group) {
+ BuildFileWithErrors(
+ "name: 'foo.proto' "
+ "syntax: 'proto3' "
+ "message_type { "
+ " name: 'Foo' "
+ " nested_type { "
+ " name: 'FooGroup' "
+ " } "
+ " field { name:'foo_group' number: 1 label:LABEL_OPTIONAL "
+ " type: TYPE_GROUP type_name:'FooGroup' } "
+ "}",
+ "foo.proto: Foo.foo_group: TYPE: Groups are not supported in proto3 "
+ "syntax.\n");
+}
+
TEST_F(ValidationErrorTest, ValidateProto3EnumFromProto2) {
// Define an enum in a proto2 file.
diff --git a/src/google/protobuf/duration.pb.cc b/src/google/protobuf/duration.pb.cc
new file mode 100644
index 00000000..f78fce21
--- /dev/null
+++ b/src/google/protobuf/duration.pb.cc
@@ -0,0 +1,407 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/duration.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "google/protobuf/duration.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+namespace {
+
+const ::google::protobuf::Descriptor* Duration_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Duration_reflection_ = NULL;
+
+} // namespace
+
+
+void protobuf_AssignDesc_google_2fprotobuf_2fduration_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fduration_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "google/protobuf/duration.proto");
+ GOOGLE_CHECK(file != NULL);
+ Duration_descriptor_ = file->message_type(0);
+ static const int Duration_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Duration, seconds_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Duration, nanos_),
+ };
+ Duration_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Duration_descriptor_,
+ Duration::default_instance_,
+ Duration_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Duration),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Duration, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Duration, _is_default_instance_));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_google_2fprotobuf_2fduration_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Duration_descriptor_, &Duration::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_google_2fprotobuf_2fduration_2eproto() {
+ delete Duration::default_instance_;
+ delete Duration_reflection_;
+}
+
+void protobuf_AddDesc_google_2fprotobuf_2fduration_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\036google/protobuf/duration.proto\022\017google"
+ ".protobuf\"*\n\010Duration\022\017\n\007seconds\030\001 \001(\003\022\r"
+ "\n\005nanos\030\002 \001(\005BH\n\023com.google.protobufB\rDu"
+ "rationProtoP\001\240\001\001\242\002\003GPB\252\002\026Google.Protocol"
+ "Buffersb\006proto3", 175);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "google/protobuf/duration.proto", &protobuf_RegisterTypes);
+ Duration::default_instance_ = new Duration();
+ Duration::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2fduration_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_google_2fprotobuf_2fduration_2eproto {
+ StaticDescriptorInitializer_google_2fprotobuf_2fduration_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fduration_2eproto();
+ }
+} static_descriptor_initializer_google_2fprotobuf_2fduration_2eproto_;
+
+namespace {
+
+static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
+static void MergeFromFail(int line) {
+ GOOGLE_CHECK(false) << __FILE__ << ":" << line;
+}
+
+} // namespace
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Duration::kSecondsFieldNumber;
+const int Duration::kNanosFieldNumber;
+#endif // !_MSC_VER
+
+Duration::Duration()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Duration)
+}
+
+void Duration::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+Duration::Duration(const Duration& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Duration)
+}
+
+void Duration::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+ seconds_ = GOOGLE_LONGLONG(0);
+ nanos_ = 0;
+}
+
+Duration::~Duration() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Duration)
+ SharedDtor();
+}
+
+void Duration::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void Duration::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Duration::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Duration_descriptor_;
+}
+
+const Duration& Duration::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fduration_2eproto();
+ return *default_instance_;
+}
+
+Duration* Duration::default_instance_ = NULL;
+
+Duration* Duration::New(::google::protobuf::Arena* arena) const {
+ Duration* n = new Duration;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Duration::Clear() {
+#define ZR_HELPER_(f) reinterpret_cast<char*>(\
+ &reinterpret_cast<Duration*>(16)->f)
+
+#define ZR_(first, last) do {\
+ ::memset(&first, 0,\
+ ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
+} while (0)
+
+ ZR_(seconds_, nanos_);
+
+#undef ZR_HELPER_
+#undef ZR_
+
+}
+
+bool Duration::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Duration)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional int64 seconds = 1;
+ case 1: {
+ if (tag == 8) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+ input, &seconds_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(16)) goto parse_nanos;
+ break;
+ }
+
+ // optional int32 nanos = 2;
+ case 2: {
+ if (tag == 16) {
+ parse_nanos:
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &nanos_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Duration)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Duration)
+ return false;
+#undef DO_
+}
+
+void Duration::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Duration)
+ // optional int64 seconds = 1;
+ if (this->seconds() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->seconds(), output);
+ }
+
+ // optional int32 nanos = 2;
+ if (this->nanos() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->nanos(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Duration)
+}
+
+::google::protobuf::uint8* Duration::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Duration)
+ // optional int64 seconds = 1;
+ if (this->seconds() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->seconds(), target);
+ }
+
+ // optional int32 nanos = 2;
+ if (this->nanos() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->nanos(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Duration)
+ return target;
+}
+
+int Duration::ByteSize() const {
+ int total_size = 0;
+
+ // optional int64 seconds = 1;
+ if (this->seconds() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int64Size(
+ this->seconds());
+ }
+
+ // optional int32 nanos = 2;
+ if (this->nanos() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->nanos());
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Duration::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Duration* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Duration>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Duration::MergeFrom(const Duration& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.seconds() != 0) {
+ set_seconds(from.seconds());
+ }
+ if (from.nanos() != 0) {
+ set_nanos(from.nanos());
+ }
+}
+
+void Duration::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Duration::CopyFrom(const Duration& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Duration::IsInitialized() const {
+
+ return true;
+}
+
+void Duration::Swap(Duration* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Duration::InternalSwap(Duration* other) {
+ std::swap(seconds_, other->seconds_);
+ std::swap(nanos_, other->nanos_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Duration::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Duration_descriptor_;
+ metadata.reflection = Duration_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Duration
+
+// optional int64 seconds = 1;
+void Duration::clear_seconds() {
+ seconds_ = GOOGLE_LONGLONG(0);
+}
+ ::google::protobuf::int64 Duration::seconds() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Duration.seconds)
+ return seconds_;
+}
+ void Duration::set_seconds(::google::protobuf::int64 value) {
+
+ seconds_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Duration.seconds)
+}
+
+// optional int32 nanos = 2;
+void Duration::clear_nanos() {
+ nanos_ = 0;
+}
+ ::google::protobuf::int32 Duration::nanos() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Duration.nanos)
+ return nanos_;
+}
+ void Duration::set_nanos(::google::protobuf::int32 value) {
+
+ nanos_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Duration.nanos)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/google/protobuf/duration.pb.h b/src/google/protobuf/duration.pb.h
new file mode 100644
index 00000000..215a52c4
--- /dev/null
+++ b/src/google/protobuf/duration.pb.h
@@ -0,0 +1,172 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/duration.proto
+
+#ifndef PROTOBUF_google_2fprotobuf_2fduration_2eproto__INCLUDED
+#define PROTOBUF_google_2fprotobuf_2fduration_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3000000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+// Internal implementation detail -- do not call these.
+void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fduration_2eproto();
+void protobuf_AssignDesc_google_2fprotobuf_2fduration_2eproto();
+void protobuf_ShutdownFile_google_2fprotobuf_2fduration_2eproto();
+
+class Duration;
+
+// ===================================================================
+
+class LIBPROTOBUF_EXPORT Duration : public ::google::protobuf::Message {
+ public:
+ Duration();
+ virtual ~Duration();
+
+ Duration(const Duration& from);
+
+ inline Duration& operator=(const Duration& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Duration& default_instance();
+
+ void Swap(Duration* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Duration* New() const { return New(NULL); }
+
+ Duration* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Duration& from);
+ void MergeFrom(const Duration& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Duration* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional int64 seconds = 1;
+ void clear_seconds();
+ static const int kSecondsFieldNumber = 1;
+ ::google::protobuf::int64 seconds() const;
+ void set_seconds(::google::protobuf::int64 value);
+
+ // optional int32 nanos = 2;
+ void clear_nanos();
+ static const int kNanosFieldNumber = 2;
+ ::google::protobuf::int32 nanos() const;
+ void set_nanos(::google::protobuf::int32 value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Duration)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::int64 seconds_;
+ ::google::protobuf::int32 nanos_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fduration_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fduration_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fduration_2eproto();
+
+ void InitAsDefaultInstance();
+ static Duration* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// Duration
+
+// optional int64 seconds = 1;
+inline void Duration::clear_seconds() {
+ seconds_ = GOOGLE_LONGLONG(0);
+}
+inline ::google::protobuf::int64 Duration::seconds() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Duration.seconds)
+ return seconds_;
+}
+inline void Duration::set_seconds(::google::protobuf::int64 value) {
+
+ seconds_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Duration.seconds)
+}
+
+// optional int32 nanos = 2;
+inline void Duration::clear_nanos() {
+ nanos_ = 0;
+}
+inline ::google::protobuf::int32 Duration::nanos() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Duration.nanos)
+ return nanos_;
+}
+inline void Duration::set_nanos(::google::protobuf::int32 value) {
+
+ nanos_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Duration.nanos)
+}
+
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_google_2fprotobuf_2fduration_2eproto__INCLUDED
diff --git a/src/google/protobuf/duration.proto b/src/google/protobuf/duration.proto
index 12337f53..e466341a 100644
--- a/src/google/protobuf/duration.proto
+++ b/src/google/protobuf/duration.proto
@@ -35,9 +35,9 @@ option java_generate_equals_and_hash = true;
option java_multiple_files = true;
option java_outer_classname = "DurationProto";
option java_package = "com.google.protobuf";
+option csharp_namespace = "Google.ProtocolBuffers";
option objc_class_prefix = "GPB";
-
// A Duration represents a signed, fixed-length span of time represented
// as a count of seconds and fractions of seconds at nanosecond
// resolution. It is independent of any calendar and concepts like "day"
diff --git a/src/google/protobuf/empty.pb.cc b/src/google/protobuf/empty.pb.cc
new file mode 100644
index 00000000..1a9a6661
--- /dev/null
+++ b/src/google/protobuf/empty.pb.cc
@@ -0,0 +1,282 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/empty.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "google/protobuf/empty.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+namespace {
+
+const ::google::protobuf::Descriptor* Empty_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Empty_reflection_ = NULL;
+
+} // namespace
+
+
+void protobuf_AssignDesc_google_2fprotobuf_2fempty_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fempty_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "google/protobuf/empty.proto");
+ GOOGLE_CHECK(file != NULL);
+ Empty_descriptor_ = file->message_type(0);
+ static const int Empty_offsets_[1] = {
+ };
+ Empty_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Empty_descriptor_,
+ Empty::default_instance_,
+ Empty_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Empty),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Empty, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Empty, _is_default_instance_));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_google_2fprotobuf_2fempty_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Empty_descriptor_, &Empty::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_google_2fprotobuf_2fempty_2eproto() {
+ delete Empty::default_instance_;
+ delete Empty_reflection_;
+}
+
+void protobuf_AddDesc_google_2fprotobuf_2fempty_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\033google/protobuf/empty.proto\022\017google.pr"
+ "otobuf\"\007\n\005EmptyB)\n\023com.google.protobufB\n"
+ "EmptyProtoP\001\242\002\003GPBb\006proto3", 106);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "google/protobuf/empty.proto", &protobuf_RegisterTypes);
+ Empty::default_instance_ = new Empty();
+ Empty::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2fempty_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_google_2fprotobuf_2fempty_2eproto {
+ StaticDescriptorInitializer_google_2fprotobuf_2fempty_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fempty_2eproto();
+ }
+} static_descriptor_initializer_google_2fprotobuf_2fempty_2eproto_;
+
+namespace {
+
+static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
+static void MergeFromFail(int line) {
+ GOOGLE_CHECK(false) << __FILE__ << ":" << line;
+}
+
+} // namespace
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+#endif // !_MSC_VER
+
+Empty::Empty()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Empty)
+}
+
+void Empty::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+Empty::Empty(const Empty& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Empty)
+}
+
+void Empty::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+}
+
+Empty::~Empty() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Empty)
+ SharedDtor();
+}
+
+void Empty::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void Empty::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Empty::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Empty_descriptor_;
+}
+
+const Empty& Empty::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fempty_2eproto();
+ return *default_instance_;
+}
+
+Empty* Empty::default_instance_ = NULL;
+
+Empty* Empty::New(::google::protobuf::Arena* arena) const {
+ Empty* n = new Empty;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Empty::Clear() {
+}
+
+bool Empty::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Empty)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Empty)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Empty)
+ return false;
+#undef DO_
+}
+
+void Empty::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Empty)
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Empty)
+}
+
+::google::protobuf::uint8* Empty::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Empty)
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Empty)
+ return target;
+}
+
+int Empty::ByteSize() const {
+ int total_size = 0;
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Empty::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Empty* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Empty>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Empty::MergeFrom(const Empty& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+}
+
+void Empty::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Empty::CopyFrom(const Empty& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Empty::IsInitialized() const {
+
+ return true;
+}
+
+void Empty::Swap(Empty* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Empty::InternalSwap(Empty* other) {
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Empty::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Empty_descriptor_;
+ metadata.reflection = Empty_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Empty
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/google/protobuf/empty.pb.h b/src/google/protobuf/empty.pb.h
new file mode 100644
index 00000000..20876bea
--- /dev/null
+++ b/src/google/protobuf/empty.pb.h
@@ -0,0 +1,130 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/empty.proto
+
+#ifndef PROTOBUF_google_2fprotobuf_2fempty_2eproto__INCLUDED
+#define PROTOBUF_google_2fprotobuf_2fempty_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3000000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+// Internal implementation detail -- do not call these.
+void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fempty_2eproto();
+void protobuf_AssignDesc_google_2fprotobuf_2fempty_2eproto();
+void protobuf_ShutdownFile_google_2fprotobuf_2fempty_2eproto();
+
+class Empty;
+
+// ===================================================================
+
+class LIBPROTOBUF_EXPORT Empty : public ::google::protobuf::Message {
+ public:
+ Empty();
+ virtual ~Empty();
+
+ Empty(const Empty& from);
+
+ inline Empty& operator=(const Empty& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Empty& default_instance();
+
+ void Swap(Empty* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Empty* New() const { return New(NULL); }
+
+ Empty* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Empty& from);
+ void MergeFrom(const Empty& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Empty* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Empty)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fempty_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fempty_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fempty_2eproto();
+
+ void InitAsDefaultInstance();
+ static Empty* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// Empty
+
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_google_2fprotobuf_2fempty_2eproto__INCLUDED
diff --git a/src/google/protobuf/extension_set.cc b/src/google/protobuf/extension_set.cc
index 03b38dd0..649ae184 100644
--- a/src/google/protobuf/extension_set.cc
+++ b/src/google/protobuf/extension_set.cc
@@ -314,7 +314,7 @@ void ExtensionSet::Add##CAMELCASE(int number, FieldType type, \
extension->is_repeated = true; \
extension->is_packed = packed; \
extension->repeated_##LOWERCASE##_value = \
- Arena::Create<RepeatedField<LOWERCASE> >(arena_, arena_); \
+ Arena::CreateMessage<RepeatedField<LOWERCASE> >(arena_); \
} else { \
GOOGLE_DCHECK_TYPE(*extension, REPEATED, UPPERCASE); \
GOOGLE_DCHECK_EQ(extension->is_packed, packed); \
@@ -359,43 +359,43 @@ void* ExtensionSet::MutableRawRepeatedField(int number, FieldType field_type,
static_cast<WireFormatLite::FieldType>(field_type))) {
case WireFormatLite::CPPTYPE_INT32:
extension->repeated_int32_value =
- Arena::Create<RepeatedField<int32> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedField<int32> >(arena_);
break;
case WireFormatLite::CPPTYPE_INT64:
extension->repeated_int64_value =
- Arena::Create<RepeatedField<int64> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedField<int64> >(arena_);
break;
case WireFormatLite::CPPTYPE_UINT32:
extension->repeated_uint32_value =
- Arena::Create<RepeatedField<uint32> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedField<uint32> >(arena_);
break;
case WireFormatLite::CPPTYPE_UINT64:
extension->repeated_uint64_value =
- Arena::Create<RepeatedField<uint64> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedField<uint64> >(arena_);
break;
case WireFormatLite::CPPTYPE_DOUBLE:
extension->repeated_double_value =
- Arena::Create<RepeatedField<double> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedField<double> >(arena_);
break;
case WireFormatLite::CPPTYPE_FLOAT:
extension->repeated_float_value =
- Arena::Create<RepeatedField<float> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedField<float> >(arena_);
break;
case WireFormatLite::CPPTYPE_BOOL:
extension->repeated_bool_value =
- Arena::Create<RepeatedField<bool> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedField<bool> >(arena_);
break;
case WireFormatLite::CPPTYPE_ENUM:
extension->repeated_enum_value =
- Arena::Create<RepeatedField<int> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedField<int> >(arena_);
break;
case WireFormatLite::CPPTYPE_STRING:
extension->repeated_string_value =
- Arena::Create<RepeatedPtrField< ::std::string> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedPtrField< ::std::string> >(arena_);
break;
case WireFormatLite::CPPTYPE_MESSAGE:
extension->repeated_message_value =
- Arena::Create<RepeatedPtrField<MessageLite> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedPtrField<MessageLite> >(arena_);
break;
}
}
@@ -468,7 +468,7 @@ void ExtensionSet::AddEnum(int number, FieldType type,
extension->is_repeated = true;
extension->is_packed = packed;
extension->repeated_enum_value =
- Arena::Create<RepeatedField<int> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedField<int> >(arena_);
} else {
GOOGLE_DCHECK_TYPE(*extension, REPEATED, ENUM);
GOOGLE_DCHECK_EQ(extension->is_packed, packed);
@@ -529,7 +529,7 @@ string* ExtensionSet::AddString(int number, FieldType type,
extension->is_repeated = true;
extension->is_packed = false;
extension->repeated_string_value =
- Arena::Create<RepeatedPtrField<string> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedPtrField<string> >(arena_);
} else {
GOOGLE_DCHECK_TYPE(*extension, REPEATED, STRING);
}
@@ -632,6 +632,35 @@ void ExtensionSet::SetAllocatedMessage(int number, FieldType type,
extension->is_cleared = false;
}
+void ExtensionSet::UnsafeArenaSetAllocatedMessage(
+ int number, FieldType type, const FieldDescriptor* descriptor,
+ MessageLite* message) {
+ if (message == NULL) {
+ ClearExtension(number);
+ return;
+ }
+ Extension* extension;
+ if (MaybeNewExtension(number, descriptor, &extension)) {
+ extension->type = type;
+ GOOGLE_DCHECK_EQ(cpp_type(extension->type), WireFormatLite::CPPTYPE_MESSAGE);
+ extension->is_repeated = false;
+ extension->is_lazy = false;
+ extension->message_value = message;
+ } else {
+ GOOGLE_DCHECK_TYPE(*extension, OPTIONAL, MESSAGE);
+ if (extension->is_lazy) {
+ extension->lazymessage_value->UnsafeArenaSetAllocatedMessage(message);
+ } else {
+ if (arena_ == NULL) {
+ delete extension->message_value;
+ }
+ extension->message_value = message;
+ }
+ }
+ extension->is_cleared = false;
+}
+
+
MessageLite* ExtensionSet::ReleaseMessage(int number,
const MessageLite& prototype) {
map<int, Extension>::iterator iter = extensions_.find(number);
@@ -712,7 +741,7 @@ MessageLite* ExtensionSet::AddMessage(int number, FieldType type,
GOOGLE_DCHECK_EQ(cpp_type(extension->type), WireFormatLite::CPPTYPE_MESSAGE);
extension->is_repeated = true;
extension->repeated_message_value =
- Arena::Create<RepeatedPtrField<MessageLite> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedPtrField<MessageLite> >(arena_);
} else {
GOOGLE_DCHECK_TYPE(*extension, REPEATED, MESSAGE);
}
@@ -866,7 +895,7 @@ void ExtensionSet::InternalExtensionMergeFrom(
case WireFormatLite::CPPTYPE_##UPPERCASE: \
if (is_new) { \
extension->repeated_##LOWERCASE##_value = \
- Arena::Create<REPEATED_TYPE >(arena_, arena_); \
+ Arena::CreateMessage<REPEATED_TYPE >(arena_); \
} \
extension->repeated_##LOWERCASE##_value->MergeFrom( \
*other_extension.repeated_##LOWERCASE##_value); \
@@ -886,7 +915,7 @@ void ExtensionSet::InternalExtensionMergeFrom(
case WireFormatLite::CPPTYPE_MESSAGE:
if (is_new) {
extension->repeated_message_value =
- Arena::Create<RepeatedPtrField<MessageLite> >(arena_, arena_);
+ Arena::CreateMessage<RepeatedPtrField<MessageLite> >(arena_);
}
// We can't call RepeatedPtrField<MessageLite>::MergeFrom() because
// it would attempt to allocate new objects.
diff --git a/src/google/protobuf/extension_set.h b/src/google/protobuf/extension_set.h
index 6d6702b3..c371e011 100644
--- a/src/google/protobuf/extension_set.h
+++ b/src/google/protobuf/extension_set.h
@@ -194,7 +194,7 @@ class LIBPROTOBUF_EXPORT ExtensionSet {
// directly, unless you are doing low-level memory management.
//
// When calling any of these accessors, the extension number requested
- // MUST exist in the DescriptorPool provided to the constructor. Otheriwse,
+ // MUST exist in the DescriptorPool provided to the constructor. Otherwise,
// the method will fail an assert. Normally, though, you would not call
// these directly; you would either call the generated accessors of your
// message class (e.g. GetExtension()) or you would call the accessors
@@ -262,6 +262,9 @@ class LIBPROTOBUF_EXPORT ExtensionSet {
void SetAllocatedMessage(int number, FieldType type,
const FieldDescriptor* descriptor,
MessageLite* message);
+ void UnsafeArenaSetAllocatedMessage(int number, FieldType type,
+ const FieldDescriptor* descriptor,
+ MessageLite* message);
MessageLite* ReleaseMessage(int number, const MessageLite& prototype);
MessageLite* UnsafeArenaReleaseMessage(
int number, const MessageLite& prototype);
@@ -432,6 +435,7 @@ class LIBPROTOBUF_EXPORT ExtensionSet {
const MessageLite& prototype) const = 0;
virtual MessageLite* MutableMessage(const MessageLite& prototype) = 0;
virtual void SetAllocatedMessage(MessageLite *message) = 0;
+ virtual void UnsafeArenaSetAllocatedMessage(MessageLite *message) = 0;
virtual MessageLite* ReleaseMessage(const MessageLite& prototype) = 0;
virtual MessageLite* UnsafeArenaReleaseMessage(
const MessageLite& prototype) = 0;
diff --git a/src/google/protobuf/extension_set_heavy.cc b/src/google/protobuf/extension_set_heavy.cc
index 796e7a5f..330bd828 100644
--- a/src/google/protobuf/extension_set_heavy.cc
+++ b/src/google/protobuf/extension_set_heavy.cc
@@ -221,7 +221,7 @@ MessageLite* ExtensionSet::AddMessage(const FieldDescriptor* descriptor,
GOOGLE_DCHECK_EQ(cpp_type(extension->type), FieldDescriptor::CPPTYPE_MESSAGE);
extension->is_repeated = true;
extension->repeated_message_value =
- ::google::protobuf::Arena::Create<RepeatedPtrField<MessageLite> >(arena_, arena_);
+ ::google::protobuf::Arena::CreateMessage<RepeatedPtrField<MessageLite> >(arena_);
} else {
GOOGLE_DCHECK_TYPE(*extension, REPEATED, MESSAGE);
}
diff --git a/src/google/protobuf/field_mask.pb.cc b/src/google/protobuf/field_mask.pb.cc
new file mode 100644
index 00000000..68314fd3
--- /dev/null
+++ b/src/google/protobuf/field_mask.pb.cc
@@ -0,0 +1,394 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/field_mask.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "google/protobuf/field_mask.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+namespace {
+
+const ::google::protobuf::Descriptor* FieldMask_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ FieldMask_reflection_ = NULL;
+
+} // namespace
+
+
+void protobuf_AssignDesc_google_2fprotobuf_2ffield_5fmask_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2ffield_5fmask_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "google/protobuf/field_mask.proto");
+ GOOGLE_CHECK(file != NULL);
+ FieldMask_descriptor_ = file->message_type(0);
+ static const int FieldMask_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldMask, paths_),
+ };
+ FieldMask_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ FieldMask_descriptor_,
+ FieldMask::default_instance_,
+ FieldMask_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(FieldMask),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldMask, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FieldMask, _is_default_instance_));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_google_2fprotobuf_2ffield_5fmask_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ FieldMask_descriptor_, &FieldMask::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_google_2fprotobuf_2ffield_5fmask_2eproto() {
+ delete FieldMask::default_instance_;
+ delete FieldMask_reflection_;
+}
+
+void protobuf_AddDesc_google_2fprotobuf_2ffield_5fmask_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n google/protobuf/field_mask.proto\022\017goog"
+ "le.protobuf\"\032\n\tFieldMask\022\r\n\005paths\030\001 \003(\tB"
+ "F\n\023com.google.protobufB\016FieldMaskProtoP\001"
+ "\242\002\003GPB\252\002\026Google.ProtocolBuffersb\006proto3", 159);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "google/protobuf/field_mask.proto", &protobuf_RegisterTypes);
+ FieldMask::default_instance_ = new FieldMask();
+ FieldMask::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2ffield_5fmask_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_google_2fprotobuf_2ffield_5fmask_2eproto {
+ StaticDescriptorInitializer_google_2fprotobuf_2ffield_5fmask_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2ffield_5fmask_2eproto();
+ }
+} static_descriptor_initializer_google_2fprotobuf_2ffield_5fmask_2eproto_;
+
+namespace {
+
+static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
+static void MergeFromFail(int line) {
+ GOOGLE_CHECK(false) << __FILE__ << ":" << line;
+}
+
+} // namespace
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int FieldMask::kPathsFieldNumber;
+#endif // !_MSC_VER
+
+FieldMask::FieldMask()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.FieldMask)
+}
+
+void FieldMask::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+FieldMask::FieldMask(const FieldMask& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.FieldMask)
+}
+
+void FieldMask::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+}
+
+FieldMask::~FieldMask() {
+ // @@protoc_insertion_point(destructor:google.protobuf.FieldMask)
+ SharedDtor();
+}
+
+void FieldMask::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void FieldMask::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* FieldMask::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return FieldMask_descriptor_;
+}
+
+const FieldMask& FieldMask::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2ffield_5fmask_2eproto();
+ return *default_instance_;
+}
+
+FieldMask* FieldMask::default_instance_ = NULL;
+
+FieldMask* FieldMask::New(::google::protobuf::Arena* arena) const {
+ FieldMask* n = new FieldMask;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void FieldMask::Clear() {
+ paths_.Clear();
+}
+
+bool FieldMask::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.FieldMask)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // repeated string paths = 1;
+ case 1: {
+ if (tag == 10) {
+ parse_paths:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->add_paths()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->paths(this->paths_size() - 1).data(),
+ this->paths(this->paths_size() - 1).length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.FieldMask.paths");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(10)) goto parse_paths;
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.FieldMask)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.FieldMask)
+ return false;
+#undef DO_
+}
+
+void FieldMask::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.FieldMask)
+ // repeated string paths = 1;
+ for (int i = 0; i < this->paths_size(); i++) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->paths(i).data(), this->paths(i).length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.FieldMask.paths");
+ ::google::protobuf::internal::WireFormatLite::WriteString(
+ 1, this->paths(i), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.FieldMask)
+}
+
+::google::protobuf::uint8* FieldMask::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.FieldMask)
+ // repeated string paths = 1;
+ for (int i = 0; i < this->paths_size(); i++) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->paths(i).data(), this->paths(i).length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.FieldMask.paths");
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteStringToArray(1, this->paths(i), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.FieldMask)
+ return target;
+}
+
+int FieldMask::ByteSize() const {
+ int total_size = 0;
+
+ // repeated string paths = 1;
+ total_size += 1 * this->paths_size();
+ for (int i = 0; i < this->paths_size(); i++) {
+ total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->paths(i));
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void FieldMask::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const FieldMask* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const FieldMask>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void FieldMask::MergeFrom(const FieldMask& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ paths_.MergeFrom(from.paths_);
+}
+
+void FieldMask::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void FieldMask::CopyFrom(const FieldMask& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool FieldMask::IsInitialized() const {
+
+ return true;
+}
+
+void FieldMask::Swap(FieldMask* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void FieldMask::InternalSwap(FieldMask* other) {
+ paths_.UnsafeArenaSwap(&other->paths_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata FieldMask::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = FieldMask_descriptor_;
+ metadata.reflection = FieldMask_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// FieldMask
+
+// repeated string paths = 1;
+int FieldMask::paths_size() const {
+ return paths_.size();
+}
+void FieldMask::clear_paths() {
+ paths_.Clear();
+}
+ const ::std::string& FieldMask::paths(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.FieldMask.paths)
+ return paths_.Get(index);
+}
+ ::std::string* FieldMask::mutable_paths(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.FieldMask.paths)
+ return paths_.Mutable(index);
+}
+ void FieldMask::set_paths(int index, const ::std::string& value) {
+ // @@protoc_insertion_point(field_set:google.protobuf.FieldMask.paths)
+ paths_.Mutable(index)->assign(value);
+}
+ void FieldMask::set_paths(int index, const char* value) {
+ paths_.Mutable(index)->assign(value);
+ // @@protoc_insertion_point(field_set_char:google.protobuf.FieldMask.paths)
+}
+ void FieldMask::set_paths(int index, const char* value, size_t size) {
+ paths_.Mutable(index)->assign(
+ reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.FieldMask.paths)
+}
+ ::std::string* FieldMask::add_paths() {
+ return paths_.Add();
+}
+ void FieldMask::add_paths(const ::std::string& value) {
+ paths_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add:google.protobuf.FieldMask.paths)
+}
+ void FieldMask::add_paths(const char* value) {
+ paths_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add_char:google.protobuf.FieldMask.paths)
+}
+ void FieldMask::add_paths(const char* value, size_t size) {
+ paths_.Add()->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_add_pointer:google.protobuf.FieldMask.paths)
+}
+ const ::google::protobuf::RepeatedPtrField< ::std::string>&
+FieldMask::paths() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.FieldMask.paths)
+ return paths_;
+}
+ ::google::protobuf::RepeatedPtrField< ::std::string>*
+FieldMask::mutable_paths() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.FieldMask.paths)
+ return &paths_;
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/google/protobuf/field_mask.pb.h b/src/google/protobuf/field_mask.pb.h
new file mode 100644
index 00000000..7189fd79
--- /dev/null
+++ b/src/google/protobuf/field_mask.pb.h
@@ -0,0 +1,201 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/field_mask.proto
+
+#ifndef PROTOBUF_google_2fprotobuf_2ffield_5fmask_2eproto__INCLUDED
+#define PROTOBUF_google_2fprotobuf_2ffield_5fmask_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3000000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+// Internal implementation detail -- do not call these.
+void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2ffield_5fmask_2eproto();
+void protobuf_AssignDesc_google_2fprotobuf_2ffield_5fmask_2eproto();
+void protobuf_ShutdownFile_google_2fprotobuf_2ffield_5fmask_2eproto();
+
+class FieldMask;
+
+// ===================================================================
+
+class LIBPROTOBUF_EXPORT FieldMask : public ::google::protobuf::Message {
+ public:
+ FieldMask();
+ virtual ~FieldMask();
+
+ FieldMask(const FieldMask& from);
+
+ inline FieldMask& operator=(const FieldMask& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const FieldMask& default_instance();
+
+ void Swap(FieldMask* other);
+
+ // implements Message ----------------------------------------------
+
+ inline FieldMask* New() const { return New(NULL); }
+
+ FieldMask* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const FieldMask& from);
+ void MergeFrom(const FieldMask& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(FieldMask* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // repeated string paths = 1;
+ int paths_size() const;
+ void clear_paths();
+ static const int kPathsFieldNumber = 1;
+ const ::std::string& paths(int index) const;
+ ::std::string* mutable_paths(int index);
+ void set_paths(int index, const ::std::string& value);
+ void set_paths(int index, const char* value);
+ void set_paths(int index, const char* value, size_t size);
+ ::std::string* add_paths();
+ void add_paths(const ::std::string& value);
+ void add_paths(const char* value);
+ void add_paths(const char* value, size_t size);
+ const ::google::protobuf::RepeatedPtrField< ::std::string>& paths() const;
+ ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_paths();
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.FieldMask)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::RepeatedPtrField< ::std::string> paths_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2ffield_5fmask_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2ffield_5fmask_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2ffield_5fmask_2eproto();
+
+ void InitAsDefaultInstance();
+ static FieldMask* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// FieldMask
+
+// repeated string paths = 1;
+inline int FieldMask::paths_size() const {
+ return paths_.size();
+}
+inline void FieldMask::clear_paths() {
+ paths_.Clear();
+}
+inline const ::std::string& FieldMask::paths(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.FieldMask.paths)
+ return paths_.Get(index);
+}
+inline ::std::string* FieldMask::mutable_paths(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.FieldMask.paths)
+ return paths_.Mutable(index);
+}
+inline void FieldMask::set_paths(int index, const ::std::string& value) {
+ // @@protoc_insertion_point(field_set:google.protobuf.FieldMask.paths)
+ paths_.Mutable(index)->assign(value);
+}
+inline void FieldMask::set_paths(int index, const char* value) {
+ paths_.Mutable(index)->assign(value);
+ // @@protoc_insertion_point(field_set_char:google.protobuf.FieldMask.paths)
+}
+inline void FieldMask::set_paths(int index, const char* value, size_t size) {
+ paths_.Mutable(index)->assign(
+ reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.FieldMask.paths)
+}
+inline ::std::string* FieldMask::add_paths() {
+ return paths_.Add();
+}
+inline void FieldMask::add_paths(const ::std::string& value) {
+ paths_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add:google.protobuf.FieldMask.paths)
+}
+inline void FieldMask::add_paths(const char* value) {
+ paths_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add_char:google.protobuf.FieldMask.paths)
+}
+inline void FieldMask::add_paths(const char* value, size_t size) {
+ paths_.Add()->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_add_pointer:google.protobuf.FieldMask.paths)
+}
+inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
+FieldMask::paths() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.FieldMask.paths)
+ return paths_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::std::string>*
+FieldMask::mutable_paths() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.FieldMask.paths)
+ return &paths_;
+}
+
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_google_2fprotobuf_2ffield_5fmask_2eproto__INCLUDED
diff --git a/src/google/protobuf/field_mask.proto b/src/google/protobuf/field_mask.proto
index 081c004a..35b1acc3 100644
--- a/src/google/protobuf/field_mask.proto
+++ b/src/google/protobuf/field_mask.proto
@@ -34,6 +34,7 @@ package google.protobuf;
option java_multiple_files = true;
option java_outer_classname = "FieldMaskProto";
option java_package = "com.google.protobuf";
+option csharp_namespace = "Google.ProtocolBuffers";
option objc_class_prefix = "GPB";
diff --git a/src/google/protobuf/generated_message_reflection.h b/src/google/protobuf/generated_message_reflection.h
index 4dddf6c7..dc8abb98 100644
--- a/src/google/protobuf/generated_message_reflection.h
+++ b/src/google/protobuf/generated_message_reflection.h
@@ -40,6 +40,7 @@
#include <string>
#include <vector>
+#include <google/protobuf/stubs/casts.h>
#include <google/protobuf/stubs/common.h>
// TODO(jasonh): Remove this once the compiler change to directly include this
// is released to components.
@@ -597,6 +598,42 @@ inline To dynamic_cast_if_available(From from) {
#endif
}
+// Tries to downcast this message to a generated message type.
+// Returns NULL if this class is not an instance of T.
+//
+// This is like dynamic_cast_if_available, except it works even when
+// dynamic_cast is not available by using Reflection. However it only works
+// with Message objects.
+//
+// TODO(haberman): can we remove dynamic_cast_if_available in favor of this?
+template <typename T>
+T* DynamicCastToGenerated(const Message* from) {
+ // Compile-time assert that T is a generated type that has a
+ // default_instance() accessor, but avoid actually calling it.
+ const T&(*get_default_instance)() = &T::default_instance;
+ (void)get_default_instance;
+
+ // Compile-time assert that T is a subclass of google::protobuf::Message.
+ const Message* unused = static_cast<T*>(NULL);
+ (void)unused;
+
+#if defined(GOOGLE_PROTOBUF_NO_RTTI) || \
+ (defined(_MSC_VER) && !defined(_CPPRTTI))
+ bool ok = &T::default_instance() ==
+ from->GetReflection()->GetMessageFactory()->GetPrototype(
+ from->GetDescriptor());
+ return ok ? down_cast<T*>(from) : NULL;
+#else
+ return dynamic_cast<T*>(from);
+#endif
+}
+
+template <typename T>
+T* DynamicCastToGenerated(Message* from) {
+ const Message* message_const = from;
+ return const_cast<T*>(DynamicCastToGenerated<const T>(message_const));
+}
+
} // namespace internal
} // namespace protobuf
diff --git a/src/google/protobuf/generated_message_util.h b/src/google/protobuf/generated_message_util.h
index 678f92a7..6357e27d 100644
--- a/src/google/protobuf/generated_message_util.h
+++ b/src/google/protobuf/generated_message_util.h
@@ -47,6 +47,10 @@
namespace google {
namespace protobuf {
+
+class Arena;
+namespace io { class CodedInputStream; }
+
namespace internal {
@@ -106,6 +110,15 @@ template <class Type> bool AllAreInitialized(const Type& t) {
return true;
}
+class ArenaString;
+
+// Read a length (varint32), followed by a string, from *input. Return a
+// pointer to a copy of the string that resides in *arena. Requires both
+// args to be non-NULL. If something goes wrong while reading the data
+// then NULL is returned (e.g., input does not start with a valid varint).
+ArenaString* ReadArenaString(::google::protobuf::io::CodedInputStream* input,
+ ::google::protobuf::Arena* arena);
+
} // namespace internal
} // namespace protobuf
diff --git a/src/google/protobuf/io/coded_stream.cc b/src/google/protobuf/io/coded_stream.cc
index 93e1a22e..3b8650d6 100644
--- a/src/google/protobuf/io/coded_stream.cc
+++ b/src/google/protobuf/io/coded_stream.cc
@@ -156,6 +156,11 @@ CodedInputStream::IncrementRecursionDepthAndPushLimit(int byte_limit) {
return std::make_pair(PushLimit(byte_limit), --recursion_budget_);
}
+CodedInputStream::Limit CodedInputStream::ReadLengthAndPushLimit() {
+ uint32 length;
+ return PushLimit(ReadVarint32(&length) ? length : 0);
+}
+
bool CodedInputStream::DecrementRecursionDepthAndPopLimit(Limit limit) {
bool result = ConsumedEntireMessage();
PopLimit(limit);
@@ -164,6 +169,12 @@ bool CodedInputStream::DecrementRecursionDepthAndPopLimit(Limit limit) {
return result;
}
+bool CodedInputStream::CheckEntireMessageConsumedAndPopLimit(Limit limit) {
+ bool result = ConsumedEntireMessage();
+ PopLimit(limit);
+ return result;
+}
+
int CodedInputStream::BytesUntilLimit() const {
if (current_limit_ == INT_MAX) return -1;
int current_position = CurrentPosition();
@@ -245,20 +256,7 @@ bool CodedInputStream::GetDirectBufferPointer(const void** data, int* size) {
}
bool CodedInputStream::ReadRaw(void* buffer, int size) {
- int current_buffer_size;
- while ((current_buffer_size = BufferSize()) < size) {
- // Reading past end of buffer. Copy what we have, then refresh.
- memcpy(buffer, buffer_, current_buffer_size);
- buffer = reinterpret_cast<uint8*>(buffer) + current_buffer_size;
- size -= current_buffer_size;
- Advance(current_buffer_size);
- if (!Refresh()) return false;
- }
-
- memcpy(buffer, buffer_, size);
- Advance(size);
-
- return true;
+ return InternalReadRawInline(buffer, size);
}
bool CodedInputStream::ReadString(string* buffer, int size) {
@@ -336,17 +334,23 @@ bool CodedInputStream::ReadLittleEndian64Fallback(uint64* value) {
namespace {
-inline const uint8* ReadVarint32FromArray(
- const uint8* buffer, uint32* value) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
-inline const uint8* ReadVarint32FromArray(const uint8* buffer, uint32* value) {
+// Read a varint from the given buffer, write it to *value, and return a pair.
+// The first part of the pair is true iff the read was successful. The second
+// part is buffer + (number of bytes read). This function is always inlined,
+// so returning a pair is costless.
+inline ::std::pair<bool, const uint8*> ReadVarint32FromArray(
+ uint32 first_byte, const uint8* buffer,
+ uint32* value) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
+inline ::std::pair<bool, const uint8*> ReadVarint32FromArray(
+ uint32 first_byte, const uint8* buffer, uint32* value) {
// Fast path: We have enough bytes left in the buffer to guarantee that
// this read won't cross the end, so we can skip the checks.
+ GOOGLE_DCHECK_EQ(*buffer, first_byte);
+ GOOGLE_DCHECK_EQ(first_byte & 0x80, 0x80) << first_byte;
const uint8* ptr = buffer;
uint32 b;
- uint32 result;
-
- b = *(ptr++); result = b ; if (!(b & 0x80)) goto done;
- result -= 0x80;
+ uint32 result = first_byte - 0x80;
+ ++ptr; // We just processed the first byte. Move on to the second.
b = *(ptr++); result += b << 7; if (!(b & 0x80)) goto done;
result -= 0x80 << 7;
b = *(ptr++); result += b << 14; if (!(b & 0x80)) goto done;
@@ -364,38 +368,42 @@ inline const uint8* ReadVarint32FromArray(const uint8* buffer, uint32* value) {
// We have overrun the maximum size of a varint (10 bytes). Assume
// the data is corrupt.
- return NULL;
+ return std::make_pair(false, ptr);
done:
*value = result;
- return ptr;
+ return std::make_pair(true, ptr);
}
} // namespace
bool CodedInputStream::ReadVarint32Slow(uint32* value) {
- uint64 result;
// Directly invoke ReadVarint64Fallback, since we already tried to optimize
// for one-byte varints.
- if (!ReadVarint64Fallback(&result)) return false;
- *value = (uint32)result;
- return true;
+ std::pair<uint64, bool> p = ReadVarint64Fallback();
+ *value = static_cast<uint32>(p.first);
+ return p.second;
}
-bool CodedInputStream::ReadVarint32Fallback(uint32* value) {
+int64 CodedInputStream::ReadVarint32Fallback(uint32 first_byte_or_zero) {
if (BufferSize() >= kMaxVarintBytes ||
// Optimization: We're also safe if the buffer is non-empty and it ends
// with a byte that would terminate a varint.
(buffer_end_ > buffer_ && !(buffer_end_[-1] & 0x80))) {
- const uint8* end = ReadVarint32FromArray(buffer_, value);
- if (end == NULL) return false;
- buffer_ = end;
- return true;
+ GOOGLE_DCHECK_NE(first_byte_or_zero, 0)
+ << "Caller should provide us with *buffer_ when buffer is non-empty";
+ uint32 temp;
+ ::std::pair<bool, const uint8*> p =
+ ReadVarint32FromArray(first_byte_or_zero, buffer_, &temp);
+ if (!p.first) return -1;
+ buffer_ = p.second;
+ return temp;
} else {
// Really slow case: we will incur the cost of an extra function call here,
// but moving this out of line reduces the size of this function, which
// improves the common case. In micro benchmarks, this is worth about 10-15%
- return ReadVarint32Slow(value);
+ uint32 temp;
+ return ReadVarint32Slow(&temp) ? static_cast<int64>(temp) : -1;
}
}
@@ -425,18 +433,24 @@ uint32 CodedInputStream::ReadTagSlow() {
return static_cast<uint32>(result);
}
-uint32 CodedInputStream::ReadTagFallback() {
+uint32 CodedInputStream::ReadTagFallback(uint32 first_byte_or_zero) {
const int buf_size = BufferSize();
if (buf_size >= kMaxVarintBytes ||
// Optimization: We're also safe if the buffer is non-empty and it ends
// with a byte that would terminate a varint.
(buf_size > 0 && !(buffer_end_[-1] & 0x80))) {
+ GOOGLE_DCHECK_EQ(first_byte_or_zero, buffer_[0]);
+ if (first_byte_or_zero == 0) {
+ ++buffer_;
+ return 0;
+ }
uint32 tag;
- const uint8* end = ReadVarint32FromArray(buffer_, &tag);
- if (end == NULL) {
+ ::std::pair<bool, const uint8*> p =
+ ReadVarint32FromArray(first_byte_or_zero, buffer_, &tag);
+ if (!p.first) {
return 0;
}
- buffer_ = end;
+ buffer_ = p.second;
return tag;
} else {
// We are commonly at a limit when attempting to read tags. Try to quickly
@@ -479,7 +493,7 @@ bool CodedInputStream::ReadVarint64Slow(uint64* value) {
return true;
}
-bool CodedInputStream::ReadVarint64Fallback(uint64* value) {
+std::pair<uint64, bool> CodedInputStream::ReadVarint64Fallback() {
if (BufferSize() >= kMaxVarintBytes ||
// Optimization: We're also safe if the buffer is non-empty and it ends
// with a byte that would terminate a varint.
@@ -517,16 +531,18 @@ bool CodedInputStream::ReadVarint64Fallback(uint64* value) {
// We have overrun the maximum size of a varint (10 bytes). The data
// must be corrupt.
- return false;
+ return std::make_pair(0, false);
done:
Advance(ptr - buffer_);
- *value = (static_cast<uint64>(part0) ) |
- (static_cast<uint64>(part1) << 28) |
- (static_cast<uint64>(part2) << 56);
- return true;
+ return std::make_pair((static_cast<uint64>(part0)) |
+ (static_cast<uint64>(part1) << 28) |
+ (static_cast<uint64>(part2) << 56),
+ true);
} else {
- return ReadVarint64Slow(value);
+ uint64 temp;
+ bool success = ReadVarint64Slow(&temp);
+ return std::make_pair(temp, success);
}
}
diff --git a/src/google/protobuf/io/coded_stream.h b/src/google/protobuf/io/coded_stream.h
index dea4b650..961c1a3f 100644
--- a/src/google/protobuf/io/coded_stream.h
+++ b/src/google/protobuf/io/coded_stream.h
@@ -197,6 +197,11 @@ class LIBPROTOBUF_EXPORT CodedInputStream {
// Read raw bytes, copying them into the given buffer.
bool ReadRaw(void* buffer, int size);
+ // Like the above, with inlined optimizations. This should only be used
+ // by the protobuf implementation.
+ inline bool InternalReadRawInline(void* buffer,
+ int size) GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
+
// Like ReadRaw, but reads into a string.
//
// Implementation Note: ReadString() grows the string gradually as it
@@ -387,9 +392,14 @@ class LIBPROTOBUF_EXPORT CodedInputStream {
// under the limit, false if it has gone over.
bool IncrementRecursionDepth();
- // Decrements the recursion depth.
+ // Decrements the recursion depth if possible.
void DecrementRecursionDepth();
+ // Decrements the recursion depth blindly. This is faster than
+ // DecrementRecursionDepth(). It should be used only if all previous
+ // increments to recursion depth were successful.
+ void UnsafeDecrementRecursionDepth();
+
// Shorthand for make_pair(PushLimit(byte_limit), --recursion_budget_).
// Using this can reduce code size and complexity in some cases. The caller
// is expected to check that the second part of the result is non-negative (to
@@ -398,15 +408,25 @@ class LIBPROTOBUF_EXPORT CodedInputStream {
std::pair<CodedInputStream::Limit, int> IncrementRecursionDepthAndPushLimit(
int byte_limit);
+ // Shorthand for PushLimit(ReadVarint32(&length) ? length : 0).
+ Limit ReadLengthAndPushLimit();
+
// Helper that is equivalent to: {
// bool result = ConsumedEntireMessage();
// PopLimit(limit);
- // DecrementRecursionDepth();
+ // UnsafeDecrementRecursionDepth();
// return result; }
// Using this can reduce code size and complexity in some cases.
// Do not use unless the current recursion depth is greater than zero.
bool DecrementRecursionDepthAndPopLimit(Limit limit);
+ // Helper that is equivalent to: {
+ // bool result = ConsumedEntireMessage();
+ // PopLimit(limit);
+ // return result; }
+ // Using this can reduce code size and complexity in some cases.
+ bool CheckEntireMessageConsumedAndPopLimit(Limit limit);
+
// Extension Registry ----------------------------------------------
// ADVANCED USAGE: 99.9% of people can ignore this section.
//
@@ -568,9 +588,13 @@ class LIBPROTOBUF_EXPORT CodedInputStream {
// optimization. The Slow method is yet another fallback when the buffer is
// not large enough. Making the slow path out-of-line speeds up the common
// case by 10-15%. The slow path is fairly uncommon: it only triggers when a
- // message crosses multiple buffers.
- bool ReadVarint32Fallback(uint32* value);
- bool ReadVarint64Fallback(uint64* value);
+ // message crosses multiple buffers. Note: ReadVarint32Fallback() and
+ // ReadVarint64Fallback() are called frequently and generally not inlined, so
+ // they have been optimized to avoid "out" parameters. The former returns -1
+ // if it fails and the uint32 it read otherwise. The latter has a bool
+ // indicating success or failure as part of its return type.
+ int64 ReadVarint32Fallback(uint32 first_byte_or_zero);
+ std::pair<uint64, bool> ReadVarint64Fallback();
bool ReadVarint32Slow(uint32* value);
bool ReadVarint64Slow(uint64* value);
bool ReadLittleEndian32Fallback(uint32* value);
@@ -578,7 +602,7 @@ class LIBPROTOBUF_EXPORT CodedInputStream {
// Fallback/slow methods for reading tags. These do not update last_tag_,
// but will set legitimate_message_end_ if we are at the end of the input
// stream.
- uint32 ReadTagFallback();
+ uint32 ReadTagFallback(uint32 first_byte_or_zero);
uint32 ReadTagSlow();
bool ReadStringFallback(string* buffer, int size);
@@ -818,13 +842,18 @@ class LIBPROTOBUF_EXPORT CodedOutputStream {
// methods optimize for that case.
inline bool CodedInputStream::ReadVarint32(uint32* value) {
- if (GOOGLE_PREDICT_TRUE(buffer_ < buffer_end_) && *buffer_ < 0x80) {
- *value = *buffer_;
- Advance(1);
- return true;
- } else {
- return ReadVarint32Fallback(value);
+ uint32 v = 0;
+ if (GOOGLE_PREDICT_TRUE(buffer_ < buffer_end_)) {
+ v = *buffer_;
+ if (v < 0x80) {
+ *value = v;
+ Advance(1);
+ return true;
+ }
}
+ int64 result = ReadVarint32Fallback(v);
+ *value = static_cast<uint32>(result);
+ return result >= 0;
}
inline bool CodedInputStream::ReadVarint64(uint64* value) {
@@ -832,9 +861,10 @@ inline bool CodedInputStream::ReadVarint64(uint64* value) {
*value = *buffer_;
Advance(1);
return true;
- } else {
- return ReadVarint64Fallback(value);
}
+ std::pair<uint64, bool> p = ReadVarint64Fallback();
+ *value = p.first;
+ return p.second;
}
// static
@@ -903,14 +933,17 @@ inline bool CodedInputStream::ReadLittleEndian64(uint64* value) {
}
inline uint32 CodedInputStream::ReadTag() {
- if (GOOGLE_PREDICT_TRUE(buffer_ < buffer_end_) && buffer_[0] < 0x80) {
- last_tag_ = buffer_[0];
- Advance(1);
- return last_tag_;
- } else {
- last_tag_ = ReadTagFallback();
- return last_tag_;
+ uint32 v = 0;
+ if (GOOGLE_PREDICT_TRUE(buffer_ < buffer_end_)) {
+ v = *buffer_;
+ if (v < 0x80) {
+ last_tag_ = v;
+ Advance(1);
+ return v;
+ }
}
+ last_tag_ = ReadTagFallback(v);
+ return last_tag_;
}
inline std::pair<uint32, bool> CodedInputStream::ReadTagWithCutoff(
@@ -918,10 +951,12 @@ inline std::pair<uint32, bool> CodedInputStream::ReadTagWithCutoff(
// In performance-sensitive code we can expect cutoff to be a compile-time
// constant, and things like "cutoff >= kMax1ByteVarint" to be evaluated at
// compile time.
+ uint32 first_byte_or_zero = 0;
if (GOOGLE_PREDICT_TRUE(buffer_ < buffer_end_)) {
// Hot case: buffer_ non_empty, buffer_[0] in [1, 128).
// TODO(gpike): Is it worth rearranging this? E.g., if the number of fields
// is large enough then is it better to check for the two-byte case first?
+ first_byte_or_zero = buffer_[0];
if (static_cast<int8>(buffer_[0]) > 0) {
const uint32 kMax1ByteVarint = 0x7f;
uint32 tag = last_tag_ = buffer_[0];
@@ -948,7 +983,7 @@ inline std::pair<uint32, bool> CodedInputStream::ReadTagWithCutoff(
}
}
// Slow path
- last_tag_ = ReadTagFallback();
+ last_tag_ = ReadTagFallback(first_byte_or_zero);
return std::make_pair(last_tag_, static_cast<uint32>(last_tag_ - 1) < cutoff);
}
@@ -1177,6 +1212,11 @@ inline void CodedInputStream::DecrementRecursionDepth() {
if (recursion_budget_ < recursion_limit_) ++recursion_budget_;
}
+inline void CodedInputStream::UnsafeDecrementRecursionDepth() {
+ assert(recursion_budget_ < recursion_limit_);
+ ++recursion_budget_;
+}
+
inline void CodedInputStream::SetExtensionRegistry(const DescriptorPool* pool,
MessageFactory* factory) {
extension_pool_ = pool;
diff --git a/src/google/protobuf/io/coded_stream_inl.h b/src/google/protobuf/io/coded_stream_inl.h
index cd8d1746..fa20f208 100644
--- a/src/google/protobuf/io/coded_stream_inl.h
+++ b/src/google/protobuf/io/coded_stream_inl.h
@@ -66,6 +66,23 @@ inline bool CodedInputStream::InternalReadStringInline(string* buffer,
return ReadStringFallback(buffer, size);
}
+inline bool CodedInputStream::InternalReadRawInline(void* buffer, int size) {
+ int current_buffer_size;
+ while ((current_buffer_size = BufferSize()) < size) {
+ // Reading past end of buffer. Copy what we have, then refresh.
+ memcpy(buffer, buffer_, current_buffer_size);
+ buffer = reinterpret_cast<uint8*>(buffer) + current_buffer_size;
+ size -= current_buffer_size;
+ Advance(current_buffer_size);
+ if (!Refresh()) return false;
+ }
+
+ memcpy(buffer, buffer_, size);
+ Advance(size);
+
+ return true;
+}
+
} // namespace io
} // namespace protobuf
} // namespace google
diff --git a/src/google/protobuf/io/printer.cc b/src/google/protobuf/io/printer.cc
index e621ba1d..3ae8c268 100644
--- a/src/google/protobuf/io/printer.cc
+++ b/src/google/protobuf/io/printer.cc
@@ -155,6 +155,78 @@ void Printer::Print(const char* text,
Print(vars, text);
}
+void Printer::Print(const char* text,
+ const char* variable1, const string& value1,
+ const char* variable2, const string& value2,
+ const char* variable3, const string& value3,
+ const char* variable4, const string& value4,
+ const char* variable5, const string& value5) {
+ map<string, string> vars;
+ vars[variable1] = value1;
+ vars[variable2] = value2;
+ vars[variable3] = value3;
+ vars[variable4] = value4;
+ vars[variable5] = value5;
+ Print(vars, text);
+}
+
+void Printer::Print(const char* text,
+ const char* variable1, const string& value1,
+ const char* variable2, const string& value2,
+ const char* variable3, const string& value3,
+ const char* variable4, const string& value4,
+ const char* variable5, const string& value5,
+ const char* variable6, const string& value6) {
+ map<string, string> vars;
+ vars[variable1] = value1;
+ vars[variable2] = value2;
+ vars[variable3] = value3;
+ vars[variable4] = value4;
+ vars[variable5] = value5;
+ vars[variable6] = value6;
+ Print(vars, text);
+}
+
+void Printer::Print(const char* text,
+ const char* variable1, const string& value1,
+ const char* variable2, const string& value2,
+ const char* variable3, const string& value3,
+ const char* variable4, const string& value4,
+ const char* variable5, const string& value5,
+ const char* variable6, const string& value6,
+ const char* variable7, const string& value7) {
+ map<string, string> vars;
+ vars[variable1] = value1;
+ vars[variable2] = value2;
+ vars[variable3] = value3;
+ vars[variable4] = value4;
+ vars[variable5] = value5;
+ vars[variable6] = value6;
+ vars[variable7] = value7;
+ Print(vars, text);
+}
+
+void Printer::Print(const char* text,
+ const char* variable1, const string& value1,
+ const char* variable2, const string& value2,
+ const char* variable3, const string& value3,
+ const char* variable4, const string& value4,
+ const char* variable5, const string& value5,
+ const char* variable6, const string& value6,
+ const char* variable7, const string& value7,
+ const char* variable8, const string& value8) {
+ map<string, string> vars;
+ vars[variable1] = value1;
+ vars[variable2] = value2;
+ vars[variable3] = value3;
+ vars[variable4] = value4;
+ vars[variable5] = value5;
+ vars[variable6] = value6;
+ vars[variable7] = value7;
+ vars[variable8] = value8;
+ Print(vars, text);
+}
+
void Printer::Indent() {
indent_ += " ";
}
diff --git a/src/google/protobuf/io/printer.h b/src/google/protobuf/io/printer.h
index 92ce3409..f1490bbe 100644
--- a/src/google/protobuf/io/printer.h
+++ b/src/google/protobuf/io/printer.h
@@ -91,8 +91,36 @@ class LIBPROTOBUF_EXPORT Printer {
const char* variable2, const string& value2,
const char* variable3, const string& value3,
const char* variable4, const string& value4);
- // TODO(kenton): Overloaded versions with more variables? Three seems
- // to be enough.
+ // Like the first Print(), except the substitutions are given as parameters.
+ void Print(const char* text, const char* variable1, const string& value1,
+ const char* variable2, const string& value2,
+ const char* variable3, const string& value3,
+ const char* variable4, const string& value4,
+ const char* variable5, const string& value5);
+ // Like the first Print(), except the substitutions are given as parameters.
+ void Print(const char* text, const char* variable1, const string& value1,
+ const char* variable2, const string& value2,
+ const char* variable3, const string& value3,
+ const char* variable4, const string& value4,
+ const char* variable5, const string& value5,
+ const char* variable6, const string& value6);
+ // Like the first Print(), except the substitutions are given as parameters.
+ void Print(const char* text, const char* variable1, const string& value1,
+ const char* variable2, const string& value2,
+ const char* variable3, const string& value3,
+ const char* variable4, const string& value4,
+ const char* variable5, const string& value5,
+ const char* variable6, const string& value6,
+ const char* variable7, const string& value7);
+ // Like the first Print(), except the substitutions are given as parameters.
+ void Print(const char* text, const char* variable1, const string& value1,
+ const char* variable2, const string& value2,
+ const char* variable3, const string& value3,
+ const char* variable4, const string& value4,
+ const char* variable5, const string& value5,
+ const char* variable6, const string& value6,
+ const char* variable7, const string& value7,
+ const char* variable8, const string& value8);
// Indent text by two spaces. After calling Indent(), two spaces will be
// inserted at the beginning of each line of text. Indent() may be called
diff --git a/src/google/protobuf/lite_unittest.cc b/src/google/protobuf/lite_unittest.cc
index 4ea21007..5af8b24d 100644
--- a/src/google/protobuf/lite_unittest.cc
+++ b/src/google/protobuf/lite_unittest.cc
@@ -34,12 +34,16 @@
#include <iostream>
#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/arena_test_util.h>
+#include <google/protobuf/map_lite_unittest.pb.h>
+#include <google/protobuf/map_lite_test_util.h>
#include <google/protobuf/test_util_lite.h>
#include <google/protobuf/unittest_lite.pb.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/stubs/strutil.h>
using namespace std;
@@ -84,6 +88,12 @@ void SetSomeTypesInEmptyMessageUnknownFields(
} // namespace
+#define EXPECT_TRUE GOOGLE_CHECK
+#define ASSERT_TRUE GOOGLE_CHECK
+#define EXPECT_FALSE(COND) GOOGLE_CHECK(!(COND))
+#define EXPECT_EQ GOOGLE_CHECK_EQ
+#define ASSERT_EQ GOOGLE_CHECK_EQ
+
int main(int argc, char* argv[]) {
string data, data2, packed_data;
@@ -345,6 +355,374 @@ int main(int argc, char* argv[]) {
GOOGLE_CHECK_EQ(0, empty_message.unknown_fields().size());
}
+ // Tests for map lite =============================================
+
+ {
+ // Accessors
+ protobuf_unittest::TestMapLite message;
+
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message);
+
+ google::protobuf::MapLiteTestUtil::ModifyMapFields(&message);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsModified(message);
+ }
+
+ {
+ // SetMapFieldsInitialized
+ protobuf_unittest::TestMapLite message;
+
+ google::protobuf::MapLiteTestUtil::SetMapFieldsInitialized(&message);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSetInitialized(message);
+ }
+
+ {
+ // Proto2SetMapFieldsInitialized
+ protobuf_unittest::TestEnumStartWithNonZeroMapLite message;
+ EXPECT_EQ(protobuf_unittest::PROTO2_NON_ZERO_MAP_ENUM_FOO_LITE,
+ (*message.mutable_map_field())[0]);
+ }
+
+ {
+ // Clear
+ protobuf_unittest::TestMapLite message;
+
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message);
+ message.Clear();
+ google::protobuf::MapLiteTestUtil::ExpectClear(message);
+ }
+
+ {
+ // ClearMessageMap
+ protobuf_unittest::TestMessageMapLite message;
+
+ // Creates a TestAllTypes with default value
+ google::protobuf::TestUtilLite::ExpectClear(
+ (*message.mutable_map_int32_message())[0]);
+ }
+
+ {
+ // CopyFrom
+ protobuf_unittest::TestMapLite message1, message2;
+
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message1);
+ message2.CopyFrom(message1);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message2);
+
+ // Copying from self should be a no-op.
+ message2.CopyFrom(message2);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message2);
+ }
+
+ {
+ // CopyFromMessageMap
+ protobuf_unittest::TestMessageMapLite message1, message2;
+
+ (*message1.mutable_map_int32_message())[0].add_repeated_int32(100);
+ (*message2.mutable_map_int32_message())[0].add_repeated_int32(101);
+
+ message1.CopyFrom(message2);
+
+ // Checks repeated field is overwritten.
+ EXPECT_EQ(1, message1.map_int32_message().at(0).repeated_int32_size());
+ EXPECT_EQ(101, message1.map_int32_message().at(0).repeated_int32(0));
+ }
+
+ {
+ // SwapWithEmpty
+ protobuf_unittest::TestMapLite message1, message2;
+
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message1);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message1);
+ google::protobuf::MapLiteTestUtil::ExpectClear(message2);
+
+ message1.Swap(&message2);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message2);
+ google::protobuf::MapLiteTestUtil::ExpectClear(message1);
+ }
+
+ {
+ // SwapWithSelf
+ protobuf_unittest::TestMapLite message;
+
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message);
+
+ message.Swap(&message);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message);
+ }
+
+ {
+ // SwapWithOther
+ protobuf_unittest::TestMapLite message1, message2;
+
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message1);
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message2);
+ google::protobuf::MapLiteTestUtil::ModifyMapFields(&message2);
+
+ message1.Swap(&message2);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsModified(message1);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message2);
+ }
+
+ {
+ // CopyConstructor
+ protobuf_unittest::TestMapLite message1;
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message1);
+
+ protobuf_unittest::TestMapLite message2(message1);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message2);
+ }
+
+ {
+ // CopyAssignmentOperator
+ protobuf_unittest::TestMapLite message1;
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message1);
+
+ protobuf_unittest::TestMapLite message2;
+ message2 = message1;
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message2);
+
+ // Make sure that self-assignment does something sane.
+ message2.operator=(message2);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message2);
+ }
+
+ {
+ // NonEmptyMergeFrom
+ protobuf_unittest::TestMapLite message1, message2;
+
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message1);
+
+ // This field will test merging into an empty spot.
+ (*message2.mutable_map_int32_int32())[1] = 1;
+ message1.mutable_map_int32_int32()->erase(1);
+
+ // This tests overwriting.
+ (*message2.mutable_map_int32_double())[1] = 1;
+ (*message1.mutable_map_int32_double())[1] = 2;
+
+ message1.MergeFrom(message2);
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message1);
+ }
+
+ {
+ // MergeFromMessageMap
+ protobuf_unittest::TestMessageMapLite message1, message2;
+
+ (*message1.mutable_map_int32_message())[0].add_repeated_int32(100);
+ (*message2.mutable_map_int32_message())[0].add_repeated_int32(101);
+
+ message1.MergeFrom(message2);
+
+ // Checks repeated field is overwritten.
+ EXPECT_EQ(1, message1.map_int32_message().at(0).repeated_int32_size());
+ EXPECT_EQ(101, message1.map_int32_message().at(0).repeated_int32(0));
+ }
+
+ {
+ // Test the generated SerializeWithCachedSizesToArray()
+ protobuf_unittest::TestMapLite message1, message2;
+ string data;
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message1);
+ int size = message1.ByteSize();
+ data.resize(size);
+ ::google::protobuf::uint8* start = reinterpret_cast< ::google::protobuf::uint8*>(::google::protobuf::string_as_array(&data));
+ ::google::protobuf::uint8* end = message1.SerializeWithCachedSizesToArray(start);
+ EXPECT_EQ(size, end - start);
+ EXPECT_TRUE(message2.ParseFromString(data));
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message2);
+ }
+
+ {
+ // Test the generated SerializeWithCachedSizes()
+ protobuf_unittest::TestMapLite message1, message2;
+ google::protobuf::MapLiteTestUtil::SetMapFields(&message1);
+ int size = message1.ByteSize();
+ string data;
+ data.resize(size);
+ {
+ // Allow the output stream to buffer only one byte at a time.
+ google::protobuf::io::ArrayOutputStream array_stream(
+ ::google::protobuf::string_as_array(&data), size, 1);
+ google::protobuf::io::CodedOutputStream output_stream(&array_stream);
+ message1.SerializeWithCachedSizes(&output_stream);
+ EXPECT_FALSE(output_stream.HadError());
+ EXPECT_EQ(size, output_stream.ByteCount());
+ }
+ EXPECT_TRUE(message2.ParseFromString(data));
+ google::protobuf::MapLiteTestUtil::ExpectMapFieldsSet(message2);
+ }
+
+
+ {
+ // Proto2UnknownEnum
+ protobuf_unittest::TestEnumMapPlusExtraLite from;
+ (*from.mutable_known_map_field())[0] =
+ protobuf_unittest::E_PROTO2_MAP_ENUM_FOO_LITE;
+ (*from.mutable_unknown_map_field())[0] =
+ protobuf_unittest::E_PROTO2_MAP_ENUM_EXTRA_LITE;
+ string data;
+ from.SerializeToString(&data);
+
+ protobuf_unittest::TestEnumMapLite to;
+ EXPECT_TRUE(to.ParseFromString(data));
+ EXPECT_EQ(0, to.unknown_map_field().size());
+ EXPECT_FALSE(to.mutable_unknown_fields()->empty());
+ EXPECT_EQ(1, to.known_map_field().size());
+ EXPECT_EQ(protobuf_unittest::PROTO2_MAP_ENUM_FOO_LITE,
+ to.known_map_field().at(0));
+
+ data.clear();
+ from.Clear();
+ to.SerializeToString(&data);
+ EXPECT_TRUE(from.ParseFromString(data));
+ EXPECT_EQ(1, from.known_map_field().size());
+ EXPECT_EQ(protobuf_unittest::E_PROTO2_MAP_ENUM_FOO_LITE,
+ from.known_map_field().at(0));
+ EXPECT_EQ(1, from.unknown_map_field().size());
+ EXPECT_EQ(protobuf_unittest::E_PROTO2_MAP_ENUM_EXTRA_LITE,
+ from.unknown_map_field().at(0));
+ }
+
+ {
+ // StandardWireFormat
+ protobuf_unittest::TestMapLite message;
+ string data = "\x0A\x04\x08\x01\x10\x01";
+
+ EXPECT_TRUE(message.ParseFromString(data));
+ EXPECT_EQ(1, message.map_int32_int32().size());
+ EXPECT_EQ(1, message.map_int32_int32().at(1));
+ }
+
+ {
+ // UnorderedWireFormat
+ protobuf_unittest::TestMapLite message;
+
+ // put value before key in wire format
+ string data = "\x0A\x04\x10\x01\x08\x02";
+
+ EXPECT_TRUE(message.ParseFromString(data));
+ EXPECT_EQ(1, message.map_int32_int32().size());
+ EXPECT_EQ(1, message.map_int32_int32().at(2));
+ }
+
+ {
+ // DuplicatedKeyWireFormat
+ protobuf_unittest::TestMapLite message;
+
+ // Two key fields in wire format
+ string data = "\x0A\x06\x08\x01\x08\x02\x10\x01";
+
+ EXPECT_TRUE(message.ParseFromString(data));
+ EXPECT_EQ(1, message.map_int32_int32().size());
+ EXPECT_EQ(1, message.map_int32_int32().at(2));
+ }
+
+ {
+ // DuplicatedValueWireFormat
+ protobuf_unittest::TestMapLite message;
+
+ // Two value fields in wire format
+ string data = "\x0A\x06\x08\x01\x10\x01\x10\x02";
+
+ EXPECT_TRUE(message.ParseFromString(data));
+ EXPECT_EQ(1, message.map_int32_int32().size());
+ EXPECT_EQ(2, message.map_int32_int32().at(1));
+ }
+
+ {
+ // MissedKeyWireFormat
+ protobuf_unittest::TestMapLite message;
+
+ // No key field in wire format
+ string data = "\x0A\x02\x10\x01";
+
+ EXPECT_TRUE(message.ParseFromString(data));
+ EXPECT_EQ(1, message.map_int32_int32().size());
+ EXPECT_EQ(1, message.map_int32_int32().at(0));
+ }
+
+ {
+ // MissedValueWireFormat
+ protobuf_unittest::TestMapLite message;
+
+ // No value field in wire format
+ string data = "\x0A\x02\x08\x01";
+
+ EXPECT_TRUE(message.ParseFromString(data));
+ EXPECT_EQ(1, message.map_int32_int32().size());
+ EXPECT_EQ(0, message.map_int32_int32().at(1));
+ }
+
+ {
+ // UnknownFieldWireFormat
+ protobuf_unittest::TestMapLite message;
+
+ // Unknown field in wire format
+ string data = "\x0A\x06\x08\x02\x10\x03\x18\x01";
+
+ EXPECT_TRUE(message.ParseFromString(data));
+ EXPECT_EQ(1, message.map_int32_int32().size());
+ EXPECT_EQ(3, message.map_int32_int32().at(2));
+ }
+
+ {
+ // CorruptedWireFormat
+ protobuf_unittest::TestMapLite message;
+
+ // corrupted data in wire format
+ string data = "\x0A\x06\x08\x02\x11\x03";
+
+ EXPECT_FALSE(message.ParseFromString(data));
+ }
+
+ {
+ // IsInitialized
+ protobuf_unittest::TestRequiredMessageMapLite map_message;
+
+ // Add an uninitialized message.
+ (*map_message.mutable_map_field())[0];
+ EXPECT_FALSE(map_message.IsInitialized());
+
+ // Initialize uninitialized message
+ (*map_message.mutable_map_field())[0].set_a(0);
+ (*map_message.mutable_map_field())[0].set_b(0);
+ (*map_message.mutable_map_field())[0].set_c(0);
+ EXPECT_TRUE(map_message.IsInitialized());
+ }
+
+ // arena support for map =========================================
+
+ {
+ // ParsingAndSerializingNoHeapAllocation
+
+ // Allocate a large initial block to avoid mallocs during hooked test.
+ std::vector<char> arena_block(128 * 1024);
+ google::protobuf::ArenaOptions options;
+ options.initial_block = &arena_block[0];
+ options.initial_block_size = arena_block.size();
+ google::protobuf::Arena arena(options);
+ string data;
+ data.reserve(128 * 1024);
+
+ {
+ google::protobuf::internal::NoHeapChecker no_heap;
+
+ protobuf_unittest::TestArenaMapLite* from =
+ google::protobuf::Arena::CreateMessage<protobuf_unittest::TestArenaMapLite>(
+ &arena);
+ google::protobuf::MapLiteTestUtil::SetArenaMapFields(from);
+ from->SerializeToString(&data);
+
+ protobuf_unittest::TestArenaMapLite* to =
+ google::protobuf::Arena::CreateMessage<protobuf_unittest::TestArenaMapLite>(
+ &arena);
+ to->ParseFromString(data);
+ google::protobuf::MapLiteTestUtil::ExpectArenaMapFieldsSet(*to);
+ }
+ }
+
std::cout << "PASS" << std::endl;
return 0;
}
diff --git a/src/google/protobuf/map.h b/src/google/protobuf/map.h
index e56af3fc..96d2f201 100644
--- a/src/google/protobuf/map.h
+++ b/src/google/protobuf/map.h
@@ -33,6 +33,7 @@
#include <iterator>
#include <google/protobuf/stubs/hash.h>
+#include <limits> // To support Visual Studio 2008
#include <google/protobuf/arena.h>
#include <google/protobuf/generated_enum_util.h>
@@ -167,11 +168,21 @@ class Map {
}
}
- void construct(pointer p, const_reference t) { new (p) value_type(t); }
+#if __cplusplus >= 201103L && !defined(GOOGLE_PROTOBUF_OS_APPLE)
+ template<class NodeType, class... Args>
+ void construct(NodeType* p, Args&&... args) {
+ new (p) NodeType(std::forward<Args>(args)...);
+ }
- void destroy(pointer p) {
- if (arena_ == NULL) p->~value_type();
+ template<class NodeType>
+ void destroy(NodeType* p) {
+ p->~NodeType();
}
+#else
+ void construct(pointer p, const_reference t) { new (p) value_type(t); }
+
+ void destroy(pointer p) { p->~value_type(); }
+#endif
template <typename X>
struct rebind {
@@ -188,6 +199,11 @@ class Map {
return arena_ != other.arena_;
}
+ // To support Visual Studio 2008
+ size_type max_size() const {
+ return std::numeric_limits<size_type>::max();
+ }
+
private:
Arena* arena_;
@@ -199,7 +215,7 @@ class Map {
typedef MapAllocator<std::pair<const Key, MapPair<Key, T>*> > Allocator;
// Iterators
- class LIBPROTOBUF_EXPORT const_iterator
+ class const_iterator
: public std::iterator<std::forward_iterator_tag, value_type, ptrdiff_t,
const value_type*, const value_type&> {
typedef typename hash_map<Key, value_type*, hash<Key>, equal_to<Key>,
@@ -229,7 +245,7 @@ class Map {
InnerIt it_;
};
- class LIBPROTOBUF_EXPORT iterator : public std::iterator<std::forward_iterator_tag, value_type> {
+ class iterator : public std::iterator<std::forward_iterator_tag, value_type> {
typedef typename hash_map<Key, value_type*, hasher, equal_to<Key>,
Allocator>::iterator InnerIt;
@@ -422,12 +438,13 @@ class Map {
int default_enum_value_;
friend class ::google::protobuf::Arena;
+ typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
template <typename K, typename V,
internal::WireFormatLite::FieldType key_wire_type,
internal::WireFormatLite::FieldType value_wire_type,
int default_enum_value>
- friend class LIBPROTOBUF_EXPORT internal::MapFieldLite;
+ friend class internal::MapFieldLite;
};
} // namespace protobuf
diff --git a/src/google/protobuf/map_entry.h b/src/google/protobuf/map_entry.h
index f78a4f40..e93d0348 100644
--- a/src/google/protobuf/map_entry.h
+++ b/src/google/protobuf/map_entry.h
@@ -97,7 +97,7 @@ template <typename Key, typename Value,
WireFormatLite::FieldType kKeyFieldType,
WireFormatLite::FieldType kValueFieldType,
int default_enum_value>
-class LIBPROTOBUF_EXPORT MapEntry : public MapEntryBase {
+class MapEntry : public MapEntryBase {
// Handlers for key/value wire type. Provide utilities to parse/serialize
// key/value.
typedef MapWireFieldTypeHandler<kKeyFieldType> KeyWireHandler;
@@ -274,8 +274,8 @@ class LIBPROTOBUF_EXPORT MapEntry : public MapEntryBase {
typedef void DestructorSkippable_;
template <typename K, typename V, WireFormatLite::FieldType k_wire_type,
WireFormatLite::FieldType, int default_enum>
- friend class LIBPROTOBUF_EXPORT internal::MapField;
- friend class LIBPROTOBUF_EXPORT internal::GeneratedMessageReflection;
+ friend class internal::MapField;
+ friend class internal::GeneratedMessageReflection;
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MapEntry);
};
diff --git a/src/google/protobuf/map_entry_lite.h b/src/google/protobuf/map_entry_lite.h
index 304fba88..52746da5 100644
--- a/src/google/protobuf/map_entry_lite.h
+++ b/src/google/protobuf/map_entry_lite.h
@@ -60,7 +60,7 @@ template <typename Key, typename Value,
WireFormatLite::FieldType kKeyFieldType,
WireFormatLite::FieldType kValueFieldType,
int default_enum_value>
-class LIBPROTOBUF_EXPORT MapEntryLite : public MessageLite {
+class MapEntryLite : public MessageLite {
// Handlers for key/value wire type. Provide utilities to parse/serialize
// key/value.
typedef MapWireFieldTypeHandler<kKeyFieldType> KeyWireHandler;
@@ -267,17 +267,18 @@ class LIBPROTOBUF_EXPORT MapEntryLite : public MessageLite {
// google::protobuf::Map is enum. We cannot create a reference to int from an enum.
static MapEntryLite* EnumWrap(const Key& key, const Value value,
Arena* arena) {
- return Arena::Create<MapEnumEntryWrapper<
+ return Arena::CreateMessage<MapEnumEntryWrapper<
Key, Value, kKeyFieldType, kValueFieldType, default_enum_value> >(
- arena, key, value, arena);
+ arena, key, value);
}
// Like above, but for all the other types. This avoids value copy to create
// MapEntryLite from google::protobuf::Map in serialization.
static MapEntryLite* Wrap(const Key& key, const Value& value, Arena* arena) {
- return Arena::Create<MapEntryWrapper<Key, Value, kKeyFieldType,
- kValueFieldType, default_enum_value> >(
- arena, key, value, arena);
+ return Arena::CreateMessage<MapEntryWrapper<Key, Value, kKeyFieldType,
+ kValueFieldType,
+ default_enum_value> >(
+ arena, key, value);
}
protected:
@@ -301,14 +302,14 @@ class LIBPROTOBUF_EXPORT MapEntryLite : public MessageLite {
// only takes references of given key and value.
template <typename K, typename V, WireFormatLite::FieldType k_wire_type,
WireFormatLite::FieldType v_wire_type, int default_enum>
- class LIBPROTOBUF_EXPORT MapEntryWrapper
+ class MapEntryWrapper
: public MapEntryLite<K, V, k_wire_type, v_wire_type, default_enum> {
typedef MapEntryLite<K, V, k_wire_type, v_wire_type, default_enum> Base;
typedef typename Base::KeyCppType KeyCppType;
typedef typename Base::ValCppType ValCppType;
public:
- MapEntryWrapper(const K& key, const V& value, Arena* arena)
+ MapEntryWrapper(Arena* arena, const K& key, const V& value)
: MapEntryLite<K, V, k_wire_type, v_wire_type, default_enum>(arena),
key_(key),
value_(value) {
@@ -323,6 +324,7 @@ class LIBPROTOBUF_EXPORT MapEntryLite : public MessageLite {
const Value& value_;
friend class ::google::protobuf::Arena;
+ typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
};
@@ -334,14 +336,14 @@ class LIBPROTOBUF_EXPORT MapEntryLite : public MessageLite {
// the temporary.
template <typename K, typename V, WireFormatLite::FieldType k_wire_type,
WireFormatLite::FieldType v_wire_type, int default_enum>
- class LIBPROTOBUF_EXPORT MapEnumEntryWrapper
+ class MapEnumEntryWrapper
: public MapEntryLite<K, V, k_wire_type, v_wire_type, default_enum> {
typedef MapEntryLite<K, V, k_wire_type, v_wire_type, default_enum> Base;
typedef typename Base::KeyCppType KeyCppType;
typedef typename Base::ValCppType ValCppType;
public:
- MapEnumEntryWrapper(const K& key, const V& value, Arena* arena)
+ MapEnumEntryWrapper(Arena* arena, const K& key, const V& value)
: MapEntryLite<K, V, k_wire_type, v_wire_type, default_enum>(arena),
key_(key),
value_(value) {
@@ -355,7 +357,7 @@ class LIBPROTOBUF_EXPORT MapEntryLite : public MessageLite {
const KeyCppType& key_;
const ValCppType value_;
- friend class ::google::protobuf::Arena;
+ friend class google::protobuf::Arena;
typedef void DestructorSkippable_;
};
@@ -394,10 +396,10 @@ class LIBPROTOBUF_EXPORT MapEntryLite : public MessageLite {
typedef void DestructorSkippable_;
template <typename K, typename V, WireFormatLite::FieldType,
WireFormatLite::FieldType, int>
- friend class LIBPROTOBUF_EXPORT internal::MapEntry;
+ friend class internal::MapEntry;
template <typename K, typename V, WireFormatLite::FieldType,
WireFormatLite::FieldType, int>
- friend class LIBPROTOBUF_EXPORT internal::MapFieldLite;
+ friend class internal::MapFieldLite;
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MapEntryLite);
};
diff --git a/src/google/protobuf/map_field.cc b/src/google/protobuf/map_field.cc
index fd40c0d8..6ff1936e 100644
--- a/src/google/protobuf/map_field.cc
+++ b/src/google/protobuf/map_field.cc
@@ -104,14 +104,18 @@ void MapFieldBase::SetRepeatedDirty() { state_ = STATE_MODIFIED_REPEATED; }
void* MapFieldBase::MutableRepeatedPtrField() const { return repeated_field_; }
void MapFieldBase::SyncRepeatedFieldWithMap() const {
- Atomic32 state = google::protobuf::internal::NoBarrier_Load(&state_);
+ // "Acquire" insures the operation after SyncRepeatedFieldWithMap won't get
+ // executed before state_ is checked.
+ Atomic32 state = google::protobuf::internal::Acquire_Load(&state_);
if (state == STATE_MODIFIED_MAP) {
mutex_.Lock();
// Double check state, because another thread may have seen the same state
// and done the synchronization before the current thread.
if (state_ == STATE_MODIFIED_MAP) {
SyncRepeatedFieldWithMapNoLock();
- google::protobuf::internal::NoBarrier_Store(&state_, CLEAN);
+ // "Release" insures state_ can only be changed "after"
+ // SyncRepeatedFieldWithMapNoLock is finished.
+ google::protobuf::internal::Release_Store(&state_, CLEAN);
}
mutex_.Unlock();
}
@@ -119,19 +123,23 @@ void MapFieldBase::SyncRepeatedFieldWithMap() const {
void MapFieldBase::SyncRepeatedFieldWithMapNoLock() const {
if (repeated_field_ == NULL) {
- repeated_field_ = Arena::Create<RepeatedPtrField<Message> >(arena_, arena_);
+ repeated_field_ = Arena::CreateMessage<RepeatedPtrField<Message> >(arena_);
}
}
void MapFieldBase::SyncMapWithRepeatedField() const {
- Atomic32 state = google::protobuf::internal::NoBarrier_Load(&state_);
+ // "Acquire" insures the operation after SyncMapWithRepeatedField won't get
+ // executed before state_ is checked.
+ Atomic32 state = google::protobuf::internal::Acquire_Load(&state_);
if (state == STATE_MODIFIED_REPEATED) {
mutex_.Lock();
// Double check state, because another thread may have seen the same state
// and done the synchronization before the current thread.
if (state_ == STATE_MODIFIED_REPEATED) {
SyncMapWithRepeatedFieldNoLock();
- google::protobuf::internal::NoBarrier_Store(&state_, CLEAN);
+ // "Release" insures state_ can only be changed "after"
+ // SyncRepeatedFieldWithMapNoLock is finished.
+ google::protobuf::internal::Release_Store(&state_, CLEAN);
}
mutex_.Unlock();
}
diff --git a/src/google/protobuf/map_field.h b/src/google/protobuf/map_field.h
index 6d8b6ec8..56d3d0f4 100644
--- a/src/google/protobuf/map_field.h
+++ b/src/google/protobuf/map_field.h
@@ -68,7 +68,11 @@ class LIBPROTOBUF_EXPORT MapFieldBase {
repeated_field_(NULL),
entry_descriptor_(NULL),
assign_descriptor_callback_(NULL),
- state_(STATE_MODIFIED_MAP) {}
+ state_(STATE_MODIFIED_MAP) {
+ // Mutex's destructor needs to be called explicitly to release resources
+ // acquired in its constructor.
+ arena->OwnDestructor(&mutex_);
+ }
virtual ~MapFieldBase();
// Returns reference to internal repeated field. Data written using
@@ -146,7 +150,7 @@ template <typename Key, typename T,
WireFormatLite::FieldType kKeyFieldType,
WireFormatLite::FieldType kValueFieldType,
int default_enum_value = 0>
-class LIBPROTOBUF_EXPORT MapField : public MapFieldBase,
+class MapField : public MapFieldBase,
public MapFieldLite<Key, T, kKeyFieldType, kValueFieldType,
default_enum_value> {
// Handlers for key/value wire type. Provide utilities to parse/serialize
@@ -208,6 +212,7 @@ class LIBPROTOBUF_EXPORT MapField : public MapFieldBase,
void SetAssignDescriptorCallback(void (*callback)());
private:
+ typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
// MapField needs MapEntry's default instance to create new MapEntry.
diff --git a/src/google/protobuf/map_field_inl.h b/src/google/protobuf/map_field_inl.h
index ae63c721..5b4305f9 100644
--- a/src/google/protobuf/map_field_inl.h
+++ b/src/google/protobuf/map_field_inl.h
@@ -212,11 +212,11 @@ void
MapField<Key, T, kKeyFieldType, kValueFieldType,
default_enum_value>::SyncRepeatedFieldWithMapNoLock() const {
if (repeated_field_ == NULL) {
- if (arena_ == NULL) {
+ if (MapFieldBase::arena_ == NULL) {
repeated_field_ = new RepeatedPtrField<Message>();
} else {
- repeated_field_ =
- Arena::Create<RepeatedPtrField<Message> >(arena_, arena_);
+ repeated_field_ = Arena::CreateMessage<RepeatedPtrField<Message> >(
+ MapFieldBase::arena_);
}
}
const Map<Key, T>& map = GetInternalMap();
@@ -229,7 +229,8 @@ MapField<Key, T, kKeyFieldType, kValueFieldType,
it != map.end(); ++it) {
InitDefaultEntryOnce();
GOOGLE_CHECK(default_entry_ != NULL);
- EntryType* new_entry = down_cast<EntryType*>(default_entry_->New(arena_));
+ EntryType* new_entry =
+ down_cast<EntryType*>(default_entry_->New(MapFieldBase::arena_));
repeated_field->AddAllocated(new_entry);
(*new_entry->mutable_key()) = it->first;
(*new_entry->mutable_value()) = it->second;
diff --git a/src/google/protobuf/map_field_lite.h b/src/google/protobuf/map_field_lite.h
index 549ecc08..860dae55 100644
--- a/src/google/protobuf/map_field_lite.h
+++ b/src/google/protobuf/map_field_lite.h
@@ -45,7 +45,7 @@ template <typename Key, typename T,
WireFormatLite::FieldType key_wire_type,
WireFormatLite::FieldType value_wire_type,
int default_enum_value = 0>
-class LIBPROTOBUF_EXPORT MapFieldLite {
+class MapFieldLite {
// Define message type for internal repeated field.
typedef MapEntryLite<Key, T, key_wire_type, value_wire_type,
default_enum_value> EntryType;
@@ -109,7 +109,7 @@ template <typename Key, typename T,
MapFieldLite<Key, T, key_wire_type, value_wire_type,
default_enum_value>::MapFieldLite(Arena* arena)
: arena_(arena) {
- map_ = Arena::Create<Map<Key, T> >(arena, arena);
+ map_ = Arena::CreateMessage<Map<Key, T> >(arena);
SetDefaultEnumValue();
}
diff --git a/src/google/protobuf/map_field_test.cc b/src/google/protobuf/map_field_test.cc
index 61344cbb..e3a64079 100644
--- a/src/google/protobuf/map_field_test.cc
+++ b/src/google/protobuf/map_field_test.cc
@@ -56,6 +56,7 @@ using unittest::TestAllTypes;
class MapFieldBaseStub : public MapFieldBase {
public:
+ typedef void InternalArenaConstructable_;
typedef void DestructorSkippable_;
MapFieldBaseStub() {}
explicit MapFieldBaseStub(Arena* arena) : MapFieldBase(arena) {}
@@ -144,15 +145,17 @@ TEST_F(MapFieldBasePrimitiveTest, Arena) {
// Allocate a large initial block to avoid mallocs during hooked test.
std::vector<char> arena_block(128 * 1024);
ArenaOptions options;
- options.initial_block = arena_block.data();
+ options.initial_block = &arena_block[0];
options.initial_block_size = arena_block.size();
Arena arena(options);
{
- NoHeapChecker no_heap;
+ // TODO(liujisi): Re-write the test to ensure the memory for the map and
+ // repeated fields are allocated from arenas.
+ // NoHeapChecker no_heap;
MapFieldType* map_field =
- Arena::Create<MapFieldType>(&arena, &arena, default_entry_);
+ Arena::CreateMessage<MapFieldType>(&arena, default_entry_);
// Set content in map
(*map_field->MutableMap())[100] = 101;
@@ -162,10 +165,12 @@ TEST_F(MapFieldBasePrimitiveTest, Arena) {
}
{
- NoHeapChecker no_heap;
+ // TODO(liujisi): Re-write the test to ensure the memory for the map and
+ // repeated fields are allocated from arenas.
+ // NoHeapChecker no_heap;
MapFieldBaseStub* map_field =
- Arena::Create<MapFieldBaseStub>(&arena, &arena);
+ Arena::CreateMessage<MapFieldBaseStub>(&arena);
// Trigger conversion to repeated field.
EXPECT_TRUE(map_field->MutableRepeatedField() != NULL);
diff --git a/src/google/protobuf/map_lite_unittest.proto b/src/google/protobuf/map_lite_unittest.proto
index c69e8d94..febfe5f6 100644
--- a/src/google/protobuf/map_lite_unittest.proto
+++ b/src/google/protobuf/map_lite_unittest.proto
@@ -32,6 +32,7 @@ syntax = "proto2";
option cc_enable_arenas = true;
option optimize_for = LITE_RUNTIME;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
import "google/protobuf/unittest_lite.proto";
diff --git a/src/google/protobuf/map_proto2_unittest.proto b/src/google/protobuf/map_proto2_unittest.proto
index 3d4af28e..04ca6170 100644
--- a/src/google/protobuf/map_proto2_unittest.proto
+++ b/src/google/protobuf/map_proto2_unittest.proto
@@ -36,6 +36,8 @@ syntax = "proto2";
// In map_test_util.h we do "using namespace unittest = protobuf_unittest".
package protobuf_unittest;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
+
enum Proto2MapEnum {
PROTO2_MAP_ENUM_FOO = 0;
PROTO2_MAP_ENUM_BAR = 1;
diff --git a/src/google/protobuf/map_test.cc b/src/google/protobuf/map_test.cc
index 88cba1f2..d62ec85f 100644
--- a/src/google/protobuf/map_test.cc
+++ b/src/google/protobuf/map_test.cc
@@ -2258,13 +2258,34 @@ TEST(TextFormatMapTest, SerializeAndParse) {
MapTestUtil::ExpectMapFieldsSet(dest);
}
+TEST(TextFormatMapTest, Sorted) {
+ unittest::TestMap message;
+ MapTestUtil::MapReflectionTester tester(message.GetDescriptor());
+ tester.SetMapFieldsViaReflection(&message);
+
+ string expected_text;
+ GOOGLE_CHECK_OK(File::GetContents(
+ TestSourceDir() +
+ "/google/protobuf/"
+ "testdata/map_test_data.txt",
+ &expected_text, true));
+
+ EXPECT_EQ(message.DebugString(), expected_text);
+
+ // Test again on the reverse order.
+ unittest::TestMap message2;
+ tester.SetMapFieldsViaReflection(&message2);
+ tester.SwapMapsViaReflection(&message2);
+ EXPECT_EQ(message2.DebugString(), expected_text);
+}
+
// arena support =================================================
TEST(ArenaTest, ParsingAndSerializingNoHeapAllocation) {
// Allocate a large initial block to avoid mallocs during hooked test.
std::vector<char> arena_block(128 * 1024);
ArenaOptions options;
- options.initial_block = arena_block.data();
+ options.initial_block = &arena_block[0];
options.initial_block_size = arena_block.size();
Arena arena(options);
string data;
diff --git a/src/google/protobuf/map_type_handler.h b/src/google/protobuf/map_type_handler.h
index 278b78ae..ffdb6dfb 100644
--- a/src/google/protobuf/map_type_handler.h
+++ b/src/google/protobuf/map_type_handler.h
@@ -129,11 +129,11 @@ class MapCppTypeHandler : public MapCommonTypeHandler<Type> {
// Return bytes used by value in Map.
static int SpaceUsedInMap(const Type& value) { return value.SpaceUsed(); }
static inline void Clear(Type** value) {
- if (*value != NULL) (*value)->Type::Clear();
+ if (*value != NULL) (*value)->Clear();
}
static inline void ClearMaybeByDefaultEnum(Type** value,
int default_enum_value) {
- if (*value != NULL) (*value)->Type::Clear();
+ if (*value != NULL) (*value)->Clear();
}
static inline void Merge(const Type& from, Type** to) {
(*to)->MergeFrom(from);
diff --git a/src/google/protobuf/map_unittest.proto b/src/google/protobuf/map_unittest.proto
index 830f672b..cbf747d9 100644
--- a/src/google/protobuf/map_unittest.proto
+++ b/src/google/protobuf/map_unittest.proto
@@ -31,6 +31,7 @@
syntax = "proto3";
option cc_enable_arenas = true;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
import "google/protobuf/unittest.proto";
@@ -61,7 +62,7 @@ message TestMap {
}
message TestMapSubmessage {
- optional TestMap test_map = 1;
+ TestMap test_map = 1;
}
message TestMessageMap {
@@ -103,3 +104,17 @@ message TestArenaMap {
map<int32 , MapEnum > map_int32_enum = 14;
map<int32 , ForeignMessage> map_int32_foreign_message = 15;
}
+
+// Previously, message containing enum called Type cannot be used as value of
+// map field.
+message MessageContainingEnumCalledType {
+ enum Type {
+ TYPE_FOO = 0;
+ }
+ map<int32, MessageContainingEnumCalledType> type = 1;
+}
+
+// Previously, message cannot contain map field called "entry".
+message MessageContainingMapCalledEntry {
+ map<int32, int32> entry = 1;
+}
diff --git a/src/google/protobuf/message.cc b/src/google/protobuf/message.cc
index f58be848..276d7de5 100644
--- a/src/google/protobuf/message.cc
+++ b/src/google/protobuf/message.cc
@@ -465,10 +465,21 @@ struct ShutdownRepeatedFieldRegister {
} // namespace internal
namespace internal {
-// Macro defined in repeated_field.h. We can only define the Message-specific
-// GenericTypeHandler specializations here because we depend on Message, which
-// is not part of proto2-lite hence is not available in repeated_field.h.
-DEFINE_SPECIALIZATIONS_FOR_BASE_PROTO_TYPES_NOINLINE(Message);
+template<>
+Message* GenericTypeHandler<Message>::NewFromPrototype(
+ const Message* prototype, google::protobuf::Arena* arena) {
+ return prototype->New(arena);
+}
+template<>
+google::protobuf::Arena* GenericTypeHandler<Message>::GetArena(
+ Message* value) {
+ return value->GetArena();
+}
+template<>
+void* GenericTypeHandler<Message>::GetMaybeArenaPointer(
+ Message* value) {
+ return value->GetMaybeArenaPointer();
+}
} // namespace internal
} // namespace protobuf
diff --git a/src/google/protobuf/message.h b/src/google/protobuf/message.h
index 6e1929e5..18c092d0 100644
--- a/src/google/protobuf/message.h
+++ b/src/google/protobuf/message.h
@@ -98,11 +98,11 @@
//
// // Use the reflection interface to examine the contents.
// const Reflection* reflection = foo->GetReflection();
-// assert(reflection->GetString(foo, text_field) == "Hello World!");
-// assert(reflection->FieldSize(foo, numbers_field) == 3);
-// assert(reflection->GetRepeatedInt32(foo, numbers_field, 0) == 1);
-// assert(reflection->GetRepeatedInt32(foo, numbers_field, 1) == 5);
-// assert(reflection->GetRepeatedInt32(foo, numbers_field, 2) == 42);
+// assert(reflection->GetString(*foo, text_field) == "Hello World!");
+// assert(reflection->FieldSize(*foo, numbers_field) == 3);
+// assert(reflection->GetRepeatedInt32(*foo, numbers_field, 0) == 1);
+// assert(reflection->GetRepeatedInt32(*foo, numbers_field, 1) == 5);
+// assert(reflection->GetRepeatedInt32(*foo, numbers_field, 2) == 42);
//
// delete foo;
// }
@@ -229,6 +229,11 @@ class LIBPROTOBUF_EXPORT Message : public MessageLite {
// Computes (an estimate of) the total number of bytes currently used for
// storing the message in memory. The default implementation calls the
// Reflection object's SpaceUsed() method.
+ //
+ // SpaceUsed() is noticeably slower than ByteSize(), as it is implemented
+ // using reflection (rather than the generated code implementation for
+ // ByteSize()). Like ByteSize(), its CPU time is linear in the number of
+ // fields defined for the proto.
virtual int SpaceUsed() const;
// Debugging & Testing----------------------------------------------
diff --git a/src/google/protobuf/message_lite.cc b/src/google/protobuf/message_lite.cc
index 63be0e9b..4f63ad2b 100644
--- a/src/google/protobuf/message_lite.cc
+++ b/src/google/protobuf/message_lite.cc
@@ -337,7 +337,7 @@ bool MessageLite::SerializePartialToArray(void* data, int size) const {
string MessageLite::SerializeAsString() const {
// If the compiler implements the (Named) Return Value Optimization,
- // the local variable 'result' will not actually reside on the stack
+ // the local variable 'output' will not actually reside on the stack
// of this function, but will be overlaid with the object that the
// caller supplied for the return value to be constructed in.
string output;
diff --git a/src/google/protobuf/message_lite.h b/src/google/protobuf/message_lite.h
index eab61c14..4c16f4c0 100644
--- a/src/google/protobuf/message_lite.h
+++ b/src/google/protobuf/message_lite.h
@@ -238,6 +238,9 @@ class LIBPROTOBUF_EXPORT MessageLite {
// Computes the serialized size of the message. This recursively calls
// ByteSize() on all embedded messages. If a subclass does not override
// this, it MUST override SetCachedSize().
+ //
+ // ByteSize() is generally linear in the number of fields defined for the
+ // proto.
virtual int ByteSize() const = 0;
// Serializes the message without recomputing the size. The message must
diff --git a/src/google/protobuf/message_unittest.cc b/src/google/protobuf/message_unittest.cc
index ebfb4321..75d60b8b 100644
--- a/src/google/protobuf/message_unittest.cc
+++ b/src/google/protobuf/message_unittest.cc
@@ -45,12 +45,13 @@
#include <sstream>
#include <fstream>
-#include <google/protobuf/io/zero_copy_stream_impl.h>
+#include <google/protobuf/test_util.h>
+#include <google/protobuf/unittest.pb.h>
#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/descriptor.h>
+#include <google/protobuf/io/zero_copy_stream_impl.h>
#include <google/protobuf/descriptor.pb.h>
-#include <google/protobuf/unittest.pb.h>
-#include <google/protobuf/test_util.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/testing/googletest.h>
@@ -205,6 +206,28 @@ TEST(MessageTest, InitializationErrorString) {
EXPECT_EQ("a, b, c", message.InitializationErrorString());
}
+TEST(MessageTest, DynamicCastToGenerated) {
+ unittest::TestAllTypes test_all_types;
+
+ google::protobuf::Message* test_all_types_pointer = &test_all_types;
+ EXPECT_EQ(&test_all_types,
+ google::protobuf::internal::DynamicCastToGenerated<unittest::TestAllTypes>(
+ test_all_types_pointer));
+ EXPECT_EQ(NULL,
+ google::protobuf::internal::DynamicCastToGenerated<unittest::TestRequired>(
+ test_all_types_pointer));
+
+ const google::protobuf::Message* test_all_types_pointer_const = &test_all_types;
+ EXPECT_EQ(
+ &test_all_types,
+ google::protobuf::internal::DynamicCastToGenerated<const unittest::TestAllTypes>(
+ test_all_types_pointer_const));
+ EXPECT_EQ(
+ NULL,
+ google::protobuf::internal::DynamicCastToGenerated<const unittest::TestRequired>(
+ test_all_types_pointer_const));
+}
+
#ifdef PROTOBUF_HAS_DEATH_TEST // death tests do not work on Windows yet.
TEST(MessageTest, SerializeFailsIfNotInitialized) {
diff --git a/src/google/protobuf/proto3_arena_unittest.cc b/src/google/protobuf/proto3_arena_unittest.cc
index c3b5996f..da4be673 100644
--- a/src/google/protobuf/proto3_arena_unittest.cc
+++ b/src/google/protobuf/proto3_arena_unittest.cc
@@ -180,6 +180,16 @@ TEST(ArenaTest, ReleaseMessage) {
EXPECT_EQ(118, nested->bb());
}
+TEST(ArenaTest, MessageFieldClear) {
+ // GitHub issue #310: https://github.com/google/protobuf/issues/310
+ Arena arena;
+ TestAllTypes* arena_message = Arena::CreateMessage<TestAllTypes>(&arena);
+ arena_message->mutable_optional_nested_message()->set_bb(118);
+ // This should not crash, but prior to the bugfix, it tried to use `operator
+ // delete` the nested message (which is on the arena):
+ arena_message->Clear();
+}
+
} // namespace
} // namespace protobuf
} // namespace google
diff --git a/src/google/protobuf/reflection.h b/src/google/protobuf/reflection.h
index 03c761c1..4ff0f6b4 100755
--- a/src/google/protobuf/reflection.h
+++ b/src/google/protobuf/reflection.h
@@ -39,6 +39,7 @@
#endif
#include <google/protobuf/message.h>
+#include <google/protobuf/generated_enum_util.h>
namespace google {
namespace protobuf {
diff --git a/src/google/protobuf/repeated_field.h b/src/google/protobuf/repeated_field.h
index 7bfdc40a..14f46298 100644
--- a/src/google/protobuf/repeated_field.h
+++ b/src/google/protobuf/repeated_field.h
@@ -576,26 +576,21 @@ class GenericTypeHandler {
}
};
-// Macros for specializing GenericTypeHandler for base proto types, these are
-// are defined here, to allow inlining them at their callsites.
-#define DEFINE_SPECIALIZATIONS_FOR_BASE_PROTO_TYPES(Inline, TypeName) \
- template<> \
- Inline TypeName* GenericTypeHandler<TypeName>::NewFromPrototype( \
- const TypeName* prototype, google::protobuf::Arena* arena) { \
- return prototype->New(arena); \
- } \
- template<> \
- Inline google::protobuf::Arena* GenericTypeHandler<TypeName>::GetArena( \
- TypeName* value) { \
- return value->GetArena(); \
- } \
- template<> \
- Inline void* GenericTypeHandler<TypeName>::GetMaybeArenaPointer( \
- TypeName* value) { \
- return value->GetMaybeArenaPointer(); \
- }
-#define DEFINE_SPECIALIZATIONS_FOR_BASE_PROTO_TYPES_NOINLINE(TypeName) \
- DEFINE_SPECIALIZATIONS_FOR_BASE_PROTO_TYPES(, TypeName)
+template<>
+inline MessageLite* GenericTypeHandler<MessageLite>::NewFromPrototype(
+ const MessageLite* prototype, google::protobuf::Arena* arena) {
+ return prototype->New(arena);
+}
+template<>
+inline google::protobuf::Arena* GenericTypeHandler<MessageLite>::GetArena(
+ MessageLite* value) {
+ return value->GetArena();
+}
+template<>
+inline void* GenericTypeHandler<MessageLite>::GetMaybeArenaPointer(
+ MessageLite* value) {
+ return value->GetMaybeArenaPointer();
+}
// Implements GenericTypeHandler specialization required by RepeatedPtrFields
// to work with MessageLite type.
@@ -605,8 +600,6 @@ inline void GenericTypeHandler<MessageLite>::Merge(
to->CheckTypeAndMergeFrom(from);
}
-DEFINE_SPECIALIZATIONS_FOR_BASE_PROTO_TYPES(inline, MessageLite);
-
// Declarations of the specialization as we cannot define them here, as the
// header that defines ProtocolMessage depends on types defined in this header.
#define DECLARE_SPECIALIZATIONS_FOR_BASE_PROTO_TYPES(TypeName) \
@@ -1132,7 +1125,9 @@ template <typename Element>
inline typename RepeatedField<Element>::iterator RepeatedField<Element>::erase(
const_iterator first, const_iterator last) {
size_type first_offset = first - cbegin();
- Truncate(std::copy(last, cend(), begin() + first_offset) - cbegin());
+ if (first != last) {
+ Truncate(std::copy(last, cend(), begin() + first_offset) - cbegin());
+ }
return begin() + first_offset;
}
@@ -1235,6 +1230,7 @@ void RepeatedField<Element>::Reserve(int new_size) {
kRepHeaderSize + sizeof(Element)*new_size));
}
rep_->arena = arena;
+ int old_total_size = total_size_;
total_size_ = new_size;
// Invoke placement-new on newly allocated elements. We shouldn't have to do
// this, since Element is supposed to be POD, but a previous version of this
@@ -1253,15 +1249,17 @@ void RepeatedField<Element>::Reserve(int new_size) {
if (current_size_ > 0) {
MoveArray(rep_->elements, old_rep->elements, current_size_);
}
- // Likewise, we need to invoke destructors on the old array. If Element has no
- // destructor, this loop will disappear.
- e = &old_rep->elements[0];
- limit = &old_rep->elements[current_size_];
- for (; e < limit; e++) {
- e->Element::~Element();
- }
- if (arena == NULL) {
- delete[] reinterpret_cast<char*>(old_rep);
+ if (old_rep) {
+ // Likewise, we need to invoke destructors on the old array. If Element has
+ // no destructor, this loop will disappear.
+ e = &old_rep->elements[0];
+ limit = &old_rep->elements[old_total_size];
+ for (; e < limit; e++) {
+ e->Element::~Element();
+ }
+ if (arena == NULL) {
+ delete[] reinterpret_cast<char*>(old_rep);
+ }
}
}
@@ -1418,7 +1416,7 @@ void RepeatedPtrFieldBase::Clear() {
const int n = current_size_;
GOOGLE_DCHECK_GE(n, 0);
if (n > 0) {
- void* const* elements = raw_data();
+ void* const* elements = rep_->elements;
int i = 0;
do {
TypeHandler::Clear(cast<TypeHandler>(elements[i++]));
diff --git a/src/google/protobuf/repeated_field_unittest.cc b/src/google/protobuf/repeated_field_unittest.cc
index 66e74523..af397932 100644
--- a/src/google/protobuf/repeated_field_unittest.cc
+++ b/src/google/protobuf/repeated_field_unittest.cc
@@ -456,6 +456,28 @@ TEST(RepeatedField, ExtractSubrange) {
}
}
+TEST(RepeatedField, ClearThenReserveMore) {
+ // Test that Reserve properly destroys the old internal array when it's forced
+ // to allocate a new one, even when cleared-but-not-deleted objects are
+ // present. Use a 'string' and > 16 bytes length so that the elements are
+ // non-POD and allocate -- the leak checker will catch any skipped destructor
+ // calls here.
+ RepeatedField<string> field;
+ for (int i = 0; i < 32; i++) {
+ field.Add(string("abcdefghijklmnopqrstuvwxyz0123456789"));
+ }
+ EXPECT_EQ(32, field.size());
+ field.Clear();
+ EXPECT_EQ(0, field.size());
+ EXPECT_EQ(32, field.Capacity());
+
+ field.Reserve(1024);
+ EXPECT_EQ(0, field.size());
+ EXPECT_EQ(1024, field.Capacity());
+ // Finish test -- |field| should destroy the cleared-but-not-yet-destroyed
+ // strings.
+}
+
// ===================================================================
// RepeatedPtrField tests. These pretty much just mirror the RepeatedField
// tests above.
diff --git a/src/google/protobuf/source_context.pb.cc b/src/google/protobuf/source_context.pb.cc
new file mode 100644
index 00000000..3b3799a9
--- /dev/null
+++ b/src/google/protobuf/source_context.pb.cc
@@ -0,0 +1,386 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/source_context.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "google/protobuf/source_context.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+namespace {
+
+const ::google::protobuf::Descriptor* SourceContext_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ SourceContext_reflection_ = NULL;
+
+} // namespace
+
+
+void protobuf_AssignDesc_google_2fprotobuf_2fsource_5fcontext_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fsource_5fcontext_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "google/protobuf/source_context.proto");
+ GOOGLE_CHECK(file != NULL);
+ SourceContext_descriptor_ = file->message_type(0);
+ static const int SourceContext_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SourceContext, file_name_),
+ };
+ SourceContext_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ SourceContext_descriptor_,
+ SourceContext::default_instance_,
+ SourceContext_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(SourceContext),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SourceContext, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SourceContext, _is_default_instance_));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_google_2fprotobuf_2fsource_5fcontext_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ SourceContext_descriptor_, &SourceContext::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_google_2fprotobuf_2fsource_5fcontext_2eproto() {
+ delete SourceContext::default_instance_;
+ delete SourceContext_reflection_;
+}
+
+void protobuf_AddDesc_google_2fprotobuf_2fsource_5fcontext_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n$google/protobuf/source_context.proto\022\017"
+ "google.protobuf\"\"\n\rSourceContext\022\021\n\tfile"
+ "_name\030\001 \001(\tB1\n\023com.google.protobufB\022Sour"
+ "ceContextProtoP\001\242\002\003GPBb\006proto3", 150);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "google/protobuf/source_context.proto", &protobuf_RegisterTypes);
+ SourceContext::default_instance_ = new SourceContext();
+ SourceContext::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2fsource_5fcontext_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_google_2fprotobuf_2fsource_5fcontext_2eproto {
+ StaticDescriptorInitializer_google_2fprotobuf_2fsource_5fcontext_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fsource_5fcontext_2eproto();
+ }
+} static_descriptor_initializer_google_2fprotobuf_2fsource_5fcontext_2eproto_;
+
+namespace {
+
+static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
+static void MergeFromFail(int line) {
+ GOOGLE_CHECK(false) << __FILE__ << ":" << line;
+}
+
+} // namespace
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int SourceContext::kFileNameFieldNumber;
+#endif // !_MSC_VER
+
+SourceContext::SourceContext()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.SourceContext)
+}
+
+void SourceContext::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+SourceContext::SourceContext(const SourceContext& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.SourceContext)
+}
+
+void SourceContext::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ file_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+SourceContext::~SourceContext() {
+ // @@protoc_insertion_point(destructor:google.protobuf.SourceContext)
+ SharedDtor();
+}
+
+void SourceContext::SharedDtor() {
+ file_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ }
+}
+
+void SourceContext::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* SourceContext::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return SourceContext_descriptor_;
+}
+
+const SourceContext& SourceContext::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fsource_5fcontext_2eproto();
+ return *default_instance_;
+}
+
+SourceContext* SourceContext::default_instance_ = NULL;
+
+SourceContext* SourceContext::New(::google::protobuf::Arena* arena) const {
+ SourceContext* n = new SourceContext;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void SourceContext::Clear() {
+ file_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+bool SourceContext::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.SourceContext)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional string file_name = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_file_name()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->file_name().data(), this->file_name().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.SourceContext.file_name");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.SourceContext)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.SourceContext)
+ return false;
+#undef DO_
+}
+
+void SourceContext::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.SourceContext)
+ // optional string file_name = 1;
+ if (this->file_name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->file_name().data(), this->file_name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.SourceContext.file_name");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->file_name(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.SourceContext)
+}
+
+::google::protobuf::uint8* SourceContext::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.SourceContext)
+ // optional string file_name = 1;
+ if (this->file_name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->file_name().data(), this->file_name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.SourceContext.file_name");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->file_name(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.SourceContext)
+ return target;
+}
+
+int SourceContext::ByteSize() const {
+ int total_size = 0;
+
+ // optional string file_name = 1;
+ if (this->file_name().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->file_name());
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void SourceContext::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const SourceContext* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const SourceContext>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void SourceContext::MergeFrom(const SourceContext& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.file_name().size() > 0) {
+
+ file_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.file_name_);
+ }
+}
+
+void SourceContext::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void SourceContext::CopyFrom(const SourceContext& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool SourceContext::IsInitialized() const {
+
+ return true;
+}
+
+void SourceContext::Swap(SourceContext* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void SourceContext::InternalSwap(SourceContext* other) {
+ file_name_.Swap(&other->file_name_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata SourceContext::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = SourceContext_descriptor_;
+ metadata.reflection = SourceContext_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// SourceContext
+
+// optional string file_name = 1;
+void SourceContext::clear_file_name() {
+ file_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& SourceContext::file_name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.SourceContext.file_name)
+ return file_name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void SourceContext::set_file_name(const ::std::string& value) {
+
+ file_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.SourceContext.file_name)
+}
+ void SourceContext::set_file_name(const char* value) {
+
+ file_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.SourceContext.file_name)
+}
+ void SourceContext::set_file_name(const char* value, size_t size) {
+
+ file_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.SourceContext.file_name)
+}
+ ::std::string* SourceContext::mutable_file_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.SourceContext.file_name)
+ return file_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* SourceContext::release_file_name() {
+
+ return file_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void SourceContext::set_allocated_file_name(::std::string* file_name) {
+ if (file_name != NULL) {
+
+ } else {
+
+ }
+ file_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), file_name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.SourceContext.file_name)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/google/protobuf/source_context.pb.h b/src/google/protobuf/source_context.pb.h
new file mode 100644
index 00000000..02e11460
--- /dev/null
+++ b/src/google/protobuf/source_context.pb.h
@@ -0,0 +1,185 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/source_context.proto
+
+#ifndef PROTOBUF_google_2fprotobuf_2fsource_5fcontext_2eproto__INCLUDED
+#define PROTOBUF_google_2fprotobuf_2fsource_5fcontext_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3000000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+// Internal implementation detail -- do not call these.
+void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fsource_5fcontext_2eproto();
+void protobuf_AssignDesc_google_2fprotobuf_2fsource_5fcontext_2eproto();
+void protobuf_ShutdownFile_google_2fprotobuf_2fsource_5fcontext_2eproto();
+
+class SourceContext;
+
+// ===================================================================
+
+class LIBPROTOBUF_EXPORT SourceContext : public ::google::protobuf::Message {
+ public:
+ SourceContext();
+ virtual ~SourceContext();
+
+ SourceContext(const SourceContext& from);
+
+ inline SourceContext& operator=(const SourceContext& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const SourceContext& default_instance();
+
+ void Swap(SourceContext* other);
+
+ // implements Message ----------------------------------------------
+
+ inline SourceContext* New() const { return New(NULL); }
+
+ SourceContext* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const SourceContext& from);
+ void MergeFrom(const SourceContext& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(SourceContext* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string file_name = 1;
+ void clear_file_name();
+ static const int kFileNameFieldNumber = 1;
+ const ::std::string& file_name() const;
+ void set_file_name(const ::std::string& value);
+ void set_file_name(const char* value);
+ void set_file_name(const char* value, size_t size);
+ ::std::string* mutable_file_name();
+ ::std::string* release_file_name();
+ void set_allocated_file_name(::std::string* file_name);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.SourceContext)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::internal::ArenaStringPtr file_name_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fsource_5fcontext_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fsource_5fcontext_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fsource_5fcontext_2eproto();
+
+ void InitAsDefaultInstance();
+ static SourceContext* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// SourceContext
+
+// optional string file_name = 1;
+inline void SourceContext::clear_file_name() {
+ file_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& SourceContext::file_name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.SourceContext.file_name)
+ return file_name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void SourceContext::set_file_name(const ::std::string& value) {
+
+ file_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.SourceContext.file_name)
+}
+inline void SourceContext::set_file_name(const char* value) {
+
+ file_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.SourceContext.file_name)
+}
+inline void SourceContext::set_file_name(const char* value, size_t size) {
+
+ file_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.SourceContext.file_name)
+}
+inline ::std::string* SourceContext::mutable_file_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.SourceContext.file_name)
+ return file_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* SourceContext::release_file_name() {
+
+ return file_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void SourceContext::set_allocated_file_name(::std::string* file_name) {
+ if (file_name != NULL) {
+
+ } else {
+
+ }
+ file_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), file_name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.SourceContext.file_name)
+}
+
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_google_2fprotobuf_2fsource_5fcontext_2eproto__INCLUDED
diff --git a/src/google/protobuf/struct.pb.cc b/src/google/protobuf/struct.pb.cc
new file mode 100644
index 00000000..30113cdb
--- /dev/null
+++ b/src/google/protobuf/struct.pb.cc
@@ -0,0 +1,1455 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/struct.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "google/protobuf/struct.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+namespace {
+
+const ::google::protobuf::Descriptor* Struct_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Struct_reflection_ = NULL;
+const ::google::protobuf::Descriptor* Struct_FieldsEntry_descriptor_ = NULL;
+const ::google::protobuf::Descriptor* Value_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Value_reflection_ = NULL;
+struct ValueOneofInstance {
+ int null_value_;
+ double number_value_;
+ ::google::protobuf::internal::ArenaStringPtr string_value_;
+ bool bool_value_;
+ const ::google::protobuf::Struct* struct_value_;
+ const ::google::protobuf::ListValue* list_value_;
+}* Value_default_oneof_instance_ = NULL;
+const ::google::protobuf::Descriptor* ListValue_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ ListValue_reflection_ = NULL;
+const ::google::protobuf::EnumDescriptor* NullValue_descriptor_ = NULL;
+
+} // namespace
+
+
+void protobuf_AssignDesc_google_2fprotobuf_2fstruct_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fstruct_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "google/protobuf/struct.proto");
+ GOOGLE_CHECK(file != NULL);
+ Struct_descriptor_ = file->message_type(0);
+ static const int Struct_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Struct, fields_),
+ };
+ Struct_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Struct_descriptor_,
+ Struct::default_instance_,
+ Struct_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Struct),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Struct, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Struct, _is_default_instance_));
+ Struct_FieldsEntry_descriptor_ = Struct_descriptor_->nested_type(0);
+ Value_descriptor_ = file->message_type(1);
+ static const int Value_offsets_[7] = {
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Value_default_oneof_instance_, null_value_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Value_default_oneof_instance_, number_value_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Value_default_oneof_instance_, string_value_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Value_default_oneof_instance_, bool_value_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Value_default_oneof_instance_, struct_value_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Value_default_oneof_instance_, list_value_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Value, kind_),
+ };
+ Value_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Value_descriptor_,
+ Value::default_instance_,
+ Value_offsets_,
+ -1,
+ -1,
+ -1,
+ Value_default_oneof_instance_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Value, _oneof_case_[0]),
+ sizeof(Value),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Value, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Value, _is_default_instance_));
+ ListValue_descriptor_ = file->message_type(2);
+ static const int ListValue_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ListValue, values_),
+ };
+ ListValue_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ ListValue_descriptor_,
+ ListValue::default_instance_,
+ ListValue_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(ListValue),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ListValue, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ListValue, _is_default_instance_));
+ NullValue_descriptor_ = file->enum_type(0);
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_google_2fprotobuf_2fstruct_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Struct_descriptor_, &Struct::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Struct_FieldsEntry_descriptor_,
+ ::google::protobuf::internal::MapEntry<
+ ::std::string,
+ ::google::protobuf::Value,
+ ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
+ ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
+ 0>::CreateDefaultInstance(
+ Struct_FieldsEntry_descriptor_));
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Value_descriptor_, &Value::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ ListValue_descriptor_, &ListValue::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_google_2fprotobuf_2fstruct_2eproto() {
+ delete Struct::default_instance_;
+ delete Struct_reflection_;
+ delete Value::default_instance_;
+ delete Value_default_oneof_instance_;
+ delete Value_reflection_;
+ delete ListValue::default_instance_;
+ delete ListValue_reflection_;
+}
+
+void protobuf_AddDesc_google_2fprotobuf_2fstruct_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\034google/protobuf/struct.proto\022\017google.p"
+ "rotobuf\"\204\001\n\006Struct\0223\n\006fields\030\001 \003(\0132#.goo"
+ "gle.protobuf.Struct.FieldsEntry\032E\n\013Field"
+ "sEntry\022\013\n\003key\030\001 \001(\t\022%\n\005value\030\002 \001(\0132\026.goo"
+ "gle.protobuf.Value:\0028\001\"\352\001\n\005Value\0220\n\nnull"
+ "_value\030\001 \001(\0162\032.google.protobuf.NullValue"
+ "H\000\022\026\n\014number_value\030\002 \001(\001H\000\022\026\n\014string_val"
+ "ue\030\003 \001(\tH\000\022\024\n\nbool_value\030\004 \001(\010H\000\022/\n\014stru"
+ "ct_value\030\005 \001(\0132\027.google.protobuf.StructH"
+ "\000\0220\n\nlist_value\030\006 \001(\0132\032.google.protobuf."
+ "ListValueH\000B\006\n\004kind\"3\n\tListValue\022&\n\006valu"
+ "es\030\001 \003(\0132\026.google.protobuf.Value*\033\n\tNull"
+ "Value\022\016\n\nNULL_VALUE\020\000BF\n\023com.google.prot"
+ "obufB\013StructProtoP\001\240\001\001\242\002\003GPB\252\002\026Google.Pr"
+ "otocolBuffersb\006proto3", 581);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "google/protobuf/struct.proto", &protobuf_RegisterTypes);
+ Struct::default_instance_ = new Struct();
+ Value::default_instance_ = new Value();
+ Value_default_oneof_instance_ = new ValueOneofInstance();
+ ListValue::default_instance_ = new ListValue();
+ Struct::default_instance_->InitAsDefaultInstance();
+ Value::default_instance_->InitAsDefaultInstance();
+ ListValue::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2fstruct_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_google_2fprotobuf_2fstruct_2eproto {
+ StaticDescriptorInitializer_google_2fprotobuf_2fstruct_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fstruct_2eproto();
+ }
+} static_descriptor_initializer_google_2fprotobuf_2fstruct_2eproto_;
+const ::google::protobuf::EnumDescriptor* NullValue_descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return NullValue_descriptor_;
+}
+bool NullValue_IsValid(int value) {
+ switch(value) {
+ case 0:
+ return true;
+ default:
+ return false;
+ }
+}
+
+
+namespace {
+
+static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
+static void MergeFromFail(int line) {
+ GOOGLE_CHECK(false) << __FILE__ << ":" << line;
+}
+
+} // namespace
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Struct::kFieldsFieldNumber;
+#endif // !_MSC_VER
+
+Struct::Struct()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Struct)
+}
+
+void Struct::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+Struct::Struct(const Struct& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Struct)
+}
+
+void Struct::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+ fields_.SetAssignDescriptorCallback(
+ protobuf_AssignDescriptorsOnce);
+ fields_.SetEntryDescriptor(
+ &::google::protobuf::Struct_FieldsEntry_descriptor_);
+}
+
+Struct::~Struct() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Struct)
+ SharedDtor();
+}
+
+void Struct::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void Struct::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Struct::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Struct_descriptor_;
+}
+
+const Struct& Struct::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fstruct_2eproto();
+ return *default_instance_;
+}
+
+Struct* Struct::default_instance_ = NULL;
+
+Struct* Struct::New(::google::protobuf::Arena* arena) const {
+ Struct* n = new Struct;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Struct::Clear() {
+ fields_.Clear();
+}
+
+bool Struct::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Struct)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // map<string, .google.protobuf.Value> fields = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_fields:
+ ::google::protobuf::scoped_ptr<Struct_FieldsEntry> entry(fields_.NewEntry());
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ input, entry.get()));
+ (*mutable_fields())[entry->key()].Swap(entry->mutable_value());
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(10)) goto parse_loop_fields;
+ input->UnsafeDecrementRecursionDepth();
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Struct)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Struct)
+ return false;
+#undef DO_
+}
+
+void Struct::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Struct)
+ // map<string, .google.protobuf.Value> fields = 1;
+ {
+ ::google::protobuf::scoped_ptr<Struct_FieldsEntry> entry;
+ for (::google::protobuf::Map< ::std::string, ::google::protobuf::Value >::const_iterator
+ it = this->fields().begin();
+ it != this->fields().end(); ++it) {
+ entry.reset(fields_.NewEntryWrapper(it->first, it->second));
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 1, *entry, output);
+ }
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Struct)
+}
+
+::google::protobuf::uint8* Struct::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Struct)
+ // map<string, .google.protobuf.Value> fields = 1;
+ {
+ ::google::protobuf::scoped_ptr<Struct_FieldsEntry> entry;
+ for (::google::protobuf::Map< ::std::string, ::google::protobuf::Value >::const_iterator
+ it = this->fields().begin();
+ it != this->fields().end(); ++it) {
+ entry.reset(fields_.NewEntryWrapper(it->first, it->second));
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 1, *entry, target);
+ }
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Struct)
+ return target;
+}
+
+int Struct::ByteSize() const {
+ int total_size = 0;
+
+ // map<string, .google.protobuf.Value> fields = 1;
+ total_size += 1 * this->fields_size();
+ {
+ ::google::protobuf::scoped_ptr<Struct_FieldsEntry> entry;
+ for (::google::protobuf::Map< ::std::string, ::google::protobuf::Value >::const_iterator
+ it = this->fields().begin();
+ it != this->fields().end(); ++it) {
+ entry.reset(fields_.NewEntryWrapper(it->first, it->second));
+ total_size += ::google::protobuf::internal::WireFormatLite::
+ MessageSizeNoVirtual(*entry);
+ }
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Struct::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Struct* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Struct>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Struct::MergeFrom(const Struct& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ fields_.MergeFrom(from.fields_);
+}
+
+void Struct::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Struct::CopyFrom(const Struct& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Struct::IsInitialized() const {
+
+ return true;
+}
+
+void Struct::Swap(Struct* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Struct::InternalSwap(Struct* other) {
+ fields_.Swap(&other->fields_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Struct::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Struct_descriptor_;
+ metadata.reflection = Struct_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Struct
+
+// map<string, .google.protobuf.Value> fields = 1;
+int Struct::fields_size() const {
+ return fields_.size();
+}
+void Struct::clear_fields() {
+ fields_.Clear();
+}
+ const ::google::protobuf::Map< ::std::string, ::google::protobuf::Value >&
+Struct::fields() const {
+ // @@protoc_insertion_point(field_map:google.protobuf.Struct.fields)
+ return fields_.GetMap();
+}
+ ::google::protobuf::Map< ::std::string, ::google::protobuf::Value >*
+Struct::mutable_fields() {
+ // @@protoc_insertion_point(field_mutable_map:google.protobuf.Struct.fields)
+ return fields_.MutableMap();
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Value::kNullValueFieldNumber;
+const int Value::kNumberValueFieldNumber;
+const int Value::kStringValueFieldNumber;
+const int Value::kBoolValueFieldNumber;
+const int Value::kStructValueFieldNumber;
+const int Value::kListValueFieldNumber;
+#endif // !_MSC_VER
+
+Value::Value()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Value)
+}
+
+void Value::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+ Value_default_oneof_instance_->null_value_ = 0;
+ Value_default_oneof_instance_->number_value_ = 0;
+ Value_default_oneof_instance_->string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ Value_default_oneof_instance_->bool_value_ = false;
+ Value_default_oneof_instance_->struct_value_ = const_cast< ::google::protobuf::Struct*>(&::google::protobuf::Struct::default_instance());
+ Value_default_oneof_instance_->list_value_ = const_cast< ::google::protobuf::ListValue*>(&::google::protobuf::ListValue::default_instance());
+}
+
+Value::Value(const Value& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Value)
+}
+
+void Value::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ clear_has_kind();
+}
+
+Value::~Value() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Value)
+ SharedDtor();
+}
+
+void Value::SharedDtor() {
+ if (has_kind()) {
+ clear_kind();
+ }
+ if (this != default_instance_) {
+ }
+}
+
+void Value::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Value::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Value_descriptor_;
+}
+
+const Value& Value::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fstruct_2eproto();
+ return *default_instance_;
+}
+
+Value* Value::default_instance_ = NULL;
+
+Value* Value::New(::google::protobuf::Arena* arena) const {
+ Value* n = new Value;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Value::clear_kind() {
+ switch(kind_case()) {
+ case kNullValue: {
+ // No need to clear
+ break;
+ }
+ case kNumberValue: {
+ // No need to clear
+ break;
+ }
+ case kStringValue: {
+ kind_.string_value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ break;
+ }
+ case kBoolValue: {
+ // No need to clear
+ break;
+ }
+ case kStructValue: {
+ delete kind_.struct_value_;
+ break;
+ }
+ case kListValue: {
+ delete kind_.list_value_;
+ break;
+ }
+ case KIND_NOT_SET: {
+ break;
+ }
+ }
+ _oneof_case_[0] = KIND_NOT_SET;
+}
+
+
+void Value::Clear() {
+ clear_kind();
+}
+
+bool Value::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Value)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional .google.protobuf.NullValue null_value = 1;
+ case 1: {
+ if (tag == 8) {
+ int value;
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+ input, &value)));
+ set_null_value(static_cast< ::google::protobuf::NullValue >(value));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(17)) goto parse_number_value;
+ break;
+ }
+
+ // optional double number_value = 2;
+ case 2: {
+ if (tag == 17) {
+ parse_number_value:
+ clear_kind();
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+ input, &kind_.number_value_)));
+ set_has_number_value();
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(26)) goto parse_string_value;
+ break;
+ }
+
+ // optional string string_value = 3;
+ case 3: {
+ if (tag == 26) {
+ parse_string_value:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_string_value()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->string_value().data(), this->string_value().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Value.string_value");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(32)) goto parse_bool_value;
+ break;
+ }
+
+ // optional bool bool_value = 4;
+ case 4: {
+ if (tag == 32) {
+ parse_bool_value:
+ clear_kind();
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &kind_.bool_value_)));
+ set_has_bool_value();
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(42)) goto parse_struct_value;
+ break;
+ }
+
+ // optional .google.protobuf.Struct struct_value = 5;
+ case 5: {
+ if (tag == 42) {
+ parse_struct_value:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ input, mutable_struct_value()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(50)) goto parse_list_value;
+ break;
+ }
+
+ // optional .google.protobuf.ListValue list_value = 6;
+ case 6: {
+ if (tag == 50) {
+ parse_list_value:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ input, mutable_list_value()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Value)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Value)
+ return false;
+#undef DO_
+}
+
+void Value::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Value)
+ // optional .google.protobuf.NullValue null_value = 1;
+ if (has_null_value()) {
+ ::google::protobuf::internal::WireFormatLite::WriteEnum(
+ 1, this->null_value(), output);
+ }
+
+ // optional double number_value = 2;
+ if (has_number_value()) {
+ ::google::protobuf::internal::WireFormatLite::WriteDouble(2, this->number_value(), output);
+ }
+
+ // optional string string_value = 3;
+ if (has_string_value()) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->string_value().data(), this->string_value().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Value.string_value");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 3, this->string_value(), output);
+ }
+
+ // optional bool bool_value = 4;
+ if (has_bool_value()) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->bool_value(), output);
+ }
+
+ // optional .google.protobuf.Struct struct_value = 5;
+ if (has_struct_value()) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 5, *kind_.struct_value_, output);
+ }
+
+ // optional .google.protobuf.ListValue list_value = 6;
+ if (has_list_value()) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 6, *kind_.list_value_, output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Value)
+}
+
+::google::protobuf::uint8* Value::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Value)
+ // optional .google.protobuf.NullValue null_value = 1;
+ if (has_null_value()) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+ 1, this->null_value(), target);
+ }
+
+ // optional double number_value = 2;
+ if (has_number_value()) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(2, this->number_value(), target);
+ }
+
+ // optional string string_value = 3;
+ if (has_string_value()) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->string_value().data(), this->string_value().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Value.string_value");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 3, this->string_value(), target);
+ }
+
+ // optional bool bool_value = 4;
+ if (has_bool_value()) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(4, this->bool_value(), target);
+ }
+
+ // optional .google.protobuf.Struct struct_value = 5;
+ if (has_struct_value()) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 5, *kind_.struct_value_, target);
+ }
+
+ // optional .google.protobuf.ListValue list_value = 6;
+ if (has_list_value()) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 6, *kind_.list_value_, target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Value)
+ return target;
+}
+
+int Value::ByteSize() const {
+ int total_size = 0;
+
+ switch (kind_case()) {
+ // optional .google.protobuf.NullValue null_value = 1;
+ case kNullValue: {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::EnumSize(this->null_value());
+ break;
+ }
+ // optional double number_value = 2;
+ case kNumberValue: {
+ total_size += 1 + 8;
+ break;
+ }
+ // optional string string_value = 3;
+ case kStringValue: {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->string_value());
+ break;
+ }
+ // optional bool bool_value = 4;
+ case kBoolValue: {
+ total_size += 1 + 1;
+ break;
+ }
+ // optional .google.protobuf.Struct struct_value = 5;
+ case kStructValue: {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ *kind_.struct_value_);
+ break;
+ }
+ // optional .google.protobuf.ListValue list_value = 6;
+ case kListValue: {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ *kind_.list_value_);
+ break;
+ }
+ case KIND_NOT_SET: {
+ break;
+ }
+ }
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Value::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Value* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Value>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Value::MergeFrom(const Value& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ switch (from.kind_case()) {
+ case kNullValue: {
+ set_null_value(from.null_value());
+ break;
+ }
+ case kNumberValue: {
+ set_number_value(from.number_value());
+ break;
+ }
+ case kStringValue: {
+ set_string_value(from.string_value());
+ break;
+ }
+ case kBoolValue: {
+ set_bool_value(from.bool_value());
+ break;
+ }
+ case kStructValue: {
+ mutable_struct_value()->::google::protobuf::Struct::MergeFrom(from.struct_value());
+ break;
+ }
+ case kListValue: {
+ mutable_list_value()->::google::protobuf::ListValue::MergeFrom(from.list_value());
+ break;
+ }
+ case KIND_NOT_SET: {
+ break;
+ }
+ }
+}
+
+void Value::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Value::CopyFrom(const Value& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Value::IsInitialized() const {
+
+ return true;
+}
+
+void Value::Swap(Value* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Value::InternalSwap(Value* other) {
+ std::swap(kind_, other->kind_);
+ std::swap(_oneof_case_[0], other->_oneof_case_[0]);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Value::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Value_descriptor_;
+ metadata.reflection = Value_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Value
+
+// optional .google.protobuf.NullValue null_value = 1;
+bool Value::has_null_value() const {
+ return kind_case() == kNullValue;
+}
+void Value::set_has_null_value() {
+ _oneof_case_[0] = kNullValue;
+}
+void Value::clear_null_value() {
+ if (has_null_value()) {
+ kind_.null_value_ = 0;
+ clear_has_kind();
+ }
+}
+ ::google::protobuf::NullValue Value::null_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.null_value)
+ if (has_null_value()) {
+ return static_cast< ::google::protobuf::NullValue >(kind_.null_value_);
+ }
+ return static_cast< ::google::protobuf::NullValue >(0);
+}
+ void Value::set_null_value(::google::protobuf::NullValue value) {
+ if (!has_null_value()) {
+ clear_kind();
+ set_has_null_value();
+ }
+ kind_.null_value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Value.null_value)
+}
+
+// optional double number_value = 2;
+bool Value::has_number_value() const {
+ return kind_case() == kNumberValue;
+}
+void Value::set_has_number_value() {
+ _oneof_case_[0] = kNumberValue;
+}
+void Value::clear_number_value() {
+ if (has_number_value()) {
+ kind_.number_value_ = 0;
+ clear_has_kind();
+ }
+}
+ double Value::number_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.number_value)
+ if (has_number_value()) {
+ return kind_.number_value_;
+ }
+ return 0;
+}
+ void Value::set_number_value(double value) {
+ if (!has_number_value()) {
+ clear_kind();
+ set_has_number_value();
+ }
+ kind_.number_value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Value.number_value)
+}
+
+// optional string string_value = 3;
+bool Value::has_string_value() const {
+ return kind_case() == kStringValue;
+}
+void Value::set_has_string_value() {
+ _oneof_case_[0] = kStringValue;
+}
+void Value::clear_string_value() {
+ if (has_string_value()) {
+ kind_.string_value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ clear_has_kind();
+ }
+}
+ const ::std::string& Value::string_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.string_value)
+ if (has_string_value()) {
+ return kind_.string_value_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
+}
+ void Value::set_string_value(const ::std::string& value) {
+ // @@protoc_insertion_point(field_set:google.protobuf.Value.string_value)
+ if (!has_string_value()) {
+ clear_kind();
+ set_has_string_value();
+ kind_.string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ kind_.string_value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Value.string_value)
+}
+ void Value::set_string_value(const char* value) {
+ if (!has_string_value()) {
+ clear_kind();
+ set_has_string_value();
+ kind_.string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ kind_.string_value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Value.string_value)
+}
+ void Value::set_string_value(const char* value, size_t size) {
+ if (!has_string_value()) {
+ clear_kind();
+ set_has_string_value();
+ kind_.string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ kind_.string_value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
+ reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Value.string_value)
+}
+ ::std::string* Value::mutable_string_value() {
+ if (!has_string_value()) {
+ clear_kind();
+ set_has_string_value();
+ kind_.string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Value.string_value)
+ return kind_.string_value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Value::release_string_value() {
+ if (has_string_value()) {
+ clear_has_kind();
+ return kind_.string_value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ } else {
+ return NULL;
+ }
+}
+ void Value::set_allocated_string_value(::std::string* string_value) {
+ if (!has_string_value()) {
+ kind_.string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ clear_kind();
+ if (string_value != NULL) {
+ set_has_string_value();
+ kind_.string_value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ string_value);
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Value.string_value)
+}
+
+// optional bool bool_value = 4;
+bool Value::has_bool_value() const {
+ return kind_case() == kBoolValue;
+}
+void Value::set_has_bool_value() {
+ _oneof_case_[0] = kBoolValue;
+}
+void Value::clear_bool_value() {
+ if (has_bool_value()) {
+ kind_.bool_value_ = false;
+ clear_has_kind();
+ }
+}
+ bool Value::bool_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.bool_value)
+ if (has_bool_value()) {
+ return kind_.bool_value_;
+ }
+ return false;
+}
+ void Value::set_bool_value(bool value) {
+ if (!has_bool_value()) {
+ clear_kind();
+ set_has_bool_value();
+ }
+ kind_.bool_value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Value.bool_value)
+}
+
+// optional .google.protobuf.Struct struct_value = 5;
+bool Value::has_struct_value() const {
+ return kind_case() == kStructValue;
+}
+void Value::set_has_struct_value() {
+ _oneof_case_[0] = kStructValue;
+}
+void Value::clear_struct_value() {
+ if (has_struct_value()) {
+ delete kind_.struct_value_;
+ clear_has_kind();
+ }
+}
+ const ::google::protobuf::Struct& Value::struct_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.struct_value)
+ return has_struct_value() ? *kind_.struct_value_
+ : ::google::protobuf::Struct::default_instance();
+}
+ ::google::protobuf::Struct* Value::mutable_struct_value() {
+ if (!has_struct_value()) {
+ clear_kind();
+ set_has_struct_value();
+ kind_.struct_value_ = new ::google::protobuf::Struct;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Value.struct_value)
+ return kind_.struct_value_;
+}
+ ::google::protobuf::Struct* Value::release_struct_value() {
+ if (has_struct_value()) {
+ clear_has_kind();
+ ::google::protobuf::Struct* temp = kind_.struct_value_;
+ kind_.struct_value_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+ void Value::set_allocated_struct_value(::google::protobuf::Struct* struct_value) {
+ clear_kind();
+ if (struct_value) {
+ set_has_struct_value();
+ kind_.struct_value_ = struct_value;
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Value.struct_value)
+}
+
+// optional .google.protobuf.ListValue list_value = 6;
+bool Value::has_list_value() const {
+ return kind_case() == kListValue;
+}
+void Value::set_has_list_value() {
+ _oneof_case_[0] = kListValue;
+}
+void Value::clear_list_value() {
+ if (has_list_value()) {
+ delete kind_.list_value_;
+ clear_has_kind();
+ }
+}
+ const ::google::protobuf::ListValue& Value::list_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.list_value)
+ return has_list_value() ? *kind_.list_value_
+ : ::google::protobuf::ListValue::default_instance();
+}
+ ::google::protobuf::ListValue* Value::mutable_list_value() {
+ if (!has_list_value()) {
+ clear_kind();
+ set_has_list_value();
+ kind_.list_value_ = new ::google::protobuf::ListValue;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Value.list_value)
+ return kind_.list_value_;
+}
+ ::google::protobuf::ListValue* Value::release_list_value() {
+ if (has_list_value()) {
+ clear_has_kind();
+ ::google::protobuf::ListValue* temp = kind_.list_value_;
+ kind_.list_value_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+ void Value::set_allocated_list_value(::google::protobuf::ListValue* list_value) {
+ clear_kind();
+ if (list_value) {
+ set_has_list_value();
+ kind_.list_value_ = list_value;
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Value.list_value)
+}
+
+bool Value::has_kind() const {
+ return kind_case() != KIND_NOT_SET;
+}
+void Value::clear_has_kind() {
+ _oneof_case_[0] = KIND_NOT_SET;
+}
+Value::KindCase Value::kind_case() const {
+ return Value::KindCase(_oneof_case_[0]);
+}
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int ListValue::kValuesFieldNumber;
+#endif // !_MSC_VER
+
+ListValue::ListValue()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.ListValue)
+}
+
+void ListValue::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+ListValue::ListValue(const ListValue& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.ListValue)
+}
+
+void ListValue::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+}
+
+ListValue::~ListValue() {
+ // @@protoc_insertion_point(destructor:google.protobuf.ListValue)
+ SharedDtor();
+}
+
+void ListValue::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void ListValue::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* ListValue::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return ListValue_descriptor_;
+}
+
+const ListValue& ListValue::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fstruct_2eproto();
+ return *default_instance_;
+}
+
+ListValue* ListValue::default_instance_ = NULL;
+
+ListValue* ListValue::New(::google::protobuf::Arena* arena) const {
+ ListValue* n = new ListValue;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void ListValue::Clear() {
+ values_.Clear();
+}
+
+bool ListValue::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.ListValue)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // repeated .google.protobuf.Value values = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_values:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_values()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(10)) goto parse_loop_values;
+ input->UnsafeDecrementRecursionDepth();
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.ListValue)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.ListValue)
+ return false;
+#undef DO_
+}
+
+void ListValue::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.ListValue)
+ // repeated .google.protobuf.Value values = 1;
+ for (unsigned int i = 0, n = this->values_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 1, this->values(i), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.ListValue)
+}
+
+::google::protobuf::uint8* ListValue::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.ListValue)
+ // repeated .google.protobuf.Value values = 1;
+ for (unsigned int i = 0, n = this->values_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 1, this->values(i), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.ListValue)
+ return target;
+}
+
+int ListValue::ByteSize() const {
+ int total_size = 0;
+
+ // repeated .google.protobuf.Value values = 1;
+ total_size += 1 * this->values_size();
+ for (int i = 0; i < this->values_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->values(i));
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void ListValue::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const ListValue* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const ListValue>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void ListValue::MergeFrom(const ListValue& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ values_.MergeFrom(from.values_);
+}
+
+void ListValue::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void ListValue::CopyFrom(const ListValue& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool ListValue::IsInitialized() const {
+
+ return true;
+}
+
+void ListValue::Swap(ListValue* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void ListValue::InternalSwap(ListValue* other) {
+ values_.UnsafeArenaSwap(&other->values_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata ListValue::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = ListValue_descriptor_;
+ metadata.reflection = ListValue_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// ListValue
+
+// repeated .google.protobuf.Value values = 1;
+int ListValue::values_size() const {
+ return values_.size();
+}
+void ListValue::clear_values() {
+ values_.Clear();
+}
+ const ::google::protobuf::Value& ListValue::values(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.ListValue.values)
+ return values_.Get(index);
+}
+ ::google::protobuf::Value* ListValue::mutable_values(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.ListValue.values)
+ return values_.Mutable(index);
+}
+ ::google::protobuf::Value* ListValue::add_values() {
+ // @@protoc_insertion_point(field_add:google.protobuf.ListValue.values)
+ return values_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value >&
+ListValue::values() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.ListValue.values)
+ return values_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value >*
+ListValue::mutable_values() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.ListValue.values)
+ return &values_;
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/google/protobuf/struct.pb.h b/src/google/protobuf/struct.pb.h
new file mode 100644
index 00000000..2889c8fe
--- /dev/null
+++ b/src/google/protobuf/struct.pb.h
@@ -0,0 +1,764 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/struct.proto
+
+#ifndef PROTOBUF_google_2fprotobuf_2fstruct_2eproto__INCLUDED
+#define PROTOBUF_google_2fprotobuf_2fstruct_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3000000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/map.h>
+#include <google/protobuf/map_field_inl.h>
+#include <google/protobuf/generated_enum_reflection.h>
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+// Internal implementation detail -- do not call these.
+void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fstruct_2eproto();
+void protobuf_AssignDesc_google_2fprotobuf_2fstruct_2eproto();
+void protobuf_ShutdownFile_google_2fprotobuf_2fstruct_2eproto();
+
+class Struct;
+class Value;
+class ListValue;
+
+enum NullValue {
+ NULL_VALUE = 0,
+ NullValue_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
+ NullValue_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
+};
+LIBPROTOBUF_EXPORT bool NullValue_IsValid(int value);
+const NullValue NullValue_MIN = NULL_VALUE;
+const NullValue NullValue_MAX = NULL_VALUE;
+const int NullValue_ARRAYSIZE = NullValue_MAX + 1;
+
+LIBPROTOBUF_EXPORT const ::google::protobuf::EnumDescriptor* NullValue_descriptor();
+inline const ::std::string& NullValue_Name(NullValue value) {
+ return ::google::protobuf::internal::NameOfEnum(
+ NullValue_descriptor(), value);
+}
+inline bool NullValue_Parse(
+ const ::std::string& name, NullValue* value) {
+ return ::google::protobuf::internal::ParseNamedEnum<NullValue>(
+ NullValue_descriptor(), name, value);
+}
+// ===================================================================
+
+class LIBPROTOBUF_EXPORT Struct : public ::google::protobuf::Message {
+ public:
+ Struct();
+ virtual ~Struct();
+
+ Struct(const Struct& from);
+
+ inline Struct& operator=(const Struct& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Struct& default_instance();
+
+ void Swap(Struct* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Struct* New() const { return New(NULL); }
+
+ Struct* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Struct& from);
+ void MergeFrom(const Struct& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Struct* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+
+ // accessors -------------------------------------------------------
+
+ // map<string, .google.protobuf.Value> fields = 1;
+ int fields_size() const;
+ void clear_fields();
+ static const int kFieldsFieldNumber = 1;
+ const ::google::protobuf::Map< ::std::string, ::google::protobuf::Value >&
+ fields() const;
+ ::google::protobuf::Map< ::std::string, ::google::protobuf::Value >*
+ mutable_fields();
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Struct)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ typedef ::google::protobuf::internal::MapEntryLite<
+ ::std::string, ::google::protobuf::Value,
+ ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
+ ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
+ 0 >
+ Struct_FieldsEntry;
+ ::google::protobuf::internal::MapField<
+ ::std::string, ::google::protobuf::Value,
+ ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
+ ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
+ 0 > fields_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fstruct_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fstruct_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fstruct_2eproto();
+
+ void InitAsDefaultInstance();
+ static Struct* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT Value : public ::google::protobuf::Message {
+ public:
+ Value();
+ virtual ~Value();
+
+ Value(const Value& from);
+
+ inline Value& operator=(const Value& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Value& default_instance();
+
+ enum KindCase {
+ kNullValue = 1,
+ kNumberValue = 2,
+ kStringValue = 3,
+ kBoolValue = 4,
+ kStructValue = 5,
+ kListValue = 6,
+ KIND_NOT_SET = 0,
+ };
+
+ void Swap(Value* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Value* New() const { return New(NULL); }
+
+ Value* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Value& from);
+ void MergeFrom(const Value& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Value* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional .google.protobuf.NullValue null_value = 1;
+ private:
+ bool has_null_value() const;
+ public:
+ void clear_null_value();
+ static const int kNullValueFieldNumber = 1;
+ ::google::protobuf::NullValue null_value() const;
+ void set_null_value(::google::protobuf::NullValue value);
+
+ // optional double number_value = 2;
+ private:
+ bool has_number_value() const;
+ public:
+ void clear_number_value();
+ static const int kNumberValueFieldNumber = 2;
+ double number_value() const;
+ void set_number_value(double value);
+
+ // optional string string_value = 3;
+ private:
+ bool has_string_value() const;
+ public:
+ void clear_string_value();
+ static const int kStringValueFieldNumber = 3;
+ const ::std::string& string_value() const;
+ void set_string_value(const ::std::string& value);
+ void set_string_value(const char* value);
+ void set_string_value(const char* value, size_t size);
+ ::std::string* mutable_string_value();
+ ::std::string* release_string_value();
+ void set_allocated_string_value(::std::string* string_value);
+
+ // optional bool bool_value = 4;
+ private:
+ bool has_bool_value() const;
+ public:
+ void clear_bool_value();
+ static const int kBoolValueFieldNumber = 4;
+ bool bool_value() const;
+ void set_bool_value(bool value);
+
+ // optional .google.protobuf.Struct struct_value = 5;
+ bool has_struct_value() const;
+ void clear_struct_value();
+ static const int kStructValueFieldNumber = 5;
+ const ::google::protobuf::Struct& struct_value() const;
+ ::google::protobuf::Struct* mutable_struct_value();
+ ::google::protobuf::Struct* release_struct_value();
+ void set_allocated_struct_value(::google::protobuf::Struct* struct_value);
+
+ // optional .google.protobuf.ListValue list_value = 6;
+ bool has_list_value() const;
+ void clear_list_value();
+ static const int kListValueFieldNumber = 6;
+ const ::google::protobuf::ListValue& list_value() const;
+ ::google::protobuf::ListValue* mutable_list_value();
+ ::google::protobuf::ListValue* release_list_value();
+ void set_allocated_list_value(::google::protobuf::ListValue* list_value);
+
+ KindCase kind_case() const;
+ // @@protoc_insertion_point(class_scope:google.protobuf.Value)
+ private:
+ inline void set_has_null_value();
+ inline void set_has_number_value();
+ inline void set_has_string_value();
+ inline void set_has_bool_value();
+ inline void set_has_struct_value();
+ inline void set_has_list_value();
+
+ inline bool has_kind() const;
+ void clear_kind();
+ inline void clear_has_kind();
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ union KindUnion {
+ KindUnion() {}
+ int null_value_;
+ double number_value_;
+ ::google::protobuf::internal::ArenaStringPtr string_value_;
+ bool bool_value_;
+ ::google::protobuf::Struct* struct_value_;
+ ::google::protobuf::ListValue* list_value_;
+ } kind_;
+ mutable int _cached_size_;
+ ::google::protobuf::uint32 _oneof_case_[1];
+
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fstruct_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fstruct_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fstruct_2eproto();
+
+ void InitAsDefaultInstance();
+ static Value* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT ListValue : public ::google::protobuf::Message {
+ public:
+ ListValue();
+ virtual ~ListValue();
+
+ ListValue(const ListValue& from);
+
+ inline ListValue& operator=(const ListValue& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const ListValue& default_instance();
+
+ void Swap(ListValue* other);
+
+ // implements Message ----------------------------------------------
+
+ inline ListValue* New() const { return New(NULL); }
+
+ ListValue* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const ListValue& from);
+ void MergeFrom(const ListValue& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(ListValue* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // repeated .google.protobuf.Value values = 1;
+ int values_size() const;
+ void clear_values();
+ static const int kValuesFieldNumber = 1;
+ const ::google::protobuf::Value& values(int index) const;
+ ::google::protobuf::Value* mutable_values(int index);
+ ::google::protobuf::Value* add_values();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value >&
+ values() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value >*
+ mutable_values();
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.ListValue)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value > values_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fstruct_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fstruct_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fstruct_2eproto();
+
+ void InitAsDefaultInstance();
+ static ListValue* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// Struct
+
+// map<string, .google.protobuf.Value> fields = 1;
+inline int Struct::fields_size() const {
+ return fields_.size();
+}
+inline void Struct::clear_fields() {
+ fields_.Clear();
+}
+inline const ::google::protobuf::Map< ::std::string, ::google::protobuf::Value >&
+Struct::fields() const {
+ // @@protoc_insertion_point(field_map:google.protobuf.Struct.fields)
+ return fields_.GetMap();
+}
+inline ::google::protobuf::Map< ::std::string, ::google::protobuf::Value >*
+Struct::mutable_fields() {
+ // @@protoc_insertion_point(field_mutable_map:google.protobuf.Struct.fields)
+ return fields_.MutableMap();
+}
+
+// -------------------------------------------------------------------
+
+// Value
+
+// optional .google.protobuf.NullValue null_value = 1;
+inline bool Value::has_null_value() const {
+ return kind_case() == kNullValue;
+}
+inline void Value::set_has_null_value() {
+ _oneof_case_[0] = kNullValue;
+}
+inline void Value::clear_null_value() {
+ if (has_null_value()) {
+ kind_.null_value_ = 0;
+ clear_has_kind();
+ }
+}
+inline ::google::protobuf::NullValue Value::null_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.null_value)
+ if (has_null_value()) {
+ return static_cast< ::google::protobuf::NullValue >(kind_.null_value_);
+ }
+ return static_cast< ::google::protobuf::NullValue >(0);
+}
+inline void Value::set_null_value(::google::protobuf::NullValue value) {
+ if (!has_null_value()) {
+ clear_kind();
+ set_has_null_value();
+ }
+ kind_.null_value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Value.null_value)
+}
+
+// optional double number_value = 2;
+inline bool Value::has_number_value() const {
+ return kind_case() == kNumberValue;
+}
+inline void Value::set_has_number_value() {
+ _oneof_case_[0] = kNumberValue;
+}
+inline void Value::clear_number_value() {
+ if (has_number_value()) {
+ kind_.number_value_ = 0;
+ clear_has_kind();
+ }
+}
+inline double Value::number_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.number_value)
+ if (has_number_value()) {
+ return kind_.number_value_;
+ }
+ return 0;
+}
+inline void Value::set_number_value(double value) {
+ if (!has_number_value()) {
+ clear_kind();
+ set_has_number_value();
+ }
+ kind_.number_value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Value.number_value)
+}
+
+// optional string string_value = 3;
+inline bool Value::has_string_value() const {
+ return kind_case() == kStringValue;
+}
+inline void Value::set_has_string_value() {
+ _oneof_case_[0] = kStringValue;
+}
+inline void Value::clear_string_value() {
+ if (has_string_value()) {
+ kind_.string_value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ clear_has_kind();
+ }
+}
+inline const ::std::string& Value::string_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.string_value)
+ if (has_string_value()) {
+ return kind_.string_value_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
+}
+inline void Value::set_string_value(const ::std::string& value) {
+ // @@protoc_insertion_point(field_set:google.protobuf.Value.string_value)
+ if (!has_string_value()) {
+ clear_kind();
+ set_has_string_value();
+ kind_.string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ kind_.string_value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Value.string_value)
+}
+inline void Value::set_string_value(const char* value) {
+ if (!has_string_value()) {
+ clear_kind();
+ set_has_string_value();
+ kind_.string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ kind_.string_value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Value.string_value)
+}
+inline void Value::set_string_value(const char* value, size_t size) {
+ if (!has_string_value()) {
+ clear_kind();
+ set_has_string_value();
+ kind_.string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ kind_.string_value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
+ reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Value.string_value)
+}
+inline ::std::string* Value::mutable_string_value() {
+ if (!has_string_value()) {
+ clear_kind();
+ set_has_string_value();
+ kind_.string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Value.string_value)
+ return kind_.string_value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Value::release_string_value() {
+ if (has_string_value()) {
+ clear_has_kind();
+ return kind_.string_value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ } else {
+ return NULL;
+ }
+}
+inline void Value::set_allocated_string_value(::std::string* string_value) {
+ if (!has_string_value()) {
+ kind_.string_value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ clear_kind();
+ if (string_value != NULL) {
+ set_has_string_value();
+ kind_.string_value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ string_value);
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Value.string_value)
+}
+
+// optional bool bool_value = 4;
+inline bool Value::has_bool_value() const {
+ return kind_case() == kBoolValue;
+}
+inline void Value::set_has_bool_value() {
+ _oneof_case_[0] = kBoolValue;
+}
+inline void Value::clear_bool_value() {
+ if (has_bool_value()) {
+ kind_.bool_value_ = false;
+ clear_has_kind();
+ }
+}
+inline bool Value::bool_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.bool_value)
+ if (has_bool_value()) {
+ return kind_.bool_value_;
+ }
+ return false;
+}
+inline void Value::set_bool_value(bool value) {
+ if (!has_bool_value()) {
+ clear_kind();
+ set_has_bool_value();
+ }
+ kind_.bool_value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Value.bool_value)
+}
+
+// optional .google.protobuf.Struct struct_value = 5;
+inline bool Value::has_struct_value() const {
+ return kind_case() == kStructValue;
+}
+inline void Value::set_has_struct_value() {
+ _oneof_case_[0] = kStructValue;
+}
+inline void Value::clear_struct_value() {
+ if (has_struct_value()) {
+ delete kind_.struct_value_;
+ clear_has_kind();
+ }
+}
+inline const ::google::protobuf::Struct& Value::struct_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.struct_value)
+ return has_struct_value() ? *kind_.struct_value_
+ : ::google::protobuf::Struct::default_instance();
+}
+inline ::google::protobuf::Struct* Value::mutable_struct_value() {
+ if (!has_struct_value()) {
+ clear_kind();
+ set_has_struct_value();
+ kind_.struct_value_ = new ::google::protobuf::Struct;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Value.struct_value)
+ return kind_.struct_value_;
+}
+inline ::google::protobuf::Struct* Value::release_struct_value() {
+ if (has_struct_value()) {
+ clear_has_kind();
+ ::google::protobuf::Struct* temp = kind_.struct_value_;
+ kind_.struct_value_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+inline void Value::set_allocated_struct_value(::google::protobuf::Struct* struct_value) {
+ clear_kind();
+ if (struct_value) {
+ set_has_struct_value();
+ kind_.struct_value_ = struct_value;
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Value.struct_value)
+}
+
+// optional .google.protobuf.ListValue list_value = 6;
+inline bool Value::has_list_value() const {
+ return kind_case() == kListValue;
+}
+inline void Value::set_has_list_value() {
+ _oneof_case_[0] = kListValue;
+}
+inline void Value::clear_list_value() {
+ if (has_list_value()) {
+ delete kind_.list_value_;
+ clear_has_kind();
+ }
+}
+inline const ::google::protobuf::ListValue& Value::list_value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Value.list_value)
+ return has_list_value() ? *kind_.list_value_
+ : ::google::protobuf::ListValue::default_instance();
+}
+inline ::google::protobuf::ListValue* Value::mutable_list_value() {
+ if (!has_list_value()) {
+ clear_kind();
+ set_has_list_value();
+ kind_.list_value_ = new ::google::protobuf::ListValue;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Value.list_value)
+ return kind_.list_value_;
+}
+inline ::google::protobuf::ListValue* Value::release_list_value() {
+ if (has_list_value()) {
+ clear_has_kind();
+ ::google::protobuf::ListValue* temp = kind_.list_value_;
+ kind_.list_value_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+inline void Value::set_allocated_list_value(::google::protobuf::ListValue* list_value) {
+ clear_kind();
+ if (list_value) {
+ set_has_list_value();
+ kind_.list_value_ = list_value;
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Value.list_value)
+}
+
+inline bool Value::has_kind() const {
+ return kind_case() != KIND_NOT_SET;
+}
+inline void Value::clear_has_kind() {
+ _oneof_case_[0] = KIND_NOT_SET;
+}
+inline Value::KindCase Value::kind_case() const {
+ return Value::KindCase(_oneof_case_[0]);
+}
+// -------------------------------------------------------------------
+
+// ListValue
+
+// repeated .google.protobuf.Value values = 1;
+inline int ListValue::values_size() const {
+ return values_.size();
+}
+inline void ListValue::clear_values() {
+ values_.Clear();
+}
+inline const ::google::protobuf::Value& ListValue::values(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.ListValue.values)
+ return values_.Get(index);
+}
+inline ::google::protobuf::Value* ListValue::mutable_values(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.ListValue.values)
+ return values_.Mutable(index);
+}
+inline ::google::protobuf::Value* ListValue::add_values() {
+ // @@protoc_insertion_point(field_add:google.protobuf.ListValue.values)
+ return values_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value >&
+ListValue::values() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.ListValue.values)
+ return values_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Value >*
+ListValue::mutable_values() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.ListValue.values)
+ return &values_;
+}
+
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+#ifndef SWIG
+namespace google {
+namespace protobuf {
+
+template <> struct is_proto_enum< ::google::protobuf::NullValue> : ::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::google::protobuf::NullValue>() {
+ return ::google::protobuf::NullValue_descriptor();
+}
+
+} // namespace protobuf
+} // namespace google
+#endif // SWIG
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_google_2fprotobuf_2fstruct_2eproto__INCLUDED
diff --git a/src/google/protobuf/struct.proto b/src/google/protobuf/struct.proto
index 04d59f77..cd102731 100644
--- a/src/google/protobuf/struct.proto
+++ b/src/google/protobuf/struct.proto
@@ -35,6 +35,7 @@ option java_generate_equals_and_hash = true;
option java_multiple_files = true;
option java_outer_classname = "StructProto";
option java_package = "com.google.protobuf";
+option csharp_namespace = "Google.ProtocolBuffers";
option objc_class_prefix = "GPB";
diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h
index 37123c7b..e4c35a2f 100644
--- a/src/google/protobuf/stubs/common.h
+++ b/src/google/protobuf/stubs/common.h
@@ -258,7 +258,7 @@ static const uint64 kuint64max = GOOGLE_ULONGLONG(0xFFFFFFFFFFFFFFFF);
#ifndef GOOGLE_PREDICT_FALSE
#ifdef __GNUC__
// Provided at least since GCC 3.0.
-#define GOOGLE_PREDICT_FALSE(x) (__builtin_expect(!!(x), 1))
+#define GOOGLE_PREDICT_FALSE(x) (__builtin_expect(x, 0))
#else
#define GOOGLE_PREDICT_FALSE
#endif
@@ -1141,6 +1141,14 @@ class LIBPROTOBUF_EXPORT Mutex {
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Mutex);
};
+// Undefine the macros to workaround the conflicts with Google internal
+// MutexLock implementation.
+// TODO(liujisi): Remove the undef once internal macros are removed.
+#undef MutexLock
+#undef ReaderMutexLock
+#undef WriterMutexLock
+#undef MutexLockMaybe
+
// MutexLock(mu) acquires mu when constructed and releases it when destroyed.
class LIBPROTOBUF_EXPORT MutexLock {
public:
diff --git a/src/google/protobuf/stubs/hash.h b/src/google/protobuf/stubs/hash.h
index 11bc2b37..4da8a5d8 100755
--- a/src/google/protobuf/stubs/hash.h
+++ b/src/google/protobuf/stubs/hash.h
@@ -53,6 +53,7 @@ namespace google {
namespace protobuf {
#ifdef GOOGLE_PROTOBUF_MISSING_HASH
+#undef GOOGLE_PROTOBUF_MISSING_HASH
// This system doesn't have hash_map or hash_set. Emulate them using map and
// set.
@@ -92,9 +93,12 @@ template <typename Key, typename Data,
typename EqualKey = std::equal_to<Key>,
typename Alloc = std::allocator< std::pair<const Key, Data> > >
class hash_map : public std::map<Key, Data, HashFcn, EqualKey, Alloc> {
+ typedef std::map<Key, Data, HashFcn, EqualKey, Alloc> BaseClass;
+
public:
- hash_map(int = 0, const HashFcn& = HashFcn(), const EqualKey& = EqualKey(),
- const Alloc& = Alloc()) {}
+ hash_map(int a = 0, const HashFcn& b = HashFcn(),
+ const EqualKey& c = EqualKey(),
+ const Alloc& d = Alloc()) : BaseClass(a, b, c, d) {}
};
template <typename Key,
@@ -108,7 +112,7 @@ class hash_set : public std::set<Key, HashFcn> {
#elif defined(_MSC_VER) && !defined(_STLPORT_VERSION)
template <typename Key>
-struct hash : public GOOGLE_PROTOBUF_HASH_NAMESPACE::hash_compare<Key> {
+struct hash : public GOOGLE_PROTOBUF_HASH_COMPARE<Key> {
};
// MSVC's hash_compare<const char*> hashes based on the string contents but
@@ -122,8 +126,7 @@ class CstringLess {
template <>
struct hash<const char*>
- : public GOOGLE_PROTOBUF_HASH_NAMESPACE::hash_compare<
- const char*, CstringLess> {};
+ : public GOOGLE_PROTOBUF_HASH_COMPARE<const char*, CstringLess> {};
template <typename Key, typename Data,
typename HashFcn = hash<Key>,
@@ -132,9 +135,13 @@ template <typename Key, typename Data,
class hash_map
: public GOOGLE_PROTOBUF_HASH_NAMESPACE::GOOGLE_PROTOBUF_HASH_MAP_CLASS<
Key, Data, HashFcn, EqualKey, Alloc> {
+ typedef GOOGLE_PROTOBUF_HASH_NAMESPACE::GOOGLE_PROTOBUF_HASH_MAP_CLASS<
+ Key, Data, HashFcn, EqualKey, Alloc> BaseClass;
+
public:
- hash_map(int = 0, const HashFcn& = HashFcn(), const EqualKey& = EqualKey(),
- const Alloc& = Alloc()) {}
+ hash_map(int a = 0, const HashFcn& b = HashFcn(),
+ const EqualKey& c = EqualKey(),
+ const Alloc& d = Alloc()) : BaseClass(a, b, c, d) {}
};
template <typename Key, typename HashFcn = hash<Key>,
@@ -186,9 +193,13 @@ template <typename Key, typename Data,
class hash_map
: public GOOGLE_PROTOBUF_HASH_NAMESPACE::GOOGLE_PROTOBUF_HASH_MAP_CLASS<
Key, Data, HashFcn, EqualKey, Alloc> {
+ typedef GOOGLE_PROTOBUF_HASH_NAMESPACE::GOOGLE_PROTOBUF_HASH_MAP_CLASS<
+ Key, Data, HashFcn, EqualKey, Alloc> BaseClass;
+
public:
- hash_map(int = 0, const HashFcn& = HashFcn(), const EqualKey& = EqualKey(),
- const Alloc& = Alloc()) {}
+ hash_map(int a = 0, const HashFcn& b = HashFcn(),
+ const EqualKey& c = EqualKey(),
+ const Alloc& d = Alloc()) : BaseClass(a, b, c, d) {}
};
template <typename Key, typename HashFcn = hash<Key>,
@@ -200,7 +211,6 @@ class hash_set
hash_set(int = 0) {}
};
-#undef GOOGLE_PROTOBUF_MISSING_HASH
#endif // !GOOGLE_PROTOBUF_MISSING_HASH
template <>
diff --git a/src/google/protobuf/stubs/strutil.cc b/src/google/protobuf/stubs/strutil.cc
index 7955d261..7ecc17ee 100644
--- a/src/google/protobuf/stubs/strutil.cc
+++ b/src/google/protobuf/stubs/strutil.cc
@@ -1285,24 +1285,6 @@ char* FloatToBuffer(float value, char* buffer) {
return buffer;
}
-string ToHex(uint64 num) {
- if (num == 0) {
- return string("0");
- }
-
- // Compute hex bytes in reverse order, writing to the back of the
- // buffer.
- char buf[16]; // No more than 16 hex digits needed.
- char* bufptr = buf + 16;
- static const char kHexChars[] = "0123456789abcdef";
- while (num != 0) {
- *--bufptr = kHexChars[num & 0xf];
- num >>= 4;
- }
-
- return string(bufptr, buf + 16 - bufptr);
-}
-
namespace strings {
AlphaNum::AlphaNum(strings::Hex hex) {
diff --git a/src/google/protobuf/stubs/strutil.h b/src/google/protobuf/stubs/strutil.h
index 920701eb..397122ef 100644
--- a/src/google/protobuf/stubs/strutil.h
+++ b/src/google/protobuf/stubs/strutil.h
@@ -534,7 +534,7 @@ struct Hex {
}
};
-struct AlphaNum {
+struct LIBPROTOBUF_EXPORT AlphaNum {
const char *piece_data_; // move these to string_ref eventually
size_t piece_size_; // move these to string_ref eventually
@@ -610,23 +610,30 @@ using strings::AlphaNum;
// be a reference into str.
// ----------------------------------------------------------------------
-string StrCat(const AlphaNum &a, const AlphaNum &b);
-string StrCat(const AlphaNum &a, const AlphaNum &b, const AlphaNum &c);
-string StrCat(const AlphaNum &a, const AlphaNum &b, const AlphaNum &c,
- const AlphaNum &d);
-string StrCat(const AlphaNum &a, const AlphaNum &b, const AlphaNum &c,
- const AlphaNum &d, const AlphaNum &e);
-string StrCat(const AlphaNum &a, const AlphaNum &b, const AlphaNum &c,
- const AlphaNum &d, const AlphaNum &e, const AlphaNum &f);
-string StrCat(const AlphaNum &a, const AlphaNum &b, const AlphaNum &c,
- const AlphaNum &d, const AlphaNum &e, const AlphaNum &f,
- const AlphaNum &g);
-string StrCat(const AlphaNum &a, const AlphaNum &b, const AlphaNum &c,
- const AlphaNum &d, const AlphaNum &e, const AlphaNum &f,
- const AlphaNum &g, const AlphaNum &h);
-string StrCat(const AlphaNum &a, const AlphaNum &b, const AlphaNum &c,
- const AlphaNum &d, const AlphaNum &e, const AlphaNum &f,
- const AlphaNum &g, const AlphaNum &h, const AlphaNum &i);
+LIBPROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b);
+LIBPROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b,
+ const AlphaNum& c);
+LIBPROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b,
+ const AlphaNum& c, const AlphaNum& d);
+LIBPROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b,
+ const AlphaNum& c, const AlphaNum& d,
+ const AlphaNum& e);
+LIBPROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b,
+ const AlphaNum& c, const AlphaNum& d,
+ const AlphaNum& e, const AlphaNum& f);
+LIBPROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b,
+ const AlphaNum& c, const AlphaNum& d,
+ const AlphaNum& e, const AlphaNum& f,
+ const AlphaNum& g);
+LIBPROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b,
+ const AlphaNum& c, const AlphaNum& d,
+ const AlphaNum& e, const AlphaNum& f,
+ const AlphaNum& g, const AlphaNum& h);
+LIBPROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b,
+ const AlphaNum& c, const AlphaNum& d,
+ const AlphaNum& e, const AlphaNum& f,
+ const AlphaNum& g, const AlphaNum& h,
+ const AlphaNum& i);
inline string StrCat(const AlphaNum& a) { return string(a.data(), a.size()); }
@@ -651,12 +658,14 @@ inline string StrCat(const AlphaNum& a) { return string(a.data(), a.size()); }
// worked around as consecutive calls to StrAppend are quite efficient.
// ----------------------------------------------------------------------
-void StrAppend(string* dest, const AlphaNum& a);
-void StrAppend(string* dest, const AlphaNum& a, const AlphaNum& b);
-void StrAppend(string* dest, const AlphaNum& a, const AlphaNum& b,
- const AlphaNum& c);
-void StrAppend(string* dest, const AlphaNum& a, const AlphaNum& b,
- const AlphaNum& c, const AlphaNum& d);
+LIBPROTOBUF_EXPORT void StrAppend(string* dest, const AlphaNum& a);
+LIBPROTOBUF_EXPORT void StrAppend(string* dest, const AlphaNum& a,
+ const AlphaNum& b);
+LIBPROTOBUF_EXPORT void StrAppend(string* dest, const AlphaNum& a,
+ const AlphaNum& b, const AlphaNum& c);
+LIBPROTOBUF_EXPORT void StrAppend(string* dest, const AlphaNum& a,
+ const AlphaNum& b, const AlphaNum& c,
+ const AlphaNum& d);
// ----------------------------------------------------------------------
// Join()
@@ -683,12 +692,6 @@ string Join(const Range& components,
}
// ----------------------------------------------------------------------
-// ToHex()
-// Return a lower-case hex string representation of the given integer.
-// ----------------------------------------------------------------------
-LIBPROTOBUF_EXPORT string ToHex(uint64 num);
-
-// ----------------------------------------------------------------------
// GlobalReplaceSubstring()
// Replaces all instances of a substring in a string. Does nothing
// if 'substring' is empty. Returns the number of replacements.
diff --git a/src/google/protobuf/testdata/golden_message_proto3 b/src/google/protobuf/testdata/golden_message_proto3
index 934f36fa..bd646a0d 100644
--- a/src/google/protobuf/testdata/golden_message_proto3
+++ b/src/google/protobuf/testdata/golden_message_proto3
Binary files differ
diff --git a/src/google/protobuf/testdata/map_test_data.txt b/src/google/protobuf/testdata/map_test_data.txt
new file mode 100644
index 00000000..bc272321
--- /dev/null
+++ b/src/google/protobuf/testdata/map_test_data.txt
@@ -0,0 +1,140 @@
+map_int32_int32 {
+ key: 0
+ value: 0
+}
+map_int32_int32 {
+ key: 1
+ value: 1
+}
+map_int64_int64 {
+ key: 0
+ value: 0
+}
+map_int64_int64 {
+ key: 1
+ value: 1
+}
+map_uint32_uint32 {
+ key: 0
+ value: 0
+}
+map_uint32_uint32 {
+ key: 1
+ value: 1
+}
+map_uint64_uint64 {
+ key: 0
+ value: 0
+}
+map_uint64_uint64 {
+ key: 1
+ value: 1
+}
+map_sint32_sint32 {
+ key: 0
+ value: 0
+}
+map_sint32_sint32 {
+ key: 1
+ value: 1
+}
+map_sint64_sint64 {
+ key: 0
+ value: 0
+}
+map_sint64_sint64 {
+ key: 1
+ value: 1
+}
+map_fixed32_fixed32 {
+ key: 0
+ value: 0
+}
+map_fixed32_fixed32 {
+ key: 1
+ value: 1
+}
+map_fixed64_fixed64 {
+ key: 0
+ value: 0
+}
+map_fixed64_fixed64 {
+ key: 1
+ value: 1
+}
+map_sfixed32_sfixed32 {
+ key: 0
+ value: 0
+}
+map_sfixed32_sfixed32 {
+ key: 1
+ value: 1
+}
+map_sfixed64_sfixed64 {
+ key: 0
+ value: 0
+}
+map_sfixed64_sfixed64 {
+ key: 1
+ value: 1
+}
+map_int32_float {
+ key: 0
+ value: 0
+}
+map_int32_float {
+ key: 1
+ value: 1
+}
+map_int32_double {
+ key: 0
+ value: 0
+}
+map_int32_double {
+ key: 1
+ value: 1
+}
+map_bool_bool {
+ key: false
+ value: false
+}
+map_bool_bool {
+ key: true
+ value: true
+}
+map_string_string {
+ key: "0"
+ value: "0"
+}
+map_string_string {
+ key: "1"
+ value: "1"
+}
+map_int32_bytes {
+ key: 0
+ value: "0"
+}
+map_int32_bytes {
+ key: 1
+ value: "1"
+}
+map_int32_enum {
+ key: 0
+ value: MAP_ENUM_BAR
+}
+map_int32_enum {
+ key: 1
+ value: MAP_ENUM_BAZ
+}
+map_int32_foreign_message {
+ key: 0
+ value {
+ c: 0
+ }
+}
+map_int32_foreign_message {
+ key: 1
+ value {
+ c: 1
+ }
+}
diff --git a/src/google/protobuf/testing/googletest.cc b/src/google/protobuf/testing/googletest.cc
index 5f6a199a..b8bd790b 100644
--- a/src/google/protobuf/testing/googletest.cc
+++ b/src/google/protobuf/testing/googletest.cc
@@ -66,7 +66,14 @@ namespace protobuf {
string TestSourceDir() {
#ifndef GOOGLE_THIRD_PARTY_PROTOBUF
-#ifdef _MSC_VER
+#ifndef _MSC_VER
+ // automake sets the "srcdir" environment variable.
+ char* result = getenv("srcdir");
+ if (result != NULL) {
+ return result;
+ }
+#endif // _MSC_VER
+
// Look for the "src" directory.
string prefix = ".";
@@ -80,16 +87,6 @@ string TestSourceDir() {
}
return prefix + "/src";
#else
- // automake sets the "srcdir" environment variable.
- char* result = getenv("srcdir");
- if (result == NULL) {
- // Otherwise, the test must be run from the source directory.
- return ".";
- } else {
- return result;
- }
-#endif
-#else
return "third_party/protobuf/src";
#endif // GOOGLE_THIRD_PARTY_PROTOBUF
}
@@ -108,6 +105,10 @@ string GetTemporaryDirectoryName() {
if (HasPrefixString(result, "\\")) {
result.erase(0, 1);
}
+ // The Win32 API accepts forward slashes as a path delimiter even though
+ // backslashes are standard. Let's avoid confusion and use only forward
+ // slashes.
+ result = StringReplace(result, "\\", "/", true);
#endif // _WIN32
return result;
}
diff --git a/src/google/protobuf/text_format.cc b/src/google/protobuf/text_format.cc
index ec070c51..61dfa5d6 100644
--- a/src/google/protobuf/text_format.cc
+++ b/src/google/protobuf/text_format.cc
@@ -43,6 +43,8 @@
#include <google/protobuf/text_format.h>
#include <google/protobuf/descriptor.h>
+#include <google/protobuf/dynamic_message.h>
+#include <google/protobuf/repeated_field.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/io/zero_copy_stream.h>
@@ -50,6 +52,7 @@
#include <google/protobuf/unknown_field_set.h>
#include <google/protobuf/descriptor.pb.h>
#include <google/protobuf/io/tokenizer.h>
+#include <google/protobuf/any.h>
#include <google/protobuf/stubs/stringprintf.h>
#include <google/protobuf/stubs/strutil.h>
#include <google/protobuf/stubs/map_util.h>
@@ -70,6 +73,18 @@ inline bool IsOctNumber(const string& str) {
(str[1] >= '0' && str[1] < '8'));
}
+inline bool GetAnyFieldDescriptors(const Message& message,
+ const FieldDescriptor** type_url_field,
+ const FieldDescriptor** value_field) {
+ const Descriptor* descriptor = message.GetDescriptor();
+ *type_url_field = descriptor->FindFieldByNumber(1);
+ *value_field = descriptor->FindFieldByNumber(2);
+ return (*type_url_field != NULL &&
+ (*type_url_field)->type() == FieldDescriptor::TYPE_STRING &&
+ *value_field != NULL &&
+ (*value_field)->type() == FieldDescriptor::TYPE_BYTES);
+}
+
} // namespace
string Message::DebugString() const {
@@ -330,7 +345,17 @@ class TextFormat::Parser::ParserImpl {
// Confirm that we have a valid ending delimiter.
DO(Consume(delimiter));
+ return true;
+ }
+ // Consume either "<" or "{".
+ bool ConsumeMessageDelimiter(string* delimiter) {
+ if (TryConsume("<")) {
+ *delimiter = ">";
+ } else {
+ DO(Consume("{"));
+ *delimiter = "}";
+ }
return true;
}
@@ -347,15 +372,28 @@ class TextFormat::Parser::ParserImpl {
int start_line = tokenizer_.current().line;
int start_column = tokenizer_.current().column;
+ const FieldDescriptor* any_type_url_field;
+ const FieldDescriptor* any_value_field;
+ if (internal::GetAnyFieldDescriptors(*message, &any_type_url_field,
+ &any_value_field) &&
+ TryConsume("[")) {
+ string full_type_name;
+ DO(ConsumeAnyTypeUrl(&full_type_name));
+ DO(Consume("]"));
+ string serialized_value;
+ DO(ConsumeAnyValue(full_type_name,
+ message->GetDescriptor()->file()->pool(),
+ &serialized_value));
+ reflection->SetString(
+ message, any_type_url_field,
+ string(internal::kTypeGoogleApisComPrefix) + full_type_name);
+ reflection->SetString(message, any_value_field, serialized_value);
+ return true;
+ // Fall through.
+ }
if (TryConsume("[")) {
// Extension.
- DO(ConsumeIdentifier(&field_name));
- while (TryConsume(".")) {
- string part;
- DO(ConsumeIdentifier(&part));
- field_name += ".";
- field_name += part;
- }
+ DO(ConsumeFullTypeName(&field_name));
DO(Consume("]"));
field = (finder_ != NULL
@@ -512,13 +550,7 @@ class TextFormat::Parser::ParserImpl {
string field_name;
if (TryConsume("[")) {
// Extension name.
- DO(ConsumeIdentifier(&field_name));
- while (TryConsume(".")) {
- string part;
- DO(ConsumeIdentifier(&part));
- field_name += ".";
- field_name += part;
- }
+ DO(ConsumeFullTypeName(&field_name));
DO(Consume("]"));
} else {
DO(ConsumeIdentifier(&field_name));
@@ -553,13 +585,7 @@ class TextFormat::Parser::ParserImpl {
}
string delimiter;
- if (TryConsume("<")) {
- delimiter = ">";
- } else {
- DO(Consume("{"));
- delimiter = "}";
- }
-
+ DO(ConsumeMessageDelimiter(&delimiter));
if (field->is_repeated()) {
DO(ConsumeMessage(reflection->AddMessage(message, field), delimiter));
} else {
@@ -576,12 +602,7 @@ class TextFormat::Parser::ParserImpl {
// the ending delimiter.
bool SkipFieldMessage() {
string delimiter;
- if (TryConsume("<")) {
- delimiter = ">";
- } else {
- DO(Consume("{"));
- delimiter = "}";
- }
+ DO(ConsumeMessageDelimiter(&delimiter));
while (!LookingAt(">") && !LookingAt("}")) {
DO(SkipField());
}
@@ -808,6 +829,18 @@ class TextFormat::Parser::ParserImpl {
return false;
}
+ // Consume a string of form "<id1>.<id2>....<idN>".
+ bool ConsumeFullTypeName(string* name) {
+ DO(ConsumeIdentifier(name));
+ while (TryConsume(".")) {
+ string part;
+ DO(ConsumeIdentifier(&part));
+ *name += ".";
+ *name += part;
+ }
+ return true;
+ }
+
// Consumes a string and saves its value in the text parameter.
// Returns false if the token is not of type STRING.
bool ConsumeString(string* text) {
@@ -947,6 +980,54 @@ class TextFormat::Parser::ParserImpl {
return true;
}
+ // Consumes Any::type_url value, of form "type.googleapis.com/full.type.Name"
+ bool ConsumeAnyTypeUrl(string* full_type_name) {
+ // TODO(saito) Extend Consume() to consume multiple tokens at once, so that
+ // this code can be written as just DO(Consume(kGoogleApisTypePrefix)).
+ string url1, url2, url3;
+ DO(ConsumeIdentifier(&url1)); // type
+ DO(Consume("."));
+ DO(ConsumeIdentifier(&url2)); // googleapis
+ DO(Consume("."));
+ DO(ConsumeIdentifier(&url3)); // com
+ DO(Consume("/"));
+ DO(ConsumeFullTypeName(full_type_name));
+
+ const string prefix = url1 + "." + url2 + "." + url3 + "/";
+ if (prefix != internal::kTypeGoogleApisComPrefix) {
+ ReportError("TextFormat::Parser for Any supports only "
+ "type.googleapi.com, but found \"" + prefix + "\"");
+ return false;
+ }
+ return true;
+ }
+
+ // A helper function for reconstructing Any::value. Consumes a text of
+ // full_type_name, then serializes it into serialized_value. "pool" is used to
+ // look up and create a temporary object with full_type_name.
+ bool ConsumeAnyValue(const string& full_type_name, const DescriptorPool* pool,
+ string* serialized_value) {
+ const Descriptor* value_descriptor =
+ pool->FindMessageTypeByName(full_type_name);
+ if (value_descriptor == NULL) {
+ ReportError("Could not find type \"" + full_type_name +
+ "\" stored in google.protobuf.Any.");
+ return false;
+ }
+ DynamicMessageFactory factory;
+ const Message* value_prototype = factory.GetPrototype(value_descriptor);
+ if (value_prototype == NULL) {
+ return false;
+ }
+ google::protobuf::scoped_ptr<Message> value(value_prototype->New());
+ string sub_delimiter;
+ DO(ConsumeMessageDelimiter(&sub_delimiter));
+ DO(ConsumeMessage(value.get(), sub_delimiter));
+
+ value->AppendToString(serialized_value);
+ return true;
+ }
+
// Consumes a token and confirms that it matches that specified in the
// value parameter. Returns false if the token found does not match that
// which was specified.
@@ -1338,7 +1419,8 @@ TextFormat::Printer::Printer()
use_field_number_(false),
use_short_repeated_primitives_(false),
hide_unknown_fields_(false),
- print_message_fields_in_index_order_(false) {
+ print_message_fields_in_index_order_(false),
+ expand_any_(false) {
SetUseUtf8StringEscaping(false);
}
@@ -1413,11 +1495,63 @@ struct FieldIndexSorter {
return left->index() < right->index();
}
};
+
} // namespace
+bool TextFormat::Printer::PrintAny(const Message& message,
+ TextGenerator& generator) const {
+ const FieldDescriptor* type_url_field;
+ const FieldDescriptor* value_field;
+ if (!internal::GetAnyFieldDescriptors(message, &type_url_field,
+ &value_field)) {
+ return false;
+ }
+
+ const Reflection* reflection = message.GetReflection();
+
+ // Extract the full type name from the type_url field.
+ const string& type_url = reflection->GetString(message, type_url_field);
+ string full_type_name;
+ if (!internal::ParseAnyTypeUrl(type_url, &full_type_name)) {
+ return false;
+ }
+
+ // Print the "value" in text.
+ const google::protobuf::Descriptor* value_descriptor =
+ message.GetDescriptor()->file()->pool()->FindMessageTypeByName(
+ full_type_name);
+ if (value_descriptor == NULL) {
+ GOOGLE_LOG(WARNING) << "Proto type " << type_url << " not found";
+ return false;
+ }
+ DynamicMessageFactory factory;
+ google::protobuf::scoped_ptr<google::protobuf::Message> value_message(
+ factory.GetPrototype(value_descriptor)->New());
+ string serialized_value = reflection->GetString(message, value_field);
+ if (!value_message->ParseFromString(serialized_value)) {
+ GOOGLE_LOG(WARNING) << type_url << ": failed to parse contents";
+ return false;
+ }
+ generator.Print(StrCat("[", type_url, "]"));
+ const FieldValuePrinter* printer = FindWithDefault(
+ custom_printers_, value_field, default_field_value_printer_.get());
+ generator.Print(
+ printer->PrintMessageStart(message, -1, 0, single_line_mode_));
+ generator.Indent();
+ Print(*value_message, generator);
+ generator.Outdent();
+ generator.Print(printer->PrintMessageEnd(message, -1, 0, single_line_mode_));
+ return true;
+}
+
void TextFormat::Printer::Print(const Message& message,
TextGenerator& generator) const {
+ const Descriptor* descriptor = message.GetDescriptor();
const Reflection* reflection = message.GetReflection();
+ if (descriptor->full_name() == internal::kAnyFullTypeName && expand_any_ &&
+ PrintAny(message, generator)) {
+ return;
+ }
vector<const FieldDescriptor*> fields;
reflection->ListFields(message, &fields);
if (print_message_fields_in_index_order_) {
@@ -1446,6 +1580,54 @@ void TextFormat::Printer::PrintFieldValueToString(
PrintFieldValue(message, message.GetReflection(), field, index, generator);
}
+class MapEntryMessageComparator {
+ public:
+ explicit MapEntryMessageComparator(const Descriptor* descriptor)
+ : field_(descriptor->field(0)) {}
+
+ bool operator()(const Message* a, const Message* b) {
+ const Reflection* reflection = a->GetReflection();
+ switch (field_->cpp_type()) {
+ case FieldDescriptor::CPPTYPE_BOOL: {
+ bool first = reflection->GetBool(*a, field_);
+ bool second = reflection->GetBool(*b, field_);
+ return first < second;
+ }
+ case FieldDescriptor::CPPTYPE_INT32: {
+ int32 first = reflection->GetInt32(*a, field_);
+ int32 second = reflection->GetInt32(*b, field_);
+ return first < second;
+ }
+ case FieldDescriptor::CPPTYPE_INT64: {
+ int64 first = reflection->GetInt64(*a, field_);
+ int64 second = reflection->GetInt64(*b, field_);
+ return first < second;
+ }
+ case FieldDescriptor::CPPTYPE_UINT32: {
+ uint32 first = reflection->GetUInt32(*a, field_);
+ uint32 second = reflection->GetUInt32(*b, field_);
+ return first < second;
+ }
+ case FieldDescriptor::CPPTYPE_UINT64: {
+ uint64 first = reflection->GetUInt64(*a, field_);
+ uint64 second = reflection->GetUInt64(*b, field_);
+ return first < second;
+ }
+ case FieldDescriptor::CPPTYPE_STRING: {
+ string first = reflection->GetString(*a, field_);
+ string second = reflection->GetString(*b, field_);
+ return first < second;
+ }
+ default:
+ GOOGLE_LOG(DFATAL) << "Invalid key for map field.";
+ return true;
+ }
+ }
+
+ private:
+ const FieldDescriptor* field_;
+};
+
void TextFormat::Printer::PrintField(const Message& message,
const Reflection* reflection,
const FieldDescriptor* field,
@@ -1466,6 +1648,21 @@ void TextFormat::Printer::PrintField(const Message& message,
count = 1;
}
+ std::vector<const Message*> sorted_map_field;
+ if (field->is_map()) {
+ const RepeatedPtrField<Message>& map_field =
+ reflection->GetRepeatedPtrField<Message>(message, field);
+ for (RepeatedPtrField<Message>::const_pointer_iterator it =
+ map_field.pointer_begin();
+ it != map_field.pointer_end(); ++it) {
+ sorted_map_field.push_back(*it);
+ }
+
+ MapEntryMessageComparator comparator(field->message_type());
+ std::stable_sort(sorted_map_field.begin(), sorted_map_field.end(),
+ comparator);
+ }
+
for (int j = 0; j < count; ++j) {
const int field_index = field->is_repeated() ? j : -1;
@@ -1475,8 +1672,10 @@ void TextFormat::Printer::PrintField(const Message& message,
const FieldValuePrinter* printer = FindWithDefault(
custom_printers_, field, default_field_value_printer_.get());
const Message& sub_message =
- field->is_repeated()
- ? reflection->GetRepeatedMessage(message, field, j)
+ field->is_repeated()
+ ? (field->is_map()
+ ? *sorted_map_field[j]
+ : reflection->GetRepeatedMessage(message, field, j))
: reflection->GetMessage(message, field);
generator.Print(
printer->PrintMessageStart(
@@ -1680,8 +1879,8 @@ void TextFormat::Printer::PrintUnknownFields(
case UnknownField::TYPE_FIXED32: {
generator.Print(field_number);
generator.Print(": 0x");
- char buffer[kFastToBufferSize];
- generator.Print(FastHex32ToBuffer(field.fixed32(), buffer));
+ generator.Print(
+ StrCat(strings::Hex(field.fixed32(), strings::Hex::ZERO_PAD_8)));
if (single_line_mode_) {
generator.Print(" ");
} else {
@@ -1692,8 +1891,8 @@ void TextFormat::Printer::PrintUnknownFields(
case UnknownField::TYPE_FIXED64: {
generator.Print(field_number);
generator.Print(": 0x");
- char buffer[kFastToBufferSize];
- generator.Print(FastHex64ToBuffer(field.fixed64(), buffer));
+ generator.Print(
+ StrCat(strings::Hex(field.fixed64(), strings::Hex::ZERO_PAD_16)));
if (single_line_mode_) {
generator.Print(" ");
} else {
diff --git a/src/google/protobuf/text_format.h b/src/google/protobuf/text_format.h
index 9e2cb070..6717aecd 100644
--- a/src/google/protobuf/text_format.h
+++ b/src/google/protobuf/text_format.h
@@ -208,6 +208,17 @@ class LIBPROTOBUF_EXPORT TextFormat {
print_message_fields_in_index_order;
}
+ // If expand==true, expand google.protobuf.Any payloads. The output
+ // will be of form
+ // [type_url] { <value_printed_in_text> }
+ //
+ // If expand==false, print Any using the default printer. The output will
+ // look like
+ // type_url: "<type_url>" value: "serialized_content"
+ void SetExpandAny(bool expand) {
+ expand_any_ = expand;
+ }
+
// Register a custom field-specific FieldValuePrinter for fields
// with a particular FieldDescriptor.
// Returns "true" if the registration succeeded, or "false", if there is
@@ -259,6 +270,8 @@ class LIBPROTOBUF_EXPORT TextFormat {
void PrintUnknownFields(const UnknownFieldSet& unknown_fields,
TextGenerator& generator) const;
+ bool PrintAny(const Message& message, TextGenerator& generator) const;
+
int initial_indent_level_;
bool single_line_mode_;
@@ -271,6 +284,8 @@ class LIBPROTOBUF_EXPORT TextFormat {
bool print_message_fields_in_index_order_;
+ bool expand_any_;
+
google::protobuf::scoped_ptr<const FieldValuePrinter> default_field_value_printer_;
typedef map<const FieldDescriptor*,
const FieldValuePrinter*> CustomPrinterMap;
diff --git a/src/google/protobuf/text_format_unittest.cc b/src/google/protobuf/text_format_unittest.cc
index 477fdcbd..1b18c5ed 100644
--- a/src/google/protobuf/text_format_unittest.cc
+++ b/src/google/protobuf/text_format_unittest.cc
@@ -32,23 +32,24 @@
// Based on original Protocol Buffers design by
// Sanjay Ghemawat, Jeff Dean, and others.
+#include <google/protobuf/text_format.h>
+
#include <math.h>
#include <stdlib.h>
#include <limits>
-#include <google/protobuf/text_format.h>
-#include <google/protobuf/io/zero_copy_stream_impl.h>
-#include <google/protobuf/io/tokenizer.h>
-#include <google/protobuf/unittest.pb.h>
-#include <google/protobuf/unittest_mset.pb.h>
-#include <google/protobuf/test_util.h>
-
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/testing/file.h>
-#include <google/protobuf/testing/googletest.h>
-#include <gtest/gtest.h>
+#include <google/protobuf/test_util.h>
+#include <google/protobuf/unittest.pb.h>
+#include <google/protobuf/unittest_mset.pb.h>
+#include <google/protobuf/io/tokenizer.h>
+#include <google/protobuf/io/zero_copy_stream_impl.h>
#include <google/protobuf/stubs/strutil.h>
#include <google/protobuf/stubs/substitute.h>
+#include <google/protobuf/testing/googletest.h>
+#include <gtest/gtest.h>
+
namespace google {
namespace protobuf {
@@ -451,7 +452,7 @@ TEST_F(TextFormatTest, ErrorCasesRegisteringFieldValuePrinterShouldFail) {
class CustomMessageFieldValuePrinter : public TextFormat::FieldValuePrinter {
public:
virtual string PrintInt32(int32 v) const {
- return StrCat(FieldValuePrinter::PrintInt32(v), " # x", ToHex(v));
+ return StrCat(FieldValuePrinter::PrintInt32(v), " # x", strings::Hex(v));
}
virtual string PrintMessageStart(const Message& message,
diff --git a/src/google/protobuf/timestamp.pb.cc b/src/google/protobuf/timestamp.pb.cc
new file mode 100644
index 00000000..877dc8f3
--- /dev/null
+++ b/src/google/protobuf/timestamp.pb.cc
@@ -0,0 +1,407 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/timestamp.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "google/protobuf/timestamp.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+namespace {
+
+const ::google::protobuf::Descriptor* Timestamp_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Timestamp_reflection_ = NULL;
+
+} // namespace
+
+
+void protobuf_AssignDesc_google_2fprotobuf_2ftimestamp_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2ftimestamp_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "google/protobuf/timestamp.proto");
+ GOOGLE_CHECK(file != NULL);
+ Timestamp_descriptor_ = file->message_type(0);
+ static const int Timestamp_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Timestamp, seconds_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Timestamp, nanos_),
+ };
+ Timestamp_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Timestamp_descriptor_,
+ Timestamp::default_instance_,
+ Timestamp_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Timestamp),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Timestamp, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Timestamp, _is_default_instance_));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_google_2fprotobuf_2ftimestamp_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Timestamp_descriptor_, &Timestamp::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_google_2fprotobuf_2ftimestamp_2eproto() {
+ delete Timestamp::default_instance_;
+ delete Timestamp_reflection_;
+}
+
+void protobuf_AddDesc_google_2fprotobuf_2ftimestamp_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\037google/protobuf/timestamp.proto\022\017googl"
+ "e.protobuf\"+\n\tTimestamp\022\017\n\007seconds\030\001 \001(\003"
+ "\022\r\n\005nanos\030\002 \001(\005BI\n\023com.google.protobufB\016"
+ "TimestampProtoP\001\240\001\001\242\002\003GPB\252\002\026Google.Proto"
+ "colBuffersb\006proto3", 178);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "google/protobuf/timestamp.proto", &protobuf_RegisterTypes);
+ Timestamp::default_instance_ = new Timestamp();
+ Timestamp::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2ftimestamp_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_google_2fprotobuf_2ftimestamp_2eproto {
+ StaticDescriptorInitializer_google_2fprotobuf_2ftimestamp_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2ftimestamp_2eproto();
+ }
+} static_descriptor_initializer_google_2fprotobuf_2ftimestamp_2eproto_;
+
+namespace {
+
+static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
+static void MergeFromFail(int line) {
+ GOOGLE_CHECK(false) << __FILE__ << ":" << line;
+}
+
+} // namespace
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Timestamp::kSecondsFieldNumber;
+const int Timestamp::kNanosFieldNumber;
+#endif // !_MSC_VER
+
+Timestamp::Timestamp()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Timestamp)
+}
+
+void Timestamp::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+Timestamp::Timestamp(const Timestamp& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Timestamp)
+}
+
+void Timestamp::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+ seconds_ = GOOGLE_LONGLONG(0);
+ nanos_ = 0;
+}
+
+Timestamp::~Timestamp() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Timestamp)
+ SharedDtor();
+}
+
+void Timestamp::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void Timestamp::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Timestamp::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Timestamp_descriptor_;
+}
+
+const Timestamp& Timestamp::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2ftimestamp_2eproto();
+ return *default_instance_;
+}
+
+Timestamp* Timestamp::default_instance_ = NULL;
+
+Timestamp* Timestamp::New(::google::protobuf::Arena* arena) const {
+ Timestamp* n = new Timestamp;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Timestamp::Clear() {
+#define ZR_HELPER_(f) reinterpret_cast<char*>(\
+ &reinterpret_cast<Timestamp*>(16)->f)
+
+#define ZR_(first, last) do {\
+ ::memset(&first, 0,\
+ ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
+} while (0)
+
+ ZR_(seconds_, nanos_);
+
+#undef ZR_HELPER_
+#undef ZR_
+
+}
+
+bool Timestamp::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Timestamp)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional int64 seconds = 1;
+ case 1: {
+ if (tag == 8) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+ input, &seconds_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(16)) goto parse_nanos;
+ break;
+ }
+
+ // optional int32 nanos = 2;
+ case 2: {
+ if (tag == 16) {
+ parse_nanos:
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &nanos_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Timestamp)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Timestamp)
+ return false;
+#undef DO_
+}
+
+void Timestamp::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Timestamp)
+ // optional int64 seconds = 1;
+ if (this->seconds() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->seconds(), output);
+ }
+
+ // optional int32 nanos = 2;
+ if (this->nanos() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->nanos(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Timestamp)
+}
+
+::google::protobuf::uint8* Timestamp::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Timestamp)
+ // optional int64 seconds = 1;
+ if (this->seconds() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->seconds(), target);
+ }
+
+ // optional int32 nanos = 2;
+ if (this->nanos() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->nanos(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Timestamp)
+ return target;
+}
+
+int Timestamp::ByteSize() const {
+ int total_size = 0;
+
+ // optional int64 seconds = 1;
+ if (this->seconds() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int64Size(
+ this->seconds());
+ }
+
+ // optional int32 nanos = 2;
+ if (this->nanos() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->nanos());
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Timestamp::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Timestamp* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Timestamp>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Timestamp::MergeFrom(const Timestamp& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.seconds() != 0) {
+ set_seconds(from.seconds());
+ }
+ if (from.nanos() != 0) {
+ set_nanos(from.nanos());
+ }
+}
+
+void Timestamp::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Timestamp::CopyFrom(const Timestamp& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Timestamp::IsInitialized() const {
+
+ return true;
+}
+
+void Timestamp::Swap(Timestamp* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Timestamp::InternalSwap(Timestamp* other) {
+ std::swap(seconds_, other->seconds_);
+ std::swap(nanos_, other->nanos_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Timestamp::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Timestamp_descriptor_;
+ metadata.reflection = Timestamp_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Timestamp
+
+// optional int64 seconds = 1;
+void Timestamp::clear_seconds() {
+ seconds_ = GOOGLE_LONGLONG(0);
+}
+ ::google::protobuf::int64 Timestamp::seconds() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Timestamp.seconds)
+ return seconds_;
+}
+ void Timestamp::set_seconds(::google::protobuf::int64 value) {
+
+ seconds_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Timestamp.seconds)
+}
+
+// optional int32 nanos = 2;
+void Timestamp::clear_nanos() {
+ nanos_ = 0;
+}
+ ::google::protobuf::int32 Timestamp::nanos() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Timestamp.nanos)
+ return nanos_;
+}
+ void Timestamp::set_nanos(::google::protobuf::int32 value) {
+
+ nanos_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Timestamp.nanos)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/google/protobuf/timestamp.pb.h b/src/google/protobuf/timestamp.pb.h
new file mode 100644
index 00000000..85fc1242
--- /dev/null
+++ b/src/google/protobuf/timestamp.pb.h
@@ -0,0 +1,172 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/timestamp.proto
+
+#ifndef PROTOBUF_google_2fprotobuf_2ftimestamp_2eproto__INCLUDED
+#define PROTOBUF_google_2fprotobuf_2ftimestamp_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3000000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+// Internal implementation detail -- do not call these.
+void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2ftimestamp_2eproto();
+void protobuf_AssignDesc_google_2fprotobuf_2ftimestamp_2eproto();
+void protobuf_ShutdownFile_google_2fprotobuf_2ftimestamp_2eproto();
+
+class Timestamp;
+
+// ===================================================================
+
+class LIBPROTOBUF_EXPORT Timestamp : public ::google::protobuf::Message {
+ public:
+ Timestamp();
+ virtual ~Timestamp();
+
+ Timestamp(const Timestamp& from);
+
+ inline Timestamp& operator=(const Timestamp& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Timestamp& default_instance();
+
+ void Swap(Timestamp* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Timestamp* New() const { return New(NULL); }
+
+ Timestamp* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Timestamp& from);
+ void MergeFrom(const Timestamp& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Timestamp* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional int64 seconds = 1;
+ void clear_seconds();
+ static const int kSecondsFieldNumber = 1;
+ ::google::protobuf::int64 seconds() const;
+ void set_seconds(::google::protobuf::int64 value);
+
+ // optional int32 nanos = 2;
+ void clear_nanos();
+ static const int kNanosFieldNumber = 2;
+ ::google::protobuf::int32 nanos() const;
+ void set_nanos(::google::protobuf::int32 value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Timestamp)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::int64 seconds_;
+ ::google::protobuf::int32 nanos_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2ftimestamp_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2ftimestamp_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2ftimestamp_2eproto();
+
+ void InitAsDefaultInstance();
+ static Timestamp* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// Timestamp
+
+// optional int64 seconds = 1;
+inline void Timestamp::clear_seconds() {
+ seconds_ = GOOGLE_LONGLONG(0);
+}
+inline ::google::protobuf::int64 Timestamp::seconds() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Timestamp.seconds)
+ return seconds_;
+}
+inline void Timestamp::set_seconds(::google::protobuf::int64 value) {
+
+ seconds_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Timestamp.seconds)
+}
+
+// optional int32 nanos = 2;
+inline void Timestamp::clear_nanos() {
+ nanos_ = 0;
+}
+inline ::google::protobuf::int32 Timestamp::nanos() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Timestamp.nanos)
+ return nanos_;
+}
+inline void Timestamp::set_nanos(::google::protobuf::int32 value) {
+
+ nanos_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Timestamp.nanos)
+}
+
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_google_2fprotobuf_2ftimestamp_2eproto__INCLUDED
diff --git a/src/google/protobuf/timestamp.proto b/src/google/protobuf/timestamp.proto
index 72e8914c..381ff997 100644
--- a/src/google/protobuf/timestamp.proto
+++ b/src/google/protobuf/timestamp.proto
@@ -35,6 +35,7 @@ option java_generate_equals_and_hash = true;
option java_multiple_files = true;
option java_outer_classname = "TimestampProto";
option java_package = "com.google.protobuf";
+option csharp_namespace = "Google.ProtocolBuffers";
option objc_class_prefix = "GPB";
diff --git a/src/google/protobuf/type.pb.cc b/src/google/protobuf/type.pb.cc
new file mode 100644
index 00000000..8b08909e
--- /dev/null
+++ b/src/google/protobuf/type.pb.cc
@@ -0,0 +1,2899 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/type.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "google/protobuf/type.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+namespace {
+
+const ::google::protobuf::Descriptor* Type_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Type_reflection_ = NULL;
+const ::google::protobuf::Descriptor* Field_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Field_reflection_ = NULL;
+const ::google::protobuf::EnumDescriptor* Field_Kind_descriptor_ = NULL;
+const ::google::protobuf::EnumDescriptor* Field_Cardinality_descriptor_ = NULL;
+const ::google::protobuf::Descriptor* Enum_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Enum_reflection_ = NULL;
+const ::google::protobuf::Descriptor* EnumValue_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ EnumValue_reflection_ = NULL;
+const ::google::protobuf::Descriptor* Option_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Option_reflection_ = NULL;
+
+} // namespace
+
+
+void protobuf_AssignDesc_google_2fprotobuf_2ftype_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "google/protobuf/type.proto");
+ GOOGLE_CHECK(file != NULL);
+ Type_descriptor_ = file->message_type(0);
+ static const int Type_offsets_[5] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Type, name_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Type, fields_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Type, oneofs_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Type, options_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Type, source_context_),
+ };
+ Type_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Type_descriptor_,
+ Type::default_instance_,
+ Type_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Type),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Type, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Type, _is_default_instance_));
+ Field_descriptor_ = file->message_type(1);
+ static const int Field_offsets_[8] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Field, kind_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Field, cardinality_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Field, number_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Field, name_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Field, type_url_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Field, oneof_index_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Field, packed_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Field, options_),
+ };
+ Field_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Field_descriptor_,
+ Field::default_instance_,
+ Field_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Field),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Field, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Field, _is_default_instance_));
+ Field_Kind_descriptor_ = Field_descriptor_->enum_type(0);
+ Field_Cardinality_descriptor_ = Field_descriptor_->enum_type(1);
+ Enum_descriptor_ = file->message_type(2);
+ static const int Enum_offsets_[4] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Enum, name_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Enum, enumvalue_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Enum, options_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Enum, source_context_),
+ };
+ Enum_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Enum_descriptor_,
+ Enum::default_instance_,
+ Enum_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Enum),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Enum, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Enum, _is_default_instance_));
+ EnumValue_descriptor_ = file->message_type(3);
+ static const int EnumValue_offsets_[3] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValue, name_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValue, number_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValue, options_),
+ };
+ EnumValue_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ EnumValue_descriptor_,
+ EnumValue::default_instance_,
+ EnumValue_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(EnumValue),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValue, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumValue, _is_default_instance_));
+ Option_descriptor_ = file->message_type(4);
+ static const int Option_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Option, name_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Option, value_),
+ };
+ Option_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Option_descriptor_,
+ Option::default_instance_,
+ Option_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Option),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Option, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Option, _is_default_instance_));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_google_2fprotobuf_2ftype_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Type_descriptor_, &Type::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Field_descriptor_, &Field::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Enum_descriptor_, &Enum::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ EnumValue_descriptor_, &EnumValue::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Option_descriptor_, &Option::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_google_2fprotobuf_2ftype_2eproto() {
+ delete Type::default_instance_;
+ delete Type_reflection_;
+ delete Field::default_instance_;
+ delete Field_reflection_;
+ delete Enum::default_instance_;
+ delete Enum_reflection_;
+ delete EnumValue::default_instance_;
+ delete EnumValue_reflection_;
+ delete Option::default_instance_;
+ delete Option_reflection_;
+}
+
+void protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::protobuf_AddDesc_google_2fprotobuf_2fany_2eproto();
+ ::google::protobuf::protobuf_AddDesc_google_2fprotobuf_2fsource_5fcontext_2eproto();
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\032google/protobuf/type.proto\022\017google.pro"
+ "tobuf\032\031google/protobuf/any.proto\032$google"
+ "/protobuf/source_context.proto\"\256\001\n\004Type\022"
+ "\014\n\004name\030\001 \001(\t\022&\n\006fields\030\002 \003(\0132\026.google.p"
+ "rotobuf.Field\022\016\n\006oneofs\030\003 \003(\t\022(\n\007options"
+ "\030\004 \003(\0132\027.google.protobuf.Option\0226\n\016sourc"
+ "e_context\030\005 \001(\0132\036.google.protobuf.Source"
+ "Context\"\233\005\n\005Field\022)\n\004kind\030\001 \001(\0162\033.google"
+ ".protobuf.Field.Kind\0227\n\013cardinality\030\002 \001("
+ "\0162\".google.protobuf.Field.Cardinality\022\016\n"
+ "\006number\030\003 \001(\005\022\014\n\004name\030\004 \001(\t\022\020\n\010type_url\030"
+ "\006 \001(\t\022\023\n\013oneof_index\030\007 \001(\005\022\016\n\006packed\030\010 \001"
+ "(\010\022(\n\007options\030\t \003(\0132\027.google.protobuf.Op"
+ "tion\"\270\002\n\004Kind\022\020\n\014TYPE_UNKNOWN\020\000\022\017\n\013TYPE_"
+ "DOUBLE\020\001\022\016\n\nTYPE_FLOAT\020\002\022\016\n\nTYPE_INT64\020\003"
+ "\022\017\n\013TYPE_UINT64\020\004\022\016\n\nTYPE_INT32\020\005\022\020\n\014TYP"
+ "E_FIXED64\020\006\022\020\n\014TYPE_FIXED32\020\007\022\r\n\tTYPE_BO"
+ "OL\020\010\022\017\n\013TYPE_STRING\020\t\022\020\n\014TYPE_MESSAGE\020\013\022"
+ "\016\n\nTYPE_BYTES\020\014\022\017\n\013TYPE_UINT32\020\r\022\r\n\tTYPE"
+ "_ENUM\020\016\022\021\n\rTYPE_SFIXED32\020\017\022\021\n\rTYPE_SFIXE"
+ "D64\020\020\022\017\n\013TYPE_SINT32\020\021\022\017\n\013TYPE_SINT64\020\022\""
+ "t\n\013Cardinality\022\027\n\023CARDINALITY_UNKNOWN\020\000\022"
+ "\030\n\024CARDINALITY_OPTIONAL\020\001\022\030\n\024CARDINALITY"
+ "_REQUIRED\020\002\022\030\n\024CARDINALITY_REPEATED\020\003\"\245\001"
+ "\n\004Enum\022\014\n\004name\030\001 \001(\t\022-\n\tenumvalue\030\002 \003(\0132"
+ "\032.google.protobuf.EnumValue\022(\n\007options\030\003"
+ " \003(\0132\027.google.protobuf.Option\0226\n\016source_"
+ "context\030\004 \001(\0132\036.google.protobuf.SourceCo"
+ "ntext\"S\n\tEnumValue\022\014\n\004name\030\001 \001(\t\022\016\n\006numb"
+ "er\030\002 \001(\005\022(\n\007options\030\003 \003(\0132\027.google.proto"
+ "buf.Option\";\n\006Option\022\014\n\004name\030\001 \001(\t\022#\n\005va"
+ "lue\030\002 \001(\0132\024.google.protobuf.AnyB(\n\023com.g"
+ "oogle.protobufB\tTypeProtoP\001\242\002\003GPBb\006proto"
+ "3", 1321);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "google/protobuf/type.proto", &protobuf_RegisterTypes);
+ Type::default_instance_ = new Type();
+ Field::default_instance_ = new Field();
+ Enum::default_instance_ = new Enum();
+ EnumValue::default_instance_ = new EnumValue();
+ Option::default_instance_ = new Option();
+ Type::default_instance_->InitAsDefaultInstance();
+ Field::default_instance_->InitAsDefaultInstance();
+ Enum::default_instance_->InitAsDefaultInstance();
+ EnumValue::default_instance_->InitAsDefaultInstance();
+ Option::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2ftype_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_google_2fprotobuf_2ftype_2eproto {
+ StaticDescriptorInitializer_google_2fprotobuf_2ftype_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ }
+} static_descriptor_initializer_google_2fprotobuf_2ftype_2eproto_;
+
+namespace {
+
+static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
+static void MergeFromFail(int line) {
+ GOOGLE_CHECK(false) << __FILE__ << ":" << line;
+}
+
+} // namespace
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Type::kNameFieldNumber;
+const int Type::kFieldsFieldNumber;
+const int Type::kOneofsFieldNumber;
+const int Type::kOptionsFieldNumber;
+const int Type::kSourceContextFieldNumber;
+#endif // !_MSC_VER
+
+Type::Type()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Type)
+}
+
+void Type::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+ source_context_ = const_cast< ::google::protobuf::SourceContext*>(&::google::protobuf::SourceContext::default_instance());
+}
+
+Type::Type(const Type& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Type)
+}
+
+void Type::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ source_context_ = NULL;
+}
+
+Type::~Type() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Type)
+ SharedDtor();
+}
+
+void Type::SharedDtor() {
+ name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ delete source_context_;
+ }
+}
+
+void Type::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Type::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Type_descriptor_;
+}
+
+const Type& Type::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ return *default_instance_;
+}
+
+Type* Type::default_instance_ = NULL;
+
+Type* Type::New(::google::protobuf::Arena* arena) const {
+ Type* n = new Type;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Type::Clear() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (GetArenaNoVirtual() == NULL && source_context_ != NULL) delete source_context_;
+ source_context_ = NULL;
+ fields_.Clear();
+ oneofs_.Clear();
+ options_.Clear();
+}
+
+bool Type::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Type)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional string name = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_name()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Type.name");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(18)) goto parse_fields;
+ break;
+ }
+
+ // repeated .google.protobuf.Field fields = 2;
+ case 2: {
+ if (tag == 18) {
+ parse_fields:
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_fields:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_fields()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(18)) goto parse_loop_fields;
+ input->UnsafeDecrementRecursionDepth();
+ if (input->ExpectTag(26)) goto parse_oneofs;
+ break;
+ }
+
+ // repeated string oneofs = 3;
+ case 3: {
+ if (tag == 26) {
+ parse_oneofs:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->add_oneofs()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->oneofs(this->oneofs_size() - 1).data(),
+ this->oneofs(this->oneofs_size() - 1).length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Type.oneofs");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(26)) goto parse_oneofs;
+ if (input->ExpectTag(34)) goto parse_options;
+ break;
+ }
+
+ // repeated .google.protobuf.Option options = 4;
+ case 4: {
+ if (tag == 34) {
+ parse_options:
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_options:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_options()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(34)) goto parse_loop_options;
+ input->UnsafeDecrementRecursionDepth();
+ if (input->ExpectTag(42)) goto parse_source_context;
+ break;
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 5;
+ case 5: {
+ if (tag == 42) {
+ parse_source_context:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ input, mutable_source_context()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Type)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Type)
+ return false;
+#undef DO_
+}
+
+void Type::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Type)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Type.name");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->name(), output);
+ }
+
+ // repeated .google.protobuf.Field fields = 2;
+ for (unsigned int i = 0, n = this->fields_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 2, this->fields(i), output);
+ }
+
+ // repeated string oneofs = 3;
+ for (int i = 0; i < this->oneofs_size(); i++) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->oneofs(i).data(), this->oneofs(i).length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Type.oneofs");
+ ::google::protobuf::internal::WireFormatLite::WriteString(
+ 3, this->oneofs(i), output);
+ }
+
+ // repeated .google.protobuf.Option options = 4;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 4, this->options(i), output);
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 5;
+ if (this->has_source_context()) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 5, *this->source_context_, output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Type)
+}
+
+::google::protobuf::uint8* Type::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Type)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Type.name");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->name(), target);
+ }
+
+ // repeated .google.protobuf.Field fields = 2;
+ for (unsigned int i = 0, n = this->fields_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 2, this->fields(i), target);
+ }
+
+ // repeated string oneofs = 3;
+ for (int i = 0; i < this->oneofs_size(); i++) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->oneofs(i).data(), this->oneofs(i).length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Type.oneofs");
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteStringToArray(3, this->oneofs(i), target);
+ }
+
+ // repeated .google.protobuf.Option options = 4;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 4, this->options(i), target);
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 5;
+ if (this->has_source_context()) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 5, *this->source_context_, target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Type)
+ return target;
+}
+
+int Type::ByteSize() const {
+ int total_size = 0;
+
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->name());
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 5;
+ if (this->has_source_context()) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ *this->source_context_);
+ }
+
+ // repeated .google.protobuf.Field fields = 2;
+ total_size += 1 * this->fields_size();
+ for (int i = 0; i < this->fields_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->fields(i));
+ }
+
+ // repeated string oneofs = 3;
+ total_size += 1 * this->oneofs_size();
+ for (int i = 0; i < this->oneofs_size(); i++) {
+ total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->oneofs(i));
+ }
+
+ // repeated .google.protobuf.Option options = 4;
+ total_size += 1 * this->options_size();
+ for (int i = 0; i < this->options_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->options(i));
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Type::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Type* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Type>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Type::MergeFrom(const Type& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ fields_.MergeFrom(from.fields_);
+ oneofs_.MergeFrom(from.oneofs_);
+ options_.MergeFrom(from.options_);
+ if (from.name().size() > 0) {
+
+ name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+ }
+ if (from.has_source_context()) {
+ mutable_source_context()->::google::protobuf::SourceContext::MergeFrom(from.source_context());
+ }
+}
+
+void Type::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Type::CopyFrom(const Type& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Type::IsInitialized() const {
+
+ return true;
+}
+
+void Type::Swap(Type* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Type::InternalSwap(Type* other) {
+ name_.Swap(&other->name_);
+ fields_.UnsafeArenaSwap(&other->fields_);
+ oneofs_.UnsafeArenaSwap(&other->oneofs_);
+ options_.UnsafeArenaSwap(&other->options_);
+ std::swap(source_context_, other->source_context_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Type::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Type_descriptor_;
+ metadata.reflection = Type_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Type
+
+// optional string name = 1;
+void Type::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Type::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Type.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Type::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Type.name)
+}
+ void Type::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Type.name)
+}
+ void Type::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Type.name)
+}
+ ::std::string* Type::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Type.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Type::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Type::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Type.name)
+}
+
+// repeated .google.protobuf.Field fields = 2;
+int Type::fields_size() const {
+ return fields_.size();
+}
+void Type::clear_fields() {
+ fields_.Clear();
+}
+ const ::google::protobuf::Field& Type::fields(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Type.fields)
+ return fields_.Get(index);
+}
+ ::google::protobuf::Field* Type::mutable_fields(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Type.fields)
+ return fields_.Mutable(index);
+}
+ ::google::protobuf::Field* Type::add_fields() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Type.fields)
+ return fields_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Field >&
+Type::fields() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Type.fields)
+ return fields_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Field >*
+Type::mutable_fields() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Type.fields)
+ return &fields_;
+}
+
+// repeated string oneofs = 3;
+int Type::oneofs_size() const {
+ return oneofs_.size();
+}
+void Type::clear_oneofs() {
+ oneofs_.Clear();
+}
+ const ::std::string& Type::oneofs(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Type.oneofs)
+ return oneofs_.Get(index);
+}
+ ::std::string* Type::mutable_oneofs(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Type.oneofs)
+ return oneofs_.Mutable(index);
+}
+ void Type::set_oneofs(int index, const ::std::string& value) {
+ // @@protoc_insertion_point(field_set:google.protobuf.Type.oneofs)
+ oneofs_.Mutable(index)->assign(value);
+}
+ void Type::set_oneofs(int index, const char* value) {
+ oneofs_.Mutable(index)->assign(value);
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Type.oneofs)
+}
+ void Type::set_oneofs(int index, const char* value, size_t size) {
+ oneofs_.Mutable(index)->assign(
+ reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Type.oneofs)
+}
+ ::std::string* Type::add_oneofs() {
+ return oneofs_.Add();
+}
+ void Type::add_oneofs(const ::std::string& value) {
+ oneofs_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add:google.protobuf.Type.oneofs)
+}
+ void Type::add_oneofs(const char* value) {
+ oneofs_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add_char:google.protobuf.Type.oneofs)
+}
+ void Type::add_oneofs(const char* value, size_t size) {
+ oneofs_.Add()->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_add_pointer:google.protobuf.Type.oneofs)
+}
+ const ::google::protobuf::RepeatedPtrField< ::std::string>&
+Type::oneofs() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Type.oneofs)
+ return oneofs_;
+}
+ ::google::protobuf::RepeatedPtrField< ::std::string>*
+Type::mutable_oneofs() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Type.oneofs)
+ return &oneofs_;
+}
+
+// repeated .google.protobuf.Option options = 4;
+int Type::options_size() const {
+ return options_.size();
+}
+void Type::clear_options() {
+ options_.Clear();
+}
+ const ::google::protobuf::Option& Type::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Type.options)
+ return options_.Get(index);
+}
+ ::google::protobuf::Option* Type::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Type.options)
+ return options_.Mutable(index);
+}
+ ::google::protobuf::Option* Type::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Type.options)
+ return options_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+Type::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Type.options)
+ return options_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+Type::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Type.options)
+ return &options_;
+}
+
+// optional .google.protobuf.SourceContext source_context = 5;
+bool Type::has_source_context() const {
+ return !_is_default_instance_ && source_context_ != NULL;
+}
+void Type::clear_source_context() {
+ if (GetArenaNoVirtual() == NULL && source_context_ != NULL) delete source_context_;
+ source_context_ = NULL;
+}
+ const ::google::protobuf::SourceContext& Type::source_context() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Type.source_context)
+ return source_context_ != NULL ? *source_context_ : *default_instance_->source_context_;
+}
+ ::google::protobuf::SourceContext* Type::mutable_source_context() {
+
+ if (source_context_ == NULL) {
+ source_context_ = new ::google::protobuf::SourceContext;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Type.source_context)
+ return source_context_;
+}
+ ::google::protobuf::SourceContext* Type::release_source_context() {
+
+ ::google::protobuf::SourceContext* temp = source_context_;
+ source_context_ = NULL;
+ return temp;
+}
+ void Type::set_allocated_source_context(::google::protobuf::SourceContext* source_context) {
+ delete source_context_;
+ source_context_ = source_context;
+ if (source_context) {
+
+ } else {
+
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Type.source_context)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+const ::google::protobuf::EnumDescriptor* Field_Kind_descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Field_Kind_descriptor_;
+}
+bool Field_Kind_IsValid(int value) {
+ switch(value) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ case 17:
+ case 18:
+ return true;
+ default:
+ return false;
+ }
+}
+
+#ifndef _MSC_VER
+const Field_Kind Field::TYPE_UNKNOWN;
+const Field_Kind Field::TYPE_DOUBLE;
+const Field_Kind Field::TYPE_FLOAT;
+const Field_Kind Field::TYPE_INT64;
+const Field_Kind Field::TYPE_UINT64;
+const Field_Kind Field::TYPE_INT32;
+const Field_Kind Field::TYPE_FIXED64;
+const Field_Kind Field::TYPE_FIXED32;
+const Field_Kind Field::TYPE_BOOL;
+const Field_Kind Field::TYPE_STRING;
+const Field_Kind Field::TYPE_MESSAGE;
+const Field_Kind Field::TYPE_BYTES;
+const Field_Kind Field::TYPE_UINT32;
+const Field_Kind Field::TYPE_ENUM;
+const Field_Kind Field::TYPE_SFIXED32;
+const Field_Kind Field::TYPE_SFIXED64;
+const Field_Kind Field::TYPE_SINT32;
+const Field_Kind Field::TYPE_SINT64;
+const Field_Kind Field::Kind_MIN;
+const Field_Kind Field::Kind_MAX;
+const int Field::Kind_ARRAYSIZE;
+#endif // _MSC_VER
+const ::google::protobuf::EnumDescriptor* Field_Cardinality_descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Field_Cardinality_descriptor_;
+}
+bool Field_Cardinality_IsValid(int value) {
+ switch(value) {
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ return true;
+ default:
+ return false;
+ }
+}
+
+#ifndef _MSC_VER
+const Field_Cardinality Field::CARDINALITY_UNKNOWN;
+const Field_Cardinality Field::CARDINALITY_OPTIONAL;
+const Field_Cardinality Field::CARDINALITY_REQUIRED;
+const Field_Cardinality Field::CARDINALITY_REPEATED;
+const Field_Cardinality Field::Cardinality_MIN;
+const Field_Cardinality Field::Cardinality_MAX;
+const int Field::Cardinality_ARRAYSIZE;
+#endif // _MSC_VER
+#ifndef _MSC_VER
+const int Field::kKindFieldNumber;
+const int Field::kCardinalityFieldNumber;
+const int Field::kNumberFieldNumber;
+const int Field::kNameFieldNumber;
+const int Field::kTypeUrlFieldNumber;
+const int Field::kOneofIndexFieldNumber;
+const int Field::kPackedFieldNumber;
+const int Field::kOptionsFieldNumber;
+#endif // !_MSC_VER
+
+Field::Field()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Field)
+}
+
+void Field::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+Field::Field(const Field& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Field)
+}
+
+void Field::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ kind_ = 0;
+ cardinality_ = 0;
+ number_ = 0;
+ name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ type_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ oneof_index_ = 0;
+ packed_ = false;
+}
+
+Field::~Field() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Field)
+ SharedDtor();
+}
+
+void Field::SharedDtor() {
+ name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ type_url_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ }
+}
+
+void Field::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Field::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Field_descriptor_;
+}
+
+const Field& Field::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ return *default_instance_;
+}
+
+Field* Field::default_instance_ = NULL;
+
+Field* Field::New(::google::protobuf::Arena* arena) const {
+ Field* n = new Field;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Field::Clear() {
+#define ZR_HELPER_(f) reinterpret_cast<char*>(\
+ &reinterpret_cast<Field*>(16)->f)
+
+#define ZR_(first, last) do {\
+ ::memset(&first, 0,\
+ ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
+} while (0)
+
+ ZR_(kind_, cardinality_);
+ ZR_(number_, oneof_index_);
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ packed_ = false;
+
+#undef ZR_HELPER_
+#undef ZR_
+
+ options_.Clear();
+}
+
+bool Field::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Field)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional .google.protobuf.Field.Kind kind = 1;
+ case 1: {
+ if (tag == 8) {
+ int value;
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+ input, &value)));
+ set_kind(static_cast< ::google::protobuf::Field_Kind >(value));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(16)) goto parse_cardinality;
+ break;
+ }
+
+ // optional .google.protobuf.Field.Cardinality cardinality = 2;
+ case 2: {
+ if (tag == 16) {
+ parse_cardinality:
+ int value;
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+ input, &value)));
+ set_cardinality(static_cast< ::google::protobuf::Field_Cardinality >(value));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(24)) goto parse_number;
+ break;
+ }
+
+ // optional int32 number = 3;
+ case 3: {
+ if (tag == 24) {
+ parse_number:
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &number_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(34)) goto parse_name;
+ break;
+ }
+
+ // optional string name = 4;
+ case 4: {
+ if (tag == 34) {
+ parse_name:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_name()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Field.name");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(50)) goto parse_type_url;
+ break;
+ }
+
+ // optional string type_url = 6;
+ case 6: {
+ if (tag == 50) {
+ parse_type_url:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_type_url()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->type_url().data(), this->type_url().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Field.type_url");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(56)) goto parse_oneof_index;
+ break;
+ }
+
+ // optional int32 oneof_index = 7;
+ case 7: {
+ if (tag == 56) {
+ parse_oneof_index:
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &oneof_index_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(64)) goto parse_packed;
+ break;
+ }
+
+ // optional bool packed = 8;
+ case 8: {
+ if (tag == 64) {
+ parse_packed:
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &packed_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(74)) goto parse_options;
+ break;
+ }
+
+ // repeated .google.protobuf.Option options = 9;
+ case 9: {
+ if (tag == 74) {
+ parse_options:
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_options:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_options()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(74)) goto parse_loop_options;
+ input->UnsafeDecrementRecursionDepth();
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Field)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Field)
+ return false;
+#undef DO_
+}
+
+void Field::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Field)
+ // optional .google.protobuf.Field.Kind kind = 1;
+ if (this->kind() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteEnum(
+ 1, this->kind(), output);
+ }
+
+ // optional .google.protobuf.Field.Cardinality cardinality = 2;
+ if (this->cardinality() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteEnum(
+ 2, this->cardinality(), output);
+ }
+
+ // optional int32 number = 3;
+ if (this->number() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->number(), output);
+ }
+
+ // optional string name = 4;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Field.name");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 4, this->name(), output);
+ }
+
+ // optional string type_url = 6;
+ if (this->type_url().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->type_url().data(), this->type_url().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Field.type_url");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 6, this->type_url(), output);
+ }
+
+ // optional int32 oneof_index = 7;
+ if (this->oneof_index() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(7, this->oneof_index(), output);
+ }
+
+ // optional bool packed = 8;
+ if (this->packed() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(8, this->packed(), output);
+ }
+
+ // repeated .google.protobuf.Option options = 9;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 9, this->options(i), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Field)
+}
+
+::google::protobuf::uint8* Field::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Field)
+ // optional .google.protobuf.Field.Kind kind = 1;
+ if (this->kind() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+ 1, this->kind(), target);
+ }
+
+ // optional .google.protobuf.Field.Cardinality cardinality = 2;
+ if (this->cardinality() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+ 2, this->cardinality(), target);
+ }
+
+ // optional int32 number = 3;
+ if (this->number() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->number(), target);
+ }
+
+ // optional string name = 4;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Field.name");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 4, this->name(), target);
+ }
+
+ // optional string type_url = 6;
+ if (this->type_url().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->type_url().data(), this->type_url().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Field.type_url");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 6, this->type_url(), target);
+ }
+
+ // optional int32 oneof_index = 7;
+ if (this->oneof_index() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(7, this->oneof_index(), target);
+ }
+
+ // optional bool packed = 8;
+ if (this->packed() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(8, this->packed(), target);
+ }
+
+ // repeated .google.protobuf.Option options = 9;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 9, this->options(i), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Field)
+ return target;
+}
+
+int Field::ByteSize() const {
+ int total_size = 0;
+
+ // optional .google.protobuf.Field.Kind kind = 1;
+ if (this->kind() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::EnumSize(this->kind());
+ }
+
+ // optional .google.protobuf.Field.Cardinality cardinality = 2;
+ if (this->cardinality() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::EnumSize(this->cardinality());
+ }
+
+ // optional int32 number = 3;
+ if (this->number() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->number());
+ }
+
+ // optional string name = 4;
+ if (this->name().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->name());
+ }
+
+ // optional string type_url = 6;
+ if (this->type_url().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->type_url());
+ }
+
+ // optional int32 oneof_index = 7;
+ if (this->oneof_index() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->oneof_index());
+ }
+
+ // optional bool packed = 8;
+ if (this->packed() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // repeated .google.protobuf.Option options = 9;
+ total_size += 1 * this->options_size();
+ for (int i = 0; i < this->options_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->options(i));
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Field::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Field* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Field>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Field::MergeFrom(const Field& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ options_.MergeFrom(from.options_);
+ if (from.kind() != 0) {
+ set_kind(from.kind());
+ }
+ if (from.cardinality() != 0) {
+ set_cardinality(from.cardinality());
+ }
+ if (from.number() != 0) {
+ set_number(from.number());
+ }
+ if (from.name().size() > 0) {
+
+ name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+ }
+ if (from.type_url().size() > 0) {
+
+ type_url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.type_url_);
+ }
+ if (from.oneof_index() != 0) {
+ set_oneof_index(from.oneof_index());
+ }
+ if (from.packed() != 0) {
+ set_packed(from.packed());
+ }
+}
+
+void Field::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Field::CopyFrom(const Field& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Field::IsInitialized() const {
+
+ return true;
+}
+
+void Field::Swap(Field* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Field::InternalSwap(Field* other) {
+ std::swap(kind_, other->kind_);
+ std::swap(cardinality_, other->cardinality_);
+ std::swap(number_, other->number_);
+ name_.Swap(&other->name_);
+ type_url_.Swap(&other->type_url_);
+ std::swap(oneof_index_, other->oneof_index_);
+ std::swap(packed_, other->packed_);
+ options_.UnsafeArenaSwap(&other->options_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Field::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Field_descriptor_;
+ metadata.reflection = Field_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Field
+
+// optional .google.protobuf.Field.Kind kind = 1;
+void Field::clear_kind() {
+ kind_ = 0;
+}
+ ::google::protobuf::Field_Kind Field::kind() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.kind)
+ return static_cast< ::google::protobuf::Field_Kind >(kind_);
+}
+ void Field::set_kind(::google::protobuf::Field_Kind value) {
+
+ kind_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.kind)
+}
+
+// optional .google.protobuf.Field.Cardinality cardinality = 2;
+void Field::clear_cardinality() {
+ cardinality_ = 0;
+}
+ ::google::protobuf::Field_Cardinality Field::cardinality() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.cardinality)
+ return static_cast< ::google::protobuf::Field_Cardinality >(cardinality_);
+}
+ void Field::set_cardinality(::google::protobuf::Field_Cardinality value) {
+
+ cardinality_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.cardinality)
+}
+
+// optional int32 number = 3;
+void Field::clear_number() {
+ number_ = 0;
+}
+ ::google::protobuf::int32 Field::number() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.number)
+ return number_;
+}
+ void Field::set_number(::google::protobuf::int32 value) {
+
+ number_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.number)
+}
+
+// optional string name = 4;
+void Field::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Field::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Field::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.name)
+}
+ void Field::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Field.name)
+}
+ void Field::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Field.name)
+}
+ ::std::string* Field::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Field.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Field::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Field::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Field.name)
+}
+
+// optional string type_url = 6;
+void Field::clear_type_url() {
+ type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Field::type_url() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.type_url)
+ return type_url_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Field::set_type_url(const ::std::string& value) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.type_url)
+}
+ void Field::set_type_url(const char* value) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Field.type_url)
+}
+ void Field::set_type_url(const char* value, size_t size) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Field.type_url)
+}
+ ::std::string* Field::mutable_type_url() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Field.type_url)
+ return type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Field::release_type_url() {
+
+ return type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Field::set_allocated_type_url(::std::string* type_url) {
+ if (type_url != NULL) {
+
+ } else {
+
+ }
+ type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_url);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Field.type_url)
+}
+
+// optional int32 oneof_index = 7;
+void Field::clear_oneof_index() {
+ oneof_index_ = 0;
+}
+ ::google::protobuf::int32 Field::oneof_index() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.oneof_index)
+ return oneof_index_;
+}
+ void Field::set_oneof_index(::google::protobuf::int32 value) {
+
+ oneof_index_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.oneof_index)
+}
+
+// optional bool packed = 8;
+void Field::clear_packed() {
+ packed_ = false;
+}
+ bool Field::packed() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.packed)
+ return packed_;
+}
+ void Field::set_packed(bool value) {
+
+ packed_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.packed)
+}
+
+// repeated .google.protobuf.Option options = 9;
+int Field::options_size() const {
+ return options_.size();
+}
+void Field::clear_options() {
+ options_.Clear();
+}
+ const ::google::protobuf::Option& Field::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.options)
+ return options_.Get(index);
+}
+ ::google::protobuf::Option* Field::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Field.options)
+ return options_.Mutable(index);
+}
+ ::google::protobuf::Option* Field::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Field.options)
+ return options_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+Field::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Field.options)
+ return options_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+Field::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Field.options)
+ return &options_;
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Enum::kNameFieldNumber;
+const int Enum::kEnumvalueFieldNumber;
+const int Enum::kOptionsFieldNumber;
+const int Enum::kSourceContextFieldNumber;
+#endif // !_MSC_VER
+
+Enum::Enum()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Enum)
+}
+
+void Enum::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+ source_context_ = const_cast< ::google::protobuf::SourceContext*>(&::google::protobuf::SourceContext::default_instance());
+}
+
+Enum::Enum(const Enum& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Enum)
+}
+
+void Enum::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ source_context_ = NULL;
+}
+
+Enum::~Enum() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Enum)
+ SharedDtor();
+}
+
+void Enum::SharedDtor() {
+ name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ delete source_context_;
+ }
+}
+
+void Enum::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Enum::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Enum_descriptor_;
+}
+
+const Enum& Enum::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ return *default_instance_;
+}
+
+Enum* Enum::default_instance_ = NULL;
+
+Enum* Enum::New(::google::protobuf::Arena* arena) const {
+ Enum* n = new Enum;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Enum::Clear() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (GetArenaNoVirtual() == NULL && source_context_ != NULL) delete source_context_;
+ source_context_ = NULL;
+ enumvalue_.Clear();
+ options_.Clear();
+}
+
+bool Enum::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Enum)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional string name = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_name()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Enum.name");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(18)) goto parse_enumvalue;
+ break;
+ }
+
+ // repeated .google.protobuf.EnumValue enumvalue = 2;
+ case 2: {
+ if (tag == 18) {
+ parse_enumvalue:
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_enumvalue:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_enumvalue()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(18)) goto parse_loop_enumvalue;
+ if (input->ExpectTag(26)) goto parse_loop_options;
+ input->UnsafeDecrementRecursionDepth();
+ break;
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ case 3: {
+ if (tag == 26) {
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_options:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_options()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(26)) goto parse_loop_options;
+ input->UnsafeDecrementRecursionDepth();
+ if (input->ExpectTag(34)) goto parse_source_context;
+ break;
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 4;
+ case 4: {
+ if (tag == 34) {
+ parse_source_context:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ input, mutable_source_context()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Enum)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Enum)
+ return false;
+#undef DO_
+}
+
+void Enum::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Enum)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Enum.name");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->name(), output);
+ }
+
+ // repeated .google.protobuf.EnumValue enumvalue = 2;
+ for (unsigned int i = 0, n = this->enumvalue_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 2, this->enumvalue(i), output);
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 3, this->options(i), output);
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 4;
+ if (this->has_source_context()) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 4, *this->source_context_, output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Enum)
+}
+
+::google::protobuf::uint8* Enum::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Enum)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Enum.name");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->name(), target);
+ }
+
+ // repeated .google.protobuf.EnumValue enumvalue = 2;
+ for (unsigned int i = 0, n = this->enumvalue_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 2, this->enumvalue(i), target);
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 3, this->options(i), target);
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 4;
+ if (this->has_source_context()) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 4, *this->source_context_, target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Enum)
+ return target;
+}
+
+int Enum::ByteSize() const {
+ int total_size = 0;
+
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->name());
+ }
+
+ // optional .google.protobuf.SourceContext source_context = 4;
+ if (this->has_source_context()) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ *this->source_context_);
+ }
+
+ // repeated .google.protobuf.EnumValue enumvalue = 2;
+ total_size += 1 * this->enumvalue_size();
+ for (int i = 0; i < this->enumvalue_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->enumvalue(i));
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ total_size += 1 * this->options_size();
+ for (int i = 0; i < this->options_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->options(i));
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Enum::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Enum* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Enum>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Enum::MergeFrom(const Enum& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ enumvalue_.MergeFrom(from.enumvalue_);
+ options_.MergeFrom(from.options_);
+ if (from.name().size() > 0) {
+
+ name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+ }
+ if (from.has_source_context()) {
+ mutable_source_context()->::google::protobuf::SourceContext::MergeFrom(from.source_context());
+ }
+}
+
+void Enum::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Enum::CopyFrom(const Enum& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Enum::IsInitialized() const {
+
+ return true;
+}
+
+void Enum::Swap(Enum* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Enum::InternalSwap(Enum* other) {
+ name_.Swap(&other->name_);
+ enumvalue_.UnsafeArenaSwap(&other->enumvalue_);
+ options_.UnsafeArenaSwap(&other->options_);
+ std::swap(source_context_, other->source_context_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Enum::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Enum_descriptor_;
+ metadata.reflection = Enum_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Enum
+
+// optional string name = 1;
+void Enum::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Enum::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Enum.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Enum::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Enum.name)
+}
+ void Enum::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Enum.name)
+}
+ void Enum::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Enum.name)
+}
+ ::std::string* Enum::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Enum.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Enum::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Enum::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Enum.name)
+}
+
+// repeated .google.protobuf.EnumValue enumvalue = 2;
+int Enum::enumvalue_size() const {
+ return enumvalue_.size();
+}
+void Enum::clear_enumvalue() {
+ enumvalue_.Clear();
+}
+ const ::google::protobuf::EnumValue& Enum::enumvalue(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Enum.enumvalue)
+ return enumvalue_.Get(index);
+}
+ ::google::protobuf::EnumValue* Enum::mutable_enumvalue(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Enum.enumvalue)
+ return enumvalue_.Mutable(index);
+}
+ ::google::protobuf::EnumValue* Enum::add_enumvalue() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Enum.enumvalue)
+ return enumvalue_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValue >&
+Enum::enumvalue() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Enum.enumvalue)
+ return enumvalue_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValue >*
+Enum::mutable_enumvalue() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Enum.enumvalue)
+ return &enumvalue_;
+}
+
+// repeated .google.protobuf.Option options = 3;
+int Enum::options_size() const {
+ return options_.size();
+}
+void Enum::clear_options() {
+ options_.Clear();
+}
+ const ::google::protobuf::Option& Enum::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Enum.options)
+ return options_.Get(index);
+}
+ ::google::protobuf::Option* Enum::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Enum.options)
+ return options_.Mutable(index);
+}
+ ::google::protobuf::Option* Enum::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Enum.options)
+ return options_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+Enum::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Enum.options)
+ return options_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+Enum::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Enum.options)
+ return &options_;
+}
+
+// optional .google.protobuf.SourceContext source_context = 4;
+bool Enum::has_source_context() const {
+ return !_is_default_instance_ && source_context_ != NULL;
+}
+void Enum::clear_source_context() {
+ if (GetArenaNoVirtual() == NULL && source_context_ != NULL) delete source_context_;
+ source_context_ = NULL;
+}
+ const ::google::protobuf::SourceContext& Enum::source_context() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Enum.source_context)
+ return source_context_ != NULL ? *source_context_ : *default_instance_->source_context_;
+}
+ ::google::protobuf::SourceContext* Enum::mutable_source_context() {
+
+ if (source_context_ == NULL) {
+ source_context_ = new ::google::protobuf::SourceContext;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Enum.source_context)
+ return source_context_;
+}
+ ::google::protobuf::SourceContext* Enum::release_source_context() {
+
+ ::google::protobuf::SourceContext* temp = source_context_;
+ source_context_ = NULL;
+ return temp;
+}
+ void Enum::set_allocated_source_context(::google::protobuf::SourceContext* source_context) {
+ delete source_context_;
+ source_context_ = source_context;
+ if (source_context) {
+
+ } else {
+
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Enum.source_context)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int EnumValue::kNameFieldNumber;
+const int EnumValue::kNumberFieldNumber;
+const int EnumValue::kOptionsFieldNumber;
+#endif // !_MSC_VER
+
+EnumValue::EnumValue()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.EnumValue)
+}
+
+void EnumValue::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+EnumValue::EnumValue(const EnumValue& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.EnumValue)
+}
+
+void EnumValue::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ number_ = 0;
+}
+
+EnumValue::~EnumValue() {
+ // @@protoc_insertion_point(destructor:google.protobuf.EnumValue)
+ SharedDtor();
+}
+
+void EnumValue::SharedDtor() {
+ name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ }
+}
+
+void EnumValue::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* EnumValue::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return EnumValue_descriptor_;
+}
+
+const EnumValue& EnumValue::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ return *default_instance_;
+}
+
+EnumValue* EnumValue::default_instance_ = NULL;
+
+EnumValue* EnumValue::New(::google::protobuf::Arena* arena) const {
+ EnumValue* n = new EnumValue;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void EnumValue::Clear() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ number_ = 0;
+ options_.Clear();
+}
+
+bool EnumValue::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.EnumValue)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional string name = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_name()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.EnumValue.name");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(16)) goto parse_number;
+ break;
+ }
+
+ // optional int32 number = 2;
+ case 2: {
+ if (tag == 16) {
+ parse_number:
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &number_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(26)) goto parse_options;
+ break;
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ case 3: {
+ if (tag == 26) {
+ parse_options:
+ DO_(input->IncrementRecursionDepth());
+ parse_loop_options:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ input, add_options()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(26)) goto parse_loop_options;
+ input->UnsafeDecrementRecursionDepth();
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.EnumValue)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.EnumValue)
+ return false;
+#undef DO_
+}
+
+void EnumValue::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.EnumValue)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.EnumValue.name");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->name(), output);
+ }
+
+ // optional int32 number = 2;
+ if (this->number() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->number(), output);
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 3, this->options(i), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.EnumValue)
+}
+
+::google::protobuf::uint8* EnumValue::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.EnumValue)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.EnumValue.name");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->name(), target);
+ }
+
+ // optional int32 number = 2;
+ if (this->number() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->number(), target);
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ for (unsigned int i = 0, n = this->options_size(); i < n; i++) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 3, this->options(i), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.EnumValue)
+ return target;
+}
+
+int EnumValue::ByteSize() const {
+ int total_size = 0;
+
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->name());
+ }
+
+ // optional int32 number = 2;
+ if (this->number() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->number());
+ }
+
+ // repeated .google.protobuf.Option options = 3;
+ total_size += 1 * this->options_size();
+ for (int i = 0; i < this->options_size(); i++) {
+ total_size +=
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ this->options(i));
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void EnumValue::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const EnumValue* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const EnumValue>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void EnumValue::MergeFrom(const EnumValue& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ options_.MergeFrom(from.options_);
+ if (from.name().size() > 0) {
+
+ name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+ }
+ if (from.number() != 0) {
+ set_number(from.number());
+ }
+}
+
+void EnumValue::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void EnumValue::CopyFrom(const EnumValue& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool EnumValue::IsInitialized() const {
+
+ return true;
+}
+
+void EnumValue::Swap(EnumValue* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void EnumValue::InternalSwap(EnumValue* other) {
+ name_.Swap(&other->name_);
+ std::swap(number_, other->number_);
+ options_.UnsafeArenaSwap(&other->options_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata EnumValue::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = EnumValue_descriptor_;
+ metadata.reflection = EnumValue_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// EnumValue
+
+// optional string name = 1;
+void EnumValue::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& EnumValue::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.EnumValue.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void EnumValue::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.EnumValue.name)
+}
+ void EnumValue::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.EnumValue.name)
+}
+ void EnumValue::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.EnumValue.name)
+}
+ ::std::string* EnumValue::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.EnumValue.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* EnumValue::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void EnumValue::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.EnumValue.name)
+}
+
+// optional int32 number = 2;
+void EnumValue::clear_number() {
+ number_ = 0;
+}
+ ::google::protobuf::int32 EnumValue::number() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.EnumValue.number)
+ return number_;
+}
+ void EnumValue::set_number(::google::protobuf::int32 value) {
+
+ number_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.EnumValue.number)
+}
+
+// repeated .google.protobuf.Option options = 3;
+int EnumValue::options_size() const {
+ return options_.size();
+}
+void EnumValue::clear_options() {
+ options_.Clear();
+}
+ const ::google::protobuf::Option& EnumValue::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.EnumValue.options)
+ return options_.Get(index);
+}
+ ::google::protobuf::Option* EnumValue::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.EnumValue.options)
+ return options_.Mutable(index);
+}
+ ::google::protobuf::Option* EnumValue::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.EnumValue.options)
+ return options_.Add();
+}
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+EnumValue::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.EnumValue.options)
+ return options_;
+}
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+EnumValue::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.EnumValue.options)
+ return &options_;
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Option::kNameFieldNumber;
+const int Option::kValueFieldNumber;
+#endif // !_MSC_VER
+
+Option::Option()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Option)
+}
+
+void Option::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+ value_ = const_cast< ::google::protobuf::Any*>(&::google::protobuf::Any::default_instance());
+}
+
+Option::Option(const Option& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Option)
+}
+
+void Option::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ value_ = NULL;
+}
+
+Option::~Option() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Option)
+ SharedDtor();
+}
+
+void Option::SharedDtor() {
+ name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ delete value_;
+ }
+}
+
+void Option::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Option::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Option_descriptor_;
+}
+
+const Option& Option::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ return *default_instance_;
+}
+
+Option* Option::default_instance_ = NULL;
+
+Option* Option::New(::google::protobuf::Arena* arena) const {
+ Option* n = new Option;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Option::Clear() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (GetArenaNoVirtual() == NULL && value_ != NULL) delete value_;
+ value_ = NULL;
+}
+
+bool Option::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Option)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional string name = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_name()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.Option.name");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectTag(18)) goto parse_value;
+ break;
+ }
+
+ // optional .google.protobuf.Any value = 2;
+ case 2: {
+ if (tag == 18) {
+ parse_value:
+ DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+ input, mutable_value()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Option)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Option)
+ return false;
+#undef DO_
+}
+
+void Option::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Option)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Option.name");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->name(), output);
+ }
+
+ // optional .google.protobuf.Any value = 2;
+ if (this->has_value()) {
+ ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+ 2, *this->value_, output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Option)
+}
+
+::google::protobuf::uint8* Option::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Option)
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->name().data(), this->name().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.Option.name");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->name(), target);
+ }
+
+ // optional .google.protobuf.Any value = 2;
+ if (this->has_value()) {
+ target = ::google::protobuf::internal::WireFormatLite::
+ WriteMessageNoVirtualToArray(
+ 2, *this->value_, target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Option)
+ return target;
+}
+
+int Option::ByteSize() const {
+ int total_size = 0;
+
+ // optional string name = 1;
+ if (this->name().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->name());
+ }
+
+ // optional .google.protobuf.Any value = 2;
+ if (this->has_value()) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+ *this->value_);
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Option::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Option* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Option>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Option::MergeFrom(const Option& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.name().size() > 0) {
+
+ name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+ }
+ if (from.has_value()) {
+ mutable_value()->::google::protobuf::Any::MergeFrom(from.value());
+ }
+}
+
+void Option::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Option::CopyFrom(const Option& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Option::IsInitialized() const {
+
+ return true;
+}
+
+void Option::Swap(Option* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Option::InternalSwap(Option* other) {
+ name_.Swap(&other->name_);
+ std::swap(value_, other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Option::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Option_descriptor_;
+ metadata.reflection = Option_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Option
+
+// optional string name = 1;
+void Option::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& Option::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Option.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Option::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Option.name)
+}
+ void Option::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Option.name)
+}
+ void Option::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Option.name)
+}
+ ::std::string* Option::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Option.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* Option::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void Option::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Option.name)
+}
+
+// optional .google.protobuf.Any value = 2;
+bool Option::has_value() const {
+ return !_is_default_instance_ && value_ != NULL;
+}
+void Option::clear_value() {
+ if (GetArenaNoVirtual() == NULL && value_ != NULL) delete value_;
+ value_ = NULL;
+}
+ const ::google::protobuf::Any& Option::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Option.value)
+ return value_ != NULL ? *value_ : *default_instance_->value_;
+}
+ ::google::protobuf::Any* Option::mutable_value() {
+
+ if (value_ == NULL) {
+ value_ = new ::google::protobuf::Any;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Option.value)
+ return value_;
+}
+ ::google::protobuf::Any* Option::release_value() {
+
+ ::google::protobuf::Any* temp = value_;
+ value_ = NULL;
+ return temp;
+}
+ void Option::set_allocated_value(::google::protobuf::Any* value) {
+ delete value_;
+ value_ = value;
+ if (value) {
+
+ } else {
+
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Option.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/google/protobuf/type.pb.h b/src/google/protobuf/type.pb.h
new file mode 100644
index 00000000..c9952efa
--- /dev/null
+++ b/src/google/protobuf/type.pb.h
@@ -0,0 +1,1516 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/type.proto
+
+#ifndef PROTOBUF_google_2fprotobuf_2ftype_2eproto__INCLUDED
+#define PROTOBUF_google_2fprotobuf_2ftype_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3000000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/generated_enum_reflection.h>
+#include <google/protobuf/unknown_field_set.h>
+#include "google/protobuf/any.pb.h"
+#include "google/protobuf/source_context.pb.h"
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+// Internal implementation detail -- do not call these.
+void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+void protobuf_AssignDesc_google_2fprotobuf_2ftype_2eproto();
+void protobuf_ShutdownFile_google_2fprotobuf_2ftype_2eproto();
+
+class Type;
+class Field;
+class Enum;
+class EnumValue;
+class Option;
+
+enum Field_Kind {
+ Field_Kind_TYPE_UNKNOWN = 0,
+ Field_Kind_TYPE_DOUBLE = 1,
+ Field_Kind_TYPE_FLOAT = 2,
+ Field_Kind_TYPE_INT64 = 3,
+ Field_Kind_TYPE_UINT64 = 4,
+ Field_Kind_TYPE_INT32 = 5,
+ Field_Kind_TYPE_FIXED64 = 6,
+ Field_Kind_TYPE_FIXED32 = 7,
+ Field_Kind_TYPE_BOOL = 8,
+ Field_Kind_TYPE_STRING = 9,
+ Field_Kind_TYPE_MESSAGE = 11,
+ Field_Kind_TYPE_BYTES = 12,
+ Field_Kind_TYPE_UINT32 = 13,
+ Field_Kind_TYPE_ENUM = 14,
+ Field_Kind_TYPE_SFIXED32 = 15,
+ Field_Kind_TYPE_SFIXED64 = 16,
+ Field_Kind_TYPE_SINT32 = 17,
+ Field_Kind_TYPE_SINT64 = 18,
+ Field_Kind_Field_Kind_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
+ Field_Kind_Field_Kind_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
+};
+LIBPROTOBUF_EXPORT bool Field_Kind_IsValid(int value);
+const Field_Kind Field_Kind_Kind_MIN = Field_Kind_TYPE_UNKNOWN;
+const Field_Kind Field_Kind_Kind_MAX = Field_Kind_TYPE_SINT64;
+const int Field_Kind_Kind_ARRAYSIZE = Field_Kind_Kind_MAX + 1;
+
+LIBPROTOBUF_EXPORT const ::google::protobuf::EnumDescriptor* Field_Kind_descriptor();
+inline const ::std::string& Field_Kind_Name(Field_Kind value) {
+ return ::google::protobuf::internal::NameOfEnum(
+ Field_Kind_descriptor(), value);
+}
+inline bool Field_Kind_Parse(
+ const ::std::string& name, Field_Kind* value) {
+ return ::google::protobuf::internal::ParseNamedEnum<Field_Kind>(
+ Field_Kind_descriptor(), name, value);
+}
+enum Field_Cardinality {
+ Field_Cardinality_CARDINALITY_UNKNOWN = 0,
+ Field_Cardinality_CARDINALITY_OPTIONAL = 1,
+ Field_Cardinality_CARDINALITY_REQUIRED = 2,
+ Field_Cardinality_CARDINALITY_REPEATED = 3,
+ Field_Cardinality_Field_Cardinality_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
+ Field_Cardinality_Field_Cardinality_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
+};
+LIBPROTOBUF_EXPORT bool Field_Cardinality_IsValid(int value);
+const Field_Cardinality Field_Cardinality_Cardinality_MIN = Field_Cardinality_CARDINALITY_UNKNOWN;
+const Field_Cardinality Field_Cardinality_Cardinality_MAX = Field_Cardinality_CARDINALITY_REPEATED;
+const int Field_Cardinality_Cardinality_ARRAYSIZE = Field_Cardinality_Cardinality_MAX + 1;
+
+LIBPROTOBUF_EXPORT const ::google::protobuf::EnumDescriptor* Field_Cardinality_descriptor();
+inline const ::std::string& Field_Cardinality_Name(Field_Cardinality value) {
+ return ::google::protobuf::internal::NameOfEnum(
+ Field_Cardinality_descriptor(), value);
+}
+inline bool Field_Cardinality_Parse(
+ const ::std::string& name, Field_Cardinality* value) {
+ return ::google::protobuf::internal::ParseNamedEnum<Field_Cardinality>(
+ Field_Cardinality_descriptor(), name, value);
+}
+// ===================================================================
+
+class LIBPROTOBUF_EXPORT Type : public ::google::protobuf::Message {
+ public:
+ Type();
+ virtual ~Type();
+
+ Type(const Type& from);
+
+ inline Type& operator=(const Type& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Type& default_instance();
+
+ void Swap(Type* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Type* New() const { return New(NULL); }
+
+ Type* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Type& from);
+ void MergeFrom(const Type& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Type* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string name = 1;
+ void clear_name();
+ static const int kNameFieldNumber = 1;
+ const ::std::string& name() const;
+ void set_name(const ::std::string& value);
+ void set_name(const char* value);
+ void set_name(const char* value, size_t size);
+ ::std::string* mutable_name();
+ ::std::string* release_name();
+ void set_allocated_name(::std::string* name);
+
+ // repeated .google.protobuf.Field fields = 2;
+ int fields_size() const;
+ void clear_fields();
+ static const int kFieldsFieldNumber = 2;
+ const ::google::protobuf::Field& fields(int index) const;
+ ::google::protobuf::Field* mutable_fields(int index);
+ ::google::protobuf::Field* add_fields();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Field >&
+ fields() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Field >*
+ mutable_fields();
+
+ // repeated string oneofs = 3;
+ int oneofs_size() const;
+ void clear_oneofs();
+ static const int kOneofsFieldNumber = 3;
+ const ::std::string& oneofs(int index) const;
+ ::std::string* mutable_oneofs(int index);
+ void set_oneofs(int index, const ::std::string& value);
+ void set_oneofs(int index, const char* value);
+ void set_oneofs(int index, const char* value, size_t size);
+ ::std::string* add_oneofs();
+ void add_oneofs(const ::std::string& value);
+ void add_oneofs(const char* value);
+ void add_oneofs(const char* value, size_t size);
+ const ::google::protobuf::RepeatedPtrField< ::std::string>& oneofs() const;
+ ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_oneofs();
+
+ // repeated .google.protobuf.Option options = 4;
+ int options_size() const;
+ void clear_options();
+ static const int kOptionsFieldNumber = 4;
+ const ::google::protobuf::Option& options(int index) const;
+ ::google::protobuf::Option* mutable_options(int index);
+ ::google::protobuf::Option* add_options();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+ options() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+ mutable_options();
+
+ // optional .google.protobuf.SourceContext source_context = 5;
+ bool has_source_context() const;
+ void clear_source_context();
+ static const int kSourceContextFieldNumber = 5;
+ const ::google::protobuf::SourceContext& source_context() const;
+ ::google::protobuf::SourceContext* mutable_source_context();
+ ::google::protobuf::SourceContext* release_source_context();
+ void set_allocated_source_context(::google::protobuf::SourceContext* source_context);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Type)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::internal::ArenaStringPtr name_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Field > fields_;
+ ::google::protobuf::RepeatedPtrField< ::std::string> oneofs_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option > options_;
+ ::google::protobuf::SourceContext* source_context_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2ftype_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2ftype_2eproto();
+
+ void InitAsDefaultInstance();
+ static Type* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT Field : public ::google::protobuf::Message {
+ public:
+ Field();
+ virtual ~Field();
+
+ Field(const Field& from);
+
+ inline Field& operator=(const Field& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Field& default_instance();
+
+ void Swap(Field* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Field* New() const { return New(NULL); }
+
+ Field* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Field& from);
+ void MergeFrom(const Field& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Field* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ typedef Field_Kind Kind;
+ static const Kind TYPE_UNKNOWN = Field_Kind_TYPE_UNKNOWN;
+ static const Kind TYPE_DOUBLE = Field_Kind_TYPE_DOUBLE;
+ static const Kind TYPE_FLOAT = Field_Kind_TYPE_FLOAT;
+ static const Kind TYPE_INT64 = Field_Kind_TYPE_INT64;
+ static const Kind TYPE_UINT64 = Field_Kind_TYPE_UINT64;
+ static const Kind TYPE_INT32 = Field_Kind_TYPE_INT32;
+ static const Kind TYPE_FIXED64 = Field_Kind_TYPE_FIXED64;
+ static const Kind TYPE_FIXED32 = Field_Kind_TYPE_FIXED32;
+ static const Kind TYPE_BOOL = Field_Kind_TYPE_BOOL;
+ static const Kind TYPE_STRING = Field_Kind_TYPE_STRING;
+ static const Kind TYPE_MESSAGE = Field_Kind_TYPE_MESSAGE;
+ static const Kind TYPE_BYTES = Field_Kind_TYPE_BYTES;
+ static const Kind TYPE_UINT32 = Field_Kind_TYPE_UINT32;
+ static const Kind TYPE_ENUM = Field_Kind_TYPE_ENUM;
+ static const Kind TYPE_SFIXED32 = Field_Kind_TYPE_SFIXED32;
+ static const Kind TYPE_SFIXED64 = Field_Kind_TYPE_SFIXED64;
+ static const Kind TYPE_SINT32 = Field_Kind_TYPE_SINT32;
+ static const Kind TYPE_SINT64 = Field_Kind_TYPE_SINT64;
+ static inline bool Kind_IsValid(int value) {
+ return Field_Kind_IsValid(value);
+ }
+ static const Kind Kind_MIN =
+ Field_Kind_Kind_MIN;
+ static const Kind Kind_MAX =
+ Field_Kind_Kind_MAX;
+ static const int Kind_ARRAYSIZE =
+ Field_Kind_Kind_ARRAYSIZE;
+ static inline const ::google::protobuf::EnumDescriptor*
+ Kind_descriptor() {
+ return Field_Kind_descriptor();
+ }
+ static inline const ::std::string& Kind_Name(Kind value) {
+ return Field_Kind_Name(value);
+ }
+ static inline bool Kind_Parse(const ::std::string& name,
+ Kind* value) {
+ return Field_Kind_Parse(name, value);
+ }
+
+ typedef Field_Cardinality Cardinality;
+ static const Cardinality CARDINALITY_UNKNOWN = Field_Cardinality_CARDINALITY_UNKNOWN;
+ static const Cardinality CARDINALITY_OPTIONAL = Field_Cardinality_CARDINALITY_OPTIONAL;
+ static const Cardinality CARDINALITY_REQUIRED = Field_Cardinality_CARDINALITY_REQUIRED;
+ static const Cardinality CARDINALITY_REPEATED = Field_Cardinality_CARDINALITY_REPEATED;
+ static inline bool Cardinality_IsValid(int value) {
+ return Field_Cardinality_IsValid(value);
+ }
+ static const Cardinality Cardinality_MIN =
+ Field_Cardinality_Cardinality_MIN;
+ static const Cardinality Cardinality_MAX =
+ Field_Cardinality_Cardinality_MAX;
+ static const int Cardinality_ARRAYSIZE =
+ Field_Cardinality_Cardinality_ARRAYSIZE;
+ static inline const ::google::protobuf::EnumDescriptor*
+ Cardinality_descriptor() {
+ return Field_Cardinality_descriptor();
+ }
+ static inline const ::std::string& Cardinality_Name(Cardinality value) {
+ return Field_Cardinality_Name(value);
+ }
+ static inline bool Cardinality_Parse(const ::std::string& name,
+ Cardinality* value) {
+ return Field_Cardinality_Parse(name, value);
+ }
+
+ // accessors -------------------------------------------------------
+
+ // optional .google.protobuf.Field.Kind kind = 1;
+ void clear_kind();
+ static const int kKindFieldNumber = 1;
+ ::google::protobuf::Field_Kind kind() const;
+ void set_kind(::google::protobuf::Field_Kind value);
+
+ // optional .google.protobuf.Field.Cardinality cardinality = 2;
+ void clear_cardinality();
+ static const int kCardinalityFieldNumber = 2;
+ ::google::protobuf::Field_Cardinality cardinality() const;
+ void set_cardinality(::google::protobuf::Field_Cardinality value);
+
+ // optional int32 number = 3;
+ void clear_number();
+ static const int kNumberFieldNumber = 3;
+ ::google::protobuf::int32 number() const;
+ void set_number(::google::protobuf::int32 value);
+
+ // optional string name = 4;
+ void clear_name();
+ static const int kNameFieldNumber = 4;
+ const ::std::string& name() const;
+ void set_name(const ::std::string& value);
+ void set_name(const char* value);
+ void set_name(const char* value, size_t size);
+ ::std::string* mutable_name();
+ ::std::string* release_name();
+ void set_allocated_name(::std::string* name);
+
+ // optional string type_url = 6;
+ void clear_type_url();
+ static const int kTypeUrlFieldNumber = 6;
+ const ::std::string& type_url() const;
+ void set_type_url(const ::std::string& value);
+ void set_type_url(const char* value);
+ void set_type_url(const char* value, size_t size);
+ ::std::string* mutable_type_url();
+ ::std::string* release_type_url();
+ void set_allocated_type_url(::std::string* type_url);
+
+ // optional int32 oneof_index = 7;
+ void clear_oneof_index();
+ static const int kOneofIndexFieldNumber = 7;
+ ::google::protobuf::int32 oneof_index() const;
+ void set_oneof_index(::google::protobuf::int32 value);
+
+ // optional bool packed = 8;
+ void clear_packed();
+ static const int kPackedFieldNumber = 8;
+ bool packed() const;
+ void set_packed(bool value);
+
+ // repeated .google.protobuf.Option options = 9;
+ int options_size() const;
+ void clear_options();
+ static const int kOptionsFieldNumber = 9;
+ const ::google::protobuf::Option& options(int index) const;
+ ::google::protobuf::Option* mutable_options(int index);
+ ::google::protobuf::Option* add_options();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+ options() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+ mutable_options();
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Field)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ int kind_;
+ int cardinality_;
+ ::google::protobuf::internal::ArenaStringPtr name_;
+ ::google::protobuf::int32 number_;
+ ::google::protobuf::int32 oneof_index_;
+ ::google::protobuf::internal::ArenaStringPtr type_url_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option > options_;
+ bool packed_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2ftype_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2ftype_2eproto();
+
+ void InitAsDefaultInstance();
+ static Field* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT Enum : public ::google::protobuf::Message {
+ public:
+ Enum();
+ virtual ~Enum();
+
+ Enum(const Enum& from);
+
+ inline Enum& operator=(const Enum& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Enum& default_instance();
+
+ void Swap(Enum* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Enum* New() const { return New(NULL); }
+
+ Enum* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Enum& from);
+ void MergeFrom(const Enum& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Enum* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string name = 1;
+ void clear_name();
+ static const int kNameFieldNumber = 1;
+ const ::std::string& name() const;
+ void set_name(const ::std::string& value);
+ void set_name(const char* value);
+ void set_name(const char* value, size_t size);
+ ::std::string* mutable_name();
+ ::std::string* release_name();
+ void set_allocated_name(::std::string* name);
+
+ // repeated .google.protobuf.EnumValue enumvalue = 2;
+ int enumvalue_size() const;
+ void clear_enumvalue();
+ static const int kEnumvalueFieldNumber = 2;
+ const ::google::protobuf::EnumValue& enumvalue(int index) const;
+ ::google::protobuf::EnumValue* mutable_enumvalue(int index);
+ ::google::protobuf::EnumValue* add_enumvalue();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValue >&
+ enumvalue() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValue >*
+ mutable_enumvalue();
+
+ // repeated .google.protobuf.Option options = 3;
+ int options_size() const;
+ void clear_options();
+ static const int kOptionsFieldNumber = 3;
+ const ::google::protobuf::Option& options(int index) const;
+ ::google::protobuf::Option* mutable_options(int index);
+ ::google::protobuf::Option* add_options();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+ options() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+ mutable_options();
+
+ // optional .google.protobuf.SourceContext source_context = 4;
+ bool has_source_context() const;
+ void clear_source_context();
+ static const int kSourceContextFieldNumber = 4;
+ const ::google::protobuf::SourceContext& source_context() const;
+ ::google::protobuf::SourceContext* mutable_source_context();
+ ::google::protobuf::SourceContext* release_source_context();
+ void set_allocated_source_context(::google::protobuf::SourceContext* source_context);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Enum)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::internal::ArenaStringPtr name_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValue > enumvalue_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option > options_;
+ ::google::protobuf::SourceContext* source_context_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2ftype_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2ftype_2eproto();
+
+ void InitAsDefaultInstance();
+ static Enum* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT EnumValue : public ::google::protobuf::Message {
+ public:
+ EnumValue();
+ virtual ~EnumValue();
+
+ EnumValue(const EnumValue& from);
+
+ inline EnumValue& operator=(const EnumValue& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const EnumValue& default_instance();
+
+ void Swap(EnumValue* other);
+
+ // implements Message ----------------------------------------------
+
+ inline EnumValue* New() const { return New(NULL); }
+
+ EnumValue* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const EnumValue& from);
+ void MergeFrom(const EnumValue& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(EnumValue* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string name = 1;
+ void clear_name();
+ static const int kNameFieldNumber = 1;
+ const ::std::string& name() const;
+ void set_name(const ::std::string& value);
+ void set_name(const char* value);
+ void set_name(const char* value, size_t size);
+ ::std::string* mutable_name();
+ ::std::string* release_name();
+ void set_allocated_name(::std::string* name);
+
+ // optional int32 number = 2;
+ void clear_number();
+ static const int kNumberFieldNumber = 2;
+ ::google::protobuf::int32 number() const;
+ void set_number(::google::protobuf::int32 value);
+
+ // repeated .google.protobuf.Option options = 3;
+ int options_size() const;
+ void clear_options();
+ static const int kOptionsFieldNumber = 3;
+ const ::google::protobuf::Option& options(int index) const;
+ ::google::protobuf::Option* mutable_options(int index);
+ ::google::protobuf::Option* add_options();
+ const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+ options() const;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+ mutable_options();
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.EnumValue)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::internal::ArenaStringPtr name_;
+ ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option > options_;
+ ::google::protobuf::int32 number_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2ftype_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2ftype_2eproto();
+
+ void InitAsDefaultInstance();
+ static EnumValue* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT Option : public ::google::protobuf::Message {
+ public:
+ Option();
+ virtual ~Option();
+
+ Option(const Option& from);
+
+ inline Option& operator=(const Option& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Option& default_instance();
+
+ void Swap(Option* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Option* New() const { return New(NULL); }
+
+ Option* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Option& from);
+ void MergeFrom(const Option& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Option* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string name = 1;
+ void clear_name();
+ static const int kNameFieldNumber = 1;
+ const ::std::string& name() const;
+ void set_name(const ::std::string& value);
+ void set_name(const char* value);
+ void set_name(const char* value, size_t size);
+ ::std::string* mutable_name();
+ ::std::string* release_name();
+ void set_allocated_name(::std::string* name);
+
+ // optional .google.protobuf.Any value = 2;
+ bool has_value() const;
+ void clear_value();
+ static const int kValueFieldNumber = 2;
+ const ::google::protobuf::Any& value() const;
+ ::google::protobuf::Any* mutable_value();
+ ::google::protobuf::Any* release_value();
+ void set_allocated_value(::google::protobuf::Any* value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Option)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::internal::ArenaStringPtr name_;
+ ::google::protobuf::Any* value_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2ftype_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2ftype_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2ftype_2eproto();
+
+ void InitAsDefaultInstance();
+ static Option* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// Type
+
+// optional string name = 1;
+inline void Type::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Type::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Type.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Type::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Type.name)
+}
+inline void Type::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Type.name)
+}
+inline void Type::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Type.name)
+}
+inline ::std::string* Type::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Type.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Type::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Type::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Type.name)
+}
+
+// repeated .google.protobuf.Field fields = 2;
+inline int Type::fields_size() const {
+ return fields_.size();
+}
+inline void Type::clear_fields() {
+ fields_.Clear();
+}
+inline const ::google::protobuf::Field& Type::fields(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Type.fields)
+ return fields_.Get(index);
+}
+inline ::google::protobuf::Field* Type::mutable_fields(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Type.fields)
+ return fields_.Mutable(index);
+}
+inline ::google::protobuf::Field* Type::add_fields() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Type.fields)
+ return fields_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Field >&
+Type::fields() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Type.fields)
+ return fields_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Field >*
+Type::mutable_fields() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Type.fields)
+ return &fields_;
+}
+
+// repeated string oneofs = 3;
+inline int Type::oneofs_size() const {
+ return oneofs_.size();
+}
+inline void Type::clear_oneofs() {
+ oneofs_.Clear();
+}
+inline const ::std::string& Type::oneofs(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Type.oneofs)
+ return oneofs_.Get(index);
+}
+inline ::std::string* Type::mutable_oneofs(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Type.oneofs)
+ return oneofs_.Mutable(index);
+}
+inline void Type::set_oneofs(int index, const ::std::string& value) {
+ // @@protoc_insertion_point(field_set:google.protobuf.Type.oneofs)
+ oneofs_.Mutable(index)->assign(value);
+}
+inline void Type::set_oneofs(int index, const char* value) {
+ oneofs_.Mutable(index)->assign(value);
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Type.oneofs)
+}
+inline void Type::set_oneofs(int index, const char* value, size_t size) {
+ oneofs_.Mutable(index)->assign(
+ reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Type.oneofs)
+}
+inline ::std::string* Type::add_oneofs() {
+ return oneofs_.Add();
+}
+inline void Type::add_oneofs(const ::std::string& value) {
+ oneofs_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add:google.protobuf.Type.oneofs)
+}
+inline void Type::add_oneofs(const char* value) {
+ oneofs_.Add()->assign(value);
+ // @@protoc_insertion_point(field_add_char:google.protobuf.Type.oneofs)
+}
+inline void Type::add_oneofs(const char* value, size_t size) {
+ oneofs_.Add()->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_add_pointer:google.protobuf.Type.oneofs)
+}
+inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
+Type::oneofs() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Type.oneofs)
+ return oneofs_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::std::string>*
+Type::mutable_oneofs() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Type.oneofs)
+ return &oneofs_;
+}
+
+// repeated .google.protobuf.Option options = 4;
+inline int Type::options_size() const {
+ return options_.size();
+}
+inline void Type::clear_options() {
+ options_.Clear();
+}
+inline const ::google::protobuf::Option& Type::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Type.options)
+ return options_.Get(index);
+}
+inline ::google::protobuf::Option* Type::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Type.options)
+ return options_.Mutable(index);
+}
+inline ::google::protobuf::Option* Type::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Type.options)
+ return options_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+Type::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Type.options)
+ return options_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+Type::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Type.options)
+ return &options_;
+}
+
+// optional .google.protobuf.SourceContext source_context = 5;
+inline bool Type::has_source_context() const {
+ return !_is_default_instance_ && source_context_ != NULL;
+}
+inline void Type::clear_source_context() {
+ if (GetArenaNoVirtual() == NULL && source_context_ != NULL) delete source_context_;
+ source_context_ = NULL;
+}
+inline const ::google::protobuf::SourceContext& Type::source_context() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Type.source_context)
+ return source_context_ != NULL ? *source_context_ : *default_instance_->source_context_;
+}
+inline ::google::protobuf::SourceContext* Type::mutable_source_context() {
+
+ if (source_context_ == NULL) {
+ source_context_ = new ::google::protobuf::SourceContext;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Type.source_context)
+ return source_context_;
+}
+inline ::google::protobuf::SourceContext* Type::release_source_context() {
+
+ ::google::protobuf::SourceContext* temp = source_context_;
+ source_context_ = NULL;
+ return temp;
+}
+inline void Type::set_allocated_source_context(::google::protobuf::SourceContext* source_context) {
+ delete source_context_;
+ source_context_ = source_context;
+ if (source_context) {
+
+ } else {
+
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Type.source_context)
+}
+
+// -------------------------------------------------------------------
+
+// Field
+
+// optional .google.protobuf.Field.Kind kind = 1;
+inline void Field::clear_kind() {
+ kind_ = 0;
+}
+inline ::google::protobuf::Field_Kind Field::kind() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.kind)
+ return static_cast< ::google::protobuf::Field_Kind >(kind_);
+}
+inline void Field::set_kind(::google::protobuf::Field_Kind value) {
+
+ kind_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.kind)
+}
+
+// optional .google.protobuf.Field.Cardinality cardinality = 2;
+inline void Field::clear_cardinality() {
+ cardinality_ = 0;
+}
+inline ::google::protobuf::Field_Cardinality Field::cardinality() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.cardinality)
+ return static_cast< ::google::protobuf::Field_Cardinality >(cardinality_);
+}
+inline void Field::set_cardinality(::google::protobuf::Field_Cardinality value) {
+
+ cardinality_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.cardinality)
+}
+
+// optional int32 number = 3;
+inline void Field::clear_number() {
+ number_ = 0;
+}
+inline ::google::protobuf::int32 Field::number() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.number)
+ return number_;
+}
+inline void Field::set_number(::google::protobuf::int32 value) {
+
+ number_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.number)
+}
+
+// optional string name = 4;
+inline void Field::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Field::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Field::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.name)
+}
+inline void Field::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Field.name)
+}
+inline void Field::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Field.name)
+}
+inline ::std::string* Field::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Field.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Field::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Field::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Field.name)
+}
+
+// optional string type_url = 6;
+inline void Field::clear_type_url() {
+ type_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Field::type_url() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.type_url)
+ return type_url_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Field::set_type_url(const ::std::string& value) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.type_url)
+}
+inline void Field::set_type_url(const char* value) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Field.type_url)
+}
+inline void Field::set_type_url(const char* value, size_t size) {
+
+ type_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Field.type_url)
+}
+inline ::std::string* Field::mutable_type_url() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Field.type_url)
+ return type_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Field::release_type_url() {
+
+ return type_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Field::set_allocated_type_url(::std::string* type_url) {
+ if (type_url != NULL) {
+
+ } else {
+
+ }
+ type_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_url);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Field.type_url)
+}
+
+// optional int32 oneof_index = 7;
+inline void Field::clear_oneof_index() {
+ oneof_index_ = 0;
+}
+inline ::google::protobuf::int32 Field::oneof_index() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.oneof_index)
+ return oneof_index_;
+}
+inline void Field::set_oneof_index(::google::protobuf::int32 value) {
+
+ oneof_index_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.oneof_index)
+}
+
+// optional bool packed = 8;
+inline void Field::clear_packed() {
+ packed_ = false;
+}
+inline bool Field::packed() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.packed)
+ return packed_;
+}
+inline void Field::set_packed(bool value) {
+
+ packed_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Field.packed)
+}
+
+// repeated .google.protobuf.Option options = 9;
+inline int Field::options_size() const {
+ return options_.size();
+}
+inline void Field::clear_options() {
+ options_.Clear();
+}
+inline const ::google::protobuf::Option& Field::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Field.options)
+ return options_.Get(index);
+}
+inline ::google::protobuf::Option* Field::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Field.options)
+ return options_.Mutable(index);
+}
+inline ::google::protobuf::Option* Field::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Field.options)
+ return options_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+Field::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Field.options)
+ return options_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+Field::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Field.options)
+ return &options_;
+}
+
+// -------------------------------------------------------------------
+
+// Enum
+
+// optional string name = 1;
+inline void Enum::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Enum::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Enum.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Enum::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Enum.name)
+}
+inline void Enum::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Enum.name)
+}
+inline void Enum::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Enum.name)
+}
+inline ::std::string* Enum::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Enum.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Enum::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Enum::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Enum.name)
+}
+
+// repeated .google.protobuf.EnumValue enumvalue = 2;
+inline int Enum::enumvalue_size() const {
+ return enumvalue_.size();
+}
+inline void Enum::clear_enumvalue() {
+ enumvalue_.Clear();
+}
+inline const ::google::protobuf::EnumValue& Enum::enumvalue(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Enum.enumvalue)
+ return enumvalue_.Get(index);
+}
+inline ::google::protobuf::EnumValue* Enum::mutable_enumvalue(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Enum.enumvalue)
+ return enumvalue_.Mutable(index);
+}
+inline ::google::protobuf::EnumValue* Enum::add_enumvalue() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Enum.enumvalue)
+ return enumvalue_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValue >&
+Enum::enumvalue() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Enum.enumvalue)
+ return enumvalue_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::EnumValue >*
+Enum::mutable_enumvalue() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Enum.enumvalue)
+ return &enumvalue_;
+}
+
+// repeated .google.protobuf.Option options = 3;
+inline int Enum::options_size() const {
+ return options_.size();
+}
+inline void Enum::clear_options() {
+ options_.Clear();
+}
+inline const ::google::protobuf::Option& Enum::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Enum.options)
+ return options_.Get(index);
+}
+inline ::google::protobuf::Option* Enum::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Enum.options)
+ return options_.Mutable(index);
+}
+inline ::google::protobuf::Option* Enum::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.Enum.options)
+ return options_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+Enum::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.Enum.options)
+ return options_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+Enum::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.Enum.options)
+ return &options_;
+}
+
+// optional .google.protobuf.SourceContext source_context = 4;
+inline bool Enum::has_source_context() const {
+ return !_is_default_instance_ && source_context_ != NULL;
+}
+inline void Enum::clear_source_context() {
+ if (GetArenaNoVirtual() == NULL && source_context_ != NULL) delete source_context_;
+ source_context_ = NULL;
+}
+inline const ::google::protobuf::SourceContext& Enum::source_context() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Enum.source_context)
+ return source_context_ != NULL ? *source_context_ : *default_instance_->source_context_;
+}
+inline ::google::protobuf::SourceContext* Enum::mutable_source_context() {
+
+ if (source_context_ == NULL) {
+ source_context_ = new ::google::protobuf::SourceContext;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Enum.source_context)
+ return source_context_;
+}
+inline ::google::protobuf::SourceContext* Enum::release_source_context() {
+
+ ::google::protobuf::SourceContext* temp = source_context_;
+ source_context_ = NULL;
+ return temp;
+}
+inline void Enum::set_allocated_source_context(::google::protobuf::SourceContext* source_context) {
+ delete source_context_;
+ source_context_ = source_context;
+ if (source_context) {
+
+ } else {
+
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Enum.source_context)
+}
+
+// -------------------------------------------------------------------
+
+// EnumValue
+
+// optional string name = 1;
+inline void EnumValue::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& EnumValue::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.EnumValue.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void EnumValue::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.EnumValue.name)
+}
+inline void EnumValue::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.EnumValue.name)
+}
+inline void EnumValue::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.EnumValue.name)
+}
+inline ::std::string* EnumValue::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.EnumValue.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* EnumValue::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void EnumValue::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.EnumValue.name)
+}
+
+// optional int32 number = 2;
+inline void EnumValue::clear_number() {
+ number_ = 0;
+}
+inline ::google::protobuf::int32 EnumValue::number() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.EnumValue.number)
+ return number_;
+}
+inline void EnumValue::set_number(::google::protobuf::int32 value) {
+
+ number_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.EnumValue.number)
+}
+
+// repeated .google.protobuf.Option options = 3;
+inline int EnumValue::options_size() const {
+ return options_.size();
+}
+inline void EnumValue::clear_options() {
+ options_.Clear();
+}
+inline const ::google::protobuf::Option& EnumValue::options(int index) const {
+ // @@protoc_insertion_point(field_get:google.protobuf.EnumValue.options)
+ return options_.Get(index);
+}
+inline ::google::protobuf::Option* EnumValue::mutable_options(int index) {
+ // @@protoc_insertion_point(field_mutable:google.protobuf.EnumValue.options)
+ return options_.Mutable(index);
+}
+inline ::google::protobuf::Option* EnumValue::add_options() {
+ // @@protoc_insertion_point(field_add:google.protobuf.EnumValue.options)
+ return options_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >&
+EnumValue::options() const {
+ // @@protoc_insertion_point(field_list:google.protobuf.EnumValue.options)
+ return options_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::google::protobuf::Option >*
+EnumValue::mutable_options() {
+ // @@protoc_insertion_point(field_mutable_list:google.protobuf.EnumValue.options)
+ return &options_;
+}
+
+// -------------------------------------------------------------------
+
+// Option
+
+// optional string name = 1;
+inline void Option::clear_name() {
+ name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& Option::name() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Option.name)
+ return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Option::set_name(const ::std::string& value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.Option.name)
+}
+inline void Option::set_name(const char* value) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.Option.name)
+}
+inline void Option::set_name(const char* value, size_t size) {
+
+ name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.Option.name)
+}
+inline ::std::string* Option::mutable_name() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Option.name)
+ return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Option::release_name() {
+
+ return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Option::set_allocated_name(::std::string* name) {
+ if (name != NULL) {
+
+ } else {
+
+ }
+ name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Option.name)
+}
+
+// optional .google.protobuf.Any value = 2;
+inline bool Option::has_value() const {
+ return !_is_default_instance_ && value_ != NULL;
+}
+inline void Option::clear_value() {
+ if (GetArenaNoVirtual() == NULL && value_ != NULL) delete value_;
+ value_ = NULL;
+}
+inline const ::google::protobuf::Any& Option::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Option.value)
+ return value_ != NULL ? *value_ : *default_instance_->value_;
+}
+inline ::google::protobuf::Any* Option::mutable_value() {
+
+ if (value_ == NULL) {
+ value_ = new ::google::protobuf::Any;
+ }
+ // @@protoc_insertion_point(field_mutable:google.protobuf.Option.value)
+ return value_;
+}
+inline ::google::protobuf::Any* Option::release_value() {
+
+ ::google::protobuf::Any* temp = value_;
+ value_ = NULL;
+ return temp;
+}
+inline void Option::set_allocated_value(::google::protobuf::Any* value) {
+ delete value_;
+ value_ = value;
+ if (value) {
+
+ } else {
+
+ }
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.Option.value)
+}
+
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+#ifndef SWIG
+namespace google {
+namespace protobuf {
+
+template <> struct is_proto_enum< ::google::protobuf::Field_Kind> : ::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::google::protobuf::Field_Kind>() {
+ return ::google::protobuf::Field_Kind_descriptor();
+}
+template <> struct is_proto_enum< ::google::protobuf::Field_Cardinality> : ::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::google::protobuf::Field_Cardinality>() {
+ return ::google::protobuf::Field_Cardinality_descriptor();
+}
+
+} // namespace protobuf
+} // namespace google
+#endif // SWIG
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_google_2fprotobuf_2ftype_2eproto__INCLUDED
diff --git a/src/google/protobuf/unittest.proto b/src/google/protobuf/unittest.proto
index 745f77c5..834c9b56 100644
--- a/src/google/protobuf/unittest.proto
+++ b/src/google/protobuf/unittest.proto
@@ -42,6 +42,7 @@ option cc_generic_services = true; // auto-added
option java_generic_services = true; // auto-added
option py_generic_services = true; // auto-added
option cc_enable_arenas = true;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
import "google/protobuf/unittest_import.proto";
@@ -184,6 +185,7 @@ message TestAllTypes {
message NestedTestAllTypes {
optional NestedTestAllTypes child = 1;
optional TestAllTypes payload = 2;
+ repeated NestedTestAllTypes repeated_child = 3;
}
message TestDeprecatedFields {
@@ -202,6 +204,11 @@ enum ForeignEnum {
FOREIGN_BAZ = 6;
}
+message TestReservedFields {
+ reserved 2, 15, 9 to 11;
+ reserved "bar", "baz";
+}
+
message TestAllExtensions {
extensions 1 to max;
}
diff --git a/src/google/protobuf/unittest_custom_options.proto b/src/google/protobuf/unittest_custom_options.proto
index d4d6e869..8f9fb582 100644
--- a/src/google/protobuf/unittest_custom_options.proto
+++ b/src/google/protobuf/unittest_custom_options.proto
@@ -41,6 +41,7 @@ syntax = "proto2";
option cc_generic_services = true; // auto-added
option java_generic_services = true; // auto-added
option py_generic_services = true;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
// A custom file option (defined below).
option (file_opt1) = 9876543210;
diff --git a/src/google/protobuf/unittest_drop_unknown_fields.proto b/src/google/protobuf/unittest_drop_unknown_fields.proto
index 2e513eb3..faaddc6e 100644
--- a/src/google/protobuf/unittest_drop_unknown_fields.proto
+++ b/src/google/protobuf/unittest_drop_unknown_fields.proto
@@ -33,14 +33,16 @@ syntax = "proto3";
package unittest_drop_unknown_fields;
option objc_class_prefix = "DropUnknowns";
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
+
message Foo {
enum NestedEnum {
FOO = 0;
BAR = 1;
BAZ = 2;
}
- optional int32 int32_value = 1;
- optional NestedEnum enum_value = 2;
+ int32 int32_value = 1;
+ NestedEnum enum_value = 2;
}
message FooWithExtraFields {
@@ -50,7 +52,7 @@ message FooWithExtraFields {
BAZ = 2;
QUX = 3;
}
- optional int32 int32_value = 1;
- optional NestedEnum enum_value = 2;
- optional int32 extra_int32_value = 3;
+ int32 int32_value = 1;
+ NestedEnum enum_value = 2;
+ int32 extra_int32_value = 3;
}
diff --git a/src/google/protobuf/unittest_embed_optimize_for.proto b/src/google/protobuf/unittest_embed_optimize_for.proto
index d8b0f9b9..c4ccccb7 100644
--- a/src/google/protobuf/unittest_embed_optimize_for.proto
+++ b/src/google/protobuf/unittest_embed_optimize_for.proto
@@ -39,6 +39,8 @@ import "google/protobuf/unittest_optimize_for.proto";
package protobuf_unittest;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
+
// We optimize for speed here, but we are importing a proto that is optimized
// for code size.
option optimize_for = SPEED;
diff --git a/src/google/protobuf/unittest_enormous_descriptor.proto b/src/google/protobuf/unittest_enormous_descriptor.proto
index 2250261d..f8fcc9c0 100644
--- a/src/google/protobuf/unittest_enormous_descriptor.proto
+++ b/src/google/protobuf/unittest_enormous_descriptor.proto
@@ -33,12 +33,14 @@
// Sanjay Ghemawat, Jeff Dean, and others.
//
// A proto file that has an extremely large descriptor. Used to test that
-// descriptors over 64k don't break the string literal length limit in Java.
+// descriptors over 64k don't break language-specific limits in generated code,
+// such as the string literal length limit in Java.
syntax = "proto2";
package google.protobuf;
option java_package = "com.google.protobuf";
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
// Avoid generating insanely long methods.
option optimize_for = CODE_SIZE;
diff --git a/src/google/protobuf/unittest_import.proto b/src/google/protobuf/unittest_import.proto
index 7e165220..ae2e90b8 100644
--- a/src/google/protobuf/unittest_import.proto
+++ b/src/google/protobuf/unittest_import.proto
@@ -47,6 +47,7 @@ option cc_enable_arenas = true;
// Exercise the java_package option.
option java_package = "com.google.protobuf.test";
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
// Do not set a java_outer_classname here to verify that Proto2 works without
// one.
diff --git a/src/google/protobuf/unittest_import_lite.proto b/src/google/protobuf/unittest_import_lite.proto
index a7afa452..ca208582 100644
--- a/src/google/protobuf/unittest_import_lite.proto
+++ b/src/google/protobuf/unittest_import_lite.proto
@@ -38,6 +38,7 @@ package protobuf_unittest_import;
option optimize_for = LITE_RUNTIME;
option java_package = "com.google.protobuf";
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
import public "google/protobuf/unittest_import_public_lite.proto";
diff --git a/src/google/protobuf/unittest_import_public.proto b/src/google/protobuf/unittest_import_public.proto
index ffaf7736..0bc5d617 100644
--- a/src/google/protobuf/unittest_import_public.proto
+++ b/src/google/protobuf/unittest_import_public.proto
@@ -35,6 +35,7 @@ syntax = "proto2";
package protobuf_unittest_import;
option java_package = "com.google.protobuf.test";
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
message PublicImportMessage {
optional int32 e = 1;
diff --git a/src/google/protobuf/unittest_import_public_lite.proto b/src/google/protobuf/unittest_import_public_lite.proto
index 33549c22..231ab9dd 100644
--- a/src/google/protobuf/unittest_import_public_lite.proto
+++ b/src/google/protobuf/unittest_import_public_lite.proto
@@ -37,6 +37,7 @@ package protobuf_unittest_import;
option optimize_for = LITE_RUNTIME;
option java_package = "com.google.protobuf";
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
message PublicImportMessageLite {
optional int32 e = 1;
diff --git a/src/google/protobuf/unittest_lite.proto b/src/google/protobuf/unittest_lite.proto
index 662c0e46..0040874b 100644
--- a/src/google/protobuf/unittest_lite.proto
+++ b/src/google/protobuf/unittest_lite.proto
@@ -40,6 +40,7 @@ import "google/protobuf/unittest_import_lite.proto";
option optimize_for = LITE_RUNTIME;
option java_package = "com.google.protobuf";
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
// Same as TestAllTypes but with the lite runtime.
message TestAllTypesLite {
diff --git a/src/google/protobuf/unittest_lite_imports_nonlite.proto b/src/google/protobuf/unittest_lite_imports_nonlite.proto
index 132d6a82..d955cc14 100644
--- a/src/google/protobuf/unittest_lite_imports_nonlite.proto
+++ b/src/google/protobuf/unittest_lite_imports_nonlite.proto
@@ -38,6 +38,7 @@ package protobuf_unittest;
import "google/protobuf/unittest.proto";
option optimize_for = LITE_RUNTIME;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
message TestLiteImportsNonlite {
optional TestAllTypes message = 1;
diff --git a/src/google/protobuf/unittest_mset.proto b/src/google/protobuf/unittest_mset.proto
index 3aa31fa9..425c9a5a 100644
--- a/src/google/protobuf/unittest_mset.proto
+++ b/src/google/protobuf/unittest_mset.proto
@@ -39,6 +39,7 @@ package protobuf_unittest;
option cc_enable_arenas = true;
option optimize_for = SPEED;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
// A message with message_set_wire_format.
message TestMessageSet {
diff --git a/src/google/protobuf/unittest_no_field_presence.proto b/src/google/protobuf/unittest_no_field_presence.proto
index e04da0ac..f5cc4cc3 100644
--- a/src/google/protobuf/unittest_no_field_presence.proto
+++ b/src/google/protobuf/unittest_no_field_presence.proto
@@ -37,11 +37,13 @@ import "google/protobuf/unittest.proto";
package proto2_nofieldpresence_unittest;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos.Proto3";
+
// This proto includes every type of field in both singular and repeated
// forms.
message TestAllTypes {
message NestedMessage {
- optional int32 bb = 1;
+ int32 bb = 1;
}
enum NestedEnum {
@@ -53,36 +55,36 @@ message TestAllTypes {
// Singular
// TODO: remove 'optional' labels as soon as CL 69188077 is LGTM'd to make
// 'optional' optional.
- optional int32 optional_int32 = 1;
- optional int64 optional_int64 = 2;
- optional uint32 optional_uint32 = 3;
- optional uint64 optional_uint64 = 4;
- optional sint32 optional_sint32 = 5;
- optional sint64 optional_sint64 = 6;
- optional fixed32 optional_fixed32 = 7;
- optional fixed64 optional_fixed64 = 8;
- optional sfixed32 optional_sfixed32 = 9;
- optional sfixed64 optional_sfixed64 = 10;
- optional float optional_float = 11;
- optional double optional_double = 12;
- optional bool optional_bool = 13;
- optional string optional_string = 14;
- optional bytes optional_bytes = 15;
-
- optional NestedMessage optional_nested_message = 18;
- optional ForeignMessage optional_foreign_message = 19;
- optional protobuf_unittest.TestAllTypes optional_proto2_message = 20;
-
- optional NestedEnum optional_nested_enum = 21;
- optional ForeignEnum optional_foreign_enum = 22;
+ int32 optional_int32 = 1;
+ int64 optional_int64 = 2;
+ uint32 optional_uint32 = 3;
+ uint64 optional_uint64 = 4;
+ sint32 optional_sint32 = 5;
+ sint64 optional_sint64 = 6;
+ fixed32 optional_fixed32 = 7;
+ fixed64 optional_fixed64 = 8;
+ sfixed32 optional_sfixed32 = 9;
+ sfixed64 optional_sfixed64 = 10;
+ float optional_float = 11;
+ double optional_double = 12;
+ bool optional_bool = 13;
+ string optional_string = 14;
+ bytes optional_bytes = 15;
+
+ NestedMessage optional_nested_message = 18;
+ ForeignMessage optional_foreign_message = 19;
+ protobuf_unittest.TestAllTypes optional_proto2_message = 20;
+
+ NestedEnum optional_nested_enum = 21;
+ ForeignEnum optional_foreign_enum = 22;
// N.B.: proto2-enum-type fields not allowed, because their default values
// might not be zero.
//optional protobuf_unittest.ForeignEnum optional_proto2_enum = 23;
- optional string optional_string_piece = 24 [ctype=STRING_PIECE];
- optional string optional_cord = 25 [ctype=CORD];
+ string optional_string_piece = 24 [ctype=STRING_PIECE];
+ string optional_cord = 25 [ctype=CORD];
- optional NestedMessage optional_lazy_message = 30 [lazy=true];
+ NestedMessage optional_lazy_message = 30 [lazy=true];
// Repeated
repeated int32 repeated_int32 = 31;
@@ -122,13 +124,13 @@ message TestAllTypes {
}
message TestProto2Required {
- optional protobuf_unittest.TestRequired proto2 = 1;
+ protobuf_unittest.TestRequired proto2 = 1;
}
// Define these after TestAllTypes to make sure the compiler can handle
// that.
message ForeignMessage {
- optional int32 c = 1;
+ int32 c = 1;
}
enum ForeignEnum {
diff --git a/src/google/protobuf/unittest_optimize_for.proto b/src/google/protobuf/unittest_optimize_for.proto
index ee9cc7bd..2bcd16e4 100644
--- a/src/google/protobuf/unittest_optimize_for.proto
+++ b/src/google/protobuf/unittest_optimize_for.proto
@@ -40,6 +40,7 @@ import "google/protobuf/unittest.proto";
package protobuf_unittest;
option optimize_for = CODE_SIZE;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
message TestOptimizedForSize {
optional int32 i = 1;
diff --git a/src/google/protobuf/unittest_preserve_unknown_enum.proto b/src/google/protobuf/unittest_preserve_unknown_enum.proto
index e7929699..abc3de28 100644
--- a/src/google/protobuf/unittest_preserve_unknown_enum.proto
+++ b/src/google/protobuf/unittest_preserve_unknown_enum.proto
@@ -33,6 +33,8 @@ syntax = "proto3";
package proto3_preserve_unknown_enum_unittest;
option objc_class_prefix = "UnknownEnums";
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
+
enum MyEnum {
FOO = 0;
BAR = 1;
@@ -47,7 +49,7 @@ enum MyEnumPlusExtra {
}
message MyMessage {
- optional MyEnum e = 1;
+ MyEnum e = 1;
repeated MyEnum repeated_e = 2;
repeated MyEnum repeated_packed_e = 3 [packed=true];
repeated MyEnumPlusExtra repeated_packed_unexpected_e = 4; // not packed
@@ -58,7 +60,7 @@ message MyMessage {
}
message MyMessagePlusExtra {
- optional MyEnumPlusExtra e = 1;
+ MyEnumPlusExtra e = 1;
repeated MyEnumPlusExtra repeated_e = 2;
repeated MyEnumPlusExtra repeated_packed_e = 3 [packed=true];
repeated MyEnumPlusExtra repeated_packed_unexpected_e = 4 [packed=true];
diff --git a/src/google/protobuf/unittest_preserve_unknown_enum2.proto b/src/google/protobuf/unittest_preserve_unknown_enum2.proto
index adf42968..168b2407 100644
--- a/src/google/protobuf/unittest_preserve_unknown_enum2.proto
+++ b/src/google/protobuf/unittest_preserve_unknown_enum2.proto
@@ -32,6 +32,8 @@ syntax = "proto2";
package proto2_preserve_unknown_enum_unittest;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
+
enum MyEnum {
FOO = 0;
BAR = 1;
diff --git a/src/google/protobuf/unittest_proto3_arena.proto b/src/google/protobuf/unittest_proto3_arena.proto
index 6d7bada8..b835a6ba 100644
--- a/src/google/protobuf/unittest_proto3_arena.proto
+++ b/src/google/protobuf/unittest_proto3_arena.proto
@@ -43,7 +43,7 @@ message TestAllTypes {
// The field name "b" fails to compile in proto1 because it conflicts with
// a local variable named "b" in one of the generated methods. Doh.
// This file needs to compile in proto1 to test backwards-compatibility.
- optional int32 bb = 1;
+ int32 bb = 1;
}
enum NestedEnum {
@@ -55,46 +55,47 @@ message TestAllTypes {
}
// Singular
- optional int32 optional_int32 = 1;
- optional int64 optional_int64 = 2;
- optional uint32 optional_uint32 = 3;
- optional uint64 optional_uint64 = 4;
- optional sint32 optional_sint32 = 5;
- optional sint64 optional_sint64 = 6;
- optional fixed32 optional_fixed32 = 7;
- optional fixed64 optional_fixed64 = 8;
- optional sfixed32 optional_sfixed32 = 9;
- optional sfixed64 optional_sfixed64 = 10;
- optional float optional_float = 11;
- optional double optional_double = 12;
- optional bool optional_bool = 13;
- optional string optional_string = 14;
- optional bytes optional_bytes = 15;
-
- optional group OptionalGroup = 16 {
- optional int32 a = 17;
- }
-
- optional NestedMessage optional_nested_message = 18;
- optional ForeignMessage optional_foreign_message = 19;
- optional protobuf_unittest_import.ImportMessage optional_import_message = 20;
-
- optional NestedEnum optional_nested_enum = 21;
- optional ForeignEnum optional_foreign_enum = 22;
+ int32 optional_int32 = 1;
+ int64 optional_int64 = 2;
+ uint32 optional_uint32 = 3;
+ uint64 optional_uint64 = 4;
+ sint32 optional_sint32 = 5;
+ sint64 optional_sint64 = 6;
+ fixed32 optional_fixed32 = 7;
+ fixed64 optional_fixed64 = 8;
+ sfixed32 optional_sfixed32 = 9;
+ sfixed64 optional_sfixed64 = 10;
+ float optional_float = 11;
+ double optional_double = 12;
+ bool optional_bool = 13;
+ string optional_string = 14;
+ bytes optional_bytes = 15;
+
+ // Groups are not allowed in proto3.
+ // optional group OptionalGroup = 16 {
+ // optional int32 a = 17;
+ // }
+
+ NestedMessage optional_nested_message = 18;
+ ForeignMessage optional_foreign_message = 19;
+ protobuf_unittest_import.ImportMessage optional_import_message = 20;
+
+ NestedEnum optional_nested_enum = 21;
+ ForeignEnum optional_foreign_enum = 22;
// Omitted (compared to unittest.proto) because proto2 enums are not allowed
// inside proto2 messages.
//
// optional protobuf_unittest_import.ImportEnum optional_import_enum = 23;
- optional string optional_string_piece = 24 [ctype=STRING_PIECE];
- optional string optional_cord = 25 [ctype=CORD];
+ string optional_string_piece = 24 [ctype=STRING_PIECE];
+ string optional_cord = 25 [ctype=CORD];
// Defined in unittest_import_public.proto
- optional protobuf_unittest_import.PublicImportMessage
+ protobuf_unittest_import.PublicImportMessage
optional_public_import_message = 26;
- optional NestedMessage optional_lazy_message = 27 [lazy=true];
+ NestedMessage optional_lazy_message = 27 [lazy=true];
// Repeated
repeated int32 repeated_int32 = 31;
@@ -113,9 +114,10 @@ message TestAllTypes {
repeated string repeated_string = 44;
repeated bytes repeated_bytes = 45;
- repeated group RepeatedGroup = 46 {
- optional int32 a = 47;
- }
+ // Groups are not allowed in proto3.
+ // repeated group RepeatedGroup = 46 {
+ // optional int32 a = 47;
+ // }
repeated NestedMessage repeated_nested_message = 48;
repeated ForeignMessage repeated_foreign_message = 49;
@@ -161,6 +163,24 @@ message TestPackedTypes {
repeated ForeignEnum packed_enum = 103 [packed = true];
}
+// Explicitly set packed to false
+message TestUnpackedTypes {
+ repeated int32 repeated_int32 = 1 [packed = false];
+ repeated int64 repeated_int64 = 2 [packed = false];
+ repeated uint32 repeated_uint32 = 3 [packed = false];
+ repeated uint64 repeated_uint64 = 4 [packed = false];
+ repeated sint32 repeated_sint32 = 5 [packed = false];
+ repeated sint64 repeated_sint64 = 6 [packed = false];
+ repeated fixed32 repeated_fixed32 = 7 [packed = false];
+ repeated fixed64 repeated_fixed64 = 8 [packed = false];
+ repeated sfixed32 repeated_sfixed32 = 9 [packed = false];
+ repeated sfixed64 repeated_sfixed64 = 10 [packed = false];
+ repeated float repeated_float = 11 [packed = false];
+ repeated double repeated_double = 12 [packed = false];
+ repeated bool repeated_bool = 13 [packed = false];
+ repeated TestAllTypes.NestedEnum repeated_nested_enum = 14 [packed = false];
+}
+
// This proto includes a recusively nested message.
message NestedTestAllTypes {
NestedTestAllTypes child = 1;
@@ -170,7 +190,7 @@ message NestedTestAllTypes {
// Define these after TestAllTypes to make sure the compiler can handle
// that.
message ForeignMessage {
- optional int32 c = 1;
+ int32 c = 1;
}
enum ForeignEnum {
diff --git a/src/google/protobuf/unittest_well_known_types.proto b/src/google/protobuf/unittest_well_known_types.proto
new file mode 100644
index 00000000..e157260e
--- /dev/null
+++ b/src/google/protobuf/unittest_well_known_types.proto
@@ -0,0 +1,31 @@
+syntax = "proto3";
+
+package protobuf_unittest;
+
+option java_multiple_files = true;
+option java_package = "com.google.protobuf.test";
+
+import "google/protobuf/any.proto";
+import "google/protobuf/api.proto";
+import "google/protobuf/duration.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+import "google/protobuf/source_context.proto";
+import "google/protobuf/struct.proto";
+import "google/protobuf/timestamp.proto";
+import "google/protobuf/type.proto";
+import "google/protobuf/wrappers.proto";
+
+// Test that we can include all well-known types.
+message TestWellKnownTypes {
+ google.protobuf.Any any_field = 1;
+ google.protobuf.Api api_field = 2;
+ google.protobuf.Duration duration_field = 3;
+ google.protobuf.Empty empty_field = 4;
+ google.protobuf.FieldMask field_mask_field = 5;
+ google.protobuf.SourceContext source_context_field = 6;
+ google.protobuf.Struct struct_field = 7;
+ google.protobuf.Timestamp timestamp_field = 8;
+ google.protobuf.Type type_field = 9;
+ google.protobuf.Int32Value int32_field = 10;
+}
diff --git a/src/google/protobuf/unknown_enum_test.proto b/src/google/protobuf/unknown_enum_test.proto
index caafadcd..3c549cc7 100644
--- a/src/google/protobuf/unknown_enum_test.proto
+++ b/src/google/protobuf/unknown_enum_test.proto
@@ -36,6 +36,7 @@ syntax = "proto2";
package google.protobuf.util;
+option csharp_namespace = "Google.ProtocolBuffers.TestProtos";
message DownRevision {
enum Enum {
diff --git a/src/google/protobuf/unknown_field_set.cc b/src/google/protobuf/unknown_field_set.cc
index e15280c8..76644900 100644
--- a/src/google/protobuf/unknown_field_set.cc
+++ b/src/google/protobuf/unknown_field_set.cc
@@ -93,7 +93,7 @@ void UnknownFieldSet::InternalMergeFrom(const UnknownFieldSet& other) {
fields_ = new vector<UnknownField>();
for (int i = 0; i < other_field_count; i++) {
fields_->push_back((*other.fields_)[i]);
- fields_->back().DeepCopy();
+ fields_->back().DeepCopy((*other.fields_)[i]);
}
}
}
@@ -104,7 +104,7 @@ void UnknownFieldSet::MergeFrom(const UnknownFieldSet& other) {
if (fields_ == NULL) fields_ = new vector<UnknownField>();
for (int i = 0; i < other_field_count; i++) {
fields_->push_back((*other.fields_)[i]);
- fields_->back().DeepCopy();
+ fields_->back().DeepCopy((*other.fields_)[i]);
}
}
}
@@ -202,7 +202,7 @@ UnknownFieldSet* UnknownFieldSet::AddGroup(int number) {
void UnknownFieldSet::AddField(const UnknownField& field) {
if (fields_ == NULL) fields_ = new vector<UnknownField>();
fields_->push_back(field);
- fields_->back().DeepCopy();
+ fields_->back().DeepCopy(field);
}
void UnknownFieldSet::DeleteSubrange(int start, int num) {
@@ -303,7 +303,7 @@ void UnknownField::Reset() {
}
}
-void UnknownField::DeepCopy() {
+void UnknownField::DeepCopy(const UnknownField& other) {
switch (type()) {
case UnknownField::TYPE_LENGTH_DELIMITED:
length_delimited_.string_value_ = new string(
diff --git a/src/google/protobuf/unknown_field_set.h b/src/google/protobuf/unknown_field_set.h
index 987b1979..6781cd0f 100644
--- a/src/google/protobuf/unknown_field_set.h
+++ b/src/google/protobuf/unknown_field_set.h
@@ -216,7 +216,7 @@ class LIBPROTOBUF_EXPORT UnknownField {
void Reset();
// Make a deep copy of any pointers in this UnknownField.
- void DeepCopy();
+ void DeepCopy(const UnknownField& other);
// Set the wire type of this UnknownField. Should only be used when this
// UnknownField is being created.
diff --git a/src/google/protobuf/well_known_types_unittest.cc b/src/google/protobuf/well_known_types_unittest.cc
new file mode 100644
index 00000000..c9a9aa10
--- /dev/null
+++ b/src/google/protobuf/well_known_types_unittest.cc
@@ -0,0 +1,60 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// https://developers.google.com/protocol-buffers/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#include <google/protobuf/unittest_well_known_types.pb.h>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/testing/googletest.h>
+#include <gtest/gtest.h>
+#include <google/protobuf/stubs/stl_util.h>
+
+namespace google {
+namespace protobuf {
+namespace {
+
+// This test only checks whether well-known types are included in protobuf
+// runtime library. The test passes if it compiles.
+TEST(WellKnownTypesTest, AllKnownTypesAreIncluded) {
+ protobuf_unittest::TestWellKnownTypes message;
+ EXPECT_EQ(0, message.any_field().ByteSize());
+ EXPECT_EQ(0, message.api_field().ByteSize());
+ EXPECT_EQ(0, message.duration_field().ByteSize());
+ EXPECT_EQ(0, message.empty_field().ByteSize());
+ EXPECT_EQ(0, message.field_mask_field().ByteSize());
+ EXPECT_EQ(0, message.source_context_field().ByteSize());
+ EXPECT_EQ(0, message.struct_field().ByteSize());
+ EXPECT_EQ(0, message.timestamp_field().ByteSize());
+ EXPECT_EQ(0, message.type_field().ByteSize());
+ EXPECT_EQ(0, message.int32_field().ByteSize());
+}
+
+} // namespace
+
+} // namespace protobuf
+} // namespace google
diff --git a/src/google/protobuf/wire_format.cc b/src/google/protobuf/wire_format.cc
index c5bbbf2e..54cd653a 100644
--- a/src/google/protobuf/wire_format.cc
+++ b/src/google/protobuf/wire_format.cc
@@ -829,7 +829,7 @@ void WireFormat::SerializeFieldWithCachedSizes(
count = 1;
}
- const bool is_packed = field->options().packed();
+ const bool is_packed = field->is_packed();
if (is_packed && count > 0) {
WireFormatLite::WriteTag(field->number(),
WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
@@ -996,7 +996,7 @@ int WireFormat::FieldByteSize(
const int data_size = FieldDataOnlyByteSize(field, message);
int our_size = data_size;
- if (field->options().packed()) {
+ if (field->is_packed()) {
if (data_size > 0) {
// Packed fields get serialized like a string, not their native type.
// Technically this doesn't really matter; the size only changes if it's
diff --git a/src/google/protobuf/wire_format_lite.h b/src/google/protobuf/wire_format_lite.h
index 76bc75a1..ac83abdc 100644
--- a/src/google/protobuf/wire_format_lite.h
+++ b/src/google/protobuf/wire_format_lite.h
@@ -330,6 +330,17 @@ class LIBPROTOBUF_EXPORT WireFormatLite {
template<typename MessageType>
static inline bool ReadMessageNoVirtual(input, MessageType* value);
+ // The same, but do not modify input's recursion depth. This is useful
+ // when reading a bunch of groups or messages in a loop, because then the
+ // recursion depth can be incremented before the loop and decremented after.
+ template<typename MessageType>
+ static inline bool ReadGroupNoVirtualNoRecursionDepth(field_number, input,
+ MessageType* value);
+
+ template<typename MessageType>
+ static inline bool ReadMessageNoVirtualNoRecursionDepth(input,
+ MessageType* value);
+
// Write a tag. The Write*() functions typically include the tag, so
// normally there's no need to call this unless using the Write*NoTag()
// variants.
diff --git a/src/google/protobuf/wire_format_lite_inl.h b/src/google/protobuf/wire_format_lite_inl.h
index 129fc63f..d073ff92 100644
--- a/src/google/protobuf/wire_format_lite_inl.h
+++ b/src/google/protobuf/wire_format_lite_inl.h
@@ -470,7 +470,7 @@ inline bool WireFormatLite::ReadGroupNoVirtual(
if (!value->
MessageType_WorkAroundCppLookupDefect::MergePartialFromCodedStream(input))
return false;
- input->DecrementRecursionDepth();
+ input->UnsafeDecrementRecursionDepth();
// Make sure the last thing read was an end tag for this group.
if (!input->LastTagWas(MakeTag(field_number, WIRETYPE_END_GROUP))) {
return false;
@@ -478,6 +478,14 @@ inline bool WireFormatLite::ReadGroupNoVirtual(
return true;
}
template<typename MessageType_WorkAroundCppLookupDefect>
+inline bool WireFormatLite::ReadGroupNoVirtualNoRecursionDepth(
+ int field_number, io::CodedInputStream* input,
+ MessageType_WorkAroundCppLookupDefect* value) {
+ return value->MessageType_WorkAroundCppLookupDefect::
+ MergePartialFromCodedStream(input) &&
+ input->LastTagWas(MakeTag(field_number, WIRETYPE_END_GROUP));
+}
+template<typename MessageType_WorkAroundCppLookupDefect>
inline bool WireFormatLite::ReadMessageNoVirtual(
io::CodedInputStream* input, MessageType_WorkAroundCppLookupDefect* value) {
uint32 length;
@@ -491,6 +499,17 @@ inline bool WireFormatLite::ReadMessageNoVirtual(
// tag.
return input->DecrementRecursionDepthAndPopLimit(p.first);
}
+template<typename MessageType_WorkAroundCppLookupDefect>
+inline bool WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+ io::CodedInputStream* input, MessageType_WorkAroundCppLookupDefect* value) {
+ io::CodedInputStream::Limit old_limit = input->ReadLengthAndPushLimit();
+ if (!value->
+ MessageType_WorkAroundCppLookupDefect::MergePartialFromCodedStream(input))
+ return false;
+ // Make sure that parsing stopped when the limit was hit, not at an endgroup
+ // tag.
+ return input->CheckEntireMessageConsumedAndPopLimit(old_limit);
+}
// ===================================================================
diff --git a/src/google/protobuf/wire_format_unittest.cc b/src/google/protobuf/wire_format_unittest.cc
index a3062a6a..4b151f97 100644
--- a/src/google/protobuf/wire_format_unittest.cc
+++ b/src/google/protobuf/wire_format_unittest.cc
@@ -38,6 +38,7 @@
#include <google/protobuf/io/zero_copy_stream_impl.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/unittest.pb.h>
+#include <google/protobuf/unittest_proto3_arena.pb.h>
#include <google/protobuf/unittest_mset.pb.h>
#include <google/protobuf/test_util.h>
@@ -767,7 +768,7 @@ TEST(WireFormatTest, RepeatedScalarsDifferentTagSizes) {
}
TEST(WireFormatTest, CompatibleTypes) {
- const int64 data = 0x100000000;
+ const int64 data = 0x100000000LL;
unittest::Int64Message msg1;
msg1.set_data(data);
string serialized;
@@ -794,6 +795,137 @@ TEST(WireFormatTest, CompatibleTypes) {
ASSERT_EQ(static_cast<uint32>(data), msg5.data());
}
+class Proto3PrimitiveRepeatedWireFormatTest
+ : public ::testing::TestWithParam<bool> {
+ protected:
+ template <class Proto>
+ void SetProto3PrimitiveRepeatedFields(Proto* message) {
+ message->add_repeated_int32(1);
+ message->add_repeated_int64(1);
+ message->add_repeated_uint32(1);
+ message->add_repeated_uint64(1);
+ message->add_repeated_sint32(1);
+ message->add_repeated_sint64(1);
+ message->add_repeated_fixed32(1);
+ message->add_repeated_fixed64(1);
+ message->add_repeated_sfixed32(1);
+ message->add_repeated_sfixed64(1);
+ message->add_repeated_float(1.0);
+ message->add_repeated_double(1.0);
+ message->add_repeated_bool(true);
+ message->add_repeated_nested_enum(
+ proto3_arena_unittest::TestAllTypes_NestedEnum_FOO);
+ }
+
+ template <class Proto>
+ void ExpectProto3PrimitiveRepeatedFieldsSet(const Proto& message) {
+ EXPECT_EQ(1, message.repeated_int32(0));
+ EXPECT_EQ(1, message.repeated_int64(0));
+ EXPECT_EQ(1, message.repeated_uint32(0));
+ EXPECT_EQ(1, message.repeated_uint64(0));
+ EXPECT_EQ(1, message.repeated_sint32(0));
+ EXPECT_EQ(1, message.repeated_sint64(0));
+ EXPECT_EQ(1, message.repeated_fixed32(0));
+ EXPECT_EQ(1, message.repeated_fixed64(0));
+ EXPECT_EQ(1, message.repeated_sfixed32(0));
+ EXPECT_EQ(1, message.repeated_sfixed64(0));
+ EXPECT_EQ(1.0, message.repeated_float(0));
+ EXPECT_EQ(1.0, message.repeated_double(0));
+ EXPECT_EQ(true, message.repeated_bool(0));
+ EXPECT_EQ(proto3_arena_unittest::TestAllTypes_NestedEnum_FOO,
+ message.repeated_nested_enum(0));
+ }
+
+ template <class Proto>
+ void TestProto3PrimitiveRepeatedFields(Proto* message,
+ const string& expected) {
+ SetProto3PrimitiveRepeatedFields(message);
+
+ int size = message->ByteSize();
+
+ // Serialize using the generated code.
+ string generated_data;
+ {
+ io::StringOutputStream raw_output(&generated_data);
+ io::CodedOutputStream output(&raw_output);
+ message->SerializeWithCachedSizes(&output);
+ ASSERT_FALSE(output.HadError());
+ }
+
+ EXPECT_TRUE(expected == generated_data);
+
+ message->Clear();
+ message->ParseFromString(generated_data);
+ ExpectProto3PrimitiveRepeatedFieldsSet(*message);
+
+ // Serialize using the dynamic code.
+ string dynamic_data;
+ {
+ io::StringOutputStream raw_output(&dynamic_data);
+ io::CodedOutputStream output(&raw_output);
+ WireFormat::SerializeWithCachedSizes(*message, size, &output);
+ ASSERT_FALSE(output.HadError());
+ }
+
+ EXPECT_TRUE(expected == dynamic_data);
+
+ message->Clear();
+ io::CodedInputStream input(
+ reinterpret_cast<const uint8*>(dynamic_data.data()),
+ dynamic_data.size());
+ WireFormat::ParseAndMergePartial(&input, message);
+ ExpectProto3PrimitiveRepeatedFieldsSet(*message);
+ }
+};
+INSTANTIATE_TEST_CASE_P(SetPacked,
+ Proto3PrimitiveRepeatedWireFormatTest,
+ ::testing::Values(false, true));
+
+TEST_P(Proto3PrimitiveRepeatedWireFormatTest, Proto3PrimitiveRepeated) {
+ proto3_arena_unittest::TestAllTypes packed_message;
+ proto3_arena_unittest::TestUnpackedTypes unpacked_message;
+
+ const string packedExpected(
+ "\xFA\x01\x01\x01"
+ "\x82\x02\x01\x01"
+ "\x8A\x02\x01\x01"
+ "\x92\x02\x01\x01"
+ "\x9A\x02\x01\x02"
+ "\xA2\x02\x01\x02"
+ "\xAA\x02\x04\x01\x00\x00\x00"
+ "\xB2\x02\x08\x01\x00\x00\x00\x00\x00\x00\x00"
+ "\xBA\x02\x04\x01\x00\x00\x00"
+ "\xC2\x02\x08\x01\x00\x00\x00\x00\x00\x00\x00"
+ "\xCA\x02\x04\x00\x00\x80\x3f"
+ "\xD2\x02\x08\x00\x00\x00\x00\x00\x00\xf0\x3f"
+ "\xDA\x02\x01\x01"
+ "\x9A\x03\x01\x01",
+ 86);
+
+ const string unpackedExpected(
+ "\x08\x01"
+ "\x10\x01"
+ "\x18\x01"
+ "\x20\x01"
+ "\x28\x02"
+ "\x30\x02"
+ "\x3D\x01\x00\x00\x00"
+ "\x41\x01\x00\x00\x00\x00\x00\x00\x00"
+ "\x4D\x01\x00\x00\x00"
+ "\x51\x01\x00\x00\x00\x00\x00\x00\x00"
+ "\x5D\x00\x00\x80\x3f"
+ "\x61\x00\x00\x00\x00\x00\x00\xf0\x3f"
+ "\x68\x01"
+ "\x70\x01",
+ 58);
+
+ if (GetParam()) {
+ TestProto3PrimitiveRepeatedFields(&packed_message, packedExpected);
+ } else {
+ TestProto3PrimitiveRepeatedFields(&unpacked_message, unpackedExpected);
+ }
+}
+
class WireFormatInvalidInputTest : public testing::Test {
protected:
// Make a serialized TestAllTypes in which the field optional_nested_message
diff --git a/src/google/protobuf/wrappers.pb.cc b/src/google/protobuf/wrappers.pb.cc
new file mode 100644
index 00000000..ffc77f1c
--- /dev/null
+++ b/src/google/protobuf/wrappers.pb.cc
@@ -0,0 +1,2419 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/wrappers.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "google/protobuf/wrappers.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+namespace {
+
+const ::google::protobuf::Descriptor* DoubleValue_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ DoubleValue_reflection_ = NULL;
+const ::google::protobuf::Descriptor* FloatValue_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ FloatValue_reflection_ = NULL;
+const ::google::protobuf::Descriptor* Int64Value_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Int64Value_reflection_ = NULL;
+const ::google::protobuf::Descriptor* UInt64Value_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ UInt64Value_reflection_ = NULL;
+const ::google::protobuf::Descriptor* Int32Value_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Int32Value_reflection_ = NULL;
+const ::google::protobuf::Descriptor* UInt32Value_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ UInt32Value_reflection_ = NULL;
+const ::google::protobuf::Descriptor* BoolValue_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ BoolValue_reflection_ = NULL;
+const ::google::protobuf::Descriptor* StringValue_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ StringValue_reflection_ = NULL;
+const ::google::protobuf::Descriptor* BytesValue_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ BytesValue_reflection_ = NULL;
+
+} // namespace
+
+
+void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "google/protobuf/wrappers.proto");
+ GOOGLE_CHECK(file != NULL);
+ DoubleValue_descriptor_ = file->message_type(0);
+ static const int DoubleValue_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DoubleValue, value_),
+ };
+ DoubleValue_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ DoubleValue_descriptor_,
+ DoubleValue::default_instance_,
+ DoubleValue_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(DoubleValue),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DoubleValue, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DoubleValue, _is_default_instance_));
+ FloatValue_descriptor_ = file->message_type(1);
+ static const int FloatValue_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FloatValue, value_),
+ };
+ FloatValue_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ FloatValue_descriptor_,
+ FloatValue::default_instance_,
+ FloatValue_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(FloatValue),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FloatValue, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FloatValue, _is_default_instance_));
+ Int64Value_descriptor_ = file->message_type(2);
+ static const int Int64Value_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Int64Value, value_),
+ };
+ Int64Value_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Int64Value_descriptor_,
+ Int64Value::default_instance_,
+ Int64Value_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Int64Value),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Int64Value, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Int64Value, _is_default_instance_));
+ UInt64Value_descriptor_ = file->message_type(3);
+ static const int UInt64Value_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UInt64Value, value_),
+ };
+ UInt64Value_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ UInt64Value_descriptor_,
+ UInt64Value::default_instance_,
+ UInt64Value_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(UInt64Value),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UInt64Value, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UInt64Value, _is_default_instance_));
+ Int32Value_descriptor_ = file->message_type(4);
+ static const int Int32Value_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Int32Value, value_),
+ };
+ Int32Value_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ Int32Value_descriptor_,
+ Int32Value::default_instance_,
+ Int32Value_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(Int32Value),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Int32Value, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Int32Value, _is_default_instance_));
+ UInt32Value_descriptor_ = file->message_type(5);
+ static const int UInt32Value_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UInt32Value, value_),
+ };
+ UInt32Value_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ UInt32Value_descriptor_,
+ UInt32Value::default_instance_,
+ UInt32Value_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(UInt32Value),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UInt32Value, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UInt32Value, _is_default_instance_));
+ BoolValue_descriptor_ = file->message_type(6);
+ static const int BoolValue_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BoolValue, value_),
+ };
+ BoolValue_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ BoolValue_descriptor_,
+ BoolValue::default_instance_,
+ BoolValue_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(BoolValue),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BoolValue, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BoolValue, _is_default_instance_));
+ StringValue_descriptor_ = file->message_type(7);
+ static const int StringValue_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StringValue, value_),
+ };
+ StringValue_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ StringValue_descriptor_,
+ StringValue::default_instance_,
+ StringValue_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(StringValue),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StringValue, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StringValue, _is_default_instance_));
+ BytesValue_descriptor_ = file->message_type(8);
+ static const int BytesValue_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BytesValue, value_),
+ };
+ BytesValue_reflection_ =
+ ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
+ BytesValue_descriptor_,
+ BytesValue::default_instance_,
+ BytesValue_offsets_,
+ -1,
+ -1,
+ -1,
+ sizeof(BytesValue),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BytesValue, _internal_metadata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BytesValue, _is_default_instance_));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ DoubleValue_descriptor_, &DoubleValue::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ FloatValue_descriptor_, &FloatValue::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Int64Value_descriptor_, &Int64Value::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ UInt64Value_descriptor_, &UInt64Value::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Int32Value_descriptor_, &Int32Value::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ UInt32Value_descriptor_, &UInt32Value::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ BoolValue_descriptor_, &BoolValue::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ StringValue_descriptor_, &StringValue::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ BytesValue_descriptor_, &BytesValue::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto() {
+ delete DoubleValue::default_instance_;
+ delete DoubleValue_reflection_;
+ delete FloatValue::default_instance_;
+ delete FloatValue_reflection_;
+ delete Int64Value::default_instance_;
+ delete Int64Value_reflection_;
+ delete UInt64Value::default_instance_;
+ delete UInt64Value_reflection_;
+ delete Int32Value::default_instance_;
+ delete Int32Value_reflection_;
+ delete UInt32Value::default_instance_;
+ delete UInt32Value_reflection_;
+ delete BoolValue::default_instance_;
+ delete BoolValue_reflection_;
+ delete StringValue::default_instance_;
+ delete StringValue_reflection_;
+ delete BytesValue::default_instance_;
+ delete BytesValue_reflection_;
+}
+
+void protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\036google/protobuf/wrappers.proto\022\017google"
+ ".protobuf\"\034\n\013DoubleValue\022\r\n\005value\030\001 \001(\001\""
+ "\033\n\nFloatValue\022\r\n\005value\030\001 \001(\002\"\033\n\nInt64Val"
+ "ue\022\r\n\005value\030\001 \001(\003\"\034\n\013UInt64Value\022\r\n\005valu"
+ "e\030\001 \001(\004\"\033\n\nInt32Value\022\r\n\005value\030\001 \001(\005\"\034\n\013"
+ "UInt32Value\022\r\n\005value\030\001 \001(\r\"\032\n\tBoolValue\022"
+ "\r\n\005value\030\001 \001(\010\"\034\n\013StringValue\022\r\n\005value\030\001"
+ " \001(\t\"\033\n\nBytesValue\022\r\n\005value\030\001 \001(\014BE\n\023com"
+ ".google.protobufB\rWrappersProtoP\001\242\002\003GPB\252"
+ "\002\026Google.ProtocolBuffersb\006proto3", 392);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "google/protobuf/wrappers.proto", &protobuf_RegisterTypes);
+ DoubleValue::default_instance_ = new DoubleValue();
+ FloatValue::default_instance_ = new FloatValue();
+ Int64Value::default_instance_ = new Int64Value();
+ UInt64Value::default_instance_ = new UInt64Value();
+ Int32Value::default_instance_ = new Int32Value();
+ UInt32Value::default_instance_ = new UInt32Value();
+ BoolValue::default_instance_ = new BoolValue();
+ StringValue::default_instance_ = new StringValue();
+ BytesValue::default_instance_ = new BytesValue();
+ DoubleValue::default_instance_->InitAsDefaultInstance();
+ FloatValue::default_instance_->InitAsDefaultInstance();
+ Int64Value::default_instance_->InitAsDefaultInstance();
+ UInt64Value::default_instance_->InitAsDefaultInstance();
+ Int32Value::default_instance_->InitAsDefaultInstance();
+ UInt32Value::default_instance_->InitAsDefaultInstance();
+ BoolValue::default_instance_->InitAsDefaultInstance();
+ StringValue::default_instance_->InitAsDefaultInstance();
+ BytesValue::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_google_2fprotobuf_2fwrappers_2eproto {
+ StaticDescriptorInitializer_google_2fprotobuf_2fwrappers_2eproto() {
+ protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ }
+} static_descriptor_initializer_google_2fprotobuf_2fwrappers_2eproto_;
+
+namespace {
+
+static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
+static void MergeFromFail(int line) {
+ GOOGLE_CHECK(false) << __FILE__ << ":" << line;
+}
+
+} // namespace
+
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int DoubleValue::kValueFieldNumber;
+#endif // !_MSC_VER
+
+DoubleValue::DoubleValue()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.DoubleValue)
+}
+
+void DoubleValue::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+DoubleValue::DoubleValue(const DoubleValue& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.DoubleValue)
+}
+
+void DoubleValue::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+ value_ = 0;
+}
+
+DoubleValue::~DoubleValue() {
+ // @@protoc_insertion_point(destructor:google.protobuf.DoubleValue)
+ SharedDtor();
+}
+
+void DoubleValue::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void DoubleValue::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* DoubleValue::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return DoubleValue_descriptor_;
+}
+
+const DoubleValue& DoubleValue::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ return *default_instance_;
+}
+
+DoubleValue* DoubleValue::default_instance_ = NULL;
+
+DoubleValue* DoubleValue::New(::google::protobuf::Arena* arena) const {
+ DoubleValue* n = new DoubleValue;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void DoubleValue::Clear() {
+ value_ = 0;
+}
+
+bool DoubleValue::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.DoubleValue)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional double value = 1;
+ case 1: {
+ if (tag == 9) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
+ input, &value_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.DoubleValue)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.DoubleValue)
+ return false;
+#undef DO_
+}
+
+void DoubleValue::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.DoubleValue)
+ // optional double value = 1;
+ if (this->value() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteDouble(1, this->value(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.DoubleValue)
+}
+
+::google::protobuf::uint8* DoubleValue::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.DoubleValue)
+ // optional double value = 1;
+ if (this->value() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(1, this->value(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.DoubleValue)
+ return target;
+}
+
+int DoubleValue::ByteSize() const {
+ int total_size = 0;
+
+ // optional double value = 1;
+ if (this->value() != 0) {
+ total_size += 1 + 8;
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void DoubleValue::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const DoubleValue* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const DoubleValue>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void DoubleValue::MergeFrom(const DoubleValue& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.value() != 0) {
+ set_value(from.value());
+ }
+}
+
+void DoubleValue::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void DoubleValue::CopyFrom(const DoubleValue& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool DoubleValue::IsInitialized() const {
+
+ return true;
+}
+
+void DoubleValue::Swap(DoubleValue* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void DoubleValue::InternalSwap(DoubleValue* other) {
+ std::swap(value_, other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata DoubleValue::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = DoubleValue_descriptor_;
+ metadata.reflection = DoubleValue_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// DoubleValue
+
+// optional double value = 1;
+void DoubleValue::clear_value() {
+ value_ = 0;
+}
+ double DoubleValue::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.DoubleValue.value)
+ return value_;
+}
+ void DoubleValue::set_value(double value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.DoubleValue.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int FloatValue::kValueFieldNumber;
+#endif // !_MSC_VER
+
+FloatValue::FloatValue()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.FloatValue)
+}
+
+void FloatValue::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+FloatValue::FloatValue(const FloatValue& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.FloatValue)
+}
+
+void FloatValue::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+ value_ = 0;
+}
+
+FloatValue::~FloatValue() {
+ // @@protoc_insertion_point(destructor:google.protobuf.FloatValue)
+ SharedDtor();
+}
+
+void FloatValue::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void FloatValue::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* FloatValue::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return FloatValue_descriptor_;
+}
+
+const FloatValue& FloatValue::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ return *default_instance_;
+}
+
+FloatValue* FloatValue::default_instance_ = NULL;
+
+FloatValue* FloatValue::New(::google::protobuf::Arena* arena) const {
+ FloatValue* n = new FloatValue;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void FloatValue::Clear() {
+ value_ = 0;
+}
+
+bool FloatValue::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.FloatValue)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional float value = 1;
+ case 1: {
+ if (tag == 13) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>(
+ input, &value_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.FloatValue)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.FloatValue)
+ return false;
+#undef DO_
+}
+
+void FloatValue::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.FloatValue)
+ // optional float value = 1;
+ if (this->value() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteFloat(1, this->value(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.FloatValue)
+}
+
+::google::protobuf::uint8* FloatValue::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.FloatValue)
+ // optional float value = 1;
+ if (this->value() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(1, this->value(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.FloatValue)
+ return target;
+}
+
+int FloatValue::ByteSize() const {
+ int total_size = 0;
+
+ // optional float value = 1;
+ if (this->value() != 0) {
+ total_size += 1 + 4;
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void FloatValue::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const FloatValue* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const FloatValue>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void FloatValue::MergeFrom(const FloatValue& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.value() != 0) {
+ set_value(from.value());
+ }
+}
+
+void FloatValue::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void FloatValue::CopyFrom(const FloatValue& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool FloatValue::IsInitialized() const {
+
+ return true;
+}
+
+void FloatValue::Swap(FloatValue* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void FloatValue::InternalSwap(FloatValue* other) {
+ std::swap(value_, other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata FloatValue::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = FloatValue_descriptor_;
+ metadata.reflection = FloatValue_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// FloatValue
+
+// optional float value = 1;
+void FloatValue::clear_value() {
+ value_ = 0;
+}
+ float FloatValue::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.FloatValue.value)
+ return value_;
+}
+ void FloatValue::set_value(float value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.FloatValue.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Int64Value::kValueFieldNumber;
+#endif // !_MSC_VER
+
+Int64Value::Int64Value()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Int64Value)
+}
+
+void Int64Value::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+Int64Value::Int64Value(const Int64Value& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Int64Value)
+}
+
+void Int64Value::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+ value_ = GOOGLE_LONGLONG(0);
+}
+
+Int64Value::~Int64Value() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Int64Value)
+ SharedDtor();
+}
+
+void Int64Value::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void Int64Value::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Int64Value::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Int64Value_descriptor_;
+}
+
+const Int64Value& Int64Value::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ return *default_instance_;
+}
+
+Int64Value* Int64Value::default_instance_ = NULL;
+
+Int64Value* Int64Value::New(::google::protobuf::Arena* arena) const {
+ Int64Value* n = new Int64Value;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Int64Value::Clear() {
+ value_ = GOOGLE_LONGLONG(0);
+}
+
+bool Int64Value::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Int64Value)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional int64 value = 1;
+ case 1: {
+ if (tag == 8) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+ input, &value_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Int64Value)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Int64Value)
+ return false;
+#undef DO_
+}
+
+void Int64Value::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Int64Value)
+ // optional int64 value = 1;
+ if (this->value() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->value(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Int64Value)
+}
+
+::google::protobuf::uint8* Int64Value::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Int64Value)
+ // optional int64 value = 1;
+ if (this->value() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->value(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Int64Value)
+ return target;
+}
+
+int Int64Value::ByteSize() const {
+ int total_size = 0;
+
+ // optional int64 value = 1;
+ if (this->value() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int64Size(
+ this->value());
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Int64Value::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Int64Value* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Int64Value>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Int64Value::MergeFrom(const Int64Value& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.value() != 0) {
+ set_value(from.value());
+ }
+}
+
+void Int64Value::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Int64Value::CopyFrom(const Int64Value& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Int64Value::IsInitialized() const {
+
+ return true;
+}
+
+void Int64Value::Swap(Int64Value* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Int64Value::InternalSwap(Int64Value* other) {
+ std::swap(value_, other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Int64Value::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Int64Value_descriptor_;
+ metadata.reflection = Int64Value_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Int64Value
+
+// optional int64 value = 1;
+void Int64Value::clear_value() {
+ value_ = GOOGLE_LONGLONG(0);
+}
+ ::google::protobuf::int64 Int64Value::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Int64Value.value)
+ return value_;
+}
+ void Int64Value::set_value(::google::protobuf::int64 value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Int64Value.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int UInt64Value::kValueFieldNumber;
+#endif // !_MSC_VER
+
+UInt64Value::UInt64Value()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.UInt64Value)
+}
+
+void UInt64Value::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+UInt64Value::UInt64Value(const UInt64Value& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.UInt64Value)
+}
+
+void UInt64Value::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+ value_ = GOOGLE_ULONGLONG(0);
+}
+
+UInt64Value::~UInt64Value() {
+ // @@protoc_insertion_point(destructor:google.protobuf.UInt64Value)
+ SharedDtor();
+}
+
+void UInt64Value::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void UInt64Value::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* UInt64Value::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return UInt64Value_descriptor_;
+}
+
+const UInt64Value& UInt64Value::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ return *default_instance_;
+}
+
+UInt64Value* UInt64Value::default_instance_ = NULL;
+
+UInt64Value* UInt64Value::New(::google::protobuf::Arena* arena) const {
+ UInt64Value* n = new UInt64Value;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void UInt64Value::Clear() {
+ value_ = GOOGLE_ULONGLONG(0);
+}
+
+bool UInt64Value::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.UInt64Value)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional uint64 value = 1;
+ case 1: {
+ if (tag == 8) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+ input, &value_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.UInt64Value)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.UInt64Value)
+ return false;
+#undef DO_
+}
+
+void UInt64Value::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.UInt64Value)
+ // optional uint64 value = 1;
+ if (this->value() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt64(1, this->value(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.UInt64Value)
+}
+
+::google::protobuf::uint8* UInt64Value::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.UInt64Value)
+ // optional uint64 value = 1;
+ if (this->value() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(1, this->value(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.UInt64Value)
+ return target;
+}
+
+int UInt64Value::ByteSize() const {
+ int total_size = 0;
+
+ // optional uint64 value = 1;
+ if (this->value() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt64Size(
+ this->value());
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void UInt64Value::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const UInt64Value* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const UInt64Value>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void UInt64Value::MergeFrom(const UInt64Value& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.value() != 0) {
+ set_value(from.value());
+ }
+}
+
+void UInt64Value::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void UInt64Value::CopyFrom(const UInt64Value& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool UInt64Value::IsInitialized() const {
+
+ return true;
+}
+
+void UInt64Value::Swap(UInt64Value* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void UInt64Value::InternalSwap(UInt64Value* other) {
+ std::swap(value_, other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata UInt64Value::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = UInt64Value_descriptor_;
+ metadata.reflection = UInt64Value_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// UInt64Value
+
+// optional uint64 value = 1;
+void UInt64Value::clear_value() {
+ value_ = GOOGLE_ULONGLONG(0);
+}
+ ::google::protobuf::uint64 UInt64Value::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.UInt64Value.value)
+ return value_;
+}
+ void UInt64Value::set_value(::google::protobuf::uint64 value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.UInt64Value.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Int32Value::kValueFieldNumber;
+#endif // !_MSC_VER
+
+Int32Value::Int32Value()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.Int32Value)
+}
+
+void Int32Value::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+Int32Value::Int32Value(const Int32Value& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.Int32Value)
+}
+
+void Int32Value::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+ value_ = 0;
+}
+
+Int32Value::~Int32Value() {
+ // @@protoc_insertion_point(destructor:google.protobuf.Int32Value)
+ SharedDtor();
+}
+
+void Int32Value::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void Int32Value::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Int32Value::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Int32Value_descriptor_;
+}
+
+const Int32Value& Int32Value::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ return *default_instance_;
+}
+
+Int32Value* Int32Value::default_instance_ = NULL;
+
+Int32Value* Int32Value::New(::google::protobuf::Arena* arena) const {
+ Int32Value* n = new Int32Value;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void Int32Value::Clear() {
+ value_ = 0;
+}
+
+bool Int32Value::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.Int32Value)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional int32 value = 1;
+ case 1: {
+ if (tag == 8) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &value_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.Int32Value)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.Int32Value)
+ return false;
+#undef DO_
+}
+
+void Int32Value::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.Int32Value)
+ // optional int32 value = 1;
+ if (this->value() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->value(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.Int32Value)
+}
+
+::google::protobuf::uint8* Int32Value::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.Int32Value)
+ // optional int32 value = 1;
+ if (this->value() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->value(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.Int32Value)
+ return target;
+}
+
+int Int32Value::ByteSize() const {
+ int total_size = 0;
+
+ // optional int32 value = 1;
+ if (this->value() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->value());
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void Int32Value::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const Int32Value* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const Int32Value>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void Int32Value::MergeFrom(const Int32Value& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.value() != 0) {
+ set_value(from.value());
+ }
+}
+
+void Int32Value::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void Int32Value::CopyFrom(const Int32Value& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool Int32Value::IsInitialized() const {
+
+ return true;
+}
+
+void Int32Value::Swap(Int32Value* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void Int32Value::InternalSwap(Int32Value* other) {
+ std::swap(value_, other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Int32Value::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Int32Value_descriptor_;
+ metadata.reflection = Int32Value_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Int32Value
+
+// optional int32 value = 1;
+void Int32Value::clear_value() {
+ value_ = 0;
+}
+ ::google::protobuf::int32 Int32Value::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Int32Value.value)
+ return value_;
+}
+ void Int32Value::set_value(::google::protobuf::int32 value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Int32Value.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int UInt32Value::kValueFieldNumber;
+#endif // !_MSC_VER
+
+UInt32Value::UInt32Value()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.UInt32Value)
+}
+
+void UInt32Value::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+UInt32Value::UInt32Value(const UInt32Value& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.UInt32Value)
+}
+
+void UInt32Value::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+ value_ = 0u;
+}
+
+UInt32Value::~UInt32Value() {
+ // @@protoc_insertion_point(destructor:google.protobuf.UInt32Value)
+ SharedDtor();
+}
+
+void UInt32Value::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void UInt32Value::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* UInt32Value::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return UInt32Value_descriptor_;
+}
+
+const UInt32Value& UInt32Value::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ return *default_instance_;
+}
+
+UInt32Value* UInt32Value::default_instance_ = NULL;
+
+UInt32Value* UInt32Value::New(::google::protobuf::Arena* arena) const {
+ UInt32Value* n = new UInt32Value;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void UInt32Value::Clear() {
+ value_ = 0u;
+}
+
+bool UInt32Value::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.UInt32Value)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional uint32 value = 1;
+ case 1: {
+ if (tag == 8) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &value_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.UInt32Value)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.UInt32Value)
+ return false;
+#undef DO_
+}
+
+void UInt32Value::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.UInt32Value)
+ // optional uint32 value = 1;
+ if (this->value() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->value(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.UInt32Value)
+}
+
+::google::protobuf::uint8* UInt32Value::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.UInt32Value)
+ // optional uint32 value = 1;
+ if (this->value() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->value(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.UInt32Value)
+ return target;
+}
+
+int UInt32Value::ByteSize() const {
+ int total_size = 0;
+
+ // optional uint32 value = 1;
+ if (this->value() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->value());
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void UInt32Value::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const UInt32Value* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const UInt32Value>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void UInt32Value::MergeFrom(const UInt32Value& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.value() != 0) {
+ set_value(from.value());
+ }
+}
+
+void UInt32Value::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void UInt32Value::CopyFrom(const UInt32Value& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool UInt32Value::IsInitialized() const {
+
+ return true;
+}
+
+void UInt32Value::Swap(UInt32Value* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void UInt32Value::InternalSwap(UInt32Value* other) {
+ std::swap(value_, other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata UInt32Value::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = UInt32Value_descriptor_;
+ metadata.reflection = UInt32Value_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// UInt32Value
+
+// optional uint32 value = 1;
+void UInt32Value::clear_value() {
+ value_ = 0u;
+}
+ ::google::protobuf::uint32 UInt32Value::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.UInt32Value.value)
+ return value_;
+}
+ void UInt32Value::set_value(::google::protobuf::uint32 value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.UInt32Value.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int BoolValue::kValueFieldNumber;
+#endif // !_MSC_VER
+
+BoolValue::BoolValue()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.BoolValue)
+}
+
+void BoolValue::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+BoolValue::BoolValue(const BoolValue& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.BoolValue)
+}
+
+void BoolValue::SharedCtor() {
+ _is_default_instance_ = false;
+ _cached_size_ = 0;
+ value_ = false;
+}
+
+BoolValue::~BoolValue() {
+ // @@protoc_insertion_point(destructor:google.protobuf.BoolValue)
+ SharedDtor();
+}
+
+void BoolValue::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void BoolValue::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* BoolValue::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return BoolValue_descriptor_;
+}
+
+const BoolValue& BoolValue::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ return *default_instance_;
+}
+
+BoolValue* BoolValue::default_instance_ = NULL;
+
+BoolValue* BoolValue::New(::google::protobuf::Arena* arena) const {
+ BoolValue* n = new BoolValue;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void BoolValue::Clear() {
+ value_ = false;
+}
+
+bool BoolValue::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.BoolValue)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional bool value = 1;
+ case 1: {
+ if (tag == 8) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &value_)));
+
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.BoolValue)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.BoolValue)
+ return false;
+#undef DO_
+}
+
+void BoolValue::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.BoolValue)
+ // optional bool value = 1;
+ if (this->value() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->value(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.BoolValue)
+}
+
+::google::protobuf::uint8* BoolValue::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.BoolValue)
+ // optional bool value = 1;
+ if (this->value() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->value(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.BoolValue)
+ return target;
+}
+
+int BoolValue::ByteSize() const {
+ int total_size = 0;
+
+ // optional bool value = 1;
+ if (this->value() != 0) {
+ total_size += 1 + 1;
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void BoolValue::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const BoolValue* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const BoolValue>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void BoolValue::MergeFrom(const BoolValue& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.value() != 0) {
+ set_value(from.value());
+ }
+}
+
+void BoolValue::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void BoolValue::CopyFrom(const BoolValue& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool BoolValue::IsInitialized() const {
+
+ return true;
+}
+
+void BoolValue::Swap(BoolValue* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void BoolValue::InternalSwap(BoolValue* other) {
+ std::swap(value_, other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata BoolValue::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = BoolValue_descriptor_;
+ metadata.reflection = BoolValue_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// BoolValue
+
+// optional bool value = 1;
+void BoolValue::clear_value() {
+ value_ = false;
+}
+ bool BoolValue::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.BoolValue.value)
+ return value_;
+}
+ void BoolValue::set_value(bool value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.BoolValue.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int StringValue::kValueFieldNumber;
+#endif // !_MSC_VER
+
+StringValue::StringValue()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.StringValue)
+}
+
+void StringValue::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+StringValue::StringValue(const StringValue& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.StringValue)
+}
+
+void StringValue::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+StringValue::~StringValue() {
+ // @@protoc_insertion_point(destructor:google.protobuf.StringValue)
+ SharedDtor();
+}
+
+void StringValue::SharedDtor() {
+ value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ }
+}
+
+void StringValue::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StringValue::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return StringValue_descriptor_;
+}
+
+const StringValue& StringValue::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ return *default_instance_;
+}
+
+StringValue* StringValue::default_instance_ = NULL;
+
+StringValue* StringValue::New(::google::protobuf::Arena* arena) const {
+ StringValue* n = new StringValue;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StringValue::Clear() {
+ value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+bool StringValue::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.StringValue)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional string value = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_value()));
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->value().data(), this->value().length(),
+ ::google::protobuf::internal::WireFormat::PARSE,
+ "google.protobuf.StringValue.value");
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.StringValue)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.StringValue)
+ return false;
+#undef DO_
+}
+
+void StringValue::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.StringValue)
+ // optional string value = 1;
+ if (this->value().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->value().data(), this->value().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.StringValue.value");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->value(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.StringValue)
+}
+
+::google::protobuf::uint8* StringValue::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.StringValue)
+ // optional string value = 1;
+ if (this->value().size() > 0) {
+ ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+ this->value().data(), this->value().length(),
+ ::google::protobuf::internal::WireFormat::SERIALIZE,
+ "google.protobuf.StringValue.value");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->value(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.StringValue)
+ return target;
+}
+
+int StringValue::ByteSize() const {
+ int total_size = 0;
+
+ // optional string value = 1;
+ if (this->value().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->value());
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void StringValue::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const StringValue* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StringValue>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void StringValue::MergeFrom(const StringValue& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.value().size() > 0) {
+
+ value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
+ }
+}
+
+void StringValue::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StringValue::CopyFrom(const StringValue& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StringValue::IsInitialized() const {
+
+ return true;
+}
+
+void StringValue::Swap(StringValue* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StringValue::InternalSwap(StringValue* other) {
+ value_.Swap(&other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StringValue::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = StringValue_descriptor_;
+ metadata.reflection = StringValue_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StringValue
+
+// optional string value = 1;
+void StringValue::clear_value() {
+ value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& StringValue::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.StringValue.value)
+ return value_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void StringValue::set_value(const ::std::string& value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.StringValue.value)
+}
+ void StringValue::set_value(const char* value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.StringValue.value)
+}
+ void StringValue::set_value(const char* value, size_t size) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.StringValue.value)
+}
+ ::std::string* StringValue::mutable_value() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.StringValue.value)
+ return value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* StringValue::release_value() {
+
+ return value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void StringValue::set_allocated_value(::std::string* value) {
+ if (value != NULL) {
+
+ } else {
+
+ }
+ value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.StringValue.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int BytesValue::kValueFieldNumber;
+#endif // !_MSC_VER
+
+BytesValue::BytesValue()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:google.protobuf.BytesValue)
+}
+
+void BytesValue::InitAsDefaultInstance() {
+ _is_default_instance_ = true;
+}
+
+BytesValue::BytesValue(const BytesValue& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL) {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:google.protobuf.BytesValue)
+}
+
+void BytesValue::SharedCtor() {
+ _is_default_instance_ = false;
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+BytesValue::~BytesValue() {
+ // @@protoc_insertion_point(destructor:google.protobuf.BytesValue)
+ SharedDtor();
+}
+
+void BytesValue::SharedDtor() {
+ value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (this != default_instance_) {
+ }
+}
+
+void BytesValue::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* BytesValue::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return BytesValue_descriptor_;
+}
+
+const BytesValue& BytesValue::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ return *default_instance_;
+}
+
+BytesValue* BytesValue::default_instance_ = NULL;
+
+BytesValue* BytesValue::New(::google::protobuf::Arena* arena) const {
+ BytesValue* n = new BytesValue;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void BytesValue::Clear() {
+ value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+bool BytesValue::MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
+ ::google::protobuf::uint32 tag;
+ // @@protoc_insertion_point(parse_start:google.protobuf.BytesValue)
+ for (;;) {
+ ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
+ tag = p.first;
+ if (!p.second) goto handle_unusual;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // optional bytes value = 1;
+ case 1: {
+ if (tag == 10) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+ input, this->mutable_value()));
+ } else {
+ goto handle_unusual;
+ }
+ if (input->ExpectAtEnd()) goto success;
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0 ||
+ ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:google.protobuf.BytesValue)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:google.protobuf.BytesValue)
+ return false;
+#undef DO_
+}
+
+void BytesValue::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:google.protobuf.BytesValue)
+ // optional bytes value = 1;
+ if (this->value().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
+ 1, this->value(), output);
+ }
+
+ // @@protoc_insertion_point(serialize_end:google.protobuf.BytesValue)
+}
+
+::google::protobuf::uint8* BytesValue::SerializeWithCachedSizesToArray(
+ ::google::protobuf::uint8* target) const {
+ // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.BytesValue)
+ // optional bytes value = 1;
+ if (this->value().size() > 0) {
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+ 1, this->value(), target);
+ }
+
+ // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.BytesValue)
+ return target;
+}
+
+int BytesValue::ByteSize() const {
+ int total_size = 0;
+
+ // optional bytes value = 1;
+ if (this->value().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::BytesSize(
+ this->value());
+ }
+
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = total_size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+ return total_size;
+}
+
+void BytesValue::MergeFrom(const ::google::protobuf::Message& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ const BytesValue* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const BytesValue>(
+ &from);
+ if (source == NULL) {
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ MergeFrom(*source);
+ }
+}
+
+void BytesValue::MergeFrom(const BytesValue& from) {
+ if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
+ if (from.value().size() > 0) {
+
+ value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
+ }
+}
+
+void BytesValue::CopyFrom(const ::google::protobuf::Message& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void BytesValue::CopyFrom(const BytesValue& from) {
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool BytesValue::IsInitialized() const {
+
+ return true;
+}
+
+void BytesValue::Swap(BytesValue* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void BytesValue::InternalSwap(BytesValue* other) {
+ value_.Swap(&other->value_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata BytesValue::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = BytesValue_descriptor_;
+ metadata.reflection = BytesValue_reflection_;
+ return metadata;
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// BytesValue
+
+// optional bytes value = 1;
+void BytesValue::clear_value() {
+ value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ const ::std::string& BytesValue::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.BytesValue.value)
+ return value_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void BytesValue::set_value(const ::std::string& value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.BytesValue.value)
+}
+ void BytesValue::set_value(const char* value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.BytesValue.value)
+}
+ void BytesValue::set_value(const void* value, size_t size) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.BytesValue.value)
+}
+ ::std::string* BytesValue::mutable_value() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.BytesValue.value)
+ return value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ ::std::string* BytesValue::release_value() {
+
+ return value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+ void BytesValue::set_allocated_value(::std::string* value) {
+ if (value != NULL) {
+
+ } else {
+
+ }
+ value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.BytesValue.value)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/google/protobuf/wrappers.pb.h b/src/google/protobuf/wrappers.pb.h
new file mode 100644
index 00000000..387ebd7c
--- /dev/null
+++ b/src/google/protobuf/wrappers.pb.h
@@ -0,0 +1,1011 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/protobuf/wrappers.proto
+
+#ifndef PROTOBUF_google_2fprotobuf_2fwrappers_2eproto__INCLUDED
+#define PROTOBUF_google_2fprotobuf_2fwrappers_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3000000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+
+namespace google {
+namespace protobuf {
+
+// Internal implementation detail -- do not call these.
+void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto();
+void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto();
+
+class DoubleValue;
+class FloatValue;
+class Int64Value;
+class UInt64Value;
+class Int32Value;
+class UInt32Value;
+class BoolValue;
+class StringValue;
+class BytesValue;
+
+// ===================================================================
+
+class LIBPROTOBUF_EXPORT DoubleValue : public ::google::protobuf::Message {
+ public:
+ DoubleValue();
+ virtual ~DoubleValue();
+
+ DoubleValue(const DoubleValue& from);
+
+ inline DoubleValue& operator=(const DoubleValue& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const DoubleValue& default_instance();
+
+ void Swap(DoubleValue* other);
+
+ // implements Message ----------------------------------------------
+
+ inline DoubleValue* New() const { return New(NULL); }
+
+ DoubleValue* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const DoubleValue& from);
+ void MergeFrom(const DoubleValue& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(DoubleValue* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional double value = 1;
+ void clear_value();
+ static const int kValueFieldNumber = 1;
+ double value() const;
+ void set_value(double value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.DoubleValue)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ double value_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto();
+
+ void InitAsDefaultInstance();
+ static DoubleValue* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT FloatValue : public ::google::protobuf::Message {
+ public:
+ FloatValue();
+ virtual ~FloatValue();
+
+ FloatValue(const FloatValue& from);
+
+ inline FloatValue& operator=(const FloatValue& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const FloatValue& default_instance();
+
+ void Swap(FloatValue* other);
+
+ // implements Message ----------------------------------------------
+
+ inline FloatValue* New() const { return New(NULL); }
+
+ FloatValue* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const FloatValue& from);
+ void MergeFrom(const FloatValue& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(FloatValue* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional float value = 1;
+ void clear_value();
+ static const int kValueFieldNumber = 1;
+ float value() const;
+ void set_value(float value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.FloatValue)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ float value_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto();
+
+ void InitAsDefaultInstance();
+ static FloatValue* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT Int64Value : public ::google::protobuf::Message {
+ public:
+ Int64Value();
+ virtual ~Int64Value();
+
+ Int64Value(const Int64Value& from);
+
+ inline Int64Value& operator=(const Int64Value& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Int64Value& default_instance();
+
+ void Swap(Int64Value* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Int64Value* New() const { return New(NULL); }
+
+ Int64Value* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Int64Value& from);
+ void MergeFrom(const Int64Value& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Int64Value* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional int64 value = 1;
+ void clear_value();
+ static const int kValueFieldNumber = 1;
+ ::google::protobuf::int64 value() const;
+ void set_value(::google::protobuf::int64 value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Int64Value)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::int64 value_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto();
+
+ void InitAsDefaultInstance();
+ static Int64Value* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT UInt64Value : public ::google::protobuf::Message {
+ public:
+ UInt64Value();
+ virtual ~UInt64Value();
+
+ UInt64Value(const UInt64Value& from);
+
+ inline UInt64Value& operator=(const UInt64Value& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const UInt64Value& default_instance();
+
+ void Swap(UInt64Value* other);
+
+ // implements Message ----------------------------------------------
+
+ inline UInt64Value* New() const { return New(NULL); }
+
+ UInt64Value* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const UInt64Value& from);
+ void MergeFrom(const UInt64Value& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(UInt64Value* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional uint64 value = 1;
+ void clear_value();
+ static const int kValueFieldNumber = 1;
+ ::google::protobuf::uint64 value() const;
+ void set_value(::google::protobuf::uint64 value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.UInt64Value)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::uint64 value_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto();
+
+ void InitAsDefaultInstance();
+ static UInt64Value* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT Int32Value : public ::google::protobuf::Message {
+ public:
+ Int32Value();
+ virtual ~Int32Value();
+
+ Int32Value(const Int32Value& from);
+
+ inline Int32Value& operator=(const Int32Value& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Int32Value& default_instance();
+
+ void Swap(Int32Value* other);
+
+ // implements Message ----------------------------------------------
+
+ inline Int32Value* New() const { return New(NULL); }
+
+ Int32Value* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const Int32Value& from);
+ void MergeFrom(const Int32Value& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(Int32Value* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional int32 value = 1;
+ void clear_value();
+ static const int kValueFieldNumber = 1;
+ ::google::protobuf::int32 value() const;
+ void set_value(::google::protobuf::int32 value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.Int32Value)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::int32 value_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto();
+
+ void InitAsDefaultInstance();
+ static Int32Value* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT UInt32Value : public ::google::protobuf::Message {
+ public:
+ UInt32Value();
+ virtual ~UInt32Value();
+
+ UInt32Value(const UInt32Value& from);
+
+ inline UInt32Value& operator=(const UInt32Value& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const UInt32Value& default_instance();
+
+ void Swap(UInt32Value* other);
+
+ // implements Message ----------------------------------------------
+
+ inline UInt32Value* New() const { return New(NULL); }
+
+ UInt32Value* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const UInt32Value& from);
+ void MergeFrom(const UInt32Value& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(UInt32Value* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional uint32 value = 1;
+ void clear_value();
+ static const int kValueFieldNumber = 1;
+ ::google::protobuf::uint32 value() const;
+ void set_value(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.UInt32Value)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::uint32 value_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto();
+
+ void InitAsDefaultInstance();
+ static UInt32Value* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT BoolValue : public ::google::protobuf::Message {
+ public:
+ BoolValue();
+ virtual ~BoolValue();
+
+ BoolValue(const BoolValue& from);
+
+ inline BoolValue& operator=(const BoolValue& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const BoolValue& default_instance();
+
+ void Swap(BoolValue* other);
+
+ // implements Message ----------------------------------------------
+
+ inline BoolValue* New() const { return New(NULL); }
+
+ BoolValue* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const BoolValue& from);
+ void MergeFrom(const BoolValue& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(BoolValue* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional bool value = 1;
+ void clear_value();
+ static const int kValueFieldNumber = 1;
+ bool value() const;
+ void set_value(bool value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.BoolValue)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ bool value_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto();
+
+ void InitAsDefaultInstance();
+ static BoolValue* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT StringValue : public ::google::protobuf::Message {
+ public:
+ StringValue();
+ virtual ~StringValue();
+
+ StringValue(const StringValue& from);
+
+ inline StringValue& operator=(const StringValue& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StringValue& default_instance();
+
+ void Swap(StringValue* other);
+
+ // implements Message ----------------------------------------------
+
+ inline StringValue* New() const { return New(NULL); }
+
+ StringValue* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const StringValue& from);
+ void MergeFrom(const StringValue& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(StringValue* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string value = 1;
+ void clear_value();
+ static const int kValueFieldNumber = 1;
+ const ::std::string& value() const;
+ void set_value(const ::std::string& value);
+ void set_value(const char* value);
+ void set_value(const char* value, size_t size);
+ ::std::string* mutable_value();
+ ::std::string* release_value();
+ void set_allocated_value(::std::string* value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.StringValue)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::internal::ArenaStringPtr value_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto();
+
+ void InitAsDefaultInstance();
+ static StringValue* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class LIBPROTOBUF_EXPORT BytesValue : public ::google::protobuf::Message {
+ public:
+ BytesValue();
+ virtual ~BytesValue();
+
+ BytesValue(const BytesValue& from);
+
+ inline BytesValue& operator=(const BytesValue& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const BytesValue& default_instance();
+
+ void Swap(BytesValue* other);
+
+ // implements Message ----------------------------------------------
+
+ inline BytesValue* New() const { return New(NULL); }
+
+ BytesValue* New(::google::protobuf::Arena* arena) const;
+ void CopyFrom(const ::google::protobuf::Message& from);
+ void MergeFrom(const ::google::protobuf::Message& from);
+ void CopyFrom(const BytesValue& from);
+ void MergeFrom(const BytesValue& from);
+ void Clear();
+ bool IsInitialized() const;
+
+ int ByteSize() const;
+ bool MergePartialFromCodedStream(
+ ::google::protobuf::io::CodedInputStream* input);
+ void SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const;
+ ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ void InternalSwap(BytesValue* other);
+ private:
+ inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+ return _internal_metadata_.arena();
+ }
+ inline void* MaybeArenaPtr() const {
+ return _internal_metadata_.raw_arena_ptr();
+ }
+ public:
+
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional bytes value = 1;
+ void clear_value();
+ static const int kValueFieldNumber = 1;
+ const ::std::string& value() const;
+ void set_value(const ::std::string& value);
+ void set_value(const char* value);
+ void set_value(const void* value, size_t size);
+ ::std::string* mutable_value();
+ ::std::string* release_value();
+ void set_allocated_value(::std::string* value);
+
+ // @@protoc_insertion_point(class_scope:google.protobuf.BytesValue)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool _is_default_instance_;
+ ::google::protobuf::internal::ArenaStringPtr value_;
+ mutable int _cached_size_;
+ friend void LIBPROTOBUF_EXPORT protobuf_AddDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_AssignDesc_google_2fprotobuf_2fwrappers_2eproto();
+ friend void protobuf_ShutdownFile_google_2fprotobuf_2fwrappers_2eproto();
+
+ void InitAsDefaultInstance();
+ static BytesValue* default_instance_;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// DoubleValue
+
+// optional double value = 1;
+inline void DoubleValue::clear_value() {
+ value_ = 0;
+}
+inline double DoubleValue::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.DoubleValue.value)
+ return value_;
+}
+inline void DoubleValue::set_value(double value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.DoubleValue.value)
+}
+
+// -------------------------------------------------------------------
+
+// FloatValue
+
+// optional float value = 1;
+inline void FloatValue::clear_value() {
+ value_ = 0;
+}
+inline float FloatValue::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.FloatValue.value)
+ return value_;
+}
+inline void FloatValue::set_value(float value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.FloatValue.value)
+}
+
+// -------------------------------------------------------------------
+
+// Int64Value
+
+// optional int64 value = 1;
+inline void Int64Value::clear_value() {
+ value_ = GOOGLE_LONGLONG(0);
+}
+inline ::google::protobuf::int64 Int64Value::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Int64Value.value)
+ return value_;
+}
+inline void Int64Value::set_value(::google::protobuf::int64 value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Int64Value.value)
+}
+
+// -------------------------------------------------------------------
+
+// UInt64Value
+
+// optional uint64 value = 1;
+inline void UInt64Value::clear_value() {
+ value_ = GOOGLE_ULONGLONG(0);
+}
+inline ::google::protobuf::uint64 UInt64Value::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.UInt64Value.value)
+ return value_;
+}
+inline void UInt64Value::set_value(::google::protobuf::uint64 value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.UInt64Value.value)
+}
+
+// -------------------------------------------------------------------
+
+// Int32Value
+
+// optional int32 value = 1;
+inline void Int32Value::clear_value() {
+ value_ = 0;
+}
+inline ::google::protobuf::int32 Int32Value::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.Int32Value.value)
+ return value_;
+}
+inline void Int32Value::set_value(::google::protobuf::int32 value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.Int32Value.value)
+}
+
+// -------------------------------------------------------------------
+
+// UInt32Value
+
+// optional uint32 value = 1;
+inline void UInt32Value::clear_value() {
+ value_ = 0u;
+}
+inline ::google::protobuf::uint32 UInt32Value::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.UInt32Value.value)
+ return value_;
+}
+inline void UInt32Value::set_value(::google::protobuf::uint32 value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.UInt32Value.value)
+}
+
+// -------------------------------------------------------------------
+
+// BoolValue
+
+// optional bool value = 1;
+inline void BoolValue::clear_value() {
+ value_ = false;
+}
+inline bool BoolValue::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.BoolValue.value)
+ return value_;
+}
+inline void BoolValue::set_value(bool value) {
+
+ value_ = value;
+ // @@protoc_insertion_point(field_set:google.protobuf.BoolValue.value)
+}
+
+// -------------------------------------------------------------------
+
+// StringValue
+
+// optional string value = 1;
+inline void StringValue::clear_value() {
+ value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StringValue::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.StringValue.value)
+ return value_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StringValue::set_value(const ::std::string& value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.StringValue.value)
+}
+inline void StringValue::set_value(const char* value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.StringValue.value)
+}
+inline void StringValue::set_value(const char* value, size_t size) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.StringValue.value)
+}
+inline ::std::string* StringValue::mutable_value() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.StringValue.value)
+ return value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StringValue::release_value() {
+
+ return value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StringValue::set_allocated_value(::std::string* value) {
+ if (value != NULL) {
+
+ } else {
+
+ }
+ value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.StringValue.value)
+}
+
+// -------------------------------------------------------------------
+
+// BytesValue
+
+// optional bytes value = 1;
+inline void BytesValue::clear_value() {
+ value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& BytesValue::value() const {
+ // @@protoc_insertion_point(field_get:google.protobuf.BytesValue.value)
+ return value_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void BytesValue::set_value(const ::std::string& value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:google.protobuf.BytesValue.value)
+}
+inline void BytesValue::set_value(const char* value) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:google.protobuf.BytesValue.value)
+}
+inline void BytesValue::set_value(const void* value, size_t size) {
+
+ value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:google.protobuf.BytesValue.value)
+}
+inline ::std::string* BytesValue::mutable_value() {
+
+ // @@protoc_insertion_point(field_mutable:google.protobuf.BytesValue.value)
+ return value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* BytesValue::release_value() {
+
+ return value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void BytesValue::set_allocated_value(::std::string* value) {
+ if (value != NULL) {
+
+ } else {
+
+ }
+ value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set_allocated:google.protobuf.BytesValue.value)
+}
+
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_google_2fprotobuf_2fwrappers_2eproto__INCLUDED
diff --git a/src/google/protobuf/wrappers.proto b/src/google/protobuf/wrappers.proto
index 4c902d44..a13e6edb 100644
--- a/src/google/protobuf/wrappers.proto
+++ b/src/google/protobuf/wrappers.proto
@@ -40,6 +40,7 @@ package google.protobuf;
option java_multiple_files = true;
option java_outer_classname = "WrappersProto";
option java_package = "com.google.protobuf";
+option csharp_namespace = "Google.ProtocolBuffers";
option objc_class_prefix = "GPB";
diff --git a/travis.sh b/travis.sh
new file mode 100755
index 00000000..26efc879
--- /dev/null
+++ b/travis.sh
@@ -0,0 +1,171 @@
+#!/usr/bin/env bash
+
+build_cpp() {
+ ./autogen.sh
+ ./configure
+ make -j2
+ make check -j2
+ cd conformance && make test_cpp && cd ..
+}
+
+build_cpp_distcheck() {
+ ./autogen.sh
+ ./configure
+ make distcheck -j2
+}
+
+build_csharp() {
+ # Install latest version of Mono
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
+ echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
+ echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list
+ sudo apt-get update -qq
+ sudo apt-get install -qq mono-devel referenceassemblies-pcl nunit
+ wget www.nuget.org/NuGet.exe -O nuget.exe
+
+ (cd csharp/src; mono ../../nuget.exe restore)
+ csharp/buildall.sh
+}
+
+use_java() {
+ if [ `uname` != "Linux" ]; then
+ # It's nontrivial to programmatically install a new JDK from the command
+ # line on OS X, so we rely on testing on Linux for Java code.
+ echo "Java not tested on OS X."
+ exit 0 # success
+ fi
+ version=$1
+ case "$version" in
+ jdk6)
+ sudo apt-get install openjdk-6-jdk
+ export PATH=/usr/lib/jvm/java-6-openjdk-amd64/bin:$PATH
+ ;;
+ jdk7)
+ sudo apt-get install openjdk-7-jdk
+ export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH
+ ;;
+ oracle7)
+ sudo apt-get install python-software-properties # for apt-add-repository
+ echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 select true" | \
+ sudo debconf-set-selections
+ yes | sudo apt-add-repository ppa:webupd8team/java
+ yes | sudo apt-get install oracle-java7-installer
+ export PATH=/usr/lib/jvm/java-7-oracle/bin:$PATH
+ ;;
+ esac
+
+ which java
+ java -version
+}
+
+build_java() {
+ # Java build needs `protoc`.
+ ./autogen.sh
+ ./configure
+ make -j2
+ cd java && mvn test && cd ..
+ cd conformance && make test_java && cd ..
+}
+
+build_javanano() {
+ # Java build needs `protoc`.
+ ./autogen.sh
+ ./configure
+ make -j2
+ cd javanano && mvn test && cd ..
+}
+
+build_java_jdk6() {
+ use_java jdk6
+ build_java
+}
+build_java_jdk7() {
+ use_java jdk7
+ build_java
+}
+build_java_oracle7() {
+ use_java oracle7
+ build_java
+}
+
+build_javanano_jdk6() {
+ use_java jdk6
+ build_javanano
+}
+build_javanano_jdk7() {
+ use_java jdk7
+ build_javanano
+}
+build_javanano_oracle7() {
+ use_java oracle7
+ build_javanano
+}
+
+build_python() {
+ ./autogen.sh
+ ./configure
+ make -j2
+ cd python
+ python setup.py build
+ python setup.py test
+ python setup.py sdist
+ sudo pip install virtualenv && virtualenv /tmp/protoenv && /tmp/protoenv/bin/pip install dist/*
+ cd ..
+}
+
+build_python_cpp() {
+ ./autogen.sh
+ ./configure
+ make -j2
+ export LD_LIBRARY_PATH=../src/.libs # for Linux
+ export DYLD_LIBRARY_PATH=../src/.libs # for OS X
+ cd python
+ python setup.py build --cpp_implementation
+ python setup.py test --cpp_implementation
+ python setup.py sdist --cpp_implementation
+ sudo pip install virtualenv && virtualenv /tmp/protoenv && /tmp/protoenv/bin/pip install dist/*
+ cd ..
+}
+
+build_ruby19() {
+ cd ruby && bash travis-test.sh ruby-1.9 && cd ..
+}
+build_ruby20() {
+ cd ruby && bash travis-test.sh ruby-2.0 && cd ..
+}
+build_ruby21() {
+ cd ruby && bash travis-test.sh ruby-2.1 && cd ..
+}
+build_ruby22() {
+ cd ruby && bash travis-test.sh ruby-2.2 && cd ..
+}
+build_jruby() {
+ cd ruby && bash travis-test.sh jruby && cd ..
+}
+
+# -------- main --------
+
+if [ "$#" -ne 1 ]; then
+ echo "
+Usage: $0 { cpp |
+ csharp |
+ java_jdk6 |
+ java_jdk7 |
+ java_oracle7 |
+ javanano_jdk6 |
+ javanano_jdk7 |
+ javanano_oracle7 |
+ python |
+ python_cpp |
+ ruby_19 |
+ ruby_20 |
+ ruby_21 |
+ ruby_22 |
+ jruby }
+"
+ exit 1
+fi
+
+set -e # exit immediately on error
+set -x # display all commands
+eval "build_$1"
diff --git a/vsprojects/extract_includes.bat b/vsprojects/extract_includes.bat
index ddf7f33f..989fef4b 100755
--- a/vsprojects/extract_includes.bat
+++ b/vsprojects/extract_includes.bat
@@ -9,14 +9,21 @@ md include\google\protobuf\compiler\java
md include\google\protobuf\compiler\javanano
md include\google\protobuf\compiler\python
md include\google\protobuf\compiler\ruby
+copy ..\src\google\protobuf\any.pb.h include\google\protobuf\any.pb.h
+copy ..\src\google\protobuf\api.pb.h include\google\protobuf\api.pb.h
+copy ..\src\google\protobuf\any.h include\google\protobuf\any.h
copy ..\src\google\protobuf\arena.h include\google\protobuf\arena.h
copy ..\src\google\protobuf\arenastring.h include\google\protobuf\arenastring.h
copy ..\src\google\protobuf\compiler\code_generator.h include\google\protobuf\compiler\code_generator.h
copy ..\src\google\protobuf\compiler\command_line_interface.h include\google\protobuf\compiler\command_line_interface.h
copy ..\src\google\protobuf\compiler\cpp\cpp_generator.h include\google\protobuf\compiler\cpp\cpp_generator.h
+copy ..\src\google\protobuf\compiler\csharp\csharp_generator.h include\google\protobuf\compiler\csharp\csharp_generator.h
copy ..\src\google\protobuf\compiler\importer.h include\google\protobuf\compiler\importer.h
copy ..\src\google\protobuf\compiler\java\java_generator.h include\google\protobuf\compiler\java\java_generator.h
+copy ..\src\google\protobuf\compiler\java\java_names.h include\google\protobuf\compiler\java\java_names.h
copy ..\src\google\protobuf\compiler\javanano\javanano_generator.h include\google\protobuf\compiler\javanano\javanano_generator.h
+copy ..\src\google\protobuf\compiler\objectivec\objectivec_generator.h include\google\protobuf\compiler\objectivec\objectivec_generator.h
+copy ..\src\google\protobuf\compiler\objectivec\objectivec_helpers.h include\google\protobuf\compiler\objectivec\objectivec_helpers.h
copy ..\src\google\protobuf\compiler\parser.h include\google\protobuf\compiler\parser.h
copy ..\src\google\protobuf\compiler\plugin.h include\google\protobuf\compiler\plugin.h
copy ..\src\google\protobuf\compiler\plugin.pb.h include\google\protobuf\compiler\plugin.pb.h
@@ -26,7 +33,9 @@ copy ..\src\google\protobuf\descriptor_database.h include\google\protobuf\descri
copy ..\src\google\protobuf\descriptor.h include\google\protobuf\descriptor.h
copy ..\src\google\protobuf\descriptor.pb.h include\google\protobuf\descriptor.pb.h
copy ..\src\google\protobuf\dynamic_message.h include\google\protobuf\dynamic_message.h
+copy ..\src\google\protobuf\empty.pb.h include\google\protobuf\empty.pb.h
copy ..\src\google\protobuf\extension_set.h include\google\protobuf\extension_set.h
+copy ..\src\google\protobuf\field_mask.pb.h include\google\protobuf\field_mask.pb.h
copy ..\src\google\protobuf\generated_enum_reflection.h include\google\protobuf\generated_enum_reflection.h
copy ..\src\google\protobuf\generated_enum_util.h include\google\protobuf\generated_enum_util.h
copy ..\src\google\protobuf\generated_message_reflection.h include\google\protobuf\generated_message_reflection.h
@@ -42,8 +51,8 @@ copy ..\src\google\protobuf\io\zero_copy_stream_impl_lite.h include\google\proto
copy ..\src\google\protobuf\map_entry.h include\google\protobuf\map_entry.h
copy ..\src\google\protobuf\map_entry_lite.h include\google\protobuf\map_entry_lite.h
copy ..\src\google\protobuf\map_field.h include\google\protobuf\map_field.h
-copy ..\src\google\protobuf\map_field_lite.h include\google\protobuf\map_field_lite.h
copy ..\src\google\protobuf\map_field_inl.h include\google\protobuf\map_field_inl.h
+copy ..\src\google\protobuf\map_field_lite.h include\google\protobuf\map_field_lite.h
copy ..\src\google\protobuf\map.h include\google\protobuf\map.h
copy ..\src\google\protobuf\map_type_handler.h include\google\protobuf\map_type_handler.h
copy ..\src\google\protobuf\message.h include\google\protobuf\message.h
@@ -54,6 +63,8 @@ copy ..\src\google\protobuf\reflection_ops.h include\google\protobuf\reflection_
copy ..\src\google\protobuf\repeated_field.h include\google\protobuf\repeated_field.h
copy ..\src\google\protobuf\repeated_field_reflection.h include\google\protobuf\repeated_field_reflection.h
copy ..\src\google\protobuf\service.h include\google\protobuf\service.h
+copy ..\src\google\protobuf\source_context.pb.h include\google\protobuf\source_context.pb.h
+copy ..\src\google\protobuf\struct.pb.h include\google\protobuf\struct.pb.h
copy ..\src\google\protobuf\stubs\atomicops.h include\google\protobuf\stubs\atomicops.h
copy ..\src\google\protobuf\stubs\atomicops_internals_aix.h include\google\protobuf\stubs\atomicops_internals_aix.h
copy ..\src\google\protobuf\stubs\atomicops_internals_arm64_gcc.h include\google\protobuf\stubs\atomicops_internals_arm64_gcc.h
@@ -72,16 +83,20 @@ copy ..\src\google\protobuf\stubs\atomic_sequence_num.h include\google\protobuf\
copy ..\src\google\protobuf\stubs\casts.h include\google\protobuf\stubs\casts.h
copy ..\src\google\protobuf\stubs\common.h include\google\protobuf\stubs\common.h
copy ..\src\google\protobuf\stubs\fastmem.h include\google\protobuf\stubs\fastmem.h
+copy ..\src\google\protobuf\stubs\hash.h include\google\protobuf\stubs\hash.h
copy ..\src\google\protobuf\stubs\once.h include\google\protobuf\stubs\once.h
copy ..\src\google\protobuf\stubs\platform_macros.h include\google\protobuf\stubs\platform_macros.h
+copy ..\src\google\protobuf\stubs\shared_ptr.h include\google\protobuf\stubs\shared_ptr.h
copy ..\src\google\protobuf\stubs\singleton.h include\google\protobuf\stubs\singleton.h
-copy ..\src\google\protobuf\stubs\hash.h include\google\protobuf\stubs\hash.h
copy ..\src\google\protobuf\stubs\stl_util.h include\google\protobuf\stubs\stl_util.h
copy ..\src\google\protobuf\stubs\template_util.h include\google\protobuf\stubs\template_util.h
copy ..\src\google\protobuf\stubs\type_traits.h include\google\protobuf\stubs\type_traits.h
copy ..\src\google\protobuf\text_format.h include\google\protobuf\text_format.h
+copy ..\src\google\protobuf\timestamp.pb.h include\google\protobuf\timestamp.pb.h
+copy ..\src\google\protobuf\type.pb.h include\google\protobuf\type.pb.h
copy ..\src\google\protobuf\unknown_field_set.h include\google\protobuf\unknown_field_set.h
copy ..\src\google\protobuf\wire_format.h include\google\protobuf\wire_format.h
copy ..\src\google\protobuf\wire_format_lite.h include\google\protobuf\wire_format_lite.h
copy ..\src\google\protobuf\wire_format_lite_inl.h include\google\protobuf\wire_format_lite_inl.h
+copy ..\src\google\protobuf\wrappers.pb.h include\google\protobuf\wrappers.pb.h
copy google\protobuf\stubs\pbconfig.h include\google\protobuf\stubs\pbconfig.h
diff --git a/vsprojects/google/protobuf/stubs/pbconfig.h b/vsprojects/google/protobuf/stubs/pbconfig.h
index 18250a22..9629f2e4 100755
--- a/vsprojects/google/protobuf/stubs/pbconfig.h
+++ b/vsprojects/google/protobuf/stubs/pbconfig.h
@@ -10,24 +10,34 @@
// http://blogs.msdn.com/vcblog/archive/2009/05/25/stl-breaking-changes-in-visual-studio-2010-beta-1.aspx
// And.. they are moved back to stdext in MSVC 2013 (haven't checked 2012). That
// said, use unordered_map for MSVC 2010 and beyond is our safest bet.
-#if _MSC_VER >= 1600
+#if _MSC_VER >= 1600 // Since Visual Studio 2010
#define GOOGLE_PROTOBUF_HASH_NAMESPACE std
#define GOOGLE_PROTOBUF_HASH_MAP_H <unordered_map>
#define GOOGLE_PROTOBUF_HASH_MAP_CLASS unordered_map
#define GOOGLE_PROTOBUF_HASH_SET_H <unordered_set>
#define GOOGLE_PROTOBUF_HASH_SET_CLASS unordered_set
+#define GOOGLE_PROTOBUF_HASH_COMPARE std::hash_compare
+#elif _MSC_VER >= 1500 // Since Visual Studio 2008
+#define GOOGLE_PROTOBUF_HASH_NAMESPACE std::tr1
+#define GOOGLE_PROTOBUF_HASH_MAP_H <unordered_map>
+#define GOOGLE_PROTOBUF_HASH_MAP_CLASS unordered_map
+#define GOOGLE_PROTOBUF_HASH_SET_H <unordered_set>
+#define GOOGLE_PROTOBUF_HASH_SET_CLASS unordered_set
+#define GOOGLE_PROTOBUF_HASH_COMPARE stdext::hash_compare
#elif _MSC_VER >= 1310
#define GOOGLE_PROTOBUF_HASH_NAMESPACE stdext
#define GOOGLE_PROTOBUF_HASH_MAP_H <hash_map>
#define GOOGLE_PROTOBUF_HASH_MAP_CLASS hash_map
#define GOOGLE_PROTOBUF_HASH_SET_H <hash_set>
#define GOOGLE_PROTOBUF_HASH_SET_CLASS hash_set
+#define GOOGLE_PROTOBUF_HASH_COMPARE stdext::hash_compare
#else
#define GOOGLE_PROTOBUF_HASH_NAMESPACE std
#define GOOGLE_PROTOBUF_HASH_MAP_H <hash_map>
#define GOOGLE_PROTOBUF_HASH_MAP_CLASS hash_map
#define GOOGLE_PROTOBUF_HASH_SET_H <hash_set>
#define GOOGLE_PROTOBUF_HASH_SET_CLASS hash_set
+#define GOOGLE_PROTOBUF_HASH_COMPARE stdext::hash_compare
#endif
/* the location of <hash_set> */
diff --git a/vsprojects/libprotobuf-lite.vcproj b/vsprojects/libprotobuf-lite.vcproj
index d245448d..be20dd0b 100644
--- a/vsprojects/libprotobuf-lite.vcproj
+++ b/vsprojects/libprotobuf-lite.vcproj
@@ -147,101 +147,28 @@
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
- <File
- RelativePath="..\src\google\protobuf\io\coded_stream.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\coded_stream_inl.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\common.h"
- >
- </File>
- <File
- RelativePath=".\config.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\stubs\pbconfig.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\extension_set.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\generated_message_util.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\hash.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\map-util.h"
- >
- </File>
+ <File RelativePath=".\config.h"></File>
+ <File RelativePath=".\google\protobuf\stubs\pbconfig.h"></File>
+ <File RelativePath="..\src\google\protobuf\extension_set.h"></File>
+ <File RelativePath="..\src\google\protobuf\generated_message_util.h"></File>
<File RelativePath="..\src\google\protobuf\generated_enum_util.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\coded_stream.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.h"></File>
<File RelativePath="..\src\google\protobuf\map_entry_lite.h"></File>
<File RelativePath="..\src\google\protobuf\map_field_lite.h"></File>
- <File
- RelativePath="..\src\google\protobuf\message_lite.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\once.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\atomicops.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\platform_macros.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\repeated_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\stl_util.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\wire_format_lite.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\wire_format_lite_inl.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\stringprintf.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\template_util.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\type_traits.h"
- >
- </File>
+ <File RelativePath="..\src\google\protobuf\message_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\repeated_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\atomicops.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\common.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\once.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\platform_macros.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\stl_util.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\template_util.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\type_traits.h"></File>
+ <File RelativePath="..\src\google\protobuf\wire_format_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\wire_format_lite_inl.h"></File>
</Filter>
<Filter
Name="Resource Files"
@@ -254,66 +181,26 @@
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
- <File
- RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_gcc.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\common.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\once.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\stringprintf.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\arena.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\arenastring.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\extension_set.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\generated_message_util.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\message_lite.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\repeated_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\wire_format_lite.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\coded_stream.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"
- >
- </File>
+ <File RelativePath="..\src\google\protobuf\arena.cc"></File>
+ <File RelativePath="..\src\google\protobuf\arenastring.cc"></File>
+ <File RelativePath="..\src\google\protobuf\extension_set.cc"></File>
+ <File RelativePath="..\src\google\protobuf\generated_message_util.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\coded_stream.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\coded_stream_inl.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\message_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\repeated_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_gcc.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\common.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\hash.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\map_util.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\once.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\shared_ptr.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\stringprintf.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\stringprintf.h"></File>
+ <File RelativePath="..\src\google\protobuf\wire_format_lite.cc"></File>
</Filter>
</Files>
<Globals>
diff --git a/vsprojects/libprotobuf.vcproj b/vsprojects/libprotobuf.vcproj
index e782885f..0daec6d9 100644
--- a/vsprojects/libprotobuf.vcproj
+++ b/vsprojects/libprotobuf.vcproj
@@ -147,181 +147,49 @@
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
- <File
- RelativePath="..\src\google\protobuf\io\coded_stream.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\coded_stream_inl.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\common.h"
- >
- </File>
- <File
- RelativePath=".\config.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\stubs\pbconfig.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\descriptor.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\descriptor.pb.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\descriptor_database.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\dynamic_message.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\extension_set.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\generated_message_reflection.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\generated_message_util.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\gzip_stream.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\strtod.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\hash.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\importer.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\map_util.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\message.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\message_lite.h"
- >
- </File>
+ <File RelativePath=".\config.h"></File>
+ <File RelativePath=".\google\protobuf\stubs\pbconfig.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\importer.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\parser.h"></File>
+ <File RelativePath="..\src\google\protobuf\descriptor.h"></File>
+ <File RelativePath="..\src\google\protobuf\descriptor.pb.h"></File>
+ <File RelativePath="..\src\google\protobuf\descriptor_database.h"></File>
+ <File RelativePath="..\src\google\protobuf\dynamic_message.h"></File>
+ <File RelativePath="..\src\google\protobuf\extension_set.h"></File>
<File RelativePath="..\src\google\protobuf\generated_enum_util.h"></File>
+ <File RelativePath="..\src\google\protobuf\generated_message_reflection.h"></File>
+ <File RelativePath="..\src\google\protobuf\generated_message_util.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\coded_stream.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\gzip_stream.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\strtod.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\printer.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\tokenizer.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.h"></File>
<File RelativePath="..\src\google\protobuf\map_entry_lite.h"></File>
<File RelativePath="..\src\google\protobuf\map_field_lite.h"></File>
- <File
- RelativePath="..\src\google\protobuf\stubs\atomicops.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\platform_macros.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\once.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\parser.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\printer.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\reflection_ops.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\repeated_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\service.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\stl_util.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\stringprintf.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\template_util.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\type_traits.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\strutil.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\substitute.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\text_format.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\tokenizer.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\unknown_field_set.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\wire_format.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\wire_format_lite.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\wire_format_lite_inl.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.h"
- >
- </File>
+ <File RelativePath="..\src\google\protobuf\message.h"></File>
+ <File RelativePath="..\src\google\protobuf\message_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\reflection_ops.h"></File>
+ <File RelativePath="..\src\google\protobuf\repeated_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\service.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\atomicops.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\common.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\map_util.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\once.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\platform_macros.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\stl_util.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\strutil.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\substitute.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\template_util.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\type_traits.h"></File>
+ <File RelativePath="..\src\google\protobuf\text_format.h"></File>
+ <File RelativePath="..\src\google\protobuf\unknown_field_set.h"></File>
+ <File RelativePath="..\src\google\protobuf\wire_format.h"></File>
+ <File RelativePath="..\src\google\protobuf\wire_format_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\wire_format_lite_inl.h"></File>
</Filter>
<Filter
Name="Resource Files"
@@ -334,170 +202,63 @@
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
- <File
- RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_gcc.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\common.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\once.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\stringprintf.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\arena.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\arenastring.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\extension_set.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\generated_message_util.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\map_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\message_lite.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\repeated_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\wire_format_lite.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\coded_stream.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\strutil.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\strutil.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\substitute.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\substitute.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\structurally_valid.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\descriptor.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\descriptor_database.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\descriptor.pb.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\dynamic_message.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\extension_set_heavy.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\generated_message_reflection.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\message.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\reflection_internal.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\reflection_ops.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\service.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\text_format.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\unknown_field_set.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\wire_format.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\gzip_stream.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\printer.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\strtod.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\tokenizer.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\importer.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\parser.cc"
- >
- </File>
+ <File RelativePath="..\src\google\protobuf\arena.cc"></File>
+ <File RelativePath="..\src\google\protobuf\arenastring.cc"></File>
+ <File RelativePath="..\src\google\protobuf\extension_set.cc"></File>
+ <File RelativePath="..\src\google\protobuf\generated_message_util.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\coded_stream.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\coded_stream_inl.h"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\message_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\repeated_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_gcc.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\atomicops_internals_x86_msvc.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\common.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\hash.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\map_util.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\once.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\shared_ptr.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\stringprintf.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\stringprintf.h"></File>
+ <File RelativePath="..\src\google\protobuf\wire_format_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\any.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\any.cc"></File>
+ <File RelativePath="..\src\google\protobuf\api.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\importer.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\parser.cc"></File>
+ <File RelativePath="..\src\google\protobuf\descriptor.cc"></File>
+ <File RelativePath="..\src\google\protobuf\descriptor_database.cc"></File>
+ <File RelativePath="..\src\google\protobuf\descriptor.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\duration.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\dynamic_message.cc"></File>
+ <File RelativePath="..\src\google\protobuf\empty.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\extension_set_heavy.cc"></File>
+ <File RelativePath="..\src\google\protobuf\field_mask.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\generated_message_reflection.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\gzip_stream.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\printer.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\strtod.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\tokenizer.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream_impl.cc"></File>
+ <File RelativePath="..\src\google\protobuf\map_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\message.cc"></File>
+ <File RelativePath="..\src\google\protobuf\reflection_internal.h"></File>
+ <File RelativePath="..\src\google\protobuf\reflection_ops.cc"></File>
+ <File RelativePath="..\src\google\protobuf\service.cc"></File>
+ <File RelativePath="..\src\google\protobuf\source_context.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\struct.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\structurally_valid.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\strutil.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\strutil.h"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\substitute.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\substitute.h"></File>
+ <File RelativePath="..\src\google\protobuf\text_format.cc"></File>
+ <File RelativePath="..\src\google\protobuf\type.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\timestamp.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\unknown_field_set.cc"></File>
+ <File RelativePath="..\src\google\protobuf\wire_format.cc"></File>
+ <File RelativePath="..\src\google\protobuf\wrappers.pb.cc"></File>
</Filter>
</Files>
<Globals>
diff --git a/vsprojects/libprotoc.vcproj b/vsprojects/libprotoc.vcproj
index 455c2cc2..515a6096 100644
--- a/vsprojects/libprotoc.vcproj
+++ b/vsprojects/libprotoc.vcproj
@@ -147,158 +147,69 @@
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
- <File
- RelativePath="..\src\google\protobuf\compiler\code_generator.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\command_line_interface.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\subprocess.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\zip_writer.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\plugin.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\plugin.pb.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_enum.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_enum_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_extension.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_file.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_generator.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_helpers.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_options.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_primitive_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_service.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_string_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_context.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_enum.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_enum_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_extension.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_file.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_generator.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_generator_factory.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_helpers.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_lazy_message_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_message.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_message_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_name_resolver.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_primitive_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_service.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_shared_code_generator.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_string_field.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment.cc"
- >
- </File>
+ <File RelativePath="..\src\google\protobuf\compiler\code_generator.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\command_line_interface.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\subprocess.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\zip_writer.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\plugin.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\plugin.pb.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_enum.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_enum_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_extension.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_file.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_generator.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_helpers.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_map_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_options.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_primitive_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_service.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_string_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_enum.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_enum_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_extension.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_field_base.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_generator.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_helpers.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_message.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_message_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_primitive_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_repeated_enum_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_repeated_message_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_repeated_primitive_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_source_generator_base.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_umbrella_class.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_writer.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_context.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_enum.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_enum_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_enum_field_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_extension.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_file.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_generator.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_generator_factory.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_helpers.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_lazy_message_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_lazy_message_field_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_map_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_map_field_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message_builder.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message_builder_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message_field_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_name_resolver.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_primitive_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_primitive_field_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_service.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_shared_code_generator.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_string_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_string_field_lite.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment.h"></File>
<File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_enum_field.h"></File>
<File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_enum.h"></File>
<File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_extension.h"></File>
@@ -311,14 +222,20 @@
<File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_message.h"></File>
<File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_params.h"></File>
<File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_primitive_field.h"></File>
- <File
- RelativePath="..\src\google\protobuf\compiler\python\python_generator.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\ruby\ruby_generator.h"
- >
- </File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_enum.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_enum_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_extension.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_file.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_generator.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_helpers.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_map_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_message.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_message_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_oneof.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_primitive_field.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\python\python_generator.h"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\ruby\ruby_generator.h"></File>
</Filter>
<Filter
Name="Resource Files"
@@ -331,210 +248,93 @@
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
- <File
- RelativePath="..\src\google\protobuf\compiler\code_generator.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\command_line_interface.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_enum.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_enum_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_extension.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_file.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_generator.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_helpers.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_map_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_primitive_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_service.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_string_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\ruby\ruby_generator.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_context.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_enum.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_enum_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_extension.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_file.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_generator.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_generator_factory.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_helpers.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_lazy_message_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_map_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_message.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_message_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_name_resolver.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_primitive_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_service.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_shared_code_generator.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_string_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_enum.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_enum_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_extension.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_file.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_generator.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_helpers.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_map_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_message.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_message_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\javanano\javanano_primitive_field.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\plugin.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\plugin.pb.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\python\python_generator.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\subprocess.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\zip_writer.cc"
- >
- </File>
+ <File RelativePath="..\src\google\protobuf\compiler\code_generator.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\command_line_interface.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\plugin.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\plugin.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\subprocess.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\zip_writer.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_enum.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_enum_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_extension.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_file.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_generator.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_helpers.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_map_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_message_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_primitive_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_service.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_string_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_enum.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_enum_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_extension.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_field_base.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_generator.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_helpers.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_message.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_message_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_primitive_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_repeated_enum_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_repeated_message_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_repeated_primitive_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_source_generator_base.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_umbrella_class.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_writer.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_context.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_enum.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_enum_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_enum_field_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_extension.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_file.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_generator.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_generator_factory.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_helpers.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_lazy_message_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_lazy_message_field_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_map_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_map_field_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message_builder.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message_builder_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_message_field_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_name_resolver.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_primitive_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_primitive_field_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_service.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_shared_code_generator.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_string_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_string_field_lite.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_enum.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_enum_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_extension.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_file.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_generator.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_helpers.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_map_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_message.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_message_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\javanano\javanano_primitive_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_enum.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_enum_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_extension.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_file.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_generator.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_helpers.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_map_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_message.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_message_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_oneof.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_primitive_field.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\python\python_generator.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\ruby\ruby_generator.cc"></File>
</Filter>
</Files>
<Globals>
diff --git a/vsprojects/lite-test.vcproj b/vsprojects/lite-test.vcproj
index 8d172248..aba212b1 100644
--- a/vsprojects/lite-test.vcproj
+++ b/vsprojects/lite-test.vcproj
@@ -178,24 +178,13 @@
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
- <File
- RelativePath="..\src\google\protobuf\test_util_lite.h"
- >
- </File>
<File RelativePath=".\google\protobuf\map_lite_unittest.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_import_lite.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_import_public_lite.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_lite.pb.h"></File>
+ <File RelativePath="..\src\google\protobuf\arena_test_util.h"></File>
<File RelativePath="..\src\google\protobuf\map_lite_test_util.h"></File>
- <File
- RelativePath=".\google\protobuf\unittest_lite.pb.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_import_lite.pb.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_import_public_lite.pb.h"
- >
- </File>
+ <File RelativePath="..\src\google\protobuf\test_util_lite.h"></File>
</Filter>
<Filter
Name="Resource Files"
@@ -208,29 +197,39 @@
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
- <File
- RelativePath="..\src\google\protobuf\lite_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\test_util_lite.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_lite.pb.cc"
- >
- </File>
<File RelativePath=".\google\protobuf\map_lite_unittest.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_import_lite.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_import_public_lite.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_lite.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\arena_test_util.cc"></File>
+ <File RelativePath="..\src\google\protobuf\lite_unittest.cc"></File>
<File RelativePath="..\src\google\protobuf\map_lite_test_util.cc"></File>
- <File
- RelativePath=".\google\protobuf\unittest_import_lite.pb.cc"
+ <File RelativePath="..\src\google\protobuf\test_util_lite.cc"></File>
+ </Filter>
+ <File
+ RelativePath="..\src\google\protobuf\map_lite_unittest.proto"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
>
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_import_public_lite.pb.cc"
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Generating map_lite_unittest.pb.{h,cc}..."
+ CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/map_lite_unittest.proto&#x0D;&#x0A;"
+ Outputs="google\protobuf\map_lite_unittest.pb.h;google\protobuf\map_lite_unittest.pb.cc"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
>
- </File>
- </Filter>
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Generating map_lite_unittest.pb.{h,cc}..."
+ CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/map_lite_unittest.proto&#x0D;&#x0A;"
+ Outputs="google\protobuf\map_lite_unittest.pb.h;google\protobuf\map_lite_unittest.pb.cc"
+ />
+ </FileConfiguration>
+ </File>
<File
RelativePath="..\src\google\protobuf\unittest_lite.proto"
>
diff --git a/vsprojects/tests.vcproj b/vsprojects/tests.vcproj
index 0d42949e..792a3fd8 100644
--- a/vsprojects/tests.vcproj
+++ b/vsprojects/tests.vcproj
@@ -178,65 +178,23 @@
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
- <File
- RelativePath=".\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\testing\file.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\testing\googletest.h"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\test_util.h"
- >
- </File>
+ <File RelativePath=".\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_custom_options.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_embed_optimize_for.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_import.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_import_public.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_lite_imports_nonline.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_mset.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_no_generic_services.pb.h"></File>
+ <File RelativePath=".\google\protobuf\unittest_optimize_for.pb.h"></File>
+ <File RelativePath="..\src\google\protobuf\testing\file.h"></File>
+ <File RelativePath="..\src\google\protobuf\testing\googletest.h"></File>
+ <File RelativePath="..\src\google\protobuf\test_util.h"></File>
<File RelativePath="..\src\google\protobuf\map_test_util_impl.h"></File>
<File RelativePath="..\src\google\protobuf\map_test_util.h"></File>
<File RelativePath="..\src\google\protobuf\arena_test_util.h"></File>
- <File
- RelativePath="..\src\google\protobuf\compiler\mock_code_generator.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest.pb.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_custom_options.pb.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_embed_optimize_for.pb.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_import.pb.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_import_public.pb.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_lite_imports_nonline.pb.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_mset.pb.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_optimize_for.pb.h"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_no_generic_services.pb.h"
- >
- </File>
+ <File RelativePath="..\src\google\protobuf\compiler\mock_code_generator.h"></File>
</Filter>
<Filter
Name="Resource Files"
@@ -249,284 +207,109 @@
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
- <File
- RelativePath="..\src\google\protobuf\arenastring_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\arena_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\command_line_interface_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_bootstrap_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_plugin_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\cpp\cpp_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\importer_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\java\java_plugin_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\mock_code_generator.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\parser_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\compiler\python\python_plugin_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\descriptor_database_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\descriptor_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\drop_unknown_fields_test.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\dynamic_message_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\extension_set_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\generated_message_reflection_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\coded_stream_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\printer_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\tokenizer_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\io\zero_copy_stream_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\map_field_test.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\map_test.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\map_test_util.cc"
- >
- </File>
+ <File RelativePath=".\google\protobuf\map_lite_unittest.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_import_lite.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_lite.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\compiler\cpp\cpp_test_large_enum_value.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\any_test.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\map_proto2_unittest.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\map_unittest.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_arena.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_custom_options.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_drop_unknown_fields.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_embed_optimize_for.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_empty.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_import.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_import_public_lite.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_import_public.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_lite_imports_nonlite.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_mset.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_no_arena_import.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_no_arena.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_no_field_presence.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_no_generic_services.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_optimize_for.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_preserve_unknown_enum2.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_preserve_unknown_enum.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_proto3_arena.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest_well_known_types.pb.cc"></File>
+ <File RelativePath=".\google\protobuf\unittest.pb.cc"></File>
+ <File RelativePath="..\src\google\protobuf\any_test.cc"></File>
+ <File RelativePath="..\src\google\protobuf\arenastring_unittest.cc"></File>
<File RelativePath="..\src\google\protobuf\arena_test_util.cc"></File>
- <File
- RelativePath="..\src\google\protobuf\message_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\no_field_presence_test.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\preserve_unknown_enum_test.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\proto3_arena_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\reflection_ops_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\repeated_field_reflection_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\repeated_field_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\common_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\once_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\stringprintf_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\structurally_valid_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\strutil_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\template_util_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\stubs\type_traits_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\testing\file.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\testing\googletest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\test_util.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\text_format_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\unknown_field_set_unittest.cc"
- >
- </File>
- <File
- RelativePath="..\src\google\protobuf\wire_format_unittest.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\compiler\cpp\cpp_test_bad_identifiers.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_preserve_unknown_enum2.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\map_proto2_unittest.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\map_unittest.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_arena.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_custom_options.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_drop_unknown_fields.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_embed_optimize_for.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_empty.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_import_lite.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_import.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_import_public_lite.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_import_public.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_lite_imports_nonlite.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_lite.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_mset.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_no_arena_import.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_no_arena.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_no_field_presence.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_no_generic_services.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_optimize_for.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest.pb.cc"
- >
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_preserve_unknown_enum.pb.cc"
+ <File RelativePath="..\src\google\protobuf\arena_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\command_line_interface_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_bootstrap_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_plugin_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\cpp\cpp_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\csharp\csharp_generator_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\importer_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_doc_comment_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\java\java_plugin_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\mock_code_generator.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\objectivec\objectivec_helpers_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\parser_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\compiler\python\python_plugin_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\descriptor_database_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\descriptor_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\drop_unknown_fields_test.cc"></File>
+ <File RelativePath="..\src\google\protobuf\dynamic_message_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\extension_set_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\generated_message_reflection_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\coded_stream_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\printer_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\tokenizer_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\io\zero_copy_stream_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\map_field_test.cc"></File>
+ <File RelativePath="..\src\google\protobuf\map_test.cc"></File>
+ <File RelativePath="..\src\google\protobuf\map_test_util.cc"></File>
+ <File RelativePath="..\src\google\protobuf\message_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\no_field_presence_test.cc"></File>
+ <File RelativePath="..\src\google\protobuf\preserve_unknown_enum_test.cc"></File>
+ <File RelativePath="..\src\google\protobuf\proto3_arena_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\reflection_ops_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\repeated_field_reflection_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\repeated_field_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\common_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\once_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\stringprintf_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\structurally_valid_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\strutil_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\template_util_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\stubs\type_traits_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\testing\file.cc"></File>
+ <File RelativePath="..\src\google\protobuf\testing\googletest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\test_util.cc"></File>
+ <File RelativePath="..\src\google\protobuf\text_format_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\unknown_field_set_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\well_known_types_unittest.cc"></File>
+ <File RelativePath="..\src\google\protobuf\wire_format_unittest.cc"></File>
+ </Filter>
+ <File
+ RelativePath="..\src\google\protobuf\any_test.proto"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
>
- </File>
- <File
- RelativePath=".\google\protobuf\unittest_proto3_arena.pb.cc"
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Generating any_test.pb.{h,cc}..."
+ CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/any_test.proto"
+ Outputs="google\protobuf\any_test.pb.h;google\protobuf\any_test.pb.cc"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
>
- </File>
- </Filter>
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Generating any_test.pb.{h,cc}..."
+ CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/any_test.proto"
+ Outputs="google\protobuf\any_test.pb.h;google\protobuf\any_test.pb.cc"
+ />
+ </FileConfiguration>
+ </File>
<File
RelativePath="..\src\google\protobuf\unittest_preserve_unknown_enum2.proto"
>
@@ -552,6 +335,54 @@
</FileConfiguration>
</File>
<File
+ RelativePath="..\src\google\protobuf\unittest_well_known_types.proto"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Generating unittest_well_known_types.pb.{h,cc}..."
+ CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_well_known_types.proto"
+ Outputs="google\protobuf\unittest_well_known_types.pb.h;google\protobuf\unittest_well_known_types.pb.cc"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Generating unittest_well_known_types.pb.{h,cc}..."
+ CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/unittest_well_known_types.proto"
+ Outputs="google\protobuf\unittest_well_known_types.pb.h;google\protobuf\unittest_well_known_types.pb.cc"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\src\google\protobuf\map_lite_unittest.proto"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Generating map_lite_unittest.pb.{h,cc}..."
+ CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/map_lite_unittest.proto"
+ Outputs="google\protobuf\map_lite_unittest.pb.h;google\protobuf\map_lite_unittest.pb.cc"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Generating map_lite_unittest.pb.{h,cc}..."
+ CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/map_lite_unittest.proto"
+ Outputs="google\protobuf\map_lite_unittest.pb.h;google\protobuf\map_lite_unittest.pb.cc"
+ />
+ </FileConfiguration>
+ </File>
+ <File
RelativePath="..\src\google\protobuf\map_proto2_unittest.proto"
>
<FileConfiguration
@@ -1103,6 +934,30 @@
/>
</FileConfiguration>
</File>
+ <File
+ RelativePath="..\src\google\protobuf\compiler\cpp\cpp_test_large_enum_value.proto"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Generating cpp_test_large_enum_value.pb.{h,cc}..."
+ CommandLine="Debug\protoc -I../src --cpp_out=. ../src/google/protobuf/compiler/cpp/cpp_test_large_enum_value.proto"
+ Outputs="google\protobuf\compiler\cpp\cpp_test_large_enum_value.pb.h;google\protobuf\compiler\cpp\cpp_test_large_enum_value.pb.cc"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Generating cpp_test_large_enum_value.pb.{h,cc}..."
+ CommandLine="Release\protoc -I../src --cpp_out=. ../src/google/protobuf/compiler/cpp/cpp_test_large_enum_value.proto"
+ Outputs="google\protobuf\compiler\cpp\cpp_test_large_enum_value.pb.h;google\protobuf\compiler\cpp\cpp_test_large_enum_value.pb.cc"
+ />
+ </FileConfiguration>
+ </File>
</Files>
<Globals>
</Globals>